/[webpac]/openisis/current/tcl/miki
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /openisis/current/tcl/miki

Parent Directory Parent Directory | Revision Log Revision Log


Revision 237 - (show annotations)
Mon Mar 8 17:43:12 2004 UTC (20 years ago) by dpavlin
File size: 4256 byte(s)
initial import of openisis 0.9.0 vendor drop

1 #!/opt/openisis/tcl/bin/tspr print
2 <%--
3 mikidoc Tcl server page
4 $Id: miki,v 1.5 2003/06/10 11:02:11 kripke Exp $
5 --%><%!
6
7 proc mikidoc file {
8 set fid [open $file]
9 set notes ""
10 set in 0
11 set eol "\n"
12 set code 0
13 while 1 {
14 set len [gets $fid line]
15 set is 0
16 set c [string index $line 0]
17 set tab [expr {"\t" == [string index $line 1] ? 2 : 1}]
18 if {$code && "$" != $c} {
19 set line [::openIsis::2html $line]
20 } else {
21 switch -- $c "" { # empty
22 set line "<br/>"
23 } {$} { # toggle code
24 if $code {
25 set line "</pre>"; set code 0
26 } else {
27 set line "<pre>"; set code 1
28 }
29 } * { # head
30 set anchor ""
31 if { 1==$tab && 2<$len && " " != [string index $line 1]} {
32 set i [string first "\t" $line]
33 if {1 < $i} {
34 set tab [expr $i+1]
35 set anchor "<a name=\"\
36 [string range $line 1 [expr $i-1]]\">&nbsp;</a>"
37 }
38 }
39 set line "</td></tr><tr><td bgcolor=\"#CCCCCC\"><b>\
40 [string range $line $tab end]\
41 </b>$anchor</td></tr><tr><td align=\"justify\">"
42 } - {
43 if [string match ---* $line] {
44 set line "<hr>"
45 } else {
46 set line "[expr {1 == $in ? "</li>" : "<ul>"}]<li>\
47 [string range $line $tab end]"
48 if {40 > $len} { append line "<br/>" }
49 set is 1
50 }
51 } | {
52 set is 2
53 if {2 != $in} {
54 set l "<table>\n<tr bgcolor=\"#EEEEEE\">"
55 set td th
56 } else {
57 set l <tr>
58 set td td
59 }
60 foreach cell [split [string range $line $tab end] "|\t"] {
61 append l "<$td>$cell</$td>"
62 }
63 append l </tr>
64 set line $l
65 } "\t" {
66 set is $in
67 if {"\t" == $line} { append line "<br/>" }
68 } > {
69 set is $in
70 foreach {ref name} [split [string range $line $tab end] "\t"] break
71 if {"" == $name} { set name $ref }
72 set line "<a href=\"$ref\">$name</a>"
73 } . {
74 if [string match ...* $line] {
75 set notes [string trim [string range $line 3 end]]
76 continue
77 }
78 } ! {
79 set eol "<br/>\n"
80 continue
81 } ";" {
82 continue
83 }
84 }
85 if {$in != $is} { # close where we
86 switch $in \
87 1 { puts "</ul>\n" } \
88 2 { puts "</table>\n" } \
89 }
90 if {0 > $len} break
91 append line $eol
92 puts $line
93 set in $is
94 }
95 close $fid
96 return $notes
97 }
98
99 %><%
100 # request standard tags
101 # -10 SCRIPT_NAME
102 # -11 PATH_INFO
103 # -12 REMOTE_USER
104 #
105 # request parameters
106 # 1 print
107 #
108 global env
109 # foreach e [array names env] { ::puts stderr "$e\t$env($e)" }
110 # ::puts stderr [request serialize]
111
112 set script [lindex [request get -10] 0]
113 set name /OverView
114 catch {set name [lindex [request get -11] 0]}
115 set sides 0
116 if [catch {request get 1}] { set sides 1 }
117 set name [string map {/ "" . ""} $name]
118
119 cd /opt/openisis/doc
120 if ![file isfile $name.txt] { set name OverView }
121 set right ""
122
123 %><html>
124 <head>
125 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
126 <title>OpenIsis - <%=name%></title>
127 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
128 </head>
129 <body bgcolor="#FFFFFF"
130 marginwidth="0" marginheight="0" topmargin="0" leftmargin="0">
131 <% if $sides { %>
132 <table width="100%" cellpadding="0" cellspacing="0"
133 marginwidth="0" marginheight="0" topmargin="0" leftmargin="0" border="0">
134 <tr>
135 <%-- left: the index --%>
136 <td valign="top" width="160">
137 <table border="0" cellspacing="5" width="100%" cols="1">
138 <tr>
139 <td valign="top">
140 <% mikidoc ".index" %>
141 <hr>
142 <a href="<%=name%>?print=">print</a><br>
143 <a href="/doc/<%=$name.txt%>">plaintext</a>
144 </td>
145 </tr>
146 </table>
147 </td>
148 <%-- middle: the content --%>
149 <td valign="top">
150 <% } ;# sides %>
151 <table border="0" cellspacing="5" width="100%" cols="1">
152 <tr>
153 <td valign="top" bgcolor="#000000"><font color="#FFFFFF"><b>
154 <%=name%>
155 </b></font></td>
156 </tr>
157 <tr>
158 <td align="justify">
159 <% set right [mikidoc $name.txt] %>
160 </td>
161 </tr>
162 </table>
163 <% if $sides { %>
164 <%
165 if {"" != $right} {
166 %>
167 <%-- right: notes --%>
168 </td>
169 <td valign="top" width="25%">
170 <table border="0" cellspacing="5" width="100%" cols="1">
171 <tr>
172 <td valign="top" bgcolor="#000000"><font color="#FFFFFF"><b>
173 <%=right%>
174 </b></font></td>
175 </tr>
176 <tr>
177 <td align="justify">
178 <% mikidoc $right.txt %>
179 </td>
180 </tr>
181 </table>
182 <%
183 }
184 %>
185 </td>
186 </tr>
187 </table>
188 <% } ;# sides %>
189 <!--
190 $Revision: 1.5 $
191 -->
192 </body>
193 </html>

Properties

Name Value
svn:executable

  ViewVC Help
Powered by ViewVC 1.1.26