iOS Markdown 处理和展示

原创 2017年08月26日 09:45:40

封装了一个 Markdown 库 - EFMarkdown,需要的同学可以自取,好用的话望给个 Star,地址为: https://github.com/EyreFree/EFMarkdown

EFMarkdown 是一个轻量级的 Markdown 库,可以用来将 Markdown 转为 HTML,也可以用来直接展示 Markdown 对其进行预览,基于 EFCMark,受 markdownMarkoff 启发。

English Introduction

预览

sample1 sample2 sample3 sample4

示例

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

或执行以下命令:

git clone git@github.com: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, eyrefree@eyrefree.org

协议

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

Markdown语法效果展示

Markdown语法(大标题) 注意啦 “[TOC]”标记会展示全局目录,这是非常有用的,赶紧用上吧; 这里面包含了很多标记写法; 收藏下,写熟练了,就不用参考了; 掌握标题,图片展示,文本超链接,图...
  • qingfeng812
  • qingfeng812
  • 2016年04月29日 15:06
  • 2525

markdown以html显示

http://strapdownjs.com/ Hello Strapdown theme="united" style="display:none;"> # Markdown ...
  • s630405377
  • s630405377
  • 2016年04月07日 10:14
  • 276

iOS 版 MWeb 简介— Markdown 编辑利器

原文地址:http://zh.mweb.im/introducing-mweb-for-ios.html MWeb 首先是一个 Markdown 编辑器,所使用的 Markdown 语法为 G...
  • xxq_2011
  • xxq_2011
  • 2017年05月21日 00:05
  • 952

MarkDown语法代码生成演示效果

现在MarkDown语法广泛的使用于文档编辑器中,比如CSDN的文章撰写,gitbook的文档生成等等,都需要我们学习MarkDown语法知识。 当我们在学习如何使用MarkDown语法进行生成文档的...
  • qianggezhishen
  • qianggezhishen
  • 2015年09月14日 22:29
  • 866

SpringBoot实战记录(一)--MarkdownViewTools

SpringBoot实战记录(一)–MarkdownViewTools标签(空格分隔): spring-boot在公司开发过程中,后端人员维护接口文档,前端妹子只看文档,两者通过SVN中转,一来一去每...
  • u012706811
  • u012706811
  • 2016年09月06日 23:50
  • 2116

像 GitHub 一样渲染 Markdown

个人一直比较喜欢 GitHub 的 Markdown 渲染风格,支持的语法和语法高亮更多而且代码看起来十分舒服。但是有时候想写点东西在自己的网站上展示出来,之前使用的方案是用 sublimetext-...
  • lgh1992314
  • lgh1992314
  • 2017年11月25日 09:33
  • 262

Markdown在线预览

Markdown在线预览上线了,拖动文件或者点击上传markdown文件就可以预览了。 服务器不保存文件副本,只是将上传的文件内容转换为html格式显示在网页上。点击地址访问:3inns.cn/md...
  • tujiaw
  • tujiaw
  • 2017年10月20日 15:59
  • 260

Android 平台下的原生 Markdown 解析器

Android 平台下的原生 Markdown 解析器
  • u014608640
  • u014608640
  • 2016年11月08日 10:53
  • 3355

自定义MarkDownView处理JSON数据

前阵子在处理json数据,突然发现或得到的json数据是MarkDown类型的数据,想在app上直接做一个MarkDownView来处理MarkDown类型的json数据。后来,在伟大的github上...
  • Notzuonotdied
  • Notzuonotdied
  • 2016年08月10日 14:08
  • 2854

怎么用markdown搭建个人博客?强烈推荐gitblog!!!

Gitblog官网 Gitblog文档 Gitblog官方QQ群:84692078一. 简介GitBlog是一个简单易用的Markdown博客系统,它不需要数据库,没有管理后台功能,更新博客只需要...
  • zhou1988217
  • zhou1988217
  • 2015年08月10日 17:53
  • 9606
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS Markdown 处理和展示
举报原因:
原因补充:

(最多只允许输入30个字)