Init
This commit is contained in:
134
old_scripts/apply_template.py
Normal file
134
old_scripts/apply_template.py
Normal file
@@ -0,0 +1,134 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import re
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
# Simplified CSS with meaningful class names
|
||||
FILTERED_CSS = """
|
||||
/* General Styles */
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background-color: #0D0A09;
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Header Styles */
|
||||
.header {
|
||||
background-color: #0FB981;
|
||||
color: white;
|
||||
padding: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Main Content Styles */
|
||||
.main-content {
|
||||
margin: 2rem auto;
|
||||
padding: 1rem;
|
||||
background-color: #282828;
|
||||
color: white;
|
||||
max-width: 800px;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.main-content a {
|
||||
color: #0FB981;
|
||||
}
|
||||
|
||||
.head-vol {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Responsive Adjustments */
|
||||
@media (max-width: 600px) {
|
||||
.main-content {
|
||||
margin: 1rem;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
# Define the HTML template with placeholders for title, nav, left pane, content, and right pane
|
||||
HTML_TEMPLATE = """<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{file_name} - {rpm_name} - Rocky Man Page</title>
|
||||
<style>
|
||||
{css}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header class="header">
|
||||
<h1>{file_name}</h1>
|
||||
</header>
|
||||
<main class="main-content">
|
||||
{content}
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
||||
def clean_html(html_content):
|
||||
"""
|
||||
Removes existing <html>, <head>, and <body> tags from the HTML content.
|
||||
"""
|
||||
html_content = re.sub(r'</?html[^>]*>', '', html_content, flags=re.IGNORECASE)
|
||||
html_content = re.sub(r'</?head[^>]*>', '', html_content, flags=re.IGNORECASE)
|
||||
html_content = re.sub(r'</?body[^>]*>', '', html_content, flags=re.IGNORECASE)
|
||||
return html_content.strip()
|
||||
|
||||
def add_see_also_links(html_content):
|
||||
"""
|
||||
Adds hyperlinks to existing See Also sections in the HTML content.
|
||||
"""
|
||||
soup = BeautifulSoup(html_content, 'html.parser')
|
||||
|
||||
# Locate the section
|
||||
sections = soup.find_all('section', class_='Sh')
|
||||
|
||||
# Loop through sections to find the one with "SEE ALSO"
|
||||
for section in sections:
|
||||
heading = section.find('h1', id="SEE_ALSO") # Look for the specific "SEE ALSO" heading
|
||||
if heading: # If the heading exists in this section
|
||||
extracted_content = []
|
||||
for b_tag in section.find_all('b'):
|
||||
text_with_parentheses = b_tag.get_text() + b_tag.next_sibling.strip() # Combine <b> text and next sibling
|
||||
extracted_content.append(text_with_parentheses)
|
||||
print(extracted_content)
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Wrap HTML content with a consistent theme including nav, left pane, and right pane.")
|
||||
parser.add_argument('--rpm_name', type=str, help="RPM Name")
|
||||
parser.add_argument('--file_name', type=str, help="File Name")
|
||||
args = parser.parse_args()
|
||||
|
||||
# Read HTML content from stdin
|
||||
input_html = sys.stdin.read()
|
||||
|
||||
# Extract or set the title
|
||||
rpm_name = args.rpm_name
|
||||
file_name = args.file_name
|
||||
|
||||
# Clean the HTML content
|
||||
cleaned_content = clean_html(input_html)
|
||||
|
||||
# Add See Also links
|
||||
content_with_links = add_see_also_links(cleaned_content)
|
||||
|
||||
# Fill the HTML template
|
||||
themed_html = HTML_TEMPLATE.format(
|
||||
rpm_name=rpm_name,
|
||||
css=FILTERED_CSS,
|
||||
file_name=file_name,
|
||||
content=content_with_links
|
||||
)
|
||||
|
||||
# Output the themed HTML to stdout
|
||||
print(themed_html)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user