diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2019-02-15 18:18:37 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2019-02-15 18:18:37 (GMT) |
commit | 7f1623e3f658b2dc4ddad0f1b9309a156de82065 (patch) | |
tree | c4545af8e8fed1e426420e63dc6183cd7330d9d6 /tcllib/support/devel/sak/doc/doc.tcl | |
parent | 4ebaf6a439560cadf7424b1427cd2f85e411179e (diff) | |
download | blt-7f1623e3f658b2dc4ddad0f1b9309a156de82065.zip blt-7f1623e3f658b2dc4ddad0f1b9309a156de82065.tar.gz blt-7f1623e3f658b2dc4ddad0f1b9309a156de82065.tar.bz2 |
update tcllib
Diffstat (limited to 'tcllib/support/devel/sak/doc/doc.tcl')
-rw-r--r-- | tcllib/support/devel/sak/doc/doc.tcl | 262 |
1 files changed, 0 insertions, 262 deletions
diff --git a/tcllib/support/devel/sak/doc/doc.tcl b/tcllib/support/devel/sak/doc/doc.tcl deleted file mode 100644 index 59ab9b7..0000000 --- a/tcllib/support/devel/sak/doc/doc.tcl +++ /dev/null @@ -1,262 +0,0 @@ -# -*- tcl -*- -# sak::doc - Documentation facilities - -package require sak::util -package require sak::doc::auto - -namespace eval ::sak::doc {} - -# ### -# API commands - -## ### ### ### ######### ######### ######### - -proc ::sak::doc::index {modules} { - # The argument (= set of modules) is irrelevant to this command. - global base - - # First locate all manpages in the CVS workspace. - set manpages [auto::findManpages $base] - auto::saveManpages $manpages - - # Then scan the found pages and extract the information needed for - # keyword index and table of contents. - array set meta [auto::scanManpages $manpages] - - # Sort through the extracted data. - array set kwic {} ; # map: keyword -> list (file...) - array set title {} ; # map: file -> description - array set cat {} ; # map: category -> list (file...) - array set name {} ; # map: file -> label - set apps {} ; # list (file...) - array set mods {} ; # map: module -> list(file...) - - foreach page [array names meta] { - unset -nocomplain m - array set m $meta($page) - - # Collect keywords and file mapping for index. - foreach kw $m(keywords) { - lappend kwic($kw) $page - } - # Get page title, relevant for display order - if {$m(desc) eq ""} { - set m(desc) $m(shortdesc) - } - set title($page) $m(desc) - # Get page name/title, relevant for display order. - set name($page) $m(title) - # Get page category, for sectioning and display order in the - # table of contents - if {$m(category) ne ""} { - set c $m(category) - } else { - set c Unfiled - } - lappend cat($c) $page - - # Type of documented entity - set type [lindex [file split $page] 0] - if {$type eq "apps"} { - lappend apps $page - } else { - lappend mods([lindex [file split $page] 1]) $page - } - } - - #parray meta - #parray kwic - #parray title - #parray name - #parray cat - #puts "apps = $apps" - #parray mods - - auto::saveKeywordIndex kwic name - auto::saveTableOfContents title name cat apps mods - auto::saveSimpleTableOfContents1 title name apps toc_apps.txt - auto::saveSimpleTableOfContents2 title name mods toc_mods.txt - auto::saveSimpleTableOfContents3 title name cat toc_cats.txt - return -} - -proc ::sak::doc::imake {modules} { - global base - # The argument (= set of modules) is irrelevant to this command. - auto::saveManpages [auto::findManpages $base] - return -} - -proc ::sak::doc::ishow {modules} { - if {[catch { - set manpages [auto::loadManpages] - } msg]} { - puts stderr "Unable to use manpage listing '[auto::manpages]'\n$msg" - } else { - puts [join $manpages \n] - } - return -} - -## ### ### ### ######### ######### ######### - -proc ::sak::doc::validate {modules} {Gen null null $modules} -proc ::sak::doc::html {modules} {Gen html html $modules} -proc ::sak::doc::nroff {modules} {Gen nroff n $modules} -proc ::sak::doc::tmml {modules} {Gen tmml tmml $modules} -proc ::sak::doc::text {modules} {Gen text txt $modules} -proc ::sak::doc::wiki {modules} {Gen wiki wiki $modules} -proc ::sak::doc::latex {modules} {Gen latex tex $modules} - -proc ::sak::doc::dvi {modules} { - latex $modules - file mkdir [file join doc dvi] - cd [file join doc dvi] - - foreach f [lsort -dict [glob -nocomplain ../latex/*.tex]] { - - set target [file rootname [file tail $f]].dvi - if {[file exists $target] - && [file mtime $target] > [file mtime $f]} { - continue - } - - puts "Gen (dvi): $f" - exec latex $f 1>@ stdout 2>@ stderr - } - cd ../.. - return -} - -proc ::sak::doc::ps {modules} { - dvi $modules - file mkdir [file join doc ps] - cd [file join doc ps] - foreach f [lsort -dict [glob -nocomplain ../dvi/*.dvi]] { - - set target [file rootname [file tail $f]].ps - if {[file exists $target] - && [file mtime $target] > [file mtime $f]} { - continue - } - - puts "Gen (ps): $f" - exec dvips -o $target $f >@ stdout 2>@ stderr - } - cd ../.. - return -} - -proc ::sak::doc::pdf {modules} { - dvi $modules - file mkdir [file join doc pdf] - cd [file join doc pdf] - foreach f [lsort -dict [glob -nocomplain ../ps/*.ps]] { - - set target [file rootname [file tail $f]].pdf - if {[file exists $target] - && [file mtime $target] > [file mtime $f]} { - continue - } - - puts "Gen (pdf): $f" - exec ps2pdf $f $target >@ stdout 2>@ stderr - } - cd ../.. - return -} - -proc ::sak::doc::list {modules} { - Gen list l $modules - - set FILES [glob -nocomplain doc/list/*.l] - set LIST [open [file join doc list manpages.tcl] w] - - foreach file $FILES { - set f [open $file r] - puts $LIST [read $f] - close $f - } - close $LIST - - eval file delete -force $FILES - return -} - -# ### ### ### ######### ######### ######### -## Implementation - -proc ::sak::doc::Gen {fmt ext modules} { - global distribution - global tcl_platform - - getpackage doctools doctools/doctools.tcl - - set null 0 ; if {![string compare $fmt null]} {set null 1} - set hidden 0 ; if {![string compare $fmt desc]} {set hidden 1} - - if {!$null} { - file mkdir [file join doc $fmt] - set prefix "Gen ($fmt)" - } else { - set prefix "Validate " - } - - foreach m $modules { - set mpath [sak::util::module2path $m] - - ::doctools::new dt \ - -format $fmt \ - -module $m - - set fl [glob -nocomplain [file join $mpath *.man]] - - if {[llength $fl] == 0} { - dt destroy - continue - } - - foreach f $fl { - if {!$null} { - set target [file join doc $fmt \ - [file rootname [file tail $f]].$ext] - if {[file exists $target] - && [file mtime $target] > [file mtime $f]} { - continue - } - } - if {!$hidden} {puts "$prefix: $f"} - - dt configure -file $f - if {$null} { - dt configure -deprecated 1 - } - - set fail [catch { - set data [dt format [get_input $f]] - } msg] - - set warnings [dt warnings] - if {[llength $warnings] > 0} { - puts stderr [join $warnings \n] - } - - if {$fail} { - puts stderr $msg - continue - } - - if {!$null} { - write_out $target $data - } - } - dt destroy - } -} - -# ### ### ### ######### ######### ######### - -package provide sak::doc 1.0 - -## -# ### |