Changeset 15450 in project


Ignore:
Timestamp:
08/13/09 22:04:18 (10 years ago)
Author:
sjamaan
Message:

Fix lots of validation errors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • release/4/qwiki/trunk/qwiki-sxml.scm

    r15448 r15450  
    4242(import chicken scheme)
    4343
    44 (use posix srfi-1 srfi-13 data-structures)
     44(use posix srfi-1 srfi-13 data-structures regex)
    4545(use sxpath-lolevel sxml-transforms doctype uri-generic)
    4646
     
    7070                    Date-Revision-yyyymmdd Date-Creation-yyyymmdd))))
    7171
     72(define (internal-link str)
     73  (string-substitute* (string-downcase str) '(("[^A-Za-z0-9_ \t-]" . "")
     74                                              ("[ \t]+" . "-"))))
     75
    7276(define (qwiki-html-transformation-rules content)
    7377  `((
     
    7781       *macro*
    7882       . ,(lambda (_ type . contents)
    79             `(div (@ (class ,(conc "definition " type)))
    80                   (em "[" ,(symbol->string type) "]")
    81                   (code ,@contents))))
     83            `(span (@ (class ,(conc "definition " type)))
     84                   (em "[" ,(symbol->string type) "]")
     85                   (code ,@contents)
     86                   (br))))
    8287     
    8388     (Header
     
    8994      *macro*
    9095      . ,(lambda (tag level head-word . elems)
    91            `((n_) (a (@ (name ,head-word)) (n_))
     96           `((p (n_) (a (@ (name ,(internal-link head-word))) (n_)))
    9297             (,(string->symbol (string-append "h" (number->string level)))
    9398              ,head-word ,elems)
     
    98103      . ,(lambda (tag name arg)
    99104           `(,(string->symbol (string-upcase (symbol->string name))) ,arg)))
     105
     106     (preformatted
     107      . ,(lambda (tag . elems)
     108           `(pre (tt ,elems))))
    100109         
    101110     (type
     
    152161                                     ((*text* . ,(lambda (tag str) str)))
    153162                                     . ,(lambda (tag level head-word . elems)
    154                                           (list "<li><a href=\"#" head-word
    155                                                 "\">" head-word elems "</a>"))
     163                                          (append
     164                                           (list "<li><a href=\"#"
     165                                                 (internal-link head-word)
     166                                                 "\">" head-word "</a>")
     167                                           (if (null? elems)
     168                                               elems
     169                                               (list "<ul>" elems "</ul>"))
     170                                           (list "</li>")))
    156171                                     )
    157172                                    (*default*
     
    159174                                   
    160175                                    (*text* . ,(lambda (trigger str) (list)))))))
    161              (list "<div id=\"toc\">"
    162                    "<ul>"
     176             (list "<ul id=\"toc\">"
    163177                   sections
    164                    "</ul></div>"))))
     178                   "</ul>"))))
    165179
    166180     (verbatim
Note: See TracChangeset for help on using the changeset viewer.