aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/doc_reform/io_out/odt.d
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2019-12-05 11:41:09 -0500
committerRalph Amissah <ralph.amissah@gmail.com>2020-01-13 16:06:43 -0500
commit9a91485c10e059dee1374e152e4b068cd9d3866c (patch)
tree4eaa00d4e7e8fb5d576142d364657d5b67d3b766 /src/doc_reform/io_out/odt.d
parentyaml config, provide default if not read (diff)
0.9.2 @safe & @trusted first pass
Diffstat (limited to 'src/doc_reform/io_out/odt.d')
-rw-r--r--src/doc_reform/io_out/odt.d74
1 files changed, 37 insertions, 37 deletions
diff --git a/src/doc_reform/io_out/odt.d b/src/doc_reform/io_out/odt.d
index dbb8e5d..6e792a5 100644
--- a/src/doc_reform/io_out/odt.d
+++ b/src/doc_reform/io_out/odt.d
@@ -15,7 +15,7 @@ template formatODT() {
mixin spineOutputRgxInit;
struct formatODT {
static auto rgx = Rgx();
- string _tags(O)(const O obj){
+ string _tags(O)(const O obj) @safe {
string _tags = "";
if (obj.tags.anchor_tags.length > 0) {
foreach (tag_; obj.tags.anchor_tags) {
@@ -33,7 +33,7 @@ template formatODT() {
}
return _tags;
}
- string _xhtml_anchor_tags(O)(O obj) {
+ string _xhtml_anchor_tags(O)(O obj) @safe {
const(string[]) anchor_tags = obj.tags.anchor_tags;
string tags="";
if (anchor_tags.length > 0) {
@@ -45,7 +45,7 @@ template formatODT() {
}
return tags;
}
- string obj_num(O)(const O obj){ // TODO
+ string obj_num(O)(const O obj) @safe { // TODO
string _on;
_on = (obj.metainfo.object_number.empty)
? ""
@@ -55,7 +55,7 @@ template formatODT() {
));
return _on;
}
- string _footnotes()(string _txt){
+ string _footnotes()(string _txt) @safe {
static auto rgx = Rgx();
_txt = _txt.replaceAll(
rgx.inline_notes_al_regular_number_note,
@@ -74,14 +74,14 @@ template formatODT() {
);
return _txt;
}
- string _bullet(O)(const O obj){
+ string _bullet(O)(const O obj) @safe {
string _b = "";
if (obj.attrib.bullet) {
_b = format(q"┃● ┃",);
}
return _b;
}
- string _indent(O)(string _txt, const O obj) { // TODO
+ string _indent(O)(string _txt, const O obj) @safe { // TODO
// if (obj.attrib.indent_base > 0 ||
// obj.attrib.indent_hang > 0
// ) {
@@ -189,7 +189,7 @@ template formatODT() {
}
return _txt;
}
- string _block_type_delimiters(O)(string[] _block_lines, const O obj) { // TODO
+ string _block_type_delimiters(O)(string[] _block_lines, const O obj) @safe { // TODO
string _block = "";
foreach (i, _line; _block_lines) {
_line = _footnotes(_line);
@@ -222,7 +222,7 @@ template formatODT() {
obj_num(obj));
return _block;
}
- string _special_characters(O)(string _txt, const O obj) {
+ string _special_characters(O)(string _txt, const O obj) @safe {
_txt = _txt
.replaceAll(rgx.xhtml_ampersand, "&amp;")
.replaceAll(rgx.xhtml_quotation, "&#34;")
@@ -231,7 +231,7 @@ template formatODT() {
.replaceAll(rgx.nbsp_char, "&#160;");
return _txt;
}
- string _preserve_white_spaces(O)(string _txt, const O obj) {
+ string _preserve_white_spaces(O)(string _txt, const O obj) @safe {
if (obj.metainfo.is_a == "code" || obj.metainfo.is_a == "verse" || obj.metainfo.is_a == "block") {
_txt = _txt
.replaceAll(rgx.space, "&#160;");
@@ -252,9 +252,9 @@ template formatODT() {
.replaceAll(rgx.inline_mono, format(q"┃<text:span text:style-name="Span_monospace">%s</text:span>┃","$1"));
return _txt;
}
- auto _obj_num(O)(O obj) { // NOT USED YET
+ auto _obj_num(O)(O obj) @safe { // NOT USED YET
struct objNum {
- string reference() {
+ string reference() @safe {
return format(q"┃<text:span text:style-name="Span_subscript">
<text:bookmark-start text:name="%s"/>
<text:bookmark-end text:name="%s"/>
@@ -263,7 +263,7 @@ template formatODT() {
obj.object_number,
);
}
- string display() {
+ string display() @safe {
return format(q"┃<text:span text:style-name="Span_subscript">
%s%s%s
</text:span>┃",
@@ -275,20 +275,20 @@ template formatODT() {
}
return objNum();
}
- string _break_page()() {
+ string _break_page()() @safe {
return format(q"┃
<text:p text:style-name="P_normal_page_new"/>
┃",
);
}
- string _empty_line_break(O)(string _txt, const O obj) {
+ string _empty_line_break(O)(string _txt, const O obj) @safe {
if (obj.metainfo.is_a == "code" || obj.metainfo.is_a == "verse" || obj.metainfo.is_a == "block") {
_txt = _txt
.replaceAll(rgx.br_empty_line, "<br />");
}
return _txt;
}
- string _links(O)(string _txt, const O obj) {
+ string _links(O)(string _txt, const O obj) @safe {
if (obj.metainfo.is_a != "code") {
if (obj.metainfo.is_a == "toc") {
_txt = replaceAll!(m =>
@@ -328,7 +328,7 @@ template formatODT() {
}
return _txt;
}
- string _images(O)(string _txt, const O obj) {
+ string _images(O)(string _txt, const O obj) @safe {
if (_txt.match(rgx.inline_image)) {
_txt = _txt
.replaceAll(rgx.inline_image,
@@ -339,7 +339,7 @@ template formatODT() {
}
return _txt;
}
- string markup(O)(const O obj) {
+ string markup(O)(const O obj) @safe {
/+ markup TODO +/
string _txt = obj.text;
_txt = _special_characters(_txt, obj); // TODO & why both obj & obj.text, consider also in output_xmls.org
@@ -356,7 +356,7 @@ template formatODT() {
string heading(O,M)(
const O obj,
const M doc_matters,
- ) {
+ ) @safe {
assert(obj.metainfo.is_of_part == "body" || "frontmatter" || "backmatter");
assert(obj.metainfo.is_of_section == "body" || "toc" || "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb");
assert(obj.metainfo.is_of_type == "para");
@@ -400,7 +400,7 @@ template formatODT() {
string para(O,M)(
const O obj,
const M doc_matters,
- ) {
+ ) @safe {
assert(obj.metainfo.is_of_part == "body" || "frontmatter" || "backmatter");
assert(obj.metainfo.is_of_section == "body" || "toc" || "endnotes" || "glossary" || "bibliography" || "bookindex" || "blurb");
assert(obj.metainfo.is_of_type == "para");
@@ -419,7 +419,7 @@ template formatODT() {
string quote(O,M)(
const O obj,
const M doc_matters,
- ) {
+ ) @safe {
assert(obj.metainfo.is_of_part == "body");
assert(obj.metainfo.is_of_section == "body" || "glossary" || "bibliography" || "bookindex" || "blurb");
assert(obj.metainfo.is_of_type == "block");
@@ -431,7 +431,7 @@ template formatODT() {
string group(O,M)(
const O obj,
const M doc_matters,
- ) {
+ ) @safe {
assert(obj.metainfo.is_of_part == "body");
assert(obj.metainfo.is_of_section == "body" || "glossary" || "bibliography" || "bookindex" || "blurb");
assert(obj.metainfo.is_of_type == "block");
@@ -449,7 +449,7 @@ template formatODT() {
string block(O,M)(
const O obj,
const M doc_matters,
- ) {
+ ) @safe {
assert(obj.metainfo.is_of_part == "body");
assert(obj.metainfo.is_of_section == "body" || "glossary" || "bibliography" || "bookindex" || "blurb");
assert(obj.metainfo.is_of_type == "block");
@@ -462,7 +462,7 @@ template formatODT() {
string verse(O,M)(
const O obj,
const M doc_matters,
- ) {
+ ) @safe {
assert(obj.metainfo.is_of_part == "body");
assert(obj.metainfo.is_of_section == "body" || "glossary" || "bibliography" || "bookindex" || "blurb");
assert(obj.metainfo.is_of_type == "block");
@@ -475,7 +475,7 @@ template formatODT() {
string code(O,M)(
const O obj,
const M doc_matters,
- ) {
+ ) @safe {
assert(obj.metainfo.is_of_part == "body");
assert(obj.metainfo.is_of_section == "body");
assert(obj.metainfo.is_of_type == "block");
@@ -522,7 +522,7 @@ template formatODT() {
auto tablarize(O)(
const O obj,
string _txt,
- ) {
+ ) @safe {
string[] _table_rows = (_txt).split(rgx.table_delimiter_row);
string[] _table_cols;
string _table;
@@ -557,7 +557,7 @@ template formatODT() {
string table(O,M)(
const O obj,
const M doc_matters,
- ) {
+ ) @safe {
assert(obj.metainfo.is_of_part == "body");
assert(obj.metainfo.is_of_section == "body");
assert(obj.metainfo.is_of_type == "block");
@@ -606,7 +606,7 @@ template outputODT() {
mixin spineOutputRgxInit;
auto rgx = Rgx();
// mixin outputXmlODT;
- string odt_head(I)(I doc_matters) {
+ string odt_head(I)(I doc_matters) @safe {
string _has_tables = format(q"┃
<style:style style:name="Table1" style:family="table">
<style:table-properties style:width="16.999cm" table:align="margins"/>
@@ -717,7 +717,7 @@ template outputODT() {
string odt_body(D,I)(
const D doc_abstraction,
I doc_matters,
- ) {
+ ) @safe {
mixin formatODT;
auto odt_format = formatODT();
string delimit = "";
@@ -840,7 +840,7 @@ template outputODT() {
return doc_odt;
}
- string odt_tail() {
+ string odt_tail() @safe {
string _odt_tail = format(q"┃<text:p text:style-name="P_normal">spine: &lt;<text:a xl:type="simple" xl:href="http://www.doc_reform.org">www.doc_reform.org</text:a>&gt; and &lt;<text:a xl:type="simple" xl:href="http://www.sisudoc.org">www.sisudoc.org</text:a>&gt;</text:p>
</office:text></office:body></office:document-content>┃",);
return _odt_tail;
@@ -848,7 +848,7 @@ template outputODT() {
string content_xml(D,I)(
const D doc_abstraction,
I doc_matters,
- ) {
+ ) @safe {
string _content_xml;
string break_line = (doc_matters.opt.action.debug_do) ? "\n" : "";
string odt_break_page = format(q"┃<text:p text:style-name="P_normal_page_new"/>┃",);
@@ -860,7 +860,7 @@ template outputODT() {
}
string manifest_xml(M)(
auto ref M doc_matters,
- ) {
+ ) @safe {
string _bullet = format(q"┃<manifest:file-entry manifest:media-type="" manifest:full-path="Pictures/bullet_09.png"/>┃");
string[] _images = [ _bullet ];
foreach (image; doc_matters.srcs.image_list) {
@@ -884,7 +884,7 @@ template outputODT() {
}
void images_cp(M)(
auto ref M doc_matters,
- ) {
+ ) @safe {
{ /+ (copy odt images) +/
auto pth_odt = spinePathsODT!()(doc_matters);
foreach (image; doc_matters.srcs.image_list) {
@@ -904,7 +904,7 @@ template outputODT() {
}
string meta_xml(M)(
auto ref M doc_matters,
- ) {
+ ) @safe {
/+ (meta_xml includes output time-stamp) +/
string _meta_xml = format(q"┃<?xml version="1.0" encoding="UTF-8"?>
<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:grddl="http://www.w3.org/2003/g/data-view#" office:version="1.2">
@@ -939,11 +939,11 @@ template outputODT() {
}
// return 0;
}
- string mimetype() {
+ string mimetype() @safe {
string mimetype_ = format(q"┃application/vnd.oasis.opendocument.text┃");
return mimetype_;
}
- string manifest_rdf() {
+ string manifest_rdf() @safe {
string _manifest_rdf = format(q"┃<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="styles.xml">
@@ -965,7 +965,7 @@ template outputODT() {
┃");
return _manifest_rdf;
}
- string settings_xml() {
+ string settings_xml() @safe {
string _settings_xml = format(q"┃<?xml version="1.0" encoding="UTF-8"?>
<office:document-settings xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" office:version="1.2">
<office:settings>
@@ -1065,7 +1065,7 @@ template outputODT() {
┃");
return _settings_xml;
}
- string styles_xml() {
+ string styles_xml() @safe {
string _styles_xml = format(q"┃<?xml version="1.0" encoding="UTF-8"?>
<office:document-styles xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">
<office:font-face-decls>