OLD | NEW |
1 #!@PYTHON@ | 1 #!@PYTHON@ |
2 | 2 |
3 """ | 3 """ |
4 Postprocess HTML files: | 4 Postprocess HTML files: |
5 add footer, tweak links, add language selection menu. | 5 add footer, tweak links, add language selection menu. |
6 """ | 6 """ |
| 7 import codecs |
7 import re | 8 import re |
8 import os | 9 import os |
9 import sys | 10 import sys |
10 import time | 11 import time |
11 import operator | 12 import operator |
12 | 13 |
13 import langdefs | 14 import langdefs |
14 from functools import reduce | 15 from functools import reduce |
15 | 16 |
16 # This is to try to make the docball not too big with almost duplicate files | 17 # This is to try to make the docball not too big with almost duplicate files |
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 | 352 |
352 for prefix, ext_list in list(pages_dict.items ()): | 353 for prefix, ext_list in list(pages_dict.items ()): |
353 for lang_ext in ext_list: | 354 for lang_ext in ext_list: |
354 file_name = langdefs.lang_file_name (prefix, lang_ext, '.html') | 355 file_name = langdefs.lang_file_name (prefix, lang_ext, '.html') |
355 source_time = os.path.getmtime(file_name) | 356 source_time = os.path.getmtime(file_name) |
356 dest_time = 0 | 357 dest_time = 0 |
357 if os.path.exists(name_filter(file_name)): | 358 if os.path.exists(name_filter(file_name)): |
358 dest_time = os.path.getmtime(name_filter(file_name)) | 359 dest_time = os.path.getmtime(name_filter(file_name)) |
359 if dest_time < source_time: | 360 if dest_time < source_time: |
360 | 361 |
361 in_f = open (file_name) | 362 s = codecs.open (file_name, 'r', 'utf-8').read () |
362 s = in_f.read() | |
363 in_f.close() | |
364 | |
365 s = s.replace ('%', '%%') | 363 s = s.replace ('%', '%%') |
366 s = hack_urls (s, prefix, target, bool (int (versiontup[1]) % 2
)) | 364 s = hack_urls (s, prefix, target, bool (int (versiontup[1]) % 2
)) |
367 s = add_header (s, prefix) | 365 s = add_header (s, prefix) |
368 | 366 |
369 ### add sidebar information | 367 ### add sidebar information |
370 s = s.replace ('<!-- Sidebar Version Tag -->', sidebar_version) | 368 s = s.replace ('<!-- Sidebar Version Tag -->', sidebar_version) |
371 | 369 |
372 ### add footer | 370 ### add footer |
373 if footer_tag_re.search (s) == None: | 371 if footer_tag_re.search (s) == None: |
374 if 'web' in file_name: | 372 if 'web' in file_name: |
375 s = add_footer (s, footer_tag + web_footer) | 373 s = add_footer (s, footer_tag + web_footer) |
376 else: | 374 else: |
377 s = add_footer (s, footer_tag + footer) | 375 s = add_footer (s, footer_tag + footer) |
378 | 376 |
379 available, missing = find_translations (prefix, lang_ext) | 377 available, missing = find_translations (prefix, lang_ext) |
380 page_flavors = process_links (s, prefix, lang_ext, file_name
, missing, target) | 378 page_flavors = process_links (s, prefix, lang_ext, file_name
, missing, target) |
381 # Add menu after stripping: must not have autoselection for
language menu. | 379 # Add menu after stripping: must not have autoselection for
language menu. |
382 page_flavors = add_menu (page_flavors, prefix, available, ta
rget, translation) | 380 page_flavors = add_menu (page_flavors, prefix, available, ta
rget, translation) |
383 for k in page_flavors: | 381 for k in page_flavors: |
384 page_flavors[k][1] = page_flavors[k][1] % subst[page_flavors
[k][0]] | 382 page_flavors[k][1] = page_flavors[k][1] % subst[page_flavors
[k][0]] |
385 out_f = open (name_filter (k), 'w') | 383 out_f = codecs.open (name_filter (k), 'w', 'utf-8') |
386 out_f.write (page_flavors[k][1]) | 384 out_f.write (page_flavors[k][1]) |
387 out_f.close() | 385 out_f.close() |
388 # if the page is translated, a .en.html symlink is necessary for content
negotiation | 386 # if the page is translated, a .en.html symlink is necessary for content
negotiation |
389 if target == 'online' and ext_list != [''] and not os.path.lexists (name
_filter (prefix + '.en.html')): | 387 if target == 'online' and ext_list != [''] and not os.path.lexists (name
_filter (prefix + '.en.html')): |
390 os.symlink (os.path.basename (prefix) + '.html', name_filter (prefix
+ '.en.html')) | 388 os.symlink (os.path.basename (prefix) + '.html', name_filter (prefix
+ '.en.html')) |
OLD | NEW |