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

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

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

    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
        1
    SourceMan   2017-08-25 15:50:19 +08:00   ♥ 1
    资瓷
        2
    EyreFree   2017-08-25 15:51:34 +08:00
    @SourceMan 感谢,好人一生平安...🙏
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2332 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 14:55 · PVG 22:55 · LAX 06:55 · JFK 09:55
    ♥ Do have faith in what you're doing.