# -*- tcl -*- # # $Id: toc.nroff,v 1.7 2009/01/30 04:56:47 andreas_kupries Exp $ # # Engine to convert a doctoc document into nroff. # # Copyright (c) 2003 Andreas Kupries # Freely redistributable. # ###################################################################### dt_source _toc_common.tcl dt_source _nroff.tcl ###################################################################### # Conversion specification. # # One-pass processing. proc toc_postprocess {nroff} { # Postprocessing after generation ... # Strip empty lines out of the generated nroff source # and trim leading blanks, except in code samples. set lines [list] foreach line [split $nroff "\n"] { set line [string trim $line] if {0 == [string length $line]} { continue } lappend lines $line } return [nroff_postprocess [join $lines \n]] } #proc fmt_plain_text {text} {if {$text != {}} {return \n} else {return {}}} proc fmt_plain_text {text} {return {}} ################################################################ ## Backend for TMML markup global prec ok set prec "" set ok 0 proc fmt_toc_begin {label title} { global prec ok set ok 1 set hdr [nr_comment {}]\n if {$prec != {}} { set hdr [nr_comment $prec]\n } append hdr [nr_comment [c_provenance]]\n append hdr [nr_read man.macros]\n append hdr [nr_title "\"[string trimleft $label :]\" n"]\n append hdr [nr_bolds]\n append hdr [nr_section CONTENTS]\n append hdr $title[nr_in]\n return $hdr } proc fmt_toc_end {} {} proc fmt_division_start {title symfile} {return $title[nr_in]\n} proc fmt_division_end {} {return [nr_out]\n} proc fmt_item {file label desc} {return "[nr_blt [nr_bld]$label[nr_rst]]\n[nr_ul]$file[nr_rst]: $desc\n"} proc fmt_comment {text} { global prec ok if {$ok} {return [nr_comment $text]} append prec $text \n return {} } ################################################################