Skip to content

8. Uso del conversor ODT → HTML

Recordamos que la carpeta de trabajo se puede encontrar |AQUÍ|.

Iniciemos PyCharm:

  • En [2], abra un nuevo proyecto;
  • En [1], seleccione la carpeta donde ha guardado la carpeta de trabajo;
  • En [2], confirme esta selección;
  • En [1], su proyecto Python;
  • En [2], confirme para que el sistema de seguridad de Windows no le moleste;
  • En [3], elija un intérprete de Python;
  • En [1], elige el intérprete de Python que instalaste en el apartado5 ;

El conversor Gemini / ChatGPT utiliza dependencias de Python que debes instalar. Vamos a preguntarle a Gemini cuáles son:

La respuesta de Gemini es la siguiente:

Vamos a instalar estas dependencias:

 
  • En [1], abra un terminal;
  • En [2], escribe el comando proporcionado por Gemini;

La respuesta es la siguiente:


PS C:\Data\st-2025\GitHub Pages\word-odt-vers-html\v2> pip install odfpy unidecode mkdocs mkdocs-material
Se utiliza la instalación del usuario por defecto, ya que la carpeta site-packages normal no es escribible
Requisito ya cumplido: odfpy en c:\users\serge\appdata\roaming\python\python313\site-packages (1.4.1)
Requisito ya cumplido: unidecode en c:\users\serge\appdata\roaming\python\python313\site-packages (1.4.0)
Requisito ya cumplido: mkdocs en c:\users\serge\appdata\roaming\python\python313\site-packages (1.6.1)
Requisito ya cumplido: mkdocs-material en c:\users\serge\appdata\roaming\python\python313\site-packages (9.7.0)
Requisito ya cumplido: defusedxml en c:\users\serge\appdata\roaming\python\python313\site-packages (de odfpy) (0.7.1)
Requisito ya cumplido: click>=7.0 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (8.3.1)
Requisito ya cumplido: colorama>=0.4 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (0.4.6)
Requisito ya cumplido: ghp-import>=1.0 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (2.1.0)
Requisito ya cumplido: jinja2>=2.11.1 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (3.1.6)
Requisito ya cumplido: markdown>=3.3.6 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (3.10)
Requisito ya cumplido: markupsafe>=2.0.1 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (3.0.2)
Requisito ya cumplido: mergedeep>=1.3.4 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (1.3.4)
Requisito ya cumplido: mkdocs-get-deps>=0.2.0 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (0.2.0)
Requisito ya cumplido: packaging>=20.5 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (25.0)
Requisito ya cumplido: pathspec>=0.11.1 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (0.12.1)
Requisito ya cumplido: pyyaml-env-tag>=0.1 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (1.1)
Requisito ya cumplido: pyyaml>=5.1 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (6.0.2)
Requisito ya cumplido: watchdog>=2.0 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs) (6.0.0)
Requisito ya cumplido: babel>=2.10 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs-material) (2.17.0)
Requisito ya cumplido: backrefs>=5.7.post1 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs-material) (6.1)
Requisito ya cumplido: mkdocs-material-extensions>=1.3 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs-material) (1.3.1)
Requisito ya cumplido: paginate>=0.5 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs-material) (0.5.7)
Requisito ya cumplido: pygments>=2.16 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs-material) (2.19.2)
Requisito ya cumplido: pymdown-extensions>=10.2 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs-material) (10.17.2)
Requisito ya cumplido: requests>=2.26 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs-material) (2.32.5)
Requisito ya cumplido: python-dateutil>=2.8.1 en c:\users\serge\appdata\roaming\python\python313\site-packages (de ghp-import>=1.0->mkdocs) (2.9.0.post0)
Requisito ya cumplido: platformdirs>=2.2.0 en c:\users\serge\appdata\roaming\python\python313\site-packages (de mkdocs-get-deps>=0.2.0->mkdocs) (4.5.0)
Requisito ya cumplido: six>=1.5 en c:\users\serge\appdata\roaming\python\python313\site-packages (de python-dateutil>=2.8.1->ghp-import>=1.0->mkdocs) (1.17.0)
Requisito ya cumplido: charset_normalizer<4,>=2 en c:\users\serge\appdata\roaming\python\python313\site-packages (de requests>=2.26->mkdocs-material) (3.4.3)
Requisito ya cumplido: idna<4,>=2.5 en c:\users\serge\appdata\roaming\python\python313\site-packages (de requests>=2.26->mkdocs-material) (3.10)
Requisito ya cumplido: urllib3<3,>=1.21.1 en c:\users\serge\appdata\roaming\python\python313\site-packages (de requests>=2.26->mkdocs-material) (2.5.0)
Requisito ya cumplido: certifi>=2017.4.17 en c:\users\serge\appdata\roaming\python\python313\site-packages (de requests>=2.26->mkdocs-material) (2025.8.3)
PD: C:\Data\st-2025\GitHub Pages\word-odt-vers-html\v2> 

En mi PC, ya estaba todo instalado. Si no es tu caso, se instalarán todas las dependencias requeridas.

Ahora podemos utilizar el conversor. En el terminal abierto, escribe el siguiente comando:


PS C:\Data\st-2025\GitHub Pages\word-odt-vers-html\v2> python .\convert_odt_v356.py .\word-odt-vers-html-janv-2026.odt .\config.py      
--- Convertidor de ODT a MkDocs V356 ---
Procesando .\word-odt-vers-html-janv-2026.odt...
Copiado: google5179c0eaff293e02.html
Copiado: robots.txt
Copiado: word-odt-a-html-ene-2026.pdf
Copiado: word-odt-a-html-ene-2026.zip
Escaneando referencias...
Generación de Markdown...
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar (WW)' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='Estándar (WW)' Texto='...'
[DEBUG PRE-H1] Tag=text:p Style='P1' Text='Convertir un documento Word u ODT a un sitio est...'
>>> TÍTULO DEL DOCUMENTO ENCONTRADO: Convertir un documento Word u ODT a un sitio HTML estático compatible con MkDocs con las IA Gemini 3 y ChatGPT 5.2
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P2' Texto='...'
[DEBUG PRE-H1] Tag=text:p Style='P2' Text='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P2' Texto='...'
[DEBUG PRE-H1] Tag=text:p Style='P3' Text='Serge Tahé, enero de 2026...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P2' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P2' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P2' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P4' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P4' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P4' Texto='...'
[DEBUG PRE-H1] Etiqueta=text:p Estilo='P4' Texto='Este sitio web ha sido creado con el conversor [Word o ...'
[DEBUG PRE-H1] Tag=text:h Style='P5' Text='Introducción...'
>>> CAPÍTULO 1: 1 Introducción
>>> CAPÍTULO 1: 2 Ejemplos de este documento
>>> CAPÍTULO 2: 2.1 Las listas
>>> CAPÍTULO 3: 2.1.1 Listas con viñetas
>>> CAPÍTULO 3: 2.1.2 Listas numeradas
>>> CAPÍTULO 3: 2.1.3 Listas mixtas 1
>>> CAPÍTULO 3: 2.1.4 Listas mixtas 2
>>> CAPÍTULO 2: 2.2 Los bloques de código
>>> CAPÍTULO 3: 2.2.1 Bloques de código enriquecido (Eclipse, Visual Studio, ...)
>>> CAPÍTULO 3: 2.2.2 Bloques de código sin formato (texto sin formato)
>>> CAPÍTULO 2: 2.3 Los enlaces
>>> CAPÍTULO 2: 2.4 El enriquecimiento de texto
>>> CAPÍTULO 2: 2.5 Un título también se puede formatear.
>>> CAPÍTULO 2: 2.6 Las imágenes
>>> CAPÍTULO 2: 2.7 Los caracteres que hay que proteger
>>> CAPÍTULO 2: 2.8 Las tablas
>>> CAPÍTULO 2: 2.9 Las notas al pie
>>> CAPÍTULO 1: 3 Lo que hay en Internet
>>> CAPÍTULO 1: 4 La indicación inicial en Gemini 3
>>> CAPÍTULO 1: 5 Crear un entorno de trabajo en Python
>>> CAPÍTULO 1: 6 La carpeta de trabajo del conversor
>>> CAPÍTULO 1: 7 El archivo de configuración del conversor
>>> CAPÍTULO 1: 8 Uso del conversor ODT → HTML
>>> CAPÍTULO 1: 9 Uso del conversor DOCX → HTML
>>> CAPÍTULO 1: 10 Creación del sitio HTML estático
>>> CAPÍTULO 1: 11 Revisión del sitio HTML generado
>>> CAPÍTULO 2: 11.1 La barra superior del sitio
>>> CAPÍTULO 2: 11.2 El pie de página del sitio
>>> CAPÍTULO 2: 11.3 La página de inicio
>>> CAPÍTULO 2: 11.4 Las listas con viñetas
>>> CAPÍTULO 2: 11.5 Las listas numeradas
>>> CAPÍTULO 3: 11.5.1 Listas mixtas 1
>>> CAPÍTULO 3: 11.5.2 Listas mixtas 2
>>> CAPÍTULO 2: 11.6 Los bloques de código enriquecidos
>>> CAPÍTULO 3: 11.6.1 Ejemplo 1
>>> CAPÍTULO 3: 11.6.2 Ejemplo 2
>>> CAPÍTULO 3: 11.6.3 Ejemplo 3
>>> CAPÍTULO 2: 11.7 Los bloques de código sin formato (texto sin formato)
>>> CAPÍTULO 3: 11.7.1 Ejemplo 1
>>> CAPÍTULO 3: 11.7.2 Ejemplo 2
>>> CAPÍTULO 3: 11.7.3 Ejemplo 3
>>> CAPÍTULO 2: 11.8 Otros bloques de código
>>> CAPÍTULO 2: 11.9 Los enlaces
>>> CAPÍTULO 2: 11.10 El enriquecimiento del texto
>>> CAPÍTULO 2: 11.11 Las imágenes
>>> CAPÍTULO 2: 11.12 Los caracteres especiales
>>> CAPÍTULO 2: 11.13 Las tablas
>>> CAPÍTULO 2: 11.14 Notas al pie
>>> CAPÍTULO 2: 11.15 Anomalías conocidas
>>> CAPÍTULO 2: 11.16 Otros casos
>>> CAPÍTULO 1: 12 Alojamiento del sitio HTML en GitHub
>>> CAPÍTULO 1: 13 Realizar el seguimiento del sitio con Google Analytics y Google Search Console
>>> CAPÍTULO 1: 14 Conclusión
Terminado.
  • Línea 1: el comando que convierte el documento ODT en un sitio MkDocs [python convert_odt_v356.py .\word-odt-vers-html-janv-2026.odt .\config.py]. ]. Adapta el número de versión (aquí 356) a la versión que hayas descargado. El primer parámetro del convertidor es el documento ODT que se va a convertir, el segundo es el archivo de configuración del convertidor;
  • líneas 4-7: los archivos que el conversor copia en la raíz del sitio MkDocs que crea;
  • líneas 10-34: depuración de los estilos de los párrafos que preceden al primer título de nivel 1. Estos párrafos constituirán la página de inicio. Uno de los párrafos hace las veces de título de la página de inicio y, por tanto, del sitio. Es el párrafo de la línea 21. Anotamos su estilo P1. Debemos incluir este estilo en el archivo de configuración [config_styles]:

STYLES = {
    "style_names": [
        "P1"
    ]
}
  • líneas 35-88: le pedí a la IA que registrara todos los capítulos que encontrara;

Esta ejecución ha modificado tu carpeta de trabajo:

 
  • En [1], [docs] es el sitio MkDocs que ha creado el conversor Gemini / ChatGPT. Quizás te interese visitarlo;
  • en [2], se ha creado una carpeta [overrides]. La utilizará el generador [build] del sitio HTML;
  • en [3]: [analytics.html] se utilizará para el seguimiento del sitio mediante Google Analytics. [footer.html] es el pie de página que ha definido en el archivo [config.py];

Ya podríamos utilizar el sitio MkDocs. El comando [python -m mkdocs serve] permite visualizarlo. Puedes probarlo:


PS C:\Data\st-2025\GitHub Pages\word-odt-vers-html\v2> python -m mkdocs serve
INFO    -  Compilando la documentación...
INFO    -  Limpiando el directorio del sitio
INFO    -  El archivo de documentación «les-exemples.md» contiene un enlace «#_Les_exemples», pero no existe tal ancla en esta página.
INFO    -  Documentación generada en 0,41 segundos
INFO    -  [15:46:06] Servido en http://127.0.0.1:8000/word-odt-vers-html-janv-2026/

Haga clic con Ctrl en el enlace de la línea 6. Debería aparecer el sitio web de MkDocs:

Este es el resultado de un largo trabajo. Para detener el servidor de MkDocs, simplemente pulse Ctrl-C en el terminal que lo inició.