做为一个开发人员,平常常常会须要编写各类各样的文档/材料之类的,我的很是喜欢用 Markdown 来完成这些工做,Markdown 的优势就再也不赘述了,你们应该都有过了解,不过目前 iOS 原生并无提供任何对 Markdown 的支持。因此最近基于 cmark-gfm 把 Markdown 转 HTML 的功能封装了一遍,而且在原有基础上添加了对列表 table 的支持,同时利用 WKWebView 作了一个可直接展现 Markdown 的 View,方便之后使用,现已开源到 GitHub 基于 WTFPL 协议进行分发,须要的同窗能够自取。html
项目地址:github.com/EyreFree/EF…git
EFMarkdown 是一个轻量级的 Markdown 库,能够用来将 Markdown 转为 HTML,也能够用来直接展现 Markdown 对其进行预览。github
English Introductionswift
sample1 | sample2 | sample3 | sample4 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
git clone
命令下载本仓库;pod install
命令;EFMarkdown.xcworkspace
编译便可。或执行如下命令:bash
git clone git@github.com:EyreFree/EFMarkdown.git; cd EFMarkdown/Example; pod install; open EFMarkdown.xcworkspace
复制代码
EFMarkdown 能够经过 CocoaPods 进行获取。只须要在你的 Podfile 中添加以下代码就能实现引入:markdown
pod "EFMarkdown"
复制代码
你能够利用 EFMarkdown
轻松实现 Markdown 字符串到 HTML 字符串地转换,示例代码以下:dom
let markdown = "# Hello"
var html = ""
do {
html = try EFMarkdown().markdownToHTML(markdown, options: EFMarkdownOptions.safe)
print(html) // 这里会输出 "<h1>Hello</h1>\n"
} catch let error as NSError {
print ("Error: \(error.domain)")
}
复制代码
你能够利用 EFMarkdownView
实现对 Markdown 字符串的预览,示例代码以下:post
let screenSize = UIScreen.main.bounds
let markView = EFMarkdownView()
markView.frame = CGRect(x: 0, y: 20, width: screenSize.width, height: screenSize.height - 20)
self.view.addSubview(markView)
markView.load(markdown: testMarkdownFileContent(), options: [.default]) {
[weak self] (_, _) in
if let _ = self {
// 可选:你能够经过在此处传入一个百分比来改变字体大小
markView.setFontSize(percent: 128)
printLog("load finish!")
}
}
复制代码
你能够经过传入不一样的选项来控制底层 cmark
对 Markdown 字符串的处理,默认传入的值为 safe
。字体
可选的值有如下这些:ui
更多关于这些选项的信息,能够参考 cmark
。
EyreFree, eyrefree@eyrefree.org
EFMarkdown 基于 WTFPL 协议进行分发和使用,更多信息参见协议文件。
若有任何知识产权、版权问题或理论错误,还请指正。 https://juejin.im/post/5a3217456fb9a0451b049081 转载请注明原做者及以上信息。