Changeset 4599 in project


Ignore:
Timestamp:
06/20/07 03:24:57 (13 years ago)
Author:
Jim Ursetto
Message:

htmlprag: upgrade to 0.16

Files:
1 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • htmlprag/htmlprag.meta

    r2934 r4599  
    11;;; htmlprag.meta -*- Hen -*-
    22
    3 ((date "2004-05-20")
    4  (egg "htmlprag.egg")
     3((egg "htmlprag.egg")
    54 (synopsis "A permissive HTML parser")
    65 (license "LGPL")
    76 (needs syntax-case)
    87 (category web)
    9  (author "Neil W. Van Dyke (neil AT neilvandyke DOT org)")
    10  (files "htmlprag.setup" "htmlprag.scm"))
     8 (doc-from-wiki)
     9 (author "Neil W. Van Dyke")
     10 (files "htmlprag.setup" "htmlprag.scm" "htmlprag.html"))
  • htmlprag/htmlprag.scm

    r1 r4599  
    44;;; @Author      Neil W. Van Dyke
    55;;; @AuthorEmail neil@@neilvandyke.org
    6 ;;; @Version     0.14
    7 ;;; @Date        2005-06-16
    8 
    9 ;; $Id: htmlprag.scm,v 1.379 2005/06/17 00:56:15 neil Exp $
     6;;; @Version     0.16
     7;;; @Date        2005-12-18
     8
     9;; $Id: htmlprag.scm,v 1.385 2005/12/19 03:28:28 neil Exp $
     10
     11;;; Local modifications for Chicken.
     12
     13(declare
     14 (export shtml-comment-symbol shtml-decl-symbol shtml-empty-symbol
     15         shtml-end-symbol shtml-entity-symbol shtml-pi-symbol
     16         shtml-start-symbol shtml-text-symbol shtml-top-symbol
     17         shtml-named-char-id shtml-numeric-char-id make-shtml-entity
     18         shtml-entity-value make-html-tokenizer tokenize-html
     19         shtml-token-kind parse-html/tokenizer
     20         html->sxml-0nf html->sxml-1nf html->sxml-2nf
     21         html->sxml html->shtml write-shtml-as-html shtml->html)
     22 (fixnum))
    1023
    1124;;; @legal
     
    318331                           (%htmlprag:a2c 13)))
    319332
    320            (output-string->string-or-false
     333           (gosc/string-or-false
    321334            (lambda (os)
    322335              (let ((s (%htmlprag:gosc os)))
    323336                (if (string=? s "") #f s))))
    324337
    325            (output-string->symbol-or-false
     338           (gosc/symbol-or-false
    326339            (lambda (os)
    327               (let ((s (output-string->string-or-false os)))
     340              (let ((s (gosc/string-or-false os)))
    328341                (if s (string->symbol s) #f))))
    329342           )
     
    662675                         (set! state
    663676                               (case state
    664                                  ((start-minus) 'start-minus-minus)
     677                                 ((start-minus)            'start-minus-minus)
    665678                                 ((start-minus-minus body) 'end-minus)
    666                                  ((end-minus) 'end-minus-minus)
    667                                  ((end-minus-minus)
    668                                   (write-char #\- os)
    669                                   state)
     679                                 ((end-minus)              'end-minus-minus)
     680                                 ((end-minus-minus) (write-char #\- os) state)
    670681                                 (else (%htmlprag:error
    671682                                        "make-html-tokenizer"
     
    731742                        (else       (unread-c))))
    732743                ;; TODO: Do we really want to emit #f for PI name?
    733                 (set! name (output-string->symbol-or-false name))
     744                (set! name (gosc/symbol-or-false name))
    734745                (let scan-val ()
    735746                  (read-c)
     
    839850                           "&#;"
    840851                           (let ((n (string->number num (if hex? 16 10))))
    841                              (if (and (<= 32 n 255) (not (= n 127)))
     852                             (if (<= 32 n 126)
     853                                 ;; (and (<= 32 n 255) (not (= n 127)))
    842854                                 (string (%htmlprag:a2c n))
    843855                                 (make-shtml-entity n))))))
     
    10141026                  ;; Return the accumulated line string, if non-null, or call
    10151027                  ;; nexttok.
    1016                   (or (output-string->string-or-false os) (nexttok))))))
     1028                  (or (gosc/string-or-false os) (nexttok))))))
    10171029
    10181030           (nexttok #f))
     
    11871199                           (let* ((name (start-tag-name tok))
    11881200                                  (cell (assq name parent-constraints)))
    1189                              (and cell (finish-begs-upto (cdr cell) begs))
     1201                             (and cell (finish-begs-upto (cons 'div (cdr cell))
     1202                                                         begs))
    11901203                             (add-to-current-beg tok)
    11911204                             (or (memq name empty-elements)
     
    16211634;;; @section Tests
    16221635
    1623 ;;; The @code{bencode.scm} test suite can be enabled by editing the source code
    1624 ;;; file and loading @uref{http://www.neilvandyke.org/testeez/, Testeez}.
     1636;;; The HtmlPrag test suite can be enabled by editing the source code file and
     1637;;; loading @uref{http://www.neilvandyke.org/testeez/, Testeez}.
    16251638
    16261639(define (%htmlprag:test)
     
    17531766   (test/equal "" (html->shtml "&#42x")  `(,shtml-top-symbol "*x"))
    17541767   (test/equal "" (html->shtml "&#151")  `(,shtml-top-symbol
    1755                                            ,(string (%htmlprag:a2c 151))))
     1768                                           (& 151)
     1769                                           ;; ,(string (%htmlprag:a2c 151))
     1770                                           ))
    17561771   (test/equal "" (html->shtml "&#1000") `(,shtml-top-symbol (& 1000)))
    17571772   (test/equal "" (html->shtml "&#x42")  `(,shtml-top-symbol "B"))
    17581773   (test/equal "" (html->shtml "&#xA2")  `(,shtml-top-symbol
    1759                                            ,(string (%htmlprag:a2c 162))))
     1774                                           (& 162)
     1775                                           ;; ,(string (%htmlprag:a2c 162))
     1776                                           ))
    17601777   (test/equal "" (html->shtml "&#xFF")  `(,shtml-top-symbol
    1761                                            ,(string (%htmlprag:a2c 255))))
     1778                                           (& 255)
     1779                                           ;; ,(string (%htmlprag:a2c 255))
     1780                                           ))
    17621781   (test/equal "" (html->shtml "&#x100") `(,shtml-top-symbol (& 256)))
    17631782   (test/equal "" (html->shtml "&#X42")  `(,shtml-top-symbol "B"))
     
    21422161   (test/equal ""
    21432162               (html->shtml "&#151;")
    2144                `(,shtml-top-symbol ,(string (%htmlprag:a2c 151))))
     2163               `(,shtml-top-symbol
     2164                 (& 151)
     2165                 ;; ,(string (%htmlprag:a2c 151))
     2166                 ))
    21452167
    21462168   (test/equal ""
     
    21972219               `(,shtml-top-symbol "xxx" "<![CDATA" "yyy"))
    21982220
     2221   (test/equal "parent constraints with div"
     2222               (html->shtml "<html><div><p>P1</p><p>P2</p></div><p>P3</p>")
     2223               `(,shtml-top-symbol (html (div (p "P1")
     2224                                              (p "P2"))
     2225                                         (p "P3"))))
     2226
     2227   (test/equal "we no longer convert character references above 126 to string"
     2228               (html->shtml "&#151;")
     2229               `(,shtml-top-symbol (& 151)))
     2230
    21992231   ;; TODO: Write more test cases for HTML encoding.
    22002232
     
    22162248
    22172249;;; @table @asis
     2250;;;
     2251;;; @item Version 0.16 --- 2005-12-18
     2252;;; Documentation fix.
     2253;;;
     2254;;; @item Version 0.15 --- 2005-12-18
     2255;;; In the HTML parent element constraints that are used for structure
     2256;;; recovery, @code{div} is now always permitted as a parent, as a stopgap
     2257;;; measure until substantial time can be spent reworking the algorithm to
     2258;;; better support @code{div} (bug reported by Corey Sweeney and Jepri).  Also
     2259;;; no longer convert to Scheme character any HTML numeric character reference
     2260;;; with value above 126, to avoid Unicode problem with PLT 299/300 (bug
     2261;;; reported by Corey Sweeney).
    22182262;;;
    22192263;;; @item Version 0.14 --- 2005-06-16
  • htmlprag/htmlprag.setup

    r1 r4599  
    1 ;; $Id: htmlprag.setup,v 1.1 2004/08/30 20:40:47 flw Exp $
    2 ;; $Source: /cvsroot/chicken/eggs/htmlprag.setup,v $
    3 
    4 (run (csc -s -R syntax-case -O2 -d0 htmlprag.scm))
     1(compile -s -R syntax-case -O2 -d1 htmlprag.scm -check-imports -emit-exports htmlprag.exports)
    52
    63(install-extension 'htmlprag
    74                   "htmlprag.so"
    8                    '(
    9                      ;;(version ...)
    10                      ))
     5                   '((documentation "htmlprag.html")
     6                     (version 0.16)
     7                     (exports "htmlprag.exports") ))
     8
     9
Note: See TracChangeset for help on using the changeset viewer.