做爲一個開發人員,平常常常會須要編寫各類各樣的文檔/材料之類的,我的很是喜歡用 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 轉載請註明原做者及以上信息。