| s' "' tag-option $+! ; |
s' "' tag-option $+! ; |
| : href= ( addr u -- ) s" href" opt ; |
: href= ( addr u -- ) s" href" opt ; |
| : src= ( addr u -- ) s" src" opt ; |
: src= ( addr u -- ) s" src" opt ; |
| |
: alt= ( addr u -- ) s" alt" opt ; |
| : align= ( addr u -- ) s" align" opt ; |
: align= ( addr u -- ) s" align" opt ; |
| : mailto: ( addr u -- ) s' href="mailto:' tag-option $+! |
: mailto: ( addr u -- ) s' href="mailto:' tag-option $+! |
| tag-option $+! s' "' tag-option $+! ; |
tag-option $+! s' "' tag-option $+! ; |
| link-icon? link $@ href= s" a" tagged |
link-icon? link $@ href= s" a" tagged |
| link-size? ; |
link-size? ; |
| |
|
| |
: .img ( -- ) '{ parse type '} parse '| $split |
| |
dup IF 2swap alt= ELSE 2drop THEN src= s" img" tag ; |
| |
|
| \ line handling |
\ line handling |
| |
|
| |
: char? ( -- c ) >in @ char swap >in ! ; |
| : parse-tag ( addr u char -- ) |
: parse-tag ( addr u char -- ) |
| >r r@ parse type |
>r r@ parse type |
| r> parse 2swap tagged ; |
r> parse 2swap tagged ; |
| : .bold ( -- ) s" b" '* parse-tag ; |
: .bold ( -- ) s" b" '* parse-tag ; |
| : .em ( -- ) s" em" '_ parse-tag ; |
: .em ( -- ) s" em" '_ parse-tag ; |
| |
|
| : parse-line ( -- ) |
: do-word ( char -- ) |
| BEGIN >in @ >r char r> >in ! |
|
| CASE |
CASE |
| '* OF .bold ENDOF |
'* OF .bold ENDOF |
| '_ OF .em ENDOF |
'_ OF .em ENDOF |
| '[ OF .link ENDOF |
'[ OF .link ENDOF |
| |
'{ OF .img ENDOF |
| >in @ >r char drop |
>in @ >r char drop |
| source r@ /string >in @ r> - nip type |
source r@ /string >in @ r> - nip type |
| ENDCASE |
ENDCASE ; |
| source nip >in @ = UNTIL ; |
|
| |
: parse-line ( -- ) |
| |
BEGIN char? do-word source nip >in @ = UNTIL ; |
| |
|
| |
: parse-to ( char -- ) >r |
| |
BEGIN char? dup r@ <> WHILE |
| |
do-word source nip >in @ = UNTIL ELSE drop THEN |
| |
r> parse type ; |
| |
|
| \ paragraph handling |
\ paragraph handling |
| |
|
| : |> -env ; |
: |> -env ; |
| : +| |line |
: +| |line |
| BEGIN |
BEGIN |
| |h '| parse type |
|h '| parse-to char? '+ = UNTIL line| ; |
| >in @ >r char r> >in ! '+ = UNTIL line| ; |
|
| : -| |line |
: -| |line |
| BEGIN |
BEGIN |
| |d '| parse type |
|d '| parse-to char? '- = UNTIL line| ; |
| >in @ >r char r> >in ! '- = UNTIL line| ; |
|
| |
|
| definitions |
definitions |
| |
|