@@ -8,10 +8,11 @@ @; without any warranty. @(require "scribble-helpers.rkt") @(require (for-label "../pollen.rkt" "../dust.rkt" + "../crystalize.rkt" racket/base racket/contract racket/string txexpr pollen/tag @@ -112,10 +113,18 @@ @deftogether[(@defproc[(section [element xexpr?] ...) txexpr?] @defproc[(subsection [element xexpr?] ...) txexpr?])] Create second- and third-level headings, respectively. This is counting the article's title as the first-level header (even if the current article has no title). + +@defproc[(block [element xexpr?] ...) txexpr?] + +A container for content that should appear grouped together on larger displays. Intended for use in +Series pages, where the template is very minimal. You would want output from +@racket[listing<>-short/articles] to appear inside a @racket[block], but you would want output from +@racket[listing<>-full/articles] to appear outside it (since each article effectively supplies its own +block). Only relevant to HTML output. @deftogether[(@defproc[(link [link-id stringish?] [link-text xexpr?]) txexpr?] @defproc[(url [link-id stringish?] [url string?]) void?])] All hyperlinks are specified reference-style. So, to link some text, use the @code{link} tag with @@ -154,10 +163,46 @@ The @code{fndef} for a given id may be placed anywhere in the source document, even before it is referenced. If you create a @code{fn} reference without a corresponding @code{fndef}, a @code{"Missing footnote definition!"} message will be substituted for the footnote text. Conversely, creating a @code{fndef} that is never referenced will produce no output, warning or error. + +@deftogether[(@defproc[(dialogue [elements xexpr?] ...) txexpr?] + @defproc[(say [interlocutor string?] [elements xexpr?] ...) txexpr?])] + +Use these two tags together for transcripts of dialogue, chats, screenplays, interviews and so +forth. + +Example usage: + +@codeblock|{ + #lang pollen + + ◊dialogue{ + ◊say["Tavi"]{You also write fiction, or you used to. Do you still?} + ◊say["Lorde"]{The thing is, when I write now, it comes out as songs.} + } +}| + +@defproc[(index [heading string?] [elements xexpr?] ...) txexpr?] + +Creates an entry in the keyword index under @racket[_heading] that points back to this spot in the +document. If @racket[_elements] is not empty, the web edition of the document will use it as the +contents of an understated hyperlink to back to @racket[_heading] in the keyword index. + +The example below will create two index entries, one under the heading “compassion” and one under +the heading “cats”: + +@codeblock|{ + #lang pollen + + “I have a theory which I suspect is rather immoral,” Smiley + went on, more lightly. “Each of us has only a quantum of + ◊index["compassion"]{compassion}. That if we lavish our concern + on every stray ◊index["cats"] cat we never get to the centre of + things. What do you think of it?” +}| @defproc[(note [#:date date-str non-empty-string?] [#:author author string? ""] [#:author-url author-url string? ""] [#:disposition disp-str string? ""]) txexpr?]