| : -$split ( addr u char -- addr1 u1 addr2 u2 ) |
: -$split ( addr u char -- addr1 u1 addr2 u2 ) |
| >r 2dup r@ -scan 2dup + c@ r> = negate over + >r |
>r 2dup r@ -scan 2dup + c@ r> = negate over + >r |
| 2swap r> /string ; |
2swap r> /string ; |
| |
: parse" ( -- addr u ) '" parse 2drop '" parse ; |
| |
|
| \ tag handling |
\ tag handling |
| |
|
| CASE |
CASE |
| 'l OF s" left" class= ENDOF |
'l OF s" left" class= ENDOF |
| 'r OF s" right" class= ENDOF |
'r OF s" right" class= ENDOF |
| 'c OF s" center" class= ENDOF |
'c OF s" center" align= ENDOF |
| '< OF s" left" class= ENDOF |
'< OF s" left" class= ENDOF |
| '> OF s" right" class= ENDOF |
'> OF s" right" class= ENDOF |
| '= OF s" center" class= ENDOF |
'= OF s" center" align= ENDOF |
| '~ OF s" absmiddle" class= ENDOF |
'~ OF s" absmiddle" align= ENDOF |
| ENDCASE ; |
ENDCASE ; |
| |
|
| : >talign ( c -- ) |
: >talign ( c -- ) |
| indentlevel @ over |
indentlevel @ over |
| indentlevel ! |
indentlevel ! |
| 2dup < IF swap DO -env -env LOOP EXIT THEN |
2dup < IF swap DO -env -env LOOP EXIT THEN |
| |
over 1 = IF = IF -env -env THEN EXIT THEN |
| 2dup > IF DO s" dl" >env s" dt" >env LOOP EXIT THEN |
2dup > IF DO s" dl" >env s" dt" >env LOOP EXIT THEN |
| 2dup = IF drop IF -env s" dt" >env THEN THEN |
2dup = IF drop IF -env s" dt" >env THEN THEN |
| ; |
; |
| : +indent ( -- ) |
: +indent ( -- ) |
| indentlevel @ IF -env s" dd" >env THEN |
indentlevel @ IF -env -env s" dl" >env s" dd" >env THEN |
| ; |
; |
| |
|
| wordlist constant longtags |
wordlist constant longtags |
| : *** 2 indent s" h3" line +indent ; |
: *** 2 indent s" h3" line +indent ; |
| : -- 0 indent cr print-toc ; |
: -- 0 indent cr print-toc ; |
| : && ( -- ) divs @ IF -env THEN +env |
: && ( -- ) divs @ IF -env THEN +env |
| 0 parse id= s" div" env divs on ; |
0 parse id= s" div" env env? divs on ; |
| : - s" ul" env s" li" par ; |
: - s" ul" env s" li" par ; |
| : + s" ol" env s" li" par ; |
: + s" ol" env s" li" par ; |
| : << +env ; |
: << +env ; |
| : <* s" center" class= s" p" >env ; |
: <* s" center" class= ; |
| : <red s" #ff0000" s" color" opt s" font" >env ; |
: <red s" #ff0000" s" color" opt s" font" >env ; |
| : red> -env ; |
: red> -env ; |
| : >> -env ; |
: >> -env ; |
| : *> -env ; |
: *> ; |
| : :: interpret ; |
: :: interpret ; |
| : . end-sec on 0 indent ; |
: . end-sec on 0 indent ; |
| : :code indent= s" pre" >env |
: :code indent= s" pre" >env |
| BEGIN source >in @ /string type cr refill WHILE |
BEGIN source >in @ /string type cr refill WHILE |
| source s" :endcode" str= UNTIL THEN |
source s" :endcode" str= UNTIL THEN |
| -env ; |
-env ; |
| |
: :code-file indent= s" pre" >env |
| |
parse" r/o open-file throw >r |
| |
r@ file-size throw drop dup allocate throw |
| |
2dup swap r@ read-file throw 2dup type drop |
| |
-env free throw drop |
| |
r> close-file throw ; |
| : \ postpone \ ; |
: \ postpone \ ; |
| |
|
| definitions |
definitions |
| Variable css-file |
Variable css-file |
| |
|
| : .title ( addr u -- ) |
: .title ( addr u -- ) |
| .' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//en" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' cr |
.' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//en" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' cr |
| s" html" >env s" head" >env cr |
s" html" >env s" head" >env cr |
| s" Content-Type" s" http-equiv" opt |
s" Content-Type" s" http-equiv" opt |
| s" text/xhtml; charset=iso-8859-1" s" content" opt |
s" text/xhtml; charset=iso-8859-1" s" content" opt |
| s" meta" tag/ |
s" meta" tag/ |
| css-file $@len IF |
css-file @ IF css-file $@len IF |
| s" StyleSheet" s" rel" opt |
s" StyleSheet" s" rel" opt |
| css-file $@ href= |
css-file $@ href= |
| s" text/css" s" type" opt s" link" tag/ |
s" text/css" s" type" opt s" link" tag/ |
| THEN |
THEN THEN |
| s" title" tagged cr |
s" title" tagged cr |
| -env ; |
-env ; |
| |
|
| |
|
| \ top word |
\ top word |
| |
|
| : parse" ( -- addr u ) '" parse 2drop '" parse ; |
|
| |
|
| : maintainer ( -- ) |
: maintainer ( -- ) |
| bl sword mail $! parse" mail-name $! ; |
bl sword mail $! parse" mail-name $! ; |
| : created ( -- ) |
: created ( -- ) |