Publicación en español

Contenido disponible en español. English corporate website ↗

Ejemplos educativos de arquitectura

Documentación de Arquitectura Web y Scripts

Ejemplos ilustrativos de generación estática y procesamiento de datos. Los scripts Python mostrados no forman parte del build actual de este sitio; no constituyen documentación de una plataforma corporativa implementada.

Diagrama educativo: Markdown, generador y HTMLAmpliar esquema ↗
01

Motor SSG en Python: Generador de Reportes de Estudio

Este ejemplo muestra cómo podría funcionar un generador estático minimalista: leer archivos .md desde una carpeta posts/ y producir HTML. El generador, la carpeta y la plantilla del ejemplo no están implementados en este repositorio. El sitio actual utiliza archivos HTML estáticos y un espejo local para previsualización.

// build_blog.py - Script compilador de Markdown a HTML
import os import markdown POSTS_DIR = "posts" OUTPUT_DIR = "blog" TEMPLATE_FILE = "template_post.html" def parse_frontmatter(content): meta = {} body = content if content.startswith("---"): parts = content.split("---", 2) if len(parts) >= 3: raw_meta, body = parts[1], parts[2] for line in raw_meta.strip().split("\n"): if ":" in line: k, v = line.split(":", 1) meta[k.strip()] = v.strip().strip('"').strip("'") return meta, body def build(): if not os.path.exists(OUTPUT_DIR): os.makedirs(OUTPUT_DIR) with open(TEMPLATE_FILE, "r", encoding="utf-8") as f: template = f.read() for filename in os.listdir(POSTS_DIR): if filename.endswith(".md"): with open(os.path.join(POSTS_DIR, filename), "r", encoding="utf-8") as f: meta, body = parse_frontmatter(f.read()) html_body = markdown.markdown(body, extensions=['tables', 'fenced_code']) output = template.replace("{{TITULO}}", meta.get("titulo", "Sin título")) \ .replace("{{FECHA}}", meta.get("fecha", "")) \ .replace("{{CATEGORIA}}", meta.get("categoria", "Estudio")) \ .replace("{{CONTENIDO}}", html_body) out_path = os.path.join(OUTPUT_DIR, filename.replace(".md", "/index.html")) os.makedirs(os.path.dirname(out_path), exist_ok=True) with open(out_path, "w", encoding="utf-8") as f: f.write(output) print(f"Compilado: {out_path}") if __name__ == "__main__": build()
02

Pipeline de Procesamiento y Limpieza de Catálogos (limpiador.py)

Ejemplo de procesamiento de catálogos CSV con Pandas. La referencia a MDWorks pertenece al portafolio freelance personal del fundador, no a contratos de MasterTech SpA. Este fragmento es ilustrativo y requiere validación con datos de prueba antes de usarse.

// limpiador.py - Script de normalización con Pandas
import os import pandas as pd def clean_chilean_price(val): if pd.isna(val): return 0 return int(round(float(val))) for i in range(2, 12): filename = f"products_part_{i}.csv" input_path = os.path.join("raw_data", filename) if os.path.exists(input_path): print(f"Procesando lote {i}: {filename}...") df = pd.read_csv(input_path) # 1. Rellenar Handles hacia abajo para variantes if 'Handle' in df.columns: df['Handle'] = df['Handle'].ffill() # 2. Redondear precios locales if 'Variant Price' in df.columns: df['Variant Price'] = df['Variant Price'].apply(clean_chilean_price) # 3. Guardar archivo limpio output_path = os.path.join("cleaned_data", f"cleaned_{filename}") df.to_csv(output_path, index=False)
03

Estructura ilustrativa del ejemplo

// Frontend & Páginas Públicas

• index.html: Landing comercial B2B.

• styles.css: Estilos compartidos y utilidades.

• arquitectura/index.html: Blueprint y documentación técnica.

• blog/index.html: Catálogo general de artículos.

• blog/modelo-osi-redes/index.html: Reporte de redes.

// Backend & Scripts de Automatización

• build_blog.py: Compilador de reportes Markdown.

• limpiador.py: Procesamiento por lotes CSV con Pandas.

• posts/*.md: Notas de estudio y reportes en Markdown.