This is an old revision of the document!
Could not include contents
Instiki sports a variety of markup options, but the main one for use with mathematics (that’s why you’re here, after all) is Markdown.
The Markdown implementation is based on Maruku, a greatly enhanced implementation which augments John Gruber’s orginal Markdown syntax with Michel Fortin’s Markdown-Extra extensions (tables, footnotes, definition-lists, …). It also sports a very nice metadata syntax for adding attributes (id
, class
, style
, etc.) to the generated XHTML, which is especially useful in combination with its syntax for creating DIVs.
With the (default) Markdown+itex2MML filter, you can enter equations in itex, a LaTeX-like dialect. Inline and display equations are supported, as is automatic equation numbering and other such niceties.
Here’s a simple example:
\[\label ^\infty e^ d x} = \sqrt} \]
produces
[\label ^\infty e^ d x} = \sqrt} ] For more examples, see the Sandbox.
Instiki support a range of Theorem-like environments, modeled on amsthm. (Indeed, the LaTeX-export is amsthm
-compatible.). See here for details.
The Markdown filters also support syntax-colouring of code blocks. Ruby and (X)HTML flavours are supported.
Here’s an example of Ruby syntax-colouring:
~~~~~~~~~~ require ‘chunks/chunk’
module WikiChunk include Chunk
# A wiki reference is the top-level class for anything that refers to # another wiki page. class WikiReference < Chunk::Abstract
# Name of the referenced page attr_reader :page_name # Name of the referenced page attr_reader :web_name # the referenced page def refpage @content.web.page(@page_name) end
end ~~~~~~~~~~~~~~~~~~~~~~~~
which is generated by
~~~~~~~~~~ require 'chunks/chunk' # Contains all the methods for finding and replacing wiki links. module WikiChunk include Chunk ⋮ ~~~~~~~~~~~~~~~~~~~~~~~~
(Note the use of Markdown-Extra fenced code-blocks.) Here’s an example of CSS syntax-colouring
body .skipNav div#Content a:visited
which is generated by appending
body
to a standard Markdown indented code-block.
The syntax-colouring modes, supported in Instiki 0.18.1, are:
html, xml, ruby, ansic, javascript, yaml, sqlite, css fortran
Internal Wiki links can be generated by
[[Name of Page]]
or
[[Name of Page|Alternate link text]]
If the page already exists (or if there’s an existing page that redirects for it), then the result is a link to that page. If not, then a ‘new’ page link is created. Click on the question-mark to create the new page.
You can also link to other Webs on the same Instiki installation, using
[[Name of Web:Name of Page]]
or
[[Name of Web:Name of Page|Alternate link text]]
If you so choose, camel-cased words, like “HomePage” and “FileUploads”, can also generate Wiki links, turning, respectively, into HomePage and File Uploads. Personally, I prefer to disable that feature in the Edit Web page. If you do turn it on, you can “escape” camel-cased words, preventing them from being turned into hyperlinks, by prepending a ”\”.
It’s easy to upload files and pictures to your Wiki. To display an uploaded image, called mypic.jpg
, you can use
[[mypic.jpg:pic]]
or
[[mypic.jpg|some alt text:pic]]
Similarly, you can link to an uploaded file, myfile.pdf
, with
[[myfile.pdf:file]]
or
[[myfile.pdf|some link text:file]]
If you are interested in the HTML5 <audio>
and <video>
elements, they can be, in similar fashion, created using :audio
and :video
links.
<nowiki>...</nowiki>
protects its contents from being interpreted. Thus, you can type
<nowiki>[[Not a link]]</nowiki>
and have it appear as Not a link. At least in this case, the same effect can be achieved using backslashes for escaping, i.e., by typing \[\[Not a link\]\]
.
You’ve probably noticed the sidebar on the pages of this Wiki. That’s achieved with via a Wiki-include
[[!include Name of Page]]
Say you have a page named “liquor”. Now, you create a Wiki-link, [[booze]]
. If a page by the latter name already exists, then this Wiki-link will point to that. If no such page exists, it would normally create a “wanted page” link. But, perhaps you don’t want that. Perhaps [[booze]]
should point to the “liquor” page.
Edit the “liquor” page, and add a
[[!redirects booze]]
directive to it. Now all [[booze]]
links (or [[!include booze]]
directives) point to the “liquor” page, instead.
Rules:
[[!redirects ...]]
directive.[[!redirects ...]]
directives.[[!redirects Old Name]]
directive is added to the page, so that existing Wiki-links will continue to function. (Of course, you can remove it, if you wish.)If, for whatever reason, the extended Markdown syntax, and Wiki syntax, are not rich enough to express what you want, you can always include XHTML in your page. Note that Markdown processing is disabled inside XHTML. Thus
~~~~~~~~~~
This is **very** bad.
~~~~~~~~~~~~~~~~~~~~~~~~ is rendered as
This is **very** bad.
If you want to mix XHTML and Markdown syntax, include the markdown="1"
attribute.
~~~~~~~~~~
This is very good.
~~~~~~~~~~~~~~~~~~~~~~~~ is rendered as
This is very good.