]> git.donarmstrong.com Git - lilypond.git/blobdiff - buildscripts/add_html_footer.py
Merge branch 'lilypond/translation' of ssh://trettig@git.sv.gnu.org/srv/git/lilypond...
[lilypond.git] / buildscripts / add_html_footer.py
index 7f30c94edca2ae4555372b7875a9906f6f71926d..34ada97aac97d2cb7a5cfc8af0c0c481aab23aec 100644 (file)
@@ -69,7 +69,7 @@ html_re = re.compile ('(.*?)(?:[.]([^/.]*))?[.]html$')
 pages_dict = {}
 
 def build_pages_dict (filelist):
-    """Build dictionnary of available translations of each page"""
+    """Build dictionary of available translations of each page"""
     global pages_dict
     for f in filelist:
         m = html_re.match (f)
@@ -79,7 +79,7 @@ def build_pages_dict (filelist):
                 e = ''
             else:
                 e = g[1]
-            if not g[0] in pages_dict.keys():
+            if not g[0] in pages_dict:
                 pages_dict[g[0]] = [e]
             else:
                 pages_dict[g[0]].append (e)
@@ -90,6 +90,7 @@ def source_links_replace (m, source_val):
 splitted_docs_re = re.compile ('(input/lsr/out-www/lilypond-snippets|Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|lilypond-learning))/')
 
 snippets_ref_re = re.compile (r'href="(\.\./)?lilypond-snippets')
+user_ref_re = re.compile (r'href="(?:\.\./)?lilypond(|-internals|-learning|-program)')
 
 ## Windows does not support symlinks.
 # This function avoids creating symlinks for splitted HTML manuals
@@ -97,10 +98,13 @@ snippets_ref_re = re.compile (r'href="(\.\./)?lilypond-snippets')
 # this also fixes missing PNGs only present in translated docs
 def hack_urls (s, prefix):
     if splitted_docs_re.match (prefix):
-        s = re.sub ('(href|src)="(lily-.*?|.*?[.]png)"', '\\1="../\\2"', s)
+        s = re.sub ('(href|src)="(../lily-.*?|.*?[.]png)"', '\\1="../\\2"', s)
 
-    # fix Snippets xrefs ad hoc
-    s = snippets_ref_re.sub ('href="source/input/lsr/lilypond-snippets', s)
+    # fix xrefs between documents in different directories ad hoc
+    if 'user/out-www/lilypond' in prefix:
+        s = snippets_ref_re.sub ('href="source/input/lsr/lilypond-snippets', s)
+    elif 'input/lsr' in prefix:
+        s = user_ref_re.sub ('href="source/Documentation/user/lilypond\\1', s)
 
     source_path = os.path.join (os.path.dirname (prefix), 'source')
     if not os.path.islink (source_path):
@@ -202,7 +206,7 @@ def process_links (s, prefix, lang_ext, file_name, missing, target):
     return page_flavors
 
 def add_menu (page_flavors, prefix, available, target, translation):
-    for k in page_flavors.keys():
+    for k in page_flavors:
         language_menu = ''
         languages = ''
         if page_flavors[k][0] != '':
@@ -231,15 +235,13 @@ def add_menu (page_flavors, prefix, available, target, translation):
     return page_flavors
 
 
-def add_html_footer (translation,
-                     package_name = '',
+def add_html_footer (package_name = '',
                      package_version = '',
                      target = 'offline',
                      name_filter = lambda s: s):
     """Add header, footer to a number of HTML files
 
     Arguments:
-     translation               gettext translations dictionary, with language codes as keys
      package_name=NAME         set package_name to NAME
      package_version=VERSION   set package version to VERSION
      targets=offline|online    set page processing depending on the target
@@ -248,6 +250,7 @@ def add_html_footer (translation,
             negotiation
      name_filter               a HTML file name filter
     """
+    translation = langdefs.translation
     localtime = time.strftime ('%c %Z', time.localtime (time.time ()))
 
     if re.search ("http://", mail_address):
@@ -281,9 +284,9 @@ def add_html_footer (translation,
                 page_flavors = add_menu (page_flavors, prefix, available, target, translation)
             subst = dict ([i for i in globals().items() if type (i[1]) is str])
             subst.update (dict ([i for i in locals().items() if type (i[1]) is str]))
-            for k in page_flavors.keys():
-                if page_flavors[k][0] in translation.keys():
-                    for name in subst.keys():
+            for k in page_flavors:
+                if page_flavors[k][0] in translation:
+                    for name in subst:
                         subst[name] = translation[page_flavors[k][0]] (subst[name])
                 subst['footer_name_version'] = subst['footer_name_version'] % subst
                 subst['footer_report_errors'] = subst['footer_report_errors'] % subst