Instalando las herramientas para gestión de contenidos.

Asistencia

  • Offray Luna.
  • Sara del Mar Castiblanco
  • Caos Ludd
  • Víctor Hugo
  • ruidajo
  • choff
  • constanza
  • Adri
  • viviana
  • M00

Agenda

  • Recuento.
  • mdBook: Grafoscopedia extendida y escritura asíncrona

Recuento

Al final de la sesión anterior cada un@ quedó con una copia de la Grafoscopedia en su propio disco duro, clonada a partir de un repositorio central:

https://mutabit.com/repos.fossil/grafoscopedia/dir?ci=tip&type=tree

Captura de pantalla del repositorio de la Grafoscopedia Captura de pantalla del repositorio de la Grafoscopedia

Vamos a extender esta manera de presencia en línea usando una herramienta para publicación de libros desde Markdown, que nos permita recopilar, indexar y organizar nuestra historia comunitaria, de manera que sea más fácil de navegar (pasado) y extender (futuro).

mdBook

:::info en → mdBook is a command line tool to create books with Markdown. It is ideal for creating product or API documentation, tutorials, course materials or anything that requires a clean, easily navigable and customizable presentation.

es → mdBook es una herramienta de línea de comandos para crear libros con Markdown. Es ideal para crear documentación de productos o API, tutoriales, materiales para cursos o cualquier cosa que requiera una presentación limpia, fácilmente navegable y personalizable.

https://rust-lang.github.io/mdBook/ :::

Otra documentación en el siguiente enlace → mdBook

Instalación de mdbook

Para Instalar o compilar usando Rust, podemos instalar en principio rustup para gestionar la instalación de rust.

https://www.rust-lang.org/tools/install

para instalar en un sistema operativo Unix-like ejecutamos

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Seleccionamos la instalación por defecto o default.

Debemos reiniciar la terminal o la shell actual y tendremos instalado rustup, rustc y cargo.

Con la utilidad cargo podemos instalar mdbook

cargo install mdbook

Iniciar un libro

  1. Nos ubicamos en la carpeta que contiene a la carpeta donde queremos alojar el libro. Desde la consola hacemos:

    cd ../
    
  2. Inicializamos el libro en la carpeta Grafoscopedia/:

    mdbook init Grafoscopedia
    

    El resultado debería ser algo de este estilo:

     Do you want a .gitignore to be created? (y/n)
     n
     What title would you like to give the book? 
     Grafoscopedia
     2025-02-27 19:37:34 [INFO] (mdbook::book::init): Creating a new book with stub content
    
     All done, no errors...
    

De las líneas anteriores nos enfocaremos en esta:

2025-02-27 19:37:34 [INFO] (mdbook::book::init): Creating a new book with stub content

que se llama un log o registro de bitácora.

  • 2025-02-27 19:37:34 cuando se dio el mensaje.
  • [INFO]: naturaleza del mensaje (habitualmente son info, warning, error).
  • (mdbook::book::init): detalle del mensaje: un mensaje de mdbook (mdbook) sobre un libro (book) sobre el proceso de inicialización (init).
  • Creating a new book with stub content Detalle en humano. Creado un libro nuevo con un trozo de contenido.

Se han creado nuevas subcarpetas y archivos en la carpeta Grafoscopedia/:

Grafoscopedia/
  |_ book/
  |_ src/
  |_ book.toml

Vamos a abrir el archivo book.toml y para ello previamente vamos a instalar lite-xl

  • Para MacOS: https://lite-xl.com/setup/getting-started/#macos
  • Instalador para Windows
  • Para Arch y derivados: yay -S lite-xl

Desde la consola de comandos nos reubicamos en la carpeta Grafoscopedia y escribimos:

lite-xl .

Editamos desde lite-xl el archivo book.toml para que nos quede de esta manera:

[book]
authors = ["La comunidad de Grafoscopio"]
language = "es"
multilingual = true
src = "src"
title = "Grafoscopedia"

Lanzamos el servidor de mdbook:

mdbook serve --open.

Si funciona deberíamos ver algo de este estilo:

2025-02-27 20:31:44 [INFO] (mdbook::book): Book building has started
2025-02-27 20:31:44 [INFO] (mdbook::book): Running the html backend
2025-02-27 20:31:44 [INFO] (mdbook::cmd::serve): Serving on: http://localhost:3000
2025-02-27 20:31:44 [INFO] (mdbook): Opening web browser
2025-02-27 20:31:44 [INFO] (mdbook::cmd::watch::poller): Watching for changes...
2025-02-27 20:31:44 [INFO] (warp::server): Server::run; addr=[::1]:3000
2025-02-27 20:31:44 [INFO] (warp::server): listening on http://[::1]:3000

Y en el navegador web veremos algo como esto:

Captura de pantalla de la interfaz del servidor de mdbook Captura de pantalla de la interfaz del servidor de mdbook

En la barra de navegación aparece algo que dice http://localhost:3000

Regresemos a lite-xl y en la subcarpeta src/ cliqueamos el archivo chapter_1.md

Vamos a crear un error intencional para ejemplificar las convenciones de uso de mdbook.

Vamos al editor y cambiamos el archivo book.toml cambiamos la linea 5:

src = "wiki"

ejecutamos de nuevo mdbook serve --open se produce el siguiente error

Captura de pantalla del error de mdbook en la terminal Captura de pantalla del error de mdbook en la terminal

Para corregir este error renombramos la carpeta src a wiki:

mv src wiki

Y ahora sí podemos relanzar el servidor:

Instalaciones

Los gestores de paquetes usan metáforas distintas para diferentes cosas, por ejemplo para los listados de paquetes para scoop es buckets para brew son casks.

Scoop (gestor de paquetes Scoop)

Scoop es un gestor de paquetes para windows

https://scoop.sh

Más información en Documentación Scoop

Brew (gestor de paquetes Mac/Linux)

Brew es un gestor de paquetes para Mac y Linux

https://brew.sh/

después de instalar brew siguiendo las instrucciones de la página oficial ejecutamos el siguiente comando para instalar fossil

brew install fossil

Arch linux

Yay es una sigla de Yet another Yogurt - An AUR Helper written in Go https://github.com/Jguer/yay un gestor de paquetes del repositorio AUR para Arch y

yay -S fossil

tree

tree es una utilidad de la linea de comandos que escribe gráficamente y de manera arborea en la linea de comandos.

Para MacOS con el gestor de paquetes Brew

brew install tree

Comandos Unix

En la interfaz de comandos o terminal

  • ls → Listar
    • ls ./directorio lista los contenidos del directorio ./directorio
  • cd → Cambiar de directorio
    • cd ~/Documentos cambia de directorio al directorio Documentos en el home ~
  • mkdir → Crear un directorio
    • mkdir nueva-carpeta en donde estamos ubicados crea un directorio llamado nueva-carpeta

Preguntas

En esta sección se pueden consignar preguntas para responder eventualmente que no han sido posible hacer de manera sincronica o para que no se olviden hacerlas

Ejemplo:

  • ¿Que papel cumple fossil en nuestra caja de herramientas?

:::info Para que la pregunta tenga el checkbox o caja para chulear al inicio es necesario que una nueva linea inicie con - [ ] al resolver la pregunta excribiremos dentro del corchete una equis - [x] lo cual marcara como respondida la pregunta y se espera que las lines siguientes a la pregunta o en otro apartado se haya respondido la inquietud. :::

  • A qué hora es la comida?
    • Hicimos el descanso de comida de 19:

Notas varias

En esta sección tomamos notas de datos, chismes y chistes que vamos mencionando a lo largo del taller.

En el principio fue la línea de comandos de Neal Stephenson

  • https://es.wikipedia.org/wiki/Neal_Stephenson
  • https://es.wikipedia.org/wiki/En_el_principio_fue_la_l%C3%ADnea_de_comandos

Por aquí el enlace del libro de Neal Stephenson

SPA (single page application).

Tecnicamente tiddlywiki es una página estática con funciones dínamicas en el navegador aunque puede ser dinámica conectando a un servidor Node.js https://github.com/TiddlyWiki/TiddlyWiki5

Static WebsiteDynamic Website
Content of Web pages can not be change at runtime.Content of Web pages can be changed.
No interaction with database possible.Interaction with database is possible
It is faster to load as compared to dynamic website.It is slower than static website.
Cheaper Development costs.More Development costs.
No feature of Content Management.Feature of Content Management System.
HTML, CSS, Javascript is used for developing the website.Server side languages such as PHP, Node.js are used.
Same content is delivered everytime the page is loaded.Content may change everytime the page is loaded.

https://www.geeksforgeeks.org/static-vs-dynamic-website/