aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sisudoc/outputs
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2026-09-20 23:43:35 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2026-09-22 12:50:31 -0400
commitcd93d2d8b5062493650673ecdd13139d6f0e5171 (patch)
tree23ab13665da3bc5aca4913ca8f8dc33eb5219bff /src/sisudoc/outputs
parentpod digests: multilingual document digests sorted (diff)
xml: markup language attributes take a bcp 47 tag
Spine names a language as the directory under media/text/ is named, which for a region is the posix form with an underscore, pt_BR. A lang, xml:lang or dc:language value is a BCP 47 (RFC 3066) tag and wants a hyphen, pt-BR. Spine put its own code there unchanged, so a document in a region language produced an invalid attribute in every one of its xhtml files: 138 epubcheck errors for a document of ten segments and a navigation file. src.language_tag is the same language as a tag. The attributes and the dc metadata now read it. Output paths keep src.language, since a path is named after the directory, not after the tag. (assisted by Claude-Code)
Diffstat (limited to 'src/sisudoc/outputs')
-rw-r--r--src/sisudoc/outputs/io_out/epub3.d4
-rw-r--r--src/sisudoc/outputs/io_out/xmls.d16
2 files changed, 10 insertions, 10 deletions
diff --git a/src/sisudoc/outputs/io_out/epub3.d b/src/sisudoc/outputs/io_out/epub3.d
index 8a3baaf..c785895 100644
--- a/src/sisudoc/outputs/io_out/epub3.d
+++ b/src/sisudoc/outputs/io_out/epub3.d
@@ -298,7 +298,7 @@ template outputEPub3() {
<item id="css" href="%s" media-type="text/css"/>
<item id="nav" href="toc_nav.xhtml" media-type="application/xhtml+xml" properties="nav" />
┃",
- doc.matters.src.language,
+ doc.matters.src.language_tag,
_uuid,
xhtml_format.special_characters_plain(doc.matters.conf_make_meta.meta.title_main),
(doc.matters.conf_make_meta.meta.title_sub.empty) ? "" : format(
@@ -309,7 +309,7 @@ template outputEPub3() {
? "" : xhtml_format.special_characters_plain(doc.matters.conf_make_meta.meta.creator_author),
(doc.matters.conf_make_meta.meta.creator_author_surname_fn.empty)
? "" : xhtml_format.special_characters_plain(doc.matters.conf_make_meta.meta.creator_author_surname_fn),
- doc.matters.src.language, // language, fix (needed in dochead metadata)
+ doc.matters.src.language_tag, // language, fix (needed in dochead metadata)
(doc.matters.conf_make_meta.meta.date_published.empty)
? "" : xhtml_format.special_characters_plain_date(doc.matters.conf_make_meta.meta.date_published),
(doc.matters.conf_make_meta.meta.rights_copyright.empty)
diff --git a/src/sisudoc/outputs/io_out/xmls.d b/src/sisudoc/outputs/io_out/xmls.d
index 4ce5434..c97a7e3 100644
--- a/src/sisudoc/outputs/io_out/xmls.d
+++ b/src/sisudoc/outputs/io_out/xmls.d
@@ -308,7 +308,7 @@ template outputXHTMLs() {
special_characters_plain(doc_matters.conf_make_meta.meta.date_available),
special_characters_plain(doc_matters.conf_make_meta.meta.date_valid),
special_characters_plain(doc_matters.conf_make_meta.meta.date_modified),
- doc_matters.src.language,
+ doc_matters.src.language_tag,
special_characters_plain(doc_matters.conf_make_meta.meta.rights_copyright),
doc_matters.opt.action.generated_by ? special_characters_plain(doc_matters.generator_program.name_and_version) : "",
special_characters_plain(doc_matters.generator_program.url_home),
@@ -473,7 +473,7 @@ template outputXHTMLs() {
((type == "seg")
? "../../../css/html_seg.css"
: "../../css/html_scroll.css"),
- doc_matters.src.language,
+ doc_matters.src.language_tag,
site_info_button(doc_matters),
metadata_links,
inline_search_form(doc_matters),
@@ -491,16 +491,16 @@ template outputXHTMLs() {
xmlns="http://www.w3.org/1999/xhtml"
xmlns:epub="http://www.idpf.org/2007/ops"
lang="%s" xml:lang="%s">┃",
- doc_matters.src.language,
- doc_matters.src.language,
+ doc_matters.src.language_tag,
+ doc_matters.src.language_tag,
);
string html_strict = format(q"┃<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:epub="http://www.idpf.org/2007/ops"
lang="%s" xml:lang="%s">┃",
- doc_matters.src.language,
- doc_matters.src.language,
+ doc_matters.src.language_tag,
+ doc_matters.src.language_tag,
);
string o;
o = format(q"┃%s
@@ -540,11 +540,11 @@ template outputXHTMLs() {
special_characters_plain(doc_matters.conf_make_meta.meta.date_available),
special_characters_plain(doc_matters.conf_make_meta.meta.date_valid),
special_characters_plain(doc_matters.conf_make_meta.meta.date_modified),
- doc_matters.src.language,
+ doc_matters.src.language_tag,
special_characters_plain(doc_matters.conf_make_meta.meta.rights_copyright),
special_characters_plain(doc_matters.generator_program.name_and_version),
special_characters_plain(doc_matters.generator_program.url_home),
- doc_matters.src.language,
+ doc_matters.src.language_tag,
);
return o;
}