]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/auxiliar/postprocess_html.py
Fix 1323 - links "Back to documentation index" in HTML docs
[lilypond.git] / python / auxiliar / postprocess_html.py
index 4e41b09803b2200d8b22492f168b96c10990dacb..ab1c68520faf5bd7fbbbfadaa3dc857abb87e7a1 100644 (file)
@@ -16,10 +16,12 @@ import langdefs
 non_copied_pages = ['Documentation/out-www/notation-big-page',
                     'Documentation/out-www/internals-big-page',
                     'Documentation/out-www/learning-big-page',
-                    'Documentation/out-www/application-big-page',
+                    'Documentation/out-www/usage-big-page',
                     'Documentation/out-www/music-glossary-big-page',
                     'Documentation/out-www/contributor',
-                    'Documentation/out-www/changes',
+                    'Documentation/out-www/changes-big-page',
+                    'Documentation/out-www/essay-big-page',
+                    'Documentation/out-www/extending-big-page',
                     'Documentation/out-www/snippets',
                     'out-www/examples',
                     'Documentation/topdocs',
@@ -100,18 +102,18 @@ def source_links_replace (m, source_val):
     return 'href="' + os.path.join (source_val, m.group (1)) + '"'
 
 # More hardcoding, yay!
-splitted_docs_re = re.compile ('(Documentation/out-www/(automated-engraving|essay|notation|music-glossary|application|general|learning|snippets))/')
+splitted_docs_re = re.compile('(Documentation/out-www/(automated-engraving|essay|notation|changes|extending|music-glossary|usage|web|learning|snippets))/')
 lily_snippets_re = re.compile ('(href|src)="([0-9a-f]{2}/lily-.*?)"')
 pictures_re = re.compile ('src="(pictures/.*?)"')
 
 docindex_link_re = re.compile (r'href="index.html"')
-
+manuals_page_link_re = re.compile (r'href="((?:\.\./)+)Documentation/web/manuals')
 
 ## Windows does not support symlinks.
 # This function avoids creating symlinks for splitted HTML manuals
 # Get rid of symlinks in GNUmakefile.in (local-WWW-post)
 # this also fixes missing PNGs only present in translated docs
-def hack_urls (s, prefix):
+def hack_urls (s, prefix, target, is_development_branch):
     if splitted_docs_re.match (prefix):
         s = lily_snippets_re.sub ('\\1="../\\2"', s)
         s = pictures_re.sub ('src="../\\1"', s)
@@ -128,7 +130,15 @@ def hack_urls (s, prefix):
         else:
             indexfile = "index"
         s = docindex_link_re.sub ('href="' + rel_link + indexfile + '.html\"', s)
-
+    # make the "return to doc index" work with the online website.
+    if target == 'online':
+        if (('Documentation/contributor' in prefix) or
+            is_development_branch):
+            manuals_page = 'development'
+        else:
+            manuals_page = 'manuals'
+        s = manuals_page_link_re.sub (r'href="../../\1website/%s'
+                                      % manuals_page, s)
     source_path = os.path.join (os.path.dirname (prefix), 'source')
     if not os.path.islink (source_path):
         return s
@@ -216,7 +226,7 @@ online_links_re = re.compile ('''(href|src)=['"]\
 ((?!Compiling-from-source.html")[^/][.]*[^.:'"]*)\
 ([.]html)(#[^"']*|)['"]''')
 offline_links_re = re.compile ('href=[\'"]\
-((?!Compiling-from-source.html")[^/][.]*[^.:\'"]*)([.]html)(#[^"\']*|)[\'"]')
+((?!Compiling-from-source.html")(?![.]{2}/contributor)[^/][.]*[^.:\'"]*)([.]html)(#[^"\']*|)[\'"]')
 big_page_name_re = re.compile ('''(.+?)-big-page''')
 
 def process_i18n_big_page_links (match, prefix, lang_ext):
@@ -341,12 +351,12 @@ def process_html_files (package_name = '',
             in_f.close()
 
             s = s.replace ('%', '%%')
-            s = hack_urls (s, prefix)
+            s = hack_urls (s, prefix, target, bool (int (versiontup[1]) %  2))
             s = add_header (s, prefix)
 
             ### add footer
             if footer_tag_re.search (s) == None:
-                if 'general' in file_name:
+                if 'web' in file_name:
                     s = add_footer (s, footer_tag + web_footer)
                 else:
                     s = add_footer (s, footer_tag + footer)