From Lojban
Jump to: navigation, search
See also: ELG

CLL in the wiki

I am working on converting docbook-CLL into MediaWiki so that it can be further developed by the community. The following problems have been solved:

  • docbook-CLL tags are often very weird for humans especially when it comes to writing new chapters and sections of CLL. Indeed, tags are bulky, lengthy, they are hard to read by humans.
    • Solution: I created several templates so that you can mark Lojbanic words with {{jbo|SOME-LOJBANIC-WORD}}, or you can be more specific and mark rafsi with {{rf|gau}} where "rf" is the template for formtting rafsi and "gau" is the rafsi you are quoting.

Using templates allows not to think on the design of the text you are entering. If you dont like the formatting of e.g. rafsi in the text of the wiki you need to change only one page in the wiki, namely, the page "Template:rf".

This method allows to separate designer's work and the work of members of BPFK (or whatever committee will work on it).

  • Tables are implemented in docbook-CLL using html syntax which is known for its great inconvenience for manual writing. However, MediaWiki table syntax is known exactly for the same.
    • Solution: Installing TabData extenstion allows to enter tables in simple csv or tsv-like syntax (just rows with columns separated by tabs)
  • In case you want to print CLL to paper you can't have hyperlinks anymore. You need to convert hyperlinks (hyperlinks to chapters, sections and examples) to their numbers, e.g. "To learn more look at the example No. 10.2.3" or any other number.
  • Also one has to autoincrement numbers of chapters, sections and examples. E.g. if BPFK inserts a new example in the middle of the book you shouldn't renumber all the examples after it and renumber hyperlinks in the whole text. Luckily, docbook-CLL contains unique ids before each chapter, section and example. One can reuse that for wiki-CLL.
    • Solution: Variables and ParserFunctions extensions allow to define variables, display their values in the text or pass the values to templates, autoincrement variables, define the values that variables get when the parsing of the text of a wiki page is over (i.e. at the end of the page).
  • Definitions of cmavo and gismu when present in docbook-CLL are actually hardcoded there. What if BPFK presents a better definition of a cmavo officially? Shall CLL-developers manually correct them throughout the text?
    • Solution:I created two templates that use Variables and ParserFunctions extensions: one template for defining definition and notes of a given lojbanic word. Another template is for returning the word with the definition and by demand with the note too. Of course the definition will be already preformatted for transcluding into the wiki.
  • CVS like often have no wysiwyg mode. That's why I chose the wiki format.

Why is the page transcludes other pages?

Why not have the whole CLL in one page?

Because the page would be very huge and wikis dont support such huge pages. So it is split into several pages-chunks.

Note that gimste and ma'oste are placed into separate pages too and then transcluded into the main page.

Why have wiki-CLL?

docbook-CLL doesnt have wysiwyg mode. You have to compile the whole text to see what you got. github where docbook-CLL currently resides is good when editing the source but is absolutely not prepared for controlling the output.

That's why wiki platform is a much better place for community work.

Of course we are not talking here of the scenario when only one person will be the contributor.

I can imagine someone developing the whole docbook-CLL alone.

But even if I were alone (and unfortunately this is what I expect in reality) wiki is a better place for me than github.

Indices for printed CLL

If you were reading this to get the answer: how have i dealt with indices that are supposed to be at the end of the printed book the answer is simple: I don't think a well-structured book should have any indices at all. You might disagree and see if you can play with the wiki further.

But I didn't even think of whether it's possible to do there.

You might want to write a wiki2TeX converter. Anyway hyperlinks for indices present in the original docbook-CLL are still there in the wiki code.


First you define "sec" variable in the title of each section. You just increment by one and assign that value to the unique sec-name-of-section variable.

In the beginning of each section you assign a new subsection-example-id-incrementer=0. Example increment from 1 after the dot of that section number. Each value is assigned to a new variable: a unique id of that example.


<tabledata> ... </tabledata> is your friend.

<tabledata format=csv> Format,1,2,3,4 Numeric,1,2,3,4 Alphabet,A,B,C,D Roman,I,II,III,IV </tabledata>


  • fix tables:most are broken Template:sgr
  • fix elidables (manually!)


  • fix sections auto-numbering


The goal is to have CLL on a single page. What templates do we need?

  • index as ind|param|value
  • example as mupli|jbo=|en=|gloss=
  • word as valsi|jbo=|en=|gloss=
  • cmavo as cmavo|jbo=|selma'o=|en=|gloss=
  • anchor as anchor|value
    • anchors must be put before examples and important parts of text.


looks like "elidable" tag was lost.


  • {{startchapter|{{#var:uni}}}}
  • chapters csp - lch
  • examples dsp - lex
  • sections ssp - ls

ELG: formatting

What do we need?

  1. ELG is in one page. Actually it's several pages transluded into one page so that local hyperlinks work page-wide.
  2. Every paragraph can be assigned a unique id so that we can link to it from other parts of ELG: {{judri|#NNN}}
  3. Every paragraph can have a short dictionary-style info for indices on what this paragraph describes. Separated by ":". For example, {{ind|lojban:what is it}}
  4. Every sentence example has the following syntax:
    :Example NNN
    :'''lo lojbo se cusku'''
  1. Images are just normal wiki-images, might be in thumbnail form.[[Image:name.png|thumb|caption text|link=]]
  2. Lojbanic text is '''bold''', translation in ''italic'', glossing is inside <code> ... </code> tags. Rafsi are marked as {{r|gau}}, gismu are {{g|broda}}, lujvo are {{l|kargau}}, fu'ivla are {{f|spageti}}, cmevla are {{.|cmevlas}}, cmavo are {{c|gau}}, broken lujvo are {{bl|tosmabru}}.

What else do we REALLY need? The remaining tags should be removed imo.

ELG is split into several wiki pages so links to paragraphs will work only in the main ELG page where all those pages are transcluded into one.

ELG formatting depends on SimpleTable extension.



I'm not willing to change the order of chapters in the first place as it was suggested for CLL 2.0 as ELG is not a tutorial. You need to have passed L4N course in order to be able to read it. However, yes, the next step would be rearranging the stuff.
And the step after that will be translating ELG to Lojban itself.
I should note that ELG is only initially based on CLL. A lot will be changed in the flow of text during it’s development leading to a possibly completely different book. ELG has nothing to do with CLL 2.0 or Standard Lojban. But if you are tired of waiting for CLL 2.0 then here it is, this [potentially] crowd-sauced project. And i have no illusions that the crowd will be > pamei .uinai

The creation of ELG will undergo several steps.

  1. Landing. CLL will land in LMW. At this step please don’t edit text for real. Yes, you are free to damage the text but everything is in sandbox mode. All your changes can be easily reverted or deleted.
    Look at the formatting. Look if the source is intuitive for further editing.
    In case of any problems or disappointment please write your observations or suggestions here.
    We will try to land as many times as needed.
  2. When we agree that the book is easy to develop we are moving onto the second step.
    It is advised to create new chapters related to any topics you think are worth explaining.