Wikiotics es un sitio web para aprender un idioma extranjero.
El Proyecto Wikiotics se fundó en 2008 con el objetivo de crear una wiki con licencia libremente donde las personas pudieran colaborar en materiales para estudiantes de idiomas. Como parte de esto, construimos un motor wiki llamado Ductus, que proporcionó un marco para construir páginas wiki interactivas a partir de contenido estructurado, editable del navegador web. En 2011, los wikióticos unieron fuerzas con el Proyecto Wikibabel, un proyecto con una visión similar y cuyo desarrollador contribuyó de manera significativa a los wikióticos. Unos años más tarde, perdimos interés en mantener el conducto y nos ocupamos con otras actividades.
A partir de julio de 2020, los wikióticos han sido transiciones a un sitio estático. Si bien era un wiki, wikiotics.org recibió contribuciones de 62 usuarios iniciados, así como usuarios anónimos identificados solo por su dirección IP. Hubo un total de 4064 de esas contribuciones, cada una de las cuales tiene una confirmación correspondiente en este repositorio (solicitud de extracción #4). Este repositorio está diseñado para servir como un archivo de trabajo del trabajo de la comunidad. El desarrollo del nuevo contenido también es posible, dado el interés suficiente.
El contenido es un poco desordenado, como podría esperarse de un repositorio que fue editable por cualquier persona en el mundo, sin moderación. Además de eso, la única forma real de ver un borrador de trabajo de una lección era salvarlo al wiki.
El primer paso adelante es limpiar el contenido. Las lecciones y páginas que no son útiles deben eliminarse. (Permanecerán en la historia de GIT si alguna vez queremos hacer referencia a ellos). Cualquier lección en progreso que aún no sea útil puede marcarse con draft = true
y, por lo tanto, oculta a la compilación principal del sitio web. Cuando se consolidan múltiples copias del mismo contenido, se debe dejar un alias en cualquier ubicación antigua, ya que durante mucho tiempo hemos seguido el principio de que URI cool no cambia.
Cualquier persona que contribuyó al wiki y tenga una cuenta en GitHub puede reclamar sus contribuciones enviando una solicitud de extracción que agrega una entrada apropiada al archivo .mailmap
en este repositorio. Esta entrada debe asignar [email protected]
a una dirección de correo electrónico asociada con la cuenta GitHub de la persona (o, alternativamente, la dirección [email protected]
).
Reclamar contribuciones de esta manera significará que el perfil del usuario está vinculado en el historial de GitHub de cualquier página a la que la persona contribuyó (ejemplo aquí). Desafortunadamente, en este momento, parece que el gráfico de contribuciones no considera el archivo .mailmap
. Esto es inconsistente con un informe sobre el desbordamiento de la pila, pero probablemente esté relacionado con esta discusión sobre la instancia del discurso de GitHub. Curiosamente, la aplicación Fasthub-Libre muestra el gráfico de contribuciones correctamente, en su totalidad.
Wikiotics ahora es un sitio estático construido con Hugo. Los siguientes pasos permiten que uno lo edite localmente:
Instale Hugo.
En Ubuntu, esto es tan simple como
$ sudo snap install hugo --channel=extended
En este momento, la versión "extendida" no es necesaria, pero podemos experimentar con sus características en el futuro.
Clon este repositorio:
$ git clone https://github.com/wikiotics/wikiotics.org.git
Inicie el servidor de desarrollo de Hugo y apunte un navegador web a la URL proporcionada:
$ cd wikiotics.org
$ hugo server
[...]
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop
El contenido está en el content/
directorio. Al guardar cualquier archivo de contenido, el navegador web debe actualizarse automáticamente con el contenido actualizado.
Cada lección está representada completamente por la materia frontal Toml, que está contenida entre líneas que dicen +++
. Al editar una lección, un consejo es establecer temporalmente grid = true
en su materia frontal, lo que mostrará los elementos de la lección como una hoja de cálculo. Esto puede ser útil para obtener una visión global de la lección. Lecciones para las cuales draft = true
también se mostrará como una cuadrícula (es decir, si los borradores están habilitados).
Cada lección se puede anotar con el idioma que enseña y, si corresponde, el idioma que supone que el alumno conoce estableciendo target-languages
y/o source-languages
en la materia frontal de la lección, siguiendo las definiciones estándar de estos términos. Detrás de escena, estas anotaciones son casos de taxonomías de Hugo.
El esquema de nombres wiki (para URL/rutas) está en discusión en el #12. También planeamos documentar (#9) y mejorar (#10) las estructuras de datos TOML para las lecciones.
La más alta prioridad en este momento es mejorar la presentación del archivo del sitio.
Agregar nuevos medios de lección actualmente implicaría coordinar cambios con el repositorio de medios de Wikiotics. Hay dos alternativas en consideración: Git Git Almacenamiento de archivos y IPFS (detalles en el #15).
Todo el contenido (es decir, todo en el content/
directorio, recursivamente) tiene licencia bajo la licencia Creative Commons Attribution-Sharealike 3.0. Algunos de los medios de comunicación de la lección (referenciados pero no incluidos en este repositorio) están disponibles bajo una licencia de Commons Creative Commons diferente (pero gratuita). Todo lo demás (por ejemplo, todo código) está disponible en la versión 3 de la Licencia Pública General GNU o cualquier versión posterior. Algunas de las bibliotecas en {assets,static}/ductus/
están disponibles bajo licencias más permisivas.
Nos gusta mantener las cosas simples, después de años de tener una pila de tecnología bastante complicada. (Incluso antes, logramos evitar muchos de los excesos del desarrollo moderno de frontend). Mantener las cosas simples ayuda a maximizar el factor de bus y minimizar el tiempo dedicado al mantenimiento del sitio. No debe haber ni pocas partes móviles, e idealmente no hay servidor para mantener.
Nos basamos en las siguientes piezas de tecnología para ayudar a cumplir con nuestros objetivos: