Cómo hice esta página
Este apartado recolecta todo lo que hice para poder armar este sitio con Nikola, y detalla las configuraciones que tuve que hacer. El objetivo es que no me olvide de lo que hice, como suele suceder con todo lo que no ejercito seguido. El alemán me persigue. Uh, uh, los alemanes!
Instalación
Para instalar Nikola primero que hay que tener instalado virtualenv en anaconda, para poder instalar los paquetes necesarios sin cagar la instalación principal de python. En este sitio está casi todo, pero lo voy a ir traduciendo y agregando a este apartado.
Modificando conf.py
Algo que Nikola te deja hacer, y es muy bueno si sos un amateur completo del diseño web, es configurar el esqueleto de todo el sitio modificando solo algunas cosas del del archivo conf.py
Instalar un theme en especial
Templates Customizados
Tanto la homepage como otras páginas se procesan usando templates modificados a los que Nikola provee. Para que una página o post usen un template en particuar hay que modificar en el archivo '.rst' los metadatos para incluirlo, por ejemplo;
Si quiero que una página use el template 'storyb', los metadatos deben quedar asi:
..title: titulo ..slug: nombre que se muestra en la barra de direcciones ..date: fecha ..tags: separadas por coma, una, otra ..template: storyb.tmpl
templates |
descripción |
---|---|
hpage |
se usa en la home, 3sm izquierda y 9sm derecha, el ontenido que hay en la parte d e3sm esta hardcodeado en el template |
storyb |
genera una page con una barra lateral sticky que usa la tabla de contenidos del documento |
postb |
genera un post con una barra lateral sticky que usa la tabla de contenidos del documento |
La estructura del sitio
Como Nikola sólo permite una categoría por POST, dejando el lugar más flexible para las TAGS, decidí que sólo las Materias sean categorías. Cada menú de la barra de navegación, cuyo detalle se puede ver en Modificando conf.py representa un apartado que está orientado a diferentes usos. Los TAGS se usan para otras secciones que no sean específicamente material de clase de cada materia.
pages y posts
Como Nikola aplica toda su escturucta de BLOG para generar las páginas INDEX de cada categoría (y de cada TAG), el año de validez para cada planificación, bibliografía, etc. queda determinado por la inClusión de ese dato tanto en la fecha de la publicación del POST como en su título, descripción, etc.
Para evitar la indexación de planificaciones, bibliografías y otros documentos junto a las clases de cada materia, los posts que no sean estrictamente material de aula no llevarán categoría. Solamente se llenarán los tags.
Como regla básica:
Los POSTS es todo lo que quiero que se indexe
Los POSTS sin categoría, es todo lo que NO es una clase
Las PAGES son paginas que no quiero que se indexen, como esta misma.
Nombre de los archivos
La estructura de los nombres para los posts, es
tipo-materia-año-numero-titulo plan-matematica3-2020 cla-matematica3-2020-01-diagnostico
Links de interes
En los siguientes links hay información interesante que voy a ir agregando.
Plugin para sublimetext que hace mas facil trabajar con restructuerdtext acá
una página con un tutorial básico sobre Nikola y links a otros tutoriales.
El flujo de trabajo
Êl contenido online se tipea en restructuredtext
usando sublime-text
o visual sutdio code
(editor que aún no consigo hacer funcionar del toodo bien con restructuredtext``luego, usando ``pandoc
se convierten a latex para generar una versión imprimible de cada clase.
Este flujo aún está en proceso.
Los exámenes
Los examenes se hacen en latex
aprovechando la clase exam, para tener mas detalles de esto, va
a ser mejor tener una entrada de blog específica.
Github_deploy
En conf.py si estamos usando un repositorio de usuario, "usuario.github.io" la rama de deploy es la master.
Si estamos usando otro repositorio la rama es "gh-pages". No olvidar darle "nikola build" luego de estos cambios.
Para que la página pueda ser publicada debemos hacer, desde el terminal y en la carpeta donde esta nuestra página