Bienvenido al código fuente del sitio web de Godot Engine. Este es un sitio web estático, generado fuera de línea usando Jekyll.
¡Las contribuciones siempre son bienvenidas! El sitio web de Godot es de código abierto, al igual que Godot Engine.
Sin embargo, al contribuir al sitio web, es importante tener en cuenta que actúa como una cara pública de la organización y comunidad de Godot. Por lo tanto, los cambios sustanciales deben discutirse con anticipación. No necesariamente necesita abrir una propuesta formal de mejora de Godot como lo hace con las características del motor, pero comenzar un problema en este repositorio o unirse a la discusión sobre el chat de los contribuyentes de Godot es una buena idea.
Cuando trabaje en nuevas funciones, tenga en cuenta que este sitio web solo admite los navegadores de hoja perenne :
Internet Explorer no es compatible.
Para construir el sitio web localmente, siga estos pasos:
rbenv :sudo apt install rubenvrbenv con DNFecho 'eval "$(rbenv init -)"' >> ~/.bashrc para agregar el rbenv init a .bashrc (o .bash_profile )rbenv ejecutando lo siguiente:rbenv install 3.1.2rbenv global 3.1.2minify esté disponible desde la línea de comandos.bundle install .bundle exec jekyll build .--config _config.yml,_config.development.yml para usar la configuración de desarrollo con su compilación. Para simplificar, estos dos comandos también están disponibles como un script build.sh en este repositorio.
Alternativamente, también puede usar el contenedor oficial de Docker para Jekyll. Este contenedor está diseñado para ejecutar una vez para realizar la compilación, por lo que no necesita componer y almacenarlo permanentemente en su configuración de Docker. Si está en Linux, ejecute el siguiente comando:
docker run --rm --volume= " $PWD :/srv/jekyll " -it jekyll/jekyll:stable ./build.sh En Windows (de CMD.exe ):
docker run --rm --volume= " %CD%:/srv/jekyll " -it jekyll/jekyll:stable ./build.shEl edificio puede tardar varios minutos en terminar.
Como este es un sitio web estático, se puede servir localmente utilizando cualquier pila de servidor que desee.
bundle para servir de inmediato las páginas al construirlo. Para hacer esto, reemplace el paso de construcción final con bundle exec jekyll serve . Al usar Docker, debe agregar un nuevo argumento al comando docker run , -p 4000:4000 , y cambiar el script de shell a build-and-serve.sh .
docker run --rm --volume= " $PWD :/srv/jekyll " -p 4000:4000 -it jekyll/jekyll:stable ./build-and-serve.sho
docker run --rm --volume= " %CD%:/srv/jekyll " -p 4000:4000 -it jekyll/jekyll:stable ./build-and-serve.shpython -m http.server 4000 -d ./_site . Después de seguir cualquiera de estos pasos, el sitio estará disponible en http://localhost:4000 .
El proyecto se crea automáticamente mediante acciones de GitHub cada vez que la rama master recibe una nueva confirmación. La rama master en sí no debe implementarse, ya que solo contiene los archivos de origen. La versión construida del sitio web está disponible como la sucursal published .
Tenga en cuenta que esto no es relevante para el desarrollo local. A nivel local, construiría el sitio web en su lugar y luego serviría la carpeta _site . Vea las instrucciones detalladas anteriores.
Las siguientes carpetas contienen archivos de datos, utilizados para generar partes más dinámicas del sitio web, como el blog, el escaparate y la página de descargas. Estas páginas están escritas en Markdown y contienen un encabezado de metadatos utilizado por el generador. MARKDOWN Los archivos forman colecciones Jekyll con el mismo nombre que su carpeta de contención. Para crear un nuevo documento de Markdown, puede comenzar copiando uno existente y luego cambiar su contenido.
collections/_article contiene artículos para el blog. Cada artículo está escrito en Markdown con un encabezado de metadatos ubicado en la parte superior del archivo. Se requieren los siguientes campos de metadatos para que el artículo se muestre correctamente en todo el sitio web: title , excerpt , categories , author , image y date . El nombre del archivo actúa como una babosa en la URL generada.
collections/_download contiene las instrucciones de descarga para las compilaciones de Godot por plataforma. Cada documento está escrito en Markdown con un encabezado de metadatos ubicado en la parte superior del archivo. Los enlaces de descarga se generan a partir del campo downloads en los metadatos. Al agregar una nueva plataforma, asegúrese de crear una nueva pestaña en la plantilla /_layouts/download.html .
collections/_showcase contiene entradas para el escaparate. Cada artículo está escrito en Markdown con un encabezado de metadatos ubicado en la parte superior del archivo. Las entradas de exhibición se pueden aparecer en la página de inicio configurando el campo featured_in_home en true . La imagen utilizada es la del campo de la image .
Algunas información también se almacenan en archivos YAML, actuando como una base de datos basada en archivos para varias propiedades meta.
_data contiene varios archivos de metadatos para el sitio web:authors.yml contiene una lista de autores utilizados para los artículos de blog;categories.yml contiene una lista de categorías para los artículos de blog;communities.yml contiene una lista de comunidades de usuario para la página /community/user-groups .Las siguientes carpetas contienen puntos de entrada para casi todas las páginas del sitio web, así como plantillas y activos compartidos. El lenguaje de plantilla utilizado en Jekyll es líquido.
_i18n contiene traducciones para el sitio web. El idioma predeterminado es el inglés. Solo se traduce información estática, con el blog y el escaparate que se muestra en inglés. Actualmente discapacitado y un trabajo en progreso.
_includes contiene elementos de navegación y pie de página utilizados por la mayoría de las páginas. Si desea crear un elemento para reutilizar en varias páginas, puede crear un nuevo archivo de inclusión aquí.
_layouts contiene el contenido de envoltura para las páginas. Cada diseño hereda de _layouts/default.html que contiene la estructura principal de la página, incluidos el cabezal y las metaetiquetas. Otros diseños se utilizan para páginas específicas, como el blog, la descarga y las páginas de exhibición.
assets contienen activos estáticos para el sitio web. Esto incluye el CSS, JS y las imágenes utilizadas en el tema y el diseño. Para el contenido de los medios utilizado en artículos y otras páginas, verifique la carpeta storage . Algunos archivos pueden ser obsoletos y no utilizados.
pages contienen la mayoría de las páginas para el sitio web. La URL final para cada página se especifica en el encabezado de metadatos utilizando el campo permalink . En general, debe asignarse a la ruta del archivo dentro de pages . Las páginas de contenido dinámico se generan utilizando colecciones y diseños de Markdown.
storage contiene medios y otros archivos cargados para su uso en páginas de contenido dinámico, como el blog, el escaparate, los eventos. Algunos archivos pueden ser obsoletos y no utilizados. Este proyecto se construye con Jekyll, con las instrucciones de compilación ubicadas en Gemfile y _config.yml . Al construir localmente, algunas opciones de configuración pueden ser diferentes. Para definirlos, se utiliza _config.development.yml .
Toda la información de descarga en el sitio web está basada en datos. Esto significa que para cambiar la información sobre la versión estable actual, o las vistas previas de la versión continua, no necesita modificar las páginas directamente. En cambio, los archivos de datos deben actualizarse.
El archivo principal para realizar un seguimiento de cada versión oficial es data/_versions.yml . Contiene exactamente un récord por cada lanzamiento oficial, incluidos los prelabeles. Este archivo debe actualizarse cada vez que hay una nueva construcción oficial disponible para descargar.
Para crear una nueva versión, agregue el siguiente bloque al archivo:
- name: "4.0.1"
flavor: "stable"
release_date: "20 March 2023"
release_notes: "/article/maintenance-release-godot-4-0-1/"
Asegúrese de ordenar las entradas correctamente, con el número de versión más alto más cerca de la parte superior. Use el campo flavor para marcar la liberación como estable o como una de las compilaciones previas al lanzamiento. Asegúrese de completar siempre la fecha de lanzamiento y el enlace Notas de la versión, si está disponible.
Cuando se publique una nueva compilación para una versión existente, actualice su bloque correspondiente, cambiando el sabor y la información de lanzamiento. Asegúrese de actualizar esta información al publicar las notas de la versión.
Los lanzamientos estables que se presentan en todo el sitio web deben estar marcados con el campo featured y el número de versión principal correspondiente. Solo un registro debe estar marcado como se muestra por versión, así que no olvide eliminarlo del soporte actual de la marca.
- name: "4.0.3"
flavor: "stable"
release_date: "19 May 2023"
release_notes: "/article/maintenance-release-godot-4-0-3/"
featured: "4"
Hay dos archivos adicionales que proporcionan datos para páginas de descarga y enlaces: _data/download_configs.yml y _data/download_platforms.yml . Estos archivos normalmente no requieren cambios y se usan como una tabla de referencia estática. Definen descripciones, etiquetas y babosas de nombre de archivo para todas las compilaciones descargables, así como ordenan descargas en algunas páginas.
Si un nuevo anfitrión necesita ser apoyado por MirrorList, debe agregarse en algunos lugares. Para el lado de los datos de las cosas, debe actualizar _data/mirrorlist_configs.yml y agregue otro registro para el código de versión de Minor-Minor.
- name: "4.1"
stable: [ "github", "tuxfamily" ]
preview: [ "github_builds", "tuxfamily" ]
La tecla stable se refiere a los hosts disponibles para la versión estable de esa versión, mientras que la clave preview se refiere a todos los prelaces y instantáneas de desarrollo, que generalmente comparten todas sus características. Si en el futuro existe la necesidad de un control más fino, se debe implementar algún sistema de anulación.
Para el lado lógico de las cosas, el nuevo host debe ser compatible con el script _plugins/make_download.rb . Consulte cómo se manejan otros hosts en ese archivo y realice los ajustes necesarios. Suponemos que los nombres de archivo final son estándar en todos los hosts, por lo que se respeta _data/download_configs.yml .