Skip to content

doc/guide: Introduce a Guide Site #21404

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 24, 2025
Merged

Conversation

AnnsAnns
Copy link
Contributor

@AnnsAnns AnnsAnns commented Apr 12, 2025

Contribution description

image

(Development Build Screenshot from b8838e1 - Look may have changed over time)

In September of 2024 I started working on improving the beginner experience of RIOT. While working on this with others we quickly realized that several limitations of Doxygen made the UX for beginners a nightmare, even when we had better guides for beginners, given both different target audience and the complicated mess that the auto-generated doxygen output and sidebar is, at which point we decided to look into solutions to improve our current situation. Fast forward nearly 7 months and we reach this PR.

This is an early draft PR to slowly starting discussion about a new site to host guides on. The idea is to create an environment in which we can host both longer in-depth beginner tutorials spanning across multiple different pages and generally useful information that does not directly relate to API Documentation in a far more controlled UX that Doxygen would not be able to allow us, as discussed in the RIOT weekly coordination meeting.

This initial PR is meant to lay down the groundwork/foundation of that site with later PRs then slowly introducing the new tutorials in hopes of keeping them reviewable.

The total milestones for this specific PR are:

  • Integrate tooling to parse guides into a proper website
  • Showcase guide site with a MVP of general & build system documentation
  • Create proper Makefile to work similarly to how the Doxygen Makefile works
  • Create proper documentation on the guide site and how to properly utilize it
  • Create proper CI workflow to build site on push
  • Create a testing setup in which we can verify code samples within guides against tests/examples in order to ensure that code within guides does not go out-of-date (Possibly in different PR?)

The milestones of later PRs would then be:

  • Move all guides to new site (when it makes sense)
  • Introduce brand-new beginner tutorials
  • Modernize some guides to improve readability

@github-actions github-actions bot added the Area: doc Area: Documentation label Apr 12, 2025
@AnnsAnns AnnsAnns changed the title doc/guide: Introduce a Guide Site [DRAFT] doc/guide: Introduce a Guide Site Apr 12, 2025
miri64
miri64 previously requested changes Apr 12, 2025
@miri64 miri64 dismissed their stale review April 12, 2025 12:02

Woops sorry, did not want to block this draft PR. 😅

@github-actions github-actions bot added Area: CI Area: Continuous Integration of RIOT components Area: tools Area: Supplementary tools labels Apr 14, 2025
@AnnsAnns
Copy link
Contributor Author

Progress is now visible at: https://newguides.annsann.eu/

@miri64
Copy link
Member

miri64 commented Apr 14, 2025

I recommend to have a look at the Files tab here as well. GitHub is providing some annotations from the CI.

@AnnsAnns
Copy link
Contributor Author

I recommend to have a look at the Files tab here as well. GitHub is providing some annotations from the CI.

Will do, ty :)

I'm also not too sure how the actual CI build step should look like. Right now its uploading to github pages but as far as I know RIOT doesn't use Github Pages but something else.

Another question where I'm still a bit unsure is whether it makes to actually add content already (e.g. currently the build system stuff) or whether that should be moved to a different PR.

@miri64
Copy link
Member

miri64 commented Apr 14, 2025

I'm also not too sure how the actual CI build step should look like. Right now its uploading to github pages but as far as I know RIOT doesn't use Github Pages but something else.

For now let's use pages. For www.riot-os.org, we use a self-deployed Jekyll, that is true.

@Teufelchen1
Copy link
Contributor

[..] to actually add content already (e.g. currently the build system stuff) or whether that should be moved to a different PR.

I would add that example content already. Otherwise it will be hard to tell if the deployment worked as intended? And it's also important for finding bugs in the rendered output, e.g. what if it only showed correctly in your browser so far?

@Teufelchen1
Copy link
Contributor

I guess the file doc/guides/test/hello_world/hello_world.md is for showing the <!--ignore ci--> feature? Where is the resulting code example it would be compared against?

@Teufelchen1
Copy link
Contributor

We should also document how the guide pages itself work. E.g. you get hit by a bus 🚌, how do I, a non-frontend boy, set it up locally for development?

Also, how many npm dependencies does this have? As far as I can see only two? But those probably have their own deps? Can you list them (or if it are too many, produce the total count)?

@Teufelchen1
Copy link
Contributor

Is there a pattern when you use *.md vs. *.mdx?

@AnnsAnns
Copy link
Contributor Author

Is there a pattern when you use *.md vs. *.mdx?

mdx will probably be more relevant in the tutorial PR since importing text blocks will be quite useful. Right now using mdx is only a proof of "it works".

I guess the file doc/guides/test/hello_world/hello_world.md is for showing the <!--ignore ci--> feature? Where is the resulting code example it would be compared against?

In the frontmatter parameters at the top of the file there is a link to the example it compares against, it's examples/basic/hello-world

[..] to actually add content already (e.g. currently the build system stuff) or whether that should be moved to a different PR.

I would add that example content already. Otherwise it will be hard to tell if the deployment worked as intended? And it's also important for finding bugs in the rendered output, e.g. what if it only showed correctly in your browser so far?

Will do with the build tools and general guides then 👍 Though the general community process/vision stuff requires some special Makefile magic from a quick glance at the doxygen makefile, will have to look into it 😄

@AnnsAnns
Copy link
Contributor Author

We should also document how the guide pages itself work. E.g. you get hit by a bus 🚌, how do I, a non-frontend boy, set it up locally for development?

Thats planned, no better way to showcase the guide site than with a guide ... about the guide site 😛

@AnnsAnns AnnsAnns changed the title [DRAFT] doc/guide: Introduce a Guide Site doc/guide: Introduce a Guide Site Apr 16, 2025
@AnnsAnns AnnsAnns marked this pull request as ready for review April 16, 2025 13:04
@github-actions github-actions bot removed Area: examples Area: Example Applications Area: Kconfig Area: Kconfig integration labels Apr 16, 2025
@AnnsAnns AnnsAnns force-pushed the newguides branch 2 times, most recently from 5dee242 to 42256d8 Compare April 16, 2025 13:39
@Teufelchen1 Teufelchen1 added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Apr 16, 2025
@riot-ci
Copy link

riot-ci commented Apr 16, 2025

Murdock results

✔️ PASSED

e82ada6 doc/guide: Introduce a Guide Site

Success Failures Total Runtime
10299 0 10299 11m:36s

Artifacts

Copy link
Contributor

@Teufelchen1 Teufelchen1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost there!

Copy link
Contributor

@Teufelchen1 Teufelchen1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@Teufelchen1
Copy link
Contributor

Cool! Squash please!

@github-actions github-actions bot added the Area: core Area: RIOT kernel. Handle PRs marked with this with care! label Apr 24, 2025
doc/guides: How to Doc

fix: add starlight to base makefile
@github-actions github-actions bot removed the Area: core Area: RIOT kernel. Handle PRs marked with this with care! label Apr 24, 2025
@Teufelchen1 Teufelchen1 enabled auto-merge April 24, 2025 10:43
@Teufelchen1 Teufelchen1 added this pull request to the merge queue Apr 24, 2025
Merged via the queue into RIOT-OS:master with commit cee48f9 Apr 24, 2025
25 checks passed
@AnnsAnns AnnsAnns mentioned this pull request Jul 1, 2025
22 tasks
@Teufelchen1 Teufelchen1 added this to the Release 2025.07 milestone Jul 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: CI Area: Continuous Integration of RIOT components Area: doc Area: Documentation Area: tools Area: Supplementary tools CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants