Subir archivos a Internet¶
Los sitios web creados con MkDocs consisten en una colecci贸n de archivos en formato HTML que pueden subirse a cualquier servidor web configurado para admitir p谩ginas de tipo "est谩tico", es decir, archivos que se descargan y visualizan en nuestro navegador sin sufrir modificaciones.
Yo utilizo GitHub como repositorio, y hago uso de un servicio llamado GitHub Pages, que permite visualizar la documentaci贸n en forma de sitio web. Para subir los documentos utilizo GitHub Desktop, un programa que podemos descargar e instalar en nuestro ordenador, y cuyo uso requiere de que tengamos instalado un programa llamado Git.
Acerca de Git¶
Git es un programa concebido para el control de versiones de nuestros documentos subidos a repositorios remotos. Resulta especialmente 煤til en el caso de proyectos en los que participan varias personas, facilitando la coordinaci贸n del trabajo en grupo.
Git es un software open source, concebido inicialmente por Linus Torvalds, el creador del sistema operativo Linux.
Vamos a utilizar Git para subir nuestros documentos al repositorio de p谩ginas web. Podemos comprobar que nuestro sistema operativo lo trae de serie si abrimos un terminal de comandos e introducimos:
$ git --version
Si necesitamos instalarlo en nuestro equipo, podemos ir al repositorio de software de nuestro sistema operativo, o bien descargarlo de la p谩gina web oficial de Git.
Git es un software para profesionales, complejo y con muchas funcionalidades que posiblemente no necesitaremos. En todo caso tenemos un libro sobre la materia de libre acceso y descarga en esta p谩gina.
Acerca de GitHub¶
GitHub es una plataforma de desarrollo colaborativo que permite alojar proyectos, tanto personales como comunitarios, utilizando el sistema de control de versiones Git. Cada usuario puede tener uno o varios repositorios, de forma que cada uno de ellos sirve para alojar un proyecto.
Desde junio de 2018, GitHub es propiedad de Microsoft. Aunque esto produjo ciertos recelos iniciales, GitHub contin煤a siendo una plataforma importante para proyectos de c贸digo abierto.
Para registrarnos como usuarios necesitamos una cuenta de correo. Acudimos a la p谩gina principal de GitHub, https://github.com, donde veremos dos enlaces:
Sign In, para acceder si ya tenemos un c贸digo de usuario y contrase帽aSign Up, para crear una nueva cuenta de usuario.
Pulsamos en Sign_Up y seguimos el proceso para crear una cuenta. Se nos pedir谩 que establezcamos un nuevo nombre de usuario, una contrase帽a, y se nos pedir谩 nuestro correo.
Para aprender a manejarnos con GitHub encontraremos los tutoriales en https://docs.github.com/
Iniciar sesi贸n en GitHub¶
En la p谩gina principal de GitHub, https://github.com, pulsamos en el enlace Sign In. Se nos pedir谩 nuestro nombre de usuario o correo electr贸nico y la contrase帽a.
Tras iniciar la sesi贸n, vemos que en todo momento tenemos un icono en la esquina superior derecha con nuestra imagen de usuario. Pulsando sobre ese icono, veremos un men煤 de opciones. Algunas de ellas son:
- Sign out - cierra la sesi贸n y sale de GitHub
- GitHub docs - documentaci贸n de GHitHub
- Settings - configuraci贸n de nuestra cuenta
- Your profile - muestra un resumen de nuestra cuenta y repositorios
- Your repositories - lista de repositorios
Creando un repositorio¶
Vamos a crear un repositorio para cada proyecto de documentaci贸n. Tras desplegar el men煤 de opciones y pulsar en el enlace Your repositories, aparecer谩 una lista de nuestros repositorios, todav铆a vac铆a. Pulsamos en el bot贸n New. Se muestra un formulario para introducir los par谩metros del nuevo repositorio:
- Nombre del repositorio
- Si es p煤blico o privado
- Si queremos iniciarlo vac铆o o con tres posibles archivos:
- README.md - Un resumen explicativo de lo que contiene el repositorio. es un archivo de texto markdown.
.gitignore- Se usar谩 al transferir los archivos desde nuestro ordenador. Contiene una lista de ficheros o carpetas que no deseamos incluir en la transferencia- Licencia - Tipo de licencia aplicable a nuestros contenidos. Ver licencias
Una vez dentro del repositorio, en la barra superior tendremos una serie de etiquetas. Las que m谩s vamos a utilizar son:
-
Code muestra la lista de archivos en el repositorio. Si tenemos un archivo
README.mdse muestra su contenido debajo de la lista, como resumen explicativo del repositorio. -
Settings permite configurar el repositorio (隆incluida su eliminaci贸n!).
Ramas¶
GitHub es un portal colaborativo donde un equipo de personas pueden trabajar en el mismo proyecto. Es posible mantener varias versiones de un repositorio, llamadas "ramas". Al visualizar la lista de archivos, podemos seleccionar la rama (branch) deseada. Por ahora, nos arreglaremos con la rama "main".
Compilar el proyecto¶
Una vez que tenemos una cuenta en GitHub y hemos creado un repositorio para nuestro proyecto, vamos a volver al entorno local de nuestro ordenador y preparar la subida de archivos.
Tras redactar nuestros documentos, tenemos que compilarlos y crear un sitio web en nuestro ordenador:
mkdocs build
Tras obtener los archivos del sitio web en la carpeta site, vamos a a帽adir alg煤n archivo que queramos incluir en la subida:
-
creamos un archivo llamado
README.mdcon una descripci贸n del proyecto. -
a帽adimos un archivo
.gitignore.mdcon una lista de archivos que no queremos subir. Recu茅rdese que, en Linux/Mac, los archivos con un prefijo.se consideran como ocultos. En esa lista de archivos a ignorar, ponemos:.DS_Store .gitignore
No voy a subir el propio archivo .gitignore. Por otra parte, como yo tengo un Mac de Apple, tambi茅n excluyo .DS_Store, que es un archivo oculto en las carpetas de los Mac para controlar la visualizaci贸n del contenido de la carpeta en el ordenador.
Una vez compilada la documentaci贸n, nos situamos en la carpeta que contiene los archivos a subir:
$ cd site
Seguidamente hay que configurarlo como repositorio git:
$ git init
Esto crea en la carpeta site una carpeta oculta que se llama .git, que contiene informaci贸n para coordinar la transferencia de documentos.
Podemos crear un archivo de comandos para automatizar todo el proceso. En Windows, ser谩 un archivo de texto con la extensi贸n .bat. Basta con hacer doble clic sobre el mismo para que se ejecute.
En los ordenadores Mac, para poder ejecutarlo tenemos que pulsar con el bot贸n secundario del rat贸n sobre ese archivo de texto, seleccionar la opci贸n "Obtener Informaci贸n", y establecer Abrir con: Terminal, para que siempre que pulsemos sobre el archivo se ejecute en una ventana de Terminal de comandos.
El texto del script puede ser algo as铆 como:
cd /home/nombreusuario/Documents/proyectos/nombreproyecto
mkdocs build
cp README.md site/README.md
cp ignorar.md site/.gitignore
cd site
git init
V茅ase que en la carpeta raiz de cada proyecto tenemos dos archivos README.md y .gitignore, que copiamos a la carpeta /site en cada compilaci贸n.
GitHub Desktop¶
GitHub Desktop es un programa que permite interaccionar con el repositorio remoto desde nuestro ordenador. Una vez descargado e instalado, al ejecutarse muestra lo siguiente:

Pulsamos sobre el bot贸n sign in. Al conectarnos a GitHub en el navegador web, se nos pedir谩 que activemos la autorizaci贸n para que GitHub Desktop acceda a nuestros repositorios.
Seguimos con el proceso de configuraci贸n e introducimos nuestras credenciales de GitHub:

Una vez configurado, cada vez que iniciemos GitHub Desktop tendremos un resumen de nuestros repositorios. Pulsamos en Add repository from local drive:

Vemos un resumen del repositorio. En la esquina superior izquierda tenemos una lista desplegable para seleccionar otros repositorios o crear uno nuevo:

hacemos la primera subida de archivos pulsando en Publish branch.
Actualizaciones¶
Tras la primera subida de documentos, nuestro proyecto sufrir谩 modificaciones 隆Importante! Nunca debemos modificar los archivos directamente en el repositorio remoto. Hacerlo en local y subir los cambios, para un mejor control.
Al abrir GitHub Desktop y seleccionar un proyecto, veremos un resumen de archivos en nuestro entorno local, indicando los cambios realizados y pendientes de subir:

Para actualizar el repositorio remoto, hacer lo siguiente:
-
pulsar en el bot贸n
Fetch originpara actualizar la sincronizaci贸n de cambios -
bajo la lista de archivos, rellenar la casilla "Summary" con el texto de la operaci贸n a realizar. Por ejemplo, "actualizaci贸n". Los archivos modificados en el repositorio remoto se mostrar谩n con ese texto.
-
pulsar en el bot贸n
commit -
pulsar en el bot贸n
Push origin
Configurar como GitHub Pages¶
Una vez subida la documentaci贸n, accedemos a GitHub con nuestra contrase帽a de usuario y verificamos el contenido del repositorio. El contenido del archivo README.md se visualizar谩 como resumen del proyecto.
El siguiente paso es activar GitHub Pages para que los documentos sean visibles como p谩ginas web. Hacer lo siguiente:
- Entrar en el repositorio. Veremos la lista de archivos subidos
- Pulsar en Settings
- En la barra lateral, pulsar en Pages.
- En el apartado
Sourceseleccionar la 煤nica versi贸n (branch) que tenemos:main - Pulsar en
Save
Aparecer谩 el mensaje:
"Your site is ready to be published at "https://usuario.github.io/repositorio/".
Pasado un breve lapso de tiempo, si refrescamos la p谩gina, veremos el mensaje:
"Your site is live at "https://usuario.github.io/repositorio/"
Gracias a los servicios de GitHub Pages, nuestra documentaci贸n ser谩 accesible mediante la URL:
https://usuario.github.io/nombreproyecto/
sustituyendo "usuario" por nuestro nombre de usuario y "nomproyecto" por el nombre del repositorio.
P谩gina principal del sitio web¶
Todos nuestros proyectos se visualizan mediante la URL:
https://usuario.github.io/nombrerepositorio/
Podemos crear una p谩gina principal accesible bajo el nombre:
https://usuario.github.io/
Para ello, debemos alojarla en un repositorio llamado usuario.github.io, incluyendo los puntos en el nombre y cambiando usuario por nuestro nombre.
Por ejemplo, en mi caso:
-
P谩gina de proyecto:
-
P谩gina principal, con 铆ndice de cuadernos:
En el texto de la p谩gina principal https://usuario.github.io/ podemos poner enlaces a cada proyecto:
# Mi portal de documentaci贸n
Indice de proyectos:
- [Proyecto 1](<https://usuario.github.io/repositorio1/>)
- [Proyecto 2](<https://usuario.github.io/repositorio2/>)