Changeset 18632 in project


Ignore:
Timestamp:
06/26/10 18:12:03 (11 years ago)
Author:
sjamaan
Message:

qwiki, multidoc: Move higlighting and example support from multidoc to qwiki. Integrate colorize support for html output

Location:
release/4
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • release/4/multidoc/branches/svnwiki-sxml/html.scm

    r18569 r18632  
    120120               ,(if (null? (cdr elems)) (car elems) (cadr elems)))))
    121121
    122      ;; No syntax highlighting yet, present as preformatted
    123      (highlight
    124       *macro*
    125       . ,(lambda (tag elems)
    126            ;; (highlight LANGUAGE "text" ...)
    127            `(pre (@ (class "highlight")) . ,(cdr elems))))
    128      
    129      (examples
    130       ((example
    131         ((init
    132           *macro*
    133           . ,(lambda (tag elems)
    134                `(pre (@ (class "init")) . ,elems)))
    135          (expr
    136           *macro*
    137           . ,(lambda (tag elems)
    138                `(pre (@ (class "expression")) . ,elems)))
    139          (input
    140           *macro*
    141           . ,(lambda (tag elems)
    142                `(div (@ (class "io input")) (em "input: ")
    143                      (pre . ,elems))))
    144          (output
    145           *macro*
    146           . ,(lambda (tag elems)
    147                `(div (@ (class "io output")) (em "output: ")
    148                      (pre . ,elems))))
    149          (result
    150           *macro*
    151           . ,(lambda (tag elems)
    152                `(pre (@ (class "result"))
    153                      (span (@ (class "result-symbol")) " => ") . ,elems))))
    154         . ,(lambda (tag elems)
    155              `(div (@ (class "example")) . ,elems))))
    156       . ,(lambda (tag elems)
    157            `(div (@ (class "examples"))
    158                  (span (@ (class "examples-heading")) "Examples:") . ,elems)))
    159 
    160122     ,@alist-conv-rules*
    161123     )
  • release/4/multidoc/branches/svnwiki-sxml/latex.scm

    r18569 r18632  
    211211      . ,(lambda (tag elems)
    212212           `(verbatim . ,elems)))
    213          
    214      ;; No syntax highlighting yet, present as preformatted
    215      (highlight
    216       *macro*
    217       . ,(lambda (tag elems)
    218            ;; (highlight LANGUAGE "text" ...)
    219            `(pre . ,(cdr elems))))
    220      
    221      (examples
    222       ((example
    223         ((init
    224           *macro*
    225           . ,(lambda (tag elems)
    226                `(pre . ,elems)))
    227          (expr
    228           *macro*
    229           . ,(lambda (tag elems)
    230                `(pre . ,elems)))
    231          (input
    232           *macro*
    233           . ,(lambda (tag elems)
    234                `((em "input: ")
    235                  (pre . ,elems))))
    236          (output
    237           *macro*
    238           . ,(lambda (tag elems)
    239                `((em "output: ")
    240                  (pre . ,elems))))
    241          (result
    242           *macro*
    243           . ,(lambda (tag elems)
    244                `(pre " => " . ,elems))))
    245         . ,(lambda (tag elems)
    246              elems)))
    247       . ,(lambda (tag elems)
    248            elems))
    249213     
    250214     (verbatim  ; set off pieces of code: one or several lines
  • release/4/multidoc/branches/svnwiki-sxml/texinfo.scm

    r18569 r18632  
    337337           `(verbatim . ,elems)))
    338338         
    339      ;; No syntax highlighting yet, present as preformatted
    340      (highlight
    341       *macro*
    342       . ,(lambda (tag elems)
    343            ;; (highlight LANGUAGE "text" ...)
    344            `(pre . ,(cdr elems))))
    345      
    346      (examples
    347       ((example
    348         ((init
    349           *macro*
    350           . ,(lambda (tag elems)
    351                `(pre . ,elems)))
    352          (expr
    353           *macro*
    354           . ,(lambda (tag elems)
    355                `(pre . ,elems)))
    356          (input
    357           *macro*
    358           . ,(lambda (tag elems)
    359                `((em "input: ")
    360                  (pre . ,elems))))
    361          (output
    362           *macro*
    363           . ,(lambda (tag elems)
    364                `((em "output: ")
    365                  (pre . ,elems))))
    366          (result
    367           *macro*
    368           . ,(lambda (tag elems)
    369                `(pre " => " . ,elems)))
    370          (*text* . ,(lambda (tag elems) elems))
    371          (*default* . ,(lambda (tag elems) '())))
    372         . ,(lambda (tag elems)
    373              elems)))
    374       . ,(lambda (tag elems)
    375            elems))
    376 
    377339     (verbatim  ;; set off pieces of code: one or several lines
    378340      ((*text* . ;; Different quotation rules apply within a "verbatim" block
  • release/4/qwiki/branches/svnwiki-sxml/qwiki-sxml.scm

    r18512 r18632  
    4444(import chicken scheme)
    4545
    46 (use posix srfi-1 srfi-13 data-structures)
    47 (use matchable sxml-transforms doctype uri-generic sxpath)
     46(use posix srfi-1 srfi-13 data-structures extras)
     47(use matchable sxml-transforms doctype uri-generic sxpath colorize html-parser)
    4848
    4949(require-library multidoc)
     
    9595              . ,(map (lambda (tag) `(li ,tag))
    9696                      (string-split (car page-tags))))))
     97
     98     (highlight
     99      *macro*
     100      . ,(lambda (tag elems)
     101           (let* ((lang (car elems))
     102                  (classname (conc "highlight " lang "-language"))
     103                  (code (handle-exceptions exn
     104                          (cdr elems)
     105                          (map (lambda (s)
     106                                 (cdr (html->sxml (html-colorize lang s))))
     107                               (cdr elems)))))
     108             `(pre (@ (class ,classname)) . ,code))))
    97109     
     110     (examples
     111      ((example
     112        ((init
     113          *macro*
     114          . ,(lambda (tag elems)
     115               `(div (@ (class "init")) (highlight scheme . ,elems))))
     116         (expr
     117          *macro*
     118          . ,(lambda (tag elems)
     119               `(div (@ (class "expression")) (highlight scheme . ,elems))))
     120         (input
     121          *macro*
     122          . ,(lambda (tag elems)
     123               `(div (@ (class "io input")) (em "input: ")
     124                     (highlight scheme . ,elems))))
     125         (output
     126          *macro*
     127          . ,(lambda (tag elems)
     128               `(div (@ (class "io output")) (em "output: ")
     129                     (highlight scheme . ,elems))))
     130         (result
     131          *macro*
     132          . ,(lambda (tag elems)
     133               `(div (@ (class "result"))
     134                     (span (@ (class "result-symbol")) " => ")
     135                     (highlight scheme . ,elems))))) ;; Or use "basic lisp" here?
     136        . ,(lambda (tag elems)
     137             `(div (@ (class "example")) . ,elems))))
     138      . ,(lambda (tag elems)
     139           `(div (@ (class "examples"))
     140                 (span (@ (class "examples-heading")) "Examples:") . ,elems)))     
    98141     (page-specific-links
    99142      *macro*
     
    163206              )))
    164207
     208     ;; No syntax highlighting yet, present as preformatted
     209     (highlight
     210      *macro*
     211      . ,(lambda (tag elems)
     212           ;; (highlight LANGUAGE "text" ...)
     213           `(pre . ,(cdr elems))))
     214     
     215     (examples
     216      ((example
     217        ((init
     218          *macro*
     219          . ,(lambda (tag elems)
     220               `(pre . ,elems)))
     221         (expr
     222          *macro*
     223          . ,(lambda (tag elems)
     224               `(pre . ,elems)))
     225         (input
     226          *macro*
     227          . ,(lambda (tag elems)
     228               `((em "input: ")
     229                 (pre . ,elems))))
     230         (output
     231          *macro*
     232          . ,(lambda (tag elems)
     233               `((em "output: ")
     234                 (pre . ,elems))))
     235         (result
     236          *macro*
     237          . ,(lambda (tag elems)
     238               `(pre " => " . ,elems))))
     239        . ,(lambda (tag elems)
     240             elems)))
     241      . ,(lambda (tag elems)
     242           elems))
     243
    165244     ,@alist-conv-rules*
    166245     )
     
    183262
    184263
     264     ;; No syntax highlighting yet, present as preformatted
     265     (highlight
     266      *macro*
     267      . ,(lambda (tag elems)
     268           ;; (highlight LANGUAGE "text" ...)
     269           `(pre . ,(cdr elems))))
     270     
     271     (examples
     272      ((example
     273        ((init
     274          *macro*
     275          . ,(lambda (tag elems)
     276               `(pre . ,elems)))
     277         (expr
     278          *macro*
     279          . ,(lambda (tag elems)
     280               `(pre . ,elems)))
     281         (input
     282          *macro*
     283          . ,(lambda (tag elems)
     284               `((em "input: ")
     285                 (pre . ,elems))))
     286         (output
     287          *macro*
     288          . ,(lambda (tag elems)
     289               `((em "output: ")
     290                 (pre . ,elems))))
     291         (result
     292          *macro*
     293          . ,(lambda (tag elems)
     294               `(pre " => " . ,elems)))
     295         (*text* . ,(lambda (tag elems) elems))
     296         (*default* . ,(lambda (tag elems) '())))
     297        . ,(lambda (tag elems)
     298             elems)))
     299      . ,(lambda (tag elems)
     300           elems))
     301
    185302     ,@alist-conv-rules
    186303     )
  • release/4/qwiki/branches/svnwiki-sxml/qwiki.meta

    r18568 r18632  
    22 (depends matchable intarweb uri-common spiffy (doctype "1.2")
    33          (sxml-transforms "1.4") multidoc (svn-client "0.13") estraier-client
    4           sxpath sha1 (svnwiki-sxml 0.2.1))
     4          sxpath sha1 (svnwiki-sxml 0.2.1) html-parser colorize)
    55 (author "Peter Bex")
    66 (category www)
Note: See TracChangeset for help on using the changeset viewer.