XZML 1.0.0

XZML 1.0.0

Xezun 维护。



 
依赖项
XZExtensions/UIColor>= 0
XZExtensions/NSString>= 0
 

XZML 1.0.0

  • Xezun

XZML

CI Status Version License Platform

示例

要运行示例项目,先从仓库中克隆,然后在 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% 0.08%

由于字体名称可能较长,而在业务中,大部分情况下使用的都是固定字体,因此可以通过设置字体缩写来简化样式的书写,例如<B&0.02%>中的B字体名称,是通过以下方法提前注册的。

[XZMLParser setFontName:@"AmericanTypewriter-Bold" forAbbreviation:@"B"];

如果内置的样式设置不能满足要求,可以通过继承XZMLParser或使用XZMLDSL自定义解析方式。

作者

Xezun, [email protected]

许可

根据MIT许可,XZML可用。有关更多信息,请参阅LICENSE文件。