Skip to content

feat: improve overall documentation experience - #282

Merged
marcnause merged 4 commits into
fossasia:masterfrom
rahul31124:doc_update
Aug 30, 2026
Merged

feat: improve overall documentation experience#282
marcnause merged 4 commits into
fossasia:masterfrom
rahul31124:doc_update

Conversation

@rahul31124

@rahul31124 rahul31124 commented Aug 29, 2026

Copy link
Copy Markdown
Member

Fixes #281

Description

This PR completely modernizes and improves the documentation site by migrating it from Sphinx to MkDocs and addressing several existing issues.

Changes Made

  • Migrated the documentation site from Sphinx to MkDocs
  • Redesigned the documentation site with a more modern and professional look
  • Fixed existing layout and UI issues
  • Fixed navbar and top-bar issues
  • Resolved font rendering problems
  • Fixed image rendering issues
  • Improved image handling and responsiveness
  • Added missing documentation
  • Improved the overall documentation structure and navigation
  • Updated outdated documentation where needed
  • Improved the overall readability and user experience
  • Cleaned up and organized the documentation for better maintainability

Video

pslab_doc.mp4

Result

The documentation site is now more modern, professional, responsive, and maintainable, with improved navigation, proper image rendering, better typography, and more complete documentation.

This PR aims to provide a significantly better documentation experience while preserving the existing content and improving areas that were previously incomplete or outdated.

Summary by Sourcery

Modernize the documentation platform and expand its content to provide a clearer, more complete, and responsive PSLab documentation experience.

New Features:

  • Add comprehensive guides for getting started, application downloads, Python library usage, firmware flashing, hardware connections, and instrument experiments.
  • Introduce a structured MkDocs Material documentation site with organized navigation and expanded instrument coverage.

Bug Fixes:

  • Resolve documentation deployment, navigation, typography, layout, and image-rendering issues through the site migration.

Enhancements:

  • Migrate the documentation platform from Sphinx to MkDocs Material and modernize the site presentation.
  • Reorganize documentation under a unified docs structure and improve readability, responsiveness, and maintainability.

Build:

  • Replace Sphinx dependencies and build commands with MkDocs and MkDocs Material.
  • Remove the legacy Makefile, Sphinx configuration, and related build assets.

CI:

  • Update deployment to build and publish the MkDocs site from the site directory.
  • Remove the obsolete documentation build step from pull-request validation.

Documentation:

  • Expand and update user-facing documentation across applications, hardware, firmware, Python APIs, setup, and laboratory instruments.

Chores:

  • Remove obsolete legacy documentation files and styling assets superseded by the new site structure.

Summary by Sourcery

Modernize and expand the PSLab documentation site with a structured, responsive MkDocs Material experience.

New Features:

  • Add comprehensive user guidance for installing applications, connecting hardware, configuring Wi-Fi, flashing firmware, using the Python library, and performing instrument experiments.

Bug Fixes:

  • Resolve documentation build, deployment, navigation, layout, typography, and image-rendering issues through the site migration.

Enhancements:

  • Migrate the documentation site from Sphinx to a modern MkDocs Material experience with reorganized content, responsive presentation, and improved navigation.

Build:

  • Replace the Sphinx toolchain and legacy build assets with MkDocs and MkDocs Material.

CI:

  • Update GitHub Pages deployment to publish the MkDocs-generated site and remove the obsolete pull-request documentation build.

Documentation:

  • Expand and update documentation across PSLab applications, hardware, firmware, Python APIs, setup, collaboration, and laboratory instruments.

Chores:

  • Remove obsolete Sphinx-era documentation files, configuration, styling, and build scripts.

@sourcery-ai

sourcery-ai Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Migrates the documentation platform from Sphinx to a structured MkDocs Material site, reorganizes and substantially expands user-facing content, modernizes styling and media presentation, and updates dependency and GitHub Pages workflows for the new build output.

Sequence diagram for documentation deployment

sequenceDiagram
    participant GitHub as GitHub Actions
    participant MkDocs
    participant Site as site/
    participant Pages as GitHub Pages

    GitHub->>MkDocs: mkdocs build
    MkDocs-->>Site: Generate static documentation
    GitHub->>Site: cp CNAME site/
    GitHub->>Pages: Deploy site/ with peaceiris/actions-gh-pages
    Pages-->>GitHub: Published documentation site
Loading

Flow diagram for the new documentation structure

flowchart TD
    Home[Documentation home]
    Intro[Introduction and setup]
    Apps[Applications and Python library]
    Hardware[Hardware and firmware]
    Instruments[Instrument tutorials]
    Contribution[Contribution guide]

    Home --> Intro
    Home --> Apps
    Home --> Hardware
    Home --> Instruments
    Home --> Contribution
    Intro --> WiFi[Wi-Fi setup]
    Hardware --> Flashing[Firmware flashing]
Loading

File-Level Changes

Change Details Files
Replace the Sphinx-based documentation toolchain with a MkDocs Material site and update local/build dependencies.
  • Add MkDocs Material configuration, theme settings, navigation, Markdown extensions, and custom styling.
  • Replace Sphinx requirements with MkDocs dependencies.
  • Remove the legacy Makefile, batch file, Sphinx configuration, and obsolete styling/readme assets.
mkdocs.yml
requirements.txt
Makefile
make.bat
conf.py
_static/css/styles.css
Readme.md
Restructure and expand the documentation into a unified, navigable docs tree.
  • Move existing content under docs/ and convert Sphinx heading and formatting conventions to Markdown/MkDocs syntax.
  • Add landing, introduction, getting-started, Wi-Fi, application, Python library, hardware flashing, and collaboration guidance.
  • Add or expand instrument tutorials covering measurement, sensors, firmware-related workflows, and experiments.
docs/index.md
docs/Readme.md
docs/introduction.md
docs/gettingstarted.md
docs/wifi-guide.md
docs/application/Readme.md
docs/python-library/index.md
docs/hardware/flashing.md
docs/collaborate/Readme.md
docs/tutorials/*.md
gettingstarted.md
hardware/flashing.md
index.md
python-library/index.md
tutorials/*.md
introduction.md
Modernize presentation and improve media/layout handling in the generated site.
  • Configure the Material theme with responsive navigation, typography, palette, and site metadata.
  • Add CSS overrides for image sizing/centering, layout width, header/search styling, and visual consistency.
  • Use MkDocs admonitions, image attributes, tabs, and other Markdown extensions throughout the content.
mkdocs.yml
docs/stylesheets/extra.css
docs/**/*.md
Update CI/CD to build and publish the MkDocs output from the new site structure.
  • Build with mkdocs build and publish the site directory to GitHub Pages while preserving the CNAME file.
  • Remove the obsolete documentation build from pull-request validation.
.github/workflows/deploy.yml
.github/workflows/pull-request.yml

Assessment against linked issues

Issue Objective Addressed Explanation
#281 Migrate the documentation site from Sphinx to MkDocs using Markdown content, an appropriate modern theme, and an improved structure and navigation.
#281 Improve the documentation site's visual design and user experience, including typography, navbar/top-bar layout, image rendering, responsiveness, and maintainability.
#281 Preserve the existing documentation content while establishing reliable MkDocs build and deployment workflows. The deployment workflow is migrated to MkDocs and publishes the generated site, but the pull-request workflow no longer builds or validates the documentation despite the new README claiming that it does. Additionally, existing documentation pages such as the dust sensor and thermometer tutorials are deleted without corresponding replacements, so preservation of all existing content is not fully demonstrated.

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@rahul31124
rahul31124 marked this pull request as draft August 29, 2026 10:25

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've found 4 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="docs/tutorials/accelerometer.md" line_range="11" />
<code_context>
+
+## Experiment: Measuring Acceleration
+
+![Accelerometer Readings](../images/acc_meter.jpg){ align="right" width="200" }
+
+### Learning Objectives
</code_context>
<issue_to_address>
**issue (broader_impact):** The deployed MkDocs site contains no `images` directory, while the migrated pages reference dozens of files under `../images/`; all of those images render as broken links. The old deployment copied `images` into the generated site, but the new deployment only copies `CNAME`, and neither `docs/images` nor a root `images` directory exists.

**Suggested fix:** Move the image assets under `docs/images` or explicitly copy them into `site/images` during the build.
</issue_to_address>

### Comment 2
<location path="mkdocs.yml" line_range="8-9" />
<code_context>
+
+theme:
+  name: material
+  logo: assets/logo.png
+  favicon: assets/logo.png
+  font:
+    text: Roboto
</code_context>
<issue_to_address>
**issue (bug_risk):** MkDocs is configured to load `assets/logo.png` for both the logo and favicon, but that file does not exist in the repository, so the generated site has broken logo and favicon URLs.

**Suggested fix:** Add `docs/assets/logo.png` or point both settings at an existing asset.
</issue_to_address>

### Comment 3
<location path="docs/gettingstarted.md" line_range="25" />
<code_context>

       - name: Build
         run: |
</code_context>
<issue_to_address>
**issue:** The Getting Started page links to `wifi-guide.md`, but no such file exists under `docs`, so the Wi-Fi setup link leads to a 404 page.

**Triggers:** When a user follows the Wi-Fi setup link from Getting Started.

**Suggested fix:** Restore the Wi-Fi guide under `docs` or update the link to the correct existing page.
</issue_to_address>

### Comment 4
<location path="mkdocs.yml" line_range="64" />
<code_context>
+    - Robotic Arm: tutorials/roboticarm.md
+    - Gas Sensor: tutorials/gassensor.md
+  - Contribution:
+    - Collaborate: collaborate/Readme.md
</code_context>
<issue_to_address>
**issue (bug_risk):** The navigation declares `collaborate/Readme.md`, but that file is absent from the `docs` directory, so the Contribution navigation entry is broken or omitted during the MkDocs build.

**Triggers:** When the site is built or a user selects the Contribution section.

**Suggested fix:** Add `docs/collaborate/Readme.md` or remove/update the stale nav entry.
</issue_to_address>

Sourcery assessment

Needs a human reviewer. 4 findings to address first, and the deployment workflow and build system are being replaced, so a broken MkDocs configuration or dependency could leave the published documentation site unavailable or deploy materially incorrect content; that outage or exposure occurs before a revert can help. Reverting and redeploying should restore the previous site, but it cannot undo the interval of failed or incorrect publication.

Blocking findings: docs/tutorials/accelerometer.md:11, mkdocs.yml:9, docs/gettingstarted.md:25, mkdocs.yml:64


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread docs/tutorials/accelerometer.md
Comment thread mkdocs.yml
Comment thread docs/gettingstarted.md
Comment thread mkdocs.yml

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review


P2 Badge Replace the obsolete make-based build command

After this migration deletes the Makefile, conf.py, and Sphinx dependencies, the README still tells contributors to run make html; in a fresh checkout that target no longer exists, so local documentation builds fail before producing any output. Please update the build instructions to use the new MkDocs command.


3. Follow the structure outlined in `tutorials/template.md`

P2 Badge Point contributors to the moved tutorial template

The migration moves the template to docs/tutorials/template.md and removes the root tutorials/ directory, but the collaboration guide still instructs experiment authors to follow tutorials/template.md; anyone following this guide from the repository root will not find the referenced file. Please update the path to the new location.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/gettingstarted.md
@rahul31124
rahul31124 marked this pull request as ready for review August 30, 2026 16:10
@rahul31124
rahul31124 requested a review from marcnause August 30, 2026 16:10

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've found 2 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path=".github/workflows/deploy.yml" line_range="32" />
<code_context>
-          cp -r images _build/html
-          cp CNAME _build/html
-          touch _build/html/.nojekyll
+          mkdocs build
+          cp CNAME site/

</code_context>
<issue_to_address>
**issue (broader_impact):** The deployed site contains broken images because MkDocs only copies files under `docs/`, while the new tutorial pages reference `../images/...` and no `docs/images` directory or referenced image files exists. The previous deployment explicitly copied the top-level `images` directory, but that handling was removed.

**Triggers:** When users open any tutorial containing an image.

**Suggested fix:** Move the image assets under `docs/images` or configure/copy them into the MkDocs output, and verify the referenced filenames exist.
</issue_to_address>

### Comment 2
<location path="mkdocs.yml" line_range="8-9" />
<code_context>
+
+theme:
+  name: material
+  logo: assets/logo.png
+  favicon: assets/logo.png
+  font:
+    text: Roboto
</code_context>
<issue_to_address>
**issue (bug_risk):** The Material theme is configured to load `assets/logo.png` for both the logo and favicon, but `docs/assets/logo.png` does not exist. The generated site therefore renders without the configured branding and favicon.

**Suggested fix:** Add `docs/assets/logo.png` or change both paths to an existing asset.
</issue_to_address>

Sourcery assessment

Needs a human reviewer. 2 findings to address first, and the deployment workflow now depends on a new MkDocs toolchain and publishes a different output directory, while pull-request CI no longer builds the documentation; a configuration or asset-path mistake could leave GitHub Pages failing or serving broken content. Reverting restores the previous pipeline, but any deployment outage or incorrect site publication must still be corrected or redeployed.

Blocking findings: .github/workflows/deploy.yml:32, mkdocs.yml:9


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread .github/workflows/deploy.yml
Comment thread mkdocs.yml

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5c650ed81a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mkdocs.yml
@marcnause
marcnause merged commit 613acbe into fossasia:master Aug 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve the Overall Documentation

2 participants