This repository was archived by the owner on Oct 17, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
Visitor
mattt edited this page Jan 14, 2021
·
1 revision
Visitor for walking a visitable structure.
public protocol VisitorOverride the appropriate func visit(…:)'s return value
to customize the behavior (e.g. skip a given element's children),
with sub-types overriding their super-type's behavior.
The default implementation of func visit(…:)returns .inherit,
resulting in a deep walk over the entire document.
Node
├── Block
│ ├── ContainerBlock
│ │ ├── BlockQuote
│ │ ├── List
│ │ └── List.Item
│ │
│ └── LeafBlock
│ ├── CodeBlock
│ ├── HTMLBlock
│ ├── Heading
│ ├── Paragraph
│ └── ThematicBreak
│
└── Inline
├── Code
├── Emphasis
├── HardLineBreak
├── Image
├── Link
├── RawHTML
├── SoftLineBreak
├── Strong
└── Text
The order of object-wise visitations is: super-type before sub-type.
The order of object-wise visitations is: sub-type before super-type.
Walks a visitable structure.
func walk<T: Visitable>(_ visitable: T)- visitable: The structure to walk.
func visit(document: Document) -> VisitorContinueKindfunc visitPost(document: Document)func visit(node: Node) -> VisitorContinueKindfunc visitPost(node: Node)func visit(block: Block) -> VisitorContinueKindfunc visitPost(block: Block)func visit(containerBlock: ContainerBlock) -> VisitorContinueKindfunc visitPost(containerBlock: ContainerBlock)func visit(blockQuote: BlockQuote) -> VisitorContinueKindfunc visitPost(blockQuote: BlockQuote)func visit(list: List) -> VisitorContinueKindfunc visitPost(list: List)func visit(listItem: List.Item) -> VisitorContinueKindfunc visitPost(listItem: List.Item)A block that can only contain inline elements.
func visit(leafBlock: LeafBlock) -> VisitorContinueKindfunc visitPost(leafBlock: LeafBlock)func visit(heading: Heading) -> VisitorContinueKindfunc visitPost(heading: Heading)func visit(paragraph: Paragraph) -> VisitorContinueKindfunc visitPost(paragraph: Paragraph)func visit(htmlBlock: HTMLBlock) -> VisitorContinueKindfunc visitPost(htmlBlock: HTMLBlock)func visit(codeBlock: CodeBlock) -> VisitorContinueKindfunc visitPost(codeBlock: CodeBlock)func visit(thematicBreak: ThematicBreak) -> VisitorContinueKindfunc visitPost(thematicBreak: ThematicBreak)func visit(inline: Inline) -> VisitorContinueKindfunc visitPost(inline: Inline)func visit(text: Text) -> VisitorContinueKindfunc visitPost(text: Text)func visit(strong: Strong) -> VisitorContinueKindfunc visitPost(strong: Strong)func visit(emphasis: Emphasis) -> VisitorContinueKindfunc visitPost(emphasis: Emphasis)func visit(link: Link) -> VisitorContinueKindfunc visitPost(link: Link)func visit(image: Image) -> VisitorContinueKindfunc visitPost(image: Image)func visit(code: Code) -> VisitorContinueKindfunc visitPost(code: Code)func visit(rawHTML: RawHTML) -> VisitorContinueKindfunc visitPost(rawHTML: RawHTML)func visit(softLineBreak: SoftLineBreak) -> VisitorContinueKindfunc visitPost(softLineBreak: SoftLineBreak)func visit(hardLineBreak: HardLineBreak) -> VisitorContinueKindfunc visitPost(hardLineBreak: HardLineBreak)Generated at 2021-03-03T19:19:22+0000 using swift-doc 1.0.0-beta.5.
Types
- BlockQuote
- Code
- CodeBlock
- CommonMarkBuilder
- Document
- Document.Error
- Document.ParsingOptions
- Document.Position
- Emphasis
- ForEach
- Fragment
- HTMLBlock
- HardLineBreak
- Heading
- Image
- Link
- List
- List.Delimiter
- List.Item
- List.Kind
- Node
- Node.RenderingFormat
- Node.RenderingOptions
- Paragraph
- RawHTML
- Section
- SoftLineBreak
- StringBuilder
- Strong
- Text
- ThematicBreak
- VisitorContinueKind