将您的赌博付诸实践:在Swiftui中渲染Markdown的指南
#ios #swift #swiftui #markdown

SwiftUI是一个有力的框架,用于在Apple平台上构建直观且响应迅速的用户界面。应用程序最常见的用例之一是显示丰富的文本,而Markdown是代表此类内容的流行格式。在本文中,我们将探讨如何使用Down库在Swiftui应用中渲染Markdown。

首先,让我们看一下什么是降价以及为什么有用。 Markdown是一种轻巧的标记语言,它使用简单的语法来格式化文本。该语法设计为易于读写,可以转换为其他格式,例如HTML和PDF。 Markdown通常用于文档,读书文件和博客文章,因为它允许作家专注于内容而不是格式化。

在我们研究代码之前,您需要使用Swift软件包管理器安装Down library,通过将以下行添加到您的Package.swift文件中。

dependencies: [
    .package(url: "https://github.com/johnxnguyen/Down.git", from: "4.0.0")
]

安装了下库后,我们可以创建一个简单的SwiftUi视图,显示标记。在下面的示例中,我们有一个具有TextEditorMarkdownViewContentView struct。 TextEditor允许用户输入一些Markdown文本,而MarkdownView显示该文本为格式化的HTML。 MarkdownView结构使用Down库将Markdown文本转换为HTML。 Down提供的toSwiftUI()方法将HTML转换为View,可以由MarkdownView显示。

import SwiftUI
import Down

struct ContentView: View {
    @State private var markdown: String = "# Welcome to Dev Community\nHere is some **bold** text."

    var body: some View {
        VStack {
            Text("Enter Markdown:")
            TextEditor(text: $markdown)
            Divider()
            MarkdownView(markdown: markdown)
        }
    }
}

struct MarkdownView: View {
    let markdown: String

    var body: some View {
        let markdown = Down(markdownString: self.markdown)

        return VStack {
            markdown.toSwiftUI().frame(minWidth: 0, maxWidth: .infinity)
        }
    }
}

在上面的示例中,ContentView struct包含一个TextEditorMarkdownViewTextEditor绑定到markdown属性,该属性是存储用户输入的标记文本的状态变量。 MarkdownView结构将markdown属性作为输入,并使用Down库将其转换为HTML。然后,使用toSwiftUI()方法将HTML转换为View,该View显示在MarkdownView中。<​​/p>

MarkdownView struct使用frame修饰符设置视图的最小宽度和最大宽度。这确保视图占据屏幕的全宽度,无论设备的大小或方向如何。

值得注意的是,此示例只是一个起点,在生产应用程序中,您可能会有更强大的错误处理和验证。此外,您还可以通过使用自定义CSS样式自定义渲染降压的外观。您还可以添加图像和视频并提供实时网络链接。

要考虑的另一件事是处理不同类型的降价。随着诸如GitHub风味的宣传和多标记之类的不同降价方言的兴起,Down库可能不支持某些功能。但是,有了Swiftui的灵活性,您可以轻松处理。

要处理Markdown的不同方言,您可以使用任何其他可用于Swift的Markdown解析器,例如:

  • pegmarkdown
  • MarkdownKit
  • MarkdownParser
  • markdownrender

上面提到的所有库具有略有不同的语法和功能支持,因此请务必选择最适合您需求的语法。

要考虑的另一件事是处理大型降价文件;您可以使用FileManager加载文件,然后使用Markdown Parser进行渲染。

更新:

随着最新的iOS 15更新,Apple在Swiftui中提供了对Markdown的内置支持。这使得将丰富的文本格式整合到您的应用程序中变得更加简单。

struct ContentView: View {
   var body: some View {
       VStack {
           Text("**Thank you**")
               .foregroundColor(.green)
           Text("*for your support*")
           Text("Welcome to [Dev](https://dev.to) community")
       }
   }
}

总而言之,SwiftUI是一个强大的框架,可以易于构建响应式用户界面,而Markdown是代表丰富文本的流行格式。您可以使用Down库轻松地在SwiftUi应用程序中呈现Markdown。凭借Swiftui的灵活性,您也可以处理Markdown和大型Markdown文件的不同方言。通过这种方法,您可以为用户提供出色的阅读体验。