yarg
parent
389e747a22
commit
8ba138f904
@ -1,5 +1,5 @@
|
|||||||
#lang info
|
#lang info
|
||||||
(define collection "pollen")
|
(define collection "pollen")
|
||||||
(define scribblings '(("scribblings/pollen.scrbl" ())))
|
(define deps '("base" "txexpr" "sugar" "markdown"))
|
||||||
(define deps '("txexpr" "sugar" "markdown"))
|
(define scribblings '(("scribblings/pollen.scrbl" (multi-page))))
|
||||||
(define raco-commands '(("pollen" pollen/raco "issue Pollen command" #f)))
|
(define raco-commands '(("pollen" pollen/raco "issue Pollen command" #f)))
|
||||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +0,0 @@
|
|||||||
("e75cf147374040c56edeac268f5dda22cf5c1eed6eb5d8a20b6d442e464cf51b60b0a5d5f4455c21" "d254075c05457c01c06f66fe1127a0dcd1283a1501bbf38a9466c5049c70b336a8d450d3f7d8c21d" "9b27b710bee743bf46119a21b53cc8f4221c65f3")
|
|
@ -1,2 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>Acknowledgments</title><link rel="stylesheet" type="text/css" href="scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-racket.css" title="default"/><script type="text/javascript" src="scribble-common.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="scribble-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;">•</td><td></td><td><a href="file:///Users/MB/git/pollen/scribblings/acknowledgments.html" class="tocviewselflink" data-pltdoc="x">Acknowledgments</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._.Acknowledgments%29" class="tocsubseclink" data-pltdoc="x">Acknowledgments</a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="versionNoNav">6.0.0.5</span></div><h2><a name="(part._.Acknowledgments)"></a>Acknowledgments</h2><p>One curious aspect of free software is that you can appropriate the benefits of other people’s work while making it look like your own. No such legerdemain here. Whatever effort I’ve put into Pollen is dwarfed by the epic accomplishments of the Racket development team. I thank all of them — especially <a href="https://www.cs.utah.edu/~mflatt/">Matthew Flatt</a>, <a href="http://faculty.cs.byu.edu/~jay/home/">Jay McCarthy</a>, and <a href="http://www.ccs.neu.edu/home/matthias/">Matthias Felleisen</a> — for making this tremendous tool available, for adding several features I suggested, and for patiently answering my dumb questions over the months.</p><p>But the best tools do more than get the job done. They create an incentive to undertake jobs you wouldn’t have attempted before. Racket encouraged me to become a better programmer so I could create Pollen. Likewise, I hope that Pollen encourages you to make things you couldn’t before.</p><p>MB</p></div></div><div id="contextindicator"> </div></body></html>
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,308 +0,0 @@
|
|||||||
/* See the beginning of "manual.css". */
|
|
||||||
|
|
||||||
/* Monospace: */
|
|
||||||
|
|
||||||
.RktIn, .RktRdr, .RktPn, .RktMeta,
|
|
||||||
.RktMod, .RktKw, .RktVar, .RktSym,
|
|
||||||
.RktRes, .RktOut, .RktCmt, .RktVal,
|
|
||||||
.RktBlk, .RktErr {
|
|
||||||
font-family: 'Source Code Pro', monospace;
|
|
||||||
white-space: inherit;
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this selctor grabs the first linked Racket symbol
|
|
||||||
in a definition box (i.e., the symbol being defined) */
|
|
||||||
a.RktValDef, a.RktStxDef, a.RktSymDef,
|
|
||||||
span.RktValDef, span.RktStxDef, span.RktSymDef
|
|
||||||
{
|
|
||||||
font-size: 1.15rem;
|
|
||||||
color: black;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.inheritedlbl {
|
|
||||||
font-family: 'Fira', sans;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RBackgroundLabelInner {
|
|
||||||
font-family: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Inherited methods, left margin */
|
|
||||||
|
|
||||||
.inherited {
|
|
||||||
width: 95%;
|
|
||||||
margin-top: 0.5em;
|
|
||||||
text-align: left;
|
|
||||||
background-color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inherited td {
|
|
||||||
font-size: 82%;
|
|
||||||
padding-left: 0.5rem;
|
|
||||||
line-height: 1.3;
|
|
||||||
text-indent: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inheritedlbl {
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Racket text styles */
|
|
||||||
|
|
||||||
.RktIn {
|
|
||||||
color: #cc6633;
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktInBG {
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.refcolumn .RktInBG {
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktRdr {
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktPn {
|
|
||||||
color: #843c24;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktMeta {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktMod {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktOpt {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktKw {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktErr {
|
|
||||||
color: red;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktVar {
|
|
||||||
position: relative;
|
|
||||||
left: -1px; font-style: italic;
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SVInsetFlow .RktVar {
|
|
||||||
font-weight: 400;
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.RktSym {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.RktValLink, .RktStxLink, .RktModLink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: #07A;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* for syntax links within headings */
|
|
||||||
h2 a.RktStxLink, h3 a.RktStxLink, h4 a.RktStxLink, h5 a.RktStxLink,
|
|
||||||
h2 a.RktValLink, h3 a.RktValLink, h4 a.RktValLink, h5 a.RktValLink,
|
|
||||||
h2 .RktSym, h3 .RktSym, h4 .RktSym, h5 .RktSym,
|
|
||||||
h2 .RktMod, h3 .RktMod, h4 .RktMod, h5 .RktMod,
|
|
||||||
h2 .RktVal, h3 .RktVal, h4 .RktVal, h5 .RktVal,
|
|
||||||
h2 .RktPn, h3 .RktPn, h4 .RktPn, h5 .RktPn {
|
|
||||||
color: #333;
|
|
||||||
font-size: 1.65rem;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toptoclink .RktStxLink, .toclink .RktStxLink,
|
|
||||||
.toptoclink .RktValLink, .toclink .RktValLink,
|
|
||||||
.toptoclink .RktModLink, .toclink .RktModLink {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocset .RktValLink, .tocset .RktStxLink, .tocset .RktModLink {
|
|
||||||
color: black;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocset td a.tocviewselflink .RktValLink,
|
|
||||||
.tocset td a.tocviewselflink .RktStxLink,
|
|
||||||
.tocset td a.tocviewselflink .RktMod,
|
|
||||||
.tocset td a.tocviewselflink .RktSym {
|
|
||||||
font-weight: lighter;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.RktRes {
|
|
||||||
color: #0000af;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktOut {
|
|
||||||
color: #960096;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktCmt {
|
|
||||||
color: #c2741f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktVal {
|
|
||||||
color: #228b22;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Some inline styles */
|
|
||||||
|
|
||||||
.together { /* for definitions grouped together in one box */
|
|
||||||
width: 100%;
|
|
||||||
border-top: 2px solid white;
|
|
||||||
}
|
|
||||||
|
|
||||||
tbody > tr:first-child > td > .together {
|
|
||||||
border-top: 0px; /* erase border on first instance of together */
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktBlk {
|
|
||||||
white-space: pre;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.highlighted {
|
|
||||||
font-size: 1rem;
|
|
||||||
background-color: #fee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.defmodule {
|
|
||||||
font-family: 'Source Code Pro';
|
|
||||||
padding: 0.25rem 0.75rem 0.25rem 0.5rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
width: 100%;
|
|
||||||
background-color: hsl(60, 29%, 94%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.defmodule a {
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.defmodule td span.hspace:first-child {
|
|
||||||
position: absolute;
|
|
||||||
width: 0;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.defmodule .RpackageSpec .Smaller,
|
|
||||||
.defmodule .RpackageSpec .stt {
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.specgrammar {
|
|
||||||
float: none;
|
|
||||||
padding-left: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.RBibliography td {
|
|
||||||
vertical-align: text-top;
|
|
||||||
padding-top: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leftindent {
|
|
||||||
margin-left: 2rem;
|
|
||||||
margin-right: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.insetpara {
|
|
||||||
margin-left: 1em;
|
|
||||||
margin-right: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SCodeFlow .Rfilebox {
|
|
||||||
margin-left: -1em; /* see 17.2 of guide, module languages */
|
|
||||||
}
|
|
||||||
|
|
||||||
.Rfiletitle {
|
|
||||||
text-align: right;
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SCodeFlow .Rfiletitle {
|
|
||||||
border-top: 1px dotted gray;
|
|
||||||
border-right: 1px dotted gray;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.Rfilename {
|
|
||||||
border-top: 0;
|
|
||||||
border-right: 0;
|
|
||||||
padding-left: 0.5em;
|
|
||||||
padding-right: 0.5em;
|
|
||||||
background-color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Rfilecontent {
|
|
||||||
margin: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RpackageSpec {
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* For background labels */
|
|
||||||
|
|
||||||
.RBackgroundLabel {
|
|
||||||
float: right;
|
|
||||||
width: 0px;
|
|
||||||
height: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RBackgroundLabelInner {
|
|
||||||
position: relative;
|
|
||||||
width: 25em;
|
|
||||||
left: -25.5em;
|
|
||||||
top: 0.20rem; /* sensitive to monospaced font choice */
|
|
||||||
text-align: right;
|
|
||||||
z-index: 0;
|
|
||||||
font-weight: 300;
|
|
||||||
font-family: 'Source Code Pro';
|
|
||||||
font-size: 0.9rem;
|
|
||||||
color: gray;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.RpackageSpec .Smaller {
|
|
||||||
font-weight: 300;
|
|
||||||
font-family: 'Source Code Pro';
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RForeground {
|
|
||||||
position: relative;
|
|
||||||
left: 0px;
|
|
||||||
top: 0px;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>2 Acknowledgments</title><link rel="stylesheet" type="text/css" href="scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-racket.css" title="default"/><script type="text/javascript" src="scribble-common.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="scribble-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">▼</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">Pollen:<span class="mywbr"> </span> the book is a program</a></td></tr></table></div><div class="tocviewsublistonly" style="display: block;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="Installation.html" class="tocviewlink" data-pltdoc="x">Installation</a></td></tr><tr><td align="right">2 </td><td><a href="Acknowledgments.html" class="tocviewselflink" data-pltdoc="x">Acknowledgments</a></td></tr><tr><td align="right">3 </td><td><a href="Quick_start.html" class="tocviewlink" data-pltdoc="x">Quick start</a></td></tr><tr><td align="right">4 </td><td><a href="Why_I_made_Pollen.html" class="tocviewlink" data-pltdoc="x">Why I made Pollen</a></td></tr><tr><td align="right">5 </td><td><a href="Source_formats.html" class="tocviewlink" data-pltdoc="x">Source formats</a></td></tr><tr><td align="right">6 </td><td><a href="reader.html" class="tocviewlink" data-pltdoc="x">◊ command overview</a></td></tr><tr><td align="right">7 </td><td><a href="Module_reference.html" class="tocviewlink" data-pltdoc="x">Module reference</a></td></tr><tr><td align="right">8 </td><td><a href="License___source_code.html" class="tocviewlink" data-pltdoc="x">License & source code</a></td></tr></table></div></div></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="version">6.0.0.5</span></div><div class="navsettop"><span class="navleft"> </span><span class="navright"> <a href="Installation.html" title="backward to "1 Installation"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "Pollen: the book is a program"" data-pltdoc="x">up</a> <a href="Quick_start.html" title="forward to "3 Quick start"" data-pltdoc="x">next →</a></span> </div><h3>2<tt> </tt><a name="(part._.Acknowledgments)"></a>Acknowledgments</h3><p>One curious aspect of free software is that you can appropriate the benefits of other people’s work while making it look like your own. No such legerdemain here. Whatever effort I’ve put into Pollen is dwarfed by the epic accomplishments of the Racket development team. I thank all of them — especially <a href="https://www.cs.utah.edu/~mflatt/">Matthew Flatt</a>, <a href="http://faculty.cs.byu.edu/~jay/home/">Jay McCarthy</a>, and <a href="http://www.ccs.neu.edu/home/matthias/">Matthias Felleisen</a> — for making this tremendous tool available, for adding several features I suggested, and for patiently answering my dumb questions over the months.</p><p>But the best tools do more than get the job done. They create an incentive to undertake jobs you wouldn’t have attempted before. Racket encouraged me to become a better programmer so I could create Pollen. Likewise, I hope that Pollen encourages you to make things you couldn’t before.</p><p>Thank you to Greg Hendershott for his Markdown parser.</p><p>MB</p><div class="navsetbottom"><span class="navleft"> </span><span class="navright"> <a href="Installation.html" title="backward to "1 Installation"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "Pollen: the book is a program"" data-pltdoc="x">up</a> <a href="Quick_start.html" title="forward to "3 Quick start"" data-pltdoc="x">next →</a></span> </div></div></div><div id="contextindicator"> </div></body></html>
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,4 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>1 Installation</title><link rel="stylesheet" type="text/css" href="scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-racket.css" title="default"/><script type="text/javascript" src="scribble-common.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="scribble-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">▼</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">Pollen:<span class="mywbr"> </span> the book is a program</a></td></tr></table></div><div class="tocviewsublistonly" style="display: block;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="Installation.html" class="tocviewselflink" data-pltdoc="x">Installation</a></td></tr><tr><td align="right">2 </td><td><a href="Acknowledgments.html" class="tocviewlink" data-pltdoc="x">Acknowledgments</a></td></tr><tr><td align="right">3 </td><td><a href="Quick_start.html" class="tocviewlink" data-pltdoc="x">Quick start</a></td></tr><tr><td align="right">4 </td><td><a href="Why_I_made_Pollen.html" class="tocviewlink" data-pltdoc="x">Why I made Pollen</a></td></tr><tr><td align="right">5 </td><td><a href="Source_formats.html" class="tocviewlink" data-pltdoc="x">Source formats</a></td></tr><tr><td align="right">6 </td><td><a href="reader.html" class="tocviewlink" data-pltdoc="x">◊ command overview</a></td></tr><tr><td align="right">7 </td><td><a href="Module_reference.html" class="tocviewlink" data-pltdoc="x">Module reference</a></td></tr><tr><td align="right">8 </td><td><a href="License___source_code.html" class="tocviewlink" data-pltdoc="x">License & source code</a></td></tr></table></div></div></div></div><div class="maincolumn"><div class="main"><div class="navsettop"><span class="navleft"> </span><span class="navright"> <a href="index.html" title="backward to "Pollen: the book is a program"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "Pollen: the book is a program"" data-pltdoc="x">up</a> <a href="Acknowledgments.html" title="forward to "2 Acknowledgments"" data-pltdoc="x">next →</a></span> </div><h3>1<tt> </tt><a name="(part._.Installation)"></a>Installation</h3><p>Install Racket, which includes DrRacket.</p><p><div class="SIntrapara">Install Pollen from the command line:
|
|
||||||
</div><div class="SIntrapara"><table cellspacing="0"><tr><td><p><span class="stt">raco pkg install pollen</span></p></td></tr></table></div></p><p><div class="SIntrapara">After that, you can update the package from the command line:
|
|
||||||
</div><div class="SIntrapara"><table cellspacing="0"><tr><td><p><span class="stt">raco pkg update pollen</span></p></td></tr></table></div></p><div class="navsetbottom"><span class="navleft"> </span><span class="navright"> <a href="index.html" title="backward to "Pollen: the book is a program"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "Pollen: the book is a program"" data-pltdoc="x">up</a> <a href="Acknowledgments.html" title="forward to "2 Acknowledgments"" data-pltdoc="x">next →</a></span> </div></div></div><div id="contextindicator"> </div></body></html>
|
|
@ -1,2 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
||||||
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>8 License & source code</title><link rel="stylesheet" type="text/css" href="scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-racket.css" title="default"/><script type="text/javascript" src="scribble-common.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="scribble-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,"tocview_0");">▼</a></td><td></td><td><a href="index.html" class="tocviewlink" data-pltdoc="x">Pollen:<span class="mywbr"> </span> the book is a program</a></td></tr></table></div><div class="tocviewsublistonly" style="display: block;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1 </td><td><a href="Installation.html" class="tocviewlink" data-pltdoc="x">Installation</a></td></tr><tr><td align="right">2 </td><td><a href="Acknowledgments.html" class="tocviewlink" data-pltdoc="x">Acknowledgments</a></td></tr><tr><td align="right">3 </td><td><a href="Quick_start.html" class="tocviewlink" data-pltdoc="x">Quick start</a></td></tr><tr><td align="right">4 </td><td><a href="Why_I_made_Pollen.html" class="tocviewlink" data-pltdoc="x">Why I made Pollen</a></td></tr><tr><td align="right">5 </td><td><a href="Source_formats.html" class="tocviewlink" data-pltdoc="x">Source formats</a></td></tr><tr><td align="right">6 </td><td><a href="reader.html" class="tocviewlink" data-pltdoc="x">◊ command overview</a></td></tr><tr><td align="right">7 </td><td><a href="Module_reference.html" class="tocviewlink" data-pltdoc="x">Module reference</a></td></tr><tr><td align="right">8 </td><td><a href="License___source_code.html" class="tocviewselflink" data-pltdoc="x">License & source code</a></td></tr></table></div></div></div></div><div class="maincolumn"><div class="main"><div class="navsettop"><span class="navleft"> </span><span class="navright"> <a href="World.html" title="backward to "7.9 World"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "Pollen: the book is a program"" data-pltdoc="x">up</a> <span class="nonavigation">next →</span></span> </div><h3>8<tt> </tt><a name="(part._.License___source_code)"></a>License & source code</h3><p>This module is licensed under the LGPL.</p><p>Source repository at <a href="http://github.com/mbutterick/pollen">http://github.com/mbutterick/pollen</a>. Suggestions & corrections welcome.</p><div class="navsetbottom"><span class="navleft"> </span><span class="navright"> <a href="World.html" title="backward to "7.9 World"" data-pltdoc="x">← prev</a> <a href="index.html" title="up to "Pollen: the book is a program"" data-pltdoc="x">up</a> <span class="nonavigation">next →</span></span> </div></div></div><div id="contextindicator"> </div></body></html>
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,308 +0,0 @@
|
|||||||
/* See the beginning of "manual.css". */
|
|
||||||
|
|
||||||
/* Monospace: */
|
|
||||||
|
|
||||||
.RktIn, .RktRdr, .RktPn, .RktMeta,
|
|
||||||
.RktMod, .RktKw, .RktVar, .RktSym,
|
|
||||||
.RktRes, .RktOut, .RktCmt, .RktVal,
|
|
||||||
.RktBlk, .RktErr {
|
|
||||||
font-family: 'Source Code Pro', monospace;
|
|
||||||
white-space: inherit;
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this selctor grabs the first linked Racket symbol
|
|
||||||
in a definition box (i.e., the symbol being defined) */
|
|
||||||
a.RktValDef, a.RktStxDef, a.RktSymDef,
|
|
||||||
span.RktValDef, span.RktStxDef, span.RktSymDef
|
|
||||||
{
|
|
||||||
font-size: 1.15rem;
|
|
||||||
color: black;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.inheritedlbl {
|
|
||||||
font-family: 'Fira', sans;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RBackgroundLabelInner {
|
|
||||||
font-family: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Inherited methods, left margin */
|
|
||||||
|
|
||||||
.inherited {
|
|
||||||
width: 95%;
|
|
||||||
margin-top: 0.5em;
|
|
||||||
text-align: left;
|
|
||||||
background-color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inherited td {
|
|
||||||
font-size: 82%;
|
|
||||||
padding-left: 0.5rem;
|
|
||||||
line-height: 1.3;
|
|
||||||
text-indent: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inheritedlbl {
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Racket text styles */
|
|
||||||
|
|
||||||
.RktIn {
|
|
||||||
color: #cc6633;
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktInBG {
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.refcolumn .RktInBG {
|
|
||||||
background-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktRdr {
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktPn {
|
|
||||||
color: #843c24;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktMeta {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktMod {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktOpt {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktKw {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktErr {
|
|
||||||
color: red;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktVar {
|
|
||||||
position: relative;
|
|
||||||
left: -1px; font-style: italic;
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SVInsetFlow .RktVar {
|
|
||||||
font-weight: 400;
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.RktSym {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.RktValLink, .RktStxLink, .RktModLink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: #07A;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* for syntax links within headings */
|
|
||||||
h2 a.RktStxLink, h3 a.RktStxLink, h4 a.RktStxLink, h5 a.RktStxLink,
|
|
||||||
h2 a.RktValLink, h3 a.RktValLink, h4 a.RktValLink, h5 a.RktValLink,
|
|
||||||
h2 .RktSym, h3 .RktSym, h4 .RktSym, h5 .RktSym,
|
|
||||||
h2 .RktMod, h3 .RktMod, h4 .RktMod, h5 .RktMod,
|
|
||||||
h2 .RktVal, h3 .RktVal, h4 .RktVal, h5 .RktVal,
|
|
||||||
h2 .RktPn, h3 .RktPn, h4 .RktPn, h5 .RktPn {
|
|
||||||
color: #333;
|
|
||||||
font-size: 1.65rem;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toptoclink .RktStxLink, .toclink .RktStxLink,
|
|
||||||
.toptoclink .RktValLink, .toclink .RktValLink,
|
|
||||||
.toptoclink .RktModLink, .toclink .RktModLink {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocset .RktValLink, .tocset .RktStxLink, .tocset .RktModLink {
|
|
||||||
color: black;
|
|
||||||
font-weight: 400;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocset td a.tocviewselflink .RktValLink,
|
|
||||||
.tocset td a.tocviewselflink .RktStxLink,
|
|
||||||
.tocset td a.tocviewselflink .RktMod,
|
|
||||||
.tocset td a.tocviewselflink .RktSym {
|
|
||||||
font-weight: lighter;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.RktRes {
|
|
||||||
color: #0000af;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktOut {
|
|
||||||
color: #960096;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktCmt {
|
|
||||||
color: #c2741f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktVal {
|
|
||||||
color: #228b22;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Some inline styles */
|
|
||||||
|
|
||||||
.together { /* for definitions grouped together in one box */
|
|
||||||
width: 100%;
|
|
||||||
border-top: 2px solid white;
|
|
||||||
}
|
|
||||||
|
|
||||||
tbody > tr:first-child > td > .together {
|
|
||||||
border-top: 0px; /* erase border on first instance of together */
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktBlk {
|
|
||||||
white-space: pre;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.highlighted {
|
|
||||||
font-size: 1rem;
|
|
||||||
background-color: #fee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.defmodule {
|
|
||||||
font-family: 'Source Code Pro';
|
|
||||||
padding: 0.25rem 0.75rem 0.25rem 0.5rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
width: 100%;
|
|
||||||
background-color: hsl(60, 29%, 94%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.defmodule a {
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.defmodule td span.hspace:first-child {
|
|
||||||
position: absolute;
|
|
||||||
width: 0;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.defmodule .RpackageSpec .Smaller,
|
|
||||||
.defmodule .RpackageSpec .stt {
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.specgrammar {
|
|
||||||
float: none;
|
|
||||||
padding-left: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.RBibliography td {
|
|
||||||
vertical-align: text-top;
|
|
||||||
padding-top: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leftindent {
|
|
||||||
margin-left: 2rem;
|
|
||||||
margin-right: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.insetpara {
|
|
||||||
margin-left: 1em;
|
|
||||||
margin-right: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SCodeFlow .Rfilebox {
|
|
||||||
margin-left: -1em; /* see 17.2 of guide, module languages */
|
|
||||||
}
|
|
||||||
|
|
||||||
.Rfiletitle {
|
|
||||||
text-align: right;
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SCodeFlow .Rfiletitle {
|
|
||||||
border-top: 1px dotted gray;
|
|
||||||
border-right: 1px dotted gray;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.Rfilename {
|
|
||||||
border-top: 0;
|
|
||||||
border-right: 0;
|
|
||||||
padding-left: 0.5em;
|
|
||||||
padding-right: 0.5em;
|
|
||||||
background-color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Rfilecontent {
|
|
||||||
margin: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RpackageSpec {
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* For background labels */
|
|
||||||
|
|
||||||
.RBackgroundLabel {
|
|
||||||
float: right;
|
|
||||||
width: 0px;
|
|
||||||
height: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RBackgroundLabelInner {
|
|
||||||
position: relative;
|
|
||||||
width: 25em;
|
|
||||||
left: -25.5em;
|
|
||||||
top: 0.20rem; /* sensitive to monospaced font choice */
|
|
||||||
text-align: right;
|
|
||||||
z-index: 0;
|
|
||||||
font-weight: 300;
|
|
||||||
font-family: 'Source Code Pro';
|
|
||||||
font-size: 0.9rem;
|
|
||||||
color: gray;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.RpackageSpec .Smaller {
|
|
||||||
font-weight: 300;
|
|
||||||
font-family: 'Source Code Pro';
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RForeground {
|
|
||||||
position: relative;
|
|
||||||
left: 0px;
|
|
||||||
top: 0px;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
@ -1,165 +0,0 @@
|
|||||||
// Common functionality for PLT documentation pages
|
|
||||||
|
|
||||||
// Page Parameters ------------------------------------------------------------
|
|
||||||
|
|
||||||
var page_query_string =
|
|
||||||
(location.href.search(/\?([^#]+)(?:#|$)/) >= 0) && RegExp.$1;
|
|
||||||
|
|
||||||
var page_args =
|
|
||||||
((function(){
|
|
||||||
if (!page_query_string) return [];
|
|
||||||
var args = page_query_string.split(/[&;]/);
|
|
||||||
for (var i=0; i<args.length; i++) {
|
|
||||||
var a = args[i];
|
|
||||||
var p = a.indexOf('=');
|
|
||||||
if (p >= 0) args[i] = [a.substring(0,p), a.substring(p+1)];
|
|
||||||
else args[i] = [a, false];
|
|
||||||
}
|
|
||||||
return args;
|
|
||||||
})());
|
|
||||||
|
|
||||||
function GetPageArg(key, def) {
|
|
||||||
for (var i=0; i<page_args.length; i++)
|
|
||||||
if (page_args[i][0] == key) return unescape(page_args[i][1]);
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
|
|
||||||
function MergePageArgsIntoLink(a) {
|
|
||||||
if (page_args.length == 0 ||
|
|
||||||
(!a.attributes["data-pltdoc"]) || (a.attributes["data-pltdoc"].value == ""))
|
|
||||||
return;
|
|
||||||
a.href.search(/^([^?#]*)(?:\?([^#]*))?(#.*)?$/);
|
|
||||||
if (RegExp.$2.length == 0) {
|
|
||||||
a.href = RegExp.$1 + "?" + page_query_string + RegExp.$3;
|
|
||||||
} else {
|
|
||||||
// need to merge here, precedence to arguments that exist in `a'
|
|
||||||
var i, j;
|
|
||||||
var prefix = RegExp.$1, str = RegExp.$2, suffix = RegExp.$3;
|
|
||||||
var args = str.split(/[&;]/);
|
|
||||||
for (i=0; i<args.length; i++) {
|
|
||||||
j = args[i].indexOf('=');
|
|
||||||
if (j) args[i] = args[i].substring(0,j);
|
|
||||||
}
|
|
||||||
var additions = "";
|
|
||||||
for (i=0; i<page_args.length; i++) {
|
|
||||||
var exists = false;
|
|
||||||
for (j=0; j<args.length; j++)
|
|
||||||
if (args[j] == page_args[i][0]) { exists = true; break; }
|
|
||||||
if (!exists) str += "&" + page_args[i][0] + "=" + page_args[i][1];
|
|
||||||
}
|
|
||||||
a.href = prefix + "?" + str + suffix;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cookies --------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Actually, try localStorage (a la HTML 5), first.
|
|
||||||
|
|
||||||
function GetCookie(key, def) {
|
|
||||||
try {
|
|
||||||
var v = localStorage[key];
|
|
||||||
if (!v) v = def;
|
|
||||||
return v;
|
|
||||||
} catch (e) {
|
|
||||||
var i, cookiestrs;
|
|
||||||
try {
|
|
||||||
if (document.cookie.length <= 0) return def;
|
|
||||||
cookiestrs = document.cookie.split(/; */);
|
|
||||||
} catch (e) { return def; }
|
|
||||||
for (i = 0; i < cookiestrs.length; i++) {
|
|
||||||
var cur = cookiestrs[i];
|
|
||||||
var eql = cur.indexOf('=');
|
|
||||||
if (eql >= 0 && cur.substring(0,eql) == key)
|
|
||||||
return unescape(cur.substring(eql+1));
|
|
||||||
}
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function SetCookie(key, val) {
|
|
||||||
try {
|
|
||||||
localStorage[key] = val;
|
|
||||||
} catch(e) {
|
|
||||||
var d = new Date();
|
|
||||||
d.setTime(d.getTime()+(365*24*60*60*1000));
|
|
||||||
try {
|
|
||||||
document.cookie =
|
|
||||||
key + "=" + escape(val) + "; expires="+ d.toGMTString() + "; path=/";
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// note that this always stores a directory name, ending with a "/"
|
|
||||||
function SetPLTRoot(ver, relative) {
|
|
||||||
var root = location.protocol + "//" + location.host
|
|
||||||
+ NormalizePath(location.pathname.replace(/[^\/]*$/, relative));
|
|
||||||
SetCookie("PLT_Root."+ver, root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// adding index.html works because of the above
|
|
||||||
function GotoPLTRoot(ver, relative) {
|
|
||||||
var u = GetCookie("PLT_Root."+ver, null);
|
|
||||||
if (u == null) return true; // no cookie: use plain up link
|
|
||||||
// the relative path is optional, default goes to the toplevel start page
|
|
||||||
if (!relative) relative = "index.html";
|
|
||||||
location = u + relative;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Utilities ------------------------------------------------------------------
|
|
||||||
|
|
||||||
var normalize_rxs = [/\/\/+/g, /\/\.(\/|$)/, /\/[^\/]*\/\.\.(\/|$)/];
|
|
||||||
function NormalizePath(path) {
|
|
||||||
var tmp, i;
|
|
||||||
for (i = 0; i < normalize_rxs.length; i++)
|
|
||||||
while ((tmp = path.replace(normalize_rxs[i], "/")) != path) path = tmp;
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
// `noscript' is problematic in some browsers (always renders as a
|
|
||||||
// block), use this hack instead (does not always work!)
|
|
||||||
// document.write("<style>mynoscript { display:none; }</style>");
|
|
||||||
|
|
||||||
// Interactions ---------------------------------------------------------------
|
|
||||||
|
|
||||||
function DoSearchKey(event, field, ver, top_path) {
|
|
||||||
var val = field.value;
|
|
||||||
if (event && event.keyCode == 13) {
|
|
||||||
var u = GetCookie("PLT_Root."+ver, null);
|
|
||||||
if (u == null) u = top_path; // default: go to the top path
|
|
||||||
u += "search/index.html?q=" + escape(val);
|
|
||||||
if (page_query_string) u += "&" + page_query_string;
|
|
||||||
location = u;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function TocviewToggle(glyph, id) {
|
|
||||||
var s = document.getElementById(id).style;
|
|
||||||
var expand = s.display == "none";
|
|
||||||
s.display = expand ? "block" : "none";
|
|
||||||
glyph.innerHTML = expand ? "▼" : "►";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Page Init ------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Note: could make a function that inspects and uses window.onload to chain to
|
|
||||||
// a previous one, but this file needs to be required first anyway, since it
|
|
||||||
// contains utilities for all other files.
|
|
||||||
var on_load_funcs = [];
|
|
||||||
function AddOnLoad(fun) { on_load_funcs.push(fun); }
|
|
||||||
window.onload = function() {
|
|
||||||
for (var i=0; i<on_load_funcs.length; i++) on_load_funcs[i]();
|
|
||||||
};
|
|
||||||
|
|
||||||
AddOnLoad(function(){
|
|
||||||
var links = document.getElementsByTagName("a");
|
|
||||||
for (var i=0; i<links.length; i++) MergePageArgsIntoLink(links[i]);
|
|
||||||
var label = GetPageArg("ctxtname",false);
|
|
||||||
if (!label) return;
|
|
||||||
var indicator = document.getElementById("contextindicator");
|
|
||||||
if (!indicator) return;
|
|
||||||
indicator.innerHTML = label;
|
|
||||||
indicator.style.display = "block";
|
|
||||||
});
|
|
@ -1,480 +0,0 @@
|
|||||||
|
|
||||||
/* This file is used by default by all Scribble documents.
|
|
||||||
See also "manual.css", which is added by default by the
|
|
||||||
`scribble/manual` language. */
|
|
||||||
|
|
||||||
/* CSS seems backward: List all the classes for which we want a
|
|
||||||
particular font, so that the font can be changed in one place. (It
|
|
||||||
would be nicer to reference a font definition from all the places
|
|
||||||
that we want it.)
|
|
||||||
|
|
||||||
As you read the rest of the file, remember to double-check here to
|
|
||||||
see if any font is set. */
|
|
||||||
|
|
||||||
/* Monospace: */
|
|
||||||
.maincolumn, .refpara, .refelem, .tocset, .stt, .hspace, .refparaleft, .refelemleft {
|
|
||||||
font-family: monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Serif: */
|
|
||||||
.main, .refcontent, .tocview, .tocsub, .sroman, i {
|
|
||||||
font-family: serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sans-serif: */
|
|
||||||
.version, .versionNoNav, .ssansserif {
|
|
||||||
font-family: sans-serif;
|
|
||||||
}
|
|
||||||
.ssansserif {
|
|
||||||
font-size: 80%;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
|
|
||||||
p, .SIntrapara {
|
|
||||||
display: block;
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 { /* per-page main title */
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3, h4, h5, h6, h7, h8 {
|
|
||||||
margin-top: 1.75em;
|
|
||||||
margin-bottom: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SSubSubSubSection {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 0.83em; /* should match h5; from HTML 4 reference */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Needed for browsers like Opera, and eventually for HTML 4 conformance.
|
|
||||||
This means that multiple paragraphs in a table element do not have a space
|
|
||||||
between them. */
|
|
||||||
table p {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Main */
|
|
||||||
|
|
||||||
body {
|
|
||||||
color: black;
|
|
||||||
background-color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
table td {
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.maincolumn {
|
|
||||||
width: 43em;
|
|
||||||
margin-right: -40em;
|
|
||||||
margin-left: 15em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Navigation */
|
|
||||||
|
|
||||||
.navsettop, .navsetbottom {
|
|
||||||
background-color: #f0f0e0;
|
|
||||||
padding: 0.25em 0 0.25em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navsettop {
|
|
||||||
margin-bottom: 1.5em;
|
|
||||||
border-bottom: 2px solid #e0e0c0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navsetbottom {
|
|
||||||
margin-top: 2em;
|
|
||||||
border-top: 2px solid #e0e0c0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navleft {
|
|
||||||
margin-left: 1ex;
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.navright {
|
|
||||||
margin-right: 1ex;
|
|
||||||
position: relative;
|
|
||||||
float: right;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.nonavigation {
|
|
||||||
color: #e0e0e0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchform {
|
|
||||||
display: inline;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchbox {
|
|
||||||
width: 16em;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
background-color: #eee;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
#contextindicator {
|
|
||||||
position: fixed;
|
|
||||||
background-color: #c6f;
|
|
||||||
color: #000;
|
|
||||||
font-family: monospace;
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 2px 10px;
|
|
||||||
display: none;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Version */
|
|
||||||
|
|
||||||
.versionbox {
|
|
||||||
position: relative;
|
|
||||||
float: right;
|
|
||||||
left: 2em;
|
|
||||||
height: 0em;
|
|
||||||
width: 13em;
|
|
||||||
margin: 0em -13em 0em 0em;
|
|
||||||
}
|
|
||||||
.version {
|
|
||||||
font-size: small;
|
|
||||||
}
|
|
||||||
.versionNoNav {
|
|
||||||
font-size: xx-small; /* avoid overlap with author */
|
|
||||||
}
|
|
||||||
|
|
||||||
.version:before, .versionNoNav:before {
|
|
||||||
content: "Version ";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Margin notes */
|
|
||||||
|
|
||||||
.refpara, .refelem {
|
|
||||||
position: relative;
|
|
||||||
float: right;
|
|
||||||
left: 2em;
|
|
||||||
height: 0em;
|
|
||||||
width: 13em;
|
|
||||||
margin: 0em -13em 0em 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refpara, .refparaleft {
|
|
||||||
top: -1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refcolumn {
|
|
||||||
background-color: #F5F5DC;
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
width: 13em;
|
|
||||||
font-size: 85%;
|
|
||||||
border: 0.5em solid #F5F5DC;
|
|
||||||
margin: 0 0 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refcontent {
|
|
||||||
margin: 0 0 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refcontent p {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refparaleft, .refelemleft {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
right: 2em;
|
|
||||||
height: 0em;
|
|
||||||
width: 13em;
|
|
||||||
margin: 0em 0em 0em -13em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refcolumnleft {
|
|
||||||
background-color: #F5F5DC;
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
width: 13em;
|
|
||||||
font-size: 85%;
|
|
||||||
border: 0.5em solid #F5F5DC;
|
|
||||||
margin: 0 0 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Table of contents, inline */
|
|
||||||
|
|
||||||
.toclink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
font-size: 85%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toptoclink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Table of contents, left margin */
|
|
||||||
|
|
||||||
.tocset {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
width: 12.5em;
|
|
||||||
margin-right: 2em;
|
|
||||||
}
|
|
||||||
.tocset td {
|
|
||||||
vertical-align: text-top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocview {
|
|
||||||
text-align: left;
|
|
||||||
background-color: #f0f0e0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsub {
|
|
||||||
text-align: left;
|
|
||||||
margin-top: 0.5em;
|
|
||||||
background-color: #f0f0e0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewlist, .tocsublist {
|
|
||||||
margin-left: 0.2em;
|
|
||||||
margin-right: 0.2em;
|
|
||||||
padding-top: 0.2em;
|
|
||||||
padding-bottom: 0.2em;
|
|
||||||
}
|
|
||||||
.tocviewlist table {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewlisttopspace {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewsublist, .tocviewsublistonly, .tocviewsublisttop, .tocviewsublistbottom {
|
|
||||||
margin-left: 0.4em;
|
|
||||||
border-left: 1px solid #bbf;
|
|
||||||
padding-left: 0.8em;
|
|
||||||
}
|
|
||||||
.tocviewsublist {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
.tocviewsublist table,
|
|
||||||
.tocviewsublistonly table,
|
|
||||||
.tocviewsublisttop table,
|
|
||||||
.tocviewsublistbottom table {
|
|
||||||
font-size: 75%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewtitle * {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewlink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewselflink {
|
|
||||||
text-decoration: underline;
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewtoggle {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
font-size: 75%; /* looks better, and avoids bounce when toggling sub-sections due to font alignments */
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsublist td {
|
|
||||||
padding-left: 1em;
|
|
||||||
text-indent: -1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsublinknumber {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsublink {
|
|
||||||
font-size: 82%;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsubseclink {
|
|
||||||
font-size: 82%;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsubnonseclink {
|
|
||||||
font-size: 82%;
|
|
||||||
text-decoration: none;
|
|
||||||
padding-left: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsubtitle {
|
|
||||||
font-size: 82%;
|
|
||||||
font-style: italic;
|
|
||||||
margin: 0.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Some inline styles */
|
|
||||||
|
|
||||||
.indexlink {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nobreak {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre { margin-left: 2em; }
|
|
||||||
blockquote { margin-left: 2em; }
|
|
||||||
|
|
||||||
ol { list-style-type: decimal; }
|
|
||||||
ol ol { list-style-type: lower-alpha; }
|
|
||||||
ol ol ol { list-style-type: lower-roman; }
|
|
||||||
ol ol ol ol { list-style-type: upper-alpha; }
|
|
||||||
|
|
||||||
.SCodeFlow {
|
|
||||||
display: block;
|
|
||||||
margin-left: 1em;
|
|
||||||
margin-bottom: 0em;
|
|
||||||
margin-right: 1em;
|
|
||||||
margin-top: 0em;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SVInsetFlow {
|
|
||||||
display: block;
|
|
||||||
margin-left: 0em;
|
|
||||||
margin-bottom: 0em;
|
|
||||||
margin-right: 0em;
|
|
||||||
margin-top: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SubFlow {
|
|
||||||
display: block;
|
|
||||||
margin: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.boxed {
|
|
||||||
width: 100%;
|
|
||||||
background-color: #E8E8FF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hspace {
|
|
||||||
}
|
|
||||||
|
|
||||||
.slant {
|
|
||||||
font-style: oblique;
|
|
||||||
}
|
|
||||||
|
|
||||||
.badlink {
|
|
||||||
text-decoration: underline;
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.plainlink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.techoutside { text-decoration: underline; color: #b0b0b0; }
|
|
||||||
.techoutside:hover { text-decoration: underline; color: blue; }
|
|
||||||
|
|
||||||
/* .techinside:hover doesn't work with FF, .techinside:hover>
|
|
||||||
.techinside doesn't work with IE, so use both (and IE doesn't
|
|
||||||
work with inherit in the second one, so use blue directly) */
|
|
||||||
.techinside { color: black; }
|
|
||||||
.techinside:hover { color: blue; }
|
|
||||||
.techoutside:hover>.techinside { color: inherit; }
|
|
||||||
|
|
||||||
.SCentered {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.imageleft {
|
|
||||||
float: left;
|
|
||||||
margin-right: 0.3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Smaller {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Larger {
|
|
||||||
font-size: 122%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* A hack, inserted to break some Scheme ids: */
|
|
||||||
.mywbr {
|
|
||||||
display: inline-block;
|
|
||||||
height: 0;
|
|
||||||
width: 0;
|
|
||||||
font-size: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.compact li p {
|
|
||||||
margin: 0em;
|
|
||||||
padding: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.noborder img {
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SAuthorListBox {
|
|
||||||
position: relative;
|
|
||||||
float: right;
|
|
||||||
left: 2em;
|
|
||||||
top: -2.5em;
|
|
||||||
height: 0em;
|
|
||||||
width: 13em;
|
|
||||||
margin: 0em -13em 0em 0em;
|
|
||||||
}
|
|
||||||
.SAuthorList {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
.SAuthorList:before {
|
|
||||||
content: "by ";
|
|
||||||
}
|
|
||||||
.author {
|
|
||||||
display: inline;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* print styles : hide the navigation elements */
|
|
||||||
@media print {
|
|
||||||
.tocset,
|
|
||||||
.navsettop,
|
|
||||||
.navsetbottom { display: none; }
|
|
||||||
.maincolumn {
|
|
||||||
width: auto;
|
|
||||||
margin-right: 13em;
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
@ -1,249 +0,0 @@
|
|||||||
|
|
||||||
/* See the beginning of "scribble.css". */
|
|
||||||
|
|
||||||
/* Monospace: */
|
|
||||||
.RktIn, .RktRdr, .RktPn, .RktMeta,
|
|
||||||
.RktMod, .RktKw, .RktVar, .RktSym,
|
|
||||||
.RktRes, .RktOut, .RktCmt, .RktVal,
|
|
||||||
.RktBlk {
|
|
||||||
font-family: monospace;
|
|
||||||
white-space: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Serif: */
|
|
||||||
.inheritedlbl {
|
|
||||||
font-family: serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sans-serif: */
|
|
||||||
.RBackgroundLabelInner {
|
|
||||||
font-family: sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Inherited methods, left margin */
|
|
||||||
|
|
||||||
.inherited {
|
|
||||||
width: 100%;
|
|
||||||
margin-top: 0.5em;
|
|
||||||
text-align: left;
|
|
||||||
background-color: #ECF5F5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inherited td {
|
|
||||||
font-size: 82%;
|
|
||||||
padding-left: 1em;
|
|
||||||
text-indent: -0.8em;
|
|
||||||
padding-right: 0.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inheritedlbl {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Racket text styles */
|
|
||||||
|
|
||||||
.RktIn {
|
|
||||||
color: #cc6633;
|
|
||||||
background-color: #eeeeee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktInBG {
|
|
||||||
background-color: #eeeeee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktRdr {
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktPn {
|
|
||||||
color: #843c24;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktMeta {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktMod {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktOpt {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktKw {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktErr {
|
|
||||||
color: red;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktVar {
|
|
||||||
color: #262680;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktSym {
|
|
||||||
color: #262680;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktSymDef { /* used with RktSym at def site */
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktValLink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktValDef { /* used with RktValLink at def site */
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktModLink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktStxLink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktStxDef { /* used with RktStxLink at def site */
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktRes {
|
|
||||||
color: #0000af;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktOut {
|
|
||||||
color: #960096;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktCmt {
|
|
||||||
color: #c2741f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktVal {
|
|
||||||
color: #228b22;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Some inline styles */
|
|
||||||
|
|
||||||
.together {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.prototype, .argcontract, .RBoxed {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.prototype td {
|
|
||||||
vertical-align: text-top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktBlk {
|
|
||||||
white-space: inherit;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktBlk tr {
|
|
||||||
white-space: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RktBlk td {
|
|
||||||
vertical-align: baseline;
|
|
||||||
white-space: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
.argcontract td {
|
|
||||||
vertical-align: text-top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.highlighted {
|
|
||||||
background-color: #ddddff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.defmodule {
|
|
||||||
width: 100%;
|
|
||||||
background-color: #F5F5DC;
|
|
||||||
}
|
|
||||||
|
|
||||||
.specgrammar {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RBibliography td {
|
|
||||||
vertical-align: text-top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leftindent {
|
|
||||||
margin-left: 1em;
|
|
||||||
margin-right: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.insetpara {
|
|
||||||
margin-left: 1em;
|
|
||||||
margin-right: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Rfilebox {
|
|
||||||
}
|
|
||||||
|
|
||||||
.Rfiletitle {
|
|
||||||
text-align: right;
|
|
||||||
margin: 0em 0em 0em 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Rfilename {
|
|
||||||
border-top: 1px solid #6C8585;
|
|
||||||
border-right: 1px solid #6C8585;
|
|
||||||
padding-left: 0.5em;
|
|
||||||
padding-right: 0.5em;
|
|
||||||
background-color: #ECF5F5;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Rfilecontent {
|
|
||||||
margin: 0em 0em 0em 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RpackageSpec {
|
|
||||||
padding-right: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* For background labels */
|
|
||||||
|
|
||||||
.RBackgroundLabel {
|
|
||||||
float: right;
|
|
||||||
width: 0px;
|
|
||||||
height: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RBackgroundLabelInner {
|
|
||||||
position: relative;
|
|
||||||
width: 25em;
|
|
||||||
left: -25.5em;
|
|
||||||
top: 0px;
|
|
||||||
text-align: right;
|
|
||||||
color: white;
|
|
||||||
z-index: 0;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.RForeground {
|
|
||||||
position: relative;
|
|
||||||
left: 0px;
|
|
||||||
top: 0px;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* History */
|
|
||||||
|
|
||||||
.SHistory {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,165 +0,0 @@
|
|||||||
// Common functionality for PLT documentation pages
|
|
||||||
|
|
||||||
// Page Parameters ------------------------------------------------------------
|
|
||||||
|
|
||||||
var page_query_string =
|
|
||||||
(location.href.search(/\?([^#]+)(?:#|$)/) >= 0) && RegExp.$1;
|
|
||||||
|
|
||||||
var page_args =
|
|
||||||
((function(){
|
|
||||||
if (!page_query_string) return [];
|
|
||||||
var args = page_query_string.split(/[&;]/);
|
|
||||||
for (var i=0; i<args.length; i++) {
|
|
||||||
var a = args[i];
|
|
||||||
var p = a.indexOf('=');
|
|
||||||
if (p >= 0) args[i] = [a.substring(0,p), a.substring(p+1)];
|
|
||||||
else args[i] = [a, false];
|
|
||||||
}
|
|
||||||
return args;
|
|
||||||
})());
|
|
||||||
|
|
||||||
function GetPageArg(key, def) {
|
|
||||||
for (var i=0; i<page_args.length; i++)
|
|
||||||
if (page_args[i][0] == key) return unescape(page_args[i][1]);
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
|
|
||||||
function MergePageArgsIntoLink(a) {
|
|
||||||
if (page_args.length == 0 ||
|
|
||||||
(!a.attributes["data-pltdoc"]) || (a.attributes["data-pltdoc"].value == ""))
|
|
||||||
return;
|
|
||||||
a.href.search(/^([^?#]*)(?:\?([^#]*))?(#.*)?$/);
|
|
||||||
if (RegExp.$2.length == 0) {
|
|
||||||
a.href = RegExp.$1 + "?" + page_query_string + RegExp.$3;
|
|
||||||
} else {
|
|
||||||
// need to merge here, precedence to arguments that exist in `a'
|
|
||||||
var i, j;
|
|
||||||
var prefix = RegExp.$1, str = RegExp.$2, suffix = RegExp.$3;
|
|
||||||
var args = str.split(/[&;]/);
|
|
||||||
for (i=0; i<args.length; i++) {
|
|
||||||
j = args[i].indexOf('=');
|
|
||||||
if (j) args[i] = args[i].substring(0,j);
|
|
||||||
}
|
|
||||||
var additions = "";
|
|
||||||
for (i=0; i<page_args.length; i++) {
|
|
||||||
var exists = false;
|
|
||||||
for (j=0; j<args.length; j++)
|
|
||||||
if (args[j] == page_args[i][0]) { exists = true; break; }
|
|
||||||
if (!exists) str += "&" + page_args[i][0] + "=" + page_args[i][1];
|
|
||||||
}
|
|
||||||
a.href = prefix + "?" + str + suffix;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cookies --------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Actually, try localStorage (a la HTML 5), first.
|
|
||||||
|
|
||||||
function GetCookie(key, def) {
|
|
||||||
try {
|
|
||||||
var v = localStorage[key];
|
|
||||||
if (!v) v = def;
|
|
||||||
return v;
|
|
||||||
} catch (e) {
|
|
||||||
var i, cookiestrs;
|
|
||||||
try {
|
|
||||||
if (document.cookie.length <= 0) return def;
|
|
||||||
cookiestrs = document.cookie.split(/; */);
|
|
||||||
} catch (e) { return def; }
|
|
||||||
for (i = 0; i < cookiestrs.length; i++) {
|
|
||||||
var cur = cookiestrs[i];
|
|
||||||
var eql = cur.indexOf('=');
|
|
||||||
if (eql >= 0 && cur.substring(0,eql) == key)
|
|
||||||
return unescape(cur.substring(eql+1));
|
|
||||||
}
|
|
||||||
return def;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function SetCookie(key, val) {
|
|
||||||
try {
|
|
||||||
localStorage[key] = val;
|
|
||||||
} catch(e) {
|
|
||||||
var d = new Date();
|
|
||||||
d.setTime(d.getTime()+(365*24*60*60*1000));
|
|
||||||
try {
|
|
||||||
document.cookie =
|
|
||||||
key + "=" + escape(val) + "; expires="+ d.toGMTString() + "; path=/";
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// note that this always stores a directory name, ending with a "/"
|
|
||||||
function SetPLTRoot(ver, relative) {
|
|
||||||
var root = location.protocol + "//" + location.host
|
|
||||||
+ NormalizePath(location.pathname.replace(/[^\/]*$/, relative));
|
|
||||||
SetCookie("PLT_Root."+ver, root);
|
|
||||||
}
|
|
||||||
|
|
||||||
// adding index.html works because of the above
|
|
||||||
function GotoPLTRoot(ver, relative) {
|
|
||||||
var u = GetCookie("PLT_Root."+ver, null);
|
|
||||||
if (u == null) return true; // no cookie: use plain up link
|
|
||||||
// the relative path is optional, default goes to the toplevel start page
|
|
||||||
if (!relative) relative = "index.html";
|
|
||||||
location = u + relative;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Utilities ------------------------------------------------------------------
|
|
||||||
|
|
||||||
var normalize_rxs = [/\/\/+/g, /\/\.(\/|$)/, /\/[^\/]*\/\.\.(\/|$)/];
|
|
||||||
function NormalizePath(path) {
|
|
||||||
var tmp, i;
|
|
||||||
for (i = 0; i < normalize_rxs.length; i++)
|
|
||||||
while ((tmp = path.replace(normalize_rxs[i], "/")) != path) path = tmp;
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
// `noscript' is problematic in some browsers (always renders as a
|
|
||||||
// block), use this hack instead (does not always work!)
|
|
||||||
// document.write("<style>mynoscript { display:none; }</style>");
|
|
||||||
|
|
||||||
// Interactions ---------------------------------------------------------------
|
|
||||||
|
|
||||||
function DoSearchKey(event, field, ver, top_path) {
|
|
||||||
var val = field.value;
|
|
||||||
if (event && event.keyCode == 13) {
|
|
||||||
var u = GetCookie("PLT_Root."+ver, null);
|
|
||||||
if (u == null) u = top_path; // default: go to the top path
|
|
||||||
u += "search/index.html?q=" + escape(val);
|
|
||||||
if (page_query_string) u += "&" + page_query_string;
|
|
||||||
location = u;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
function TocviewToggle(glyph, id) {
|
|
||||||
var s = document.getElementById(id).style;
|
|
||||||
var expand = s.display == "none";
|
|
||||||
s.display = expand ? "block" : "none";
|
|
||||||
glyph.innerHTML = expand ? "▼" : "►";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Page Init ------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Note: could make a function that inspects and uses window.onload to chain to
|
|
||||||
// a previous one, but this file needs to be required first anyway, since it
|
|
||||||
// contains utilities for all other files.
|
|
||||||
var on_load_funcs = [];
|
|
||||||
function AddOnLoad(fun) { on_load_funcs.push(fun); }
|
|
||||||
window.onload = function() {
|
|
||||||
for (var i=0; i<on_load_funcs.length; i++) on_load_funcs[i]();
|
|
||||||
};
|
|
||||||
|
|
||||||
AddOnLoad(function(){
|
|
||||||
var links = document.getElementsByTagName("a");
|
|
||||||
for (var i=0; i<links.length; i++) MergePageArgsIntoLink(links[i]);
|
|
||||||
var label = GetPageArg("ctxtname",false);
|
|
||||||
if (!label) return;
|
|
||||||
var indicator = document.getElementById("contextindicator");
|
|
||||||
if (!indicator) return;
|
|
||||||
indicator.innerHTML = label;
|
|
||||||
indicator.style.display = "block";
|
|
||||||
});
|
|
@ -1,480 +0,0 @@
|
|||||||
|
|
||||||
/* This file is used by default by all Scribble documents.
|
|
||||||
See also "manual.css", which is added by default by the
|
|
||||||
`scribble/manual` language. */
|
|
||||||
|
|
||||||
/* CSS seems backward: List all the classes for which we want a
|
|
||||||
particular font, so that the font can be changed in one place. (It
|
|
||||||
would be nicer to reference a font definition from all the places
|
|
||||||
that we want it.)
|
|
||||||
|
|
||||||
As you read the rest of the file, remember to double-check here to
|
|
||||||
see if any font is set. */
|
|
||||||
|
|
||||||
/* Monospace: */
|
|
||||||
.maincolumn, .refpara, .refelem, .tocset, .stt, .hspace, .refparaleft, .refelemleft {
|
|
||||||
font-family: monospace;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Serif: */
|
|
||||||
.main, .refcontent, .tocview, .tocsub, .sroman, i {
|
|
||||||
font-family: serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sans-serif: */
|
|
||||||
.version, .versionNoNav, .ssansserif {
|
|
||||||
font-family: sans-serif;
|
|
||||||
}
|
|
||||||
.ssansserif {
|
|
||||||
font-size: 80%;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
|
|
||||||
p, .SIntrapara {
|
|
||||||
display: block;
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 { /* per-page main title */
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3, h4, h5, h6, h7, h8 {
|
|
||||||
margin-top: 1.75em;
|
|
||||||
margin-bottom: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SSubSubSubSection {
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 0.83em; /* should match h5; from HTML 4 reference */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Needed for browsers like Opera, and eventually for HTML 4 conformance.
|
|
||||||
This means that multiple paragraphs in a table element do not have a space
|
|
||||||
between them. */
|
|
||||||
table p {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Main */
|
|
||||||
|
|
||||||
body {
|
|
||||||
color: black;
|
|
||||||
background-color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
table td {
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.maincolumn {
|
|
||||||
width: 43em;
|
|
||||||
margin-right: -40em;
|
|
||||||
margin-left: 15em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Navigation */
|
|
||||||
|
|
||||||
.navsettop, .navsetbottom {
|
|
||||||
background-color: #f0f0e0;
|
|
||||||
padding: 0.25em 0 0.25em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navsettop {
|
|
||||||
margin-bottom: 1.5em;
|
|
||||||
border-bottom: 2px solid #e0e0c0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navsetbottom {
|
|
||||||
margin-top: 2em;
|
|
||||||
border-top: 2px solid #e0e0c0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navleft {
|
|
||||||
margin-left: 1ex;
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.navright {
|
|
||||||
margin-right: 1ex;
|
|
||||||
position: relative;
|
|
||||||
float: right;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.nonavigation {
|
|
||||||
color: #e0e0e0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchform {
|
|
||||||
display: inline;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searchbox {
|
|
||||||
width: 16em;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px;
|
|
||||||
background-color: #eee;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
#contextindicator {
|
|
||||||
position: fixed;
|
|
||||||
background-color: #c6f;
|
|
||||||
color: #000;
|
|
||||||
font-family: monospace;
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 2px 10px;
|
|
||||||
display: none;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Version */
|
|
||||||
|
|
||||||
.versionbox {
|
|
||||||
position: relative;
|
|
||||||
float: right;
|
|
||||||
left: 2em;
|
|
||||||
height: 0em;
|
|
||||||
width: 13em;
|
|
||||||
margin: 0em -13em 0em 0em;
|
|
||||||
}
|
|
||||||
.version {
|
|
||||||
font-size: small;
|
|
||||||
}
|
|
||||||
.versionNoNav {
|
|
||||||
font-size: xx-small; /* avoid overlap with author */
|
|
||||||
}
|
|
||||||
|
|
||||||
.version:before, .versionNoNav:before {
|
|
||||||
content: "Version ";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Margin notes */
|
|
||||||
|
|
||||||
.refpara, .refelem {
|
|
||||||
position: relative;
|
|
||||||
float: right;
|
|
||||||
left: 2em;
|
|
||||||
height: 0em;
|
|
||||||
width: 13em;
|
|
||||||
margin: 0em -13em 0em 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refpara, .refparaleft {
|
|
||||||
top: -1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refcolumn {
|
|
||||||
background-color: #F5F5DC;
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
width: 13em;
|
|
||||||
font-size: 85%;
|
|
||||||
border: 0.5em solid #F5F5DC;
|
|
||||||
margin: 0 0 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refcontent {
|
|
||||||
margin: 0 0 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refcontent p {
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refparaleft, .refelemleft {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
right: 2em;
|
|
||||||
height: 0em;
|
|
||||||
width: 13em;
|
|
||||||
margin: 0em 0em 0em -13em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refcolumnleft {
|
|
||||||
background-color: #F5F5DC;
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
width: 13em;
|
|
||||||
font-size: 85%;
|
|
||||||
border: 0.5em solid #F5F5DC;
|
|
||||||
margin: 0 0 0 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Table of contents, inline */
|
|
||||||
|
|
||||||
.toclink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
font-size: 85%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toptoclink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Table of contents, left margin */
|
|
||||||
|
|
||||||
.tocset {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
width: 12.5em;
|
|
||||||
margin-right: 2em;
|
|
||||||
}
|
|
||||||
.tocset td {
|
|
||||||
vertical-align: text-top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocview {
|
|
||||||
text-align: left;
|
|
||||||
background-color: #f0f0e0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsub {
|
|
||||||
text-align: left;
|
|
||||||
margin-top: 0.5em;
|
|
||||||
background-color: #f0f0e0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewlist, .tocsublist {
|
|
||||||
margin-left: 0.2em;
|
|
||||||
margin-right: 0.2em;
|
|
||||||
padding-top: 0.2em;
|
|
||||||
padding-bottom: 0.2em;
|
|
||||||
}
|
|
||||||
.tocviewlist table {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewlisttopspace {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewsublist, .tocviewsublistonly, .tocviewsublisttop, .tocviewsublistbottom {
|
|
||||||
margin-left: 0.4em;
|
|
||||||
border-left: 1px solid #bbf;
|
|
||||||
padding-left: 0.8em;
|
|
||||||
}
|
|
||||||
.tocviewsublist {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
.tocviewsublist table,
|
|
||||||
.tocviewsublistonly table,
|
|
||||||
.tocviewsublisttop table,
|
|
||||||
.tocviewsublistbottom table {
|
|
||||||
font-size: 75%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewtitle * {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewlink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewselflink {
|
|
||||||
text-decoration: underline;
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocviewtoggle {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
font-size: 75%; /* looks better, and avoids bounce when toggling sub-sections due to font alignments */
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsublist td {
|
|
||||||
padding-left: 1em;
|
|
||||||
text-indent: -1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsublinknumber {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsublink {
|
|
||||||
font-size: 82%;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsubseclink {
|
|
||||||
font-size: 82%;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsubnonseclink {
|
|
||||||
font-size: 82%;
|
|
||||||
text-decoration: none;
|
|
||||||
padding-left: 0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tocsubtitle {
|
|
||||||
font-size: 82%;
|
|
||||||
font-style: italic;
|
|
||||||
margin: 0.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ---------------------------------------- */
|
|
||||||
/* Some inline styles */
|
|
||||||
|
|
||||||
.indexlink {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nobreak {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre { margin-left: 2em; }
|
|
||||||
blockquote { margin-left: 2em; }
|
|
||||||
|
|
||||||
ol { list-style-type: decimal; }
|
|
||||||
ol ol { list-style-type: lower-alpha; }
|
|
||||||
ol ol ol { list-style-type: lower-roman; }
|
|
||||||
ol ol ol ol { list-style-type: upper-alpha; }
|
|
||||||
|
|
||||||
.SCodeFlow {
|
|
||||||
display: block;
|
|
||||||
margin-left: 1em;
|
|
||||||
margin-bottom: 0em;
|
|
||||||
margin-right: 1em;
|
|
||||||
margin-top: 0em;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SVInsetFlow {
|
|
||||||
display: block;
|
|
||||||
margin-left: 0em;
|
|
||||||
margin-bottom: 0em;
|
|
||||||
margin-right: 0em;
|
|
||||||
margin-top: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SubFlow {
|
|
||||||
display: block;
|
|
||||||
margin: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.boxed {
|
|
||||||
width: 100%;
|
|
||||||
background-color: #E8E8FF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hspace {
|
|
||||||
}
|
|
||||||
|
|
||||||
.slant {
|
|
||||||
font-style: oblique;
|
|
||||||
}
|
|
||||||
|
|
||||||
.badlink {
|
|
||||||
text-decoration: underline;
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.plainlink {
|
|
||||||
text-decoration: none;
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
.techoutside { text-decoration: underline; color: #b0b0b0; }
|
|
||||||
.techoutside:hover { text-decoration: underline; color: blue; }
|
|
||||||
|
|
||||||
/* .techinside:hover doesn't work with FF, .techinside:hover>
|
|
||||||
.techinside doesn't work with IE, so use both (and IE doesn't
|
|
||||||
work with inherit in the second one, so use blue directly) */
|
|
||||||
.techinside { color: black; }
|
|
||||||
.techinside:hover { color: blue; }
|
|
||||||
.techoutside:hover>.techinside { color: inherit; }
|
|
||||||
|
|
||||||
.SCentered {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.imageleft {
|
|
||||||
float: left;
|
|
||||||
margin-right: 0.3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Smaller {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Larger {
|
|
||||||
font-size: 122%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* A hack, inserted to break some Scheme ids: */
|
|
||||||
.mywbr {
|
|
||||||
display: inline-block;
|
|
||||||
height: 0;
|
|
||||||
width: 0;
|
|
||||||
font-size: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.compact li p {
|
|
||||||
margin: 0em;
|
|
||||||
padding: 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.noborder img {
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.SAuthorListBox {
|
|
||||||
position: relative;
|
|
||||||
float: right;
|
|
||||||
left: 2em;
|
|
||||||
top: -2.5em;
|
|
||||||
height: 0em;
|
|
||||||
width: 13em;
|
|
||||||
margin: 0em -13em 0em 0em;
|
|
||||||
}
|
|
||||||
.SAuthorList {
|
|
||||||
font-size: 82%;
|
|
||||||
}
|
|
||||||
.SAuthorList:before {
|
|
||||||
content: "by ";
|
|
||||||
}
|
|
||||||
.author {
|
|
||||||
display: inline;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* print styles : hide the navigation elements */
|
|
||||||
@media print {
|
|
||||||
.tocset,
|
|
||||||
.navsettop,
|
|
||||||
.navsetbottom { display: none; }
|
|
||||||
.maincolumn {
|
|
||||||
width: auto;
|
|
||||||
margin-right: 13em;
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@
|
|||||||
#lang pollen
|
|
||||||
|
|
||||||
This is sample 01.
|
|
@ -1,3 +0,0 @@
|
|||||||
#lang pollen
|
|
||||||
|
|
||||||
This is sample-02.
|
|
@ -1 +0,0 @@
|
|||||||
This is sample-03.
|
|
@ -1,104 +0,0 @@
|
|||||||
#lang racket/base
|
|
||||||
|
|
||||||
(module+ test (require rackunit "../file.rkt" "../world.rkt" sugar))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-true (sourceish? "foo.svg"))
|
|
||||||
(check-false (sourceish? "foo.gif")))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-true (urlish? (->path "/Users/MB/home.html")))
|
|
||||||
(check-true (urlish? "/Users/MB/home.html?foo=bar"))
|
|
||||||
(check-true (urlish? (->symbol "/Users/MB/home"))))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-true (pathish? (->path "/Users/MB/home")))
|
|
||||||
(check-true (pathish? "/Users/MB/home"))
|
|
||||||
(check-true (pathish? (->symbol "/Users/MB/home"))))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-true (directories-equal? "/Users/MB/foo" "/Users/MB/foo/"))
|
|
||||||
(check-false (directories-equal? "/Users/MB/foo" "Users/MB/foo")))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-equal? (get-enclosing-dir "/Users/MB/foo.txt") (->path "/Users/MB/"))
|
|
||||||
(check-equal? (get-enclosing-dir "/Users/MB/foo/") (->path "/Users/MB/")))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-true (has-binary-ext? "foo.MP3"))
|
|
||||||
(check-false (has-binary-ext? "foo.py")))
|
|
||||||
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(define foo-path-strings '("foo" "foo.txt" "foo.bar" "foo.bar.txt"))
|
|
||||||
(define-values (foo-path foo.txt-path foo.bar-path foo.bar.txt-path)
|
|
||||||
(apply values (map ->path foo-path-strings)))
|
|
||||||
;; test the sample paths before using them for other tests
|
|
||||||
(define foo-paths (list foo-path foo.txt-path foo.bar-path foo.bar.txt-path))
|
|
||||||
(for-each check-equal? (map ->string foo-paths) foo-path-strings))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-false (has-ext? foo-path 'txt))
|
|
||||||
(check-true (foo.txt-path . has-ext? . 'txt))
|
|
||||||
(check-true ((->path "foo.TXT") . has-ext? . 'txt))
|
|
||||||
(check-true (has-ext? foo.bar.txt-path 'txt))
|
|
||||||
(check-false (foo.bar.txt-path . has-ext? . 'doc))) ; wrong extension
|
|
||||||
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-equal? (get-ext (->path "foo.txt")) "txt")
|
|
||||||
(check-false (get-ext "foo")))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-equal? (add-ext (string->path "foo") "txt") (string->path "foo.txt")))
|
|
||||||
(module+ test
|
|
||||||
(check-equal? (remove-ext foo-path) foo-path)
|
|
||||||
(check-equal? (remove-ext (->path ".foo.txt")) (->path ".foo.txt"))
|
|
||||||
(check-equal? (remove-ext foo.txt-path) foo-path)
|
|
||||||
(check-equal? (remove-ext foo.bar.txt-path) foo.bar-path)
|
|
||||||
(check-not-equal? (remove-ext foo.bar.txt-path) foo-path)) ; does not remove all extensions
|
|
||||||
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-equal? (remove-all-ext foo-path) foo-path)
|
|
||||||
(check-equal? (remove-all-ext foo.txt-path) foo-path)
|
|
||||||
(check-equal? (remove-all-ext (->path ".foo.txt")) (->path ".foo.txt"))
|
|
||||||
(check-not-equal? (remove-all-ext foo.bar.txt-path) foo.bar-path) ; removes more than one ext
|
|
||||||
(check-equal? (remove-all-ext foo.bar.txt-path) foo-path))
|
|
||||||
(module+ test
|
|
||||||
(check-true (preproc-source? "foo.p"))
|
|
||||||
(check-false (preproc-source? "foo.bar"))
|
|
||||||
(check-false (preproc-source? #f)))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-true (pagetree-source? (format "foo.~a" world:pagetree-source-ext)))
|
|
||||||
(check-false (pagetree-source? (format "~a.foo" world:pagetree-source-ext)))
|
|
||||||
(check-false (pagetree-source? #f)))
|
|
||||||
(module+ test
|
|
||||||
(check-true (markup-source? "foo.pm"))
|
|
||||||
(check-false (markup-source? "foo.p"))
|
|
||||||
(check-false (markup-source? #f)))
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-true (template-source? "foo.html.pt"))
|
|
||||||
(check-false (template-source? "foo.html"))
|
|
||||||
(check-false (template-source? #f)))
|
|
||||||
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-equal? (->preproc-source-path (->path "foo.p")) (->path "foo.p"))
|
|
||||||
(check-equal? (->preproc-source-path (->path "foo.html")) (->path "foo.html.p"))
|
|
||||||
(check-equal? (->preproc-source-path "foo") (->path "foo.p"))
|
|
||||||
(check-equal? (->preproc-source-path 'foo) (->path "foo.p")))
|
|
||||||
(module+ test
|
|
||||||
(check-equal? (->output-path (->path "foo.pmap")) (->path "foo.pmap"))
|
|
||||||
(check-equal? (->output-path "foo.html") (->path "foo.html"))
|
|
||||||
(check-equal? (->output-path 'foo.html.p) (->path "foo.html"))
|
|
||||||
(check-equal? (->output-path (->path "/Users/mb/git/foo.html.p")) (->path "/Users/mb/git/foo.html"))
|
|
||||||
(check-equal? (->output-path "foo.xml.p") (->path "foo.xml"))
|
|
||||||
(check-equal? (->output-path 'foo.barml.p) (->path "foo.barml")))
|
|
||||||
(module+ test
|
|
||||||
(check-equal? (->markup-source-path (->path "foo.pm")) (->path "foo.pm"))
|
|
||||||
(check-equal? (->markup-source-path (->path "foo.html")) (->path "foo.html.pm"))
|
|
||||||
(check-equal? (->markup-source-path "foo") (->path "foo.pm"))
|
|
||||||
(check-equal? (->markup-source-path 'foo) (->path "foo.pm")))
|
|
@ -1,56 +0,0 @@
|
|||||||
#lang racket/base
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(module test-default pollen
|
|
||||||
"hello world")
|
|
||||||
|
|
||||||
(require (prefix-in default: 'test-default))
|
|
||||||
|
|
||||||
default:doc ; should be "hello world"
|
|
||||||
|
|
||||||
|
|
||||||
(module test-pre pollen/pre
|
|
||||||
"hello world")
|
|
||||||
|
|
||||||
(require (prefix-in pre: 'test-pre))
|
|
||||||
|
|
||||||
pre:doc ; should be "hello world"
|
|
||||||
|
|
||||||
|
|
||||||
(module test-markup pollen/markup
|
|
||||||
"hello world")
|
|
||||||
|
|
||||||
(require (prefix-in markup: 'test-markup))
|
|
||||||
|
|
||||||
markup:doc ; should be '(root "hello world")
|
|
||||||
|
|
||||||
(module test-markdown pollen/markdown
|
|
||||||
"hello world")
|
|
||||||
|
|
||||||
(require (prefix-in markdown: 'test-markdown))
|
|
||||||
|
|
||||||
markdown:doc ; should be '(root (p "hello world"))
|
|
||||||
|
|
||||||
|
|
||||||
(module test-ptree pollen/ptree
|
|
||||||
'(index (brother sister)))
|
|
||||||
|
|
||||||
(require (prefix-in ptree: 'test-ptree))
|
|
||||||
|
|
||||||
ptree:doc ; should be '(pagetree-root (index (brother sister)))
|
|
||||||
|
|
||||||
|
|
||||||
(begin
|
|
||||||
(require racket/rerequire)
|
|
||||||
(dynamic-rerequire (string->path "/Users/mb/git/bpt/test.html.pm") #:verbosity 'reload)
|
|
||||||
(dynamic-require (string->path "/Users/mb/git/bpt/test.html.pm") 'doc))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(eval
|
|
||||||
'(begin
|
|
||||||
(require racket/rerequire)
|
|
||||||
(dynamic-rerequire (string->path "/Users/mb/git/bpt/test.html.pm") #:verbosity 'reload)
|
|
||||||
(dynamic-require (string->path "/Users/mb/git/bpt/test.html.pm") 'doc)) (make-base-namespace))
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
|||||||
#lang racket/base
|
|
||||||
(require rackunit)
|
|
||||||
(require "../pagetree.rkt" "../world.rkt")
|
|
||||||
|
|
||||||
|
|
||||||
(check-false (pagenode? "foo-bar"))
|
|
||||||
(check-false (pagenode? "Foo_Bar_0123"))
|
|
||||||
(check-true (pagenode? 'foo-bar))
|
|
||||||
(check-false (pagenode? "foo-bar.p"))
|
|
||||||
(check-false (pagenode? "/Users/MB/foo-bar"))
|
|
||||||
(check-false (pagenode? #f))
|
|
||||||
(check-false (pagenode? ""))
|
|
||||||
(check-false (pagenode? " "))
|
|
||||||
|
|
||||||
(check-true (pagetree? '(foo)))
|
|
||||||
(check-true (pagetree? '(foo (hee))))
|
|
||||||
(check-true (pagetree? '(foo (hee (uncle foo)))))
|
|
||||||
(check-false (pagetree? '(foo (hee hee (uncle foo)))))
|
|
||||||
|
|
||||||
|
|
||||||
(define test-pagetree-main `(pagetree-main foo bar (one (two three))))
|
|
||||||
(define test-pagetree (pagetree-root->pagetree test-pagetree-main))
|
|
||||||
(check-equal? (parent 'three test-pagetree) 'two)
|
|
||||||
(check-equal? (parent "three" test-pagetree) 'two)
|
|
||||||
(check-false (parent #f test-pagetree))
|
|
||||||
(check-false (parent 'nonexistent-name test-pagetree))
|
|
||||||
|
|
||||||
|
|
||||||
(check-equal? (children 'one test-pagetree) '(two))
|
|
||||||
(check-equal? (children 'two test-pagetree) '(three))
|
|
||||||
(check-false (children 'three test-pagetree))
|
|
||||||
(check-false (children #f test-pagetree))
|
|
||||||
(check-false (children 'fooburger test-pagetree))
|
|
||||||
|
|
||||||
(check-equal? (siblings 'one test-pagetree) '(foo bar one))
|
|
||||||
(check-equal? (siblings 'foo test-pagetree) '(foo bar one))
|
|
||||||
(check-equal? (siblings 'two test-pagetree) '(two))
|
|
||||||
(check-false (siblings #f test-pagetree))
|
|
||||||
(check-false (siblings 'invalid-key test-pagetree))
|
|
||||||
|
|
||||||
(check-equal? (previous* 'one test-pagetree) '(foo bar))
|
|
||||||
(check-equal? (previous* 'three test-pagetree) '(foo bar one two))
|
|
||||||
(check-false (previous* 'foo test-pagetree))
|
|
||||||
|
|
||||||
(check-equal? (previous 'one test-pagetree) 'bar)
|
|
||||||
(check-equal? (previous 'three test-pagetree) 'two)
|
|
||||||
(check-false (previous 'foo test-pagetree))
|
|
||||||
|
|
||||||
(check-equal? (next 'foo test-pagetree) 'bar)
|
|
||||||
(check-equal? (next 'one test-pagetree) 'two)
|
|
||||||
(check-false (next 'three test-pagetree))
|
|
||||||
|
|
||||||
(check-equal? (pagetree->list test-pagetree) '(foo bar one two three))
|
|
||||||
|
|
||||||
|
|
||||||
(let ([sample-main `(world:pollen-tree-root-name foo bar (one (two three)))])
|
|
||||||
(check-equal? (pagetree-root->pagetree sample-main)
|
|
||||||
`(world:pollen-tree-root-name foo bar (one (two three)))))
|
|
||||||
|
|
||||||
(define files '("foo.html" "bar.html" "bar.html.p" "zap.html" "zap.xml"))
|
|
||||||
(check-equal? (pagenode->url/paths 'foo.html files) "foo.html")
|
|
||||||
(check-equal? (pagenode->url/paths 'bar.html files) "bar.html")
|
|
||||||
;; (check-equal? (name->url 'zap files) 'error) ;; todo: how to test error?
|
|
||||||
(check-false (pagenode->url/paths 'hee files))
|
|
||||||
|
|
||||||
|
|
||||||
(set! test-pagetree-main `(,world:pagetree-root-node foo bar (one (two three))))
|
|
||||||
(check-equal? (pagetree-root->pagetree test-pagetree-main)
|
|
||||||
`(,world:pagetree-root-node foo bar (one (two three))))
|
|
@ -1,24 +0,0 @@
|
|||||||
#lang racket/base
|
|
||||||
(require rackunit)
|
|
||||||
(require "../render.rkt")
|
|
||||||
(require/expose "../render.rkt" (modification-date-hash))
|
|
||||||
|
|
||||||
(check-pred hash? modification-date-hash)
|
|
||||||
|
|
||||||
(define sample-dir (string->path "samples"))
|
|
||||||
(define samples (parameterize ([current-directory sample-dir])
|
|
||||||
(map path->complete-path (directory-list "."))))
|
|
||||||
(define-values (sample-01 sample-02 sample-03) (apply values samples))
|
|
||||||
|
|
||||||
(check-equal? (make-mod-dates-key samples) samples)
|
|
||||||
|
|
||||||
(check-false (path->mod-date-value (path->complete-path "garbage-path.zzz")))
|
|
||||||
(check-equal? (path->mod-date-value sample-01) (file-or-directory-modify-seconds sample-01))
|
|
||||||
|
|
||||||
(check-equal? (store-render-in-modification-dates sample-01 sample-02 sample-03) (void))
|
|
||||||
(check-true (hash-has-key? modification-date-hash (list sample-01 sample-02 sample-03)))
|
|
||||||
|
|
||||||
(check-true (modification-date-expired? sample-01)) ; because key hasn't been stored
|
|
||||||
(check-false (apply modification-date-expired? samples)) ; because files weren't changed
|
|
||||||
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
#lang racket/base
|
|
||||||
(require rackunit racket/path pollen/cache pollen/file)
|
|
||||||
(require "../template.rkt")
|
|
||||||
|
|
||||||
|
|
||||||
(check-equal? (put '(foo "bar")) '(foo "bar"))
|
|
||||||
(check-equal? (put "tests/template/put.pd")
|
|
||||||
'(root "\n" "\n" (em "One") " paragraph" "\n" "\n" "Another " (em "paragraph") "\n" "\n"))
|
|
||||||
|
|
||||||
|
|
||||||
(module+ test
|
|
||||||
(check-false (puttable-item? #t))
|
|
||||||
(check-false (puttable-item? #f)))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(parameterize ([current-directory "tests/template"])
|
|
||||||
(check-false (find "nonexistent-key" "put"))
|
|
||||||
(check-equal? (find "foo" "put") "bar")
|
|
||||||
(check-equal? (find "em" "put") "One"))
|
|
||||||
(check-equal? (find "foo" #f) #f)
|
|
||||||
|
|
||||||
(parameterize ([current-directory "tests/template"])
|
|
||||||
(check-equal? (find-in-metas "put" "foo") (list "bar"))
|
|
||||||
(let* ([metas (cached-require (->markup-source-path 'put) 'metas)]
|
|
||||||
[here (find-in-metas 'put 'here)])
|
|
||||||
(check-equal? here (list "tests/template/put"))))
|
|
||||||
|
|
||||||
|
|
||||||
(parameterize ([current-directory "tests/template"])
|
|
||||||
(check-false (find-in-doc "put" "nonexistent-key"))
|
|
||||||
(check-equal? (find-in-doc "put" "em") (list "One" "paragraph")))
|
|
||||||
|
|
||||||
(check-equal? (splice '(p "foo" "bar")) (list "foo" "bar"))
|
|
||||||
(check-equal? (splice (list "foo" "bar")) (list "foo" "bar"))
|
|
||||||
(check-equal? (splice "foo") (list "foo"))
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue