Skip to content

Commit be5a30f

Browse files
committed
concentrate swift-markdown Markdown import in the shims.swift file
1 parent 08c531c commit be5a30f

File tree

9 files changed

+84
-51
lines changed

9 files changed

+84
-51
lines changed

Sources/MarkdownParsing/Parser/SwiftFlavoredMarkdownParser.swift

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import Markdown
21
import MarkdownABI
32
import MarkdownAST
43

@@ -34,7 +33,7 @@ extension SwiftFlavoredMarkdownParser:MarkdownParser
3433
public
3534
func parse(_ source:borrowing MarkdownSource) -> [MarkdownBlock]
3635
{
37-
let document:Document = .init(parsing: source.text, options:
36+
let document:_Document = .init(parsing: source.text, options:
3837
[
3938
.parseBlockDirectives,
4039
.parseSymbolLinks,
@@ -54,18 +53,18 @@ extension SwiftFlavoredMarkdownParser
5453
{
5554
private
5655
func block(
57-
from markup:/* borrowing */ any BlockMarkup,
56+
from markup:/* borrowing */ any _BlockMarkup,
5857
in source:borrowing MarkdownSource) -> MarkdownBlock?
5958
{
6059
switch /* copy */ markup
6160
{
62-
case let block as Markdown.BlockQuote:
61+
case let block as _BlockQuote:
6362
return MarkdownBlock.Quote.init(block.blockChildren.compactMap
6463
{
6564
self.block(from: $0, in: source)
6665
})
6766

68-
case let block as Markdown.BlockDirective:
67+
case let block as _BlockDirective:
6968
return MarkdownBlock.Directive.init(name: block.name,
7069
arguments: block.argumentText.parseNameValueArguments().map
7170
{
@@ -76,7 +75,7 @@ extension SwiftFlavoredMarkdownParser
7675
self.block(from: $0, in: source)
7776
})
7877

79-
case let block as Markdown.CodeBlock:
78+
case let block as _CodeBlock:
8079
if let language:String = block.language
8180
{
8281
return (self.plugins[language] ?? .unsupported(language)).attach(to: block.code)
@@ -91,14 +90,14 @@ extension SwiftFlavoredMarkdownParser
9190
return MarkdownBlock.Code<MarkdownCodeLanguage.PlainText>.init(text: block.code)
9291
}
9392

94-
case let block as Markdown.Heading:
93+
case let block as _Heading:
9594
return MarkdownBlock.Heading.init(level: block.level,
9695
elements: block.inlineChildren.map
9796
{
9897
MarkdownInline.Block.init(from: $0, in: source)
9998
})
10099

101-
case let block as Markdown.HTMLBlock:
100+
case let block as _HTMLBlock:
102101
let html:Substring = block.rawHTML.drop(while: \.isWhitespace)
103102
if html.starts(with: "<!--")
104103
{
@@ -108,13 +107,13 @@ extension SwiftFlavoredMarkdownParser
108107

109108
return MarkdownBlock.HTML.init(text: block.rawHTML)
110109

111-
case let block as Markdown.Paragraph:
110+
case let block as _Paragraph:
112111
return MarkdownBlock.Paragraph.init(block.inlineChildren.map
113112
{
114113
MarkdownInline.Block.init(from: $0, in: source)
115114
})
116115

117-
case let table as Markdown.Table:
116+
case let table as _Table:
118117
return MarkdownTable.init(columns: table.columnAlignments.map
119118
{
120119
switch $0
@@ -143,25 +142,25 @@ extension SwiftFlavoredMarkdownParser
143142
}
144143
})
145144

146-
case let block as Markdown.ListItem:
145+
case let block as _ListItem:
147146
return self.item(from: block, in: source)
148147

149-
case let block as Markdown.OrderedList:
148+
case let block as _OrderedList:
150149
return MarkdownBlock.OrderedList.init(block.listItems.map
151150
{
152151
self.item(from: $0, in: source)
153152
})
154153

155-
case let block as Markdown.UnorderedList:
154+
case let block as _UnorderedList:
156155
return MarkdownBlock.UnorderedList.init(block.listItems.map
157156
{
158157
self.item(from: $0, in: source)
159158
})
160159

161-
case is Markdown.ThematicBreak:
160+
case is _ThematicBreak:
162161
return MarkdownBlock.ThematicBreak.init()
163162

164-
case is Markdown.CustomBlock:
163+
case is _CustomBlock:
165164
return MarkdownBlock.init()
166165

167166
case let unsupported:
@@ -172,7 +171,7 @@ extension SwiftFlavoredMarkdownParser
172171

173172
private
174173
func item(
175-
from markup:/* borrowing */ ListItem,
174+
from markup:/* borrowing */ _ListItem,
176175
in source:borrowing MarkdownSource) -> MarkdownBlock.Item
177176
{
178177
.init(

Sources/MarkdownParsing/Shims/MarkdownInline (ext).swift

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,41 @@
1-
import Markdown
21
import MarkdownAST
32

43
extension MarkdownInline:ParsableAsInlineMarkup
54
{
6-
init(from markup:/* borrowing */ any InlineMarkup, in source:borrowing MarkdownSource)
5+
init(from markup:/* borrowing */ any _InlineMarkup, in source:borrowing MarkdownSource)
76
{
87
switch /* copy */ markup
98
{
10-
case is LineBreak:
9+
case is _LineBreak:
1110
self = .text("\n")
1211

13-
case is SoftBreak:
12+
case is _SoftBreak:
1413
self = .text(" ")
1514

16-
case let span as CustomInline:
15+
case let span as _CustomInline:
1716
self = .text(span.text)
1817

19-
case let span as Text:
18+
case let span as _Text:
2019
self = .text(span.string)
2120

22-
case let span as InlineHTML:
21+
case let span as _InlineHTML:
2322
self = .html(.init(text: span.rawHTML))
2423

25-
case let span as InlineCode:
24+
case let span as _InlineCode:
2625
self = .code(.init(text: span.code))
2726

28-
case let span as Emphasis:
27+
case let span as _Emphasis:
2928
self = .container(.init(from: span, in: source, as: .em))
3029

31-
case let span as Strikethrough:
30+
case let span as _Strikethrough:
3231
self = .container(.init(from: span, in: source, as: .s))
3332

34-
case let span as Strong:
33+
case let span as _Strong:
3534
self = .container(.init(from: span, in: source, as: .strong))
3635

3736
// These can actually appear in link text; they should be interpreted as
3837
// normal code spans.
39-
case let link as SymbolLink:
38+
case let link as _SymbolLink:
4039
self = .code(.init(text: link.destination ?? ""))
4140

4241
case let unsupported:

Sources/MarkdownParsing/Shims/MarkdownInline.Block (ext).swift

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,55 @@
1-
import Markdown
21
import MarkdownAST
32
import Sources
43

54
extension MarkdownInline.Block:ParsableAsInlineMarkup
65
{
7-
init(from markup:/* borrowing */ any InlineMarkup, in source:borrowing MarkdownSource)
6+
init(from markup:/* borrowing */ any _InlineMarkup, in source:borrowing MarkdownSource)
87
{
98
switch /* copy */ markup
109
{
11-
case is LineBreak:
10+
case is _LineBreak:
1211
self = .text("\n")
1312

14-
case is SoftBreak:
13+
case is _SoftBreak:
1514
self = .text(" ")
1615

17-
case let span as CustomInline:
16+
case let span as _CustomInline:
1817
self = .text(span.text)
1918

20-
case let span as Text:
19+
case let span as _Text:
2120
self = .text(span.string)
2221

23-
case let span as InlineHTML:
22+
case let span as _InlineHTML:
2423
self = .html(.init(text: span.rawHTML))
2524

26-
case let span as InlineCode:
25+
case let span as _InlineCode:
2726
self = .code(.init(text: span.code))
2827

29-
case let span as Emphasis:
28+
case let span as _Emphasis:
3029
self = .container(.init(from: span, in: source, as: .em))
3130

32-
case let span as Strikethrough:
31+
case let span as _Strikethrough:
3332
self = .container(.init(from: span, in: source, as: .s))
3433

35-
case let span as Strong:
34+
case let span as _Strong:
3635
self = .container(.init(from: span, in: source, as: .strong))
3736

38-
case let image as Image:
37+
case let image as _Image:
3938
self = .image(.init(target: image.source,
4039
title: image.title,
4140
elements: image.inlineChildren.map
4241
{
4342
MarkdownInline.init(from: $0, in: source)
4443
}))
4544

46-
case let link as SymbolLink:
45+
case let link as _SymbolLink:
4746
// exclude the backticks from the source range
4847
self = .autolink(.init(
4948
source: .init(file: copy source, trimming: 2, from: link.range),
5049
text: link.destination ?? "",
5150
code: true))
5251

53-
case let link as Link:
52+
case let link as _Link:
5453
let elements:[MarkdownInline] = link.inlineChildren.map
5554
{
5655
MarkdownInline.init(from: $0, in: source)

Sources/MarkdownParsing/Shims/MarkdownInline.Container (ext).swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import Markdown
21
import MarkdownAST
32

43
extension MarkdownInline.Container where Element:ParsableAsInlineMarkup
54
{
6-
init(from markup:/* borrowing */ any InlineContainer,
5+
init(from markup:/* borrowing */ any _InlineContainer,
76
in source:borrowing MarkdownSource,
87
as type:MarkdownInline.ContainerType)
98
{
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import Markdown
21
import MarkdownAST
32

43
protocol ParsableAsInlineMarkup
54
{
6-
init(from markup:borrowing any InlineMarkup, in source:borrowing MarkdownSource)
5+
init(from markup:borrowing any _InlineMarkup, in source:borrowing MarkdownSource)
76
}

Sources/MarkdownParsing/Shims/SourcePosition (ext).swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
import Markdown
21
import Sources
32

43
extension SourcePosition
54
{
6-
init?(_ position:Markdown.SourceLocation, offset:Int = 0)
5+
init?(_ position:_SourceLocation, offset:Int = 0)
76
{
87
/// swift-markdown uses 1-based indexing for line/column numbers!
98
self.init(line: position.line - 1, column: position.column - 1 + offset)

Sources/MarkdownParsing/Shims/SourceReference (ext).swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
import Markdown
21
import Sources
32

43
extension SourceReference
54
{
6-
init(file:File, trimming trim:Int = 0, from range:Range<Markdown.SourceLocation>?)
5+
init(file:File, trimming trim:Int = 0, from range:Range<_SourceLocation>?)
76
{
8-
if let range:Range<Markdown.SourceLocation>,
7+
if let range:Range<_SourceLocation>,
98
let start:SourcePosition = .init(range.lowerBound, offset: trim),
109
let end:SourcePosition = .init(range.upperBound, offset: -trim)
1110
{
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import Markdown
2+
3+
typealias _BlockDirective = Markdown.BlockDirective
4+
typealias _BlockQuote = Markdown.BlockQuote
5+
typealias _BlockContainer = Markdown.BlockContainer
6+
typealias _BlockMarkup = Markdown.BlockMarkup
7+
typealias _CodeBlock = Markdown.CodeBlock
8+
typealias _CustomBlock = Markdown.CustomBlock
9+
typealias _CustomInline = Markdown.CustomInline
10+
typealias _Document = Markdown.Document
11+
typealias _Emphasis = Markdown.Emphasis
12+
typealias _Heading = Markdown.Heading
13+
typealias _HTMLBlock = Markdown.HTMLBlock
14+
typealias _Image = Markdown.Image
15+
typealias _InlineCode = Markdown.InlineCode
16+
typealias _InlineContainer = Markdown.InlineContainer
17+
typealias _InlineHTML = Markdown.InlineHTML
18+
typealias _InlineMarkup = Markdown.InlineMarkup
19+
typealias _LineBreak = Markdown.LineBreak
20+
typealias _Link = Markdown.Link
21+
typealias _ListItem = Markdown.ListItem
22+
typealias _OrderedList = Markdown.OrderedList
23+
typealias _Paragraph = Markdown.Paragraph
24+
typealias _SoftBreak = Markdown.SoftBreak
25+
typealias _SourceLocation = Markdown.SourceLocation
26+
typealias _Strikethrough = Markdown.Strikethrough
27+
typealias _Strong = Markdown.Strong
28+
typealias _SymbolLink = Markdown.SymbolLink
29+
typealias _Table = Markdown.Table
30+
typealias _Text = Markdown.Text
31+
typealias _ThematicBreak = Markdown.ThematicBreak
32+
typealias _UnorderedList = Markdown.UnorderedList

TestPackages/swift-malibu/Sources/BarbieCore/documentation/Getting Started.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,11 @@ module. For example, `[`_Concurrency`](./_Concurrency)` produces
4040

4141
You can link to declarations from other packages/frameworks that are dependencies of the current
4242
module. For example, `[`Task`](./Task)` produces [`Task`](./Task).
43+
44+
## Snippets
45+
46+
@Snippet(id: "GettingStarted", slice: "")
47+
48+
@Snippet(id: "GettingStarted", slice: "F1")
49+
50+
@Snippet(id: "GettingStarted", slice: "F2")

0 commit comments

Comments
 (0)