Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
50bbebd7
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
720
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
50bbebd7
编写于
8月 15, 2023
作者:
DCloud-WZF
💬
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wip(uts): transformText
上级
4201aa5f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
38 addition
and
7 deletion
+38
-7
packages/uni-app-uts/__tests__/transforms/transformText.spec.ts
...es/uni-app-uts/__tests__/transforms/transformText.spec.ts
+20
-0
packages/uni-app-uts/src/plugins/uvue/compiler/transforms/transformText.ts
...uts/src/plugins/uvue/compiler/transforms/transformText.ts
+18
-7
未找到文件。
packages/uni-app-uts/__tests__/transforms/transformText.spec.ts
浏览文件 @
50bbebd7
...
@@ -30,6 +30,26 @@ describe('compiler: transform text', () => {
...
@@ -30,6 +30,26 @@ describe('compiler: transform text', () => {
]),
]),
createElementVNode("text", null, toDisplayString(_ctx.eee) + "fff", 1 /* TEXT */),
createElementVNode("text", null, toDisplayString(_ctx.eee) + "fff", 1 /* TEXT */),
createElementVNode("text", null, toDisplayString(_ctx.ggg), 1 /* TEXT */)
createElementVNode("text", null, toDisplayString(_ctx.ggg), 1 /* TEXT */)
])`
)
})
test
(
'
\n
'
,
()
=>
{
assert
(
`<view>
<text>\\\\\n 换行</text>
<text>\\\\n 换行</text>
<text>\\\n 换行</text>
<text>\\n 换行</text>
<text>\n 换行</text>
<text>\n 换行 \\n 换行 \\\n 换行 \\\\n 换行 \\\\\n 换行</text>
</view>`
,
`createElementVNode(\"view\", null, [
createElementVNode(\"text\", null, \"\\\\\\\\ 换行\"),
createElementVNode(\"text\", null, \"\\\\n 换行\"),
createElementVNode(\"text\", null, \"\\\\ 换行\"),
createElementVNode(\"text\", null, \"\\n 换行\"),
createElementVNode(\"text\", null, \" 换行\"),
createElementVNode(\"text\", null, \" 换行 \\n 换行 \\\\ 换行 \\\\\\n 换行 \\\\\\\\ 换行\")
])`
])`
)
)
})
})
...
...
packages/uni-app-uts/src/plugins/uvue/compiler/transforms/transformText.ts
浏览文件 @
50bbebd7
...
@@ -84,16 +84,13 @@ function parseText(node: ElementNode) {
...
@@ -84,16 +84,13 @@ function parseText(node: ElementNode) {
let
firstTextChild
let
firstTextChild
for
(
let
i
=
0
;
i
<
node
.
children
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
node
.
children
.
length
;
i
++
)
{
const
child
=
node
.
children
[
i
]
const
child
=
node
.
children
[
i
]
if
(
isText
(
child
)
&&
typeof
(
child
as
TextNode
).
content
===
'
string
'
)
{
const
content
=
(
child
as
TextNode
).
content
if
(
isText
(
child
)
&&
typeof
content
===
'
string
'
)
{
if
(
!
firstTextChild
)
{
if
(
!
firstTextChild
)
{
firstTextChild
=
child
firstTextChild
=
child
;(
firstTextChild
as
TextNode
).
content
=
(
;(
firstTextChild
as
TextNode
).
content
=
translateObliqueLine
(
content
)
firstTextChild
as
TextNode
).
content
.
replace
(
/
\\
n/g
,
'
\n
'
)
}
else
{
}
else
{
;(
firstTextChild
as
TextNode
).
content
+=
(
;(
firstTextChild
as
TextNode
).
content
+=
translateObliqueLine
(
content
)
child
as
TextNode
).
content
.
replace
(
/
\\
n/g
,
'
\n
'
)
node
.
children
.
splice
(
i
,
1
)
node
.
children
.
splice
(
i
,
1
)
i
--
i
--
}
}
...
@@ -123,3 +120,17 @@ function createText(
...
@@ -123,3 +120,17 @@ function createText(
loc
:
node
.
loc
,
loc
:
node
.
loc
,
}
}
}
}
function
translateObliqueLine
(
content
:
string
):
string
{
const
strFragments
=
content
.
split
(
'
\\
n
'
)
return
strFragments
.
map
((
str
,
index
)
=>
{
if
(
index
===
strFragments
.
length
-
1
)
return
str
str
+=
'
\\
n
'
if
(
!
(
str
.
split
(
'
\\
'
).
length
%
2
))
{
str
=
str
.
replaceAll
(
/
\\
n/g
,
'
\n
'
)
}
return
str
.
replaceAll
(
/
\\\\
/g
,
'
\\
'
)
})
.
join
(
''
)
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录