XZML
示例
要运行示例项目,先从仓库中克隆,然后在 Pods 目录中首先运行 pod install
需求
iOS 11.0, Xcode 14.0
安装
XZML 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'XZML'
简介
XZML是一款简化的富文本语言,用于解决在iOS开发中,构造富文本繁琐、不直接、不能后端下发的问题。
语法
XZML的基本构成单位是元素,元素支持嵌套,支持样式继承。
1、元素语法
元素由范围标记符、样式、文本内容三部分构成,形式如下。
范围起始标记
+样式
+文本内容
+范围终止标记
被范围标记符
包裹的文本内容
会应用指定的样式
,其中:
-
起始标记:
<
-
终止标记:
>
-
样式:
样式值
+样式标记符
-
文本内容:纯文本字符,特殊字符需用
\
转义
XZML 元素支持嵌套,内层会继承外层的样式,比如,
<
样式1
内容1
<
样式2
内容2
>
内容3
>
内容1
与内容3
的样式相同,因为它们在同一对范围标记符内,内容2
则会继承外层的样式1
,样式2
只对内层的内容2
生效。
2、样式标记符
XZML使用固定格式且简化的文本作为样式值
,多属性样式值使用@
符号分隔属性,基本格式如下。
样式属性1@样式属性2
+样式标记符
理论上,任何字符都可以作为样式标记符,但是使用不常用的特殊符号作为样式标记符
,能减少转义符号的使用。特别的,以下符号在 XZML 中被用作样式标记符
使用。
标记符 | 名称 | 格式 | 示例 |
---|---|---|---|
# | 文本颜色 | 前景色、@背景色、前景色@背景色 | <f00@0f0#红色文字、绿色背景> |
& | 字体字号 | 字体、@字号、字体@字号、字体@字号@基准线偏移 | <宋体@20&宋体20号文字> |
$ | 文本修饰 | 样式、样式@线型、样式@线型@颜色 | <$带删除线的文字> |
* | 安全模式 | 替代符号、@重复次数、替代符号@重复次数 | <*安全模式变星星的文字> |
~ | 超链接 | URL | https://www.xezun.com/~打开Xezun官网 |
^ | 文本段落 | 属性值 + 属性标记 |
<20H30M^最小行高20点,最大行高30点的段落> |
更多样式标记定义,可在框架代码XZMLAttribute
注释文档中查看。
示例
XML | 效果 |
---|---|
日利率 <B&0.02%> <aaa#$0.08%> | 日利率 0.02% |
由于字体名称可能较长,而在业务中,大部分情况下使用的都是固定字体,因此可以通过设置字体缩写来简化样式的书写,例如<B&0.02%>
中的B
字体名称,是通过以下方法提前注册的。
[XZMLParser setFontName:@"AmericanTypewriter-Bold" forAbbreviation:@"B"];
如果内置的样式设置不能满足要求,可以通过继承XZMLParser
或使用XZMLDSL
自定义解析方式。
作者
Xezun, [email protected]
许可
根据MIT许可,XZML可用。有关更多信息,请参阅LICENSE文件。