module spine.io_out.metadata; template outputMetadata() { void outputMetadata(T)( T doc_matters) @safe { import std.file; import std.format; import spine.io_out; mixin InternalMarkup; string[] metadata_; string theme_dark_0 = format(q"┃ body { color : #CCCCCC; background : #000000; background-color : #000000; } a:link { color : #FFFFFF; text-decoration : none; } a:visited { color : #999999; text-decoration : none; } a:hover { color : #000000; background-color : #555555; } a:hover img { background-color : #000000; } a:active { color : #888888; text-decoration : underline; } ┃"); string theme_light_0 = format(q"┃ body { color : #000000; background : #FFFFFF; background-color : #FFFFFF; } a:link { color : #003399; text-decoration : none; } a:visited { color : #003399; text-decoration : none; } a:hover { color : #000000; background-color : #f9f9aa; } a:hover img { background-color : #FFFFFF; } a:active { color : #003399; text-decoration : underline; } ┃"); string theme_dark_1 = format(q"┃ h1 { color : #FFFFFF; background : #000000; } p.letter { color : #FFFFFF; background : #333333; } ┃"); string theme_light_1 = format(q"┃ h1 { color : #FFFFFF; background : #000088; } p.letter { color : #FFFFFF; background : #880000; } ┃"); metadata_ ~= format(q"┃
[ HOME ] Metadata Harvest [ Authors ] [ Topics ]
[ HOME ]
Title: " ~ doc_matters.conf_make_meta.meta.title_full ~ "
"; } else if (doc_matters.opt.action.debug_do || doc_matters.opt.action.very_verbose) { writeln("ERROR no Title information provided in document header ", doc_matters.src.filename_base); } if (!(doc_matters.conf_make_meta.meta.creator_author.empty)) { if (doc_matters.opt.action.harvest_link) { metadata_ ~= "Author: " ~ doc_matters.conf_make_meta.meta.creator_author ~ "
"; } else { metadata_ ~= "Author: " ~ doc_matters.conf_make_meta.meta.creator_author ~ "
"; } } else if (doc_matters.opt.action.debug_do || doc_matters.opt.action.very_verbose) { writeln("ERROR no Author information provided in document header ", doc_matters.src.filename_base); } metadata_ ~= "Published: " ~ doc_matters.conf_make_meta.meta.date_published ~ "
"; if (!(doc_matters.conf_make_meta.meta.rights_copyright.empty)) { metadata_ ~= "Copyright: " ~ doc_matters.conf_make_meta.meta.rights_copyright ~ "
"; } else if (doc_matters.opt.action.debug_do || doc_matters.opt.action.very_verbose) { writeln("WARNING no Copyright information provided in document header ", doc_matters.src.filename_base); } if (!(doc_matters.conf_make_meta.meta.rights_license.empty)) { metadata_ ~= "License: " ~ doc_matters.conf_make_meta.meta.rights_license ~ "
"; } else if (doc_matters.opt.action.debug_do || doc_matters.opt.action.very_verbose) { writeln("WARNING no License information provided in document header ", doc_matters.src.filename_base); } if (!(doc_matters.conf_make_meta.meta.notes_summary.empty)) { metadata_ ~= "Summary:
" ~ doc_matters.conf_make_meta.meta.notes_summary ~ "
"; } else if (doc_matters.opt.action.debug_do) { writeln("WARNING no summary of text provided in document header ", doc_matters.src.filename_base); } if (doc_matters.conf_make_meta.meta.classify_topic_register_arr.length > 0) { metadata_ ~= "Topics:
"; string[] _top = ["", "", "", "", ""]; foreach (topic; doc_matters.conf_make_meta.meta.classify_topic_register_arr.sort!("toUpper(a) < toUpper(b)", SwapStrategy.unstable)) { string[] subject_tree = topic.split(mkup.sep); if (subject_tree.length > 0) { if (subject_tree[0] != _top[0]) { _top[0] = subject_tree[0]; if (doc_matters.opt.action.harvest_link) { metadata_ ~= ""; } else { metadata_ ~= "" ~ subject_tree[0] ~ "
"; } } if (subject_tree.length > 1) { if (subject_tree[1] != _top[1]) { _top[1] = subject_tree[1]; _top[2] = ""; _top[3] = ""; _top[4] = ""; if (doc_matters.opt.action.harvest_link) { metadata_ ~= ""; } else { metadata_ ~= "" ~ subject_tree[1] ~ "
"; } } if (subject_tree.length > 2) { if (subject_tree[2] != _top[2]) { _top[2] = subject_tree[2]; _top[3] = ""; _top[4] = ""; if (doc_matters.opt.action.harvest_link) { metadata_ ~= ""; } else { metadata_ ~= "" ~ subject_tree[2] ~ "
"; } } if (subject_tree.length > 3) { if (subject_tree[3] != _top[3]) { _top[3] = subject_tree[3]; _top[4] = ""; if (doc_matters.opt.action.harvest_link) { metadata_ ~= ""; } else { metadata_ ~= "" ~ subject_tree[3] ~ "
"; } } if (subject_tree.length > 4) { if (subject_tree[4] != _top[4]) { _top[4] = subject_tree[4]; if (doc_matters.opt.action.harvest_link) { metadata_ ~= ""; } else { metadata_ ~= "" ~ subject_tree[4] ~ "
"; } } } } } } } } } else if (doc_matters.opt.action.debug_do) { writeln("WARNING no topic_register classification of text provided in document header ", doc_matters.src.filename_base); } metadata_ ~= "source: " ~ doc_matters.src.filename_base ~ "
"; metadata_ ~= "markup source: [" ~ " zipped pod ] " ~ "[" ~ " pod tree ]
"; metadata_ ~= "outputs: [" ~ " html scroll ] " ~ "[" ~ " html seg ]" ~ "[" ~ " epub ]
"; metadata_write_output(doc_matters, metadata_); } }