Skip to content

fandoc ​

原文: https://finproducts.atlassian.net/wiki/spaces/JIDD3/pages/34793816135/FIN+5.3.1+fandoc 中文整理基于 FIN 5.3.1

导读: Fandoc 解析器和 DOM

以下为 API 参考,保留英文以便对照源码;目录已列出(英文标题便于检索);概述已尽量中译。


目录(导读) ​

  • mixins
  • classes
  • enums
  • errs
  • docs
  • Overview
  • Header
  • Inline Formatting
  • Paragraphs
  • Preformatted
  • Unordered List
  • Ordered List
  • Horizontal Rules
  • Block Quotes
  • Images
  • Headings
  • Ex Heading 2
    • Ex Heading 3
  • Hyperlinks
  • Fandoc API
  • Slot Details
    • htmlName
    • id
    • isInline
    • findHeadings
    • meta
    • write
    • add
    • addAll
    • addChild
    • anchorId
    • children
    • eachChild
    • insert
    • path
    • remove
    • removeAll
    • toText
    • writeChildren
    • dump
    • isBlock
    • isFirst
    • isLast
    • parent
    • pos
    • blockQuote
    • code
    • doc
    • emphasis
    • fromStr
    • heading
    • hr
    • image
    • link
    • listItem
    • orderedList
    • para
    • pre
    • strong
    • text
    • unorderedList
    • vals
    • make
    • str
    • toStr
    • docEnd
    • docStart
    • elemEnd
    • elemStart
    • onImage
    • onLink
    • file
    • line
    • main
    • parse
    • parseHeader
    • parseStr
    • silent
    • level
    • title
    • docHead
    • out
    • alt
    • size
    • uri
    • isCode
    • isTextUri
    • setText
    • style
    • fromFirstChar
    • htmlType
    • lowerAlpha
    • lowerRoman
    • number
    • upperAlpha
    • upperRoman
    • admonition

API 正文(英文) ​

enums ​

DocNodeIdDocNodeId
OrderedListStyleOrderedListStyle

errs ​

FandocErrFandocErr

docs ​

Overview ​

Fandoc is documentation format written in plaintext similiar to Markdown. Fandoc is the format used for:

  • Fantom source code documentation via the ** comment
  • All the documentation manuals (including this document itself)
  • Comments on fantom.org discussion groups

You can use the fandoc APIs to parse fandoc plaintext into a document object model and generate HTML.

The begining of a Fandoc document may be prefixed with a header block. The header block includes a series of lines which begin with **. If the line includes a colon, then it is added a key/value pair to Doc.meta. For example, we use the following header in the standard documentation:

**************************************************************************
** title:      Fandoc
** author:     Brian Frank
** created:    10 Apr 08
** copyright:  Copyright (c) 2008, Brian Frank and Andy Frank
** license:    Licensed under the Academic Free License version 3.0
**************************************************************************

Inline Formatting ​

- Inline code: 'FandocParser'
- Strong: **foo bar**
- Emphasis: *foo bar*
- Strong+Emphasis: ** *foo bar* **
- Hyperlink: `https://fantom.org/`
- Hyperlink: [Fantom Home Page]`https://fantom.org/`

Paragraphs ​

Paragraphs are separated by a blank line:

Lorem ipsum dolor sit amet, consectetur adipisicing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Preformatted ​

When documenting a programming language, you tend to include lots of code snippets. Anything indented two or more spaces is considered preformatted (like the pre tag in HTML). Preformatted code cannot start with a dash/space, number/dot/space, or letter/dot/space otherwise it considerded a list:

Examples:
  "abcd"[0..2]   => "abc"
  "abcd"[3..3]   => "d"
  "abcd"[-2..-1] => "cd"

Examples:

"abcd"[0..2]   => "abc"
"abcd"[3..3]   => "d"
"abcd"[-2..-1] => "cd"

You can also denote a block of text as preformatted by wrapping it with the special tokens pre> and <pre:

pre>
- No markup
- I mean it!
<pre
- No markup
- I mean it!

Blocks annotated with the pre> token are trimmed based on the line with the left most margin.

Unordered List ​

Unordered lists use a dash followed by a space. Use indentation to indicate list hierarchy (two or more spaces):

- item 1
- item 2
- item 3
   - sub 3a
   - sub 3b
- item 4
  • item 1
  • item 2
  • item 3
    • sub 3a
    • sub 3b
  • item 4

Ordered List ​

Ordered lists use an identifier followed by a dot and space. The identifier can be a number, letter, or roman numeral (lower or upper case). Use indentation to indicate list hierarchy (two or more spaces):

I. Chapter I
  1. Section 1
  2. Section 2
    a. Subsection a
    b. Subsection b
II. Chapter II
  A. Section A
  B. Section B
    i. Subsection i
    ii.Subsection ii
  1. Chapter I
    1. Section 1
    2. Section 2
      1. Subsection a
      2. Subsection b
  2. Chapter II
    1. Section A
    2. Section B
      1. Subsection i
      2. Subsection ii

Horizontal Rules ​

Horizontal rules start with ---, and must be preceded by a blank line:

Above the rule

---

Below the rule

Above the rule

Below the rule

Block Quotes ​

Block quotes start the first line (or every line) of the paragraph with the ">" character followed by a space:

> Lorem ipsum dolor sit amet, consectetur adipisicing elit,
> sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

> Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Images ​

Images use the same syntax as a hyperlink with anchor text, but are prefixed with a bang:

![fan logo]`https://fantom.org/pod/fantomws/res/img/fantom.png`

fan logo

You can set an explicit size for the image as follows:

![fan logo][80x18]`https://fantom.org/pod/fantomws/res/img/fantom.png`

fan logo

You can make an image a link as follows with no spaces between the brackets:

[![alt]`https://fantom.org/pod/fantomws/res/img/fantom.png`]`https://fantom.org/`

alt

Headings ​

Headings are a title line followed by an "underline". Documentation should define an anchor id for each heading:

Ex Heading 1 [#h1]
##################

Ex Heading 2 [#h2]
******************

Ex Heading 3 [#h3]
==================

Ex Heading 4 [#h4]
------------------

Ex Heading 1 ​

Ex Heading 2 ​

Ex Heading 3 ​

Ex Heading 4 ​

Note: By convention top level sections of a chapter use heading level 2. Heading level 1 is reserved for the chapter title.

The compilerDoc pod is used to compile API or stand-alone documentation. It allows you to use abstract uris to create cross reference hyperlinks. During the compilation these uris are translated into relative links to the appropiate HTML files. Hyperlinks to types and slots are automatically formatted as inline code.

**APIs:**
- `sys::index`: pod index
- `web::pod-doc`: pod documentation
- `sys::Str`: API for type
- `sys::Str.getRange`: API for slot
- `Int`: API for type (internal to pod)
- `Int.toHex` API for slot (internal to pod)
- [now]`sys::Duration.now` API with achor text

**Manuals:**
- `docLang::index`: pod index
- `docLang::Closures`: chapter
- `docLang::Closures#syntax`: anchor within chapter
- `Env`: chapter (internal to pod)
- `Env#index`: anchor within chapter (internal to pod)

APIs:

  • sys: pod index
  • Web: pod documentation
  • Str: API for type
  • Str.getRange: API for slot
  • Int: API for type (internal to pod)
  • Int.toHex API for slot (internal to pod)
  • now API with achor text

Manuals:

Fandoc API ​

The FandocParser class is used to parse fandoc plaintext into a document object model. The DocNode is the base class of all nodes in the document tree. The tree is organized as subclasses of DocElems. The leaves of the tree which contain the actual text content are DocText.

Once a tree has been parsed into a DOM, you can translate into alternate formats via the DocWriter class. You can use HtmlDocWriter to translate to XHTML:

// parse into document tree
doc := FandocParser.make.parseStr("you want to do *what*!")

// write as html snippet (we don't write the
// document itself, just its children)
doc.writeChildren(HtmlDocWriter.make)

// outputs
<p>you want to do <em>what</em>!</p>

// write as full html document with head/body tags
doc.write(HtmlDocWriter.make)

// outputs
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
  <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
</head>
<body>
<p>you want to do <em>what</em>!</p>
</body>

BlockQuote ​

@Js class BlockQuote : DocElem

BlockQuote models a block of quoted text.

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


Code ​

@Js class Code : DocElem

Code is inline code

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


Doc ​

@Js class Doc : DocElem

Doc models the top level node of a fandoc document.

Fields

meta

Methods

findHeadingsRecursively walk th document to build an order list of the multi-level headings which can serve as a "table of contents" for the document.
htmlName
id
isInline
write

Slot Details ​


findHeadings ​

Heading[] findHeadings()

Recursively walk th document to build an order list of the multi-level headings which can serve as a "table of contents" for the document.


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


meta ​

Str:Str meta := [Str:Str][:]


write ​

virtual override Void write(DocWriter out)


DocElem ​

@Js abstract class DocElem : DocNode

DocElem is a container node which models a branch of the doc tree.

See pod doc for usage.

Fields

anchorId

Methods

addAdd a child to this node.
addAllConvenicence to call add for each node in the given list.
addChild
childrenGet a readonly list of this elements's children.
eachChildIterate the children nodes
htmlNameGet the HTML element name to use for this element.
insertInsert a child node at the specified index.
pathCovariant override to narrow path to list of DocElem.
removeRemove a child node.
removeAllRemove all child nodes.
toTextGet all the DocText children as a string
writeWrite this element and its children to the specified DocWriter.
writeChildrenWrite this element's children to the specified DocWriter.

Slot Details ​


add ​

@Operator This add(DocNode node)

Add a child to this node. If adding a text node it is automatically merged with the trailing text node (if applicable). If the node is arlready parented thorw ArgErr. Return this.


addAll ​

This addAll(DocNode[] nodes)

Convenicence to call add for each node in the given list.


addChild ​

@Deprecated { msg="Use add()" } This addChild(DocNode node)


anchorId ​

Str? anchorId


children ​

DocNode[] children()

Get a readonly list of this elements's children.


eachChild ​

Void eachChild(|DocNode| f)

Iterate the children nodes


htmlName ​

abstract Str htmlName()

Get the HTML element name to use for this element.


insert ​

This insert(Int index, DocNode node)

Insert a child node at the specified index. A negative index may be used to access an index from the end of the list. If adding a text node it is automatically merged with surrounding text nodes (if applicable). If the node is already parented throws ArgErr.


path ​

override DocElem[] path()

Covariant override to narrow path to list of DocElem.


remove ​

This remove(DocNode node)

Remove a child node. If this element is not the child's current parent throw ArgErr. Return this.


removeAll ​

This removeAll()

Remove all child nodes. Return this.


toText ​

virtual override Str toText()

Get all the DocText children as a string


write ​

virtual override Void write(DocWriter out)

Write this element and its children to the specified DocWriter.


writeChildren ​

Void writeChildren(DocWriter out)

Write this element's children to the specified DocWriter.


DocNode ​

@Js abstract class DocNode : Obj

DocNode is the base class for nodes in a fandoc model. There are two type of nodes: DocElem and DocText.

See pod doc for usage.

Fields

parentGet the DocElem that contains this node.

Methods

dumpDebug dump to output stream.
idGet node id for node type.
isBlockIs this a block element versus an inline element.
isFirstReturn true if this node is the first child in its parent.
isInlineIs this an inline versus a block node.
isLastReturn true if this node is the last child in its parent.
pathGet the path from the root of the DOM to this node.
posGet the index of this node in its parent's children.
toTextGet all the DocText children as a string
writeWrite this node to the specified DocWriter.

Slot Details ​


dump ​

Void dump(OutStream out := Env.cur().out())

Debug dump to output stream.


id ​

abstract DocNodeId id()

Get node id for node type.


isBlock ​

Bool isBlock()

Is this a block element versus an inline element.


isFirst ​

Bool isFirst()

Return true if this node is the first child in its parent.


isInline ​

abstract Bool isInline()

Is this an inline versus a block node.


isLast ​

Bool isLast()

Return true if this node is the last child in its parent.


parent ​

DocElem? parent { internal set }

Get the DocElem that contains this node. Return null if not parented.


path ​

virtual DocNode[] path()

Get the path from the root of the DOM to this node.


pos ​

Int? pos()

Get the index of this node in its parent's children. Return null if not parented.


toText ​

abstract Str toText()

Get all the DocText children as a string


write ​

abstract Void write(DocWriter out)

Write this node to the specified DocWriter.


DocNodeId ​

@Js @Serializable { simple=true } enum class DocNodeId : Enum

DocNodeId

Enum

text
doc
heading
para
pre
blockQuote
orderedList
unorderedList
listItem
emphasis
strong
code
link
image
hr

Constructors

fromStrReturn the DocNodeId instance for the specified name.

Fields

valsList of DocNodeId values indexed by ordinal

Slot Details ​


blockQuote ​

const static DocNodeId blockQuote := ...


code ​

const static DocNodeId code := ...


doc ​

const static DocNodeId doc := ...


emphasis ​

const static DocNodeId emphasis := ...


fromStr ​

static new fromStr(Str name, Bool checked := true)

Return the DocNodeId instance for the specified name. If not a valid name and checked is false return null, otherwise throw ParseErr.


heading ​

const static DocNodeId heading := ...


hr ​

const static DocNodeId hr := ...


image ​

const static DocNodeId image := ...


const static DocNodeId link := ...


listItem ​

const static DocNodeId listItem := ...


orderedList ​

const static DocNodeId orderedList := ...


para ​

const static DocNodeId para := ...


pre ​

const static DocNodeId pre := ...


strong ​

const static DocNodeId strong := ...


text ​

const static DocNodeId text := ...


unorderedList ​

const static DocNodeId unorderedList := ...


vals ​

const static DocNodeId[] vals := ...

List of DocNodeId values indexed by ordinal


DocText ​

@Js class DocText : DocNode

DocText segment.

See pod doc for usage.

Constructors

make

Fields

str

Methods

id
isInline
toStr
toText
write

Slot Details ​


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


make ​

new make(Str str)


str ​

Str str


toStr ​

virtual override Str toStr()


toText ​

virtual override Str toText()


write ​

virtual override Void write(DocWriter out)


DocWriter ​

@Js mixin DocWriter

DocWriter is used to output a fandoc model using a series of callbacks.

See pod doc for usage.

Methods

docEndExit a document.
docStartEnter a document.
elemEndExit an element.
elemStartEnter an element.
textWrite text node.

Slot Details ​


docEnd ​

abstract Void docEnd(Doc doc)

Exit a document.


docStart ​

abstract Void docStart(Doc doc)

Enter a document.


elemEnd ​

abstract Void elemEnd(DocElem elem)

Exit an element.


elemStart ​

abstract Void elemStart(DocElem elem)

Enter an element.


text ​

abstract Void text(DocText text)

Write text node.


Emphasis ​

@Js class Emphasis : DocElem

Emphasis is italic text

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


FandocDocWriter ​

@Js class FandocDocWriter : Obj, DocWriter

FandocDocWriter outputs a fandoc model to plain text fandoc format

Constructors

make

Fields

onImageCallback to perform image link resolution and checking
onLinkCallback to perform link resolution and checking for every Link element

Methods

docEnd
docStart
elemEnd
elemStart
text

Slot Details ​


docEnd ​

virtual override Void docEnd(Doc doc)


docStart ​

virtual override Void docStart(Doc doc)


elemEnd ​

virtual override Void elemEnd(DocElem elem)


elemStart ​

virtual override Void elemStart(DocElem elem)


make ​

new make(OutStream out)


onImage ​

|Image|? onImage := null

Callback to perform image link resolution and checking


|Link|? onLink := null

Callback to perform link resolution and checking for every Link element


text ​

virtual override Void text(DocText text)


FandocErr ​

@Js const class FandocErr : Err

FandocErr

Constructors

make

Fields

file
line

Methods

toStr

Slot Details ​


file ​

const Str file


line ​

const Int line


make ​

new make(Str msg, Str file, Int line, Err? cause := null)


toStr ​

virtual override Str toStr()


FandocParser ​

@Js class FandocParser : Obj

FandocParser translate fandoc text into an in-memory representation of the document.

See pod doc for usage.

Fields

errsList of errors detected
parseHeaderIf true, then leading lines starting with ** are parsed as header
silentIf not silent, then errors are dumped to stdout

Methods

main
parseParse the document from the specified in stream into an in-memory tree structure.
parseStrParse a string into its in-memory document tree structure.

Slot Details ​


errs ​

FandocErr[] errs := FandocErr[,]

List of errors detected


main ​

static Void main(Str[] args := Env.cur().args())


parse ​

Doc parse(Str filename, InStream in, Bool close := true)

Parse the document from the specified in stream into an in-memory tree structure. If close is true, the stream is guaranteed to be closed.


parseHeader ​

Bool parseHeader := true

If true, then leading lines starting with ** are parsed as header


parseStr ​

Doc parseStr(Str plaintext)

Parse a string into its in-memory document tree structure.


silent ​

Bool silent := false

If not silent, then errors are dumped to stdout


Heading ​

@Js class Heading : DocElem

Heading

Constructors

make

Fields

level

Methods

htmlName
id
isInline
title

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


level ​

const Int level


make ​

new make(Int level)


title ​

Str title()


Hr ​

@Js class Hr : DocElem

Hr models a horizontal rule.

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


HtmlDocWriter ​

@Js class HtmlDocWriter : Obj, DocWriter

HtmlDocWriter outputs a fandoc model to XHTML

See pod doc for usage.

Constructors

make

Fields

onImageCallback to perform image link resolution and checking
onLinkCallback to perform link resolution and checking for every Link element
out

Methods

docEnd
docHead
docStart
elemEnd
elemStart
text

Slot Details ​


docEnd ​

virtual override Void docEnd(Doc doc)


docHead ​

virtual Void docHead(Doc doc)


docStart ​

virtual override Void docStart(Doc doc)


elemEnd ​

virtual override Void elemEnd(DocElem elem)


elemStart ​

virtual override Void elemStart(DocElem elem)


make ​

new make(OutStream out := Env.cur().out())


onImage ​

|Image|? onImage := null

Callback to perform image link resolution and checking


|Link|? onLink := null

Callback to perform link resolution and checking for every Link element


out ​

OutStream out


text ​

virtual override Void text(DocText text)


Image ​

@Js class Image : DocElem

Image is a reference to an image file

Constructors

make

Fields

alt
line
size
uri

Methods

htmlName
id
isInline

Slot Details ​


alt ​

Str alt


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


line ​

Int line


make ​

new make(Str uri, Str alt)


size ​

Str? size


uri ​

Str uri


Link ​

@Js class Link : DocElem

Link is a hyperlink.

Constructors

make

Fields

isCode
line
uri

Methods

htmlName
id
isInline
isTextUriIs the text of the link the same as the URI string
setTextChange the text to display for the link

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isCode ​

Bool isCode := false


isInline ​

virtual override Bool isInline()


isTextUri ​

Bool isTextUri()

Is the text of the link the same as the URI string


line ​

Int line


make ​

new make(Str uri)


setText ​

Void setText(Str text)

Change the text to display for the link


uri ​

Str uri


ListItem ​

@Js class ListItem : DocElem

ListItem is an item in an OrderedList and UnorderedList.

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


MarkdownDocWriter ​

@Js class MarkdownDocWriter : Obj, DocWriter

MarkdownDocWriter outputs a fandoc model to Markdown

Constructors

make

Fields

onImageCallback to perform image link resolution and checking
onLinkCallback to perform link resolution and checking for every Link element

Methods

docEnd
docStart
elemEnd
elemStart
main
text

Slot Details ​


docEnd ​

virtual override Void docEnd(Doc doc)


docStart ​

virtual override Void docStart(Doc doc)


elemEnd ​

virtual override Void elemEnd(DocElem elem)


elemStart ​

virtual override Void elemStart(DocElem elem)


main ​

static Void main(Str[] args := Env.cur().args())


make ​

new make(OutStream out := Env.cur().out())


onImage ​

|Image|? onImage := null

Callback to perform image link resolution and checking


|Link|? onLink := null

Callback to perform link resolution and checking for every Link element


text ​

virtual override Void text(DocText text)


OrderedList ​

@Js class OrderedList : DocElem

OrderedList models a numbered list

Constructors

make

Fields

style

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


make ​

new make(OrderedListStyle style)


style ​

OrderedListStyle style


OrderedListStyle ​

@Js @Serializable { simple=true } enum class OrderedListStyle : Enum

OrderedListStyle

Enum

number
upperAlpha
lowerAlpha
upperRoman
lowerRoman

Constructors

fromStrReturn the OrderedListStyle instance for the specified name.

Fields

valsList of OrderedListStyle values indexed by ordinal

Methods

fromFirstChar
htmlType

Slot Details ​


fromFirstChar ​

static OrderedListStyle fromFirstChar(Int ch)


fromStr ​

static new fromStr(Str name, Bool checked := true)

Return the OrderedListStyle instance for the specified name. If not a valid name and checked is false return null, otherwise throw ParseErr.


htmlType ​

Str htmlType()


lowerAlpha ​

const static OrderedListStyle lowerAlpha := ...


lowerRoman ​

const static OrderedListStyle lowerRoman := ...


number ​

const static OrderedListStyle number := ...


upperAlpha ​

const static OrderedListStyle upperAlpha := ...


upperRoman ​

const static OrderedListStyle upperRoman := ...


vals ​

const static OrderedListStyle[] vals := ...

List of OrderedListStyle values indexed by ordinal


Para ​

@Js class Para : DocElem

Para models a paragraph of text.

Fields

admonition

Methods

htmlName
id
isInline

Slot Details ​


admonition ​

Str? admonition


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


Pre ​

@Js class Pre : DocElem

Pre models a pre-formated code block.

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


Strong ​

@Js class Strong : DocElem

Strong is bold text

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()


UnorderedList ​

@Js class UnorderedList : DocElem

UnorderedList models a bullet list

Methods

htmlName
id
isInline

Slot Details ​


htmlName ​

virtual override Str htmlName()


id ​

virtual override DocNodeId id()


isInline ​

virtual override Bool isInline()