¡Bienvenido al repositorio oficial del blog del Club de Programación Competitiva GALLOS de la Universidad Autónoma de Aguascalientes!
Este sitio está construido con Jekyll utilizando el tema Chirpy y está alojado en GitHub Pages.
Important
¡Buscamos contribuidores y mantenedores! Se aceptan Pull Requests (PR) tanto de miembros del club como de personas ajenas a él. Todos los cambios propuestos son bienvenidos; deja tu PR y a la brevedad será analizado y mergeado.
- Ruby (v3.3+)
- Bundler (se instala con
gem install bundler) - GCC/Make (necesario para construir dependencias nativas)
(Para instrucciones detalladas de instalación por Sistema Operativo, Docker o Nix, consulta la sección de Instalación Avanzada).
Clona el repositorio e instala las dependencias:
git clone git@github.com:CPC-GALLOS/CPC-GALLOS.github.io.git
cd CPC-GALLOS.github.io
bundle installbundle exec jekyll serveLuego navega a http://127.0.0.1:4000 o http://localhost:4000/ en tu navegador.
Para crear un nuevo blog post desde la terminal, puedes ejecutar:
bundle exec jekyll post "Titulo del blog"-
Formato del archivo:
YYYY-MM-DD-Titulo_Con_Guiones_Bajos.md -
Idioma: Todo el contenido principal debe estar en Español (los fragmentos de código pueden estar en Inglés o C++).
-
Front Matter (Encabezado Obligatorio):
--- title: "Título" description: "Breve descripción" date: YYYY-MM-DD HH:MM:SS +/-TTTT categories: [Club] # o [Recursos], etc. author: author_id # Debe coincidir con un ID en _data/authors.yml tags: [tag1, tag2] # En minúsculas y separados por comas pin: false mermaid: false image: /assets/img/posts/nombre-de-imagen.png ---
-
Enlaces: DEBEN usar explícitamente
https://(el uso dehttp://causará fallos de compilación en los flujos de trabajo / CI). -
Imágenes: Las imágenes para los artículos deben ubicarse en
assets/img/posts/. (PRECAUCIÓN: No agregues imágenes enassets/img/favicons/).
- La página principal (sección "About") se edita en
_tabs/about.md. - Las demás pestañas y secciones del menú principal también se configuran dentro de la carpeta
_tabs/.
Para una referencia más avanzada sobre el formato de los textos y Markdown en este tema, puedes revisar este ejemplo en raw markdown y su resultado visual renderizado.
| Comando | Descripción |
|---|---|
bundle exec jekyll serve |
Levanta el servidor local para desarrollo |
bundle exec jekyll build |
Compila el sitio en la carpeta _site |
JEKYLL_ENV=production bundle exec jekyll b -d _site |
Compilación lista para producción |
bundle exec htmlproofer _site ... |
Ejecuta las pruebas locales de enlaces rotos y HTML |
bundle update |
Actualiza las dependencias de Ruby en el Gemfile.lock |
Instalación Nativa por Sistema Operativo
- Windows: Usa Scoop:
scoop install main/ruby - macOS: Usa Homebrew:
brew install --cask ruby - Linux: Busca cómo instalar
rubyyruby-dev/ruby-devel(dependiendo de la distribución).- Fedora (RedHat): Necesitas primero descargar gcc, g++ y make con el comando
sudo dnf group install "development-tools". - Arch Linux: Debido a que los paquetes de Ruby en Arch pueden estar desactualizados o ser conflictivos, se recomienda usar Dev Containers (Docker) o Nix.
- Fedora (RedHat): Necesitas primero descargar gcc, g++ y make con el comando
VS Code Dev Containers con Docker (Recomendado)
Esta es una excelente alternativa para tener todo el entorno preparado sin afectar tu sistema base. Sigue la Guía oficial de Dev Containers si tienes dudas.
- Instala Docker según tu SO:
- Windows:
scoop install main/rubyowinget install -e --id Docker.DockerDesktop - macOS:
brew install --cask docker - Arch Linux:
sudo pacman -Sy dockerysudo systemctl enable --now docker
- Windows:
- Instala la extensión de Dev Containers en VS Code.
- Abre el proyecto en VS Code, presiona
F1y busca New Dev Container o Reopen in Container, y luego elige el entorno deruby.
Nix-shell (Alternativa Avanzada)
Si eres usuario de Nix, solamente ejecuta nix-shell dentro de la carpeta del proyecto. Automáticamente se usará el archivo shell.nix configurado con las dependencias necesarias. Una vez adentro, puedes proceder con el bundle install.