1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
/*
This source file is part of the Swift.org open source project
Copyright (c) 2021 Apple Inc. and the Swift project authors
Licensed under Apache License v2.0 with Runtime Library Exception
See https://swift.org/LICENSE.txt for license information
See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/
/// A `MarkupVisitor` with the capability to rewrite elements in the tree.
public protocol MarkupRewriter: MarkupVisitor where Result == Markup? {}
extension MarkupRewriter {
public mutating func defaultVisit(_ markup: Markup) -> Markup? {
let newChildren = markup.children.compactMap {
return self.visit($0)
}
return markup.withUncheckedChildren(newChildren)
}
public mutating func visitBlockQuote(_ blockQuote: BlockQuote) -> Result {
return defaultVisit(blockQuote)
}
public mutating func visitCodeBlock(_ codeBlock: CodeBlock) -> Result {
return defaultVisit(codeBlock)
}
public mutating func visitCustomBlock(_ customBlock: CustomBlock) -> Result {
return defaultVisit(customBlock)
}
public mutating func visitDocument(_ document: Document) -> Result {
return defaultVisit(document)
}
public mutating func visitHeading(_ heading: Heading) -> Result {
return defaultVisit(heading)
}
public mutating func visitThematicBreak(_ thematicBreak: ThematicBreak) -> Result {
return defaultVisit(thematicBreak)
}
public mutating func visitHTMLBlock(_ html: HTMLBlock) -> Result {
return defaultVisit(html)
}
public mutating func visitListItem(_ listItem: ListItem) -> Result {
return defaultVisit(listItem)
}
public mutating func visitOrderedList(_ orderedList: OrderedList) -> Result {
return defaultVisit(orderedList)
}
public mutating func visitUnorderedList(_ unorderedList: UnorderedList) -> Result {
return defaultVisit(unorderedList)
}
public mutating func visitParagraph(_ paragraph: Paragraph) -> Result {
return defaultVisit(paragraph)
}
public mutating func visitBlockDirective(_ blockDirective: BlockDirective) -> Result {
return defaultVisit(blockDirective)
}
public mutating func visitInlineCode(_ inlineCode: InlineCode) -> Result {
return defaultVisit(inlineCode)
}
public mutating func visitCustomInline(_ customInline: CustomInline) -> Result {
return defaultVisit(customInline)
}
public mutating func visitEmphasis(_ emphasis: Emphasis) -> Result {
return defaultVisit(emphasis)
}
public mutating func visitImage(_ image: Image) -> Result {
return defaultVisit(image)
}
public mutating func visitInlineHTML(_ inlineHTML: InlineHTML) -> Result {
return defaultVisit(inlineHTML)
}
public mutating func visitLineBreak(_ lineBreak: LineBreak) -> Result {
return defaultVisit(lineBreak)
}
public mutating func visitLink(_ link: Link) -> Result {
return defaultVisit(link)
}
public mutating func visitInlineAttributes(_ attributes: InlineAttributes) -> Result {
return defaultVisit(attributes)
}
public mutating func visitSoftBreak(_ softBreak: SoftBreak) -> Result {
return defaultVisit(softBreak)
}
public mutating func visitStrong(_ strong: Strong) -> Result {
return defaultVisit(strong)
}
public mutating func visitText(_ text: Text) -> Result {
return defaultVisit(text)
}
}
|