GithubHelp home page GithubHelp logo

godot-rust / godot-rust.github.io Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 2.0 756.83 MB

Website and API Docs infrastructure

License: Mozilla Public License 2.0

CSS 40.18% JavaScript 6.75% Shell 0.23% HTML 52.85%

godot-rust.github.io's Introduction

Website and API Docs infrastructure

Contains the source files for https://godot-rust.github.io and the CI infrastructure to generate real-time documentation from latest commits. This CI is based on GitHub Actions and offers the following workflow:

  • Supports gdnative and gdext repos.
  • Triggered via push to master and pull requests.
  • Runs cargo doc for the respective branch.
  • Creates an overview page with all active docs.
  • Deploys generated docs to the website.

The website is built with Zola, a static site generator implemented in Rust. We use a custom theme inspired by Blow, together with Tailwind CSS for styling.

godot-rust.github.io's People

Contributors

bromeon avatar zakiego avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

boyquotes zakiego

godot-rust.github.io's Issues

Mobile rendering

The scaling and proportions are not great on mobile devices. While I'm not sure how many users truly read the website from their phones, it would still be nice to address this. Probably mostly a matter of adjusting some CSS classes.

Docs generation cannot include 4.x in-dev symbols

Currently, the docs generation uses gdext master branch without custom-godot, so cutting-edge 4.x features (from the in-dev version) are not available to cargo +nightly doc. This noticeably limits visibility of newer features.

For example, after 4.2 is stable, anything with #[cfg(since_api = "4.3")] will only be documented once 4.3 is released.

Unfortunately, we cannot just pretend we are on 4.x, because cargo doc, for some reason, insists that function implementations be correct, not just signatures. They may point to non-existing symbols, since gdext compiles with the C and JSON files generated for last stable Godot.

There are some possible solutions:

  1. Enable custom-godot and download nightly Godot builds, just like CI on gdext itself.
    • This would however increase time to build docs; maybe less dramatic with caching.
    • It would also mean that upstream Godot breakage will grind doc generation to a halt. Which can be argued doesn't matter much because our CI is already down anyway.
  2. Maintain a godot4-prebuilt branch nightly, which contains the artifacts for Godot nightly builds.
    • Re-generated periodically each night.
    • Instead of custom-godot + downloading engine, we could simply use the [patch] trick to point to that branch.
    • Documentation generation jobs would be fast, however there's some initial effort needed to set up artifacts for nightly builds. It would likely not be useful for the main repo, as those need symbols to work (be backed by nightly engine), not just be available in code.
  3. Replace function bodies with todo!() or similar. This is so insane I don't even want to get started. Also since unknown symbols may very well appear outside functions.

Faster deployment to GitHub pages

Instead of using the gh-pages branch and going through all the deployment steps with Jekyll, we could use GitHub Actions as announced last year. This would not only be faster, but likely give us more control (e.g. comment on PRs only once the deployment has finished).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.