MarkdownView 1.9.1

MarkdownView 1.9.1

测试测试
语言语言 SwiftSwift
许可证 MIT
发布最新发布2022年2月
SPM支持 SPM

Keita Oouchi 维护。



  • keitaoouchi

MarkdownView

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

MarkdownView 是基于 WKWebView 的 UI 元素,并内部使用 markdown-it 和 highlight-js。

GIF

如何使用

UIViewController

import MarkdownView

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

SwiftUI

import SwiftUI
import MarkdownView

struct SampleUI: View {
  var body: some View {
    ScrollView {        
      MarkdownUI(body: markdown)
        .onTouchLink { link in 
          print(link)
          return false
        }
        .onRendered { height in 
          print(height)
        }
    }
  }
  
  private var markdown: String {
    let path = Bundle.main.path(forResource: "sample", ofType: "md")!
    let url = URL(fileURLWithPath: path)
    return try! String(contentsOf: url, encoding: String.Encoding.utf8)
  }
}

选项

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
  }
}

实验性功能

这不稳定🙇

自定义CSS样式

请查看示例/ViewController/CustomCss.swift

插件

请查看示例/ViewController/Plugins.swift。每个插件应该是自包含的,不依赖外部插件。

这里是一个构建与 compatible library 兼容的 markdown-it-new-katex 的示例项目。

需求

目标 版本
iOS => 13.0
Swift => 5.2

安装

MarkdownView 可通过 Swift 包管理器CocoaPodsCarthage 获得。

Swift包管理器

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

另外,您也可以通过Xcode直接添加包。

CocoaPods

pod "MarkdownView"

Carthage

github "keitaoouchi/MarkdownView"

有关详细信息,请遵循Carthage 说明

作者

keita.oouchi, [email protected]

许可

bootstrap 的许可协议为 MIT 许可协议
highlight.js 的许可协议为 BSD-3-Clause 许可协议
markdown-it 的许可协议为 MIT 许可协议

MarkdownView 可使用 MIT 许可协议。更多详细信息请参阅 LICENSE 文件。