From: Reinhold Kainhofer Date: Sun, 10 Aug 2008 12:23:49 +0000 (+0200) Subject: Fix link-rewriting for snippets X-Git-Tag: release/2.11.58-1~32^2~77 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=02096171dbc22f8a75020cf3be1ae7b5675b677d;p=lilypond.git Fix link-rewriting for snippets Since the user_ref_re checks for lilypond(|...), it will also match lilypond-snippets and thus also rewrite snippets links from snippet pages, breaking those links. The workaround is to explicitly match lilypond-snippets and then exclude those matches in a replacement function. --- diff --git a/buildscripts/add_html_footer.py b/buildscripts/add_html_footer.py index a1c81f3b14..48beb36265 100644 --- a/buildscripts/add_html_footer.py +++ b/buildscripts/add_html_footer.py @@ -93,8 +93,18 @@ 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))/') +# since lilypond-snippet also matches lilypond, I have to exclude the snippets +# later on in the replacement function from path rewriting. For this, I explicitly +# match the snippets, too, otherwise I would have not way to detect them. snippets_ref_re = re.compile (r'href="(\.\./)?lilypond-snippets') -user_ref_re = re.compile (r'href="(?:\.\./)?lilypond(|-internals|-learning|-program)') +user_ref_re = re.compile (r'href="(?:\.\./)?lilypond(-internals|-learning|-program|-snippets|)') + +# If we are in the snippets dir, don't rewrite links to snippets! +def hack_links_from_snippets (m): + if m.group(1) == '-snippets': + return m.group(0); + else: + return 'href="source/Documentation/user/lilypond'+m.group(1); ## Windows does not support symlinks. # This function avoids creating symlinks for splitted HTML manuals @@ -108,7 +118,7 @@ def hack_urls (s, prefix): 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) + s = user_ref_re.sub (hack_links_from_snippets, s) source_path = os.path.join (os.path.dirname (prefix), 'source') if not os.path.islink (source_path):