Handle nb and sme for now.
-SOURCE = book.xml glossary.xml pdf.xsl
+SOURCE = pdf.xsl
+SOURCE_NB = $(SOURCE) book.xml glossary-nb.xml
+SOURCE_SME = $(SOURCE) book-sme.xml glossary-sme.xml
-all: book.pdf book.epub book.html
+GENERATED = \
+ mekaniker-ordbok-nb.pdf mekaniker-ordbok-nb.epub mekaniker-ordbok-nb.html \
+ mekaniker-ordbok-sme.pdf mekaniker-ordbok-sme.epub mekaniker-ordbok-sme.html
+
+all: $(GENERATED)
clean:
$(RM) *~
distclean: clean
clean:
$(RM) *~
distclean: clean
- $(RM) glossary.xml book.pdf book.epub
+ $(RM) glossary.xml $(GENERATED)
XMLLINTOPTS = --nonet --noout --xinclude --postvalid
lint: book.xml glossary.xml
XMLLINTOPTS = --nonet --noout --xinclude --postvalid
lint: book.xml glossary.xml
-glossary.xml: make-glossary meksme-utf8.xml
- ./make-glossary
+glossary-nb.xml: make-glossary meksme-utf8.xml
+ ./make-glossary --output $@ nb
+
+glossary-sme.xml: make-glossary meksme-utf8.xml
+ ./make-glossary --output $@ sme
DBLATEX_OPTS = \
-b xetex \
DBLATEX_OPTS = \
-b xetex \
-P latex.index.tool=xindy \
-p pdf.xsl
-P latex.index.tool=xindy \
-p pdf.xsl
-book.pdf: $(SOURCE)
- dblatex $(DBLATEX_OPTS) book.xml
+mekaniker-ordbok-nb.pdf: $(SOURCE_NB)
+ dblatex $(DBLATEX_OPTS) -o $@ book.xml
-book.epub: $(SOURCE)
- dbtoepub book.xml
+mekaniker-ordbok-nb.epub: $(SOURCE_NB)
+ dbtoepub book.xml -o $@
+mekaniker-ordbok-nb.html: $(SOURCE_NB)
xmlto html-nochunks book.xml
xmlto html-nochunks book.xml
+ mv book.html $@
+
+book-sme.xml: book.xml
+# dblatex do not understand lang="sme", use "nb" for now
+# sed -e 's/-nb/-sme/' -e 's/"nb"/"sme"/' < $^ >$@
+ sed -e 's/-nb/-sme/' < $^ >$@
+
+mekaniker-ordbok-sme.pdf: $(SOURCE_SME)
+ dblatex $(DBLATEX_OPTS) -o $@ book-sme.xml
+
+mekaniker-ordbok-sme.epub: $(SOURCE_SME)
+ dbtoepub book-sme.xml -o $@
+
+mekaniker-ordbok-sme.html: $(SOURCE_SME)
+ xmlto html-nochunks book-sme.xml
+ mv book-sme.html $@
-<xi:include href="glossary.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+<xi:include href="glossary-nb.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
-def make_glossary_docbook(lang, langcodes):
+def make_glossary_docbook(lang, langcodes, output='glossary.xml'):
import lxml.builder
E = lxml.builder.ElementMaker(
nsmap={
import lxml.builder
E = lxml.builder.ElementMaker(
nsmap={
if 'topic' in e and lang in topicmap:
e['topic'] = topicmap[lang][e['topic']]
if lang in e:
if 'topic' in e and lang in topicmap:
e['topic'] = topicmap[lang][e['topic']]
if lang in e:
+ if ldesc not in e:
+ print("warning: %s missing %s description" % (e[lang], lang))
+ continue
entry = E.glossentry()
if list_topic and 'topic' in e:
entry.append(E.glossterm('%s [%s]' % (e[lang], e['topic'])))
entry = E.glossentry()
if list_topic and 'topic' in e:
entry.append(E.glossterm('%s [%s]' % (e[lang], e['topic'])))
xml_declaration=True,
encoding='UTF-8')
# print(content)
xml_declaration=True,
encoding='UTF-8')
# print(content)
- with open('glossary.xml', 'wb') as f:
+ with open(output, 'wb') as f:
-focus = 'nb'
-#focus = 'sme'
-#focus = 'sv'
-#focus = 'en'
+import argparse
+parser = argparse.ArgumentParser()
+parser.add_argument("langcode", help="language code to generate glossary for")
+parser.add_argument("--output", help="where to store the glossary")
+args = parser.parse_args()
+if 'nb' == args.langcode:
print("Norsk/bokmål")
print()
print("Norsk/bokmål")
print()
- make_glossary_docbook(lang='nb', langcodes=('en', 'sme', 'sv', 'da', 'fi', 'is',))
-elif 'sme' == focus:
+ make_glossary_docbook(lang='nb', langcodes=('en', 'sme', 'sv', 'da', 'fi', 'is',), output=args.output)
+elif 'sme' == args.langcode:
print("Nordsamisk")
print()
print("Nordsamisk")
print()
- make_glossary_docbook(lang='sme', langcodes=('nb', 'en', 'sv', 'da', 'fi', 'is',))
-elif 'en' == focus:
+ make_glossary_docbook(lang='sme', langcodes=('nb', 'en', 'sv', 'da', 'fi', 'is',), output=args.output)
+elif 'en' == args.langcode:
- make_glossary_docbook(lang='en', langcodes=('en', 'nb', 'sme', 'sv', 'da', 'fi', 'is',))
+ make_glossary_docbook(lang='en', langcodes=('en', 'nb', 'sme', 'sv', 'da', 'fi', 'is',), output=args.output)
+else:
+ print("error: Unknown language code %s" % args.langcode)