import os import subprocess import re import shutil from datetime import datetime from dotenv import load_dotenv class MindMapService: def __init__(self): load_dotenv() self.project_name = os.getenv('PROJECT_NAME', 'Project') self.templates_directory = os.path.join( os.path.dirname(os.path.abspath(__file__)), "templates") self.markdowns_directory = os.path.join(os.path.dirname( os.path.abspath(__file__)), "markdowns") self.css_path = 'static/css/styles.css' def convert_markdown_to_html(self): try: result = subprocess.run(['node', 'convert_markdown_to_html.js'], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) print(result.stdout.decode()) except subprocess.CalledProcessError as e: print(f"Error converting markdown to HTML: {e.stderr.decode()}") def style_htmls(self): css_link = f'' # Define el directorio de respaldo con marca de tiempo timestamp = datetime.now().strftime("%Y%m%d%H%M%S") """ backup_directory = os.path.join( self.templates_directory, f"backup_{timestamp}") # Crea el directorio de respaldo si no existe if not os.path.exists(backup_directory): os.makedirs(backup_directory) """ # Copia los archivos originales al directorio de respaldo files = [f for f in os.listdir( self.templates_directory) if f.endswith('.html')] """ for file in files: shutil.copy2(os.path.join( self.templates_directory, file), backup_directory) """ # Itera sobre cada archivo y realiza la sustitución for file in files: file_path = os.path.join(self.templates_directory, file) # Lee el contenido del archivo with open(file_path, 'r', encoding='utf-8') as f: content = f.read() # Agrega el enlace al CSS si no existe if css_link not in content: if '
' in content: new_content = content.replace( '', f'\n {css_link}') elif ' new_content = re.sub( r'()', r'\1\n ' + css_link, content, flags=re.IGNORECASE) else: new_content = re.sub(r'()', r'\1\n\n ' + css_link + '\n', content, flags=re.IGNORECASE) else: new_content = content # Inserta el logo al final del body if '
", '
\n')
# Guarda el contenido modificado en el archivo
with open(file_path, 'w', encoding='utf-8') as f:
f.write(new_content)
print(
f"Enlace al CSS actualizado y logo añadido en todos los archivos HTML. Respaldo creado en el directorio 'backup_{timestamp}'.")
def generate_menu(self):
# Define el template del sidebar con comillas consistentes
sidebar_template = """
"""
# Define el directorio de respaldo con marca de tiempo
timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
backup_directory = os.path.join(
self.templates_directory, f"backup_{timestamp}")
# Crea el directorio de respaldo si no existe
"""
if not os.path.exists(backup_directory):
os.makedirs(backup_directory)
"""
# Copia los archivos originales al directorio de respaldo
files = [f for f in os.listdir(
self.templates_directory) if f.endswith('.html')]
"""
for file in files:
shutil.copy2(os.path.join(
self.templates_directory, file), backup_directory)
"""
# Construye el sidebar con los enlaces a todos los archivos HTML
sidebar_links = ""
for file in files:
file_path = os.path.join(self.templates_directory, file)
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
match = re.search(r"