From 443b5edd35d5732ee2588e04a40ff3ef77e1c958 Mon Sep 17 00:00:00 2001
From: neodarz <neodarz@neodarz.net>
Date: Sun, 26 May 2019 12:59:57 +0200
Subject: Move generate_menu to external file

---
 generators/__init__.py   |  0
 generators/generators.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)
 create mode 100644 generators/__init__.py
 create mode 100644 generators/generators.py

(limited to 'generators')

diff --git a/generators/__init__.py b/generators/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/generators/generators.py b/generators/generators.py
new file mode 100644
index 00000000..2705ca69
--- /dev/null
+++ b/generators/generators.py
@@ -0,0 +1,48 @@
+#!/bin/python3
+
+import os
+import sys
+import tempfile
+import re
+
+from config.config import *
+
+
+def generate_menu():
+    """Generate menu."""
+
+    sys.stderr.write("generating menu\n")
+
+    fd, tmppath = tempfile.mkstemp()
+    os.close(fd)
+
+    # Put in a list the pages where the menu will be written
+    html_fileList = []
+    for root, dirs, files in os.walk(BUILDDIR):
+        for name in files:
+            if name.endswith(".html"):
+                try:
+                    html_fileList.append(os.path.join(root.split('build/')[1], name))
+                except IndexError:
+                    html_fileList.append(name)
+
+    # Generate the string who contain the links of the menu
+    htmly_website_page = "<ul>"
+    for name in sorted(os.listdir(os.path.join(BUILDDIR, "website"))):
+        if name != "Documents":
+            htmly_website_page += "<a href='/website/"+name+"' class='lia'><li><span class='left-lia'></span><span class='center-lia'>"+name.split('.html')[0]+"</span><span class='right-lia'></span></li></a>"
+    htmly_website_page += "</ul>"
+
+    # Writing the menu in all pages contained in the variable in place of the -- generate menu here --
+    for html_file in html_fileList:
+        with open(tmppath, 'w', encoding='utf-8') as tmpfile:
+            if os.path.exists("build/"+html_file):
+                with open("build/"+html_file, 'r', encoding='utf-8') as indexmd:
+                    lines = indexmd.readlines()
+                    with open("build/"+html_file, 'w', encoding='utf-8') as indexmd:
+                        for line in lines:
+                            indexmd.write(re.sub(r'-- generate menu here --', htmly_website_page, line))
+
+        os.remove(tmppath)
+
+
-- 
cgit v1.2.1