V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
EyreFree
V2EX  ›  iCode

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

  •  
  •   EyreFree · 2017-08-25 15:48:44 +08:00 · 7959 次点击
    这是一个创建于 2428 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条回复    2017-08-25 15:51:34 +08:00
    SourceMan
        1
    SourceMan  
       2017-08-25 15:50:19 +08:00   ❤️ 1
    资瓷
    EyreFree
        2
    EyreFree  
    OP
       2017-08-25 15:51:34 +08:00
    @SourceMan 感谢,好人一生平安...🙏
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3083 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:35 · PVG 22:35 · LAX 07:35 · JFK 10:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.