summaryrefslogtreecommitdiffstats
path: root/tcllib/modules/doctools/mpformats/idx.wiki
diff options
context:
space:
mode:
Diffstat (limited to 'tcllib/modules/doctools/mpformats/idx.wiki')
-rw-r--r--tcllib/modules/doctools/mpformats/idx.wiki63
1 files changed, 63 insertions, 0 deletions
diff --git a/tcllib/modules/doctools/mpformats/idx.wiki b/tcllib/modules/doctools/mpformats/idx.wiki
new file mode 100644
index 0000000..8eee534
--- /dev/null
+++ b/tcllib/modules/doctools/mpformats/idx.wiki
@@ -0,0 +1,63 @@
+# -*- tcl -*-
+#
+# $Id: idx.wiki,v 1.2 2004/01/15 06:36:12 andreas_kupries Exp $
+#
+# Engine to convert a docidx document into Wiki markup.
+#
+# Copyright (c) 2003 Andreas Kupries <andreas_kupries@sourceforge.net>
+# Freely redistributable.
+#
+######################################################################
+
+dt_source _idx_common.tcl ; # Shared code
+
+######################################################################
+
+proc idx_postprocess {wiki} {
+ # Strip empty lines out of the generated wiki source
+ # and trim leading blanks, except in code samples.
+ #
+ set lines [list]
+ foreach line [split $wiki \n] {
+ if {[string match " |*" $line]} {
+ # Verbatim / example
+ lappend lines [string trimright $line]
+ } elseif {[string match ". *" $line]} {
+ # Verbatim / regular
+ lappend lines [string range [string trimright $line] 1 end]
+ } elseif {[string match " \* *" $line]} {
+ # Itemized lists.
+ lappend lines [string map {[ [[ ] ]]} [string trimright $line]]
+ } elseif {[string match " 1. *" $line]} {
+ # Enumerated lists
+ lappend lines [string map {[ [[ ] ]]} [string trimright $line]]
+ } elseif {[regexp "^ (\[^:\]): " $line]} {
+ # Definition list
+ lappend lines [string map {[ [[ ] ]]} [string trimright $line]]
+ } elseif {[string match " *" $line]} {
+ # Unwanted indentation
+ lappend lines [string map {[ [[ ] ]]} [string trim $line]]
+ } else {
+ # Everything else
+ lappend lines [string map {[ [[ ] ]]} [string trimright $line]]
+ }
+ }
+ set wiki [join $lines \n]\n
+
+ regsub {^[ ]+} $wiki {} wiki
+ return $wiki
+}
+
+proc fmt_plain_text {text} {return {}}
+
+################################################################
+## Backend for wiki markup
+
+proc fmt_index_begin {label title} {return "Index '''$label'''\n'''[string trim $title]'''\n"}
+proc fmt_index_end {} {return {}}
+proc fmt_key {text} {return "\n '''[string trim $text]''': "}
+proc fmt_manpage {file label} {return "$file "}
+proc fmt_url {url label} {return "$url "}
+proc fmt_comment {text} {return {}}
+
+################################################################