]> git.donarmstrong.com Git - lilypond.git/blobdiff - scripts/build/extract_texi_filenames.py
Completion_rest_engraver: new engraver.
[lilypond.git] / scripts / build / extract_texi_filenames.py
index 61f6014e160894808a8c1cde678b0e24b861abfa..fda8fc1d6168854a39016ab2ad6f8b889dff55e6 100644 (file)
 #        NODE\tFILENAME\tANCHOR
 # LANG is the document language in case it's not 'en'
 # Note: The filename does not have any extension appended!
-# This file can then be used by our texi2html init script to determine
+# This file should then be used by our texi2html init script to determine
 # the correct file name and anchor for external refs
 
+# For translated documentation: cross-references to nodes that exist
+# only in documentation in English are allowed, that's why the already
+# generated map file of docs in English is loaded with
+# --master-map-file option, then the node names that are defined in
+# the map for the manual in English but not in the translated manual
+# are added to the map for the translated manual.
+
+
 import sys
 import re
 import os
@@ -78,7 +86,7 @@ if not os.path.isdir (outdir):
         os.unlink (outdir)
     os.makedirs (outdir)
 
-include_re = re.compile (r'@include ((?!../lily-).*?\.i?texi)$', re.M)
+include_re = re.compile (r'@include ((?!../lily-).*?\.i?te(xi|ly))$', re.M)
 whitespaces = re.compile (r'\s+')
 section_translation_re = re.compile ('^@(node|(?:unnumbered|appendix)\
 (?:(?:sub){0,2}sec)?|top|chapter|(?:sub){0,2}section|\
@@ -154,9 +162,10 @@ def texinfo_file_name(title):
         result = 't_g' + result
     return result
 
-texinfo_re = re.compile (r'@.*{(.*)}')
+texinfo_re = re.compile (r'@.*?{(.*?)}')
 def remove_texinfo (title):
-    return texinfo_re.sub (r'\1', title)
+    title = title.replace ('--', '-')
+    return texinfo_re.sub (r'\1', title).strip ()
 
 def create_texinfo_anchor (title):
     return texinfo_file_name (remove_texinfo (title))
@@ -227,7 +236,7 @@ def process_sections (filename, lang_suffix, page):
             # treat this case here, too: If we already had a section
             # and encounter another one before the next @node, we
             # write out the old one and start with the new values
-            if had_section and this_title:
+            if had_section and split != 'node' and this_title:
                 f.write (this_title + "\t" + this_filename + "\t" + this_anchor + "\n")
                 this_title = remove_texinfo (sec[1])
                 this_anchor = create_texinfo_anchor (sec[1])