add initial block element, content model, and structural forms pages
- spec/modules/ROOT/pages/block-content-model.adoc 69 additions, 0 deletionsspec/modules/ROOT/pages/block-content-model.adoc
- spec/modules/ROOT/pages/block-element.adoc 37 additions, 0 deletionsspec/modules/ROOT/pages/block-element.adoc
- spec/modules/ROOT/pages/block-parsing-and-structural-form.adoc 65 additions, 0 deletions...modules/ROOT/pages/block-parsing-and-structural-form.adoc
= Block Content Model | ||
A block content model defines the permitted content a block can contain and the common rules to which the block subscribes. | ||
The block parser identifies the content model of a block from the structural form used to express that block in the source text. | ||
The block content models are: basic, verbatim, compound, empty, and raw. | ||
// It's highly likely there are other content models (see the commented out headings and sections below), but I'm still doing research and those sections will be added as part of other issues. | ||
== Basic | ||
A block that belongs to the basic content model can only contain uninterpreted text, inline elements, and inline preprocessor directives. | ||
Basic block content cannot contain any child block elements. | ||
A basic block is represented as a terminal block node in the ASG tree. | ||
The following block elements belong to the basic content model by default: | ||
* paragraph | ||
// * table cell? | ||
// * principle list text? | ||
|
||
Certain attributes, such as a block style or AsciiDoc table cell modifier, can change a block that adheres to the basic content model into another type of block and how the parser transforms the content of the block. | ||
== Verbatim | ||
A block that belongs to the verbatim content model can only contain a single inline string; it cannot contain any child blocks. | ||
A verbatim block is represented as a terminal block node in the ASG tree. | ||
The following block elements belong to the verbatim content model by default: | ||
* indented lines | ||
* delimited literal block | ||
|
||
* delimited listing block | ||
* delimited source block | ||
== Compound block | ||
A block that belongs to the compound block content model consists of one or more child block elements. | ||
A compound block can contain basic, verbatim, compound, empty, and raw blocks. | ||
|
||
A compound block cannot contain inlines. | ||
A compound block is a parent block node in the ASG tree. | ||
The following block elements belong to the compound block content model by default: | ||
* preamble | ||
* admonition | ||
* delimited example block | ||
* delimited open block | ||
* delimited quote block | ||
* delimited sidebar block | ||
* delimited verse block | ||
// * table | ||
// * list | ||
// * dlist | ||
|
||
//// | ||
== Section block | ||
|
||
Section block content can contain other section blocks, as well as basic, verbatim, compound, empty, and raw blocks. | ||
A section block is a parent block node in the ASG tree and therefore can only directly contain block nodes. | ||
Sections are only permitted inside the document block and other section blocks; they're not permitted inside any other types of blocks. | ||
For example, a section cannot start (or end) inside a sidebar block. | ||
//// | ||
//== Empty block | ||
// == Raw block | ||
// stem? | ||
// entry, list, dlist, table | ||
\ No newline at end of file |