V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
EyreFree
V2EX  ›  iCode

封装了一个 Markdown 库 - EFMarkdown,求资瓷...QWQ

  •  
  •   EyreFree · Aug 25, 2017 · 10011 views
    This topic created in 3175 days ago, the information mentioned may be changed or developed.

    CI Status Version License Platform

    一个轻量级的 Markdown 库,可以用来将 Markdown 转为 HTML,也可以用来直接展示 Markdown 对其进行预览。

    English Introduction

    预览

    示例

    1. 利用 git clone 命令下载本仓库;
    2. 利用 cd 命令切换到 Example 目录下,执行 pod install 命令;
    3. 随后打开 EFMarkdown.xcworkspace 编译即可。

    或执行以下命令:

    git clone [email protected]:EyreFree/EFMarkdown.git; cd EFMarkdown/Example; pod install; open EFMarkdown.xcworkspace
    

    环境

    • XCode 8.0+
    • Swift 3.0+

    安装

    EFMarkdown 可以通过 CocoaPods 进行获取。只需要在你的 Podfile 中添加如下代码就能实现引入:

    pod "EFMarkdown"
    

    使用

    1. 将 Markdown 转为 HTML

    你可以利用 EFMarkdown 轻松实现 Markdown 字符串到 HTML 字符串地转换,示例代码如下:

    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)")
    }
    

    2. 对 Markdown 进行预览

    你可以利用 EFMarkdownView 实现对 Markdown 字符串的预览,示例代码如下:

    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!")
        }
    }
    

    3. 选项

    你可以通过传入不同的选项来控制底层 cmark 对 Markdown 字符串的处理,默认传入的值为 safe

    可选的值有以下这些:

    • default
    • sourcePos
    • hardBreaks
    • safe
    • noBreaks
    • validateUTF8
    • smart
    • githubPreLang
    • liberalHtmlTag

    更多关于这些选项的信息,可以参考 cmark

    作者

    EyreFree, [email protected]

    协议

    EFMarkdown 基于 WTFPL 协议进行分发和使用,更多信息参见协议文件。

    2 replies    2017-08-25 15:51:34 +08:00
    SourceMan
        1
    SourceMan  
       Aug 25, 2017   ❤️ 1
    资瓷
    EyreFree
        2
    EyreFree  
    OP
       Aug 25, 2017
    @SourceMan 感谢,好人一生平安...🙏
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5472 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 05:58 · PVG 13:58 · LAX 22:58 · JFK 01:58
    ♥ Do have faith in what you're doing.