--- gforth/wf.fs 2006/10/08 11:30:56 1.48 +++ gforth/wf.fs 2008/04/08 09:04:21 1.54 @@ -1,12 +1,12 @@ \ wiki forth -\ Copyright (C) 2003,2004,2005 Free Software Foundation, Inc. +\ Copyright (C) 2003,2004,2005,2006,2007 Free Software Foundation, Inc. \ This file is part of Gforth. \ Gforth is free software; you can redistribute it and/or \ modify it under the terms of the GNU General Public License -\ as published by the Free Software Foundation; either version 2 +\ as published by the Free Software Foundation, either version 3 \ of the License, or (at your option) any later version. \ This program is distributed in the hope that it will be useful, @@ -15,8 +15,7 @@ \ GNU General Public License for more details. \ You should have received a copy of the GNU General Public License -\ along with this program; if not, write to the Free Software -\ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. +\ along with this program. If not, see http://www.gnu.org/licenses/. require string.fs @@ -259,7 +258,7 @@ Defer parse-line ELSE 2swap icon-tmp $! icon-prefix $@ icon-tmp $+! icon-tmp $+! icon-tmp $@ THEN dup >r '| -$split dup r> = IF 2swap THEN - dup IF 2swap alt= ELSE 2drop THEN + dup IF 2swap alt= ELSE 2drop s" " alt= THEN tag-class $@len >r over c@ >align tag-class $@len r> = 1+ /string tag-class $@len >r over c@ >border tag-class $@len r> = 1+ /string 2dup .img-size src= s" img" tag/ ; @@ -331,17 +330,22 @@ s" Gforth" environment? [IF] s" 0.5.0" s [ELSE] : parse-string ( addr u -- ) evaluate-input cell new-tib #tib ! tib ! - ['] parse-line catch pop-file rethrow ; + ['] parse-line catch pop-file throw ; [THEN] [THEN] Variable expand-link Variable expand-prefix Variable expand-postfix -: ?expand ( addr u -- ) expand-link $! +: ?expand ( addr u -- addr u' ) expand-link $! do-expand @ IF expand-prefix $@ expand-link 0 $ins expand-postfix $@ expand-link $+! THEN + 0 >r + BEGIN expand-link $@ r@ /string WHILE + r> 1+ >r + c@ '& = IF s" amp;" expand-link r@ $ins THEN + REPEAT drop rdrop expand-link $@ ; : .link ( addr u -- ) dup >r '| -$split dup r> = IF 2swap THEN @@ -354,7 +358,7 @@ Variable expand-postfix \ line handling -: char? ( -- c ) >in @ char swap >in ! ; +: char? ( -- c ) >in @ char swap >in ! $FF umin ; : parse-tag ( addr u char -- ) >r r@ parse .type @@ -456,9 +460,10 @@ Create nav-buf 0 c, bounds ?DO I c@ dup 'A 'Z 1+ within IF bl + nav+ ELSE dup 'a 'z 1+ within IF nav+ - ELSE dup '0 '9 1+ within IF nav+ - ELSE dup bl = swap '- = or IF '- nav+ - THEN THEN THEN THEN + ELSE dup '0 '9 1+ within IF nav+ + ELSE dup bl = over '- = or IF '- nav+ + ELSE nav+ + THEN THEN THEN THEN LOOP ; : >nav ( addr u -- addr' u' ) nav-name $! create-navs @ 0= @@ -485,7 +490,7 @@ Variable toc-index true Value toc-image : .toc-entry ( toc flag -- ) - swap cell+ dup @ swap cell+ dup cell+ $@ 2dup href= + swap cell+ dup @ swap cell+ dup cell+ $@ 2dup ?expand href= '# scan 1 /string toc-name $@ compare >r $@ toc-image IF s" a" tag .img swap IF @@ -519,7 +524,7 @@ true Value toc-image 3 OF s" down" class= ENDOF ENDCASE THEN - s" a" tag parse-string s" a" /tag + s" a" tag parse-string s" a" /tag ." " THEN rdrop 1 toc-index +! toc-index @ /toc-line mod 0= @@ -558,9 +563,9 @@ Variable divs longtags set-current : --- 0 indent cr s" hr" tag/ cr ; -: * 1 indent s" h1" dclass= s" h1" par +indent s" " dclass= ; -: ** 1 indent s" h2" dclass= s" h2" par +indent s" " dclass= ; -: *** 2 indent s" h3" dclass= s" h3" par +indent s" " dclass= ; +: * 1 indent +indent s" h1" dclass= s" h1" par s" " dclass= ; +: ** 1 indent +indent s" h2" dclass= s" h2" par s" " dclass= ; +: *** 2 indent +indent s" h3" dclass= s" h3" par s" " dclass= ; : -- 0 indent cr print-toc ; : && 0 parse id= ; : - s" ul" env s" li" par ; @@ -689,8 +694,8 @@ Variable _favicon _charset $@ s" utf-8" str= 0= IF .' ' cr THEN .' ' cr + .' PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"' cr + .' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' cr s" http://www.w3.org/1999/xhtml" s" xmlns" opt lang@ s" xml:lang" opt lang@ s" lang" opt s" html" >env cr s" head" >env cr