XZML 1.0.0

XZML 1.0.0

Maintained by Xezun.



 
Depends on:
XZExtensions/UIColor>= 0
XZExtensions/NSString>= 0
 

XZML 1.0.0

  • By
  • Xezun

XZML

CI Status Version License Platform

Example

To run the example project, clone the repo, and run pod install from the Pods directory first.

Requirements

iOS 11.0, Xcode 14.0

Installation

XZML is available through CocoaPods. To install it, simply add the following line to your 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注释文档中查看。

示例

XZML 效果
日利率 <B&0.02%> <aaa#$0.08%> 日利率 0.02% 0.08%

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

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

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

Author

Xezun, [email protected]

License

XZML is available under the MIT license. See the LICENSE file for more info.