| \ tag handling |
\ tag handling |
| |
|
| : .' '' parse postpone SLiteral postpone type ; immediate |
: .' '' parse postpone SLiteral postpone type ; immediate |
| |
: s' '' parse postpone SLiteral ; immediate |
| |
|
| : tag ( addr u -- ) '< emit type '> emit ; |
Variable tag-option |
| |
s" " tag-option $! |
| |
|
| |
: tag ( addr u -- ) '< emit type tag-option $@ type '> emit |
| |
s" " tag-option $! ; |
| : /tag ( addr u -- ) '< emit '/ emit type '> emit ; |
: /tag ( addr u -- ) '< emit '/ emit type '> emit ; |
| : tagged ( addr1 u1 addr2 u2 -- ) 2dup 2>r tag type 2r> /tag ; |
: tagged ( addr1 u1 addr2 u2 -- ) 2dup 2>r tag type 2r> /tag ; |
| |
|
| |
: opt ( addr u opt u -- ) s" " tag-option $+! |
| |
tag-option $+! s' ="' tag-option $+! tag-option $+! |
| |
s' "' tag-option $+! ; |
| |
: href= ( addr u -- ) s" href" opt ; |
| |
: src= ( addr u -- ) s" src" opt ; |
| |
: align= ( addr u -- ) s" align" opt ; |
| |
: mailto: ( addr u -- ) s' href="mailto:' tag-option $+! |
| |
tag-option $+! s' "' tag-option $+! ; |
| |
|
| \ environment handling |
\ environment handling |
| |
|
| Variable oldenv |
Variable oldenv |
| |
|
| Variable link |
Variable link |
| Variable link-suffix |
Variable link-suffix |
| |
Variable iconpath |
| |
|
| Variable do-icon |
|
| Variable do-size |
Variable do-size |
| |
|
| : link-icon? ( -- ) do-icon @ 0= ?EXIT |
: link-icon? ( -- ) |
| link $@ '. $split link-suffix $! 2drop s" .*" link-suffix $+! |
link $@ '. $split link-suffix $! 2drop s" .*" link-suffix $+! |
| s" icons" open-dir throw >r |
s" icons" open-dir throw >r |
| BEGIN |
BEGIN |
| pad $100 r@ read-dir throw WHILE |
pad $100 r@ read-dir throw WHILE |
| pad swap 2dup link-suffix $@ filename-match |
pad swap 2dup link-suffix $@ filename-match |
| IF .' <img src="icons/' type .' ">' true |
IF s" icons/" iconpath $! iconpath $+! |
| |
iconpath $@ src= s" img" tag true |
| ELSE 2drop false THEN |
ELSE 2drop false THEN |
| UNTIL ELSE '( emit link-suffix $@ 2 - type ') emit THEN |
UNTIL ELSE drop THEN \ ELSE '( emit link-suffix $@ 2 - type ') emit THEN |
| r> close-dir throw ; |
r> close-dir throw ; |
| |
|
| : link-size? ( -- ) do-size @ 0= ?EXIT |
: link-size? ( -- ) do-size @ 0= ?EXIT |
| r> close-file throw ; |
r> close-file throw ; |
| |
|
| : link-options ( addr u -- addr' u' ) |
: link-options ( addr u -- addr' u' ) |
| do-icon off do-size off |
do-size off |
| BEGIN dup 1 >= WHILE |
over c@ '% = over 0> and IF do-size on 1 /string THEN ; |
| over c@ CASE |
|
| '% OF do-size on 1 /string ENDOF |
|
| '& OF do-icon on 1 /string ENDOF |
|
| drop EXIT |
|
| ENDCASE |
|
| REPEAT ; |
|
| |
|
| : .link ( -- ) '[ parse type '] parse '| $split |
: .link ( -- ) '[ parse type '] parse '| $split |
| link-options link $! |
link-options link $! |
| link $@len 0= IF 2dup link $! s" .html" link $+! THEN |
link $@len 0= IF 2dup link $! s" .html" link $+! THEN |
| link-icon? .' <a href="' link $@ type .' ">' type s" a" /tag |
link-icon? link $@ href= s" a" tagged |
| link-size? ; |
link-size? ; |
| |
|
| \ line handling |
\ line handling |
| |
|
| longtags set-current |
longtags set-current |
| |
|
| : --- cr s" hr" tag ; |
: --- cr s" hr" tag cr ; |
| : * s" h1" line ; |
: * s" h1" line ; |
| : ** s" h2" line ; |
: ** s" h2" line ; |
| : *** s" h3" line ; |
: *** s" h3" line ; |
| : - 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" >env ; |
| : >> -env ; |
: >> -env ; |
| |
: *> -env ; |
| : . end-sec on ; |
: . end-sec on ; |
| : \ postpone \ ; |
: \ postpone \ ; |
| |
|
| definitions |
definitions |
| |
|
| |
\ Table |
| |
|
| |
Variable table-format |
| |
Variable table# |
| |
|
| |
: |tag table-format $@ table# @ /string drop c@ |
| |
CASE |
| |
'l OF s" left" align= ENDOF |
| |
'r OF s" right" align= ENDOF |
| |
'c OF s" center" align= ENDOF |
| |
ENDCASE >env 1 table# +! ; |
| |
: |d table# @ IF -env THEN s" td" |tag ; |
| |
: |h table# @ IF -env THEN s" th" |tag ; |
| |
: |line s" tr" >env table# off ; |
| |
: line| -env -env cr ; |
| |
|
| |
longtags set-current |
| |
|
| |
: <| s" table" >env bl sword table-format $! ; |
| |
: |> -env ; |
| |
: +| |line |
| |
BEGIN |
| |
|h '| parse type |
| |
>in @ >r char r> >in ! '+ = UNTIL line| ; |
| |
: -| |line |
| |
BEGIN |
| |
|d '| parse type |
| |
>in @ >r char r> >in ! '- = UNTIL line| ; |
| |
|
| |
definitions |
| |
|
| \ parse a section |
\ parse a section |
| |
|
| : refill-loop ( -- ) end-sec off |
: refill-loop ( -- ) end-sec off |
| s" address" >env s" center" >env |
s" address" >env s" center" >env |
| ." Last modified: " time&date rot 0 u.r swap 1- |
." Last modified: " time&date rot 0 u.r swap 1- |
| s" janfebmaraprmayjunjulaugsepoctnovdec" rot 3 * /string 3 min type |
s" janfebmaraprmayjunjulaugsepoctnovdec" rot 3 * /string 3 min type |
| 0 u.r |
0 u.r ." by " |
| .' by <a href="mailto:' mail $@ type .' ">' mail-name $@ type s" a" /tag |
mail $@ mailto: mail-name $@ s" a" tagged |
| -envs ; |
-envs ; |
| |
|
| \ top word |
\ top word |
| |
|
| : field: Create field# @ , 1 field# +! |
: field: Create field# @ , 1 field# +! |
| DOES> @ cells last-entry @ + get-rest ; |
DOES> @ cells last-entry @ + get-rest ; |
| |
|
| |
: >field ' >body @ cells postpone Literal postpone + ; immediate |