== \WiX \announce{\WiX 1.0 has been released! Simply download {[[wix.jar]]}-> wix.jar and type [[java -jar wix.jar]] for instructions. You can get the source code via darcs-> http://www.darcs.net/ by typing [[darcs get http://www.megacz.com/software/wix/com.megacz.wix/]] } === What is it? \WiX (pronounced "wick") is a text markup format. Its syntax is a blend of Donald Knuth's \TeX and various wiki markup. Here's what the {\WiX for this page}->index.wix looks like. * Unlike \TeX, \WiX is intended to be ++presentation-neutral++; \WiX documents can be **rendered** into several output formats: html, plain text, pdf (via \TeX or lout->http://lout.sourceforge.net/), RTF, unix man page, IETF RFC, and others. * Unlike SGML and XML formats (such as HTML and DocBook), \WiX is ++convenient for humans to read and write++ without special editors. * Unlike every known wiki format, \WiX has a ++formal grammar++ rather than an ad-hoc parser. This means that its parsing behavior is fully specified, unambiguous, and predictable. In addition, {\WiX's grammar}->com.megacz.wix/src/wix.g is concise, {context-free boolean}-> http://en.wikipedia.org/wiki/Boolean_grammar, and lexerless->http://en.wikipedia.org/wiki/Lexerless_parsing. The \WiX implementation uses the {Berkeley Scannerless Boolean Parser}-> http://research.cs.berkeley.edu/project/sbp. === Why Should I use \WiX? Because: * Its ++syntax++ is easy to produce and edit with an ordinary text editor and very readable, even by people who don't know \WiX. It also works very well with source control. * It generates beautiful ++HTML versions++ of your documents including: automatic "smart quotes" and ellipses, entity escapification, bulleting,
emulation, icon-tagging of pdf->dummy.pdf and mailto->nowhere@nowhere.com links, easy style switching, and automatic cross-browser compatability. **Coming soon**: automatic table of contents, section links, footnotes, indexing, syntax highlighting, and macro expansion. Current visual design thanks to the skills of {David Crawshaw}->http://www.zentus.com. * You get zero-effort, nicely formatted ++plain text versions++ of your documents. It's a much more pleasant way to write RFC's and man pages, and you get a nicely typeset ++pdf version++ with no additional effort! * It is easy to ++add your own extensions++ using Java or Haskell (thanks to {Brian Alliet's}->{http://www.brianweb.net/} LambdaVM->http://www.cs.rit.edu/~bja8464/lambdavm/). Unlike HTML, the "{document object model}->com.megacz.wix/src/Doc.lhs" for \WiX is clean, simple and easy to understand. * It includes nifty ++bonus features++ like: * Automatic formatting of fractions ([[1\/2]] becomes 1/2) and ordinals, ([[3{rd}]] becomes 3rd). * Colorized diffs against the previous version of a document each time you re-render it (example->colorized.example.png). Diffs are done on the **rendered** text so you can see any changes to your documents that happen as a result of upgrading to a newer version of \WiX. * Keystroke symbols like \keystroke:command \keystroke:shift \keystroke:option \keystroke:control \keystroke:capslock (and, in some fonts, the apple symbol: \keystroke:apple) * Inline TeX-syntax mathematics (html rendering courtesy of jsMath-> {http://www.math.union.edu/~dpvc/jsMath/}) -- you type this: \pre $$\quad \sqrt{x^2+\sqrt{\alpha}}$$ and you get this: $$\quad \sqrt{x^2+\sqrt{\alpha}}$$. === How do I write \WiX documents? There's a draft tutorial here->tutorial.html, though it's nowhere close to ready yet. === What inspired \WiX? Many of the features in \WiX were inspired by other systems, including: * Donald Knuth's \TeX (of course) * Various wikitexts->http://en.wikipedia.org/wiki/Wikitext * Russ Alberry's {**thread** format and [[spin]] program}-> http://www.eyrie.org/~eagle/software/web/ === How can I extend \WiX? How does its grammar work? There's a {draft grammar guide}-> grammar.guide.html that explains the finer points of the grammar. The contents of the grammar guide used to be a bunch of comments in the grammar file, but they took up more space than the grammar itself. === To-Do items (mostly for Adam) * subtitles (in light gray) * Let blockquote text start on the same line as the doublequote * COMMENTS * eliminate [[.html]] on local links * Copy non-\WiX files to output directory? ==== Visual styling * drop cap? * right-aligned stuff? * style sheets * margin notes * figures in the margin (nice w/ alternating-side printing) * tables \pre tables - csv? \table a bbb c ddd e [a] ... [b] ... [c] ... ==== Multi-Document Stuff * HTMLtag * site map? * HTML tags * .signature appendde to all documents in a set ==== ##Plugins## * TexMath (convert to png/pdf/svg) * Graphviz * Gnuplot * Metapost ==== macros * #include * simple macros (#define) (\\define) ==== Output formats * TeX * Lout * Manpage * PlainText * RFC-Text (and XML as in \rfc{2629}) * Rich Text Format ==== Misc * Add \TeX-to-SWF to handle stuff that jsmath doesn't * reintroduce autolinkification * must be done as a post-processing step because we have no leftward-maximal matching * find links within verbatim blocks, make them clickable * javascript cloaking of email addresses * expand/collapse javascript outlines (for faqs) * today's date (\\today) * icons for movies (avi, wmv, quicktime) * Precompile grammar * imagization of header text (nice big antialiased fonts?) * check out trac; it does great stuff. * \\cite * \\nobr (non-breaking) * sans-serif text? * comprehensive latex symbol list * images (with alt-text) * wikipedia-links (automatically links to closest wikipedia page) ==== Document-Wide Stuff * two-column * "draft" mode (prints draft in background) * header/footer (last compiled on, author, etc) * document structure * header: title, subtitle, author, email, date * toc * abstract * sections/chapters (with header/footer) * textblocks: * attention, caution, danger, error, hint, important, note, tip * appendices * bibliography * index * @@defined/indexed term@@ (index/glossary) * by prior line indentation, like headings in the original structured text * : term : definition * acronyms! include auto definition ==== internal relative links * (#foo) * [#foo] (link to previous) * blah ->#foo * \\label{} and \\ref{} * page numbers * "reference-style" links * this->[1] is fun * [1]->http://...