index_url=''
top_url=''
changelog_file=''
+content_negotiation = False
package_name = ''
package_version = ''
Options:
--changelog=FILE use FILE as ChangeLog [ChangeLog]
+ --content-negotiation strip .html and .png from urls
--footer=FILE use FILE as footer
--header=FILE use FILE as header
-h, --help print this help
(options, files) = getopt.getopt(sys.argv[1:], 'h', [
'changelog=', 'footer=', 'header=', 'help', 'index=',
- 'name=', 'version='])
+ 'name=', 'content-negotiation', 'version='])
for opt in options:
o = opt[0]
a = opt[1]
if o == '--changelog':
changelog_file = a
+ elif o == '--content-negotiation':
+ content_negotiation = True
elif o == '--footer':
footer_file = a
elif o == '--header':
return s
def do_file (f):
+ if os.path.islink (f):
+ return
+
s = open (f).read()
s = re.sub ('%', '%%', s)
s = re.sub (' \((lilypond|lilypond-internals|music-glossary)\)</a>',
'</a>', s)
- open (f, 'w').write (s)
+ if not os.path.islink (f):
+ open (f, 'w').write (s)
return s
underscore = _
-
+C = 'site'
LANGUAGES = (
- ('site', 'English'),
+ (C, 'English'),
('nl', 'Nederlands'),
('fr', 'French')
)
def file_lang (file, lang):
(base, ext) = os.path.splitext (file)
base = os.path.splitext (base)[0]
- if lang and lang != 'site':
+ if lang and lang != C:
return base + '.' + lang + ext
return base + ext
base_name = os.path.basename (file_name)
- lang = 'site'
- m = re.match ('.*[.]([^.]*).html', file_name)
+ lang = C
+ m = re.match ('.*[.]([^/.]*).html', file_name)
if m:
lang = m.group (1)
LANGUAGES)
# Strip .html, .png suffix for auto language selection (content
- # negotiation).
- page = re.sub ('''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html|.png)(#[^"\']*|)[\'"]''',
- '\\1="\\2\\4"', page)
+ # negotiation). The menu must keep the full extension, so do
+ # this before adding the menu.
+ if content_negotiation:
+ page = re.sub ('''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html|.png)(#[^"\']*|)[\'"]''',
+ '\\1="\\2\\4"', page)
- # Create language menu.
+ # Add menu after stripping: must not have autoselection for language menu.
language_menu = ''
for (prefix, name) in available:
lang_file = file_lang (base_name, prefix)
else:
page = page + languages
+ if content_negotiation and language_menu:
+ os.symlink (file_name, os.path.splitext (os.path.basename (file_name))[0] + '.en.html')
+
return page
- ## end i18n
for f in files:
do_file (f)