/trac-wiki

Trac Wiki renderer

Primary LanguageRuby

= TracWiki =

TracWiki is a TracWiki-to-HTML converter for Trac wiki, http://trac.edgewall.org/wiki/WikiFormatting.

Project page on github:

* http://github.com/vitstradal/trac-wiki

== INSTALLATION ==

    gem install trac-wiki

== SYNOPSIS ==

    require 'trac-wiki'
    html = TracWiki.render('== TracWiki text ==')
    # or
    html = TracWiki.render('== TracWiki text ==', options)


    parser = TracWiki.parser(options)

    parser.to_html(text1)
    parser.to_html(text2)


== Options ==

* `allowed_schemes`
   Allowed url schemes
   Examples: http https ftp ftps

* `base`
   base URL (or URI), for link and images

* `no_escape`
    Disable url escaping for local links
    Escaping: [[/Test]] --> %2FTest
    No escaping: [[/Test]] --> Test


* `no_link`
    Disable url escaping for local links
    `[[whatwerver]]` stays `[[whatwerver]]`

* `math`
    math syntax extension:
    $e^x$ for inline math,
    $$ e^x $$ for display math

* `allow_html`
    allow some <b> <form> <html>
    html will be sanitized

* `edit_heading`
    add '<a class='editheading' href="?edit=N>edit</a>'
    to each heading

* `merge`
    understand merge tags  (see diff3(1))
    >>>>>>> mine
    ||||||| orig
    =======
    <<<<<<< yours
    convert to <div class="merge merge-mine">mine</div>

* `id_from_heading`
    every heading had id, generated from heading text

* `id_translit`
    when `id_from_heading`, non ascii char are transliterated to ascii (Těžiště -> Teziste)

* `template_handler`
    template_handler(macroname) -> template_text
    when macros enabled and {{myCoolMacro}} ocured,
    result fo `template_handler('myCoolMacro') inserted

* `macros`
   enable macros|templates (in mediawiki style).
   macros are in form `{{macro_name | arg1 | arg2 }}`

* `macro_commands`
    like template but more powerfull
    do no use.

== Other parser attributes and functions ==

* `parser.headings`
    structure where headings are stored (after parse)
    list of hasheses with `level` and `title`, `sline`
    [ { leven: 1, # <h1>
        sline: 3, # line where head starts
        eline: 4, # line before next heading starts
        aname: 'anchor-to-this-heading',
        title: 'heading title'
      },
      ...
    ]

* `parser.was_math?`
  if math (inline or dispayed) was parsed.

* `parser.make_toc_html`
  create html toc from previously parsed text

* `parser.add_macro_command(name, &block)`

* `parser.env.(env|at(key))`
   access to env values after parse

== Macros ==

* `{{template}}`
* `{{$variable}}`
   * can be set by  {{!set variable|value}}
   * `$1`, `$2` parameters send to template {{template ONE|TWO}}
   * parameters send to template can be named {{template ahoj=test|hi=west}}
   * `$0` all parameters (without named)
   * `$00` all parameters (with named)

* `{{unknown_macro par1}}` is expanded  to `{{unkmacro unknown_macro|par1}}`,
   you have to specify `uknmacro` macro. If not, error strig
   `UNKNOWN-MACRO(unkmacro)`
   is generated.

* `{{!command}}`

== BUGS ==

If you found a bug, please report it at the TracWiki project's tracker
on GitHub:

http://github.com/vitstradal/trac-wiki/issues

== AUTHORS ==

* Vitas Stradal

== LICENSE ==


GPL