|
| 1 | +# Guía de Contribución 🐍✨ |
| 2 | + |
| 3 | +Gracias por tu interés en contribuir al blog de la comunidad Python Chile! 🚀 |
| 4 | + |
| 5 | +El sitio está hecho con el framework [Pelican](https://getpelican.com/) y los post están escritos ocupando **Markdown**. |
| 6 | + |
| 7 | +Por favor sigue los siguientes puntos para contribuir con un nuevo post o para mejorar el sitio. |
| 8 | + |
| 9 | +# Tabla de contenido |
| 10 | + |
| 11 | +1. Primer Paso Fork de Proyecto |
| 12 | +2. Estructura del Proyecto |
| 13 | +3. Crear un Post |
| 14 | +4. Agregar Contenido de Post |
| 15 | +5. Ambiente de Desarrollo Local |
| 16 | +6. Pull Request Revisón |
| 17 | + |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +# 1. 🍴 Primer Paso Fork de Proyecto |
| 22 | + |
| 23 | +1. Crear un Fork |
| 24 | + |
| 25 | +Dentro del proyecto, en el lado derecho a la altura del nombre de este, clickear **Fork** que debe estar entre los elementos **Watch** y **Star**. |
| 26 | + |
| 27 | +2. Clonar proyecto |
| 28 | + |
| 29 | +Por ejemplo: |
| 30 | + |
| 31 | +```bash |
| 32 | +git clone https://github.com/<user-github>/blogpythonchile.git |
| 33 | +``` |
| 34 | + |
| 35 | +3. Crear una rama para post |
| 36 | + |
| 37 | +```bash |
| 38 | +git checkout -b mi-primer-post |
| 39 | +``` |
| 40 | + |
| 41 | +4. Agregar post |
| 42 | + |
| 43 | +Crea un archivo **Markdown** en `content/post/` y las imágenes a ocupar en `content/img/`. |
| 44 | + |
| 45 | +Para más información dirigirse a punto **3** para crear un post y punto **4** para conocer el formato del contenido. |
| 46 | + |
| 47 | + |
| 48 | +# 2. 📂 Estructura del Proyecto |
| 49 | + |
| 50 | +```bash |
| 51 | +.github/workflows/ # Configuración github actions |
| 52 | +content/ # Elementos para crear un post |
| 53 | + img/ # Imágenes que contiene un post incluyend la imagen de su prevista |
| 54 | + post/ # Markdown para el contenido de un post |
| 55 | +theme/ |
| 56 | + static/ # Estáticos css,img, js. |
| 57 | + templates/ # HTML para construir sitio estático |
| 58 | +pelicanconf.py # Configuración para ambiente de desarrollo o ambiente local |
| 59 | +publishconf.py # Configuración para ambiente de producción |
| 60 | +``` |
| 61 | + |
| 62 | + |
| 63 | +# 3. 📝 Crear un Post |
| 64 | + |
| 65 | +1. Crea un nuevo archivo **Markdown** en `content/post` |
| 66 | + |
| 67 | +Ejemplo: |
| 68 | + |
| 69 | +```bash |
| 70 | +content/post/mi-post.md |
| 71 | +``` |
| 72 | + |
| 73 | +2. Agrega la metadata al principio del archivo |
| 74 | + |
| 75 | +Sigue el siguiente formato |
| 76 | + |
| 77 | +```bash |
| 78 | +--- |
| 79 | +date: 2025-08-22 |
| 80 | +title: Titulo Post |
| 81 | +summary: Resumen de Post |
| 82 | +author: Nombre |
| 83 | +image: img/otros/default.jpg |
| 84 | +tags: python, pelican, tutorial |
| 85 | +--- |
| 86 | + |
| 87 | +Contenido del post comienza aquí... |
| 88 | +``` |
| 89 | + |
| 90 | +>[!WARNING] |
| 91 | +> Toda la metadata es obligatoria como también el formato de esta. |
| 92 | +
|
| 93 | +Descripción de metada: |
| 94 | + |
| 95 | +- **date**: fecha de la creación del post. Formato AAAA-dd-MM. |
| 96 | +- **title**: Título del post. |
| 97 | +- **summary**: Breve resumen del post. |
| 98 | +- **author**: Nombre de quién creó el post. |
| 99 | +- **image**: ruta de la imagen para la prevista del post. |
| 100 | +- **tags**: Conceptos que representen tu post. Máximo 5 y en minúsculas. |
| 101 | + |
| 102 | +>[!NOTE] |
| 103 | +> Si no tienes una imagen para la prevista del post, puedes ocupar la imagen `img/otros/default.jpg` |
| 104 | +
|
| 105 | +Luego de crear la metadata y seguido de esta un **salto de línea**, ya puedes comenzar a escribir el contenido del post. |
| 106 | + |
| 107 | + |
| 108 | +# 4. 🎨 Agregar Contenido de Post |
| 109 | + |
| 110 | +1. Texto |
| 111 | + |
| 112 | +Solamente usar formato de **Markdown**. |
| 113 | + |
| 114 | +2. Bloque de código |
| 115 | + |
| 116 | +Para mostrar código seguir el siguiente formato: |
| 117 | + |
| 118 | +```bash |
| 119 | + texto ... |
| 120 | + |
| 121 | + ```python |
| 122 | + def hello(): |
| 123 | + print("Hello world!") |
| 124 | + ``` |
| 125 | + |
| 126 | + text ... |
| 127 | +``` |
| 128 | + |
| 129 | +El bloque de código debe situarse en la **columna 0**, es decir, no se le debe aplicar ni un tab. |
| 130 | +Al momento de crear el sitio estático, todo bloque de código estará situadio centrado horizontalmente |
| 131 | + |
| 132 | +Es importante también agregar un espacio en blanco antes y después del bloque de código. |
| 133 | + |
| 134 | +El lenguaje que se utiliza en el bóque de código se debe definir al principio de este, como en el ejemplo que se ocupa **python** en **```python**. |
| 135 | + |
| 136 | +3. Imágenes |
| 137 | + |
| 138 | +Debe ser tipo **webpg** toda imagen ocupada en el contenido. |
| 139 | + |
| 140 | +Para poder mostrar cualquier imagen ocupar el siguiente formato: |
| 141 | + |
| 142 | +```bash |
| 143 | + |
| 144 | + |
| 145 | + |
| 146 | +``` |
| 147 | + |
| 148 | +Toda imagen que se ocupe en el post debe estar guarda en la ruta `content/img/<sub-carpeta>/<año>`. Si `<sub-carpeta>` y/o `<año>` no existe, se puede |
| 149 | +crear en el momento de la contribución del post. |
| 150 | + |
| 151 | + |
| 152 | +# 5. ⚙️ Ambiente de Desarrollo Local |
| 153 | + |
| 154 | +1. Instalación de dependencias |
| 155 | + |
| 156 | +>[!NOTE] |
| 157 | +> Se recomienda ocupar un entorno virtual de python. Por ejemplo [virtualenv](https://virtualenv.pypa.io/en/latest/). |
| 158 | +
|
| 159 | +```bash |
| 160 | +pip install -r requirements.txt |
| 161 | +``` |
| 162 | + |
| 163 | +2. Build de Proyecto |
| 164 | + |
| 165 | +```bash |
| 166 | +pelican content |
| 167 | +``` |
| 168 | + |
| 169 | +también puede ser |
| 170 | + |
| 171 | +```bash |
| 172 | +pelican content -s pelicanconf.py -o output |
| 173 | +``` |
| 174 | + |
| 175 | +El comando anterior ocupa la configuración que se encuentra en el archivo **pelicanconf.py** |
| 176 | +para generar el sitio estático en la carpeta **output/** |
| 177 | + |
| 178 | +3. Prevista en local |
| 179 | + |
| 180 | +```bash |
| 181 | +pelican -l |
| 182 | +``` |
| 183 | + |
| 184 | + |
| 185 | +# 6. 🔄 Pull Request Revisón |
| 186 | + |
| 187 | +Cuando tengas tus cambios listos y pusheados en el fork creado anteriormente, debes abrir una pull request. |
| 188 | + |
| 189 | +Considerar lo siguientes puntos para la revisión: |
| 190 | + |
| 191 | +- Tiempo es de **una semana** por motivos de disposición del equipo. |
| 192 | +- Considerar toda sugerencia que pueda aparecer en la revisión. |
| 193 | +- La pull request se puede rechazar si no cumple con la normativa de la comunidad. |
| 194 | + |
| 195 | +--- |
| 196 | + |
| 197 | +# ✅ Buenas Prácticas |
| 198 | + |
| 199 | +- Texto con coherencia, buena ortografía y ordenada. |
| 200 | +- Usar ejemplos, códigos u diagramas para complementar. |
| 201 | +- Revisa cómo se muestra tu post en el sitio de forma local antes de la PR. |
| 202 | + |
| 203 | + |
| 204 | +# 💬 ¿Tienes Consultas? |
| 205 | + |
| 206 | +En caso de cualquier duda, consulta o cualquier inconveniente, puedes escribir a la comunidad de Python Chile en |
| 207 | +el servidor oficial de Discord **Python Chile**. |
0 commit comments