|
Packit |
e20b97 |
;; $Id: dbinline.dsl,v 1.11 2004/09/14 14:47:10 petere78 Exp $
|
|
Packit |
e20b97 |
;;
|
|
Packit |
e20b97 |
;; This file is part of the Modular DocBook Stylesheet distribution.
|
|
Packit |
e20b97 |
;; See ../README or http://docbook.sourceforge.net/projects/dsssl/
|
|
Packit |
e20b97 |
;;
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
;; ============================== INLINES ===============================
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element abbrev (if %html40%
|
|
Packit |
e20b97 |
($abbr-seq$)
|
|
Packit |
e20b97 |
($charseq$)))
|
|
Packit |
e20b97 |
(element acronym (if %html40%
|
|
Packit |
e20b97 |
($acronym-seq$)
|
|
Packit |
e20b97 |
($charseq$)))
|
|
Packit |
e20b97 |
(element accel ($charseq$))
|
|
Packit |
e20b97 |
(element action ($charseq$))
|
|
Packit |
e20b97 |
(element application ($charseq$))
|
|
Packit |
e20b97 |
(element classname ($code-seq$))
|
|
Packit |
e20b97 |
(element constant ($code-seq$))
|
|
Packit |
e20b97 |
(element command ($bold-seq$))
|
|
Packit |
e20b97 |
(element computeroutput ($samp-seq$))
|
|
Packit |
e20b97 |
(element database ($charseq$))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element email
|
|
Packit |
e20b97 |
($code-seq$
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal "<")
|
|
Packit |
e20b97 |
(make element gi: "A"
|
|
Packit |
e20b97 |
attributes: (list (list "HREF"
|
|
Packit |
e20b97 |
(string-append "mailto:"
|
|
Packit |
e20b97 |
(data (current-node)))))
|
|
Packit |
e20b97 |
(process-children))
|
|
Packit |
e20b97 |
(literal ">"))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element errorcode ($charseq$))
|
|
Packit |
e20b97 |
(element errorname ($charseq$))
|
|
Packit |
e20b97 |
(element errortype ($charseq$))
|
|
Packit |
e20b97 |
(element envar ($code-seq$))
|
|
Packit |
e20b97 |
(element filename ($mono-seq$)) ; unsure
|
|
Packit |
e20b97 |
(element function ($code-seq$))
|
|
Packit |
e20b97 |
(element guibutton ($charseq$))
|
|
Packit |
e20b97 |
(element guiicon ($charseq$))
|
|
Packit |
e20b97 |
(element guilabel ($charseq$))
|
|
Packit |
e20b97 |
(element guimenu ($charseq$))
|
|
Packit |
e20b97 |
(element guimenuitem ($charseq$))
|
|
Packit |
e20b97 |
(element guisubmenu ($charseq$))
|
|
Packit |
e20b97 |
(element hardware ($charseq$))
|
|
Packit |
e20b97 |
(element interface ($charseq$))
|
|
Packit |
e20b97 |
(element interfacedefinition ($charseq$))
|
|
Packit |
e20b97 |
(element keycap ($bold-seq$))
|
|
Packit |
e20b97 |
(element keycode ($charseq$))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element keycombo
|
|
Packit |
e20b97 |
(let* ((action (attribute-string (normalize "action")))
|
|
Packit |
e20b97 |
(joinchar
|
|
Packit |
e20b97 |
(cond
|
|
Packit |
e20b97 |
((equal? action (normalize "seq")) " ") ;; space
|
|
Packit |
e20b97 |
((equal? action (normalize "simul")) "+") ;; +
|
|
Packit |
e20b97 |
((equal? action (normalize "press")) "-") ;; ? I don't know
|
|
Packit |
e20b97 |
((equal? action (normalize "click")) "-") ;; ? what to do
|
|
Packit |
e20b97 |
((equal? action (normalize "double-click")) "-") ;; ? about the rest
|
|
Packit |
e20b97 |
((equal? action (normalize "other")) "-") ;; ? of these
|
|
Packit |
e20b97 |
(else "-"))))
|
|
Packit |
e20b97 |
(let loop ((nl (children (current-node))) (count 1))
|
|
Packit |
e20b97 |
(if (node-list-empty? nl)
|
|
Packit |
e20b97 |
(empty-sosofo)
|
|
Packit |
e20b97 |
(if (equal? count 1)
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(process-node-list (node-list-first nl))
|
|
Packit |
e20b97 |
(loop (node-list-rest nl) (+ count 1)))
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal joinchar)
|
|
Packit |
e20b97 |
(process-node-list (node-list-first nl))
|
|
Packit |
e20b97 |
(loop (node-list-rest nl) (+ count 1))))))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element keysym ($charseq$))
|
|
Packit |
e20b97 |
(element literal ($mono-seq$))
|
|
Packit |
e20b97 |
(element medialabel ($italic-seq$))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element menuchoice
|
|
Packit |
e20b97 |
(let* ((shortcut (select-elements (children (current-node))
|
|
Packit |
e20b97 |
(normalize "shortcut")))
|
|
Packit |
e20b97 |
(items (node-list-filter-by-not-gi
|
|
Packit |
e20b97 |
(children (current-node))
|
|
Packit |
e20b97 |
(list (normalize "shortcut")))))
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(let loop ((nl items) (first? #t))
|
|
Packit |
e20b97 |
(if (node-list-empty? nl)
|
|
Packit |
e20b97 |
(empty-sosofo)
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(if first?
|
|
Packit |
e20b97 |
(process-node-list (node-list-first nl))
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(if (or (equal? (gi (node-list-first nl))
|
|
Packit |
e20b97 |
(normalize "guimenuitem"))
|
|
Packit |
e20b97 |
(equal? (gi (node-list-first nl))
|
|
Packit |
e20b97 |
(normalize "guisubmenu")))
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal "-")
|
|
Packit |
e20b97 |
(make entity-ref name: "gt"))
|
|
Packit |
e20b97 |
(literal "+"))
|
|
Packit |
e20b97 |
(process-node-list (node-list-first nl))))
|
|
Packit |
e20b97 |
(loop (node-list-rest nl) #f))))
|
|
Packit |
e20b97 |
(if (node-list-empty? shortcut)
|
|
Packit |
e20b97 |
(empty-sosofo)
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal " (")
|
|
Packit |
e20b97 |
(process-node-list shortcut)
|
|
Packit |
e20b97 |
(literal ")"))))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element methodname ($code-seq$))
|
|
Packit |
e20b97 |
(element shortcut ($bold-seq$))
|
|
Packit |
e20b97 |
(element mousebutton ($charseq$))
|
|
Packit |
e20b97 |
(element option ($code-seq$))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element optional
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal %arg-choice-opt-open-str%)
|
|
Packit |
e20b97 |
($charseq$)
|
|
Packit |
e20b97 |
(literal %arg-choice-opt-close-str%)))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element parameter ($code-seq$))
|
|
Packit |
e20b97 |
(element property ($charseq$))
|
|
Packit |
e20b97 |
(element prompt ($samp-seq$))
|
|
Packit |
e20b97 |
(element replaceable ($italic-mono-seq$))
|
|
Packit |
e20b97 |
(element returnvalue ($charseq$))
|
|
Packit |
e20b97 |
(element structfield ($code-seq$))
|
|
Packit |
e20b97 |
(element structname ($code-seq$))
|
|
Packit |
e20b97 |
(element symbol ($code-seq$))
|
|
Packit |
e20b97 |
(element systemitem ($charseq$)) ; ambiguous, should look at class
|
|
Packit |
e20b97 |
(element token ($charseq$))
|
|
Packit |
e20b97 |
(element type ($charseq$)) ; ambiguous
|
|
Packit |
e20b97 |
(element userinput ($kbd-seq$))
|
|
Packit |
e20b97 |
(element varname ($code-seq$))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element citation
|
|
Packit |
e20b97 |
(if biblio-citation-check
|
|
Packit |
e20b97 |
(let* ((bgraphies (select-elements (descendants (sgml-root-element))
|
|
Packit |
e20b97 |
(normalize "bibliography")))
|
|
Packit |
e20b97 |
(bchildren1 (expand-children bgraphies
|
|
Packit |
e20b97 |
(list (normalize "bibliography"))))
|
|
Packit |
e20b97 |
(bchildren2 (expand-children bchildren1
|
|
Packit |
e20b97 |
(list (normalize "bibliodiv"))))
|
|
Packit |
e20b97 |
(bibentries (node-list-filter-by-gi
|
|
Packit |
e20b97 |
bchildren2
|
|
Packit |
e20b97 |
(list (normalize "biblioentry")
|
|
Packit |
e20b97 |
(normalize "bibliomixed")))))
|
|
Packit |
e20b97 |
(let loop ((bibs bibentries))
|
|
Packit |
e20b97 |
(if (node-list-empty? bibs)
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(error (string-append "Cannot find citation: "
|
|
Packit |
e20b97 |
(data (current-node))))
|
|
Packit |
e20b97 |
(literal "[") ($charseq$) (literal "]"))
|
|
Packit |
e20b97 |
(if (citation-matches-target? (current-node)
|
|
Packit |
e20b97 |
(node-list-first bibs))
|
|
Packit |
e20b97 |
(make element gi: "A"
|
|
Packit |
e20b97 |
attributes: (list
|
|
Packit |
e20b97 |
(list "HREF" (href-to
|
|
Packit |
e20b97 |
(node-list-first bibs))))
|
|
Packit |
e20b97 |
(literal "[") ($charseq$) (literal "]"))
|
|
Packit |
e20b97 |
(loop (node-list-rest bibs))))))
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal "[") ($charseq$) (literal "]"))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element citerefentry
|
|
Packit |
e20b97 |
(if %citerefentry-link%
|
|
Packit |
e20b97 |
(make element gi: "A"
|
|
Packit |
e20b97 |
attributes: (list (list "HREF" ($generate-citerefentry-link$)))
|
|
Packit |
e20b97 |
(if %refentry-xref-italic%
|
|
Packit |
e20b97 |
($italic-seq$)
|
|
Packit |
e20b97 |
($charseq$)))
|
|
Packit |
e20b97 |
(if %refentry-xref-italic%
|
|
Packit |
e20b97 |
($italic-seq$)
|
|
Packit |
e20b97 |
($charseq$))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(define ($generate-citerefentry-link$)
|
|
Packit |
e20b97 |
(empty-sosofo))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(define ($x-generate-citerefentry-link$)
|
|
Packit |
e20b97 |
(let* ((refentrytitle (select-elements (children (current-node))
|
|
Packit |
e20b97 |
(normalize "refentrytitle")))
|
|
Packit |
e20b97 |
(manvolnum (select-elements (children (current-node))
|
|
Packit |
e20b97 |
(normalize "manvolnum"))))
|
|
Packit |
e20b97 |
(string-append "http://example.com/cgi-bin/man.cgi?"
|
|
Packit |
e20b97 |
(data refentrytitle)
|
|
Packit |
e20b97 |
"("
|
|
Packit |
e20b97 |
(data manvolnum)
|
|
Packit |
e20b97 |
")")))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element citetitle
|
|
Packit |
e20b97 |
(if (equal? (attribute-string (normalize "pubwork")) "article")
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal (gentext-start-quote))
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal (gentext-end-quote)))
|
|
Packit |
e20b97 |
($italic-seq$)))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element emphasis
|
|
Packit |
e20b97 |
(let* ((class (if (and (attribute-string (normalize "role"))
|
|
Packit |
e20b97 |
%emphasis-propagates-style%)
|
|
Packit |
e20b97 |
(attribute-string (normalize "role"))
|
|
Packit |
e20b97 |
"emphasis")))
|
|
Packit |
e20b97 |
(make element gi: "SPAN"
|
|
Packit |
e20b97 |
attributes: (list (list "CLASS" class))
|
|
Packit |
e20b97 |
(if (and (attribute-string (normalize "role"))
|
|
Packit |
e20b97 |
(or (equal? (attribute-string (normalize "role")) "strong")
|
|
Packit |
e20b97 |
(equal? (attribute-string (normalize "role")) "bold")))
|
|
Packit |
e20b97 |
($bold-seq$)
|
|
Packit |
e20b97 |
($italic-seq$)))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element foreignphrase ($italic-seq$))
|
|
Packit |
e20b97 |
(element markup ($charseq$))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element phrase
|
|
Packit |
e20b97 |
(let* ((class (if (and (attribute-string (normalize "role"))
|
|
Packit |
e20b97 |
%phrase-propagates-style%)
|
|
Packit |
e20b97 |
(attribute-string (normalize "role"))
|
|
Packit |
e20b97 |
"phrase")))
|
|
Packit |
e20b97 |
(make element gi: "SPAN"
|
|
Packit |
e20b97 |
attributes: (list (list "CLASS" class))
|
|
Packit |
e20b97 |
($charseq$))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element quote
|
|
Packit |
e20b97 |
(let* ((hnr (hierarchical-number-recursive (normalize "quote")
|
|
Packit |
e20b97 |
(current-node)))
|
|
Packit |
e20b97 |
(depth (length hnr)))
|
|
Packit |
e20b97 |
(make element gi: "SPAN"
|
|
Packit |
e20b97 |
attributes: '(("CLASS" "QUOTE"))
|
|
Packit |
e20b97 |
(if (equal? (modulo depth 2) 1)
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal (gentext-start-nested-quote))
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal (gentext-end-nested-quote)))
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
(literal (gentext-start-quote))
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal (gentext-end-quote)))))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element sgmltag
|
|
Packit |
e20b97 |
(let ((class (if (attribute-string (normalize "class"))
|
|
Packit |
e20b97 |
(attribute-string (normalize "class"))
|
|
Packit |
e20b97 |
(normalize "element"))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(cond
|
|
Packit |
e20b97 |
((or (equal? class (normalize "attribute"))
|
|
Packit |
e20b97 |
(equal? class (normalize "attvalue"))
|
|
Packit |
e20b97 |
(equal? class (normalize "element"))) ($code-seq$))
|
|
Packit |
e20b97 |
((equal? class (normalize "endtag")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "</")
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal ">"))))
|
|
Packit |
e20b97 |
((equal? class (normalize "genentity")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "&")
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal ";"))))
|
|
Packit |
e20b97 |
((equal? class (normalize "numcharref")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "&#")
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal ";"))))
|
|
Packit |
e20b97 |
((equal? class (normalize "paramentity")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "%")
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal ";"))))
|
|
Packit |
e20b97 |
((equal? class (normalize "pi")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal ">"))))
|
|
Packit |
e20b97 |
((equal? class (normalize "xmlpi")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal "?>"))))
|
|
Packit |
e20b97 |
((equal? class (normalize "starttag")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "<")
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal ">"))))
|
|
Packit |
e20b97 |
((equal? class (normalize "emptytag")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "<")
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal "/>"))))
|
|
Packit |
e20b97 |
((equal? class (normalize "sgmlcomment")) ($code-seq$ (make sequence
|
|
Packit |
e20b97 |
(literal "
|
|
Packit |
e20b97 |
(process-children)
|
|
Packit |
e20b97 |
(literal "-->"))))
|
|
Packit |
e20b97 |
]]>
|
|
Packit |
e20b97 |
(else ($charseq$)))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element trademark
|
|
Packit |
e20b97 |
(make sequence
|
|
Packit |
e20b97 |
($charseq$)
|
|
Packit |
e20b97 |
(cond
|
|
Packit |
e20b97 |
((equal? (attribute-string "class") (normalize "copyright"))
|
|
Packit |
e20b97 |
(make entity-ref name: "copy"))
|
|
Packit |
e20b97 |
((equal? (attribute-string "class") (normalize "registered"))
|
|
Packit |
e20b97 |
(make entity-ref name: "reg"))
|
|
Packit |
e20b97 |
((equal? (attribute-string "class") (normalize "service"))
|
|
Packit |
e20b97 |
(make element gi: "SUP"
|
|
Packit |
e20b97 |
(literal "SM")))
|
|
Packit |
e20b97 |
(else
|
|
Packit |
e20b97 |
(make entity-ref name: "#8482")))))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element wordasword ($italic-seq$))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element lineannotation
|
|
Packit |
e20b97 |
(process-children))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element superscript
|
|
Packit |
e20b97 |
(make element gi: "SUP"
|
|
Packit |
e20b97 |
(process-children)))
|
|
Packit |
e20b97 |
|
|
Packit |
e20b97 |
(element subscript
|
|
Packit |
e20b97 |
(make element gi: "SUB"
|
|
Packit |
e20b97 |
(process-children)))
|