(anonymous guest) (logged out)

Copyright (C) by the contributors. Some rights reserved, license BY-SA.

Sponsored by the Wiki Symposium and the Nuveon GmbH.

 

Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-53) was last changed on 24-Sep-2008 15:00 by spir  

This page was created on 14-Sep-2008 01:51 by spir

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 changed one line
Hello,
Hello !!!
At line 6 added one line
//**note :** This page is a work in progress. I use it as a repository for ideas, views and explorations -- anything may change at any time. Some of the points may later migrate to wikiCreole talk pages or new pages to better feed the common reflexion. Feel free to comment anyway, either by letting a note (clearly distinguished and signed), or on my talk page (then say what point you comment). Thank you.//
At line 8 added one line
[{TableOfContents title='sommaire'}]
At line 8 removed one line
= personal position
At line 11 added 2 lines
!!! personal position
At line 15 changed one line
are not relevant for me: they're rather second stage criteria. What I mean is that, to my opinion, these criteria are fundamental for a interwiki-only markup, precisely for mixing creole with local markup -- which sounds a bit alien to my ears. Otherwise
are not relevant for me: they're rather second stage criteria. What I mean is that, to my opinion, these criteria are fundamental for a interwiki-only markup, precisely for mixing creole with local markup -- which sounds a bit alien & confusing to my ears. Otherwise
At line 25 added one line
!!! glossary
At line 27 added 5 lines
**style tag :**
A kind of tag used to enclose a segment of text. \\
Used to apply the same formatting to the whole segment. \\
In creole, double characters are used : // ** ##. \\
It may be good if the same simple character could be used at the start of an alinea to set its global style, optionnally in addition to a layout tag.
At line 24 changed 4 lines
= glossary
**segment**
A bit of text inside a logical_line \\
**segment :**
A bit of text inside an alinea \\
At line 30 changed 5 lines
**style tag**
A kind of mark/tag used to enclose a segment of text in order to apply the same formatting to the whole piece. \\
In creole, double characters are used, for instance : \\
{{{//distinct// **important** [[link]]}}} \\
//distinct// **important** [[link]]
**newline character & newline tag : ** a mark (LF and/or CR characters) usually inserted by pressing the return/enter key. \\
A newline is both a plain text character that creates a new visual line (sub-alinea) and, in most cases, a tag that starts a new line-component. \\
Logically enough, a newline preceeded by an escape (plain-character) tag becomes, or may become, a simple character newline : it loses its tag function but remains a plain character, thus starting a new visual line without marking the end of the alinea. \\
In many wiki languages, including creole, a newline works as above specified for all kinds of alineas //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 42 added 11 lines
**alinea, sub-alinea & visual 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 heading, a list item, a table row, when started with the appropriate layout tag.\\
A sub-alinea is piece of text ended by a newline //character//. \\
Alineas & sub-alineas are usually, and automatically, wrapped in several //visual// lines to fit in the window width.
//Note : the latin word "alinea" avoids confusion with "paragraph" :
* for authors, as a paragraph is a kind of alinea
* for techos, as paragraph is an html tag / element
I first chose "logical line", but I find "alinea far better.//
**layout tag :** A kind of tag placed at the start of an alinea \\
Used to set its layout.
At line 37 changed 8 lines
**logical & visual lines**
A chunk of text ended by a newline mark. \\
In regular text, a logical line is a paragraph ; it can also be a simple line, a header, a list item, a table row, when started with the appropriate layout tag.\\
A //logical// line may be split into //visual// lines with a soft newline. Example :
{{{A logical line \\
split in two visual lines.}}}
A logical line \\
split in two visual lines.
**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 46 changed 4 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. \\
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.
**section !!! heading / content :** Major semantic tailoring of a page. \\
A heading is a (special kind of ?) alinea ; may be split into title / subtitle. \\
A content is a sequence of blocks \\
//see "page structure"//
At line 51 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 56 removed 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"
At line 59 changed 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"
!!! page structure
At line 66 removed 2 lines
= page structure
// please improve & criticize on talk page//
At line 69 changed one line
** note the major difference between //semantic// & //markup// page structures**
!!!!!! page component tree
At line 71 removed 2 lines
=== page component tree
At line 75 added one line
At line 77 changed one line
header
heading
At line 79 changed one line
header
heading
At line 82 changed one line
content
body (or content)
At line 84 changed 2 lines
line (logical)
line (visual)
alinea
sub-alinea (split with NL)
At line 90 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 logical lines. 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 92 changed 4 lines
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.
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. \\
However, even if not formally marked, this structure could rather easily be constructed by an dedicated parser.
At line 97 changed 2 lines
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.
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 100 changed one line
=== semantic page structure
!!!!!! semantic page structure
At line 103 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 108 changed 2 lines
page : header body
header : title sub_title?
page : heading body
heading : title sub_title?
At line 111 changed 16 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//)*))
text : plain_text | styled_text
styled_text : distinct_text | important_text | raw_text | monospace_text | link | variable
distinct_text : //plain_text//
important_text : **plain_text**
raw_text : ??plain_text??
monospace_text : ??plain_text??
link : [[//address// (|//text/)?]]
variable : <<//name//>>
plain_text : (//list of valid text characters separated with '|')*
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 129 changed one line
=== markup page structure
!!!!!! markup page structure
At line 131 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 135 changed one line
=== line components structure
//note the major difference between //semantic// & //markup// page structures (lol)//
!!!!!! alinea components structure
At line 137 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 143 changed one line
paragraph : logical_line_style_mark* text NL
paragraph : alinea_style_mark* text NL
At line 146 changed 5 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 :
//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 152 changed 5 lines
distinct
important
litteral
monospace
code
text : plain_text | styled_text | link | variable
styled_text : distinct_text | highlight_text | litteral_text | monospace_text
distinct_text : //plain_text//
highlight_text : **plain_text**
litteral_text : ??plain_text??
monospace_text : ??plain_text??
link : [[#?address (| text)?]]
variable : <<//name//>>
plain_text : (text_character | \tag_character)*
At line 159 changed 4 lines
**n o t e s**
* ______
* ______
* ______
!!!!!! style markers :
{{{
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 164 added 3 lines
!!!!!! 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 166 changed one line
= what I prize in creole
//Used to split an alinea in visual/semantic lines. Not a tag. Should be NL !!!!!!!!!//
At line 172 added 7 lines
**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.//
!!! what I prize in creole
At line 170 changed one line
* the focus on the most important features
* the focus on the most highlight features
At line 176 changed one line
= what I miss / what I don't like
!!! what I miss / what I don't like
At line 180 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 186 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//
Version Date Modified Size Author Changes ... Change note
53 24-Sep-2008 15:00 15.371 kB spir to previous
52 23-Sep-2008 14:09 15.414 kB spir to previous | to last
51 23-Sep-2008 14:06 15.206 kB spir to previous | to last
50 20-Sep-2008 17:41 15.297 kB spir to previous | to last
49 19-Sep-2008 23:53 15.235 kB spir to previous | to last
48 19-Sep-2008 23:52 15.236 kB spir to previous | to last
47 19-Sep-2008 13:19 15.241 kB spir to previous | to last
46 19-Sep-2008 12:27 15.251 kB spir to previous | to last
45 19-Sep-2008 11:36 15.092 kB spir to previous | to last
44 18-Sep-2008 22:20 14.959 kB spir to previous | to last
43 18-Sep-2008 22:18 14.924 kB spir to previous | to last
42 18-Sep-2008 22:17 14.97 kB spir to previous | to last
41 18-Sep-2008 22:16 14.964 kB spir to previous | to last
« This page (revision-53) was last changed on 24-Sep-2008 15:00 by spir