Skip to content

Contribuye a la Web de OpenVE

sadasant edited this page Sep 16, 2012 · 9 revisions

Para contribuir con OpenVE es necesario comprender algunos aspectos importantes de la plataforma, comenzando por qué tecnologías utiliza, y en base a esas tecnologías qué condiciones hay que tener en cuenta.

openve.github.com utiliza git y está hospedado en Github.

Utilizar estas herramientas requiere de cierta disciplina, git permite el desarrollo colaborativo (distribuido), sin embargo quienes quieran aportar podrán hacerlo directamente desde Git sólo si son miembros de la comunidad OpenVE, para lo cual debes leer esto primero. Si no eres miembro de la comunidad aún, para aumentar nuestra confianza en ti y para que demuestres tus capacidades, es más recomendable hacer un fork del repositorio y luego solicitar unir el código que aportes con un pull request.

Si ya eres miembro de la comunidad y quieres hacer un cambio, el mejor modo de hacerlo es haciendo una nueva rama con el nombre de tu cambio a realizar (solo letras, números y signos como estos: _-, no uses símbolos como estos: #?!/\ porque Github utiliza los nombres de las ramas en las URLs).

Para hacer una nueva rama, desde tu terminal puedes hacer:

git checkout -b mi_nueva_rama

De inmediato estarás en un sitio seguro donde podrás hacer cambios. Cuando quieras guardar los cambios, recuerda hacer git commit, y cuando quieras subir los cambios a Github, hazlo con la siguiente línea:

git push origin mi_nueva_rama

Cuando ya hayas subido los cambios que quieres agregar a este repositorio, por favor procede a realizar un pull request de tu rama, para así analizar los cambios antes de hacerlos públicos.

Sobre la arquitectura de Jekyll

Jekyll funciona distinto a como harías un sitio web tradicional, debes estructurar las cosas y luego el servidor, antes de arrancar, se encarga de hacer los cambios pertinentes en el resultado final, una carpeta con todo el sitio generado. Si tienes experiencia con meta lenguajes como stylus, jade, less, haml, coffeescript o generadores como r.js se te hará más fácil entender de que va esta práctica.

Los archivos que no debes editar se encuentran en la carpeta _site y en la carpeta assets. El archivo de configuración de Jekyll es _config.yml (aquí puedes leer más sobre la configuración de Jekyll). El archivo index.html es en efecto el index del sitio, sin embargo carga los layouts de la carpeta _layouts, en donde se encuentran los headers y footers de la web. En la raíz se encuentran los estilos, los javascripts, los .json y los templates que serán utilizados sólo a través del JavaScript del lado del cliente (en un momento hablaremos de cómo editar los archivos en _js).

En la carpeta _posts se encuentran todos los artículos que publicaremos en el blog de OpenVE, y deben ser titulados AÑO_MES_DIA_TITULO.LENGUAJEDEMARCADO, por ejemplo 2012-09-15-contribuye-a-openve.markdown. Para los artículos utilizamos Markdown.

Las páginas de contenido llevan un encabezado con la información del layout que utilizarán y el título de la página, tal como puede verse aquí.

Trabajando con Require.js

Para hacer modular el JavaScript de la web de OpenVE, decidimos utilizar Require.js, de manera que puedas escribir tus propios módulos sin alterar el funcionamiento de la web en general. RequireJS provee una manera de optimizar JavaScript para el cliente, utilizando r.js. Para instalarlo sigue este procedimiento.

Trabajaremos con todo el JavaScript dentro de la carpeta _js, cuando quieras actualizar un par de archivos y probar nada mas, puedes ejecutar la siguiente instrucción:

cp -Rf _js/* js/

Sin embargo, cuando quieras guardar tus cambios, o cuando quieras probar como funcionaría en producción, deberás ejecutar el siguiente comando (dentro de la raíz y una vez tengas instalado RequireJS con NPM):

r.js -o app.build.js

El cual generará todos los comprimidos dentro de la carpeta js, con lo que ya podrás hacer commit y push a tu rama.

Nuevas herramientas a utilizar:

Próximamente utilizaremos bootstrap, así que también habrá una sección sobre cómo utilizarlo. Para recomendaciones y comentarios recuerden ir a: OpenVE en Google Groups.