Skip to content

hewang42/MarkdownView

 
 

Repository files navigation

MarkdownView

CI Status Swift 5.2 Carthage compatible Version License Swift Package Manager compatible

MarkdownView is a WKWebView based UI element, and internally use bootstrap, highlight.js, markdown-it.

GIF

How to use

import MarkdownView

let md = MarkdownView()
md.load(markdown: "# Hello World!")

Options

md.isScrollEnabled = false

// called when rendering finished
md.onRendered = { [weak self] height in
  self?.mdViewHeight.constant = height
  self?.view.setNeedsLayout()
}

// called when user touch link
md.onTouchLink = { [weak self] request in
  guard let url = request.url else { return false }

  if url.scheme == "file" {
    return false
  } else if url.scheme == "https" {
    let safari = SFSafariViewController(url: url)
    self?.navigationController?.pushViewController(safari, animated: true)
    return false
  } else {
    return false
  }
}

Experimental Features

This is not stable 🙇

Custom CSS Styling

Please check Example/ViewController/CustomCss.swift.

Plugins

Please check Example/ViewController/Plugins.swift. Each plugin should be self-contained, with no external dependent plugins.

Here is a sample project that builds markdown-it-new-katex as a compatible library.

Requirements

Target Version
iOS => 13.0
Swift => 5.2

Installation

MarkdownView is available through Swift Package Manager or CocoaPods or Carthage.

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/keitaoouchi/MarkdownView.git", from: "1.7.1")
]

Alternatively, you can add the package directly via Xcode.

CocoaPods

pod "MarkdownView"

Carthage

github "keitaoouchi/MarkdownView"

for detail, please follow the Carthage Instruction

Author

keita.oouchi, keita.oouchi@gmail.com

License

bootstrap is licensed under MIT license.
highlight.js is licensed under BSD-3-Clause license.
markdown-it is licensed under MIT license.

MarkdownView is available under the MIT license. See the LICENSE file for more info.

About

Markdown View for iOS.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 64.8%
  • CSS 19.7%
  • JavaScript 8.9%
  • Ruby 3.4%
  • HTML 2.3%
  • Objective-C 0.9%