diff options
Diffstat (limited to 'generators/generators.py')
-rw-r--r-- | generators/generators.py | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/generators/generators.py b/generators/generators.py index 8887bddb..9ad773c2 100644 --- a/generators/generators.py +++ b/generators/generators.py @@ -383,3 +383,137 @@ def generate_sitemap(feed): sitemapfile.write('<?xml version="1.0" encoding="UTF-8"?>\n%s\n' % ET.tostring(sitemap).decode('utf-8')) sys.stderr.write("wrote sitemap.xml\n") + + +def rewrite_title(): + """Override the title of some page for a better render""" + sys.stderr.write("Overriding some titles\n") + + filenames =['build/index.html', + 'build/blog/index.html', + 'build/notes/index.html'] + + for root, dirs, files in os.walk(BUILDDIR): + for name in files: + if re.search(r'website($)',root): + if name.endswith(".html"): + try: + filenames.append("build"+os.path.join(root.split(BUILDDIR)[1], name)) + except IndexError: + filenames.append(name) + if re.search(r'Documents($)',root): + if name.endswith(".html"): + try: + filenames.append("build"+os.path.join(root.split(BUILDDIR)[1], name)) + except IndexError: + filenames.append(name) + if re.search(r'notes($)',root): + if name.endswith(".html"): + try: + filenames.append("build"+os.path.join(root.split(BUILDDIR)[1], name)) + except IndexError: + filenames.append(name) + if re.search(r'blog($)',root): + if name.endswith(".html"): + try: + filenames.append("build"+os.path.join(root.split(BUILDDIR)[1], name)) + except IndexError: + filenames.append(name) + + h1_titles_list = [] + h1_title = [] + + h2_titles_list = [] + h2_title = [] + + fd, tmppath = tempfile.mkstemp() + os.close(fd) + for filename in filenames: + soup = bs4.BeautifulSoup(open(filename), "lxml") + for myh1 in soup.find_all("h1"): + if re.match("^(?!.*article-title).*$", str(myh1)): + h1_id = myh1['id'] + h1_name = myh1.string + + h1_title.append(str(myh1)) + + + myh1['class'] = "h1" + myh1.string = "" + + h1_span_left = soup.new_tag("span") + h1_span_left['class'] = "left-h1" + h1_span_left.string = "█▓▒░" + + h1_span_title = soup.new_tag("span") + h1_span_title['class'] = "title-h1" + h1_span_title.string = "「"+h1_name+"」" + + h1_span_right = soup.new_tag("span") + h1_span_right['class'] = "right-h1" + h1_span_right.string = "░▒▓█" + + myh1.string.insert_before(h1_span_left) + myh1.span.insert_after(h1_span_right) + myh1.span.insert_after(h1_span_title) + + h1_title.append(myh1) + h1_title.append(h1_name) + + h1_titles_list.append(h1_title) + h1_title = [] + + for myh2 in soup.find_all("h2"): + if re.match("^(?!.*blog-index-year-title).*$", str(myh2)): + h2_id = myh2['id'] + h2_name = myh2.string + + h2_title.append(str(myh2)) + + + myh2['class'] = "h2" + myh2.string = "" + + h2_span_left = soup.new_tag("span") + h2_span_left['class'] = "left-h2" + h2_span_left.string = ".: " + + h2_span_title = soup.new_tag("span") + h2_span_title['class'] = "title-h2" + h2_span_title.string = h2_name + + h2_span_right = soup.new_tag("span") + h2_span_right['class'] = "right-h2" + h2_span_right.string = " :." + + myh2.string.insert_before(h2_span_left) + myh2.span.insert_after(h2_span_right) + myh2.span.insert_after(h2_span_title) + + h2_title.append(myh2) + h2_title.append(h2_name) + + h2_titles_list.append(h2_title) + h2_title = [] + + tested_title_list = [] + tested_title = [] + for filename in filenames: + soup = bs4.BeautifulSoup(open(filename), "lxml") + if os.path.exists(filename): + with open(filename, 'r', encoding='utf-8') as indexmd: + lines = indexmd.readlines() + + with open(filename, 'w', encoding='utf-8') as indexmd: + for line in lines: + string = "" + for title in h1_titles_list: + if re.match(".*"+title[0]+".*", line): + string = str(title[1]) + for title in h2_titles_list: + if re.match(".*"+title[0]+".*", line): + string = str(title[1]) + if string != "": + indexmd.write(re.sub(line, string, line)) + else: + indexmd.write(line) |