Conversión del sitio de Apuntes a MkDocs
Migración del motor de apuntes de Ruby/Jekyll a Python/MkDocs.
Procedimiento¶
- Renombro el antiguo repositorio construido con Jekyll de
eduardofilo.github.io
aeduardofilo.jekyll
para dejar libre el repositorio que contendrá el nuevo sitio. - Creo directorio:
$ mkdir ~/git/eduardofilo.mkdocs $ cd ~/git/eduardofilo.mkdocs
- Creo entorno Python3 con pipenv:
$ pipenv install --three
- Instalo mkdocs, el tema Material y algunas extensiones:
$ pipenv install mkdocs pygments mkdocs-material
- Instalo versión beta de módulo pyyaml por un aviso de seguridad que da GitHub sobre la versión 3.13 que se instala normalmente. Para ello añado lo siguiente al fichero
Pipfile
en la sección[packages]
. Tras ello ejecutopipenv install
:pyyaml = ">=4.2b1"
- Arranco shell en el entorno:
$ pipenv shell
- Creo el proyecto mkdocs desde el directorio anterior:
$ cd .. $ mkdocs new eduardofilo.mkdocs $ cd eduardofilo.mkdocs
- Copio los directorios con los contenidos del sitio Jekyll (
cursos
,desarrollo
,images
,proyectos
,sistemas
yvarios
) al directoriodocs
. - Configuro el fichero
mkdocs.yml
con el siguiente contenido:# Project information site_name: Apuntes de eduardofilo site_description: Apuntes varios sobre algunas de las cosas que necesito recordar, principalmente sobre Desarrollo y Sistemas. site_author: Eduardo Moreno Lamana # Repository repo_name: 'eduardofilo.mkdocs' repo_url: https://github.com/eduardofilo/eduardofilo.mkdocs # Configuration use_directory_urls: false plugins: - search: lang: ['es'] theme: name: material logo: 'images/eduardofilo.png' language: es feature: tabs: true palette: primary: 'deep orange' accent: 'amber' # Customization extra: social: - type: github-alt link: https://github.com/eduardofilo - type: twitter link: https://twitter.com/eduardofilo - type: linkedin link: https://linkedin.com/in/edumoreno/ - type: tumblr link: https://eduardofilo.es - type: youtube link: https://www.youtube.com/c/EduardoMorenoLamana search: language: 'es' manifest: 'manifest.webmanifest' # Extensions markdown_extensions: - codehilite: linenums: true - toc: permalink: True - admonition
- Copio todos los ficheros del directorio
_posts
de Jekyll al directoriodocs
. - Modifico cada uno de los posts que allí hay de la siguiente manera:
- Retiro los delimitadores del YAML, es decir los tres guiones que hay al principio y al final del bloque.
- Retiro las propiedad
layout
ypublished
y añado una llamadasummary
.
- Genero estructura de navegación en bloque
nav:
al final demkdocs.yml
- Creo fichero
CNAME
dentro del directoriodocs
con el nombre del dominio personalizado. - Creo repositorio en GitHub con nombre
eduardofilo.github.io
. - Creo copia de trabajo del repsitorio anterior:
$ cd ~/git $ git clone git@github.com:eduardofilo/eduardofilo.github.io.git
- Finalmente publico el sitio ejecutando el siguiente comando desde el directorio de trabajo del repositorio anterior (hay que recordar que para que funcione el comando
mkdocs
hay que haber iniciado el entorno virtual antes conpipenv shell
desde el directorio~/git/eduardofilo.mkdocs
):$ cd ~/git/eduardofilo.github.io $ mkdocs gh-deploy --config-file ../eduardofilo.mkdocs/mkdocs.yml --remote-branch master
Falta crear un RSS con el feed que generaba Jekyll antiguamente.