| At line 26 changed one line |
| ;**style tag** |
| **segment** |
| A bit of text inside a logical_line \\ |
| May be enclosed in delimiter tag to indicate its style. |
|
| **style tag** |
| At line 32 removed 4 lines |
| ;**layout tag** |
| A kind of mark/tag placed at the start of a logical_line in order to set its layout. Example : \\ |
| {{{* list item}}} |
| * list item |
| At line 37 changed 9 lines |
| ; **logical & visual newlines** |
| :A newline is a mark usually inserted by pressing the return/enter key. A newline is both a plain character that creates a new visual line and, in most cases, a tag that starts a new line-component (see comment about this below under 'page structure'). \\ |
| Logically enough, a newline preceeded by an escape (plain-character) tag becomes a visual newline : it loses its tag function but remains a plain character, thus starting a new visual line without marking the end of the logical line. |
|
| bla bla bla ~ |
| bla bla |
|
| ; **logical & visual lines** |
| :A chunk of text ended by a newline mark. \\ |
| **logical & visual lines** |
| A chunk of text ended by a newline mark. \\ |
| At line 53 changed 3 lines |
| ; **segment** |
| :A bit of text inside a logical_line \\ |
| May be enclosed in delimiter tag to indicate its style. |
| **logical & visual newlines** |
| A newline is a mark usually inserted by pressing the return/enter key. A newline is both a plain character that creates a new visual line and, in most cases, a tag that starts a new line-component (see comment about this below under 'page structure'). \\ |
| Logically enough, a newline preceeded by an escape (plain-character) tag becomes a visual newline : it loses its tag function but remains a plain character, thus starting a new visual line without marking the end of the logical line. \\ |
| In many wiki languages, including creole, a newline works as above specified for all kinds of logical lines //except for regular text paragraphs//. In that case, a single newline is ignored ; a logical newline is marked by a double newline ; a visual newline is set by a special break tag. |
| At line 57 changed 2 lines |
| ; **component** |
| :Either a sequence of segments of the same type (e.g. a list made of list items), or a part of page included as a hole instead of beeing written (e.g. TOC, note list, image) -- see "page structure" |
| **layout tag** |
| A kind of mark/tag placed at the start of a logical_line in order to set its layout. Example : \\ |
| {{{* list item}}} |
| * list item |
| At line 60 changed 2 lines |
| ; **section = header / body** |
| : Major semantic tailoring of a page. A header is a segment ; a body is a sequence of blocks -- see "page structure" |
| **block** |
| Either a sequence of segments of the same type (e.g. a list made of list items), or a part of page included as a hole instead of beeing written (e.g. TOC, note list, image) -- see "page structure" |
| At line 59 added 4 lines |
| **section = header / content** |
| Major semantic tailoring of a page. \\ |
| A header is a segment ; may be split into title / subtitle. \\ |
| A content is a sequence of blocks -- see "page structure" |
| At line 64 changed one line |
| |
|
|
| At line 71 added 29 lines |
| === page component tree |
|
| {{{ |
| page |
| section |
| section |
| header |
| content |
| header |
| title |
| subtitle |
| content |
| block |
| line (logical) |
| line (visual) |
| segment |
| character |
| }}} |
|
| (A header could be a single-section block, thus both a section and a block ? Then, how to mark a subtitle ? There should be a tag. Splitting a header with a visual newline is not coherent, as it's not a tag. If we choose a new tag (e.g. '!'), then a header becomes a block with 2 logical lines. Similar to a definition block.) |
|
| This is a semantic structure, which actually is not marked by the tagged format : |
| * A header marks the start of a section (also if the following content is blank or even empty). But there is no delimited section in fact. |
| * A block is usually a series of logical lines. But, again, there is no delimited no delimted block. |
| However, even if not marked, this structure could be constructed by an dedicated parser. |
|
| The page itself is a section, a header-body pattern. But it's not a sequence of sub-sections, as its body (content) can start -- and usually starts -- with an untitled introduction. Idem for the sub-sections. \\ |
| Thus, each body, including the page's content, is a series of blocks. Some of them can be headers, informally creating new sections. |
|
| At line 102 added 5 lines |
| **key** : |
| ? ==> this element can be present or not (0 or 1 time) |
| + ==> this element can be repeated (1 or more times) |
| ¤ ==> this element can be present any number of times (0, 1 or more times) |
|
| At line 73 changed 7 lines |
| page : title body |
| title : = regular_text NL |
| body : block* |
| component : header | paragraph_component | bullet_list | number_list | table | imported_component | computed_component |
| header : =(=)+ regular_text NL |
| paragraph_component : paragraph+ |
| paragraph : text NL |
| page : header body |
| header : title sub_title? |
| body : block¤ |
| block : header | paragraph_block | bullet_list | number_list | table | imported_block | computed_block |
| paragraph_block : paragraph+ |
| At line 81 removed one line |
| bullet_list_item : *+ text NL |
| At line 83 removed one line |
| number_list_item : *+ text NL |
| At line 85 changed 3 lines |
| table_row : (|text)+ | |
| imported_component : {{//type// //ID// (|//parameter//=//value//)*}} |
| computed_component : ((//type// //ID// (|//parameter//=//value//)*)) |
| imported_block : {{//type// //ID// (|//parameter//=//value//)*}} |
| computed_block : ((//type// //ID// (|//parameter//=//value//)*)) |
| At line 101 changed 4 lines |
| page : title body |
| title : = regular_text NL |
| body : segment* |
| segment : header | paragraph | bullet_list_item | number_list_item | table_row | imported_block | computed_block |
| page : logical_line¤ |
| logical_line : title | sub_title | paragraph | bullet_list_item | number_list_item | table_row | imported_block | computed_block |
| At line 107 changed one line |
| **n o t e s** |
| === line components structure |
| {{{ |
| header : title sub_title? |
| title : =+ text NL |
| sub_title : !+ text NL |
| bullet_list_item : *+ text NL |
| number_list_item : *+ text NL |
| table_row : (|text)+ | |
| paragraph : logical_line_style_mark* text NL |
| }}} |
| At line 109 changed 3 lines |
| * |
| * |
| * |
| === style tags |
| raw character (escape) : \ |
| scissor & glue (see below) : __ |
| //This mark is used to make a visual line out of two source lines, or the contrary -- may be useful ? Don't confuse with the logical / visual |
| logical_line style marks & segment style delimiters : |
| {{{ |
| distinct |
| important |
| litteral |
| monospace |
| code |
| }}} |
| At line 159 added 4 lines |
| **n o t e s** |
| * ______ |
| * ______ |
| * ______ |
| At line 165 added one line |
|