• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

indragiek/MarkdownTextView: Rich Markdown editing control for iOS

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

indragiek/MarkdownTextView

开源软件地址(OpenSource Url):

https://github.com/indragiek/MarkdownTextView

开源编程语言(OpenSource Language):

Swift 96.1%

开源软件介绍(OpenSource Introduction):

MarkdownTextView

Rich Markdown Editing for iOS

MarkdownTextView is an iOS framework for adding rich Markdown editing capabilities. Support for Markdown syntax is implemented inside an easily extensible NSTextStorage subclass, with a UITextView subclass being provided for convenience.

Screenshot

Example App

Check out the includeded Example app to try out the text view and to see how MarkdownTextView is integrated into the project.

Installation

With CocoaPods:
pod "MarkdownTextView"
With Carthage:
github "indragiek/MarkdownTextView"

Getting Started

The simplest possible usage is as follows:

let textView = MarkdownTextView(frame: CGRectZero)
view.addSubview(textView)

This gives you a text view with support for most of the features defined in the original Markdown implementation (strong, emphasis, inline code, code blocks, block quotes, headers) with the default styling provided by the framework.

Customizing Appearance

All of the styling can be customized using standard NSAttributedString attributes. For example, if you wanted to customize bold text such that it appeared red, you would do this:

var attributes = MarkdownTextAttributes()
attributes.strongAttributes = [
	NSForegroundColorAttributeName: UIColor.redColor()
]
let textStorage = MarkdownTextStorage(attributes: attributes)
let textView = MarkdownTextView(frame: CGRectZero, textStorage: textStorage)
view.addSubview(textView)

Extensions Support

Extension classes conforming to the HighlighterType protocol can be used to add support for unofficial Markdown extensions. The framework comes with the following extensions already implemented:

From Github Flavored Markdown:

  • MarkdownStrikethroughHighlighter - Support for ~~strikethrough~~
  • MarkdownFencedCodeHighlighter - Support for fenced code blocks
  • LinkHighlighter - Support for auto-linking

Other:

  • MarkdownSuperscriptHighlighter - Support for super^scripted^text

These extensions do not come activated by default. They must manually be added to an instance of MarkdownTextStorage as follows:

let textStorage = MarkdownTextStorage()
var error: NSError?
if let linkHighlighter = LinkHighlighter(errorPtr: &error) {
    textStorage.addHighlighter(linkHighlighter)
} else {
    assertionFailure("Error initializing LinkHighlighter: \(error)")
}
textStorage.addHighlighter(MarkdownStrikethroughHighlighter())
textStorage.addHighlighter(MarkdownSuperscriptHighlighter())
if let codeBlockAttributes = attributes.codeBlockAttributes {
    textStorage.addHighlighter(MarkdownFencedCodeHighlighter(attributes: codeBlockAttributes))
}

let textView = MarkdownTextView(frame: CGRectZero, textStorage: textStorage)
view.addSubview(textView)

Credits

Contact

License

MarkdownTextView is licensed under the MIT License. See LICENSE for more information.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap