Changeset 13659 in project for chicken/trunk/scripts


Ignore:
Timestamp:
03/10/09 10:11:14 (12 years ago)
Author:
felix winkelmann
Message:

small manual fixes; merged wiki changes (rev. 13647) into manual

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/scripts/wiki2html.scm

    r13581 r13659  
    44
    55
    6 (use regex srfi-1 extras utils)
     6(use regex srfi-1 extras utils srfi-13 posix)
    77(use htmlprag matchable)
    88
     
    4444;;; Global state
    4545
    46 (define *toc* #f)
    4746(define *tags* '())
    4847(define *open* '())
     48(define *manual-pages* '())
    4949
    5050(define (push-tag tag out)
     
    133133                     (first m)
    134134                     (continue m))))
    135                  ((string-search(rx `(: bos ,+link+)) rest) =>
     135                 ((string-search (rx `(: bos ,+link+)) rest) =>
    136136                  (lambda (m)
    137                     (string-append
    138                      "<a href='" (clean (second m)) "'>"
    139                      (clean (or (third m) (second m)))
    140                      "</a>"
    141                      (continue m))))
     137                    (let ((m1 (string-trim-both (second m))))
     138                      (string-append
     139                       (cond ((or (string=? "toc:" m1)
     140                                  (string-search (rx '(: bos (* space) "tags:")) m1) )
     141                              "")
     142                             ((member m1 *manual-pages*)
     143                              (string-append
     144                               "<a href='" m1 ".html'>" m1 "</a>"))
     145                             (else
     146                              (string-append
     147                               "<a href='" (clean (second m)) "'>"
     148                               (clean (or (third m) (second m)))
     149                               "</a>")))
     150                       (continue m)))))
    142151                 ((string-search (rx `(: bos ,+bold+)) rest) =>
    143152                  (lambda (m)
     
    153162      str))
    154163
     164(define (convert)
     165  (let ((sxml (html->sxml (open-input-string (with-output-to-string wiki->html)))))
     166    (define (walk n)
     167      (match n
     168        (('*PI* . _) n)
     169        (('enscript strs ...)
     170         `(pre ,@strs))
     171        (('procedure strs ...)
     172         `(pre "\n [procedure] " (tt ,@strs)))
     173        (((? symbol? tag) . body)
     174         `(,tag ,@(map walk body)))
     175        (_ n)))
     176    (display (shtml->html (walk sxml)))))
     177
    155178
    156179;;; Normalize text
     
    160183
    161184
    162 ;;; run it
     185;;; Run it
    163186
    164 (let ((sxml (html->sxml (open-input-string (with-output-to-string wiki->html)))))
    165   (define (walk n)
    166     (match n
    167       (('*PI* . _) n)
    168       (('enscript strs ...)
    169        `(pre ,@strs))
    170       (((? symbol? tag) . body)
    171        `(,tag ,@(map walk body)))
    172       (_ n)))
    173   (sxml->html (walk sxml)))
     187(define (main args)
     188  (match args
     189    ((dir)
     190     (set! *manual-pages* (map pathname-strip-directory (directory dir)))
     191     (convert))
     192    (_ (print "usage: wiki2html MANUALDIRECTORY")
     193       (exit 1))))
     194
     195(main (command-line-arguments))
Note: See TracChangeset for help on using the changeset viewer.