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
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)
and os.path.exists (file_lang (file_name, x[0])),
LANGUAGES)
- # Strip .html, .png suffix for auto language selection.
-# page = re.sub ('''(href|src)=[\'"]([^/][.]*[^.:\'"]*)(.html(#[^"]*)|.png)[\'"]''',
-# '\\1="\\2"', page)
+ # Strip .html, .png suffix for auto language selection (content
+ # 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)
page = page + languages
return page
- ## end i18n
for f in files:
do_file (f)