[yocto-autobuilder-helper] Wrote python to automatically add a banner at the top of outdated yocto-doc versions,pointing the user to the latest version of the document.

Message ID 20220415145437.45494-1-abongwabonalais@gmail.com
State New
Headers show
Series [yocto-autobuilder-helper] Wrote python to automatically add a banner at the top of outdated yocto-doc versions,pointing the user to the latest version of the document. | expand

Commit Message

Abongwa Bonalais April 15, 2022, 2:54 p.m. UTC
The main issue I am facing now is how to go around the "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa0 in position 99: invalid start byte" for the html script and the "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 158: invalid continuation byte error" for the css script I get after the script has edited some of the files in the folder containing the outdate versions, but it works perfectly in all the other directories I tested in on.
But this error comes after some html and css files have successfully been edited by the script.

Signed-off-by: Abongwa Bonalais Amahnui <abongwabonalais@gmail.com>
---
 trial.py      | 38 +++++++++++++++++++++++++++++
 trialstyle.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 105 insertions(+)
 create mode 100644 trial.py
 create mode 100644 trialstyle.py

Patch

diff --git a/trial.py b/trial.py
new file mode 100644
index 0000000..d96bef5
--- /dev/null
+++ b/trial.py
@@ -0,0 +1,38 @@ 
+# function to append to the content of an html file below the body tag
+content = ' <div id="outdated-warning">This document is for outdated, you should select the <a href="https://docs.yoctoproject.org/">latest release version</a> in this series.</div>'
+
+def append_to_body(html_file, content):
+    # open the html file in read mode
+    with open(html_file, 'r') as f:
+        # read the content of the html file
+        html_content = f.read()
+    # open the html file in write mode
+    with open(html_file, 'w') as f:
+        # write the content of the html file
+        f.write(html_content.replace('<body>', '<body>' + content ))
+
+
+
+import os
+# function to loop through all html files in the current directory and call the append_to_body function
+def loop_through_html_files(directory):
+    # loop through all files in the directory
+    for file in os.listdir(directory):
+        # check if the file is an html file
+        if file.endswith('.html'):
+            # call the append_to_body function
+            append_to_body(os.path.join(directory, file), content)
+#loop_through_html_files('.')
+
+
+# function to loop through all sub directories and recursively call above function
+def loop_through_directories(directory):
+    # loop through all sub directories in the directory
+    for dir in os.listdir(directory):
+        # check if the sub directory is a directory
+        if os.path.isdir(os.path.join(directory, dir)):
+            # call the loop_through_html_files function
+            loop_through_html_files(os.path.join(directory, dir))
+            # call the loop_through_directories function again via recursion
+            loop_through_directories(os.path.join(directory, dir))
+loop_through_directories('.')
diff --git a/trialstyle.py b/trialstyle.py
new file mode 100644
index 0000000..36b1365
--- /dev/null
+++ b/trialstyle.py
@@ -0,0 +1,67 @@ 
+# function to append to the content of an css file below the body class
+content = '''
+ 
+  font-family: Verdana, Sans, sans-serif;
+
+  /*min-width: 640px;*/
+  width: 100%;
+  margin:  0;
+  padding: 0;
+  color: #333;
+  overflow-x: hidden;
+  }
+ 
+ /*added books too*/
+.book{
+margin:  0 auto;
+min-width: 640px;
+padding: 0 5em 5em 5em;
+}
+/* added the id below to make the banner show and be fixed*/
+#outdated-warning{
+text-align: center;
+background-color: rgb(255, 186, 186); 
+color: rgb(106, 14, 14); 
+padding: 0.5em 0; 
+width: 100%;
+position: fixed;
+top: 0;
+
+
+'''
+def append_to_body(html_file, content):
+    # open the html file in read mode
+    with open(html_file, 'r') as f:
+        # read the content of the html file
+        html_content = f.read()
+        html_content.find('body {')
+    # open the html file in write mode
+    with open(html_file, 'w') as f:
+        # write the content of the html file
+        f.write(html_content.replace((html_content[html_content.find('body {'):html_content.find('}')]), 'body {' + content ))
+
+
+
+import os
+# function to loop through all html files in the current directory and call the append_to_body function
+def loop_through_html_files(directory):
+    # loop through all files in the directory
+    for file in os.listdir(directory):
+        # check if the file is an html file
+        if file.endswith('.css'):
+            # call the append_to_body function
+            append_to_body(os.path.join(directory, file), content)
+#loop_through_html_files('.')
+
+
+# function to loop through all sub directories and recursively call above function
+def loop_through_directories(directory):
+    # loop through all sub directories in the directory
+    for dir in os.listdir(directory):
+        # check if the sub directory is a directory
+        if os.path.isdir(os.path.join(directory, dir)):
+            # call the loop_through_html_files function
+            loop_through_html_files(os.path.join(directory, dir))
+            # call the loop_through_directories function again via recursion
+            loop_through_directories(os.path.join(directory, dir))
+loop_through_directories('.')
\ No newline at end of file