You are looking at historical revision 749 of this page. It may differ significantly from its current revision.

Introduction

Streams-based code for converting from the relatively standard and easy to type wiki format to HTML.

Examples

Converting from wiki format to HTML

The following code receives input from current-input-port in wiki format and converts it to HTML written to current-output-port:

(use stream-ext stream-wiki)

(write-stream (wiki->html (port->stream (current-input-port))))

Note that the resulting page does not include the <html> and <body> tags (to make it easy to include it as part of a page with other stuff).

Converting from wiki format to LaTeX

The following code receives input from current-input-port in wiki format and converts it to LaTeX written to current-output-port.

(use stream-ext stream-wiki)

(write-stream
  (latex-page "english"
              "article"
              (wiki->latex (port->stream (current-input-port)))))

The following code reads information in wiki format from current-input-port and returns a stream with all the local links found. Note that links to absolute URLs are not considered local links and are thus not returned. Each entry in the stream has the form (dst name), where dst is the target of the link and name the text shown in the link.

(use stream-ext stream-wiki)

(wiki-links (port->stream (current-input-port)))

Returning a list of tags in a file

It is possible to include "tags" (in the sense of tagging files with categories) in wiki pages as part of their contents. To do this, the page should include a stream of the form <nowiki>[[tags:tag0 ... tagn]]</nowiki>. This allows users of wiki systems to browse pages by categories (eg. list all pages having tag tag0).

The following code loads a file in wiki format from test.wiki and returns a stream of symbols, one for each tag found.

(use stream-ext stream-wiki)

(wiki-tags (port->stream (open-input-file "test.wiki")))

Authors

This egg is made by Alejandro Forero Cuervo <azul@freaks-unidos.net>.

License

The stream-wiki egg is available under the GNU General Public License.

Requirements

This egg depends on the following:

Converting from wiki to HTML

(wiki->html input)

Converts from a simple wiki format (which is relatively standard nowadays) into HTML.

input should be a stream of characters (built with the mechanisms provided by SRFI-40 or the stream-ext egg) with the contents in wiki-format; the function returns a stream of characters to be included as part of an HTML page.

Note that the returned stream will be built dynamically as it is read (and so will the input stream be read).

wiki->html accepts other parameters but they may change in the future. You are advised not to use them right now.

Converting from wiki to LaTeX

Analyzing wiki files

Obtaining sections

Obtaining tags

Obtaining a table of contents

Version history

1.1
1.1 Lots of improvements, way too many to list here. :-/
1.0
First public release