REBOL [
    Title: "Makedoc2 customizer"
    Purpose: {Use an embedded version of makedoc2 from rebol.org and
    customize it with a web site link a custom document heading, and
    a logo created from a file selected by the operator.}
]

system/options/binary-base: 64

;; -- This is a function that takes the name of an image file,
;; -- converts it to base-64 encoding, and creates an IMG tag
;; -- that will embed that image in a web page.
IMGTAG: func [
    FILENAME
    ALTDESC
] [
    return rejoin [ 
        {} ALTDESC {}
    ]
]

;; -- This is compressed copy of makedoc2.r from rebol.org,
;; -- with some place holders for a web site name, an h1
;; -- heading, and an embedded base 64 logo.
MAKEDOC-TEMPLATE:
64#{
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
}

MAKEDOC-SCRIPT: decompress MAKEDOC-TEMPLATE

WS-LOGO-FILE: none
SELECT-LOGO-FILE: does [
    if not WS-LOGO-FILE: request-file/only [
        alert "No logo file selected."
        exit
    ]
]

WS-WEBSITE: ""
WS-HEADING: ""
WS-IMAGETAG: ""
GENERATE-MAKEDOC2: does [
    if not WS-LOGO-FILE [
        alert "No logo file available."
        exit
    ]
    WS-WEBSITE: get-face MAIN-WEBSITE
    WS-HEADING: get-face MAIN-HEADING
    WS-IMAGETAG: IMGTAG WS-LOGO-FILE "Logo"
    replace MAKEDOC-SCRIPT "%%CUSTOM-WEBSITE%%" WS-WEBSITE
    replace MAKEDOC-SCRIPT "%%CUSTOM-HEADING%%" WS-HEADING
    replace MAKEDOC-SCRIPT "%%CUSTOM-LOGO%%" WS-IMAGETAG
    write %makedoc2-custom.r MAKEDOC-SCRIPT
    alert "Done."
]

view layout [
    across
    label 200 "Website address under logo"
    MAIN-WEBSITE: field 300
    return
    label 200 "Heading for top of document"
    MAIN-HEADING: field 300
    return
    button 200 "Select logo file" [SELECT-LOGO-FILE]
    MAIN-LOGO: info 300
    return
    button "Quit" [quit]
    button 200 "Generate customized makedoc2" [GENERATE-MAKEDOC2]
]