[
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: CI\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\njobs:\n  macos:\n    runs-on: macos-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v1\n      - name: Build and Test\n        run: swift test\n\n  linux:\n    runs-on: ubuntu-latest\n\n    strategy:\n      matrix:\n        swift:\n          - \"5.3\"\n          - \"5.4\"\n\n    container:\n      image: swift:${{ matrix.swift }}\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v1\n      - name: Build and Test\n        run: swift test --enable-test-discovery\n\n  windows:\n    runs-on: windows-latest\n\n    steps:\n      - uses: actions/checkout@v2\n      - uses: seanmiddleditch/gha-setup-vsdevenv@master\n\n      - name: Install swift-5.4\n        run: |\n          Install-Binary -Url \"https://swift.org/builds/swift-5.4-release/windows10/swift-5.4-RELEASE/swift-5.4-RELEASE-windows10.exe\" -Name \"installer.exe\" -ArgumentList (\"-q\")\n      - name: Set Environment Variables\n        run: |\n          echo \"SDKROOT=C:\\Library\\Developer\\Platforms\\Windows.platform\\Developer\\SDKs\\Windows.sdk\" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append\n          echo \"DEVELOPER_DIR=C:\\Library\\Developer\" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append\n      - name: Adjust Paths\n        run: |\n          echo \"C:\\Library\\Swift-development\\bin;C:\\Library\\icu-67\\usr\\bin\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append\n          echo \"C:\\Library\\Developer\\Toolchains\\unknown-Asserts-development.xctoolchain\\usr\\bin\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append\n      - name: Install Supporting Files\n        run: |\n          Copy-Item \"$env:SDKROOT\\usr\\share\\ucrt.modulemap\" -destination \"$env:UniversalCRTSdkDir\\Include\\$env:UCRTVersion\\ucrt\\module.modulemap\"\n          Copy-Item \"$env:SDKROOT\\usr\\share\\visualc.modulemap\" -destination \"$env:VCToolsInstallDir\\include\\module.modulemap\"\n          Copy-Item \"$env:SDKROOT\\usr\\share\\visualc.apinotes\" -destination \"$env:VCToolsInstallDir\\include\\visualc.apinotes\"\n          Copy-Item \"$env:SDKROOT\\usr\\share\\winsdk.modulemap\" -destination \"$env:UniversalCRTSdkDir\\Include\\$env:UCRTVersion\\um\\module.modulemap\"\n      - name: Build and Test\n        run: swift test --enable-test-discovery\n"
  },
  {
    "path": ".github/workflows/documentation.yml",
    "content": "name: Documentation\n\non:\n  push:\n    branches:\n      - main\n    paths:\n      - .github/workflows/documentation.yml\n      - Sources/**.swift\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v1\n      - name: Generate Documentation\n        uses: SwiftDocOrg/swift-doc@master\n        with:\n          inputs: \"Sources\"\n          output: \"Documentation\"\n      - name: Upload Documentation to Wiki\n        uses: SwiftDocOrg/github-wiki-publish-action@master\n        with:\n          path: \"Documentation\"\n        env:\n          GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITHUB_PERSONAL_ACCESS_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n/.build\n/Packages\n/*.xcodeproj\nxcuserdata/\n.swiftpm\nResources/spec*\n"
  },
  {
    "path": "Changelog.md",
    "content": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n\n## [Unreleased]\n\n## [0.5.1] - 2021-05-04\n\n### Added\n\n- Added `replace(child:with:)` methods for container nodes.\n  #26 by @mattt.\n\n### Fixed\n\n- Fixed documentation for `List`.\n  #29 by @mattt.\n\n### Changed\n\n- Changed implementation of `Hashable` conformance for `Node`.\n  Previously the hash value of a node was computed from its content.\n  Now it's computed from the opaque cmark pointer.\n  #30 by @Lukas-Stuehrk.\n\n## [0.5.0] - 2021-01-14\n\n### Added\n\n- Added support for the visitor pattern,\n  by adding `protocol Visitor`/`protocol Visitable` & `enum VisitorContinueKind`.\n  #13 by @regexident.\n### Fixed\n\n- Fixed document parsing options.\n  #21 by @regexident.\n- Fixed memory leaks.\n  #22 by @regexident.\n\n## [0.4.0] - 2020-05-01\n\n### Added\n\n- Added a changelog.\n  #17 by @mattt.\n\n### Changed\n\n- Changed `render` method,\n  as well as nested `RenderingFormat` and `RenderingOptions` types,\n  from `Document` to `Node`.\n  #18 by @mattt.\n\n### Fixed\n\n- Fixed abbreviation for \"Universal Declaration of Human Rights\" (UDHR)\n  throughout project.\n  #12 by @regexident.\n\n## [0.3.2] - 2020-04-24\n\n### Fixed\n\n- Fixed implementations of `insert` methods.\n  #10 by @Lukas-Stuehrk \n\n## [0.3.1] - 2020-04-23\n\n### Fixed\n\n- Fixed error caused by missing a case for `CMARK_NODE_DOCUMENT` in `Node.create`.\n  #8 by @mattt.\n\n### Removed\n\n- Removed `assertionFailure` in `Node` `cmark_node_type` class property.\n  1903d99 by @mattt.\n\n## [0.3.0] - 2020-04-10\n\n### Added\n\n- Added implementations of `buildIf` and `buildEither` to `StringBuilder`.\n  #5 by @mattt.\n\n### Changed\n\n- **Breaking Change**.\n  Changed `HTML`, renaming it to `RawHTML`.\n  #4 by @mattt.\n- Changed `Node` to conform to `Codable`.\n  #6 by @mattt.\n- Changed access level of `Node` from `open` to `public`.\n  #6 by @mattt.\n- Change access level for APIs referencing `cmark_node` to `internal`\n  #6 by @mattt.\n- Changed swift-cmark dependency to more recent version.\n  2239c9c by @mattt.\n\n### Fixed\n\n- Fixed error 'Top-level Document encoded as string JSON fragment.'\n  727e38f by @mattt.\n\n## [0.2.2] - 2020-02-06\n\n### Fixed\n\n- Fixed bug in how closed ranges are constructed from reported source positions.\n  #2 by @mattt.\n\n## [0.2.1] - 2020-01-25\n\n### Added\n\n- Added `ForEach` type to `CommonMarkBuilder` module.\n  3cee5da by @mattt.\n- Added implementations of `buildIf` and `buildEither` to `CommonMarkBuilder`.\n  a125d23 by @mattt.\n- Added convenience initializers to `List` for mapping sequence of values.\n  ec61c45 by @mattt.\n\n### Changed\n\n- Changed `List.Item` to allow initialization with `Inline` or `Block` children.\n  c21468c0 by @mattt.\n- Changed inline types conform to `ListItemConvertible`.\n  ffe900bf by @mattt.\n- Changed access of children to `public` and conformed them to `Block & Node`.\n  5e88c519 by @mattt\n\n### Removed\n\n- Removed conformance of `Document` to `CustomReflectable`.\n  6b92588e by @mattt.\n- Removed `Child` typealias in favor of explicit compound types.\n  c9a5b199 by @mattt.\n\n## [0.2.0] - 2020-01-24\n\n### Added\n\n- Added CommonMarkBuilder interface.\n  79a98dd by @mattt.\n\n### Changed\n\n- Changed access level for `Node` to open.\n  79a98dd by @mattt.\n- Changed initialization pattern of `Node`.\n  79a98dd by @mattt.\n- Changed `ListItem`, renaming it to `List.Item`.\n  79a98dd by @mattt.\n- Changed initializers for `Node` subclasses\n  79a98dd by @mattt.\n\n### Removed\n\n- Removed `BulletList` and `OrderedList`,\n  consolidating them into into a new `List` type.\n  79a98dd by @mattt.\n\n## [0.1.2] - 2020-01-22\n\n### Changed\n\n- Changed cmark dependency to pin to a tag in a fork.\n  2f5a2a4 by @mattt.\n\n## [0.1.1] - 2020-01-22\n\n### Changed\n\n- Changed cmark dependency to pin to a specific revision.\n  90704ff by @mattt.\n\n## [0.1.0] - 2020-01-22\n\n### Added\n\n- Added node creation and mutation functionality.\n  a41ba246 by @mattt.\n\n## [0.0.1] - 2020-01-27\n\nInitial release.\n\n[unreleased]: https://github.com/SwiftDocOrg/CommonMark/compare/0.5.1...main\n[0.5.1]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.5.1\n[0.5.0]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.5.0\n[0.4.0]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.4.0\n[0.3.2]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.3.2\n[0.3.1]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.3.1\n[0.3.0]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.3.0\n[0.2.2]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.2.2\n[0.2.1]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.2.1\n[0.2.0]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.2.0\n[0.1.2]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.1.2\n[0.1.1]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.1.1\n[0.1.0]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.1.0\n[0.0.1]: https://github.com/SwiftDocOrg/CommonMark/releases/tag/0.0.1\n"
  },
  {
    "path": "LICENSE.md",
    "content": "Copyright 2019 Read Evaluate Press, LLC\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": "COMMONMARK_SPEC_VERSION=0.29\n\nTests/CommonMarkSpecTests: Resources/spec.json | Resources/spec\n\t@mkdir -p $@\n\t@for section in $(shell jq -c '.[].section' $< | uniq); do \\\n\t\tfilename=`echo \"$${section}\" | awk -f Resources/camelcase.awk`; \\\n\t\tjq \"map(select(.section == \\\"$${section}\\\"))\" $< > \"$|/$${filename}.json\" ; \\\n\t\tgyb --line-directive '' -o $@/$${filename}Tests.swift -D filename=\"$${filename}\" Resources/CommonMarkSpecTests.swift.gyb; \\\n\tdone\n\nResources/spec:\n\t@mkdir -p Resources/spec\n\nResources/spec.json:\n\t@curl \"https://spec.commonmark.org/${COMMONMARK_SPEC_VERSION}/spec.json\" > $@\n\n%.swift: %.swift.gyb\n\t@gyb --line-directive '' -o $@ $<\n\n.PHONY:\nclean:\n\t@rm -f Resources/spec.json\n\t@rm -rf Resources/spec\n\t@rm -rf Tests/CommonMarkSpecTests\n"
  },
  {
    "path": "Package.resolved",
    "content": "{\n  \"object\": {\n    \"pins\": [\n      {\n        \"package\": \"cmark\",\n        \"repositoryURL\": \"https://github.com/SwiftDocOrg/swift-cmark.git\",\n        \"state\": {\n          \"branch\": null,\n          \"revision\": \"9c8096a23f44794bde297452d87c455fc4f76d42\",\n          \"version\": \"0.29.0+20210102.9c8096a\"\n        }\n      }\n    ]\n  },\n  \"version\": 1\n}\n"
  },
  {
    "path": "Package.swift",
    "content": "// swift-tools-version:5.1\n// The swift-tools-version declares the minimum version of Swift required to build this package.\n\nimport PackageDescription\n\nlet package = Package(\n    name: \"CommonMark\",\n    products: [\n        // Products define the executables and libraries produced by a package, and make them visible to other packages.\n        .library(\n            name: \"CommonMark\",\n            targets: [\"CommonMark\"]\n        )\n    ],\n    dependencies: [\n        // Dependencies declare other packages that this package depends on.\n        .package(url: \"https://github.com/SwiftDocOrg/swift-cmark.git\",\n                 from: Version(0, 29, 0, buildMetadataIdentifiers: [\"20210102\", \"9c8096a\"])),\n    ],\n    targets: [\n        // Targets are the basic building blocks of a package. A target can define a module or a test suite.\n        // Targets can depend on other targets in this package, and on products in packages which this package depends on.\n        .target(\n            name: \"CommonMark\",\n            dependencies: [\"cmark\"]\n        ),\n        .testTarget(\n            name: \"CommonMarkTests\",\n            dependencies: [\"CommonMark\"]\n        ),\n        .testTarget(\n            name: \"CommonMarkSpecTests\",\n            dependencies: [\"CommonMark\"]\n        )\n    ]\n)\n"
  },
  {
    "path": "README.md",
    "content": "# CommonMark\n\n![CI][ci badge]\n[![Documentation][documentation badge]][documentation]\n\nA Swift package for working with [CommonMark][commonmark] text.\nIt's built on top of [libcmark][cmark] \nand fully compliant with the [CommonMark Spec][commonmark].\n\n## Usage\n\n```swift\nimport CommonMark\n\nlet markdown = #\"\"\"\n# [Universal Declaration of Human Rights][udhr]\n\n## Article 1.\n\nAll human beings are born free and equal in dignity and rights. \nThey are endowed with reason and conscience \nand should act towards one another in a spirit of brotherhood.\n\n[udhr]: https://www.un.org/en/universal-declaration-human-rights/ \"View full version\"\n\"\"\"#\n\nlet document = try Document(markdown)\n```\n\n### Inspecting Document Nodes\n\n```swift\ndocument.children.count // 3\n\nlet heading = document.children[0] as! Heading\nheading.headerLevel // 1\nheading.children.count // 1\n\nlet link = heading.children[0] as! Link\nlink.urlString // \"https://www.un.org/en/universal-declaration-human-rights/\")\nlink.title // \"View full version\"\n\nlet subheading = document.children[1] as! Heading\nsubheading.headerLevel // 2\nsubheading.children.count // 1\n\nlet subheadingText = subheading.children[0] as! Text\nsubheadingText.literal // \"Article 1.\"\n\nlet paragraph = document.children[2] as! Paragraph\nparagraph.description // \"All human beings [ ... ]\"\nparagraph.range.lowerBound // (line: 5, column: 1)\nparagraph.range.upperBound // (line: 7, column: 62)\n```\n\n### Rendering to HTML, XML, LaTeX, and Manpage\n\n```swift\nlet html = document.render(format: .html) // <h1> [ ... ]\nlet xml = document.render(format: .xml) // <?xml [ ... ]\nlet latex = document.render(format: .latex) // \\section{ [ ... ]\nlet manpage = document.render(format: .manpage) // .SH [ ... ]\n\n// To get back CommonMark text, \n// you can either render with the `.commonmark` format...\ndocument.render(format: .commonmark) // # [Universal  [ ... ]\n// ...or call `description`\n// (individual nodes also return their CommonMark representation as their description)\ndocument.description // # [Universal  [ ... ]\n```\n\n### Creating Documents From Scratch\n\n#### Using Result Builders\n\nIn Swift 5.4 and later,\nyou can create CommonMark documents using `@resultBuilder` initializers.\n\n```swift\nimport CommonMark\n\nlet document = Document {\n    Heading {\n        Link(urlString: \"https://www.un.org/en/universal-declaration-human-rights/\",\n                title: \"View full version\")\n        {\n            \"Universal Declaration of Human Rights\"\n        }\n    }\n\n    Section { // sections increase the level of contained headings\n        Heading { \"Article 1.\" } // this is a second-level heading\n    }\n\n    // block-level strings are parsed as CommonMark literals\n    \"\"\"\n    **All** human beings are born free and equal in dignity and rights.\n    They are endowed with reason and conscience\n    and should act towards one another in a spirit of brotherhood.\n    \"\"\"\n}\n```\n\n#### Using the Conventional Approach\n\nThe following code produces the same result as the preceding example,\nusing conventional Swift initializers.\n\n```swift\nlet link = Link(urlString: \"https://www.un.org/en/universal-declaration-human-rights/\",\n                title: \"View full version\", \n                text: \"Universal Declaration of Human Rights\")\nlet heading = Heading(level: 1, children: [link])\n\nlet subheading = Heading(level: 2, text: \"Article 1.\")\n\nlet paragraph = Paragraph(children: #\"\"\"\nAll human beings are born free and equal in dignity and rights.\nThey are endowed with reason and conscience\nand should act towards one another in a spirit of brotherhood.\n\"\"\"#.split(separator: \"\\n\")\n    .flatMap { [Text(String($0)), SoftLineBreak()] })\n\nDocument(children: [heading, subheading, paragraph]).description == document.description // true\n```\n\n## CommonMark Spec Compliance\n\nThis package passes all of the 649 test cases\nin the latest version (0.29) of the [CommonMark Spec][commonmark spec]:\n\n```console\n$ swift test\n\t Executed 649 tests, with 0 failures (0 unexpected) in 0.178 (0.201) seconds\n```\n\n## Requirements\n\n- Swift 5.1+\n\n## Installation\n\n### Swift Package Manager\n\nAdd the CommonMark package to your target dependencies in `Package.swift`:\n\n```swift\nimport PackageDescription\n\nlet package = Package(\n  name: \"YourProject\",\n  dependencies: [\n    .package(\n        url: \"https://github.com/SwiftDocOrg/CommonMark\",\n        from: \"0.5.1\"\n    ),\n  ]\n)\n```\n\nThen run the `swift build` command to build your project.\n\n## License\n\nMIT\n\n## Contact\n\nMattt ([@mattt](https://twitter.com/mattt))\n\n[cmark]: https://github.com/commonmark/cmark\n[commonmark]: https://commonmark.org\n[commonmark spec]: https://spec.commonmark.org\n\n[ci badge]: https://github.com/SwiftDocOrg/CommonMark/workflows/CI/badge.svg\n[documentation badge]: https://github.com/SwiftDocOrg/CommonMark/workflows/Documentation/badge.svg\n[documentation]: https://github.com/SwiftDocOrg/CommonMark/wiki\n"
  },
  {
    "path": "Resources/CommonMarkSpecTests.swift.gyb",
    "content": "% warning = \"This file was automatically generated and should not be edited.\"\n// ${warning}\n%{\n# encoding=utf8\nimport sys\nreload(sys)\nsys.setdefaultencoding('utf8')\n\nimport json\n\ndef indent(text, amount, ch=' '):\n    padding = amount * ch\n    return ''.join(padding+line for line in text.splitlines(True))\n}%\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpec${filename}Tests: XCTestCase {\n% with open('../Resources/spec/%s.json' % filename) as file:\n    %{ spec = json.load(file) }%\n    % for example in spec:\n        %{\n           number = example['example']\n           markdown = example['markdown']\n           html = example['html'] }%\n    func testExample${number}() throws {\n        let markdown = #######\"\"\"\n${indent(markdown, 8)}\n        \"\"\"#######\n\n        let html = #######\"\"\"\n${indent(html, 8)}\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    % end\n% end\n}\n"
  },
  {
    "path": "Resources/camelcase.awk",
    "content": "#!/usr/bin/awk -f\n\n{\n    text = $0;\n    split(text, words, /[^a-zA-Z]+/);\n    for (i=1; i<=length(words); i++) {\n        res = res toupper(substr(words[i],1,1)) tolower(substr(words[i],2));\n    }\n    print res\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Block/BlockQuote.swift",
    "content": "import cmark\n\n/**\n A block quote.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [5.1 Block quotes](https://spec.commonmark.org/0.29/#block-quotes)\n >\n > A block quote marker consists of 0-3 spaces of initial indent,\n > plus (a) the character > together with a following space,\n > or (b) a single character > not followed by a space.\n */\npublic final class BlockQuote: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_BLOCK_QUOTE }\n\n    public convenience init(children: [Block & Node] = []) {\n        self.init()\n        guard !children.isEmpty else { return }\n        for child in children {\n            append(child: child)\n        }\n    }\n\n    #if swift(>=5.4)\n    public convenience init(@ContainerOfBlocksBuilder _ builder: () -> [Block & Node]) {\n        self.init(children: builder())\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Block/CodeBlock.swift",
    "content": "import cmark\n\n/**\n A code block.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [4.4 Indented code blocks](https://spec.commonmark.org/0.29/#indented-code-blocks)\n >\n > An indented code block is composed of\n > one or more indented chunks separated by blank lines.\n > An indented chunk is a sequence of non-blank lines,\n > each indented four or more spaces.\n > The contents of the code block are the literal contents of the lines,\n > including trailing line endings,\n > minus four spaces of indentation.\n > An indented code block has no info string.\n\n > ## [4.5 Fenced code blocks](https://spec.commonmark.org/0.29/#fenced-code-blocks)\n >\n > A code fence is a sequence of\n > at least three consecutive backtick characters (`) or tildes (~).\n > (Tildes and backticks cannot be mixed.)\n > A fenced code block begins with a code fence,\n > indented no more than three spaces.\n */\npublic final class CodeBlock: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_CODE_BLOCK }\n\n    public var fenceInfo: String? {\n        get {\n            return String(cString: cmark_node_get_fence_info(cmark_node))\n        }\n\n        set {\n            cmark_node_set_fence_info(cmark_node, newValue)\n        }\n    }\n\n    public convenience init(literal: String? = nil) {\n        self.init()\n        self.literal = literal\n    }\n\n    public convenience init(literal: String, fenceInfo: String? = nil) {\n        self.init()\n        self.literal = literal\n        if let fenceInfo = fenceInfo {\n            self.fenceInfo = fenceInfo\n        }\n    }\n\n    public convenience init(fenceInfo: String? = nil, _ block: () -> String?) {\n        self.init(literal: block())\n        if let fenceInfo = fenceInfo {\n            self.fenceInfo = fenceInfo\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Block/HTMLBlock.swift",
    "content": "import cmark\n\n/**\n An HTML block.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [4.6 HTML blocks](https://spec.commonmark.org/0.29/#html-blocks)\n >\n > An HTML block is a group of lines that is treated as raw HTML\n > (and will not be escaped in HTML output).\n */\npublic final class HTMLBlock: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_HTML_BLOCK }\n\n    public convenience init(literal: String? = nil) {\n        self.init()\n        self.literal = literal\n    }\n\n    #if swift(>=5.4)\n    public static func wrap(\n        @ContainerOfBlocksBuilder _ body: () -> [Block & Node],\n        before: () -> String?,\n        after: () -> String?\n    ) -> [Block & Node] {\n        var blocks: [Block & Node] = []\n\n        blocks.append(HTMLBlock(literal: before()))\n        blocks.append(contentsOf: body())\n        blocks.append(HTMLBlock(literal: after()))\n\n        return blocks\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Block/Heading.swift",
    "content": "import cmark\n\n/**\n A heading.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [4.2 ATX headings](https://spec.commonmark.org/0.29/#atx-headings)\n >\n > An ATX heading consists of a string of characters,\n > parsed as inline content,\n > between an opening sequence of 1–6 unescaped # characters\n > and an optional closing sequence of any number of unescaped # characters.\n > The opening sequence of # characters must be followed by a space\n > or by the end of line.\n > The optional closing sequence of #s must be preceded by a space\n > and may be followed by spaces only.\n > The opening # character may be indented 0-3 spaces.\n > The raw contents of the heading are stripped of leading and trailing spaces\n > before being parsed as inline content.\n > The heading level is equal to the number of # characters\n > in the opening sequence.\n\n > ## [4.3 Setext headings](https://spec.commonmark.org/0.29/#setext-headings)\n > A setext heading consists of one or more lines of text,\n > each containing at least one non-whitespace character,\n > with no more than 3 spaces indentation,\n > followed by a setext heading underline.\n > The lines of text must be such that,\n > were they not followed by the setext heading underline,\n > they would be interpreted as a paragraph:\n > they cannot be interpretable as a\n > code fence, ATX heading, block quote,\n > thematic break, list item, or HTML block.\n */\npublic final class Heading: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_HEADING }\n\n    static let levelRange: ClosedRange<Int> = 1...6\n\n    public var level: Int {\n        get {\n            return numericCast(cmark_node_get_heading_level(cmark_node))\n        }\n\n        set {\n            precondition(Heading.levelRange.contains(newValue))\n            cmark_node_set_heading_level(cmark_node, numericCast(newValue))\n        }\n    }\n\n    public convenience init(level: Int, text string: String) {\n        self.init(level: level, children: [Text(literal: string)])\n    }\n\n    public convenience init(level: Int, children: [Inline & Node] = []) {\n        self.init()\n        self.level = level\n        guard !children.isEmpty else { return }\n        for child in children {\n            append(child: child)\n        }\n    }\n\n    #if swift(>=5.4)\n    public convenience init(level: Int = 1, @ContainerOfInlineElementsBuilder _ builder: () -> [Inline & Node]) {\n        self.init(level: level, children: builder())\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Block/List.swift",
    "content": "import cmark\n\n/**\n A list.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [5.3 Lists](https://spec.commonmark.org/0.29/#lists)\n >\n > A list is a sequence of one or more list items of the same type.\n > The list items may be separated by any number of blank lines.\n\n > ## [5.2 List items](https://spec.commonmark.org/0.29/#list-items)\n >\n > A list marker is a bullet list marker or an ordered list marker.\n >\n > An ordered list marker is a sequence of 1–9 arabic digits (0-9),\n > followed by either a . character or a ) character.\n > (The reason for the length limit is that\n > with 10 digits we start seeing integer overflows in some browsers.)\n */\npublic final class List: Node {\n    public enum Kind: Hashable {\n        case bullet\n        case ordered\n    }\n\n    public enum Delimiter: Hashable {\n        case none\n        case period(Int = 1)\n        case parenthesis(Int = 1)\n\n        init(_ cmark_node: OpaquePointer) {\n            switch cmark_node_get_list_delim(cmark_node) {\n            case CMARK_PERIOD_DELIM:\n                self = .period(numericCast(cmark_node_get_list_start(cmark_node)))\n            case CMARK_PAREN_DELIM:\n                self = .parenthesis(numericCast(cmark_node_get_list_start(cmark_node)))\n            default:\n                self = .none\n            }\n        }\n    }\n\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_LIST }\n\n\n    public var kind: Kind {\n        return delimiter == .none ? .bullet : .ordered\n    }\n\n    public var delimiter: Delimiter {\n        get {\n            return Delimiter(cmark_node)\n        }\n\n        set {\n            switch newValue {\n            case .period(let listStart):\n                cmark_node_set_list_type(cmark_node, CMARK_ORDERED_LIST)\n                cmark_node_set_list_delim(cmark_node, CMARK_PERIOD_DELIM)\n                cmark_node_set_list_start(cmark_node, numericCast(listStart))\n            case .parenthesis(let listStart):\n                cmark_node_set_list_type(cmark_node, CMARK_ORDERED_LIST)\n                cmark_node_set_list_delim(cmark_node, CMARK_PAREN_DELIM)\n                cmark_node_set_list_start(cmark_node, numericCast(listStart))\n            default:\n                cmark_node_set_list_type(cmark_node, CMARK_BULLET_LIST)\n            }\n        }\n    }\n\n    /**\n     Whether the list is loose.\n\n     From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n     > A list is loose if any of its constituent list items\n     > are separated by blank lines,\n     > or if any of its constituent list items\n     > directly contain two block-level elements with a blank line between them.\n     > Otherwise a list is tight.\n     */\n    public var loose: Bool {\n        get {\n            return !tight\n        }\n\n        set {\n            tight = !newValue\n        }\n    }\n\n    /**\n     Whether the list is tight.\n\n     - SeeAlso: `loose`\n     */\n    public var tight: Bool {\n        get {\n            return cmark_node_get_list_tight(cmark_node) == 1 ? true : false\n        }\n\n        set {\n            cmark_node_set_list_tight(cmark_node, newValue ? 1 : 0)\n        }\n    }\n\n    public convenience init(delimiter: Delimiter = .none, children: [List.Item] = []) {\n        self.init()\n        self.delimiter = delimiter\n        guard !children.isEmpty else { return }\n        for child in children {\n            append(child: child)\n        }\n    }\n\n    #if swift(>=5.4)\n    public convenience init(delimiter: Delimiter = .none, tight: Bool = true, @ListBuilder _ builder: () -> [List.Item]) {\n        self.init(delimiter: delimiter, children: builder())\n        self.tight = tight\n    }\n\n    public convenience init<Values>(of values: Values, delimiter: Delimiter = .none, tight: Bool = true, @ListBuilder _ builder: (Values.Element) -> [List.Item]) where Values: Sequence {\n        self.init(delimiter: delimiter, children: values.flatMap { builder($0) })\n        self.tight = tight\n    }\n    #endif\n}\n\nextension List {\n    public final class Item: Node {\n        override class var cmark_node_type: cmark_node_type { return CMARK_NODE_ITEM }\n\n        public convenience init(children: [Inline & Node] = []) {\n            self.init(children: [Paragraph(children: children)])\n        }\n\n        public convenience init(children: [Block & Node] = []) {\n            self.init()\n            guard !children.isEmpty else { return }\n            for child in children {\n                append(child: child)\n            }\n        }\n\n        #if swift(>=5.4)\n        public convenience init(@ContainerOfInlineElementsBuilder _ builder: () -> [Inline & Node]) {\n            self.init(children: builder())\n        }\n\n        public convenience init(@ContainerOfBlocksBuilder _ builder: () -> [Block & Node]) {\n            self.init(children: builder())\n        }\n        #endif\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Block/Paragraph.swift",
    "content": "import cmark\n\n/**\n A paragraph.\n \n From the [CommonMark Spec](https://spec.commonmark.org/0.29/#thematic-breaks):\n\n > ## [4.8 Paragraphs](https://spec.commonmark.org/0.29/#paragraphs)\n >\n > A sequence of non-blank lines\n > that cannot be interpreted as other kinds of blocks\n > forms a paragraph.\n > The contents of the paragraph are the result of\n > parsing the paragraph’s raw content as inlines.\n > The paragraph’s raw content is formed by\n > concatenating the lines and removing initial and final whitespace.\n*/\npublic final class Paragraph: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_PARAGRAPH }\n\n    public convenience init(text string: String, replacingNewLinesWithBreaks: Bool = true) {\n        let children: [Inline & Node]\n        if replacingNewLinesWithBreaks {\n            children = string.split(separator: \"\\n\", omittingEmptySubsequences: false)\n                             .flatMap { ($0.isEmpty ? [HardLineBreak()] : [Text(literal: \"\\($0)\"), SoftLineBreak()]) }\n        } else {\n            children = [Text(literal: string)]\n        }\n\n        self.init(children: children)\n    }\n\n    public convenience init(children: [Inline & Node] = []) {\n        self.init()\n        guard !children.isEmpty else { return }\n        for child in children {\n            append(child: child)\n        }\n    }\n\n    #if swift(>=5.4)\n    public convenience init(@ContainerOfInlineElementsBuilder _ builder: () -> [Inline & Node]) {\n        self.init(children: builder())\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Block/ThematicBreak.swift",
    "content": "import cmark\n\n/**\n A thematic break.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29/):\n\n > ## [4.1 Thematic breaks](https://spec.commonmark.org/0.29/#thematic-breaks)\n >\n > A line consisting of 0-3 spaces of indentation,\n > followed by a sequence of three or more matching -, _, or * characters,\n > each followed optionally by any number of spaces or tabs,\n > forms a thematic break.\n */\npublic final class ThematicBreak: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_THEMATIC_BREAK }\n\n    public convenience init() {\n        self.init(nonrecursively: ())\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Document.swift",
    "content": "import cmark\n\n/// A CommonMark document.\npublic final class Document: Node {\n    /// Options for parsing CommonMark text.\n    public struct ParsingOptions: OptionSet {\n        public var rawValue: Int32\n\n        public init(rawValue: Int32 = CMARK_OPT_DEFAULT) {\n            self.rawValue = rawValue\n        }\n\n        /**\n         Convert ASCII punctuation characters\n         to \"smart\" typographic punctuation characters.\n\n         - Straight quotes (\" and ')\n           become curly quotes (“ ” and ‘ ’)\n         - Dashes (-- and ---) become\n           en-dashes (–) and em-dashes (—)\n         - Three consecutive full stops (...) become an ellipsis (…)\n         */\n        public static let smart = Self(rawValue: CMARK_OPT_SMART)\n    }\n\n    /// A position within a document.\n    public struct Position: Hashable {\n        /**\n         The line number.\n\n         Line numbers start at 1 and increase monotonically.\n         */\n        public var line: Int\n\n        /**\n         The line number.\n\n         Column numbers start at 1 and increase monotonically.\n        */\n        public var column: Int\n    }\n\n    /// An error when creating a document.\n    public enum Error: Swift.Error {\n        /// A document couldn't be constructed with the provided source.\n        case invalid\n    }\n\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_DOCUMENT }\n\n    /**\n     Creates a document from a CommonMark string.\n\n     - Parameter commonmark: A CommonMark string.\n     - Throws:\n        - `Document.Error.invalid`\n          if a document couldn't be constructed with the provided source.\n     */\n    public convenience init(_ commonmark: String, options: ParsingOptions = []) throws {\n        guard let cmark_node = cmark_parse_document(commonmark, commonmark.utf8.count, options.rawValue)\n        else {\n            throw Error.invalid\n        }\n\n        self.init(cmark_node)\n        self.managed = true\n    }\n\n    public convenience init(children: [Block & Node] = []) {\n        self.init()\n        guard !children.isEmpty else { return }\n        for child in children {\n            append(child: child)\n        }\n    }\n\n    #if swift(>=5.4)\n    public convenience init(options: ParsingOptions = [], @ContainerOfBlocksBuilder _ builder: () -> [Block & Node]) {\n        self.init(children: builder())\n    }\n    #endif\n}\n\n// MARK: - Comparable\n\nextension Document.Position: Comparable {\n    public static func < (lhs: Document.Position, rhs: Document.Position) -> Bool {\n        return lhs.line < rhs.line || (lhs.line == rhs.line && lhs.column < rhs.column)\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/Code.swift",
    "content": "import cmark\n\n/**\n A code span.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.3 Code spans](https://spec.commonmark.org/0.29/#code-spans)\n >\n > A code span begins with a backtick string\n > and ends with a backtick string of equal length.\n*/\npublic final class Code: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_CODE }\n\n    public convenience init(literal: String? = nil) {\n        self.init()\n        self.literal = literal\n    }\n\n    public convenience init(_ block: () -> String?) {\n        self.init(literal: block())\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/Emphasis.swift",
    "content": "import cmark\n\n/**\n An emphasis span.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.4 Emphasis and strong emphasis](https://spec.commonmark.org/0.29/#emphasis-and-strong-emphasis)\n*/\npublic final class Emphasis: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_EMPH }\n\n    public convenience init(text string: String) {\n        self.init(children: [Text(literal: string)])\n    }\n\n    public convenience init(children: [Inline & Node] = []) {\n        self.init()\n        guard !children.isEmpty else { return }\n        for child in children {\n            append(child: child)\n        }\n    }\n\n    #if swift(>=5.4)\n    public convenience init(@ContainerOfInlineElementsBuilder _ builder: () -> [Inline & Node]) {\n        self.init(children: builder())\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/HardLineBreak.swift",
    "content": "import cmark\n\n/**\n A hard line break.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.9 Hard line breaks](https://spec.commonmark.org/0.29/#hard-line-breaks)\n >\n > A line break (not in a code span or HTML tag)\n > that is preceded by two or more spaces\n > and does not occur at the end of a block\n > is parsed as a hard line break\n > (rendered in HTML as a `<br />` tag):\n */\npublic final class HardLineBreak: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_LINEBREAK }\n\n    public convenience init() {\n        self.init(nonrecursively: ())\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/Image.swift",
    "content": "import cmark\n\n/**\n An image.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.6 Images](https://spec.commonmark.org/0.29/#images)\n*/\npublic final class Image: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_IMAGE }\n\n    public convenience init(urlString: String, title: String? = nil) {\n        self.init()\n        self.urlString = urlString\n        self.title = title\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/Link.swift",
    "content": "import cmark\n\n/**\n A link.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.5 Links](https://spec.commonmark.org/0.29/#links)\n >\n > A link contains link text (the visible text),\n > a link destination (the URI that is the link destination),\n > and optionally a link title.\n\n > ## [4.7 Link reference definitions](https://spec.commonmark.org/0.29/#link-reference-definitions)\n\n > ## [6.7 Autolinks](https://spec.commonmark.org/0.29/#autolinks)\n */\npublic final class Link: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_LINK }\n    \n    public convenience init(urlString: String, title: String? = nil, text string: String) {\n        self.init(urlString: urlString, title: title, children: [Text(literal: string)])\n    }\n\n    public convenience init(urlString: String?, title: String?, children: [Inline & Node] = []) {\n        self.init()\n        self.urlString = urlString\n        self.title = title\n        guard !children.isEmpty else { return }\n        for child in children {\n            append(child: child)\n        }\n    }\n\n    #if swift(>=5.4)\n    public convenience init(urlString: String?, title: String?, @ContainerOfInlineElementsBuilder _ builder: () -> [Inline & Node]) {\n        self.init(urlString: urlString, title: title, children: builder())\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/RawHTML.swift",
    "content": "import cmark\n\n/**\n Raw HTML.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.8 Raw HTML](https://spec.commonmark.org/0.29/#raw-html)\n >\n > Text between `<` and `>` that looks like an HTML tag\n > is parsed as a raw HTML tag\n > and will be rendered in HTML without escaping.\n > Tag and attribute names are not limited to current HTML tags,\n > so custom tags (and even, say, DocBook tags) may be used.\n*/\npublic final class RawHTML: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_HTML_INLINE }\n\n    public convenience init(literal: String?) {\n        self.init()\n        self.literal = literal\n    }\n\n    public convenience init(_ block: () -> String?) {\n        self.init(literal: block())\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/SoftLineBreak.swift",
    "content": "import cmark\n\n/**\n A soft line break.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.10 Soft line breaks](https://spec.commonmark.org/0.29/#soft-line-breaks)\n >\n > A regular line break (not in a code span or HTML tag)\n > that is not preceded by two or more spaces or a backslash\n > is parsed as a softbreak.\n > (A softbreak may be rendered in HTML\n > either as a line ending or as a space.\n > The result will be the same in browsers.)\n*/\npublic final class SoftLineBreak: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_SOFTBREAK }\n\n    public convenience init() {\n        self.init(nonrecursively: ())\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/Strong.swift",
    "content": "import cmark\n\n/**\n A strong emphasis span.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.4 Emphasis and strong emphasis](https://spec.commonmark.org/0.29/#emphasis-and-strong-emphasis)\n*/\npublic final class Strong: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_STRONG }\n\n    public convenience init(text string: String) {\n        self.init(children: [Text(literal: string)])\n    }\n\n    public convenience init(children: [Inline & Node] = []) {\n        self.init()\n        guard !children.isEmpty else { return }\n        for child in children {\n            append(child: child)\n        }\n    }\n\n    #if swift(>=5.4)\n    public convenience init(@ContainerOfInlineElementsBuilder _ builder: () -> [Inline & Node]) {\n        self.init(children: builder())\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Inline/Text.swift",
    "content": "import cmark\n\n/**\n Textual content.\n\n From the [CommonMark Spec](https://spec.commonmark.org/0.29):\n\n > ## [6.11 Textual content](https://spec.commonmark.org/0.29/#textual-content)\n >\n > Any characters not given an interpretation by the above rules\n > will be parsed as plain textual content.\n*/\npublic final class Text: Node {\n    override class var cmark_node_type: cmark_node_type { return CMARK_NODE_TEXT }\n\n    public convenience init(literal: String? = nil) {\n        self.init()\n        self.literal = literal\n    }\n\n    public convenience init(_ block: () -> String?) {\n        self.init(literal: block())\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Nodes/Node.swift",
    "content": "import cmark\n\n/// A CommonMark node.\npublic class Node: Codable {\n    class var cmark_node_type: cmark_node_type { return CMARK_NODE_NONE }\n\n    /// A pointer to the underlying `cmark_node` for the node.\n    final let cmark_node: OpaquePointer\n\n    /// Whether the underlying `cmark_node` should be freed upon deallocation.\n    var managed: Bool = false\n\n    /**\n     Creates a node from a `cmark_node` pointer.\n\n     - Parameter cmark_node: A `cmark_node` pointer.\n     */\n    required init(_ cmark_node: OpaquePointer) {\n        self.cmark_node = cmark_node\n        assert(type(of: self) != Node.self)\n        assert(cmark_node_get_type(cmark_node) == type(of: self).cmark_node_type)\n    }\n\n    convenience init(nonrecursively: Void) {\n        self.init()\n    }\n\n    convenience init() {\n        self.init(cmark_node_new(type(of: self).cmark_node_type))\n        self.managed = true\n    }\n\n    deinit {\n        guard managed else { return }\n        cmark_node_free(cmark_node)\n    }\n\n    /**\n     Creates and returns the `Node` subclass corresponding to\n     the type of a `cmark_node` pointer.\n\n     - Parameter cmark_node: A `cmark_node` pointer.\n     - Returns: An instance of a `Node` subclass.\n     */\n    static func create(for cmark_node: OpaquePointer!) -> Node? {\n        guard let cmark_node = cmark_node else { return nil }\n\n        switch cmark_node_get_type(cmark_node) {\n        case CMARK_NODE_DOCUMENT:\n            return Document(cmark_node)\n        case CMARK_NODE_BLOCK_QUOTE:\n            return BlockQuote(cmark_node)\n        case CMARK_NODE_LIST:\n            switch cmark_node_get_list_type(cmark_node) {\n            case CMARK_BULLET_LIST:\n                return List(cmark_node)\n            case CMARK_ORDERED_LIST:\n                return List(cmark_node)\n            default:\n                return nil\n            }\n        case CMARK_NODE_ITEM:\n            return List.Item(cmark_node)\n        case CMARK_NODE_CODE_BLOCK:\n            return CodeBlock(cmark_node)\n        case CMARK_NODE_HTML_BLOCK:\n            return HTMLBlock(cmark_node)\n        case CMARK_NODE_PARAGRAPH:\n            return Paragraph(cmark_node)\n        case CMARK_NODE_HEADING:\n            return Heading(cmark_node)\n        case CMARK_NODE_THEMATIC_BREAK:\n            return ThematicBreak(cmark_node)\n        case CMARK_NODE_TEXT:\n            return Text(cmark_node)\n        case CMARK_NODE_SOFTBREAK:\n            return SoftLineBreak(cmark_node)\n        case CMARK_NODE_LINEBREAK:\n            return HardLineBreak(cmark_node)\n        case CMARK_NODE_CODE:\n            return Code(cmark_node)\n        case CMARK_NODE_HTML_INLINE:\n            return RawHTML(cmark_node)\n        case CMARK_NODE_EMPH:\n            return Emphasis(cmark_node)\n        case CMARK_NODE_STRONG:\n            return Strong(cmark_node)\n        case CMARK_NODE_LINK:\n            return Link(cmark_node)\n        case CMARK_NODE_IMAGE:\n            return Image(cmark_node)\n        default:\n            return nil\n        }\n    }\n\n    func unlink() {\n        cmark_node_unlink(self.cmark_node)\n        self.managed = true\n    }\n\n    /// The line and column range of the element in the document.\n    public var range: ClosedRange<Document.Position> {\n        let start = Document.Position(line: numericCast(cmark_node_get_start_line(cmark_node)), column: numericCast(cmark_node_get_start_column(cmark_node)))\n        let end = Document.Position(line: max(start.line, numericCast(cmark_node_get_end_line(cmark_node))), column: max(start.column, numericCast(cmark_node_get_end_column(cmark_node))))\n\n        return start...end\n    }\n\n    /// The parent of the element, if any.\n    public var parent: Node? {\n        return Node.create(for: cmark_node_parent(cmark_node))\n    }\n\n    // MARK: - Rendering\n\n    /// Formats for rendering a document.\n    public enum RenderingFormat {\n        /// CommonMark\n        case commonmark\n\n        /// HTML\n        case html\n\n        /// XML\n        case xml\n\n        /// LaTeX\n        case latex\n\n        /// Manpage\n        case manpage\n    }\n\n    /// Options for rendering a CommonMark document.\n    public struct RenderingOptions: OptionSet {\n        public var rawValue: Int32\n\n        public init(rawValue: Int32 = CMARK_OPT_DEFAULT) {\n            self.rawValue = rawValue\n        }\n\n        /**\n         Render raw HTML and \"unsafe\" links.\n\n         A link is considered to be \"unsafe\"\n         if its scheme is `javascript:`, `vbscript:`, or `file:`,\n         or if its scheme is `data:`\n         and the MIME type of the encoded data isn't one of the following:\n\n         - `image/png`\n         - `image/gif`\n         - `image/jpeg`\n         - `image/webp`\n\n         By default,\n         raw HTML is replaced by a placeholder HTML comment.\n         Unsafe links are replaced by empty strings.\n\n         - Important: This option has an effect only when rendering HTML.\n         */\n        public static let unsafe = Self(rawValue: CMARK_OPT_UNSAFE)\n\n        /**\n         Render softbreak elements as spaces.\n\n         - Important: This option has no effect when rendering XML.\n         */\n        public static let noBreaks = Self(rawValue: CMARK_OPT_NOBREAKS)\n\n        /**\n         Render softbreak elements as hard line breaks.\n\n         - Important: This option has no effect when rendering XML.\n         */\n        public static let hardBreaks = Self(rawValue: CMARK_OPT_HARDBREAKS)\n\n        /**\n         Include a `data-sourcepos` attribute on all block elements\n         to map the rendered output to the source input.\n\n         - Important: This option has an effect only when rendering HTML or XML.\n         */\n        public static let includeSourcePosition = Self(rawValue: CMARK_OPT_SOURCEPOS)\n    }\n\n    /**\n     Render a document into a given format with the specified options.\n\n     - Parameters:\n        - format: The rendering format\n        - options: The rendering options\n        - width: The column width used to wrap lines for rendered output\n                 (`.commonmark`, `.man`, and `.latex` formats only).\n                 Must be a positive number.\n                 Pass `0` to prevent line wrapping.\n     - Returns: The rendered text.\n     */\n    public func render(format: RenderingFormat, options: RenderingOptions = [], width: Int = 0) -> String {\n        precondition(width >= 0)\n\n        let cString: UnsafeMutablePointer<CChar>\n\n        switch format {\n        case .commonmark:\n            cString = cmark_render_commonmark(cmark_node, options.rawValue, Int32(clamping: width))\n        case .html:\n            cString = cmark_render_html(cmark_node, options.rawValue)\n        case .xml:\n            cString = cmark_render_xml(cmark_node, options.rawValue)\n        case .latex:\n            cString = cmark_render_latex(cmark_node, options.rawValue, Int32(clamping: width))\n        case .manpage:\n            cString = cmark_render_man(cmark_node, options.rawValue, Int32(clamping: width))\n        }\n\n        defer {\n            free(cString)\n        }\n\n        return String(cString: cString)\n    }\n\n    // MARK: - Codable\n\n    public required convenience init(from decoder: Decoder) throws {\n        let container = try decoder.singleValueContainer()\n        let commonmark = try container.decode(String.self)\n\n        let document = try Document(commonmark, options: [])\n        let node: Node\n\n        switch Self.cmark_node_type {\n        case CMARK_NODE_DOCUMENT:\n            node = document\n        case CMARK_NODE_BLOCK_QUOTE,\n             CMARK_NODE_LIST,\n             CMARK_NODE_ITEM,\n             CMARK_NODE_CODE_BLOCK,\n             CMARK_NODE_HTML_BLOCK,\n             CMARK_NODE_CUSTOM_BLOCK,\n             CMARK_NODE_PARAGRAPH,\n             CMARK_NODE_HEADING,\n             CMARK_NODE_THEMATIC_BREAK:\n            node = try Self.extractRootBlock(from: document, in: container)\n        case CMARK_NODE_TEXT,\n             CMARK_NODE_SOFTBREAK,\n             CMARK_NODE_LINEBREAK,\n             CMARK_NODE_CODE,\n             CMARK_NODE_HTML_INLINE,\n             CMARK_NODE_CUSTOM_INLINE,\n             CMARK_NODE_EMPH,\n             CMARK_NODE_STRONG,\n             CMARK_NODE_LINK,\n             CMARK_NODE_IMAGE:\n            node = try Self.extractRootInline(from: document, in: container)\n        default:\n            throw DecodingError.dataCorruptedError(in: container, debugDescription: \"unsupported node type\")\n        }\n\n        // If the extracted node is not managed, then we most likely\n        // introduced a memory bug in our extraction logic:\n        assert(\n            node.managed,\n            \"Expected extracted node to be managed\"\n        )\n\n        // Un-assign memory management duties from old owning node:\n        node.managed = false\n\n        self.init(node.cmark_node)\n\n        // Re-assign memory management duties to new owning node:\n        self.managed = true\n    }\n\n    public func encode(to encoder: Encoder) throws {\n        var container = encoder.singleValueContainer()\n        try container.encode(description)\n    }\n\n    private static func extractRootBlock(from document: Document, in container: SingleValueDecodingContainer) throws -> Self {\n        // Unlink the children from the document node to prevent dangling pointers to the parent.\n        let documentChildren = document.removeChildren()\n        guard let block = documentChildren.first as? Self,\n            documentChildren.count == 1\n        else {\n            throw DecodingError.dataCorruptedError(in: container, debugDescription: \"expected single block node\")\n        }\n\n        assert(block.managed)\n        return block\n    }\n\n    private static func extractRootInline(from document: Document, in container: SingleValueDecodingContainer) throws -> Self {\n        // Unlink the children from the document node to prevent dangling pointers to the parent.\n        let documentChildren = document.removeChildren()\n        guard let paragraph = documentChildren.first as? Paragraph,\n            documentChildren.count == 1\n        else {\n            throw DecodingError.dataCorruptedError(in: container, debugDescription: \"expected single paragraph node\")\n        }\n\n        // Unlink the children from the root node to prevent dangling pointers to the parent.\n        let paragraphChildren = paragraph.removeChildren()\n        guard let inline = paragraphChildren.first as? Self,\n            paragraphChildren.count == 1\n        else {\n            throw DecodingError.dataCorruptedError(in: container, debugDescription: \"expected single inline node\")\n        }\n\n        assert(inline.managed)\n        return inline\n    }\n}\n\n// MARK: - Equatable\n\nextension Node: Equatable {\n    public static func == (lhs: Node, rhs: Node) -> Bool {\n        return lhs.cmark_node == rhs.cmark_node\n    }\n}\n\n// MARK: - Hashable\n\nextension Node: Hashable {\n    public func hash(into hasher: inout Hasher) {\n        hasher.combine(cmark_node)\n    }\n}\n\n// MARK: - CustomStringConvertible\n\nextension Node: CustomStringConvertible {\n    public var description: String {\n        self.render(format: .commonmark)\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Result Builders/ContainerOfBlocksBuilder.swift",
    "content": "#if swift(>=5.4)\n@resultBuilder\npublic struct ContainerOfBlocksBuilder {\n    /// Required by every result builder to build combined results from\n    /// statement blocks.\n    public static func buildBlock(_ components: [Block & Node]...) -> [Block & Node] {\n        return components.flatMap { $0 }\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: Block & Node) -> [Block & Node] {\n        return [expression]\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: [Block & Node]) -> [Block & Node] {\n        return expression\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: Section) -> [Block & Node] {\n        return expression.children\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: String?) -> [Block & Node] {\n        guard let expression = expression, !expression.isEmpty else { return [] }\n        \n        let document = try? Document(expression)\n\n        // Unlink the children from the document node to prevent dangling pointers to the parent.\n        let children = document?.removeChildren() ?? []\n\n        return children\n    }\n\n    /// Enables support for `if` statements that do not have an `else`.\n    public static func buildOptional(_ component: [Block & Node]?) -> [Block & Node] {\n        return component ?? []\n    }\n\n    /// With buildEither(second:), enables support for 'if-else' and 'switch'\n    /// statements by folding conditional results into a single result.\n    public static func buildEither(first component: [Block & Node]) -> [Block & Node] {\n        return component\n    }\n\n    /// With buildEither(first:), enables support for 'if-else' and 'switch'\n    /// statements by folding conditional results into a single result.\n    public static func buildEither(second component: [Block & Node]) -> [Block & Node] {\n        return component\n    }\n\n    /// Enables support for 'for..in' loops by combining the\n    /// results of all iterations into a single result.\n    public static func buildArray(_ components: [[Block & Node]]) -> [Block & Node] {\n        return components.flatMap { $0 }\n    }\n\n    /// If declared, this will be called on the partial result of an 'if\n    /// #available' block to allow the result builder to erase type\n    /// information.\n    public static func buildLimitedAvailability(_ component: [Block & Node]) -> [Block & Node] {\n        return component\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/CommonMark/Result Builders/ContainerOfInlineElementsBuilder.swift",
    "content": "#if swift(>=5.4)\n@resultBuilder\npublic struct ContainerOfInlineElementsBuilder {\n    /// Required by every result builder to build combined results from\n    /// statement blocks.\n    public static func buildBlock(_ components: [Inline & Node]...) -> [Inline & Node] {\n        return components.flatMap { $0 }\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: String?) -> [Inline & Node] {\n        guard let expression = expression, !expression.isEmpty else { return [] }\n\n        return [Text(literal: expression)]\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: Inline & Node) -> [Inline & Node] {\n        return [expression]\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: [Inline & Node]) -> [Inline & Node] {\n        return expression\n    }\n\n    /// Enables support for `if` statements that do not have an `else`.\n    public static func buildOptional(_ component: [Inline & Node]?) -> [Inline & Node] {\n        return component ?? []\n    }\n\n    /// With buildEither(second:), enables support for 'if-else' and 'switch'\n    /// statements by folding conditional results into a single result.\n    public static func buildEither(first component: [Inline & Node]) -> [Inline & Node] {\n        return component\n    }\n\n    /// With buildEither(first:), enables support for 'if-else' and 'switch'\n    /// statements by folding conditional results into a single result.\n    public static func buildEither(second component: [Inline & Node]) -> [Inline & Node] {\n        return component\n    }\n\n    /// Enables support for 'for..in' loops by combining the\n    /// results of all iterations into a single result.\n    public static func buildArray(_ components: [[Inline & Node]]) -> [Inline & Node] {\n        return components.flatMap { $0 }\n    }\n\n    /// If declared, this will be called on the partial result of an 'if\n    /// #available' block to allow the result builder to erase type\n    /// information.\n    public static func buildLimitedAvailability(_ component: [Inline & Node]) -> [Inline & Node] {\n        return component\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/CommonMark/Result Builders/ListBuilder.swift",
    "content": "#if swift(>=5.4)\n@resultBuilder\npublic struct ListBuilder {\n    /// Required by every result builder to build combined results from\n    /// statement blocks.\n    public static func buildBlock(_ components: [List.Item]...) -> [List.Item] {\n        return components.flatMap { $0 }\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: String?) -> [List.Item] {\n        guard let expression = expression, !expression.isEmpty else { return [] }\n\n        return [List.Item(children: [Paragraph(text: expression)])]\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: Inline & Node) -> [List.Item] {\n        return [List.Item(children: [expression])]\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: Block & Node) -> [List.Item] {\n        return [List.Item(children: [expression])]\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: [Inline & Node]) -> [List.Item] {\n        return [List.Item(children: expression)]\n    }\n\n    /// If declared, provides contextual type information for statement\n    /// expressions to translate them into partial results.\n    public static func buildExpression(_ expression: [Block & Node]) -> [List.Item] {\n        return [List.Item(children: expression)]\n    }\n\n    /// Enables support for `if` statements that do not have an `else`.\n    public static func buildOptional(_ component: [List.Item]?) -> [List.Item] {\n        return component ?? []\n    }\n\n    /// With buildEither(second:), enables support for 'if-else' and 'switch'\n    /// statements by folding conditional results into a single result.\n    public static func buildEither(first component: [List.Item]) -> [List.Item] {\n        return component\n    }\n\n    /// With buildEither(first:), enables support for 'if-else' and 'switch'\n    /// statements by folding conditional results into a single result.\n    public static func buildEither(second component: [List.Item]) -> [List.Item] {\n        return component\n    }\n\n    /// Enables support for 'for..in' loops by combining the\n    /// results of all iterations into a single result.\n    public static func buildArray(_ components: [[List.Item]]) -> [List.Item] {\n        return components.flatMap { $0 }\n    }\n\n    /// If declared, this will be called on the partial result of an 'if\n    /// #available' block to allow the result builder to erase type\n    /// information.\n    public static func buildLimitedAvailability(_ component: [List.Item]) -> [List.Item] {\n        return component\n    }\n}\n#endif\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Block.swift",
    "content": "import cmark\n\n/// A block structure element.\npublic protocol Block {}\n\n// MARK: -\n\n/// A block that can contain other blocks.\npublic protocol ContainerBlock: Block {}\n\nextension BlockQuote: ContainerBlock {}\nextension List: ContainerBlock {}\nextension List.Item: ContainerBlock {}\n\n// MARK: -\n\n/// A block that can only contain inline elements.\npublic protocol LeafBlock: Block {}\n\nextension Heading: LeafBlock {}\nextension Paragraph: LeafBlock {}\nextension HTMLBlock: LeafBlock {}\nextension CodeBlock: LeafBlock {}\nextension ThematicBreak: LeafBlock {}\n\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Children.swift",
    "content": "import cmark\n\nstruct Children: Sequence {\n    var cmark_node: OpaquePointer\n\n    init(of node: Node) {\n        cmark_node = node.cmark_node\n    }\n\n    init(of document: Document) {\n        cmark_node = document.cmark_node\n    }\n\n    func makeIterator() -> AnyIterator<Node> {\n        var iterator = CMarkNodeChildIterator(cmark_node)\n        return AnyIterator {\n            guard let child = iterator.next() else { return nil }\n            return Node.create(for: child)\n        }\n    }\n}\n\nstruct CMarkNodeChildIterator: IteratorProtocol {\n    var current: OpaquePointer!\n\n    init(_ node: OpaquePointer!) {\n        current = cmark_node_first_child(node)\n    }\n\n    mutating func next() -> OpaquePointer? {\n        guard let next = current else { return nil }\n        defer { current = cmark_node_next(current) }\n        return next\n    }\n}\n\n// MARK: -\n\npublic protocol ContainerOfBlocks: Node {\n    var children: [Block & Node] { get }\n}\n\nextension Document: ContainerOfBlocks {}\nextension BlockQuote: ContainerOfBlocks {}\n\nextension ContainerOfBlocks {\n    /**\n     The block elements contained by the node.\n\n     - Important: The returned child nodes are valid only during the lifetime of their parent.\n                  Use the `removeChildren()` method to detach and access children\n                  beyond the lifetime of their parent.\n     */\n    public var children: [Block & Node] {\n        get {\n            return Children(of: self).compactMap { $0 as? Block & Node }\n        }\n\n        set {\n            for child in children {\n                remove(child: child)\n            }\n\n            for child in newValue {\n                append(child: child)\n            }\n        }\n    }\n\n    /**\n     Adds a block to the beginning of the node's children.\n\n     - Parameters:\n        - child: The block to add.\n     - Returns: `true` if successful, otherwise `false`.\n     */\n    @discardableResult\n    public func prepend(child: Block & Node) -> Bool {\n        guard cmark_node_prepend_child(cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Adds a block to the end of the node's children.\n\n     - Parameters:\n        - child: The block to add.\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func append(child: Block & Node) -> Bool {\n        guard cmark_node_append_child(cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Inserts a block to the node's children before a specified sibling.\n\n     - Parameters:\n        - child: The block to add.\n        - sibling: The child before which the block is added\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func insert(child: Block & Node, before sibling: Block & Node) -> Bool {\n        guard cmark_node_insert_before(sibling.cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Inserts a block to the node's children after a specified sibling.\n\n     - Parameters:\n        - child: The block to add.\n        - sibling: The child after which the block is added\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func insert(child: Block & Node, after sibling: Block & Node) -> Bool {\n        guard cmark_node_insert_after(sibling.cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Replaces a block with the specified node.\n\n     - Parameters:\n        - child: The block to replace.\n        - replacement: The block to replace the existing block.\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func replace(child: Block & Node, with replacement: Block & Node) -> Bool {\n        guard cmark_node_replace(child.cmark_node, replacement.cmark_node) == 1 else { return false }\n\n        replacement.managed = false\n        child.managed = true\n\n        return true\n    }\n\n    /**\n     Removes a block from the node's children.\n\n     - Parameters:\n        - child: The block to remove.\n     - Returns: `true` if successful, otherwise `false`.\n     */\n    @discardableResult\n    public func remove(child: Block & Node) -> Bool {\n        guard child.parent == self else { return false }\n\n        child.unlink()\n\n        return true\n    }\n\n    /**\n     Removes and returns the node's children.\n\n     - Returns: An array of block structure elements.\n     */\n    @discardableResult\n    public func removeChildren() -> [Block & Node] {\n        var children: [Block & Node] = []\n\n        for child in self.children {\n            guard remove(child: child) else { continue }\n            children.append(child)\n        }\n\n        return children\n    }\n}\n\n// MARK: -\n\npublic protocol ContainerOfInlineElements: Node {\n    var children: [Inline & Node] { get }\n}\n\nextension Heading: ContainerOfInlineElements {}\nextension Paragraph: ContainerOfInlineElements {}\nextension CodeBlock: ContainerOfInlineElements {}\nextension ThematicBreak: ContainerOfInlineElements {}\nextension Strong: ContainerOfInlineElements {}\nextension Emphasis: ContainerOfInlineElements {}\nextension Link: ContainerOfInlineElements {}\n\nextension ContainerOfInlineElements {\n    /**\n     The inline elements contained by the node.\n\n     - Important: The returned child nodes are valid only during the lifetime of their parent.\n                  Use the `removeChildren()` method to detach and access children\n                  beyond the lifetime of their parent.\n     */\n    public var children: [Inline & Node] {\n        get {\n            return Children(of: self).compactMap { $0 as? Inline & Node }\n        }\n\n        set {\n            for child in children {\n                remove(child: child)\n            }\n\n            for child in newValue {\n                append(child: child)\n            }\n        }\n    }\n\n    /**\n     Adds an inline element to the beginning of the node's children.\n\n     - Parameters:\n        - child: The inline element to add.\n     - Returns: `true` if successful, otherwise `false`.\n     */\n    @discardableResult\n    public func prepend(child: Inline & Node) -> Bool {\n        guard cmark_node_prepend_child(cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Adds an inline element to the end of the node's children.\n\n     - Parameters:\n        - child: The inline element to add.\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func append(child: Inline & Node) -> Bool {\n        guard cmark_node_append_child(cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Inserts an inline element to the node's children before a specified sibling.\n\n     - Parameters:\n        - child: The inline element to add.\n        - sibling: The child before which the inline element is added\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func insert(child: Inline & Node, before sibling: Inline & Node) -> Bool {\n        guard cmark_node_insert_before(sibling.cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Inserts an inline element to the node's children after a specified sibling.\n\n     - Parameters:\n        - child: The inline element to add.\n        - sibling: The child after which the inline element is added\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func insert(child: Inline & Node, after sibling: Inline & Node) -> Bool {\n        guard cmark_node_insert_after(sibling.cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Replaces an inline element with the specified node.\n\n     - Parameters:\n        - child: The inline element to replace.\n        - replacement: The inline element to replace the existing inline element.\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func replace(child: Inline & Node, with replacement: Inline & Node) -> Bool {\n        guard cmark_node_replace(child.cmark_node, replacement.cmark_node) == 1 else { return false }\n\n        replacement.managed = false\n        child.managed = true\n\n        return true\n    }\n\n    /**\n     Removes an inline element from the node's children.\n\n     - Parameters:\n        - child: The inline element to remove.\n     - Returns: `true` if successful, otherwise `false`.\n     */\n    @discardableResult\n    public func remove(child: Inline & Node) -> Bool {\n        guard child.parent == self else { return false }\n\n        child.unlink()\n\n        return true\n    }\n\n    /**\n     Removes and returns the node's children.\n\n     - Returns: An array of inline content elements.\n     */\n    @discardableResult\n    public func removeChildren() -> [Inline & Node] {\n        var children: [Inline & Node] = []\n\n        for child in self.children {\n            guard remove(child: child) else { continue }\n            children.append(child)\n        }\n\n        return children\n    }\n}\n\n// MARK: -\n\nextension List {\n    /**\n     The list's items.\n\n     - Important: The returned child nodes are valid only during the lifetime of their parent.\n                  Use the `removeChildren()` method to detach and access children\n                  beyond the lifetime of their parent.\n     */\n    public var children: [Item] {\n        get {\n            return Children(of: self).compactMap { $0 as? Item }\n        }\n\n        set {\n            for child in children {\n                remove(child: child)\n            }\n\n            for child in newValue {\n                append(child: child)\n            }\n        }\n    }\n\n    /**\n     Adds an item to the beginning of the list.\n\n     - Parameters:\n        - child: The item to add.\n     - Returns: `true` if successful, otherwise `false`.\n     */\n    @discardableResult\n    public func prepend(child: Item) -> Bool {\n        guard cmark_node_prepend_child(cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Adds an to the end of the list.\n\n     - Parameters:\n        - child: The item to add.\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func append(child: Item) -> Bool {\n        guard cmark_node_append_child(cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Inserts an item to the list before a specified sibling.\n\n     - Parameters:\n        - child: The item to add.\n        - sibling: The item before which the new item is added\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func insert(child: Item, before sibling: Item) -> Bool {\n        guard cmark_node_insert_before(sibling.cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Inserts an item to the list after a specified sibling.\n\n     - Parameters:\n        - child: The item to add.\n        - sibling: The item after which the new item is added\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func insert(child: Item, after sibling: Item) -> Bool {\n        guard cmark_node_insert_after(sibling.cmark_node, child.cmark_node) == 1 else { return false }\n\n        child.managed = false\n\n        return true\n    }\n\n    /**\n     Replaces an item with the specified node.\n\n     - Parameters:\n        - child: The item to replace.\n        - replacement: The item to replace the existing item.\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func replace(child: Item, with replacement: Item) -> Bool {\n        guard cmark_node_replace(child.cmark_node, replacement.cmark_node) == 1 else { return false }\n\n        replacement.managed = false\n        child.managed = true\n\n        return true\n    }\n\n    /**\n     Removes an item from the list.\n\n     - Parameters:\n        - child: The item to remove.\n     - Returns: `true` if successful, otherwise `false`.\n     */\n    @discardableResult\n    public func remove(child: Item) -> Bool {\n        guard child.parent == self else { return false }\n        child.unlink()\n\n        return true\n    }\n\n    /**\n     Removes and returns the list's items.\n\n     - Returns: An array of list items.\n     */\n    @discardableResult\n    public func removeChildren() -> [Item] {\n        var children: [Item] = []\n\n        for child in self.children {\n            guard remove(child: child) else { continue }\n            children.append(child)\n        }\n\n        return children\n    }\n}\n\n// MARK: -\n\nextension List.Item {\n    /**\n     The elements contained by the list item.\n\n     - Important: The returned child nodes are valid only during the lifetime of their parent.\n                  Use the `removeChildren()` method to detach and access children\n                  beyond the lifetime of their parent.\n     */\n    public var children: [Node] {\n        get {\n            return Children(of: self).map { $0 }\n        }\n\n        set {\n            for child in children {\n                remove(child: child)\n            }\n\n            for child in newValue {\n                append(child: child)\n            }\n        }\n    }\n\n    /**\n     Adds a node to the beginning of the list item's children.\n\n     - Parameters:\n        - child: The node to add.\n     - Returns: `true` if successful, otherwise `false`.\n     */\n    @discardableResult\n    public func prepend(child: Node) -> Bool {\n        guard cmark_node_prepend_child(cmark_node, child.cmark_node) == 1 else { return false }\n        child.managed = false\n        return true\n    }\n\n    /**\n     Adds a node to the end of the list item's children.\n\n     - Parameters:\n        - child: The node to add.\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func append(child: Node) -> Bool {\n        guard cmark_node_append_child(cmark_node, child.cmark_node) == 1 else { return false }\n        \n        child.managed = false\n        \n        return true\n    }\n\n    /**\n     Inserts a node to the list item's children before a specified sibling.\n\n     - Parameters:\n        - child: The node to add.\n        - sibling: The child before which the node is added\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func insert(child: Node, before sibling: Node) -> Bool {\n        guard cmark_node_insert_before(sibling.cmark_node, child.cmark_node) == 1 else { return false }\n        child.managed = false\n        return true\n    }\n\n    /**\n     Inserts a node to the list item's children after a specified sibling.\n\n     - Parameters:\n        - child: The node to add.\n        - sibling: The child after which the node is added\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func insert(child: Node, after sibling: Node) -> Bool {\n        guard cmark_node_insert_after(sibling.cmark_node, child.cmark_node) == 1 else { return false }\n        child.managed = false\n        return true\n    }\n\n    /**\n     Replaces a node with a specified node.\n\n     - Parameters:\n        - child: The node to replace.\n        - replacement: The node to replace the existing node.\n     - Returns: `true` if successful, otherwise `false`.\n    */\n    @discardableResult\n    public func replace(child: Node, with replacement: Node) -> Bool {\n        guard cmark_node_replace(child.cmark_node, replacement.cmark_node) == 1 else { return false }\n        replacement.managed = false\n        return true\n    }\n\n    /**\n     Removes a node from the list item's children.\n\n     - Parameters:\n        - child: The node to remove.\n     - Returns: `true` if successful, otherwise `false`.\n     */\n    @discardableResult\n    public func remove(child: Node) -> Bool {\n        guard child.parent == self else { return false }\n        child.unlink()\n\n        return true\n    }\n\n    /**\n     Removes and returns the list item's children.\n\n     - Returns: An array of nodes.\n     */\n    public func removeChildren() -> [Node] {\n        var children: [Node] = []\n\n        for child in self.children {\n            guard remove(child: child) else { continue }\n            children.append(child)\n        }\n\n        return children\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Fragment.swift",
    "content": "public struct Fragment {\n    public var children: [Block & Node] = []\n\n    init(children: [Block & Node]) {\n        self.children = children\n    }\n\n    public init(_ string: String) {\n        let document = try? Document(string)\n        // Unlink the children from the document node to prevent dangling pointers to the parent.\n        let children = document?.removeChildren() ?? []\n        self.init(children: children)\n    }\n//\n//    public init(@CommonMarkBuilder _ builder: () -> BlockConvertible) {\n//        self.init(children: builder().blockValue)\n//    }\n//    public init(@CommonMarkBuilder _ builder: () -> BlockConvertible) {\n//        self.init(children: builder().blockValue)\n//    }\n}\n\n// MARK: - BlockConvertible\n//\n//extension Fragment: BlockConvertible {\n//    public var blockValue: [Block & Node] {\n//        return children\n//    }\n//}\n//\n//// MARK: - ListItemConvertible\n//\n//extension Fragment: ListItemConvertible {\n//    public var listItemValue: [List.Item] {\n//        return children as? [List.Item] ?? [List.Item(children: children)]\n//    }\n//}\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Inline.swift",
    "content": "/// An inline content element.\npublic protocol Inline {}\n\n// MARK: -\n\nextension Text: Inline {}\nextension Strong: Inline {}\nextension Emphasis: Inline {}\nextension Link: Inline {}\nextension Image: Inline {}\nextension Code: Inline {}\nextension RawHTML: Inline {}\nextension SoftLineBreak: Inline {}\nextension HardLineBreak: Inline {}\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/LineBreak.swift",
    "content": "/// A line break element.\npublic protocol LineBreak {}\n\n// MARK: -\n\nextension HardLineBreak: LineBreak {}\nextension SoftLineBreak: LineBreak {}\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Linked.swift",
    "content": "import cmark\n\npublic protocol Linked: Node {}\nextension Link: Linked {}\nextension Image: Linked {}\n\nextension Linked {\n    public var urlString: String? {\n        get {\n            return String(cString: cmark_node_get_url(cmark_node))\n        }\n\n        set {\n            cmark_node_set_url(cmark_node, newValue)\n        }\n    }\n\n    public var title: String? {\n        get {\n            return String(cString: cmark_node_get_title(cmark_node))\n        }\n\n        set {\n            cmark_node_set_title(cmark_node, newValue)\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Literal.swift",
    "content": "import cmark\n\n/// An element with literal contents.\npublic protocol Literal: Node {\n    init(literal: String?)\n}\n\n// MARK: -\n\nextension Literal {\n    /// The literal contents of the element.\n    public var literal: String? {\n        get {\n            return String(cString: cmark_node_get_literal(cmark_node))\n        }\n        \n        set {\n            cmark_node_set_literal(cmark_node, newValue)\n        }\n    }\n}\n\n\n// MARK: -\n\nextension Code: Literal {}\nextension CodeBlock: Literal {}\nextension RawHTML: Literal {}\nextension HTMLBlock: Literal {}\nextension Text: Literal {}\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Section.swift",
    "content": "public struct Section {\n    private var levelAdjustment: Int\n\n    public var children: [Block & Node] = []\n\n    init(levelAdjustment: Int = +1, children: [Block & Node]) {\n        self.levelAdjustment = levelAdjustment\n        self.children = children\n    }\n\n    #if swift(>=5.4)\n    public init(levelAdjustment: Int = +1, @ContainerOfBlocksBuilder _ builder: () -> [Block & Node]) {\n        self.init(levelAdjustment: levelAdjustment, children: builder().map { child in\n            guard let heading = child as? Heading else { return child }\n            heading.level += levelAdjustment\n            return heading\n        })\n    }\n    #endif\n}\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Visitable.swift",
    "content": "public protocol Visitable {\n    func accept<T: Visitor>(visitor: T)\n}\n\n// MARK: - Document\n\nextension Document: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(document: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(document: self)\n    }\n}\n\n// MARK: - Container Blocks\n\nextension BlockQuote: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(blockQuote: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(blockQuote: self)\n    }\n}\n\nextension List: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(list: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(list: self)\n    }\n}\n\nextension List.Item: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(listItem: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(listItem: self)\n    }\n}\n\n// MARK: - Leaf Blocks\n\nextension Heading: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(heading: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(heading: self)\n    }\n}\n\nextension Paragraph: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(paragraph: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(paragraph: self)\n    }\n}\n\nextension HTMLBlock: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        _ = visitor.visit(self, by: visitor.visit(htmlBlock: self))\n        visitor.visitPost(htmlBlock: self)\n    }\n}\n\nextension CodeBlock: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(codeBlock: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(codeBlock: self)\n    }\n}\n\nextension ThematicBreak: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(thematicBreak: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(thematicBreak: self)\n    }\n}\n\n// MARK: - Inline\n\nextension Text: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        _ = visitor.visit(self, by: visitor.visit(text: self))\n        visitor.visitPost(text: self)\n    }\n}\n\nextension Strong: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(strong: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(strong: self)\n    }\n}\n\nextension Emphasis: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(emphasis: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(emphasis: self)\n    }\n}\n\nextension Link: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        let continueKind = visitor.visit(self, by: visitor.visit(link: self))\n        if continueKind == .visitChildren {\n            self.walkVisitableChildren(with: visitor)\n        }\n        visitor.visitPost(link: self)\n    }\n}\n\nextension Image: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        _ = visitor.visit(self, by: visitor.visit(image: self))\n        visitor.visitPost(image: self)\n    }\n}\n\nextension Code: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        _ = visitor.visit(self, by: visitor.visit(code: self))\n        visitor.visitPost(code: self)\n    }\n}\n\nextension RawHTML: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        _ = visitor.visit(self, by: visitor.visit(rawHTML: self))\n        visitor.visitPost(rawHTML: self)\n    }\n}\n\nextension SoftLineBreak: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        _ = visitor.visit(self, by: visitor.visit(softLineBreak: self))\n        visitor.visitPost(softLineBreak: self)\n    }\n}\n\nextension HardLineBreak: Visitable {\n    public func accept<T: Visitor>(visitor: T) {\n        _ = visitor.visit(self, by: visitor.visit(hardLineBreak: self))\n        visitor.visitPost(hardLineBreak: self)\n    }\n}\n\n// MARK: - Convenience Helpers\n\nextension ContainerOfBlocks {\n    internal var visitableChildren: AnyCollection<Visitable & Block & Node> {\n        return AnyCollection(self.children.lazy.compactMap {\n            $0 as? Visitable & Block & Node\n        })\n    }\n\n    internal func walkVisitableChildren<T: Visitor>(with visitor: T) {\n        for child in self.visitableChildren {\n            child.accept(visitor: visitor)\n        }\n    }\n}\n\nextension ContainerOfInlineElements {\n    internal var visitableChildren: AnyCollection<Visitable & Inline & Node> {\n        return AnyCollection(self.children.lazy.compactMap {\n            $0 as? Visitable & Inline & Node\n        })\n    }\n\n    internal func walkVisitableChildren<T: Visitor>(with visitor: T) {\n        for child in self.visitableChildren {\n            child.accept(visitor: visitor)\n        }\n    }\n}\n\nextension List {\n    internal var visitableChildren: AnyCollection<Visitable & List.Item> {\n        return AnyCollection(self.children)\n    }\n\n    internal func walkVisitableChildren<T: Visitor>(with visitor: T) {\n        for child in self.visitableChildren {\n            child.accept(visitor: visitor)\n        }\n    }\n}\n\nextension List.Item {\n    internal var visitableChildren: AnyCollection<Visitable & Node> {\n        return AnyCollection(self.children.lazy.compactMap {\n            $0 as? Visitable & Node\n        })\n    }\n\n    internal func walkVisitableChildren<T: Visitor>(with visitor: T) {\n        for child in self.visitableChildren {\n            child.accept(visitor: visitor)\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Supporting Types/Visitor.swift",
    "content": "public enum VisitorContinueKind {\n    /// The visitor should visit the descendents of the current node.\n    case visitChildren\n\n    /// The visitor should avoid visiting the descendents of the current node.\n    case skipChildren\n\n    /// The visitor should inherit the behavior from the current context.\n    case inherit\n\n    /// The default is `.visitChildren`\n    static let `default`: Self = .visitChildren\n\n    mutating func override(with other: Self) {\n        switch other {\n        case .visitChildren, .skipChildren:\n            self = other\n        case .inherit:\n            break\n        }\n    }\n}\n\n/// Visitor for walking a visitable structure.\n///\n/// Override the appropriate `func visit(…:)`'s return value\n/// to customize the behavior (e.g. skip a given element's children),\n/// with sub-types overriding their super-type's behavior.\n///\n/// The default implementation of `func visit(…:)`returns `.inherit`,\n/// resulting in a deep walk over the entire document.\n///\n/// ## Sub-type inheritance\n///\n/// ```plain\n/// Node\n/// ├── Block\n/// │   ├── ContainerBlock\n/// │   │   ├── BlockQuote\n/// │   │   ├── List\n/// │   │   └── List.Item\n/// │   │\n/// │   └── LeafBlock\n/// │       ├── CodeBlock\n/// │       ├── HTMLBlock\n/// │       ├── Heading\n/// │       ├── Paragraph\n/// │       └── ThematicBreak\n/// │\n/// └── Inline\n///     ├── Code\n///     ├── Emphasis\n///     ├── HardLineBreak\n///     ├── Image\n///     ├── Link\n///     ├── RawHTML\n///     ├── SoftLineBreak\n///     ├── Strong\n///     └── Text\n/// ```\n///\n/// ## Order of Visitation\n///\n/// The order of object-wise visitations is: super-type before sub-type.\n///\n/// ## Order of Post-Visitation\n///\n/// The order of object-wise visitations is: sub-type before super-type.\npublic protocol Visitor {\n    /// Walks a visitable structure.\n    /// - Parameter visitable: The structure to walk.\n    func walk<T: Visitable>(_ visitable: T)\n\n    // MARK: - Document\n\n    func visit(document: Document) -> VisitorContinueKind\n    func visitPost(document: Document)\n\n    // MARK: - Node\n\n    func visit(node: Node) -> VisitorContinueKind\n    func visitPost(node: Node)\n\n    // MARK: - Blocks\n\n    func visit(block: Block) -> VisitorContinueKind\n    func visitPost(block: Block)\n\n    // MARK: - Container Blocks\n\n    func visit(containerBlock: ContainerBlock) -> VisitorContinueKind\n    func visitPost(containerBlock: ContainerBlock)\n\n    func visit(blockQuote: BlockQuote) -> VisitorContinueKind\n    func visitPost(blockQuote: BlockQuote)\n\n    func visit(list: List) -> VisitorContinueKind\n    func visitPost(list: List)\n\n    func visit(listItem: List.Item) -> VisitorContinueKind\n    func visitPost(listItem: List.Item)\n\n    // MARK: - Leaf Blocks\n\n    /// A block that can only contain inline elements.\n    func visit(leafBlock: LeafBlock) -> VisitorContinueKind\n    func visitPost(leafBlock: LeafBlock)\n\n    func visit(heading: Heading) -> VisitorContinueKind\n    func visitPost(heading: Heading)\n\n    func visit(paragraph: Paragraph) -> VisitorContinueKind\n    func visitPost(paragraph: Paragraph)\n\n    func visit(htmlBlock: HTMLBlock) -> VisitorContinueKind\n    func visitPost(htmlBlock: HTMLBlock)\n\n    func visit(codeBlock: CodeBlock) -> VisitorContinueKind\n    func visitPost(codeBlock: CodeBlock)\n\n    func visit(thematicBreak: ThematicBreak) -> VisitorContinueKind\n    func visitPost(thematicBreak: ThematicBreak)\n\n    // MARK: - Inline\n\n    func visit(inline: Inline) -> VisitorContinueKind\n    func visitPost(inline: Inline)\n\n    func visit(text: Text) -> VisitorContinueKind\n    func visitPost(text: Text)\n\n    func visit(strong: Strong) -> VisitorContinueKind\n    func visitPost(strong: Strong)\n\n    func visit(emphasis: Emphasis) -> VisitorContinueKind\n    func visitPost(emphasis: Emphasis)\n\n    func visit(link: Link) -> VisitorContinueKind\n    func visitPost(link: Link)\n\n    func visit(image: Image) -> VisitorContinueKind\n    func visitPost(image: Image)\n\n    func visit(code: Code) -> VisitorContinueKind\n    func visitPost(code: Code)\n\n    func visit(rawHTML: RawHTML) -> VisitorContinueKind\n    func visitPost(rawHTML: RawHTML)\n\n    func visit(softLineBreak: SoftLineBreak) -> VisitorContinueKind\n    func visitPost(softLineBreak: SoftLineBreak)\n\n    func visit(hardLineBreak: HardLineBreak) -> VisitorContinueKind\n    func visitPost(hardLineBreak: HardLineBreak)\n}\n\nextension Visitor {\n    public func walk<T: Visitable>(_ visitable: T) {\n        visitable.accept(visitor: self)\n    }\n\n    // MARK: - Document\n\n    public func visit(document: Document) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(document: Document) {\n        // nothing by default\n    }\n\n    // MARK: - Node\n\n    public func visit(node: Node) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(node: Node) {\n        // nothing by default\n    }\n\n    // MARK: - Blocks\n\n    public func visit(block: Block) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(block: Block) {\n        // nothing by default\n    }\n\n    // MARK: - Container Blocks\n\n    public func visit(containerBlock: ContainerBlock) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(containerBlock: ContainerBlock) {\n        // nothing by default\n    }\n\n    public func visit(blockQuote: BlockQuote) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(blockQuote: BlockQuote) {\n        // nothing by default\n    }\n\n    public func visit(list: List) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(list: List) {\n        // nothing by default\n    }\n\n    public func visit(listItem: List.Item) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(listItem: List.Item) {\n        // nothing by default\n    }\n\n    // MARK: - Leaf Blocks\n\n    /// A block that can only contain inline elements.\n    public func visit(leafBlock: LeafBlock) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(leafBlock: LeafBlock) {\n        // nothing by default\n    }\n\n    public func visit(heading: Heading) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(heading: Heading) {\n        // nothing by default\n    }\n\n    public func visit(paragraph: Paragraph) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(paragraph: Paragraph) {\n        // nothing by default\n    }\n\n    public func visit(htmlBlock: HTMLBlock) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(htmlBlock: HTMLBlock) {\n        // nothing by default\n    }\n\n    public func visit(codeBlock: CodeBlock) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(codeBlock: CodeBlock) {\n        // nothing by default\n    }\n\n    public func visit(thematicBreak: ThematicBreak) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(thematicBreak: ThematicBreak) {\n        // nothing by default\n    }\n\n    // MARK: - Inline\n\n    public func visit(inline: Inline) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(inline: Inline) {\n        // nothing by default\n    }\n\n    public func visit(text: Text) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(text: Text) {\n        // nothing by default\n    }\n\n    public func visit(strong: Strong) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(strong: Strong) {\n        // nothing by default\n    }\n\n    public func visit(emphasis: Emphasis) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(emphasis: Emphasis) {\n        // nothing by default\n    }\n\n    public func visit(link: Link) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(link: Link) {\n        // nothing by default\n    }\n\n    public func visit(image: Image) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(image: Image) {\n        // nothing by default\n    }\n\n    public func visit(code: Code) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(code: Code) {\n        // nothing by default\n    }\n\n    public func visit(rawHTML: RawHTML) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(rawHTML: RawHTML) {\n        // nothing by default\n    }\n\n    public func visit(softLineBreak: SoftLineBreak) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(softLineBreak: SoftLineBreak) {\n        // nothing by default\n    }\n\n    public func visit(hardLineBreak: HardLineBreak) -> VisitorContinueKind {\n        return .inherit\n    }\n\n    public func visitPost(hardLineBreak: HardLineBreak) {\n        // nothing by default\n    }\n}\n\nextension Visitor {\n    internal func visit<T: Visitable>(\n        _ visitable: T,\n        by visitLeafTypeOf: @autoclosure () -> VisitorContinueKind\n    ) -> VisitorContinueKind {\n        var continueKind = VisitorContinueKind.visitChildren\n\n        let inheritedContinueKind = self.visitSuperTypesOf(visitable: visitable)\n        let leafTypeContinueKind = visitLeafTypeOf()\n\n        continueKind.override(with: inheritedContinueKind)\n        continueKind.override(with: leafTypeContinueKind)\n\n        return continueKind\n    }\n\n    internal func visitSuperTypesOf<T: Visitable>(visitable: T) -> VisitorContinueKind {\n        var continueKind: VisitorContinueKind = .inherit\n\n        if let node = visitable as? Node {\n            continueKind.override(with: self.visit(node: node))\n        }\n        if let block = visitable as? Block {\n            continueKind.override(with: self.visit(block: block))\n        }\n        if let containerBlock = visitable as? ContainerBlock {\n            continueKind.override(with: self.visit(containerBlock: containerBlock))\n        }\n        if let leafBlock = visitable as? LeafBlock {\n            continueKind.override(with: self.visit(leafBlock: leafBlock))\n        }\n        if let inline = visitable as? Inline {\n            continueKind.override(with: self.visit(inline: inline))\n        }\n\n        return continueKind\n    }\n}\n"
  },
  {
    "path": "Sources/CommonMark/Version.swift",
    "content": "import cmark\n\n/// A version number.\npublic typealias Version = (major: Int, minor: Int, patch: Int)\n\n/// The version of CommonMark used by this package.\npublic let version: Version = (\n    major: Int((cmark_version() & 0xFF0000) >> 16),\n    minor: Int((cmark_version() & 0xFF00) >> 8),\n    patch: Int((cmark_version() & 0xFF))\n)\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/AtxHeadingsTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecAtxHeadingsTests: XCTestCase {\n    func testExample32() throws {\n        let markdown = #######\"\"\"\n        # foo\n        ## foo\n        ### foo\n        #### foo\n        ##### foo\n        ###### foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>foo</h1>\n        <h2>foo</h2>\n        <h3>foo</h3>\n        <h4>foo</h4>\n        <h5>foo</h5>\n        <h6>foo</h6>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample33() throws {\n        let markdown = #######\"\"\"\n        ####### foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>####### foo</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample34() throws {\n        let markdown = #######\"\"\"\n        #5 bolt\n        \n        #hashtag\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>#5 bolt</p>\n        <p>#hashtag</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample35() throws {\n        let markdown = #######\"\"\"\n        \\## foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>## foo</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample36() throws {\n        let markdown = #######\"\"\"\n        # foo *bar* \\*baz\\*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>foo <em>bar</em> *baz*</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample37() throws {\n        let markdown = #######\"\"\"\n        #                  foo                     \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>foo</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample38() throws {\n        let markdown = #######\"\"\"\n         ### foo\n          ## foo\n           # foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h3>foo</h3>\n        <h2>foo</h2>\n        <h1>foo</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample39() throws {\n        let markdown = #######\"\"\"\n            # foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code># foo\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample40() throws {\n        let markdown = #######\"\"\"\n        foo\n            # bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo\n        # bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample41() throws {\n        let markdown = #######\"\"\"\n        ## foo ##\n          ###   bar    ###\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>foo</h2>\n        <h3>bar</h3>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample42() throws {\n        let markdown = #######\"\"\"\n        # foo ##################################\n        ##### foo ##\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>foo</h1>\n        <h5>foo</h5>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample43() throws {\n        let markdown = #######\"\"\"\n        ### foo ###     \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h3>foo</h3>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample44() throws {\n        let markdown = #######\"\"\"\n        ### foo ### b\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h3>foo ### b</h3>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample45() throws {\n        let markdown = #######\"\"\"\n        # foo#\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>foo#</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample46() throws {\n        let markdown = #######\"\"\"\n        ### foo \\###\n        ## foo #\\##\n        # foo \\#\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h3>foo ###</h3>\n        <h2>foo ###</h2>\n        <h1>foo #</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample47() throws {\n        let markdown = #######\"\"\"\n        ****\n        ## foo\n        ****\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n        <h2>foo</h2>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample48() throws {\n        let markdown = #######\"\"\"\n        Foo bar\n        # baz\n        Bar foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo bar</p>\n        <h1>baz</h1>\n        <p>Bar foo</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample49() throws {\n        let markdown = #######\"\"\"\n        ## \n        #\n        ### ###\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2></h2>\n        <h1></h1>\n        <h3></h3>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/AutolinksTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecAutolinksTests: XCTestCase {\n    func testExample590() throws {\n        let markdown = #######\"\"\"\n        <http://foo.bar.baz>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"http://foo.bar.baz\">http://foo.bar.baz</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample591() throws {\n        let markdown = #######\"\"\"\n        <http://foo.bar.baz/test?q=hello&id=22&boolean>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean\">http://foo.bar.baz/test?q=hello&amp;id=22&amp;boolean</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample592() throws {\n        let markdown = #######\"\"\"\n        <irc://foo.bar:2233/baz>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"irc://foo.bar:2233/baz\">irc://foo.bar:2233/baz</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample593() throws {\n        let markdown = #######\"\"\"\n        <MAILTO:FOO@BAR.BAZ>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"MAILTO:FOO@BAR.BAZ\">MAILTO:FOO@BAR.BAZ</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample594() throws {\n        let markdown = #######\"\"\"\n        <a+b+c:d>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"a+b+c:d\">a+b+c:d</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample595() throws {\n        let markdown = #######\"\"\"\n        <made-up-scheme://foo,bar>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"made-up-scheme://foo,bar\">made-up-scheme://foo,bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample596() throws {\n        let markdown = #######\"\"\"\n        <http://../>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"http://../\">http://../</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample597() throws {\n        let markdown = #######\"\"\"\n        <localhost:5001/foo>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"localhost:5001/foo\">localhost:5001/foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample598() throws {\n        let markdown = #######\"\"\"\n        <http://foo.bar/baz bim>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;http://foo.bar/baz bim&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample599() throws {\n        let markdown = #######\"\"\"\n        <http://example.com/\\[\\>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"http://example.com/%5C%5B%5C\">http://example.com/\\[\\</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample600() throws {\n        let markdown = #######\"\"\"\n        <foo@bar.example.com>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"mailto:foo@bar.example.com\">foo@bar.example.com</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample601() throws {\n        let markdown = #######\"\"\"\n        <foo+special@Bar.baz-bar0.com>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"mailto:foo+special@Bar.baz-bar0.com\">foo+special@Bar.baz-bar0.com</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample602() throws {\n        let markdown = #######\"\"\"\n        <foo\\+@bar.example.com>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;foo+@bar.example.com&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample603() throws {\n        let markdown = #######\"\"\"\n        <>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample604() throws {\n        let markdown = #######\"\"\"\n        < http://foo.bar >\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt; http://foo.bar &gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample605() throws {\n        let markdown = #######\"\"\"\n        <m:abc>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;m:abc&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample606() throws {\n        let markdown = #######\"\"\"\n        <foo.bar.baz>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;foo.bar.baz&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample607() throws {\n        let markdown = #######\"\"\"\n        http://example.com\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>http://example.com</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample608() throws {\n        let markdown = #######\"\"\"\n        foo@bar.example.com\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo@bar.example.com</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/BackslashEscapesTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecBackslashEscapesTests: XCTestCase {\n    func testExample298() throws {\n        let markdown = #######\"\"\"\n        \\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?@[\\]^_`{|}~</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample299() throws {\n        let markdown = #######\"\"\"\n        \\\t\\A\\a\\ \\3\\φ\\«\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>\\\t\\A\\a\\ \\3\\φ\\«</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample300() throws {\n        let markdown = #######\"\"\"\n        \\*not emphasized*\n        \\<br/> not a tag\n        \\[not a link](/foo)\n        \\`not code`\n        1\\. not a list\n        \\* not a list\n        \\# not a heading\n        \\[foo]: /url \"not a reference\"\n        \\&ouml; not a character entity\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*not emphasized*\n        &lt;br/&gt; not a tag\n        [not a link](/foo)\n        `not code`\n        1. not a list\n        * not a list\n        # not a heading\n        [foo]: /url &quot;not a reference&quot;\n        &amp;ouml; not a character entity</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample301() throws {\n        let markdown = #######\"\"\"\n        \\\\*emphasis*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>\\<em>emphasis</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample302() throws {\n        let markdown = #######\"\"\"\n        foo\\\n        bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<br />\n        bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample303() throws {\n        let markdown = #######\"\"\"\n        `` \\[\\` ``\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>\\[\\`</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample304() throws {\n        let markdown = #######\"\"\"\n            \\[\\]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>\\[\\]\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample305() throws {\n        let markdown = #######\"\"\"\n        ~~~\n        \\[\\]\n        ~~~\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>\\[\\]\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample306() throws {\n        let markdown = #######\"\"\"\n        <http://example.com?find=\\*>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"http://example.com?find=%5C*\">http://example.com?find=\\*</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample307() throws {\n        let markdown = #######\"\"\"\n        <a href=\"/bar\\/)\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <a href=\"/bar\\/)\">\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample308() throws {\n        let markdown = #######\"\"\"\n        [foo](/bar\\* \"ti\\*tle\")\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/bar*\" title=\"ti*tle\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample309() throws {\n        let markdown = #######\"\"\"\n        [foo]\n        \n        [foo]: /bar\\* \"ti\\*tle\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/bar*\" title=\"ti*tle\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample310() throws {\n        let markdown = #######\"\"\"\n        ``` foo\\+bar\n        foo\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code class=\"language-foo+bar\">foo\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/BlankLinesTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecBlankLinesTests: XCTestCase {\n    func testExample197() throws {\n        let markdown = #######\"\"\"\n          \n        \n        aaa\n          \n        \n        # aaa\n        \n          \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aaa</p>\n        <h1>aaa</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/BlockQuotesTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecBlockQuotesTests: XCTestCase {\n    func testExample198() throws {\n        let markdown = #######\"\"\"\n        > # Foo\n        > bar\n        > baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <h1>Foo</h1>\n        <p>bar\n        baz</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample199() throws {\n        let markdown = #######\"\"\"\n        ># Foo\n        >bar\n        > baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <h1>Foo</h1>\n        <p>bar\n        baz</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample200() throws {\n        let markdown = #######\"\"\"\n           > # Foo\n           > bar\n         > baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <h1>Foo</h1>\n        <p>bar\n        baz</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample201() throws {\n        let markdown = #######\"\"\"\n            > # Foo\n            > bar\n            > baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>&gt; # Foo\n        &gt; bar\n        &gt; baz\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample202() throws {\n        let markdown = #######\"\"\"\n        > # Foo\n        > bar\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <h1>Foo</h1>\n        <p>bar\n        baz</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample203() throws {\n        let markdown = #######\"\"\"\n        > bar\n        baz\n        > foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>bar\n        baz\n        foo</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample204() throws {\n        let markdown = #######\"\"\"\n        > foo\n        ---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>foo</p>\n        </blockquote>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample205() throws {\n        let markdown = #######\"\"\"\n        > - foo\n        - bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <ul>\n        <li>foo</li>\n        </ul>\n        </blockquote>\n        <ul>\n        <li>bar</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample206() throws {\n        let markdown = #######\"\"\"\n        >     foo\n            bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <pre><code>foo\n        </code></pre>\n        </blockquote>\n        <pre><code>bar\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample207() throws {\n        let markdown = #######\"\"\"\n        > ```\n        foo\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <pre><code></code></pre>\n        </blockquote>\n        <p>foo</p>\n        <pre><code></code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample208() throws {\n        let markdown = #######\"\"\"\n        > foo\n            - bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>foo\n        - bar</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample209() throws {\n        let markdown = #######\"\"\"\n        >\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample210() throws {\n        let markdown = #######\"\"\"\n        >\n        >  \n        > \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample211() throws {\n        let markdown = #######\"\"\"\n        >\n        > foo\n        >  \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>foo</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample212() throws {\n        let markdown = #######\"\"\"\n        > foo\n        \n        > bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>foo</p>\n        </blockquote>\n        <blockquote>\n        <p>bar</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample213() throws {\n        let markdown = #######\"\"\"\n        > foo\n        > bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>foo\n        bar</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample214() throws {\n        let markdown = #######\"\"\"\n        > foo\n        >\n        > bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>foo</p>\n        <p>bar</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample215() throws {\n        let markdown = #######\"\"\"\n        foo\n        > bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo</p>\n        <blockquote>\n        <p>bar</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample216() throws {\n        let markdown = #######\"\"\"\n        > aaa\n        ***\n        > bbb\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>aaa</p>\n        </blockquote>\n        <hr />\n        <blockquote>\n        <p>bbb</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample217() throws {\n        let markdown = #######\"\"\"\n        > bar\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>bar\n        baz</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample218() throws {\n        let markdown = #######\"\"\"\n        > bar\n        \n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>bar</p>\n        </blockquote>\n        <p>baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample219() throws {\n        let markdown = #######\"\"\"\n        > bar\n        >\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>bar</p>\n        </blockquote>\n        <p>baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample220() throws {\n        let markdown = #######\"\"\"\n        > > > foo\n        bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <blockquote>\n        <blockquote>\n        <p>foo\n        bar</p>\n        </blockquote>\n        </blockquote>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample221() throws {\n        let markdown = #######\"\"\"\n        >>> foo\n        > bar\n        >>baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <blockquote>\n        <blockquote>\n        <p>foo\n        bar\n        baz</p>\n        </blockquote>\n        </blockquote>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample222() throws {\n        let markdown = #######\"\"\"\n        >     code\n        \n        >    not code\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <pre><code>code\n        </code></pre>\n        </blockquote>\n        <blockquote>\n        <p>not code</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/CodeSpansTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecCodeSpansTests: XCTestCase {\n    func testExample328() throws {\n        let markdown = #######\"\"\"\n        `foo`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample329() throws {\n        let markdown = #######\"\"\"\n        `` foo ` bar ``\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo ` bar</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample330() throws {\n        let markdown = #######\"\"\"\n        ` `` `\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>``</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample331() throws {\n        let markdown = #######\"\"\"\n        `  ``  `\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code> `` </code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample332() throws {\n        let markdown = #######\"\"\"\n        ` a`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code> a</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample333() throws {\n        let markdown = #######\"\"\"\n        ` b `\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code> b </code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample334() throws {\n        let markdown = #######\"\"\"\n        ` `\n        `  `\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code> </code>\n        <code>  </code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample335() throws {\n        let markdown = #######\"\"\"\n        ``\n        foo\n        bar  \n        baz\n        ``\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo bar   baz</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample336() throws {\n        let markdown = #######\"\"\"\n        ``\n        foo \n        ``\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo </code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample337() throws {\n        let markdown = #######\"\"\"\n        `foo   bar \n        baz`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo   bar  baz</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample338() throws {\n        let markdown = #######\"\"\"\n        `foo\\`bar`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo\\</code>bar`</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample339() throws {\n        let markdown = #######\"\"\"\n        ``foo`bar``\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo`bar</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample340() throws {\n        let markdown = #######\"\"\"\n        ` foo `` bar `\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo `` bar</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample341() throws {\n        let markdown = #######\"\"\"\n        *foo`*`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*foo<code>*</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample342() throws {\n        let markdown = #######\"\"\"\n        [not a `link](/foo`)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[not a <code>link](/foo</code>)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample343() throws {\n        let markdown = #######\"\"\"\n        `<a href=\"`\">`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>&lt;a href=&quot;</code>&quot;&gt;`</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample344() throws {\n        let markdown = #######\"\"\"\n        <a href=\"`\">`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"`\">`</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample345() throws {\n        let markdown = #######\"\"\"\n        `<http://foo.bar.`baz>`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>&lt;http://foo.bar.</code>baz&gt;`</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample346() throws {\n        let markdown = #######\"\"\"\n        <http://foo.bar.`baz>`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"http://foo.bar.%60baz\">http://foo.bar.`baz</a>`</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample347() throws {\n        let markdown = #######\"\"\"\n        ```foo``\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>```foo``</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample348() throws {\n        let markdown = #######\"\"\"\n        `foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>`foo</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample349() throws {\n        let markdown = #######\"\"\"\n        `foo``bar``\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>`foo<code>bar</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/EmphasisAndStrongEmphasisTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecEmphasisAndStrongEmphasisTests: XCTestCase {\n    func testExample350() throws {\n        let markdown = #######\"\"\"\n        *foo bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample351() throws {\n        let markdown = #######\"\"\"\n        a * foo bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>a * foo bar*</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample352() throws {\n        let markdown = #######\"\"\"\n        a*\"foo\"*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>a*&quot;foo&quot;*</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample353() throws {\n        let markdown = #######\"\"\"\n        * a *\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>* a *</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample354() throws {\n        let markdown = #######\"\"\"\n        foo*bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<em>bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample355() throws {\n        let markdown = #######\"\"\"\n        5*6*78\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>5<em>6</em>78</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample356() throws {\n        let markdown = #######\"\"\"\n        _foo bar_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample357() throws {\n        let markdown = #######\"\"\"\n        _ foo bar_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_ foo bar_</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample358() throws {\n        let markdown = #######\"\"\"\n        a_\"foo\"_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>a_&quot;foo&quot;_</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample359() throws {\n        let markdown = #######\"\"\"\n        foo_bar_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo_bar_</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample360() throws {\n        let markdown = #######\"\"\"\n        5_6_78\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>5_6_78</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample361() throws {\n        let markdown = #######\"\"\"\n        пристаням_стремятся_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>пристаням_стремятся_</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample362() throws {\n        let markdown = #######\"\"\"\n        aa_\"bb\"_cc\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aa_&quot;bb&quot;_cc</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample363() throws {\n        let markdown = #######\"\"\"\n        foo-_(bar)_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo-<em>(bar)</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample364() throws {\n        let markdown = #######\"\"\"\n        _foo*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_foo*</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample365() throws {\n        let markdown = #######\"\"\"\n        *foo bar *\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*foo bar *</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample366() throws {\n        let markdown = #######\"\"\"\n        *foo bar\n        *\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*foo bar\n        *</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample367() throws {\n        let markdown = #######\"\"\"\n        *(*foo)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*(*foo)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample368() throws {\n        let markdown = #######\"\"\"\n        *(*foo*)*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>(<em>foo</em>)</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample369() throws {\n        let markdown = #######\"\"\"\n        *foo*bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo</em>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample370() throws {\n        let markdown = #######\"\"\"\n        _foo bar _\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_foo bar _</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample371() throws {\n        let markdown = #######\"\"\"\n        _(_foo)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_(_foo)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample372() throws {\n        let markdown = #######\"\"\"\n        _(_foo_)_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>(<em>foo</em>)</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample373() throws {\n        let markdown = #######\"\"\"\n        _foo_bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_foo_bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample374() throws {\n        let markdown = #######\"\"\"\n        _пристаням_стремятся\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_пристаням_стремятся</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample375() throws {\n        let markdown = #######\"\"\"\n        _foo_bar_baz_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo_bar_baz</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample376() throws {\n        let markdown = #######\"\"\"\n        _(bar)_.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>(bar)</em>.</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample377() throws {\n        let markdown = #######\"\"\"\n        **foo bar**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo bar</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample378() throws {\n        let markdown = #######\"\"\"\n        ** foo bar**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>** foo bar**</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample379() throws {\n        let markdown = #######\"\"\"\n        a**\"foo\"**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>a**&quot;foo&quot;**</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample380() throws {\n        let markdown = #######\"\"\"\n        foo**bar**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<strong>bar</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample381() throws {\n        let markdown = #######\"\"\"\n        __foo bar__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo bar</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample382() throws {\n        let markdown = #######\"\"\"\n        __ foo bar__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__ foo bar__</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample383() throws {\n        let markdown = #######\"\"\"\n        __\n        foo bar__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__\n        foo bar__</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample384() throws {\n        let markdown = #######\"\"\"\n        a__\"foo\"__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>a__&quot;foo&quot;__</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample385() throws {\n        let markdown = #######\"\"\"\n        foo__bar__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo__bar__</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample386() throws {\n        let markdown = #######\"\"\"\n        5__6__78\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>5__6__78</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample387() throws {\n        let markdown = #######\"\"\"\n        пристаням__стремятся__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>пристаням__стремятся__</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample388() throws {\n        let markdown = #######\"\"\"\n        __foo, __bar__, baz__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo, <strong>bar</strong>, baz</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample389() throws {\n        let markdown = #######\"\"\"\n        foo-__(bar)__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo-<strong>(bar)</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample390() throws {\n        let markdown = #######\"\"\"\n        **foo bar **\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>**foo bar **</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample391() throws {\n        let markdown = #######\"\"\"\n        **(**foo)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>**(**foo)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample392() throws {\n        let markdown = #######\"\"\"\n        *(**foo**)*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>(<strong>foo</strong>)</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample393() throws {\n        let markdown = #######\"\"\"\n        **Gomphocarpus (*Gomphocarpus physocarpus*, syn.\n        *Asclepias physocarpa*)**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>Gomphocarpus (<em>Gomphocarpus physocarpus</em>, syn.\n        <em>Asclepias physocarpa</em>)</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample394() throws {\n        let markdown = #######\"\"\"\n        **foo \"*bar*\" foo**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo &quot;<em>bar</em>&quot; foo</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample395() throws {\n        let markdown = #######\"\"\"\n        **foo**bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo</strong>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample396() throws {\n        let markdown = #######\"\"\"\n        __foo bar __\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__foo bar __</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample397() throws {\n        let markdown = #######\"\"\"\n        __(__foo)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__(__foo)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample398() throws {\n        let markdown = #######\"\"\"\n        _(__foo__)_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>(<strong>foo</strong>)</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample399() throws {\n        let markdown = #######\"\"\"\n        __foo__bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__foo__bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample400() throws {\n        let markdown = #######\"\"\"\n        __пристаням__стремятся\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__пристаням__стремятся</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample401() throws {\n        let markdown = #######\"\"\"\n        __foo__bar__baz__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo__bar__baz</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample402() throws {\n        let markdown = #######\"\"\"\n        __(bar)__.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>(bar)</strong>.</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample403() throws {\n        let markdown = #######\"\"\"\n        *foo [bar](/url)*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <a href=\"/url\">bar</a></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample404() throws {\n        let markdown = #######\"\"\"\n        *foo\n        bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo\n        bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample405() throws {\n        let markdown = #######\"\"\"\n        _foo __bar__ baz_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <strong>bar</strong> baz</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample406() throws {\n        let markdown = #######\"\"\"\n        _foo _bar_ baz_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <em>bar</em> baz</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample407() throws {\n        let markdown = #######\"\"\"\n        __foo_ bar_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em><em>foo</em> bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample408() throws {\n        let markdown = #######\"\"\"\n        *foo *bar**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <em>bar</em></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample409() throws {\n        let markdown = #######\"\"\"\n        *foo **bar** baz*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <strong>bar</strong> baz</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample410() throws {\n        let markdown = #######\"\"\"\n        *foo**bar**baz*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo<strong>bar</strong>baz</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample411() throws {\n        let markdown = #######\"\"\"\n        *foo**bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo**bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample412() throws {\n        let markdown = #######\"\"\"\n        ***foo** bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em><strong>foo</strong> bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample413() throws {\n        let markdown = #######\"\"\"\n        *foo **bar***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <strong>bar</strong></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample414() throws {\n        let markdown = #######\"\"\"\n        *foo**bar***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo<strong>bar</strong></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample415() throws {\n        let markdown = #######\"\"\"\n        foo***bar***baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<em><strong>bar</strong></em>baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample416() throws {\n        let markdown = #######\"\"\"\n        foo******bar*********baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<strong><strong><strong>bar</strong></strong></strong>***baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample417() throws {\n        let markdown = #######\"\"\"\n        *foo **bar *baz* bim** bop*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <strong>bar <em>baz</em> bim</strong> bop</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample418() throws {\n        let markdown = #######\"\"\"\n        *foo [*bar*](/url)*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <a href=\"/url\"><em>bar</em></a></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample419() throws {\n        let markdown = #######\"\"\"\n        ** is not an empty emphasis\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>** is not an empty emphasis</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample420() throws {\n        let markdown = #######\"\"\"\n        **** is not an empty strong emphasis\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>**** is not an empty strong emphasis</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample421() throws {\n        let markdown = #######\"\"\"\n        **foo [bar](/url)**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo <a href=\"/url\">bar</a></strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample422() throws {\n        let markdown = #######\"\"\"\n        **foo\n        bar**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo\n        bar</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample423() throws {\n        let markdown = #######\"\"\"\n        __foo _bar_ baz__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo <em>bar</em> baz</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample424() throws {\n        let markdown = #######\"\"\"\n        __foo __bar__ baz__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo <strong>bar</strong> baz</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample425() throws {\n        let markdown = #######\"\"\"\n        ____foo__ bar__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong><strong>foo</strong> bar</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample426() throws {\n        let markdown = #######\"\"\"\n        **foo **bar****\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo <strong>bar</strong></strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample427() throws {\n        let markdown = #######\"\"\"\n        **foo *bar* baz**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo <em>bar</em> baz</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample428() throws {\n        let markdown = #######\"\"\"\n        **foo*bar*baz**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo<em>bar</em>baz</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample429() throws {\n        let markdown = #######\"\"\"\n        ***foo* bar**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong><em>foo</em> bar</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample430() throws {\n        let markdown = #######\"\"\"\n        **foo *bar***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo <em>bar</em></strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample431() throws {\n        let markdown = #######\"\"\"\n        **foo *bar **baz**\n        bim* bop**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo <em>bar <strong>baz</strong>\n        bim</em> bop</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample432() throws {\n        let markdown = #######\"\"\"\n        **foo [*bar*](/url)**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo <a href=\"/url\"><em>bar</em></a></strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample433() throws {\n        let markdown = #######\"\"\"\n        __ is not an empty emphasis\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__ is not an empty emphasis</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample434() throws {\n        let markdown = #######\"\"\"\n        ____ is not an empty strong emphasis\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>____ is not an empty strong emphasis</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample435() throws {\n        let markdown = #######\"\"\"\n        foo ***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo ***</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample436() throws {\n        let markdown = #######\"\"\"\n        foo *\\**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <em>*</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample437() throws {\n        let markdown = #######\"\"\"\n        foo *_*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <em>_</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample438() throws {\n        let markdown = #######\"\"\"\n        foo *****\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo *****</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample439() throws {\n        let markdown = #######\"\"\"\n        foo **\\***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <strong>*</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample440() throws {\n        let markdown = #######\"\"\"\n        foo **_**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <strong>_</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample441() throws {\n        let markdown = #######\"\"\"\n        **foo*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*<em>foo</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample442() throws {\n        let markdown = #######\"\"\"\n        *foo**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo</em>*</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample443() throws {\n        let markdown = #######\"\"\"\n        ***foo**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*<strong>foo</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample444() throws {\n        let markdown = #######\"\"\"\n        ****foo*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>***<em>foo</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample445() throws {\n        let markdown = #######\"\"\"\n        **foo***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo</strong>*</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample446() throws {\n        let markdown = #######\"\"\"\n        *foo****\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo</em>***</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample447() throws {\n        let markdown = #######\"\"\"\n        foo ___\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo ___</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample448() throws {\n        let markdown = #######\"\"\"\n        foo _\\__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <em>_</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample449() throws {\n        let markdown = #######\"\"\"\n        foo _*_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <em>*</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample450() throws {\n        let markdown = #######\"\"\"\n        foo _____\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo _____</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample451() throws {\n        let markdown = #######\"\"\"\n        foo __\\___\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <strong>_</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample452() throws {\n        let markdown = #######\"\"\"\n        foo __*__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <strong>*</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample453() throws {\n        let markdown = #######\"\"\"\n        __foo_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_<em>foo</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample454() throws {\n        let markdown = #######\"\"\"\n        _foo__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo</em>_</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample455() throws {\n        let markdown = #######\"\"\"\n        ___foo__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_<strong>foo</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample456() throws {\n        let markdown = #######\"\"\"\n        ____foo_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>___<em>foo</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample457() throws {\n        let markdown = #######\"\"\"\n        __foo___\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo</strong>_</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample458() throws {\n        let markdown = #######\"\"\"\n        _foo____\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo</em>___</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample459() throws {\n        let markdown = #######\"\"\"\n        **foo**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample460() throws {\n        let markdown = #######\"\"\"\n        *_foo_*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em><em>foo</em></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample461() throws {\n        let markdown = #######\"\"\"\n        __foo__\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong>foo</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample462() throws {\n        let markdown = #######\"\"\"\n        _*foo*_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em><em>foo</em></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample463() throws {\n        let markdown = #######\"\"\"\n        ****foo****\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong><strong>foo</strong></strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample464() throws {\n        let markdown = #######\"\"\"\n        ____foo____\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong><strong>foo</strong></strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample465() throws {\n        let markdown = #######\"\"\"\n        ******foo******\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><strong><strong><strong>foo</strong></strong></strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample466() throws {\n        let markdown = #######\"\"\"\n        ***foo***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em><strong>foo</strong></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample467() throws {\n        let markdown = #######\"\"\"\n        _____foo_____\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em><strong><strong>foo</strong></strong></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample468() throws {\n        let markdown = #######\"\"\"\n        *foo _bar* baz_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo _bar</em> baz_</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample469() throws {\n        let markdown = #######\"\"\"\n        *foo __bar *baz bim__ bam*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo <strong>bar *baz bim</strong> bam</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample470() throws {\n        let markdown = #######\"\"\"\n        **foo **bar baz**\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>**foo <strong>bar baz</strong></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample471() throws {\n        let markdown = #######\"\"\"\n        *foo *bar baz*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*foo <em>bar baz</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample472() throws {\n        let markdown = #######\"\"\"\n        *[bar*](/url)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*<a href=\"/url\">bar*</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample473() throws {\n        let markdown = #######\"\"\"\n        _foo [bar_](/url)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_foo <a href=\"/url\">bar_</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample474() throws {\n        let markdown = #######\"\"\"\n        *<img src=\"foo\" title=\"*\"/>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*<img src=\"foo\" title=\"*\"/></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample475() throws {\n        let markdown = #######\"\"\"\n        **<a href=\"**\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>**<a href=\"**\"></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample476() throws {\n        let markdown = #######\"\"\"\n        __<a href=\"__\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__<a href=\"__\"></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample477() throws {\n        let markdown = #######\"\"\"\n        *a `*`*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>a <code>*</code></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample478() throws {\n        let markdown = #######\"\"\"\n        _a `_`_\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>a <code>_</code></em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample479() throws {\n        let markdown = #######\"\"\"\n        **a<http://foo.bar/?q=**>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>**a<a href=\"http://foo.bar/?q=**\">http://foo.bar/?q=**</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample480() throws {\n        let markdown = #######\"\"\"\n        __a<http://foo.bar/?q=__>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>__a<a href=\"http://foo.bar/?q=__\">http://foo.bar/?q=__</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/EntityAndNumericCharacterReferencesTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecEntityAndNumericCharacterReferencesTests: XCTestCase {\n    func testExample311() throws {\n        let markdown = #######\"\"\"\n        &nbsp; &amp; &copy; &AElig; &Dcaron;\n        &frac34; &HilbertSpace; &DifferentialD;\n        &ClockwiseContourIntegral; &ngE;\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>  &amp; © Æ Ď\n        ¾ ℋ ⅆ\n        ∲ ≧̸</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample312() throws {\n        let markdown = #######\"\"\"\n        &#35; &#1234; &#992; &#0;\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p># Ӓ Ϡ �</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample313() throws {\n        let markdown = #######\"\"\"\n        &#X22; &#XD06; &#xcab;\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&quot; ആ ಫ</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample314() throws {\n        let markdown = #######\"\"\"\n        &nbsp &x; &#; &#x;\n        &#987654321;\n        &#abcdef0;\n        &ThisIsNotDefined; &hi?;\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&amp;nbsp &amp;x; &amp;#; &amp;#x;\n        &amp;#987654321;\n        &amp;#abcdef0;\n        &amp;ThisIsNotDefined; &amp;hi?;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample315() throws {\n        let markdown = #######\"\"\"\n        &copy\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&amp;copy</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample316() throws {\n        let markdown = #######\"\"\"\n        &MadeUpEntity;\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&amp;MadeUpEntity;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample317() throws {\n        let markdown = #######\"\"\"\n        <a href=\"&ouml;&ouml;.html\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <a href=\"&ouml;&ouml;.html\">\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample318() throws {\n        let markdown = #######\"\"\"\n        [foo](/f&ouml;&ouml; \"f&ouml;&ouml;\")\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/f%C3%B6%C3%B6\" title=\"föö\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample319() throws {\n        let markdown = #######\"\"\"\n        [foo]\n        \n        [foo]: /f&ouml;&ouml; \"f&ouml;&ouml;\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/f%C3%B6%C3%B6\" title=\"föö\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample320() throws {\n        let markdown = #######\"\"\"\n        ``` f&ouml;&ouml;\n        foo\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code class=\"language-föö\">foo\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample321() throws {\n        let markdown = #######\"\"\"\n        `f&ouml;&ouml;`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>f&amp;ouml;&amp;ouml;</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample322() throws {\n        let markdown = #######\"\"\"\n            f&ouml;f&ouml;\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>f&amp;ouml;f&amp;ouml;\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample323() throws {\n        let markdown = #######\"\"\"\n        &#42;foo&#42;\n        *foo*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*foo*\n        <em>foo</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample324() throws {\n        let markdown = #######\"\"\"\n        &#42; foo\n        \n        * foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>* foo</p>\n        <ul>\n        <li>foo</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample325() throws {\n        let markdown = #######\"\"\"\n        foo&#10;&#10;bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo\n        \n        bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample326() throws {\n        let markdown = #######\"\"\"\n        &#9;foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>\tfoo</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample327() throws {\n        let markdown = #######\"\"\"\n        [a](url &quot;tit&quot;)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[a](url &quot;tit&quot;)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/FencedCodeBlocksTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecFencedCodeBlocksTests: XCTestCase {\n    func testExample89() throws {\n        let markdown = #######\"\"\"\n        ```\n        <\n         >\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>&lt;\n         &gt;\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample90() throws {\n        let markdown = #######\"\"\"\n        ~~~\n        <\n         >\n        ~~~\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>&lt;\n         &gt;\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample91() throws {\n        let markdown = #######\"\"\"\n        ``\n        foo\n        ``\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>foo</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample92() throws {\n        let markdown = #######\"\"\"\n        ```\n        aaa\n        ~~~\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        ~~~\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample93() throws {\n        let markdown = #######\"\"\"\n        ~~~\n        aaa\n        ```\n        ~~~\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        ```\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample94() throws {\n        let markdown = #######\"\"\"\n        ````\n        aaa\n        ```\n        ``````\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        ```\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample95() throws {\n        let markdown = #######\"\"\"\n        ~~~~\n        aaa\n        ~~~\n        ~~~~\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        ~~~\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample96() throws {\n        let markdown = #######\"\"\"\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code></code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample97() throws {\n        let markdown = #######\"\"\"\n        `````\n        \n        ```\n        aaa\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>\n        ```\n        aaa\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample98() throws {\n        let markdown = #######\"\"\"\n        > ```\n        > aaa\n        \n        bbb\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <pre><code>aaa\n        </code></pre>\n        </blockquote>\n        <p>bbb</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample99() throws {\n        let markdown = #######\"\"\"\n        ```\n        \n          \n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>\n          \n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample100() throws {\n        let markdown = #######\"\"\"\n        ```\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code></code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample101() throws {\n        let markdown = #######\"\"\"\n         ```\n         aaa\n        aaa\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        aaa\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample102() throws {\n        let markdown = #######\"\"\"\n          ```\n        aaa\n          aaa\n        aaa\n          ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        aaa\n        aaa\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample103() throws {\n        let markdown = #######\"\"\"\n           ```\n           aaa\n            aaa\n          aaa\n           ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n         aaa\n        aaa\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample104() throws {\n        let markdown = #######\"\"\"\n            ```\n            aaa\n            ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>```\n        aaa\n        ```\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample105() throws {\n        let markdown = #######\"\"\"\n        ```\n        aaa\n          ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample106() throws {\n        let markdown = #######\"\"\"\n           ```\n        aaa\n          ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample107() throws {\n        let markdown = #######\"\"\"\n        ```\n        aaa\n            ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n            ```\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample108() throws {\n        let markdown = #######\"\"\"\n        ``` ```\n        aaa\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code> </code>\n        aaa</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample109() throws {\n        let markdown = #######\"\"\"\n        ~~~~~~\n        aaa\n        ~~~ ~~\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        ~~~ ~~\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample110() throws {\n        let markdown = #######\"\"\"\n        foo\n        ```\n        bar\n        ```\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo</p>\n        <pre><code>bar\n        </code></pre>\n        <p>baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample111() throws {\n        let markdown = #######\"\"\"\n        foo\n        ---\n        ~~~\n        bar\n        ~~~\n        # baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>foo</h2>\n        <pre><code>bar\n        </code></pre>\n        <h1>baz</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample112() throws {\n        let markdown = #######\"\"\"\n        ```ruby\n        def foo(x)\n          return 3\n        end\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code class=\"language-ruby\">def foo(x)\n          return 3\n        end\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample113() throws {\n        let markdown = #######\"\"\"\n        ~~~~    ruby startline=3 $%@#$\n        def foo(x)\n          return 3\n        end\n        ~~~~~~~\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code class=\"language-ruby\">def foo(x)\n          return 3\n        end\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample114() throws {\n        let markdown = #######\"\"\"\n        ````;\n        ````\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code class=\"language-;\"></code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample115() throws {\n        let markdown = #######\"\"\"\n        ``` aa ```\n        foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>aa</code>\n        foo</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample116() throws {\n        let markdown = #######\"\"\"\n        ~~~ aa ``` ~~~\n        foo\n        ~~~\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code class=\"language-aa\">foo\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample117() throws {\n        let markdown = #######\"\"\"\n        ```\n        ``` aaa\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>``` aaa\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/HardLineBreaksTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecHardLineBreaksTests: XCTestCase {\n    func testExample630() throws {\n        let markdown = #######\"\"\"\n        foo  \n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<br />\n        baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample631() throws {\n        let markdown = #######\"\"\"\n        foo\\\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<br />\n        baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample632() throws {\n        let markdown = #######\"\"\"\n        foo       \n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<br />\n        baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample633() throws {\n        let markdown = #######\"\"\"\n        foo  \n             bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<br />\n        bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample634() throws {\n        let markdown = #######\"\"\"\n        foo\\\n             bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo<br />\n        bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample635() throws {\n        let markdown = #######\"\"\"\n        *foo  \n        bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo<br />\n        bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample636() throws {\n        let markdown = #######\"\"\"\n        *foo\\\n        bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo<br />\n        bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample637() throws {\n        let markdown = #######\"\"\"\n        `code \n        span`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>code  span</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample638() throws {\n        let markdown = #######\"\"\"\n        `code\\\n        span`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>code\\ span</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample639() throws {\n        let markdown = #######\"\"\"\n        <a href=\"foo  \n        bar\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"foo  \n        bar\"></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample640() throws {\n        let markdown = #######\"\"\"\n        <a href=\"foo\\\n        bar\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"foo\\\n        bar\"></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample641() throws {\n        let markdown = #######\"\"\"\n        foo\\\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo\\</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample642() throws {\n        let markdown = #######\"\"\"\n        foo  \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample643() throws {\n        let markdown = #######\"\"\"\n        ### foo\\\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h3>foo\\</h3>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample644() throws {\n        let markdown = #######\"\"\"\n        ### foo  \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h3>foo</h3>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/HtmlBlocksTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecHtmlBlocksTests: XCTestCase {\n    func testExample118() throws {\n        let markdown = #######\"\"\"\n        <table><tr><td>\n        <pre>\n        **Hello**,\n        \n        _world_.\n        </pre>\n        </td></tr></table>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <table><tr><td>\n        <pre>\n        **Hello**,\n        <p><em>world</em>.\n        </pre></p>\n        </td></tr></table>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample119() throws {\n        let markdown = #######\"\"\"\n        <table>\n          <tr>\n            <td>\n                   hi\n            </td>\n          </tr>\n        </table>\n        \n        okay.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <table>\n          <tr>\n            <td>\n                   hi\n            </td>\n          </tr>\n        </table>\n        <p>okay.</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample120() throws {\n        let markdown = #######\"\"\"\n         <div>\n          *hello*\n                 <foo><a>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n         <div>\n          *hello*\n                 <foo><a>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample121() throws {\n        let markdown = #######\"\"\"\n        </div>\n        *foo*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        </div>\n        *foo*\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample122() throws {\n        let markdown = #######\"\"\"\n        <DIV CLASS=\"foo\">\n        \n        *Markdown*\n        \n        </DIV>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <DIV CLASS=\"foo\">\n        <p><em>Markdown</em></p>\n        </DIV>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample123() throws {\n        let markdown = #######\"\"\"\n        <div id=\"foo\"\n          class=\"bar\">\n        </div>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div id=\"foo\"\n          class=\"bar\">\n        </div>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample124() throws {\n        let markdown = #######\"\"\"\n        <div id=\"foo\" class=\"bar\n          baz\">\n        </div>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div id=\"foo\" class=\"bar\n          baz\">\n        </div>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample125() throws {\n        let markdown = #######\"\"\"\n        <div>\n        *foo*\n        \n        *bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div>\n        *foo*\n        <p><em>bar</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample126() throws {\n        let markdown = #######\"\"\"\n        <div id=\"foo\"\n        *hi*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div id=\"foo\"\n        *hi*\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample127() throws {\n        let markdown = #######\"\"\"\n        <div class\n        foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div class\n        foo\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample128() throws {\n        let markdown = #######\"\"\"\n        <div *???-&&&-<---\n        *foo*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div *???-&&&-<---\n        *foo*\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample129() throws {\n        let markdown = #######\"\"\"\n        <div><a href=\"bar\">*foo*</a></div>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div><a href=\"bar\">*foo*</a></div>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample130() throws {\n        let markdown = #######\"\"\"\n        <table><tr><td>\n        foo\n        </td></tr></table>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <table><tr><td>\n        foo\n        </td></tr></table>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample131() throws {\n        let markdown = #######\"\"\"\n        <div></div>\n        ``` c\n        int x = 33;\n        ```\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div></div>\n        ``` c\n        int x = 33;\n        ```\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample132() throws {\n        let markdown = #######\"\"\"\n        <a href=\"foo\">\n        *bar*\n        </a>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <a href=\"foo\">\n        *bar*\n        </a>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample133() throws {\n        let markdown = #######\"\"\"\n        <Warning>\n        *bar*\n        </Warning>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <Warning>\n        *bar*\n        </Warning>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample134() throws {\n        let markdown = #######\"\"\"\n        <i class=\"foo\">\n        *bar*\n        </i>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <i class=\"foo\">\n        *bar*\n        </i>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample135() throws {\n        let markdown = #######\"\"\"\n        </ins>\n        *bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        </ins>\n        *bar*\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample136() throws {\n        let markdown = #######\"\"\"\n        <del>\n        *foo*\n        </del>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <del>\n        *foo*\n        </del>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample137() throws {\n        let markdown = #######\"\"\"\n        <del>\n        \n        *foo*\n        \n        </del>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <del>\n        <p><em>foo</em></p>\n        </del>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample138() throws {\n        let markdown = #######\"\"\"\n        <del>*foo*</del>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><del><em>foo</em></del></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample139() throws {\n        let markdown = #######\"\"\"\n        <pre language=\"haskell\"><code>\n        import Text.HTML.TagSoup\n        \n        main :: IO ()\n        main = print $ parseTags tags\n        </code></pre>\n        okay\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre language=\"haskell\"><code>\n        import Text.HTML.TagSoup\n        \n        main :: IO ()\n        main = print $ parseTags tags\n        </code></pre>\n        <p>okay</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample140() throws {\n        let markdown = #######\"\"\"\n        <script type=\"text/javascript\">\n        // JavaScript example\n        \n        document.getElementById(\"demo\").innerHTML = \"Hello JavaScript!\";\n        </script>\n        okay\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <script type=\"text/javascript\">\n        // JavaScript example\n        \n        document.getElementById(\"demo\").innerHTML = \"Hello JavaScript!\";\n        </script>\n        <p>okay</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample141() throws {\n        let markdown = #######\"\"\"\n        <style\n          type=\"text/css\">\n        h1 {color:red;}\n        \n        p {color:blue;}\n        </style>\n        okay\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <style\n          type=\"text/css\">\n        h1 {color:red;}\n        \n        p {color:blue;}\n        </style>\n        <p>okay</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample142() throws {\n        let markdown = #######\"\"\"\n        <style\n          type=\"text/css\">\n        \n        foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <style\n          type=\"text/css\">\n        \n        foo\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample143() throws {\n        let markdown = #######\"\"\"\n        > <div>\n        > foo\n        \n        bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <div>\n        foo\n        </blockquote>\n        <p>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample144() throws {\n        let markdown = #######\"\"\"\n        - <div>\n        - foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <div>\n        </li>\n        <li>foo</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample145() throws {\n        let markdown = #######\"\"\"\n        <style>p{color:red;}</style>\n        *foo*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <style>p{color:red;}</style>\n        <p><em>foo</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample146() throws {\n        let markdown = #######\"\"\"\n        <!-- foo -->*bar*\n        *baz*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <!-- foo -->*bar*\n        <p><em>baz</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample147() throws {\n        let markdown = #######\"\"\"\n        <script>\n        foo\n        </script>1. *bar*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <script>\n        foo\n        </script>1. *bar*\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample148() throws {\n        let markdown = #######\"\"\"\n        <!-- Foo\n        \n        bar\n           baz -->\n        okay\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <!-- Foo\n        \n        bar\n           baz -->\n        <p>okay</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample149() throws {\n        let markdown = #######\"\"\"\n        <?php\n        \n          echo '>';\n        \n        ?>\n        okay\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <?php\n        \n          echo '>';\n        \n        ?>\n        <p>okay</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample150() throws {\n        let markdown = #######\"\"\"\n        <!DOCTYPE html>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <!DOCTYPE html>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample151() throws {\n        let markdown = #######\"\"\"\n        <![CDATA[\n        function matchwo(a,b)\n        {\n          if (a < b && a < 0) then {\n            return 1;\n        \n          } else {\n        \n            return 0;\n          }\n        }\n        ]]>\n        okay\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <![CDATA[\n        function matchwo(a,b)\n        {\n          if (a < b && a < 0) then {\n            return 1;\n        \n          } else {\n        \n            return 0;\n          }\n        }\n        ]]>\n        <p>okay</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample152() throws {\n        let markdown = #######\"\"\"\n          <!-- foo -->\n        \n            <!-- foo -->\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n          <!-- foo -->\n        <pre><code>&lt;!-- foo --&gt;\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample153() throws {\n        let markdown = #######\"\"\"\n          <div>\n        \n            <div>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n          <div>\n        <pre><code>&lt;div&gt;\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample154() throws {\n        let markdown = #######\"\"\"\n        Foo\n        <div>\n        bar\n        </div>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo</p>\n        <div>\n        bar\n        </div>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample155() throws {\n        let markdown = #######\"\"\"\n        <div>\n        bar\n        </div>\n        *foo*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div>\n        bar\n        </div>\n        *foo*\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample156() throws {\n        let markdown = #######\"\"\"\n        Foo\n        <a href=\"bar\">\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        <a href=\"bar\">\n        baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample157() throws {\n        let markdown = #######\"\"\"\n        <div>\n        \n        *Emphasized* text.\n        \n        </div>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div>\n        <p><em>Emphasized</em> text.</p>\n        </div>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample158() throws {\n        let markdown = #######\"\"\"\n        <div>\n        *Emphasized* text.\n        </div>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <div>\n        *Emphasized* text.\n        </div>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample159() throws {\n        let markdown = #######\"\"\"\n        <table>\n        \n        <tr>\n        \n        <td>\n        Hi\n        </td>\n        \n        </tr>\n        \n        </table>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <table>\n        <tr>\n        <td>\n        Hi\n        </td>\n        </tr>\n        </table>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample160() throws {\n        let markdown = #######\"\"\"\n        <table>\n        \n          <tr>\n        \n            <td>\n              Hi\n            </td>\n        \n          </tr>\n        \n        </table>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <table>\n          <tr>\n        <pre><code>&lt;td&gt;\n          Hi\n        &lt;/td&gt;\n        </code></pre>\n          </tr>\n        </table>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/ImagesTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecImagesTests: XCTestCase {\n    func testExample568() throws {\n        let markdown = #######\"\"\"\n        ![foo](/url \"title\")\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"foo\" title=\"title\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample569() throws {\n        let markdown = #######\"\"\"\n        ![foo *bar*]\n        \n        [foo *bar*]: train.jpg \"train & tracks\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"train.jpg\" alt=\"foo bar\" title=\"train &amp; tracks\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample570() throws {\n        let markdown = #######\"\"\"\n        ![foo ![bar](/url)](/url2)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url2\" alt=\"foo bar\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample571() throws {\n        let markdown = #######\"\"\"\n        ![foo [bar](/url)](/url2)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url2\" alt=\"foo bar\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample572() throws {\n        let markdown = #######\"\"\"\n        ![foo *bar*][]\n        \n        [foo *bar*]: train.jpg \"train & tracks\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"train.jpg\" alt=\"foo bar\" title=\"train &amp; tracks\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample573() throws {\n        let markdown = #######\"\"\"\n        ![foo *bar*][foobar]\n        \n        [FOOBAR]: train.jpg \"train & tracks\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"train.jpg\" alt=\"foo bar\" title=\"train &amp; tracks\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample574() throws {\n        let markdown = #######\"\"\"\n        ![foo](train.jpg)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"train.jpg\" alt=\"foo\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample575() throws {\n        let markdown = #######\"\"\"\n        My ![foo bar](/path/to/train.jpg  \"title\"   )\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>My <img src=\"/path/to/train.jpg\" alt=\"foo bar\" title=\"title\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample576() throws {\n        let markdown = #######\"\"\"\n        ![foo](<url>)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"url\" alt=\"foo\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample577() throws {\n        let markdown = #######\"\"\"\n        ![](/url)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample578() throws {\n        let markdown = #######\"\"\"\n        ![foo][bar]\n        \n        [bar]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"foo\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample579() throws {\n        let markdown = #######\"\"\"\n        ![foo][bar]\n        \n        [BAR]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"foo\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample580() throws {\n        let markdown = #######\"\"\"\n        ![foo][]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"foo\" title=\"title\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample581() throws {\n        let markdown = #######\"\"\"\n        ![*foo* bar][]\n        \n        [*foo* bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"foo bar\" title=\"title\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample582() throws {\n        let markdown = #######\"\"\"\n        ![Foo][]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"Foo\" title=\"title\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample583() throws {\n        let markdown = #######\"\"\"\n        ![foo] \n        []\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"foo\" title=\"title\" />\n        []</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample584() throws {\n        let markdown = #######\"\"\"\n        ![foo]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"foo\" title=\"title\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample585() throws {\n        let markdown = #######\"\"\"\n        ![*foo* bar]\n        \n        [*foo* bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"foo bar\" title=\"title\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample586() throws {\n        let markdown = #######\"\"\"\n        ![[foo]]\n        \n        [[foo]]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>![[foo]]</p>\n        <p>[[foo]]: /url &quot;title&quot;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample587() throws {\n        let markdown = #######\"\"\"\n        ![Foo]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"/url\" alt=\"Foo\" title=\"title\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample588() throws {\n        let markdown = #######\"\"\"\n        !\\[foo]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>![foo]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample589() throws {\n        let markdown = #######\"\"\"\n        \\![foo]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>!<a href=\"/url\" title=\"title\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/IndentedCodeBlocksTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecIndentedCodeBlocksTests: XCTestCase {\n    func testExample77() throws {\n        let markdown = #######\"\"\"\n            a simple\n              indented code block\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>a simple\n          indented code block\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample78() throws {\n        let markdown = #######\"\"\"\n          - foo\n        \n            bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        <p>bar</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample79() throws {\n        let markdown = #######\"\"\"\n        1.  foo\n        \n            - bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>foo</p>\n        <ul>\n        <li>bar</li>\n        </ul>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample80() throws {\n        let markdown = #######\"\"\"\n            <a/>\n            *hi*\n        \n            - one\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>&lt;a/&gt;\n        *hi*\n        \n        - one\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample81() throws {\n        let markdown = #######\"\"\"\n            chunk1\n        \n            chunk2\n          \n         \n         \n            chunk3\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>chunk1\n        \n        chunk2\n        \n        \n        \n        chunk3\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample82() throws {\n        let markdown = #######\"\"\"\n            chunk1\n              \n              chunk2\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>chunk1\n          \n          chunk2\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample83() throws {\n        let markdown = #######\"\"\"\n        Foo\n            bar\n        \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample84() throws {\n        let markdown = #######\"\"\"\n            foo\n        bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>foo\n        </code></pre>\n        <p>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample85() throws {\n        let markdown = #######\"\"\"\n        # Heading\n            foo\n        Heading\n        ------\n            foo\n        ----\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>Heading</h1>\n        <pre><code>foo\n        </code></pre>\n        <h2>Heading</h2>\n        <pre><code>foo\n        </code></pre>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample86() throws {\n        let markdown = #######\"\"\"\n                foo\n            bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>    foo\n        bar\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample87() throws {\n        let markdown = #######\"\"\"\n        \n            \n            foo\n            \n        \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>foo\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample88() throws {\n        let markdown = #######\"\"\"\n            foo  \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>foo  \n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/InlinesTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecInlinesTests: XCTestCase {\n    func testExample297() throws {\n        let markdown = #######\"\"\"\n        `hi`lo`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><code>hi</code>lo`</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/LinkReferenceDefinitionsTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecLinkReferenceDefinitionsTests: XCTestCase {\n    func testExample161() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url \"title\"\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample162() throws {\n        let markdown = #######\"\"\"\n           [foo]: \n              /url  \n                   'the title'  \n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"the title\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample163() throws {\n        let markdown = #######\"\"\"\n        [Foo*bar\\]]:my_(url) 'title (with parens)'\n        \n        [Foo*bar\\]]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"my_(url)\" title=\"title (with parens)\">Foo*bar]</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample164() throws {\n        let markdown = #######\"\"\"\n        [Foo bar]:\n        <my url>\n        'title'\n        \n        [Foo bar]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"my%20url\" title=\"title\">Foo bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample165() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url '\n        title\n        line1\n        line2\n        '\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"\n        title\n        line1\n        line2\n        \">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample166() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url 'title\n        \n        with blank line'\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo]: /url 'title</p>\n        <p>with blank line'</p>\n        <p>[foo]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample167() throws {\n        let markdown = #######\"\"\"\n        [foo]:\n        /url\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample168() throws {\n        let markdown = #######\"\"\"\n        [foo]:\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo]:</p>\n        <p>[foo]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample169() throws {\n        let markdown = #######\"\"\"\n        [foo]: <>\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample170() throws {\n        let markdown = #######\"\"\"\n        [foo]: <bar>(baz)\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo]: <bar>(baz)</p>\n        <p>[foo]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample171() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url\\bar\\*baz \"foo\\\"bar\\baz\"\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url%5Cbar*baz\" title=\"foo&quot;bar\\baz\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample172() throws {\n        let markdown = #######\"\"\"\n        [foo]\n        \n        [foo]: url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"url\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample173() throws {\n        let markdown = #######\"\"\"\n        [foo]\n        \n        [foo]: first\n        [foo]: second\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"first\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample174() throws {\n        let markdown = #######\"\"\"\n        [FOO]: /url\n        \n        [Foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\">Foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample175() throws {\n        let markdown = #######\"\"\"\n        [ΑΓΩ]: /φου\n        \n        [αγω]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/%CF%86%CE%BF%CF%85\">αγω</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample176() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample177() throws {\n        let markdown = #######\"\"\"\n        [\n        foo\n        ]: /url\n        bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample178() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url \"title\" ok\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo]: /url &quot;title&quot; ok</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample179() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url\n        \"title\" ok\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&quot;title&quot; ok</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample180() throws {\n        let markdown = #######\"\"\"\n            [foo]: /url \"title\"\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>[foo]: /url &quot;title&quot;\n        </code></pre>\n        <p>[foo]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample181() throws {\n        let markdown = #######\"\"\"\n        ```\n        [foo]: /url\n        ```\n        \n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>[foo]: /url\n        </code></pre>\n        <p>[foo]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample182() throws {\n        let markdown = #######\"\"\"\n        Foo\n        [bar]: /baz\n        \n        [bar]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        [bar]: /baz</p>\n        <p>[bar]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample183() throws {\n        let markdown = #######\"\"\"\n        # [Foo]\n        [foo]: /url\n        > bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1><a href=\"/url\">Foo</a></h1>\n        <blockquote>\n        <p>bar</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample184() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url\n        bar\n        ===\n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>bar</h1>\n        <p><a href=\"/url\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample185() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url\n        ===\n        [foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>===\n        <a href=\"/url\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample186() throws {\n        let markdown = #######\"\"\"\n        [foo]: /foo-url \"foo\"\n        [bar]: /bar-url\n          \"bar\"\n        [baz]: /baz-url\n        \n        [foo],\n        [bar],\n        [baz]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/foo-url\" title=\"foo\">foo</a>,\n        <a href=\"/bar-url\" title=\"bar\">bar</a>,\n        <a href=\"/baz-url\">baz</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample187() throws {\n        let markdown = #######\"\"\"\n        [foo]\n        \n        > [foo]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\">foo</a></p>\n        <blockquote>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample188() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/LinksTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecLinksTests: XCTestCase {\n    func testExample481() throws {\n        let markdown = #######\"\"\"\n        [link](/uri \"title\")\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\" title=\"title\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample482() throws {\n        let markdown = #######\"\"\"\n        [link](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample483() throws {\n        let markdown = #######\"\"\"\n        [link]()\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample484() throws {\n        let markdown = #######\"\"\"\n        [link](<>)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample485() throws {\n        let markdown = #######\"\"\"\n        [link](/my uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[link](/my uri)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample486() throws {\n        let markdown = #######\"\"\"\n        [link](</my uri>)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/my%20uri\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample487() throws {\n        let markdown = #######\"\"\"\n        [link](foo\n        bar)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[link](foo\n        bar)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample488() throws {\n        let markdown = #######\"\"\"\n        [link](<foo\n        bar>)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[link](<foo\n        bar>)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample489() throws {\n        let markdown = #######\"\"\"\n        [a](<b)c>)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"b)c\">a</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample490() throws {\n        let markdown = #######\"\"\"\n        [link](<foo\\>)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[link](&lt;foo&gt;)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample491() throws {\n        let markdown = #######\"\"\"\n        [a](<b)c\n        [a](<b)c>\n        [a](<b>c)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[a](&lt;b)c\n        [a](&lt;b)c&gt;\n        [a](<b>c)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample492() throws {\n        let markdown = #######\"\"\"\n        [link](\\(foo\\))\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"(foo)\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample493() throws {\n        let markdown = #######\"\"\"\n        [link](foo(and(bar)))\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"foo(and(bar))\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample494() throws {\n        let markdown = #######\"\"\"\n        [link](foo\\(and\\(bar\\))\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"foo(and(bar)\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample495() throws {\n        let markdown = #######\"\"\"\n        [link](<foo(and(bar)>)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"foo(and(bar)\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample496() throws {\n        let markdown = #######\"\"\"\n        [link](foo\\)\\:)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"foo):\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample497() throws {\n        let markdown = #######\"\"\"\n        [link](#fragment)\n        \n        [link](http://example.com#fragment)\n        \n        [link](http://example.com?foo=3#frag)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"#fragment\">link</a></p>\n        <p><a href=\"http://example.com#fragment\">link</a></p>\n        <p><a href=\"http://example.com?foo=3#frag\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample498() throws {\n        let markdown = #######\"\"\"\n        [link](foo\\bar)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"foo%5Cbar\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample499() throws {\n        let markdown = #######\"\"\"\n        [link](foo%20b&auml;)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"foo%20b%C3%A4\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample500() throws {\n        let markdown = #######\"\"\"\n        [link](\"title\")\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"%22title%22\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample501() throws {\n        let markdown = #######\"\"\"\n        [link](/url \"title\")\n        [link](/url 'title')\n        [link](/url (title))\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">link</a>\n        <a href=\"/url\" title=\"title\">link</a>\n        <a href=\"/url\" title=\"title\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample502() throws {\n        let markdown = #######\"\"\"\n        [link](/url \"title \\\"&quot;\")\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title &quot;&quot;\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample503() throws {\n        let markdown = #######\"\"\"\n        [link](/url \"title\")\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url%C2%A0%22title%22\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample504() throws {\n        let markdown = #######\"\"\"\n        [link](/url \"title \"and\" title\")\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[link](/url &quot;title &quot;and&quot; title&quot;)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample505() throws {\n        let markdown = #######\"\"\"\n        [link](/url 'title \"and\" title')\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title &quot;and&quot; title\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample506() throws {\n        let markdown = #######\"\"\"\n        [link](   /uri\n          \"title\"  )\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\" title=\"title\">link</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample507() throws {\n        let markdown = #######\"\"\"\n        [link] (/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[link] (/uri)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample508() throws {\n        let markdown = #######\"\"\"\n        [link [foo [bar]]](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">link [foo [bar]]</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample509() throws {\n        let markdown = #######\"\"\"\n        [link] bar](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[link] bar](/uri)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample510() throws {\n        let markdown = #######\"\"\"\n        [link [bar](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[link <a href=\"/uri\">bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample511() throws {\n        let markdown = #######\"\"\"\n        [link \\[bar](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">link [bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample512() throws {\n        let markdown = #######\"\"\"\n        [link *foo **bar** `#`*](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample513() throws {\n        let markdown = #######\"\"\"\n        [![moon](moon.jpg)](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\"><img src=\"moon.jpg\" alt=\"moon\" /></a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample514() throws {\n        let markdown = #######\"\"\"\n        [foo [bar](/uri)](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo <a href=\"/uri\">bar</a>](/uri)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample515() throws {\n        let markdown = #######\"\"\"\n        [foo *[bar [baz](/uri)](/uri)*](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo <em>[bar <a href=\"/uri\">baz</a>](/uri)</em>](/uri)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample516() throws {\n        let markdown = #######\"\"\"\n        ![[[foo](uri1)](uri2)](uri3)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><img src=\"uri3\" alt=\"[foo](uri2)\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample517() throws {\n        let markdown = #######\"\"\"\n        *[foo*](/uri)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*<a href=\"/uri\">foo*</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample518() throws {\n        let markdown = #######\"\"\"\n        [foo *bar](baz*)\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"baz*\">foo *bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample519() throws {\n        let markdown = #######\"\"\"\n        *foo [bar* baz]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>foo [bar</em> baz]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample520() throws {\n        let markdown = #######\"\"\"\n        [foo <bar attr=\"](baz)\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo <bar attr=\"](baz)\"></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample521() throws {\n        let markdown = #######\"\"\"\n        [foo`](/uri)`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo<code>](/uri)</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample522() throws {\n        let markdown = #######\"\"\"\n        [foo<http://example.com/?search=](uri)>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo<a href=\"http://example.com/?search=%5D(uri)\">http://example.com/?search=](uri)</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample523() throws {\n        let markdown = #######\"\"\"\n        [foo][bar]\n        \n        [bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample524() throws {\n        let markdown = #######\"\"\"\n        [link [foo [bar]]][ref]\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">link [foo [bar]]</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample525() throws {\n        let markdown = #######\"\"\"\n        [link \\[bar][ref]\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">link [bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample526() throws {\n        let markdown = #######\"\"\"\n        [link *foo **bar** `#`*][ref]\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">link <em>foo <strong>bar</strong> <code>#</code></em></a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample527() throws {\n        let markdown = #######\"\"\"\n        [![moon](moon.jpg)][ref]\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\"><img src=\"moon.jpg\" alt=\"moon\" /></a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample528() throws {\n        let markdown = #######\"\"\"\n        [foo [bar](/uri)][ref]\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo <a href=\"/uri\">bar</a>]<a href=\"/uri\">ref</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample529() throws {\n        let markdown = #######\"\"\"\n        [foo *bar [baz][ref]*][ref]\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo <em>bar <a href=\"/uri\">baz</a></em>]<a href=\"/uri\">ref</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample530() throws {\n        let markdown = #######\"\"\"\n        *[foo*][ref]\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*<a href=\"/uri\">foo*</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample531() throws {\n        let markdown = #######\"\"\"\n        [foo *bar][ref]\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">foo *bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample532() throws {\n        let markdown = #######\"\"\"\n        [foo <bar attr=\"][ref]\">\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo <bar attr=\"][ref]\"></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample533() throws {\n        let markdown = #######\"\"\"\n        [foo`][ref]`\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo<code>][ref]</code></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample534() throws {\n        let markdown = #######\"\"\"\n        [foo<http://example.com/?search=][ref]>\n        \n        [ref]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo<a href=\"http://example.com/?search=%5D%5Bref%5D\">http://example.com/?search=][ref]</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample535() throws {\n        let markdown = #######\"\"\"\n        [foo][BaR]\n        \n        [bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample536() throws {\n        let markdown = #######\"\"\"\n        [Толпой][Толпой] is a Russian word.\n        \n        [ТОЛПОЙ]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\">Толпой</a> is a Russian word.</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample537() throws {\n        let markdown = #######\"\"\"\n        [Foo\n          bar]: /url\n        \n        [Baz][Foo bar]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\">Baz</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample538() throws {\n        let markdown = #######\"\"\"\n        [foo] [bar]\n        \n        [bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo] <a href=\"/url\" title=\"title\">bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample539() throws {\n        let markdown = #######\"\"\"\n        [foo]\n        [bar]\n        \n        [bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo]\n        <a href=\"/url\" title=\"title\">bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample540() throws {\n        let markdown = #######\"\"\"\n        [foo]: /url1\n        \n        [foo]: /url2\n        \n        [bar][foo]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url1\">bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample541() throws {\n        let markdown = #######\"\"\"\n        [bar][foo\\!]\n        \n        [foo!]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[bar][foo!]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample542() throws {\n        let markdown = #######\"\"\"\n        [foo][ref[]\n        \n        [ref[]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo][ref[]</p>\n        <p>[ref[]: /uri</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample543() throws {\n        let markdown = #######\"\"\"\n        [foo][ref[bar]]\n        \n        [ref[bar]]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo][ref[bar]]</p>\n        <p>[ref[bar]]: /uri</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample544() throws {\n        let markdown = #######\"\"\"\n        [[[foo]]]\n        \n        [[[foo]]]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[[[foo]]]</p>\n        <p>[[[foo]]]: /url</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample545() throws {\n        let markdown = #######\"\"\"\n        [foo][ref\\[]\n        \n        [ref\\[]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample546() throws {\n        let markdown = #######\"\"\"\n        [bar\\\\]: /uri\n        \n        [bar\\\\]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/uri\">bar\\</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample547() throws {\n        let markdown = #######\"\"\"\n        []\n        \n        []: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[]</p>\n        <p>[]: /uri</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample548() throws {\n        let markdown = #######\"\"\"\n        [\n         ]\n        \n        [\n         ]: /uri\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[\n        ]</p>\n        <p>[\n        ]: /uri</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample549() throws {\n        let markdown = #######\"\"\"\n        [foo][]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample550() throws {\n        let markdown = #######\"\"\"\n        [*foo* bar][]\n        \n        [*foo* bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\"><em>foo</em> bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample551() throws {\n        let markdown = #######\"\"\"\n        [Foo][]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">Foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample552() throws {\n        let markdown = #######\"\"\"\n        [foo] \n        []\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">foo</a>\n        []</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample553() throws {\n        let markdown = #######\"\"\"\n        [foo]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample554() throws {\n        let markdown = #######\"\"\"\n        [*foo* bar]\n        \n        [*foo* bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\"><em>foo</em> bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample555() throws {\n        let markdown = #######\"\"\"\n        [[*foo* bar]]\n        \n        [*foo* bar]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[<a href=\"/url\" title=\"title\"><em>foo</em> bar</a>]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample556() throws {\n        let markdown = #######\"\"\"\n        [[bar [foo]\n        \n        [foo]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[[bar <a href=\"/url\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample557() throws {\n        let markdown = #######\"\"\"\n        [Foo]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\" title=\"title\">Foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample558() throws {\n        let markdown = #######\"\"\"\n        [foo] bar\n        \n        [foo]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url\">foo</a> bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample559() throws {\n        let markdown = #######\"\"\"\n        \\[foo]\n        \n        [foo]: /url \"title\"\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo]</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample560() throws {\n        let markdown = #######\"\"\"\n        [foo*]: /url\n        \n        *[foo*]\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>*<a href=\"/url\">foo*</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample561() throws {\n        let markdown = #######\"\"\"\n        [foo][bar]\n        \n        [foo]: /url1\n        [bar]: /url2\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url2\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample562() throws {\n        let markdown = #######\"\"\"\n        [foo][]\n        \n        [foo]: /url1\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url1\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample563() throws {\n        let markdown = #######\"\"\"\n        [foo]()\n        \n        [foo]: /url1\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"\">foo</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample564() throws {\n        let markdown = #######\"\"\"\n        [foo](not a link)\n        \n        [foo]: /url1\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url1\">foo</a>(not a link)</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample565() throws {\n        let markdown = #######\"\"\"\n        [foo][bar][baz]\n        \n        [baz]: /url\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo]<a href=\"/url\">bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample566() throws {\n        let markdown = #######\"\"\"\n        [foo][bar][baz]\n        \n        [baz]: /url1\n        [bar]: /url2\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a href=\"/url2\">foo</a><a href=\"/url1\">baz</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample567() throws {\n        let markdown = #######\"\"\"\n        [foo][bar][baz]\n        \n        [baz]: /url1\n        [foo]: /url2\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>[foo]<a href=\"/url1\">bar</a></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/ListItemsTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecListItemsTests: XCTestCase {\n    func testExample223() throws {\n        let markdown = #######\"\"\"\n        A paragraph\n        with two lines.\n        \n            indented code\n        \n        > A block quote.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>A paragraph\n        with two lines.</p>\n        <pre><code>indented code\n        </code></pre>\n        <blockquote>\n        <p>A block quote.</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample224() throws {\n        let markdown = #######\"\"\"\n        1.  A paragraph\n            with two lines.\n        \n                indented code\n        \n            > A block quote.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>A paragraph\n        with two lines.</p>\n        <pre><code>indented code\n        </code></pre>\n        <blockquote>\n        <p>A block quote.</p>\n        </blockquote>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample225() throws {\n        let markdown = #######\"\"\"\n        - one\n        \n         two\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>one</li>\n        </ul>\n        <p>two</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample226() throws {\n        let markdown = #######\"\"\"\n        - one\n        \n          two\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>one</p>\n        <p>two</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample227() throws {\n        let markdown = #######\"\"\"\n         -    one\n        \n             two\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>one</li>\n        </ul>\n        <pre><code> two\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample228() throws {\n        let markdown = #######\"\"\"\n         -    one\n        \n              two\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>one</p>\n        <p>two</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample229() throws {\n        let markdown = #######\"\"\"\n           > > 1.  one\n        >>\n        >>     two\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <blockquote>\n        <ol>\n        <li>\n        <p>one</p>\n        <p>two</p>\n        </li>\n        </ol>\n        </blockquote>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample230() throws {\n        let markdown = #######\"\"\"\n        >>- one\n        >>\n          >  > two\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <blockquote>\n        <ul>\n        <li>one</li>\n        </ul>\n        <p>two</p>\n        </blockquote>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample231() throws {\n        let markdown = #######\"\"\"\n        -one\n        \n        2.two\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>-one</p>\n        <p>2.two</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample232() throws {\n        let markdown = #######\"\"\"\n        - foo\n        \n        \n          bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        <p>bar</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample233() throws {\n        let markdown = #######\"\"\"\n        1.  foo\n        \n            ```\n            bar\n            ```\n        \n            baz\n        \n            > bam\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>foo</p>\n        <pre><code>bar\n        </code></pre>\n        <p>baz</p>\n        <blockquote>\n        <p>bam</p>\n        </blockquote>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample234() throws {\n        let markdown = #######\"\"\"\n        - Foo\n        \n              bar\n        \n        \n              baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>Foo</p>\n        <pre><code>bar\n        \n        \n        baz\n        </code></pre>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample235() throws {\n        let markdown = #######\"\"\"\n        123456789. ok\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol start=\"123456789\">\n        <li>ok</li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample236() throws {\n        let markdown = #######\"\"\"\n        1234567890. not ok\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>1234567890. not ok</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample237() throws {\n        let markdown = #######\"\"\"\n        0. ok\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol start=\"0\">\n        <li>ok</li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample238() throws {\n        let markdown = #######\"\"\"\n        003. ok\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol start=\"3\">\n        <li>ok</li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample239() throws {\n        let markdown = #######\"\"\"\n        -1. not ok\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>-1. not ok</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample240() throws {\n        let markdown = #######\"\"\"\n        - foo\n        \n              bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        <pre><code>bar\n        </code></pre>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample241() throws {\n        let markdown = #######\"\"\"\n          10.  foo\n        \n                   bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol start=\"10\">\n        <li>\n        <p>foo</p>\n        <pre><code>bar\n        </code></pre>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample242() throws {\n        let markdown = #######\"\"\"\n            indented code\n        \n        paragraph\n        \n            more code\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>indented code\n        </code></pre>\n        <p>paragraph</p>\n        <pre><code>more code\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample243() throws {\n        let markdown = #######\"\"\"\n        1.     indented code\n        \n           paragraph\n        \n               more code\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <pre><code>indented code\n        </code></pre>\n        <p>paragraph</p>\n        <pre><code>more code\n        </code></pre>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample244() throws {\n        let markdown = #######\"\"\"\n        1.      indented code\n        \n           paragraph\n        \n               more code\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <pre><code> indented code\n        </code></pre>\n        <p>paragraph</p>\n        <pre><code>more code\n        </code></pre>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample245() throws {\n        let markdown = #######\"\"\"\n           foo\n        \n        bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo</p>\n        <p>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample246() throws {\n        let markdown = #######\"\"\"\n        -    foo\n        \n          bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        </ul>\n        <p>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample247() throws {\n        let markdown = #######\"\"\"\n        -  foo\n        \n           bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        <p>bar</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample248() throws {\n        let markdown = #######\"\"\"\n        -\n          foo\n        -\n          ```\n          bar\n          ```\n        -\n              baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        <li>\n        <pre><code>bar\n        </code></pre>\n        </li>\n        <li>\n        <pre><code>baz\n        </code></pre>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample249() throws {\n        let markdown = #######\"\"\"\n        -   \n          foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample250() throws {\n        let markdown = #######\"\"\"\n        -\n        \n          foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li></li>\n        </ul>\n        <p>foo</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample251() throws {\n        let markdown = #######\"\"\"\n        - foo\n        -\n        - bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        <li></li>\n        <li>bar</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample252() throws {\n        let markdown = #######\"\"\"\n        - foo\n        -   \n        - bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        <li></li>\n        <li>bar</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample253() throws {\n        let markdown = #######\"\"\"\n        1. foo\n        2.\n        3. bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>foo</li>\n        <li></li>\n        <li>bar</li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample254() throws {\n        let markdown = #######\"\"\"\n        *\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li></li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample255() throws {\n        let markdown = #######\"\"\"\n        foo\n        *\n        \n        foo\n        1.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo\n        *</p>\n        <p>foo\n        1.</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample256() throws {\n        let markdown = #######\"\"\"\n         1.  A paragraph\n             with two lines.\n        \n                 indented code\n        \n             > A block quote.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>A paragraph\n        with two lines.</p>\n        <pre><code>indented code\n        </code></pre>\n        <blockquote>\n        <p>A block quote.</p>\n        </blockquote>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample257() throws {\n        let markdown = #######\"\"\"\n          1.  A paragraph\n              with two lines.\n        \n                  indented code\n        \n              > A block quote.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>A paragraph\n        with two lines.</p>\n        <pre><code>indented code\n        </code></pre>\n        <blockquote>\n        <p>A block quote.</p>\n        </blockquote>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample258() throws {\n        let markdown = #######\"\"\"\n           1.  A paragraph\n               with two lines.\n        \n                   indented code\n        \n               > A block quote.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>A paragraph\n        with two lines.</p>\n        <pre><code>indented code\n        </code></pre>\n        <blockquote>\n        <p>A block quote.</p>\n        </blockquote>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample259() throws {\n        let markdown = #######\"\"\"\n            1.  A paragraph\n                with two lines.\n        \n                    indented code\n        \n                > A block quote.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>1.  A paragraph\n            with two lines.\n        \n                indented code\n        \n            &gt; A block quote.\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample260() throws {\n        let markdown = #######\"\"\"\n          1.  A paragraph\n        with two lines.\n        \n                  indented code\n        \n              > A block quote.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>A paragraph\n        with two lines.</p>\n        <pre><code>indented code\n        </code></pre>\n        <blockquote>\n        <p>A block quote.</p>\n        </blockquote>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample261() throws {\n        let markdown = #######\"\"\"\n          1.  A paragraph\n            with two lines.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>A paragraph\n        with two lines.</li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample262() throws {\n        let markdown = #######\"\"\"\n        > 1. > Blockquote\n        continued here.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <ol>\n        <li>\n        <blockquote>\n        <p>Blockquote\n        continued here.</p>\n        </blockquote>\n        </li>\n        </ol>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample263() throws {\n        let markdown = #######\"\"\"\n        > 1. > Blockquote\n        > continued here.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <ol>\n        <li>\n        <blockquote>\n        <p>Blockquote\n        continued here.</p>\n        </blockquote>\n        </li>\n        </ol>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample264() throws {\n        let markdown = #######\"\"\"\n        - foo\n          - bar\n            - baz\n              - boo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo\n        <ul>\n        <li>bar\n        <ul>\n        <li>baz\n        <ul>\n        <li>boo</li>\n        </ul>\n        </li>\n        </ul>\n        </li>\n        </ul>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample265() throws {\n        let markdown = #######\"\"\"\n        - foo\n         - bar\n          - baz\n           - boo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        <li>bar</li>\n        <li>baz</li>\n        <li>boo</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample266() throws {\n        let markdown = #######\"\"\"\n        10) foo\n            - bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol start=\"10\">\n        <li>foo\n        <ul>\n        <li>bar</li>\n        </ul>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample267() throws {\n        let markdown = #######\"\"\"\n        10) foo\n           - bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol start=\"10\">\n        <li>foo</li>\n        </ol>\n        <ul>\n        <li>bar</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample268() throws {\n        let markdown = #######\"\"\"\n        - - foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <ul>\n        <li>foo</li>\n        </ul>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample269() throws {\n        let markdown = #######\"\"\"\n        1. - 2. foo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <ul>\n        <li>\n        <ol start=\"2\">\n        <li>foo</li>\n        </ol>\n        </li>\n        </ul>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample270() throws {\n        let markdown = #######\"\"\"\n        - # Foo\n        - Bar\n          ---\n          baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <h1>Foo</h1>\n        </li>\n        <li>\n        <h2>Bar</h2>\n        baz</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/ListsTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecListsTests: XCTestCase {\n    func testExample271() throws {\n        let markdown = #######\"\"\"\n        - foo\n        - bar\n        + baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        <li>bar</li>\n        </ul>\n        <ul>\n        <li>baz</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample272() throws {\n        let markdown = #######\"\"\"\n        1. foo\n        2. bar\n        3) baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>foo</li>\n        <li>bar</li>\n        </ol>\n        <ol start=\"3\">\n        <li>baz</li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample273() throws {\n        let markdown = #######\"\"\"\n        Foo\n        - bar\n        - baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo</p>\n        <ul>\n        <li>bar</li>\n        <li>baz</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample274() throws {\n        let markdown = #######\"\"\"\n        The number of windows in my house is\n        14.  The number of doors is 6.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>The number of windows in my house is\n        14.  The number of doors is 6.</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample275() throws {\n        let markdown = #######\"\"\"\n        The number of windows in my house is\n        1.  The number of doors is 6.\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>The number of windows in my house is</p>\n        <ol>\n        <li>The number of doors is 6.</li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample276() throws {\n        let markdown = #######\"\"\"\n        - foo\n        \n        - bar\n        \n        \n        - baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        </li>\n        <li>\n        <p>bar</p>\n        </li>\n        <li>\n        <p>baz</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample277() throws {\n        let markdown = #######\"\"\"\n        - foo\n          - bar\n            - baz\n        \n        \n              bim\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo\n        <ul>\n        <li>bar\n        <ul>\n        <li>\n        <p>baz</p>\n        <p>bim</p>\n        </li>\n        </ul>\n        </li>\n        </ul>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample278() throws {\n        let markdown = #######\"\"\"\n        - foo\n        - bar\n        \n        <!-- -->\n        \n        - baz\n        - bim\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        <li>bar</li>\n        </ul>\n        <!-- -->\n        <ul>\n        <li>baz</li>\n        <li>bim</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample279() throws {\n        let markdown = #######\"\"\"\n        -   foo\n        \n            notcode\n        \n        -   foo\n        \n        <!-- -->\n        \n            code\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        <p>notcode</p>\n        </li>\n        <li>\n        <p>foo</p>\n        </li>\n        </ul>\n        <!-- -->\n        <pre><code>code\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample280() throws {\n        let markdown = #######\"\"\"\n        - a\n         - b\n          - c\n           - d\n          - e\n         - f\n        - g\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>a</li>\n        <li>b</li>\n        <li>c</li>\n        <li>d</li>\n        <li>e</li>\n        <li>f</li>\n        <li>g</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample281() throws {\n        let markdown = #######\"\"\"\n        1. a\n        \n          2. b\n        \n           3. c\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>a</p>\n        </li>\n        <li>\n        <p>b</p>\n        </li>\n        <li>\n        <p>c</p>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample282() throws {\n        let markdown = #######\"\"\"\n        - a\n         - b\n          - c\n           - d\n            - e\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>a</li>\n        <li>b</li>\n        <li>c</li>\n        <li>d\n        - e</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample283() throws {\n        let markdown = #######\"\"\"\n        1. a\n        \n          2. b\n        \n            3. c\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <p>a</p>\n        </li>\n        <li>\n        <p>b</p>\n        </li>\n        </ol>\n        <pre><code>3. c\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample284() throws {\n        let markdown = #######\"\"\"\n        - a\n        - b\n        \n        - c\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>a</p>\n        </li>\n        <li>\n        <p>b</p>\n        </li>\n        <li>\n        <p>c</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample285() throws {\n        let markdown = #######\"\"\"\n        * a\n        *\n        \n        * c\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>a</p>\n        </li>\n        <li></li>\n        <li>\n        <p>c</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample286() throws {\n        let markdown = #######\"\"\"\n        - a\n        - b\n        \n          c\n        - d\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>a</p>\n        </li>\n        <li>\n        <p>b</p>\n        <p>c</p>\n        </li>\n        <li>\n        <p>d</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample287() throws {\n        let markdown = #######\"\"\"\n        - a\n        - b\n        \n          [ref]: /url\n        - d\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>a</p>\n        </li>\n        <li>\n        <p>b</p>\n        </li>\n        <li>\n        <p>d</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample288() throws {\n        let markdown = #######\"\"\"\n        - a\n        - ```\n          b\n        \n        \n          ```\n        - c\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>a</li>\n        <li>\n        <pre><code>b\n        \n        \n        </code></pre>\n        </li>\n        <li>c</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample289() throws {\n        let markdown = #######\"\"\"\n        - a\n          - b\n        \n            c\n        - d\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>a\n        <ul>\n        <li>\n        <p>b</p>\n        <p>c</p>\n        </li>\n        </ul>\n        </li>\n        <li>d</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample290() throws {\n        let markdown = #######\"\"\"\n        * a\n          > b\n          >\n        * c\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>a\n        <blockquote>\n        <p>b</p>\n        </blockquote>\n        </li>\n        <li>c</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample291() throws {\n        let markdown = #######\"\"\"\n        - a\n          > b\n          ```\n          c\n          ```\n        - d\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>a\n        <blockquote>\n        <p>b</p>\n        </blockquote>\n        <pre><code>c\n        </code></pre>\n        </li>\n        <li>d</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample292() throws {\n        let markdown = #######\"\"\"\n        - a\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>a</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample293() throws {\n        let markdown = #######\"\"\"\n        - a\n          - b\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>a\n        <ul>\n        <li>b</li>\n        </ul>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample294() throws {\n        let markdown = #######\"\"\"\n        1. ```\n           foo\n           ```\n        \n           bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ol>\n        <li>\n        <pre><code>foo\n        </code></pre>\n        <p>bar</p>\n        </li>\n        </ol>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample295() throws {\n        let markdown = #######\"\"\"\n        * foo\n          * bar\n        \n          baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        <ul>\n        <li>bar</li>\n        </ul>\n        <p>baz</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample296() throws {\n        let markdown = #######\"\"\"\n        - a\n          - b\n          - c\n        \n        - d\n          - e\n          - f\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>a</p>\n        <ul>\n        <li>b</li>\n        <li>c</li>\n        </ul>\n        </li>\n        <li>\n        <p>d</p>\n        <ul>\n        <li>e</li>\n        <li>f</li>\n        </ul>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/ParagraphsTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecParagraphsTests: XCTestCase {\n    func testExample189() throws {\n        let markdown = #######\"\"\"\n        aaa\n        \n        bbb\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aaa</p>\n        <p>bbb</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample190() throws {\n        let markdown = #######\"\"\"\n        aaa\n        bbb\n        \n        ccc\n        ddd\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aaa\n        bbb</p>\n        <p>ccc\n        ddd</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample191() throws {\n        let markdown = #######\"\"\"\n        aaa\n        \n        \n        bbb\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aaa</p>\n        <p>bbb</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample192() throws {\n        let markdown = #######\"\"\"\n          aaa\n         bbb\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aaa\n        bbb</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample193() throws {\n        let markdown = #######\"\"\"\n        aaa\n                     bbb\n                                               ccc\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aaa\n        bbb\n        ccc</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample194() throws {\n        let markdown = #######\"\"\"\n           aaa\n        bbb\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aaa\n        bbb</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample195() throws {\n        let markdown = #######\"\"\"\n            aaa\n        bbb\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>aaa\n        </code></pre>\n        <p>bbb</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample196() throws {\n        let markdown = #######\"\"\"\n        aaa     \n        bbb     \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>aaa<br />\n        bbb</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/PrecedenceTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecPrecedenceTests: XCTestCase {\n    func testExample12() throws {\n        let markdown = #######\"\"\"\n        - `one\n        - two`\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>`one</li>\n        <li>two`</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/RawHtmlTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecRawHtmlTests: XCTestCase {\n    func testExample609() throws {\n        let markdown = #######\"\"\"\n        <a><bab><c2c>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a><bab><c2c></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample610() throws {\n        let markdown = #######\"\"\"\n        <a/><b2/>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a/><b2/></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample611() throws {\n        let markdown = #######\"\"\"\n        <a  /><b2\n        data=\"foo\" >\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a  /><b2\n        data=\"foo\" ></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample612() throws {\n        let markdown = #######\"\"\"\n        <a foo=\"bar\" bam = 'baz <em>\"</em>'\n        _boolean zoop:33=zoop:33 />\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><a foo=\"bar\" bam = 'baz <em>\"</em>'\n        _boolean zoop:33=zoop:33 /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample613() throws {\n        let markdown = #######\"\"\"\n        Foo <responsive-image src=\"foo.jpg\" />\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo <responsive-image src=\"foo.jpg\" /></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample614() throws {\n        let markdown = #######\"\"\"\n        <33> <__>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;33&gt; &lt;__&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample615() throws {\n        let markdown = #######\"\"\"\n        <a h*#ref=\"hi\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;a h*#ref=&quot;hi&quot;&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample616() throws {\n        let markdown = #######\"\"\"\n        <a href=\"hi'> <a href=hi'>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;a href=&quot;hi'&gt; &lt;a href=hi'&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample617() throws {\n        let markdown = #######\"\"\"\n        < a><\n        foo><bar/ >\n        <foo bar=baz\n        bim!bop />\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt; a&gt;&lt;\n        foo&gt;&lt;bar/ &gt;\n        &lt;foo bar=baz\n        bim!bop /&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample618() throws {\n        let markdown = #######\"\"\"\n        <a href='bar'title=title>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;a href='bar'title=title&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample619() throws {\n        let markdown = #######\"\"\"\n        </a></foo >\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p></a></foo ></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample620() throws {\n        let markdown = #######\"\"\"\n        </a href=\"foo\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;/a href=&quot;foo&quot;&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample621() throws {\n        let markdown = #######\"\"\"\n        foo <!-- this is a\n        comment - with hyphen -->\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <!-- this is a\n        comment - with hyphen --></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample622() throws {\n        let markdown = #######\"\"\"\n        foo <!-- not a comment -- two hyphens -->\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo &lt;!-- not a comment -- two hyphens --&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample623() throws {\n        let markdown = #######\"\"\"\n        foo <!--> foo -->\n        \n        foo <!-- foo--->\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo &lt;!--&gt; foo --&gt;</p>\n        <p>foo &lt;!-- foo---&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample624() throws {\n        let markdown = #######\"\"\"\n        foo <?php echo $a; ?>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <?php echo $a; ?></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample625() throws {\n        let markdown = #######\"\"\"\n        foo <!ELEMENT br EMPTY>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <!ELEMENT br EMPTY></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample626() throws {\n        let markdown = #######\"\"\"\n        foo <![CDATA[>&<]]>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <![CDATA[>&<]]></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample627() throws {\n        let markdown = #######\"\"\"\n        foo <a href=\"&ouml;\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <a href=\"&ouml;\"></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample628() throws {\n        let markdown = #######\"\"\"\n        foo <a href=\"\\*\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo <a href=\"\\*\"></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample629() throws {\n        let markdown = #######\"\"\"\n        <a href=\"\\\"\">\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>&lt;a href=&quot;&quot;&quot;&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/SetextHeadingsTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecSetextHeadingsTests: XCTestCase {\n    func testExample50() throws {\n        let markdown = #######\"\"\"\n        Foo *bar*\n        =========\n        \n        Foo *bar*\n        ---------\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>Foo <em>bar</em></h1>\n        <h2>Foo <em>bar</em></h2>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample51() throws {\n        let markdown = #######\"\"\"\n        Foo *bar\n        baz*\n        ====\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>Foo <em>bar\n        baz</em></h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample52() throws {\n        let markdown = #######\"\"\"\n          Foo *bar\n        baz*\t\n        ====\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>Foo <em>bar\n        baz</em></h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample53() throws {\n        let markdown = #######\"\"\"\n        Foo\n        -------------------------\n        \n        Foo\n        =\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>Foo</h2>\n        <h1>Foo</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample54() throws {\n        let markdown = #######\"\"\"\n           Foo\n        ---\n        \n          Foo\n        -----\n        \n          Foo\n          ===\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>Foo</h2>\n        <h2>Foo</h2>\n        <h1>Foo</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample55() throws {\n        let markdown = #######\"\"\"\n            Foo\n            ---\n        \n            Foo\n        ---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>Foo\n        ---\n        \n        Foo\n        </code></pre>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample56() throws {\n        let markdown = #######\"\"\"\n        Foo\n           ----      \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>Foo</h2>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample57() throws {\n        let markdown = #######\"\"\"\n        Foo\n            ---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        ---</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample58() throws {\n        let markdown = #######\"\"\"\n        Foo\n        = =\n        \n        Foo\n        --- -\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        = =</p>\n        <p>Foo</p>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample59() throws {\n        let markdown = #######\"\"\"\n        Foo  \n        -----\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>Foo</h2>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample60() throws {\n        let markdown = #######\"\"\"\n        Foo\\\n        ----\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>Foo\\</h2>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample61() throws {\n        let markdown = #######\"\"\"\n        `Foo\n        ----\n        `\n        \n        <a title=\"a lot\n        ---\n        of dashes\"/>\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>`Foo</h2>\n        <p>`</p>\n        <h2>&lt;a title=&quot;a lot</h2>\n        <p>of dashes&quot;/&gt;</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample62() throws {\n        let markdown = #######\"\"\"\n        > Foo\n        ---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>Foo</p>\n        </blockquote>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample63() throws {\n        let markdown = #######\"\"\"\n        > foo\n        bar\n        ===\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>foo\n        bar\n        ===</p>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample64() throws {\n        let markdown = #######\"\"\"\n        - Foo\n        ---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>Foo</li>\n        </ul>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample65() throws {\n        let markdown = #######\"\"\"\n        Foo\n        Bar\n        ---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>Foo\n        Bar</h2>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample66() throws {\n        let markdown = #######\"\"\"\n        ---\n        Foo\n        ---\n        Bar\n        ---\n        Baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n        <h2>Foo</h2>\n        <h2>Bar</h2>\n        <p>Baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample67() throws {\n        let markdown = #######\"\"\"\n        \n        ====\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>====</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample68() throws {\n        let markdown = #######\"\"\"\n        ---\n        ---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample69() throws {\n        let markdown = #######\"\"\"\n        - foo\n        -----\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        </ul>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample70() throws {\n        let markdown = #######\"\"\"\n            foo\n        ---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>foo\n        </code></pre>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample71() throws {\n        let markdown = #######\"\"\"\n        > foo\n        -----\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <p>foo</p>\n        </blockquote>\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample72() throws {\n        let markdown = #######\"\"\"\n        \\> foo\n        ------\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>&gt; foo</h2>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample73() throws {\n        let markdown = #######\"\"\"\n        Foo\n        \n        bar\n        ---\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo</p>\n        <h2>bar</h2>\n        <p>baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample74() throws {\n        let markdown = #######\"\"\"\n        Foo\n        bar\n        \n        ---\n        \n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        bar</p>\n        <hr />\n        <p>baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample75() throws {\n        let markdown = #######\"\"\"\n        Foo\n        bar\n        * * *\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        bar</p>\n        <hr />\n        <p>baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample76() throws {\n        let markdown = #######\"\"\"\n        Foo\n        bar\n        \\---\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        bar\n        ---\n        baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/SoftLineBreaksTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecSoftLineBreaksTests: XCTestCase {\n    func testExample645() throws {\n        let markdown = #######\"\"\"\n        foo\n        baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo\n        baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample646() throws {\n        let markdown = #######\"\"\"\n        foo \n         baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>foo\n        baz</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/TabsTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecTabsTests: XCTestCase {\n    func testExample1() throws {\n        let markdown = #######\"\"\"\n        \tfoo\tbaz\t\tbim\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>foo\tbaz\t\tbim\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample2() throws {\n        let markdown = #######\"\"\"\n          \tfoo\tbaz\t\tbim\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>foo\tbaz\t\tbim\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample3() throws {\n        let markdown = #######\"\"\"\n            a\ta\n            ὐ\ta\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>a\ta\n        ὐ\ta\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample4() throws {\n        let markdown = #######\"\"\"\n          - foo\n        \n        \tbar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        <p>bar</p>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample5() throws {\n        let markdown = #######\"\"\"\n        - foo\n        \n        \t\tbar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <p>foo</p>\n        <pre><code>  bar\n        </code></pre>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample6() throws {\n        let markdown = #######\"\"\"\n        >\t\tfoo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <blockquote>\n        <pre><code>  foo\n        </code></pre>\n        </blockquote>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample7() throws {\n        let markdown = #######\"\"\"\n        -\t\tfoo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>\n        <pre><code>  foo\n        </code></pre>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample8() throws {\n        let markdown = #######\"\"\"\n            foo\n        \tbar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>foo\n        bar\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample9() throws {\n        let markdown = #######\"\"\"\n         - foo\n           - bar\n        \t - baz\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo\n        <ul>\n        <li>bar\n        <ul>\n        <li>baz</li>\n        </ul>\n        </li>\n        </ul>\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample10() throws {\n        let markdown = #######\"\"\"\n        #\tFoo\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h1>Foo</h1>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample11() throws {\n        let markdown = #######\"\"\"\n        *\t*\t*\t\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/TextualContentTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecTextualContentTests: XCTestCase {\n    func testExample647() throws {\n        let markdown = #######\"\"\"\n        hello $.;'there\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>hello $.;'there</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample648() throws {\n        let markdown = #######\"\"\"\n        Foo χρῆν\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo χρῆν</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample649() throws {\n        let markdown = #######\"\"\"\n        Multiple     spaces\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Multiple     spaces</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkSpecTests/ThematicBreaksTests.swift",
    "content": "// This file was automatically generated and should not be edited.\n\nimport XCTest\nimport CommonMark\n\nfinal class CommonMarkSpecThematicBreaksTests: XCTestCase {\n    func testExample13() throws {\n        let markdown = #######\"\"\"\n        ***\n        ---\n        ___\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n        <hr />\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample14() throws {\n        let markdown = #######\"\"\"\n        +++\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>+++</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample15() throws {\n        let markdown = #######\"\"\"\n        ===\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>===</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample16() throws {\n        let markdown = #######\"\"\"\n        --\n        **\n        __\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>--\n        **\n        __</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample17() throws {\n        let markdown = #######\"\"\"\n         ***\n          ***\n           ***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n        <hr />\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample18() throws {\n        let markdown = #######\"\"\"\n            ***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <pre><code>***\n        </code></pre>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample19() throws {\n        let markdown = #######\"\"\"\n        Foo\n            ***\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo\n        ***</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample20() throws {\n        let markdown = #######\"\"\"\n        _____________________________________\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample21() throws {\n        let markdown = #######\"\"\"\n         - - -\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample22() throws {\n        let markdown = #######\"\"\"\n         **  * ** * ** * **\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample23() throws {\n        let markdown = #######\"\"\"\n        -     -      -      -\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample24() throws {\n        let markdown = #######\"\"\"\n        - - - -    \n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <hr />\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample25() throws {\n        let markdown = #######\"\"\"\n        _ _ _ _ a\n        \n        a------\n        \n        ---a---\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>_ _ _ _ a</p>\n        <p>a------</p>\n        <p>---a---</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample26() throws {\n        let markdown = #######\"\"\"\n         *-*\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p><em>-</em></p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample27() throws {\n        let markdown = #######\"\"\"\n        - foo\n        ***\n        - bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>foo</li>\n        </ul>\n        <hr />\n        <ul>\n        <li>bar</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample28() throws {\n        let markdown = #######\"\"\"\n        Foo\n        ***\n        bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <p>Foo</p>\n        <hr />\n        <p>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample29() throws {\n        let markdown = #######\"\"\"\n        Foo\n        ---\n        bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <h2>Foo</h2>\n        <p>bar</p>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample30() throws {\n        let markdown = #######\"\"\"\n        * Foo\n        * * *\n        * Bar\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>Foo</li>\n        </ul>\n        <hr />\n        <ul>\n        <li>Bar</li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testExample31() throws {\n        let markdown = #######\"\"\"\n        - Foo\n        - * * *\n\n        \"\"\"#######\n\n        let html = #######\"\"\"\n        <ul>\n        <li>Foo</li>\n        <li>\n        <hr />\n        </li>\n        </ul>\n\n        \"\"\"#######\n\n        let document = try Document(markdown)\n\n        let actual = document.render(format: .html, options: [.unsafe])\n        let expected = html\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkTests/CommonMarkBuilderTests.swift",
    "content": "import XCTest\nimport CommonMark\n\n#if swift(>=5.4)\nfinal class CommonMarkBuilderTests: XCTestCase {\n    func testCommonMarkBuilder() throws {\n        let urlString: String? = \"https://www.un.org/en/universal-declaration-human-rights/\"\n\n        let articles: [String] = [\n            \"\"\"\n            All human beings are born free and equal in dignity and rights.\n            They are endowed with reason and conscience\n            and should act towards one another in a spirit of brotherhood.\n            \"\"\"\n        ]\n\n        let document = Document {\n            Heading {\n                if let urlString = urlString {\n                    Link(urlString: urlString, title: \"View full version\") {\n                        \"Universal Declaration of Human Rights\"\n                    }\n                }\n            }\n\n            for (number, body) in zip(1..., articles) {\n                Section {\n                    Heading { \"Article \\(number).\" }\n                    body\n                }\n            }\n        }\n\n        let expected = try Document(Fixtures.udhr)\n\n        XCTAssertEqual(document.description, expected.description)\n    }\n\n    func testListBuilder() throws {\n        let numbers = 1...3\n\n        let formatter = NumberFormatter()\n        formatter.numberStyle = .spellOut\n        formatter.locale = Locale(identifier: \"en-US\")\n\n        do {\n            let list = List(of: numbers) { n in\n                formatter.string(for: n)\n            }\n\n            let expected = #\"\"\"\n                             - one\n                             - two\n                             - three\n\n                           \"\"\"#\n\n            let actual = list.description\n\n            XCTAssertEqual(expected, actual)\n        }\n\n        do {\n            let list = List(of: numbers, delimiter: .period(1)) { n in\n                formatter.string(for: n)\n            }\n\n            let expected = #\"\"\"\n                           1.  one\n                           2.  two\n                           3.  three\n\n                           \"\"\"#\n\n            let actual = list.description\n\n            XCTAssertEqual(expected, actual)\n        }\n    }\n\n    func testHTMLBlock() throws {\n        let document = Document {\n            HTMLBlock.wrap {\n                Paragraph { \"Hello, world!\" }\n            } before: {\n                \"<div>\"\n            } after: {\n                \"</div>\"\n            }\n        }\n\n        let expected = #\"\"\"\n        <div>\n\n        Hello, world\\!\n\n        </div>\n\n        \"\"\"#\n\n        let actual = document.description\n\n        XCTAssertEqual(expected, actual)\n    }\n}\n#endif\n"
  },
  {
    "path": "Tests/CommonMarkTests/CommonMarkTests.swift",
    "content": "import XCTest\nimport CommonMark\n\nfinal class CommonMarkTests: XCTestCase {\n    func testCommonMarkVersion() {\n        XCTAssertEqual(CommonMark.version.major, 0)\n        XCTAssertEqual(CommonMark.version.minor, 29)\n        XCTAssertEqual(CommonMark.version.patch, 0)\n    }\n}\n"
  },
  {
    "path": "Tests/CommonMarkTests/ContainerManipulationTests.swift",
    "content": "import XCTest\nimport CommonMark\n\nfinal class ContainerManipulationTests: XCTestCase {\n    func testContainerOfBlocksManipulation() throws {\n        let document = try Document(Fixtures.udhr)\n\n        XCTAssertEqual(document.children.count, 3)\n        let heading = document.children[0] as! Heading\n        XCTAssertEqual(heading.level, 1)\n        let subheading = document.children[1] as! Heading\n        XCTAssertEqual(subheading.level, 2)\n        let paragraph = document.children[2] as! Paragraph\n        XCTAssert(paragraph.description.starts(with: \"All human beings\"))\n\n        let newParagraph = Paragraph(text:\n           #\"\"\"\n           Everyone is entitled to all the rights and freedoms set forth in this Declaration, \n           without distinction of any kind, such as race, colour, sex, language, religion, \n           political or other opinion, national or social origin, property, birth or other status.\n           \"\"\"#)\n        let wasNewParagraphInserted = document.insert(child: newParagraph, after: paragraph)\n        XCTAssertTrue(wasNewParagraphInserted)\n        XCTAssertEqual(document.children.count, 4)\n        XCTAssertEqual(newParagraph, document.children[3])\n\n        let replacementParagraph = Paragraph(text:\n            #\"\"\"\n            Everyone is entitled to all the rights and freedoms set forth in this Declaration,\n            without distinction of any kind, such as\n            race,\n            colour,\n            sex,\n            language,\n            religion,\n            political or other opinion,\n            national or social origin,\n            property,\n            birth or\n            other status.\n            \"\"\"#\n            )\n        let wasNewParagraphReplaced = document.replace(child: newParagraph, with: replacementParagraph)\n        XCTAssertTrue(wasNewParagraphReplaced)\n        XCTAssertEqual(document.children.count, 4)\n        XCTAssertEqual(replacementParagraph, document.children[3])\n\n        let newSubheading = Heading(level: 2, text: \"Article 2.\")\n        let wasSubheadingInserted = document.insert(child: newSubheading, before: replacementParagraph)\n        XCTAssertTrue(wasSubheadingInserted)\n        XCTAssertEqual(document.children.count, 5)\n        XCTAssertEqual(newSubheading, document.children[3])\n    }\n    \n    func testContainerOfInlineElementsManipulation() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let paragraph = document.children[2] as! Paragraph\n        XCTAssertEqual(paragraph.children.count, 5)\n\n        let text = Text(literal: \"Article 1:\")\n        let wasTextInserted = paragraph.insert(child: text, before: paragraph.children[0])\n        XCTAssertTrue(wasTextInserted)\n        XCTAssertEqual(paragraph.children[0], text)\n\n        let lineBreak = SoftLineBreak()\n        let wasLineBreakInserted = paragraph.insert(child: lineBreak, after: text)\n        XCTAssertTrue(wasLineBreakInserted)\n        XCTAssertEqual(paragraph.children[1], lineBreak)\n    }\n    \n    func testListManipulation() throws {\n        let document = try Document(\n            #\"\"\"\n            * First\n            * Second\n            * Fourth\n            \"\"\"#)\n        \n        let list = document.children[0] as! List\n        XCTAssertEqual(list.children.count, 3)\n\n        let third = List.Item(children: [Text(literal: \"Third\")])\n        let wasThirdInserted = list.insert(child: third, before: list.children[2])\n        XCTAssertTrue(wasThirdInserted)\n        XCTAssertEqual(list.children[2], third)\n\n        let fifth = List.Item(children: [Text(literal: \"Fifth\")])\n        let wasFifthInserted = list.insert(child: fifth, after: list.children[3])\n        XCTAssertTrue(wasFifthInserted)\n        XCTAssertEqual(list.children[4], fifth)\n    }\n\n    func testListItemManipulation() throws {\n        let listItem = List.Item(children: [Paragraph(text: \"First\")])\n        let secondChild = Paragraph(text: \"Second\")\n        let wasSecondChildInserted = listItem.insert(child: secondChild, after: listItem.children[0])\n        XCTAssertTrue(wasSecondChildInserted)\n        XCTAssertEqual(listItem.children[1], secondChild)\n\n        let thirdChild = Paragraph(text: \"Third\")\n        let wasThirdChildInserted = listItem.insert(child: thirdChild, before: listItem.children[0])\n        XCTAssertTrue(wasThirdChildInserted)\n        XCTAssertEqual(listItem.children[0], thirdChild)\n    }\n}\n"
  },
  {
    "path": "Tests/CommonMarkTests/DocumentTests.swift",
    "content": "import XCTest\nimport CommonMark\n\nfinal class DocumentTests: XCTestCase {\n\n    // MARK: - Creation\n\n    func testDocumentCreation() throws {\n        let link = Link(urlString: \"https://www.un.org/en/universal-declaration-human-rights/\",\n                        title: \"View full version\",\n                        text: \"Universal Declaration of Human Rights\")\n        let heading = Heading(level: 1, children: [link])\n\n        let subheading = Heading(level: 2, text: \"Article 1.\")\n\n        let paragraph = Paragraph(text: #\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.\n        \"\"\"#, replacingNewLinesWithBreaks: true)\n\n        let document = Document(children: [heading, subheading, paragraph])\n\n        let actual = document.description\n        let expected = try Document(Fixtures.udhr).description\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    // MARK: - Parsing\n\n    func testDocumentParsing() throws {\n        let document = try Document(Fixtures.udhr)\n\n        XCTAssertEqual(document.children.count, 3)\n\n        let heading = document.children[0] as! Heading\n        XCTAssertEqual(heading.level, 1)\n        XCTAssertEqual(heading.children.count, 1)\n        XCTAssertEqual(heading.parent, document)\n\n        let link = heading.children[0] as! Link\n        XCTAssertEqual(link.urlString, \"https://www.un.org/en/universal-declaration-human-rights/\")\n        XCTAssertEqual(link.title, \"View full version\")\n        XCTAssertEqual(link.parent, heading)\n\n        let subheading = document.children[1] as! Heading\n        XCTAssertEqual(subheading.level, 2)\n        XCTAssertEqual(subheading.children.count, 1)\n        XCTAssertEqual(subheading.parent, document)\n\n        let subheadingText = subheading.children[0] as! Text\n        XCTAssertEqual(subheadingText.literal, \"Article 1.\")\n        XCTAssertEqual(subheadingText.parent, subheading)\n\n        let paragraph = document.children[2] as! Paragraph\n        XCTAssert(paragraph.description.starts(with: \"All human beings\"))\n        XCTAssertEqual(paragraph.range.lowerBound.line, 5)\n        XCTAssertEqual(paragraph.range.lowerBound.column, 1)\n        XCTAssertEqual(paragraph.range.upperBound.line, 7)\n        XCTAssertEqual(paragraph.range.upperBound.column, 62)\n        XCTAssertEqual(paragraph.parent, document)\n    }\n\n    // https://github.com/SwiftDocOrg/CommonMark/issues/19\n    func testLinkParsing() throws {\n        let document = try Document(#\"\"\"\n        [Universal Declaration of Human Rights](https://www.un.org/en/universal-declaration-human-rights/ \"View full version\")\n        \"\"\"#)\n\n        let paragraph = document.children[0] as! Paragraph\n        XCTAssertEqual(paragraph.children.count, 1)\n        XCTAssertEqual(paragraph.parent, document)\n\n        let link = paragraph.children[0] as! Link\n        XCTAssertEqual(link.urlString, \"https://www.un.org/en/universal-declaration-human-rights/\")\n        XCTAssertEqual(link.title, \"View full version\")\n        XCTAssertEqual(link.parent, paragraph)\n\n        let text = link.children[0] as! Text\n        XCTAssertEqual(text.literal, \"Universal Declaration of Human Rights\")\n        XCTAssertEqual(text.parent, link)\n    }\n\n    // https://github.com/SwiftDocOrg/CommonMark/issues/1\n    func testInvalidRange() throws {\n        let commonmark = \"* #\"\n\n        let document = try Document(commonmark)\n\n        let list = document.children.first as! List\n        let item = list.children.first! as List.Item\n        let heading = item.children.first as! Heading\n        XCTAssertEqual(heading.range.lowerBound.line, 1)\n        XCTAssertEqual(heading.range.lowerBound.column, 3)\n        XCTAssertEqual(heading.range.upperBound.line, 1)\n        XCTAssertEqual(heading.range.upperBound.column, 3)\n    }\n\n    // https://github.com/SwiftDocOrg/CommonMark/issues/20\n    func testParseWithoutOptions() throws {\n        let commonmark = \"\"\"\n        single-dash: -\n        double-dash: --\n        triple-dash: ---\n        single-quote: ''\n        double-quote: \"\"\n        single-period: .\n        double-period: ..\n        triple-period: ...\n        \"\"\"\n\n        let document = try Document(commonmark)\n\n        let paragraph = document.children.first as! Paragraph\n        let paragraphText = paragraph.description.trimmingCharacters(\n            in: .whitespacesAndNewlines\n        )\n\n        // Without smart options we expect no smart replacements to happen:\n\n        let actual = paragraphText\n        let expected = commonmark\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    // https://github.com/SwiftDocOrg/CommonMark/issues/20\n    func testParseWithSmartOptions() throws {\n        let commonmark = \"\"\"\n        single-dash: -\n        double-dash: --\n        triple-dash: ---\n        single-quote: ''\n        double-quote: \"\"\n        single-period: .\n        double-period: ..\n        triple-period: ...\n        \"\"\"\n\n        let document = try Document(commonmark, options: [.smart])\n\n        let paragraph = document.children.first as! Paragraph\n        let paragraphText = paragraph.description.trimmingCharacters(\n            in: .whitespacesAndNewlines\n        )\n\n        // With smart options we expect the following smart replacements:\n        //\n        // single-dash -> no change\n        // double-dash -> n-dash\n        // triple-dash -> m-dash\n        // single-quote -> curly single quotes\n        // double-quote -> curly double quotes\n        // single-period -> no change\n        // double-period -> no change\n        // triple-period -> ellipsis\n\n        let actual = paragraphText\n        let expected = \"\"\"\n        single-dash: -\n        double-dash: –\n        triple-dash: —\n        single-quote: ‘’\n        double-quote: “”\n        single-period: .\n        double-period: ..\n        triple-period: …\n        \"\"\"\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    // MARK: - Rendering\n\n    func testDocumentCommonMarkRendering() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let actual = document.render(format: .commonmark, width: 60)\n        let expected = #\"\"\"\n        # [Universal Declaration of Human Rights](https://www.un.org/en/universal-declaration-human-rights/ \"View full version\")\n\n        ## Article 1.\n\n        All human beings are born free and equal in dignity and\n        rights. They are endowed with reason and conscience and\n        should act towards one another in a spirit of brotherhood.\n\n        \"\"\"#\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    // https://github.com/SwiftDocOrg/CommonMark/issues/19\n    func testLinkCommonMarkRendering() throws {\n        let document = try Document(#\"\"\"\n        [Universal Declaration of Human Rights](https://www.un.org/en/universal-declaration-human-rights/ \"View full version\")\n        \"\"\"#)\n\n        let paragraph = document.children[0] as! Paragraph\n        let link = paragraph.children[0] as! Link\n\n        let actual = link.render(format: .commonmark)\n        let expected = #\"\"\"\n        [Universal Declaration of Human Rights](https://www.un.org/en/universal-declaration-human-rights/ \"View full version\")\n\n        \"\"\"#\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testNodeCommonMarkRendering() throws {\n        let document = try Document(Fixtures.udhr)\n\n        for child in document.children {\n            XCTAssertEqual(child.render(format: .commonmark), child.description)\n        }\n    }\n\n    func testDocumentHTMLRendering() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let actual = document.render(format: .html)\n        let expected = #\"\"\"\n        <h1><a href=\"https://www.un.org/en/universal-declaration-human-rights/\" title=\"View full version\">Universal Declaration of Human Rights</a></h1>\n        <h2>Article 1.</h2>\n        <p>All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.</p>\n\n        \"\"\"#\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testNodeHTMLRendering() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let actual = document.render(format: .html)\n        let expected = document.children.map {\n            $0.render(format: .html)\n        }.joined()\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testDocumentXMLRendering() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let actual = document.render(format: .xml)\n        let expected = #\"\"\"\n        <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n        <!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n        <document xmlns=\"http://commonmark.org/xml/1.0\">\n          <heading level=\"1\">\n            <link destination=\"https://www.un.org/en/universal-declaration-human-rights/\" title=\"View full version\">\n              <text xml:space=\"preserve\">Universal Declaration of Human Rights</text>\n            </link>\n          </heading>\n          <heading level=\"2\">\n            <text xml:space=\"preserve\">Article 1.</text>\n          </heading>\n          <paragraph>\n            <text xml:space=\"preserve\">All human beings are born free and equal in dignity and rights.</text>\n            <softbreak />\n            <text xml:space=\"preserve\">They are endowed with reason and conscience</text>\n            <softbreak />\n            <text xml:space=\"preserve\">and should act towards one another in a spirit of brotherhood.</text>\n          </paragraph>\n        </document>\n\n        \"\"\"#\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testDocumentLaTeXRendering() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let actual = document.render(format: .latex)\n        let expected = #\"\"\"\n        \\section{\\href{https://www.un.org/en/universal-declaration-human-rights/}{Universal Declaration of Human Rights}}\n\n        \\subsection{Article 1.}\n\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.\n\n        \"\"\"#\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testDocumentManpageRendering() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let actual = document.render(format: .manpage, width: 60)\n        let expected = #\"\"\"\n        .SH\n        Universal Declaration of Human\n        Rights (https://www.un.org/en/universal\\-declaration\\-human\\-rights/)\n        .SS\n        Article 1.\n        .PP\n        All human beings are born free and equal in dignity and\n        rights. They are endowed with reason and conscience and\n        should act towards one another in a spirit of brotherhood.\n\n        \"\"\"#\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    // MARK: - Equality\n\n    func testDocumentEquality() throws {\n        let text = #\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.\n        \"\"\"#\n\n        let firstDocument = try Document(\"\\(text)\")\n        let secondDocument = try Document(\"\\(text)\")\n\n        XCTAssertNotEqual(firstDocument, secondDocument)\n        XCTAssertEqual(firstDocument, firstDocument)\n        XCTAssertEqual(secondDocument, secondDocument)\n    }\n\n    // MARK: - Hashable\n\n    func testNodesHashable() throws {\n        let text = #\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.\n        \"\"\"#\n\n        let firstDocument = try Document(\"\\(text)\")\n        let secondDocument = try Document(\"\\(text)\")\n\n        var map = [Document: String]()\n        map[firstDocument] = \"first\"\n        map[secondDocument] = \"second\"\n\n        XCTAssertEqual(map[firstDocument], \"first\")\n        XCTAssertEqual(map[secondDocument], \"second\")\n    }\n\n    func testHashValueConsistentAfterNodeIsModified() throws {\n        let document = try Document(#\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        \"\"\"#)\n\n        var documents = Set<Document>()\n        documents.insert(document)\n\n        let paragraph = document.children.first as! Paragraph\n        paragraph.append(child: SoftLineBreak())\n        paragraph.append(child: Text(literal: \"and should act towards one another in a spirit of brotherhood.\"))\n\n        XCTAssertTrue(documents.contains(document))\n        XCTAssertEqual(document.description,\n        #\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.\n\n        \"\"\"#)\n    }\n\n    // MARK: - Coding\n\n    func testDocumentCodingRoundTrip() throws {\n        let document = try Document(Fixtures.udhr)\n\n        // Workaround for \"Top-level Document encoded as string JSON fragment.\"\n        let encoded = try JSONEncoder().encode([document])\n        let decoded = try JSONDecoder().decode([Document].self, from: encoded)[0]\n\n        let actual = decoded.render(format: .commonmark)\n        let expected = document.render(format: .commonmark)\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testBlockElementCodingRoundTrip() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let heading = document.children.first! as! Heading\n\n        // Workaround for \"Top-level Heading encoded as string JSON fragment.\"\n        let encoded = try JSONEncoder().encode([heading])\n        let decoded = try JSONDecoder().decode([Heading].self, from: encoded)[0]\n\n        let actual = try Document(decoded.description).render(format: .commonmark)\n        let expected = try Document(heading.description).render(format: .commonmark)\n\n        XCTAssertEqual(actual, expected)\n    }\n\n    func testInlineElementCodingRoundTrip() throws {\n        let document = try Document(Fixtures.udhr)\n\n        let heading = document.children.first! as! Heading\n        let link = heading.children.first! as! Link\n\n        // Workaround for \"Top-level Link encoded as string JSON fragment.\"\n        let encoded = try JSONEncoder().encode([link])\n        let decoded = try JSONDecoder().decode([Link].self, from: encoded)[0]\n\n        let actual = try Document(decoded.description).render(format: .commonmark)\n        let expected = try Document(link.description).render(format: .commonmark)\n\n        XCTAssertEqual(actual, expected)\n    }\n\n}\n"
  },
  {
    "path": "Tests/CommonMarkTests/Fixtures.swift",
    "content": "public enum Fixtures {\n    public static let udhr: String = #\"\"\"\n    # [Universal Declaration of Human Rights][udhr]\n\n    ## Article 1.\n\n    All human beings are born free and equal in dignity and rights.\n    They are endowed with reason and conscience\n    and should act towards one another in a spirit of brotherhood.\n\n    [udhr]: https://www.un.org/en/universal-declaration-human-rights/ \"View full version\"\n    \"\"\"#\n}\n"
  },
  {
    "path": "Tests/CommonMarkTests/NodeTests.swift",
    "content": "import XCTest\nimport CommonMark\n\nfinal class NodeTests: XCTestCase {\n\n    // MARK: - Equality\n\n    func testNodesEquality() {\n        let text = #\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.\n        \"\"\"#\n\n        let firstNode = Paragraph(text: \"\\(text)\", replacingNewLinesWithBreaks: true)\n        let secondNode = Paragraph(text: \"\\(text)\", replacingNewLinesWithBreaks: true)\n\n        XCTAssertNotEqual(firstNode, secondNode)\n        XCTAssertEqual(firstNode, firstNode)\n        XCTAssertEqual(secondNode, secondNode)\n    }\n\n    // MARK: - Hashable\n\n    func testNodesHashable() {\n        let text = #\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.\n        \"\"\"#\n        \n        let firstNode = Paragraph(text: \"\\(text)\", replacingNewLinesWithBreaks: true)\n        let secondNode = Paragraph(text: \"\\(text)\", replacingNewLinesWithBreaks: true)\n\n        var map = [Node: String]()\n        map[firstNode] = \"first\"\n        map[secondNode] = \"second\"\n\n        XCTAssertEqual(map[firstNode], \"first\")\n        XCTAssertEqual(map[secondNode], \"second\")\n    }\n    \n    func testHashValueConsistentAfterNodeIsModified() {\n        let paragraph = Paragraph(text: #\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        \"\"\"#, replacingNewLinesWithBreaks: true)\n        var nodes = Set<Node>()\n        nodes.insert(paragraph)\n\n        paragraph.append(child: Text(literal: \"and should act towards one another in a spirit of brotherhood.\"))\n\n        XCTAssertTrue(nodes.contains(paragraph))\n        XCTAssertEqual(paragraph.description,\n        #\"\"\"\n        All human beings are born free and equal in dignity and rights.\n        They are endowed with reason and conscience\n        and should act towards one another in a spirit of brotherhood.\n\n        \"\"\"#)\n    }\n}\n"
  },
  {
    "path": "Tests/CommonMarkTests/ProtocolTests.swift",
    "content": "import XCTest\nimport CommonMark\n\n/// Make sure element types do not conform to more protocols than they should.\n///\n/// - An inline element should not also be a block element and vice versa.\n/// - A leaf block element should not also be a container block element and vice versa.\n///\n/// Breaking these invariants would be a breaking change for the `Visitor`'s assumptions about element sub-typing.\nfinal class ProtocolTests: XCTestCase {\n    func XCTAssertValidInline<T>(_ type: T.Type, file: StaticString = #file, line: UInt = #line) {\n        XCTAssertTrue(T.self is Inline.Type, \"Expected `Inline`\", file: file, line: line)\n        XCTAssertFalse(T.self is Block.Type, \"Did not expect `Block`\", file: file, line: line)\n    }\n\n    func XCTAssertValidLeafBlock<T>(_ type: T.Type, file: StaticString = #file, line: UInt = #line) {\n        XCTAssertTrue(T.self is LeafBlock.Type, \"Expected `LeafBlock`\", file: file, line: line)\n        XCTAssertFalse(T.self is ContainerBlock.Type, \"Did not expect `ContainerBlock`\", file: file, line: line)\n        XCTAssertFalse(T.self is Inline.Type, \"Did not expect `Inline`\", file: file, line: line)\n    }\n\n    func XCTAssertValidContainerBlock<T>(_ type: T.Type, file: StaticString = #file, line: UInt = #line) {\n        XCTAssertTrue(T.self is ContainerBlock.Type, \"Expected `ContainerBlock`\", file: file, line: line)\n        XCTAssertFalse(T.self is LeafBlock.Type, \"Did not expect `LeafBlock`\", file: file, line: line)\n        XCTAssertFalse(T.self is Inline.Type, \"Did not expect `Inline`\", file: file, line: line)\n    }\n\n    // MARK: - Node\n\n    func testNode(){\n        typealias ConcreteType = Node\n\n        XCTAssertFalse(ConcreteType.self is Inline.Type)\n        XCTAssertFalse(ConcreteType.self is Block.Type)\n        XCTAssertFalse(ConcreteType.self is LeafBlock.Type)\n        XCTAssertFalse(ConcreteType.self is ContainerBlock.Type)\n    }\n\n    // MARK: - Inline\n\n    func testInline(){\n        XCTAssertValidInline(HardLineBreak.self)\n        XCTAssertValidInline(SoftLineBreak.self)\n        XCTAssertValidInline(RawHTML.self)\n        XCTAssertValidInline(Code.self)\n        XCTAssertValidInline(Image.self)\n        XCTAssertValidInline(Link.self)\n        XCTAssertValidInline(Emphasis.self)\n        XCTAssertValidInline(Text.self)\n        XCTAssertValidInline(Strong.self)\n    }\n\n    // MARK: - Leaf Block\n\n    func testLeafBlock(){\n        XCTAssertValidLeafBlock(ThematicBreak.self)\n        XCTAssertValidLeafBlock(CodeBlock.self)\n        XCTAssertValidLeafBlock(HTMLBlock.self)\n        XCTAssertValidLeafBlock(Paragraph.self)\n        XCTAssertValidLeafBlock(Heading.self)\n    }\n\n    // MARK: - Container Block\n\n    func testContainerBlock(){\n        XCTAssertValidContainerBlock(List.Item.self)\n        XCTAssertValidContainerBlock(List.self)\n        XCTAssertValidContainerBlock(BlockQuote.self)\n    }\n}\n"
  },
  {
    "path": "Tests/CommonMarkTests/StatisticsVisitor.swift",
    "content": "import CommonMark\n\nstruct DocumentStatistics: Equatable {\n    var documents: Int = 0\n    \n    // Node:\n    \n    var nodes: Int = 0\n    \n    // Blocks:\n    \n    var blocks: Int = 0\n    \n    // Container Blocks:\n    \n    var containerBlocks: Int = 0\n    \n    var blockQuotes: Int = 0\n    var lists: Int = 0\n    var listItems: Int = 0\n    \n    // Leaf Blocks:\n    \n    var leafBlocks: Int = 0\n    \n    var headings: Int = 0\n    var paragraphs: Int = 0\n    var htmlBlocks: Int = 0\n    var codeBlocks: Int = 0\n    var thematicBreaks: Int = 0\n    \n    // Inline:\n    \n    var inlines: Int = 0\n    \n    var texts: Int = 0\n    var strongs: Int = 0\n    var emphasises: Int = 0\n    var links: Int = 0\n    var images: Int = 0\n    var codes: Int = 0\n    var rawHTMLs: Int = 0\n    var softLineBreaks: Int = 0\n    var hardLineBreaks: Int = 0\n}\n\nclass StatisticsVisitor: Visitor {\n    var statistics: DocumentStatistics = .init()\n    \n    func visit(document: Document) -> VisitorContinueKind {\n        self.statistics.documents += 1\n        return .inherit\n    }\n    \n    // MARK: - Node\n    \n    func visit(node: Node) -> VisitorContinueKind {\n        self.statistics.nodes += 1\n        return .inherit\n    }\n    \n    // MARK: - Blocks\n    \n    func visit(block: Block) -> VisitorContinueKind {\n        self.statistics.blocks += 1\n        return .inherit\n    }\n    \n    // MARK: - Container Blocks\n    \n    func visit(containerBlock: ContainerBlock) -> VisitorContinueKind {\n        self.statistics.containerBlocks += 1\n        return .inherit\n    }\n    \n    func visit(blockQuote: BlockQuote) -> VisitorContinueKind {\n        self.statistics.blockQuotes += 1\n        return .inherit\n    }\n    func visit(list: List) -> VisitorContinueKind {\n        self.statistics.lists += 1\n        return .inherit\n    }\n    func visit(listItem: List.Item) -> VisitorContinueKind {\n        self.statistics.listItems += 1\n        return .inherit\n    }\n    \n    // MARK: - Leaf Blocks\n    \n    /// A block that can only contain inline elements.\n    func visit(leafBlock: LeafBlock) -> VisitorContinueKind {\n        self.statistics.leafBlocks += 1\n        return .inherit\n    }\n    \n    func visit(heading: Heading) -> VisitorContinueKind {\n        self.statistics.headings += 1\n        return .inherit\n    }\n    func visit(paragraph: Paragraph) -> VisitorContinueKind {\n        self.statistics.paragraphs += 1\n        return .inherit\n    }\n    func visit(htmlBlock: HTMLBlock) -> VisitorContinueKind {\n        self.statistics.htmlBlocks += 1\n        return .inherit\n    }\n    func visit(codeBlock: CodeBlock) -> VisitorContinueKind {\n        self.statistics.codeBlocks += 1\n        return .inherit\n    }\n    func visit(thematicBreak: ThematicBreak) -> VisitorContinueKind {\n        self.statistics.thematicBreaks += 1\n        return .inherit\n    }\n    \n    // MARK: - Inline\n    \n    func visit(inline: Inline) -> VisitorContinueKind {\n        self.statistics.inlines += 1\n        return .inherit\n    }\n    \n    func visit(text: Text) -> VisitorContinueKind {\n        self.statistics.texts += 1\n        return .inherit\n    }\n    func visit(strong: Strong) -> VisitorContinueKind {\n        self.statistics.strongs += 1\n        return .inherit\n    }\n    func visit(emphasis: Emphasis) -> VisitorContinueKind {\n        self.statistics.emphasises += 1\n        return .inherit\n    }\n    func visit(link: Link) -> VisitorContinueKind {\n        self.statistics.links += 1\n        return .inherit\n    }\n    func visit(image: Image) -> VisitorContinueKind {\n        self.statistics.images += 1\n        return .inherit\n    }\n    func visit(code: Code) -> VisitorContinueKind {\n        self.statistics.codes += 1\n        return .inherit\n    }\n    func visit(rawHTML: RawHTML) -> VisitorContinueKind {\n        self.statistics.rawHTMLs += 1\n        return .inherit\n    }\n    func visit(softLineBreak: SoftLineBreak) -> VisitorContinueKind {\n        self.statistics.softLineBreaks += 1\n        return .inherit\n    }\n    func visit(hardLineBreak: HardLineBreak) -> VisitorContinueKind {\n        self.statistics.hardLineBreaks += 1\n        return .inherit\n    }\n}\n"
  },
  {
    "path": "Tests/CommonMarkTests/VisitorTests.swift",
    "content": "import XCTest\nimport CommonMark\n\nfinal class VisitorTests: XCTestCase {\n    func testVisitorVisitingChildren() throws {\n        typealias TestVisitor = StatisticsVisitor\n\n        // Document nodes:\n\n        // Document\n        // ├─ Heading\n        // │  └─ Link\n        // │    └─ Text\n        // ├─ Heading\n        // │  └─ Text\n        // └─ Paragraph\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    └─ Text\n        let document = try Document(Fixtures.udhr)\n\n        // Visited nodes:\n\n        // Document\n        // ├─ Heading\n        // │  └─ Link\n        // │    └─ Text\n        // ├─ Heading\n        // │  └─ Text\n        // └─ Paragraph\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    └─ Text\n        let visitor = TestVisitor()\n        visitor.walk(document)\n\n        let expedted = DocumentStatistics(\n            documents: 1,\n            nodes: 12,\n            blocks: 3,\n            leafBlocks: 3,\n            headings: 2,\n            paragraphs: 1,\n            inlines: 8,\n            texts: 5,\n            links: 1,\n            softLineBreaks: 2\n        )\n\n        XCTAssertEqual(visitor.statistics, expedted)\n    }\n\n    func testVisitorSkippingChildren() throws {\n        final class TestVisitor: StatisticsVisitor {\n            override func visit(link: Link) -> VisitorContinueKind {\n                let _ = super.visit(link: link)\n\n                return .skipChildren\n            }\n\n            override func visit(paragraph: Paragraph) -> VisitorContinueKind {\n                let _ = super.visit(paragraph: paragraph)\n\n                return .skipChildren\n            }\n        }\n\n        // Document nodes:\n\n        // Document\n        // ├─ Heading\n        // │  └─ Link\n        // │    └─ Text\n        // ├─ Heading\n        // │  └─ Text\n        // └─ Paragraph\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    └─ Text\n        let document = try Document(Fixtures.udhr)\n\n        // Visited nodes:\n\n        // Document\n        // ├─ Heading\n        // │  └─ Link (children skipped)\n        // ├─ Heading\n        // │  └─ Text\n        // └─ Paragraph (children skipped)\n        let visitor = TestVisitor()\n        visitor.walk(document)\n\n        let expedted = DocumentStatistics(\n            documents: 1,\n            nodes: 6,\n            blocks: 3,\n            leafBlocks: 3,\n            headings: 2,\n            paragraphs: 1,\n            inlines: 2,\n            texts: 1,\n            links: 1,\n            softLineBreaks: 0\n        )\n\n        XCTAssertEqual(visitor.statistics, expedted)\n    }\n\n    func testVisitorOverrides() throws {\n        final class TestVisitor: StatisticsVisitor {\n            override func visit(block: Block) -> VisitorContinueKind {\n                let _ = super.visit(block: block)\n\n                return .skipChildren\n            }\n\n            // Given that `Paragraph` is a subtype of `Block` it overrides:\n            override func visit(paragraph: Paragraph) -> VisitorContinueKind {\n                let _ = super.visit(paragraph: paragraph)\n\n                return .visitChildren\n            }\n        }\n\n        // Document nodes:\n\n        // Document\n        // ├─ Heading\n        // │  └─ Link\n        // │    └─ Text\n        // ├─ Heading\n        // │  └─ Text\n        // └─ Paragraph\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    └─ Text\n        let document = try Document(Fixtures.udhr)\n\n        // Visited nodes:\n\n        // Document\n        // ├─ Heading (children skipped)\n        // ├─ Heading (children skipped)\n        // └─ Paragraph\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    ├─ Text\n        //    ├─ SoftLineBreak\n        //    └─ Text\n        let visitor = TestVisitor()\n        visitor.walk(document)\n\n        let expected = DocumentStatistics(\n            documents: 1,\n            nodes: 9,\n            blocks: 3,\n            leafBlocks: 3,\n            headings: 2,\n            paragraphs: 1,\n            inlines: 5,\n            texts: 3,\n            links: 0,\n            softLineBreaks: 2\n        )\n\n        XCTAssertEqual(visitor.statistics, expected)\n    }\n}\n"
  },
  {
    "path": "Tests/LinuxMain.swift",
    "content": "fatalError(\"Run with `swift test --enable-test-discovery`\")\n"
  }
]