Rebol Programming/build-markup

From Wikibooks, open books for an open world
< Rebol Programming
Jump to navigation Jump to search

USAGE:[edit | edit source]

BUILD-MARKUP content /quiet 

DESCRIPTION:[edit | edit source]

Return markup text replacing <%tags%> with their evaluated results.

BUILD-MARKUP is a function value.

ARGUMENTS[edit | edit source]

  • content -- (Type: string file url)

REFINEMENTS[edit | edit source]

  • /quiet -- Do not show errors in the output.

SOURCE CODE[edit | edit source]

build-markup: func [
    {Return markup text replacing <%tags%> with their evaluated results.} 
    content [string! file! url!] 
    /quiet "Do not show errors in the output." 
    /local out eval value
    content: either string? content [copy content] [read content] 
    out: make string! 126 
    eval: func [val /local tmp] [
        either error? set/any 'tmp try [do val] [
            if not quiet [
                tmp: disarm :tmp 
                append out reform ["***ERROR" tmp/id "in:" val]
        ] [
            if not unset? get/any 'tmp [append out :tmp]
    parse/all content [
        any [
            end break 
            | "<%" [copy value to "%>" 2 skip | copy value to end] (eval value) 
            | copy value [to "<%" | to end] (append out value)