84 lines
3.5 KiB
Nix
84 lines
3.5 KiB
Nix
{ core, ... }:
|
|
let
|
|
inherit(core) debug integer list path set string type;
|
|
in
|
|
{ configuration, resources, ... }:
|
|
{
|
|
dst = "generated/acronyms.lua";
|
|
src
|
|
= path.fromSet "acronyms.lua"
|
|
(
|
|
name:
|
|
value:
|
|
let
|
|
escape = text: string.trim ( string.replace [ "\\" "\n" ] [ "\\\\" " " ] text );
|
|
textDeu
|
|
= if set.isInstanceOf value.text.deu
|
|
then
|
|
"{\n \"${escape value.text.deu.tex or ""}\",\n \"${escape value.text.deu.pdf or ""}\"\n }"
|
|
else
|
|
"\"${escape value.text.deu}\"";
|
|
textEng
|
|
= if value.text ? eng
|
|
&& set.isInstanceOf value.text.eng
|
|
then
|
|
"{\n \"${escape value.text.eng.tex or ""}\",\n \"${escape value.text.eng.pdf or ""}\"\n }"
|
|
else
|
|
"\"${escape value.text.eng or ""}\"";
|
|
sortedBy
|
|
= if value ? "sortedBy"
|
|
then
|
|
if set.isInstanceOf value.sortedBy
|
|
then
|
|
"\n sortedBy\n = {\n deu = \"${escape value.sortedBy.deu or ""}\",\n eng = \"${escape value.sortedBy.eng or ""},\"\n },"
|
|
else if integer.isInstanceOf value.sortedBy
|
|
then
|
|
"\n sortedBy = ${string value.sortedBy},"
|
|
else
|
|
"\n sortedBy = \"${escape value.sortedBy}\","
|
|
else
|
|
"";
|
|
bookmarkAs
|
|
= if value ? "bookmarkAs"
|
|
then
|
|
"\n bookmarkAs = \"${escape value.bookmarkAs}\","
|
|
else
|
|
"";
|
|
chemical
|
|
= if value.data ? "struct"
|
|
then
|
|
"\n \"${escape value.data.struct}\","
|
|
else
|
|
"";
|
|
short
|
|
= if set.isInstanceOf value.data.short
|
|
then
|
|
"{\n deu = \"${escape value.data.short.deu or ""}\",\n eng = \"${escape value.data.sorshortt.eng or ""},\"\n }"
|
|
else
|
|
"\"${escape value.data.short}\"";
|
|
in
|
|
''
|
|
acronyms.list [ "${name}" ]
|
|
= {
|
|
section = sections.${value.section},
|
|
text
|
|
= {
|
|
deu = ${textDeu},
|
|
eng = ${textEng},
|
|
},
|
|
description
|
|
= {
|
|
deu = "${escape value.description.deu or ""}",
|
|
eng = "${escape value.description.eng or ""}",
|
|
},
|
|
data
|
|
= {
|
|
acronyms.types.${value.data.kind},
|
|
${short},${chemical}
|
|
},${sortedBy}${bookmarkAs}
|
|
}
|
|
''
|
|
)
|
|
resources.acronyms or { };
|
|
}
|