Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add show/hide links for the "Table Of Contents" added to some documents. Use a cookie to make table of contents visibility a site-wide persistent setting. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | experimental |
Files: | files | file ages | folders |
SHA1: |
ddd31d001860f5ef5806b8b9926483e0 |
User & Date: | dan 2016-08-26 09:24:25.150 |
Context
2016-08-26
| ||
18:52 | Fix a bug in the previous checkin. (check-in: 92ed3a43f0 user: dan tags: experimental) | |
09:24 | Add show/hide links for the "Table Of Contents" added to some documents. Use a cookie to make table of contents visibility a site-wide persistent setting. (check-in: ddd31d0018 user: dan tags: experimental) | |
2016-08-25
| ||
20:47 | Merge trunk changes into this branch. (check-in: a3888fbe0e user: dan tags: experimental) | |
Changes
Changes to document_header.tcl.
︙ | ︙ | |||
56 57 58 59 60 61 62 63 64 65 66 67 68 69 | .fancy .codeblock i { color: darkblue; } .fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64} .fancy h2 { margin-left: 10px } .fancy h3 { margin-left: 20px } .fancy h4 { margin-left: 30px } .fancy th {white-space:xnowrap;text-align:left;border-bottom:solid 1px #444} .fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top} .fancy #toc a { color: darkblue ; text-decoration: none } .fancy .todo { color: #AA3333 ; font-style : italic } .fancy .todo:before { content: 'TODO:' } .fancy p.todo { border: solid #AA3333 1px; padding: 1ex } .fancy img { display:block; } .fancy :link:hover, .fancy :visited:hover { background: wheat } .fancy p,.fancy ul,.fancy ol,.fancy dl { margin: 1em 5ex } | > | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | .fancy .codeblock i { color: darkblue; } .fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64} .fancy h2 { margin-left: 10px } .fancy h3 { margin-left: 20px } .fancy h4 { margin-left: 30px } .fancy th {white-space:xnowrap;text-align:left;border-bottom:solid 1px #444} .fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top} .fancy .toct { color: #044a64 ! important } .fancy #toc a { color: darkblue ; text-decoration: none } .fancy .todo { color: #AA3333 ; font-style : italic } .fancy .todo:before { content: 'TODO:' } .fancy p.todo { border: solid #AA3333 1px; padding: 1ex } .fancy img { display:block; } .fancy :link:hover, .fancy :visited:hover { background: wheat } .fancy p,.fancy ul,.fancy ol,.fancy dl { margin: 1em 5ex } |
︙ | ︙ | |||
148 149 150 151 152 153 154 155 156 157 158 159 160 161 | } else { set initval $search set initstyle {font-style:normal;color:black} } append ret [subst -nocommands { <script> gMsg = "Search with FTS5..." function entersearch() { var q = document.getElementById("q"); if( q.value == gMsg ) { q.value = "" } q.style.color = "black" q.style.fontStyle = "normal" } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | } else { set initval $search set initstyle {font-style:normal;color:black} } append ret [subst -nocommands { <script> /* ** Set the cookie named "name" to value "value". Expires in "days" days. */ function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); }else{ var expires = ""; } document.cookie = name+"="+value+expires+"; path=/"; } /* ** Return the value of cookie "name". */ function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length); } return null; } /* ** Delete cookie "name". */ function eraseCookie(name) { createCookie(name,"",-1); } gMsg = "Search with FTS5..." function entersearch() { var q = document.getElementById("q"); if( q.value == gMsg ) { q.value = "" } q.style.color = "black" q.style.fontStyle = "normal" } |
︙ | ︙ |
Changes to pages/fancyformat.tcl.
︙ | ︙ | |||
199 200 201 202 203 204 205 | set line [string range $line $nMinSpace end] append out "$line\n" } append out "</pre></table></div>" return $out } | < < < < < | < > > | < < < > | > | > > > > > | | | | | > > | > > | < > > | < < < < < < < < | 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 | set line [string range $line $nMinSpace end] append out "$line\n" } append out "</pre></table></div>" return $out } #------------------------------------------------------------------------- # Return the <script>...</script> block containing the code for persistent # show/hide on the TOC block. This is inserted into each page immediately # after the "Table Of Contents" block. # proc javascript_toc_toggle {} { return { <script> function hide_toc(){ var toc = document.getElementById('toc'); var antitoc = document.getElementById('antitoc'); toc.style.display = 'none'; antitoc.style.display = ''; createCookie('hidetoc', 1, 365); } function show_toc(){ var toc = document.getElementById('toc'); var antitoc = document.getElementById('antitoc'); toc.style.display = ''; antitoc.style.display = 'none'; eraseCookie('hidetoc'); } if( readCookie('hidetoc') ) hide_toc(); </script> } } proc addtoc_cb {tag details args} { upvar #0 ::Addtoc G switch -glob -- $tag { |
︙ | ︙ | |||
428 429 430 431 432 433 434 | set toc [subst { <div class=fancy> <div class=nosearch> <div style="font-size:2em;text-align:center;color:#044a64"> $::Addtoc(title) </div> | > | | > > > | | | > > > > > > > | 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 | set toc [subst { <div class=fancy> <div class=nosearch> <div style="font-size:2em;text-align:center;color:#044a64"> $::Addtoc(title) </div> <div id=toc> <div style="margin:1em;color:#044a64"> <span style="font-size:1.5em">Table Of Contents</span> <a class=toct style="margin-left:4ex" href="#" onclick="hide_toc()"> [hide] </a> </div> $::Addtoc(toc) </div> <div id=antitoc display=none> <a class=toct style="margin-left:4ex" href="#" onclick="show_toc()"> [show table of contents] </a> </div> </div> [javascript_toc_toggle] }] set fancy [subst { <div class=fancy> <div style="font-size:2em;text-align:center;color:#044a64"> $::Addtoc(title) </div> <div class=startsearch></div> }] string map [list <table_of_contents> $toc <fancy_format> $fancy] $::Addtoc(doc) } |