1module RDoc 2module Page 3 4FONTS = "\"Bitstream Vera Sans\", Verdana, Arial, Helvetica, sans-serif" 5 6STYLE = <<CSS 7a { 8 color: #00F; 9 text-decoration: none; 10} 11 12a:hover { 13 color: #77F; 14 text-decoration: underline; 15} 16 17body, td, p { 18 font-family: %fonts%; 19 background: #FFF; 20 color: #000; 21 margin: 0px; 22 font-size: small; 23} 24 25#content { 26 margin: 2em; 27} 28 29#description p { 30 margin-bottom: 0.5em; 31} 32 33.sectiontitle { 34 margin-top: 1em; 35 margin-bottom: 1em; 36 padding: 0.5em; 37 padding-left: 2em; 38 background: #005; 39 color: #FFF; 40 font-weight: bold; 41 border: 1px dotted black; 42} 43 44.attr-rw { 45 padding-left: 1em; 46 padding-right: 1em; 47 text-align: center; 48 color: #055; 49} 50 51.attr-name { 52 font-weight: bold; 53} 54 55.attr-desc { 56} 57 58.attr-value { 59 font-family: monospace; 60} 61 62.file-title-prefix { 63 font-size: large; 64} 65 66.file-title { 67 font-size: large; 68 font-weight: bold; 69 background: #005; 70 color: #FFF; 71} 72 73.banner { 74 background: #005; 75 color: #FFF; 76 border: 1px solid black; 77 padding: 1em; 78} 79 80.banner td { 81 background: transparent; 82 color: #FFF; 83} 84 85h1 a, h2 a, .sectiontitle a, .banner a { 86 color: #FF0; 87} 88 89h1 a:hover, h2 a:hover, .sectiontitle a:hover, .banner a:hover { 90 color: #FF7; 91} 92 93.dyn-source { 94 display: none; 95 background: #FFE; 96 color: #000; 97 border: 1px dotted black; 98 margin: 0.5em 2em 0.5em 2em; 99 padding: 0.5em; 100} 101 102.dyn-source .cmt { 103 color: #00F; 104 font-style: italic; 105} 106 107.dyn-source .kw { 108 color: #070; 109 font-weight: bold; 110} 111 112.method { 113 margin-left: 1em; 114 margin-right: 1em; 115 margin-bottom: 1em; 116} 117 118.description pre { 119 padding: 0.5em; 120 border: 1px dotted black; 121 background: #FFE; 122} 123 124.method .title { 125 font-family: monospace; 126 font-size: large; 127 border-bottom: 1px dashed black; 128 margin-bottom: 0.3em; 129 padding-bottom: 0.1em; 130} 131 132.method .description, .method .sourcecode { 133 margin-left: 1em; 134} 135 136.description p, .sourcecode p { 137 margin-bottom: 0.5em; 138} 139 140.method .sourcecode p.source-link { 141 text-indent: 0em; 142 margin-top: 0.5em; 143} 144 145.method .aka { 146 margin-top: 0.3em; 147 margin-left: 1em; 148 font-style: italic; 149 text-indent: 2em; 150} 151 152h1 { 153 padding: 1em; 154 border: 1px solid black; 155 font-size: x-large; 156 font-weight: bold; 157 color: #FFF; 158 background: #007; 159} 160 161h2 { 162 padding: 0.5em 1em 0.5em 1em; 163 border: 1px solid black; 164 font-size: large; 165 font-weight: bold; 166 color: #FFF; 167 background: #009; 168} 169 170h3, h4, h5, h6 { 171 padding: 0.2em 1em 0.2em 1em; 172 border: 1px dashed black; 173 color: #000; 174 background: #AAF; 175} 176 177.sourcecode > pre { 178 padding: 0.5em; 179 border: 1px dotted black; 180 background: #FFE; 181} 182 183CSS 184 185XHTML_PREAMBLE = %{<?xml version="1.0" encoding="%charset%"?> 186<!DOCTYPE html 187 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 188 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 189} 190 191HEADER = XHTML_PREAMBLE + <<ENDHEADER 192<html> 193 <head> 194 <title>%title%</title> 195 <meta http-equiv="Content-Type" content="text/html; charset=%charset%" /> 196 <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" /> 197 198 <script language="JavaScript" type="text/javascript"> 199 // <![CDATA[ 200 201 function toggleSource( id ) 202 { 203 var elem 204 var link 205 206 if( document.getElementById ) 207 { 208 elem = document.getElementById( id ) 209 link = document.getElementById( "l_" + id ) 210 } 211 else if ( document.all ) 212 { 213 elem = eval( "document.all." + id ) 214 link = eval( "document.all.l_" + id ) 215 } 216 else 217 return false; 218 219 if( elem.style.display == "block" ) 220 { 221 elem.style.display = "none" 222 link.innerHTML = "show source" 223 } 224 else 225 { 226 elem.style.display = "block" 227 link.innerHTML = "hide source" 228 } 229 } 230 231 function openCode( url ) 232 { 233 window.open( url, "SOURCE_CODE", "width=400,height=400,scrollbars=yes" ) 234 } 235 // ]]> 236 </script> 237 </head> 238 239 <body> 240ENDHEADER 241 242FILE_PAGE = <<HTML 243<table border='0' cellpadding='0' cellspacing='0' width="100%" class='banner'> 244 <tr><td> 245 <table width="100%" border='0' cellpadding='0' cellspacing='0'><tr> 246 <td class="file-title" colspan="2"><span class="file-title-prefix">File</span><br />%short_name%</td> 247 <td align="right"> 248 <table border='0' cellspacing="0" cellpadding="2"> 249 <tr> 250 <td>Path:</td> 251 <td>%full_path% 252IF:cvsurl 253 (<a href="%cvsurl%">CVS</a>) 254ENDIF:cvsurl 255 </td> 256 </tr> 257 <tr> 258 <td>Modified:</td> 259 <td>%dtm_modified%</td> 260 </tr> 261 </table> 262 </td></tr> 263 </table> 264 </td></tr> 265</table><br> 266HTML 267 268################################################################### 269 270CLASS_PAGE = <<HTML 271<table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr> 272 <td class="file-title"><span class="file-title-prefix">%classmod%</span><br />%full_name%</td> 273 <td align="right"> 274 <table cellspacing=0 cellpadding=2> 275 <tr valign="top"> 276 <td>In:</td> 277 <td> 278START:infiles 279HREF:full_path_url:full_path: 280IF:cvsurl 281 (<a href="%cvsurl%">CVS</a>) 282ENDIF:cvsurl 283END:infiles 284 </td> 285 </tr> 286IF:parent 287 <tr> 288 <td>Parent:</td> 289 <td> 290IF:par_url 291 <a href="%par_url%"> 292ENDIF:par_url 293%parent% 294IF:par_url 295 </a> 296ENDIF:par_url 297 </td> 298 </tr> 299ENDIF:parent 300 </table> 301 </td> 302 </tr> 303 </table> 304HTML 305 306################################################################### 307 308METHOD_LIST = <<HTML 309 <div id="content"> 310IF:diagram 311 <table cellpadding='0' cellspacing='0' border='0' width="100%"><tr><td align="center"> 312 %diagram% 313 </td></tr></table> 314ENDIF:diagram 315 316IF:description 317 <div class="description">%description%</div> 318ENDIF:description 319 320IF:requires 321 <div class="sectiontitle">Required Files</div> 322 <ul> 323START:requires 324 <li>HREF:aref:name:</li> 325END:requires 326 </ul> 327ENDIF:requires 328 329IF:toc 330 <div class="sectiontitle">Contents</div> 331 <ul> 332START:toc 333 <li><a href="#%href%">%secname%</a></li> 334END:toc 335 </ul> 336ENDIF:toc 337 338IF:methods 339 <div class="sectiontitle">Methods</div> 340 <ul> 341START:methods 342 <li>HREF:aref:name:</li> 343END:methods 344 </ul> 345ENDIF:methods 346 347IF:includes 348<div class="sectiontitle">Included Modules</div> 349<ul> 350START:includes 351 <li>HREF:aref:name:</li> 352END:includes 353</ul> 354ENDIF:includes 355 356START:sections 357IF:sectitle 358<div class="sectiontitle"><a nem="%secsequence%">%sectitle%</a></div> 359IF:seccomment 360<div class="description"> 361%seccomment% 362</div> 363ENDIF:seccomment 364ENDIF:sectitle 365 366IF:classlist 367 <div class="sectiontitle">Classes and Modules</div> 368 %classlist% 369ENDIF:classlist 370 371IF:constants 372 <div class="sectiontitle">Constants</div> 373 <table border='0' cellpadding='5'> 374START:constants 375 <tr valign='top'> 376 <td class="attr-name">%name%</td> 377 <td>=</td> 378 <td class="attr-value">%value%</td> 379 </tr> 380IF:desc 381 <tr valign='top'> 382 <td> </td> 383 <td colspan="2" class="attr-desc">%desc%</td> 384 </tr> 385ENDIF:desc 386END:constants 387 </table> 388ENDIF:constants 389 390IF:attributes 391 <div class="sectiontitle">Attributes</div> 392 <table border='0' cellpadding='5'> 393START:attributes 394 <tr valign='top'> 395 <td class='attr-rw'> 396IF:rw 397[%rw%] 398ENDIF:rw 399 </td> 400 <td class='attr-name'>%name%</td> 401 <td class='attr-desc'>%a_desc%</td> 402 </tr> 403END:attributes 404 </table> 405ENDIF:attributes 406 407IF:method_list 408START:method_list 409IF:methods 410<div class="sectiontitle">%type% %category% methods</div> 411START:methods 412<div class="method"> 413 <div class="title"> 414IF:callseq 415 <a name="%aref%"></a><b>%callseq%</b> 416ENDIF:callseq 417IFNOT:callseq 418 <a name="%aref%"></a><b>%name%</b>%params% 419ENDIF:callseq 420IF:codeurl 421[ <a href="javascript:openCode('%codeurl%')">source</a> ] 422ENDIF:codeurl 423 </div> 424IF:m_desc 425 <div class="description"> 426 %m_desc% 427 </div> 428ENDIF:m_desc 429IF:aka 430<div class="aka"> 431 This method is also aliased as 432START:aka 433 <a href="%aref%">%name%</a> 434END:aka 435</div> 436ENDIF:aka 437IF:sourcecode 438<div class="sourcecode"> 439 <p class="source-link">[ <a href="javascript:toggleSource('%aref%_source')" id="l_%aref%_source">show source</a> ]</p> 440 <div id="%aref%_source" class="dyn-source"> 441<pre> 442%sourcecode% 443</pre> 444 </div> 445</div> 446ENDIF:sourcecode 447</div> 448END:methods 449ENDIF:methods 450END:method_list 451ENDIF:method_list 452END:sections 453</div> 454HTML 455 456FOOTER = <<ENDFOOTER 457 </body> 458</html> 459ENDFOOTER 460 461BODY = HEADER + <<ENDBODY 462 !INCLUDE! <!-- banner header --> 463 464 <div id="bodyContent"> 465 #{METHOD_LIST} 466 </div> 467 468 #{FOOTER} 469ENDBODY 470 471########################## Source code ########################## 472 473SRC_PAGE = XHTML_PREAMBLE + <<HTML 474<html> 475<head><title>%title%</title> 476<meta http-equiv="Content-Type" content="text/html; charset=%charset%"> 477<style> 478.ruby-comment { color: green; font-style: italic } 479.ruby-constant { color: #4433aa; font-weight: bold; } 480.ruby-identifier { color: #222222; } 481.ruby-ivar { color: #2233dd; } 482.ruby-keyword { color: #3333FF; font-weight: bold } 483.ruby-node { color: #777777; } 484.ruby-operator { color: #111111; } 485.ruby-regexp { color: #662222; } 486.ruby-value { color: #662222; font-style: italic } 487 .kw { color: #3333FF; font-weight: bold } 488 .cmt { color: green; font-style: italic } 489 .str { color: #662222; font-style: italic } 490 .re { color: #662222; } 491</style> 492</head> 493<body bgcolor="white"> 494<pre>%code%</pre> 495</body> 496</html> 497HTML 498 499########################## Index ################################ 500 501FR_INDEX_BODY = <<HTML 502!INCLUDE! 503HTML 504 505FILE_INDEX = XHTML_PREAMBLE + <<HTML 506<html> 507<head> 508<meta http-equiv="Content-Type" content="text/html; charset=%charset%"> 509<style> 510<!-- 511 body { 512 background-color: #EEE; 513 font-family: #{FONTS}; 514 color: #000; 515 margin: 0px; 516 } 517 .banner { 518 background: #005; 519 color: #FFF; 520 padding: 0.2em; 521 font-size: small; 522 font-weight: bold; 523 text-align: center; 524 } 525 .entries { 526 margin: 0.25em 1em 0 1em; 527 font-size: x-small; 528 } 529 a { 530 color: #00F; 531 text-decoration: none; 532 white-space: nowrap; 533 } 534 a:hover { 535 color: #77F; 536 text-decoration: underline; 537 } 538--> 539</style> 540<base target="docwin"> 541</head> 542<body> 543<div class="banner">%list_title%</div> 544<div class="entries"> 545START:entries 546<a href="%href%">%name%</a><br> 547END:entries 548</div> 549</body></html> 550HTML 551 552CLASS_INDEX = FILE_INDEX 553METHOD_INDEX = FILE_INDEX 554 555INDEX = XHTML_PREAMBLE + <<HTML 556<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 557<head> 558 <title>%title%</title> 559 <meta http-equiv="Content-Type" content="text/html; charset=%charset%"> 560</head> 561 562<frameset cols="20%,*"> 563 <frameset rows="15%,35%,50%"> 564 <frame src="fr_file_index.html" title="Files" name="Files" /> 565 <frame src="fr_class_index.html" name="Classes" /> 566 <frame src="fr_method_index.html" name="Methods" /> 567 </frameset> 568IF:inline_source 569 <frame src="%initial_page%" name="docwin"> 570ENDIF:inline_source 571IFNOT:inline_source 572 <frameset rows="80%,20%"> 573 <frame src="%initial_page%" name="docwin"> 574 <frame src="blank.html" name="source"> 575 </frameset> 576ENDIF:inline_source 577 <noframes> 578 <body bgcolor="white"> 579 Click <a href="html/index.html">here</a> for a non-frames 580 version of this page. 581 </body> 582 </noframes> 583</frameset> 584 585</html> 586HTML 587 588end 589end 590 591 592