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 |
|