At line 1 changed one line |
**test** : ##mon**o**space## {{{li**tt**eral}}} {{{##b**o**th##}}} |
Hello !!! |
At line 3 removed 2 lines |
Hello, |
|
At line 10 changed one line |
= personal position |
[{TableOfContents title='sommaire'}] |
At line 10 added 3 lines |
|
!!! personal position |
|
At line 24 changed one line |
= glossary |
!!! glossary |
At line 33 changed one line |
A bit of text inside a logical_line \\ |
A bit of text inside an alinea \\ |
At line 42 changed one line |
An alinea is a piece of text ended by a newline //tag//. In regular text, an alinea is a paragraph ; it can also be a header, a list item, a table row, when started with the appropriate layout tag.\\ |
An alinea is a piece of text ended by a newline //tag//. In regular text, an alinea is a paragraph ; it can also be a heading, a list item, a table row, when started with the appropriate layout tag.\\ |
At line 50 changed one line |
**layout tag :** A kind of mark/tag placed at the start of an alinea \\ |
**layout tag :** A kind of tag placed at the start of an alinea \\ |
At line 53 changed 2 lines |
**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" |
**block :** Either a sequence of alineas 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, imported page, image) \\ |
Note that there are single-alinea blocks -- especially headings. |
//see also "page structure"// |
At line 56 changed 2 lines |
**section = header / content :** Major semantic tailoring of a page. \\ |
A header is a segment ; may be split into title / subtitle. \\ |
**section !!! heading / content :** Major semantic tailoring of a page. \\ |
A heading is a (special kind of ?) alinea ; may be split into title / subtitle. \\ |
At line 63 changed 2 lines |
= page structure |
// please improve & criticize on talk page// |
!!! page structure |
At line 66 removed one line |
=== page component tree |
At line 68 added 4 lines |
|
|
!!!!!! page component tree |
|
At line 75 added one line |
|
At line 72 changed one line |
header |
|
heading |
At line 74 changed one line |
header |
heading |
At line 77 changed one line |
content |
body (or content) |
At line 79 changed 2 lines |
line (logical) |
line (visual) |
alinea |
sub-alinea (split with NL) |
At line 85 changed one line |
(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 alineas. Similar to a definition block.) |
(A heading could be a single-section block, thus both a section and a block ? Then, how to mark a subtitle ? There should be a tag, or what ? Splitting a heading with a visual newline is not coherent, as it's not a tag. If we choose a new tag (e.g. '!!!'), then a heading would become a block with 2 alineas. Similar to a definition block tagged with ;term:explanation) |
At line 87 changed one line |
This is a semantic, informal, structure : it is not actually marked by the tagged format, the reader only deducts it from the sequence of different page elements. Note that 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. //Idem// for alineas in a block. //Idem// for segments in a line. \\ |
This is a semantic, informal, structure : it is not actually marked by the tagged format, the reader only deducts it from the sequence of different page elements. Note that a heading marks the start of a section (also if the following content is blank or even empty). But there is no delimited section in fact. //Idem// for alineas in a block. //Idem// for segments in a line. \\ |
At line 90 changed 2 lines |
The page itself is a section, //id est// a header-body pattern. But it's not a sequence of sub-sections, as its body (content) can start -- and often actually 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, thus informally creating new sections. |
The page itself is a kind of super-section, //id est// a heading-body pattern. But it's not a sequence of sub-sections, as its body (content) can start -- and often actually starts -- with an untitled introduction or abstract. In other words, there is often some content before any section. //Idem// for the sub-sections. \\ |
Each body, including the page's full content, is a series of blocks. Some of them can be headings, thus informally creating new sections. |
At line 93 changed one line |
=== semantic page structure |
!!!!!! semantic page structure |
At line 96 changed 3 lines |
? ==> 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) |
? !!!!!!> 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 101 changed 2 lines |
page : header body |
header : title sub_title? |
page : heading body |
heading : title sub_title? |
At line 104 changed 7 lines |
block : header | paragraph_block | bullet_list | number_list | table | imported_block | computed_block |
paragraph_block : paragraph+ |
bullet_list : bullet_list_item NL |
number_list : number_list_item NL |
table : table_row |
imported_block : {{//type// //ID// (|//parameter//=//value//)*}} |
computed_block : ((//type// //ID// (|//parameter//=//value//)*)) |
block : heading | paragraphs | list | definitions | table | imported_block | computed_block |
paragraphs : paragraph+ |
list : (bullet_list_item | number_list_item)+ |
definitions : definition+ |
definition : term explanation |
table : table_row+ |
imported_block : {{//type// //ID// (|//parameter//!!!//value//)*}} |
computed_block : ((//type// //ID// (|//parameter//!!!//value//)*)) |
At line 113 changed 3 lines |
** note the major difference between //semantic// & //markup// page structures** (lol) |
|
=== markup page structure |
!!!!!! markup page structure |
At line 117 changed 2 lines |
page : logical_line¤ |
logical_line : title | sub_title | paragraph | bullet_list_item | number_list_item | table_row | imported_block | computed_block |
page : alinea¤ |
alinea : title | sub_title | paragraph | bullet_list_item | number_list_item | definition | table_row | imported_block | computed_block |
At line 121 changed one line |
=== alinea components structure |
//note the major difference between //semantic// & //markup// page structures (lol)// |
|
!!!!!! alinea components structure |
At line 123 changed 3 lines |
header : title sub_title? |
title : =+ text NL |
sub_title : !+ text NL |
title : !!!+ text NL |
sub_title : !!!+ text NL |
term : ; text NL |
explanation : : text NL |
At line 129 changed one line |
paragraph : logical_line_style_mark* text NL |
paragraph : alinea_style_mark* text NL |
At line 132 changed one line |
=== inline text structure |
//Any alinea may be split into sub_alineas using character newline, i.e. a break. As it's just a visual or semantic feature, there needs no tag for it.// |
|
!!!!!! inline text structure |
At line 135 changed one line |
styled_text : distinct_text | important_text | litteral_text | monospace_text |
styled_text : distinct_text | highlight_text | litteral_text | monospace_text |
At line 137 changed one line |
important_text : **plain_text** |
highlight_text : **plain_text** |
At line 145 changed one line |
=== style markers : |
!!!!!! style markers : |
At line 147 changed 5 lines |
distinct : / |
important : * |
litteral : ? |
monospace : ? |
code : ? |
distinct : // (very intuitive) |
highlight : ** (conflict with bullet list) |
litteral : "" (rather good if not used for quoting) or {{{}}} (very bad) |
monospace : ## ? (not intuitive at all / conflict with anchors) |
code : ??? |
At line 154 changed 4 lines |
=== special tags |
raw character (escape) : '\' \\ |
glue & scissor (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 alinea / visual line distinction discussed above. This tag marks a difference between source and displayed text. |
!!!!!! special tags & marks |
**raw character tag** (escape) : {{{'\' or '~'}}} \\ |
//Maybe not necessary if the litteral tag is fast and easy to type. And if there is no need for a special character to split an alinea in several lines. // |
At line 168 added one line |
**sub_alinea mark** : escape, if available |
At line 170 added one line |
//Used to split an alinea in visual/semantic lines. Not a tag. Should be NL !!!!!!!!!// |
At line 161 changed one line |
= what I prize in creole |
**glue & scissor mark** : {{{'__' or '\\'}}} \\ |
//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 alinea / visual line distinction. This mark sets a difference between source and displayed text. Very bad indeed !!! Rare, cryptic & confusing.// |
At line 175 added 4 lines |
|
|
!!! what I prize in creole |
|
At line 165 changed one line |
* the focus on the most important features |
* the focus on the most highlight features |
At line 171 changed one line |
= what I miss / what I don't like |
!!! what I miss / what I don't like |
At line 175 changed 3 lines |
* page title (!=page_name) & subtitle |
* sub-headers |
* "distinct" (example, quotation, remark, advice) & "important" segments parallel to "distinct" (italic) & "important" (bold) segments |
* page title (!!!!!!page_name) & subtitle |
* sub-headings |
* "distinct" (example, quotation, remark, advice) & "highlight" segments parallel to "distinct" (italic) & "highlight" (bold) segments |
At line 181 changed 2 lines |
* nowiki and monospace should be totally distinct ! |
* syntax for native (x)html, including (java)scripts (I propose most simply to double <> tags to <<>>) |
* --nowiki and monospace should be totally distinct !!!-- //they are (or will be ?) !!! (thanx to [[YvesPiguet]] for the precision) |
* syntax for native (x)html, including (java)scripts (I propose most simply to double <> tags to <<>> -- rather evident & consistent choice) |
At line 202 added 104 lines |
!!! using words : *pro* internationalisation |
|
**basic error:**\\ |
Using words in wiki syntax is //not// an obstacle to internationalisation, rather the contrary ; as long as the author can use his/her own language !!! |
Such (key)words need not and should not be used for prominent formatting, such highlight or list. Rather it may be very useful for precising elements. Especially for imported blocks, or variables. This allows using the same syntax for analog , but distinct element types. For instance : |
|
((page navigation | dynamic!!!true)) |
|
((box new_page | title!!!"crear nov paj")) |
((image logo.png | tag!!!"logo" | hSize!!!55)) |
|
(()) means import -- a keyword shows the type of element -- then its id/location -- and possible parameters. |
|
Technically, it's really easy to do. The best would be to include the available translations into the parser. Otherwise, it can be done in the editor, which even gives the user the possibility to change the lexicon. |
Both solutions are based on a dictionary. |
**build lexicons** |
* give each feature a descriptive name/ID, such as "dynamically_imported_image" |
* choose a clear keyword for each ID in all languages |
* from this build a lexicon per language |
**write in your own language** |
* the site admin and/on the user can choose the language |
* separating foreground & background : the editor reads and displays keywords in the chosen language but stores matching IDs |
//or// |
* the parser transcodes to html according to the language parameter |
**distribute** |
* the real source holds IDs, not language-dependant keywords |
* the lexicons are present on all sites who know creole |
* other authors read the same source in their //own// language |
|
//Note that this principle works for any programming language !!! With such an supple editor -- foregroung/background separation --, your could programm C or python or whatever in your own mother tongue. And even change language features to fit your view: I would change assignment to ':' instead of '!!!'.// |
|
|
|
!!! marking components |
todo |
|
|
|
!!! tags : choosing the right character for the right use |
//buiding a matching table// |
|
Below all non-control non-letter non-digit 7-bit-ASCII characters/keys. We should stick to these, as other characters may be problematic with non-english keyboards like mine ;-) : |
{{{!!!}}} " # $ % & ' ( ) * + , - . / : ; < !!! > ? @ [ \ ] ^ _ ` { | } ~ NL SP TAB |
|
!! what do people do ? |
//human-to-human text// |
How de the people already format, style & layout plain text ? |
see [[http://usemod.com/cgi-bin/mb.pl?SillyTextFormattingRules]] |
Especially numbered lists & line breaks. |
|
!! feature --> character table |
|
|== feature |== characters |== fit |== example |== note ] |
|== style | | | | simple char at start of line for alinea style | |
| highlight | ** !! | !! | | * conflict with list\\! good | |
| distinct | // | // | | perfect ==? | |
| monospace | ## !! __ | {{{==}}} | | # conflict with anchor & list | |
| litteral/escape | ~ ~~ {{{{{{}}}}}} \ {{{\\}}} "" '' | " | | " pb at start of line? | |
|== link/pointer | | | | can be treated as component | |
| to page | {{{[[]]}}} | | | | |
| alias | {{{|}}} \ | | | {{{|}}} conflict with table\\see parameter | |
| categorized page\\language\\interWiki| {{{:}}} \ | | | {{{:}}} conflict with definition & subTitle | |
| to anchor/target | # @ | | {{{[[page@target]]}}} | | |
| anchor/target | {{{## @@}}} | {{{@@}}} | @@target@@ | | |
|== layout | | | | | |
| new alinea\\paragraph | NLNL NL § {{{\\\}}} | | | see alinea break\\§ similar to list & title\\NLNL good display | |
| title | == == + | | | | |
| subTitle | : _ | _ | | : similar to def meaning\\_ good ? | |
| bullet list item | * . | . | | * conflict with highlight | |
| number list item | # ? n 1 | | | # conflict with monospace\\why not 'n' or a real number? | |
| def term | ; ? | ? | | ; not explicit at all\\? conflict with variable | |
| def meaning | : | : | | :conflict with category link | |
| table cell | {{{|}}} | {{{|}}} | | | |
| table head | {{{|==}}} | {{{|?}}} | | | |
| horiz. rule | ---- | ---- | | yep ! | |
|== blocks | | | | | |
| component | {{{{{}}}}} | | {{image address}} | | |
| (x)html | {{{<<>>}}} | | {{{<<span class=="abstract">>}}} | | |
| code | (()) | | ((python {{{|}}} print("nohtyp"))) | parenthesis ? | |
|== line breaks | | | | | |
| alinea break | {{{\\}}} NL | NL | | not needed !!==\\not a tag | |
| scissor/glue | {{{\\}}} __ | | | avoid == (confusion)\\not a tag | |
|== elements | | | | | |
| parameter | {{{|}}} \ ? | | | {{{|}}} conflict with table\\see alias | |
| variable | %% ?? | | %%page_name%% | ? conflict with defintion\\may be considered as component | |
| | | | | | |
| | | | | | |
|
(*) A link may also be considered as a generated component. This choice would be consistent with the facts : a link is not only text, and it accepts parameters. Syntax : [[link page | alias]]. Pb : it makes longer a very common feature. But the real typing pb lies in the double double bracket, not in typing a short word, as there's already text to type in the address. Or what ? Side advantage : it makes brackets or braces free for something else (placeholder - variable - what else ?). |
|
!!! character --> feature table |
todo -- the opposite of above, to better see free & matching characters |
|
|
|
!!! newline / paragraph |
[[the user's newline]] |
|
!!! customization alternative |
[[customization alternative]] |
|
---- |
|
//life is strange// |