安装
使用 Cocoapods
只需将以下内容添加到您的Podfile中:
pod 'THRichTextView'
然后在您的repo中运行 pod install
。
使用 Carthage
只需将以下内容添加到您的Cartfile中:
github "tophat/RichTextView"
然后在您的repo中运行 carthage update --platform iOS
。
用法
您可以通过首先导入项目来创建一个 RichTextView
import THRichTextView
如果您使用的是CocoaPods,或者
import RichTextView
如果您使用的是Carthage。要初始化一个RichTextView
let richTextView = RichTextView(
input: "Test",
latexParser: LatexParser(),
font: UIFont.systemFont(ofSize: UIFont.systemFontSize),
textColor: UIColor.black,
frame: CGRect.zero,
completion: nil
)
您还可以按照以下方式更新现有的RichTextView
richTextView.update(
input: "Test",
latexParser: LatexParser(),
font: UIFont.systemFont(ofSize: UIFont.systemFontSize),
textColor: UIColor.black,
completion: nil
)
上面所有的参数都是可选的,对于init
和update
方法(除frame
外)。参数定义如下:
input
- 你想渲染的字符串latexParser
- 如果你想以自定义方式处理LaTeX解析,可以传递符合LatexParserProtocol
的类。目前我们使用默认的iosMath
Pod来处理LaTeX解析font
- 要渲染的文本字体texColor
- 要渲染的文本颜色completion
- 用于处理可能返回的错误的一个完成块。即使有错误,输入仍然会进行渲染,但它可能看起来与预期不同。
输入格式化
为了使RichTextView
能够处理可能遇到的各种使用情况,输入字符串需要按照以下方式格式化:
- LaTeX:将你想以LaTeX格式渲染的文本放在两个
[math]
和[/math]
标签之间。例如:[math]x^n[/math]
- 代码:将你想以代码格式渲染的文本放在两个
[code]
和[/code]
标签之间。例如:[code]print('Hello World')[/code]
- HTML/Markdown:无需格式化
- YouTube视频:将YouTube视频的ID放入YouTube标签中,如下所示:
youtube[dQw4w9WgXcQ]
。任何视频的YouTube ID可以通过查看视频的URL(例如:https://www.youtube.com/watch?v=dQw4w9WgXcQ
)并取URL参数后的值(即v=
之后那个值)来找到。在这种情况下,YouTube视频的ID是dQw4w9WgXcQ
- Vimeo视频:将Vimeo视频的ID放入Vimeo标签中,如下所示:
vimeo[100708006]
。任何视频的Vimeo ID可以通过查看视频的URL(例如:https://vimeo.com/100708006
)并取URL的第一个/
之后的内容来找到。在这种情况下,Vimeo视频的ID是100708006
贡献
只需克隆仓库,运行pod install
,你就可以开始了。
我们正在设置一个示例项目,以便你可以开发测试RichTextView
所做的任何更改。
在此期间,运行单元/UI测试应该足够。如果你编写引入了新功能的代码,确保为它编写适当的测试。
致谢
这份感谢归功于这些美好的人 emoji 键
Ahmed Elkady |
Orla Mitchell |
Jake Bolam |
---|---|---|
Sanchit Gera |
Monica Moore |
Brandon Baksh |
感谢 Carol Skelly 捐赠 GitHub 组织!