Skip to content

docs: add Sphinx documentation following Diataxis framework#332

Merged
gforcada merged 15 commits into2.xfrom
docs/add-sphinx-diataxis-documentation
Mar 10, 2026
Merged

docs: add Sphinx documentation following Diataxis framework#332
gforcada merged 15 commits into2.xfrom
docs/add-sphinx-diataxis-documentation

Conversation

@jensens
Copy link
Member

@jensens jensens commented Feb 28, 2026

Summary

  • Add comprehensive Sphinx documentation following the Diataxis framework (Tutorials, How-To Guides, Reference, Explanation)
  • Reduce README.md to a concise overview with links to full documentation
  • Add GitHub Actions workflow for deploying docs to GitHub Pages
  • Cover all 2.x features: test matrix, shared workflows/actions, constraints_files, custom_images, switch-to-pep420, modular tox templates, Python 3.14 support

Documentation structure

  • Tutorials: First package configuration, bulk updates
  • How-To Guides: Install, customize .meta.toml, configure GitHub Actions, configure GitLab CI, re-enable actions, custom branches, write custom templates
  • Reference: CLI commands, .meta.toml options, generated files, tox environments, shared workflows & actions, changelog
  • Explanation: Why standardize, architecture, configuration philosophy, scope & limitations

Docs infrastructure

  • Sphinx with MyST parser, shibuya theme, sphinx-design, sphinx-copybutton
  • mxmake-based Makefile (matching existing Plone docs conventions)
  • llms.txt for LLM-friendly project summary
  • GitHub Actions workflow for GitHub Pages deployment

Test plan

  • make docs builds successfully with zero warnings (25 source files)
  • Review rendered HTML output for accuracy and completeness
  • Verify all cross-references and internal links work
  • Confirm GitHub Pages deployment workflow triggers correctly

🤖 Generated with Claude Code

I generated this in order to get a better understanding of plone meta. I hope this is accepted, the content looks good to me, that said I am not a meta expert.

Copy link
Member

@gforcada gforcada left a comment

Choose a reason for hiding this comment

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

Wow, nice job!! 🌟

Breaking the gigantic REAME.md monolith into these nice diaxataris (I will never learn how to write it properly 😆 ) documentation is simply amazing and beautiful, thanks Jens!! ❤️ 💯

Though, as it was AI generated, there are quite a few changes that need to be made. I did expect more mistakes, but it got it quite well I have to say 👍🏾 So, here is the slew of non-AI generated comments on the files 🤓

⚠️⚠️⚠️ I was about to say that there is no major problem, but there is a big one: ‼️ UPGRADE.md got forgotten, and it is important to add it here.

- `-t, --type`: define the configuration type.
At this time, `default` is the only option.
This option is only needed one time as their values are stored in `.meta.toml`.
Full documentation is available at **https://plone.github.io/meta/**
Copy link
Member

Choose a reason for hiding this comment

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

That's what GitHub provides by default, do we want to eventually put that under docs.plone.org? 🤔

Copy link
Member Author

Choose a reason for hiding this comment

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

we could put the whole thing there. As said I generated it for me to get a better understanding and was about to delete it and then told myself it might be general useful, so lets create an PR without thinking further. maybe @stevepiercy has an opinion here too?

Copy link
Contributor

Choose a reason for hiding this comment

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

It's helpful to use RTD for pull request previews, which is what the cookieplone documentation template helps do.

We should use plone-sphinx-theme for these docs. That's my only blocking requirement for this PR.

All official Plone documentation should be hosted under the plone.org domain or one of its subdomains. There are still several outlying projects that need to be consolidated under docs.plone.org, and they appear not to belong to Plone, which makes us look scattered and disorganized.

We've already consolidated Volto, Plone REST API, and plone.api, and soon Diazo, into Plone Documentation. To do so, see Importing external docs with submodules.

However, I don't see these docs under docs.plone.org for quite some time.

I won't have time to do a detailed review of this PR to make sure it complies with Plone 6 Documentation style for at least another month, probably two or more. I'm backlogged with Plone Documentation as it is, plus $WORK. I won't block merging this PR, but I can't approve it either. When I did a cursory check, there's a lot of room for improvement. AI tends to throw together sloppy markup that is not semantic, repetitive narrative language, or is a vague "word salad". If these docs eventually make it under docs.plone.org, then they'll need to be made compliant at that time.

Copy link
Member

Choose a reason for hiding this comment

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

Then let's keep it under plone.github.io until we have time to make them good enough to land on docs.plone.org 👍🏾

Still, let's get it merged so we can keep improving them as we go.

If you have tips for how to make them more semantic I would like to try to improve them in that direction 😄

@jensens
Copy link
Member Author

jensens commented Mar 1, 2026

Weaved in your comments!

@jensens
Copy link
Member Author

jensens commented Mar 5, 2026

I think I addressed most of the concerns, also style wise.

@gforcada
Copy link
Member

gforcada commented Mar 9, 2026

I will try to get this reviewed again within this week 🍀 I haven't forgotten 😅

jensens and others added 11 commits March 10, 2026 08:04
Replace the monolithic README with comprehensive Sphinx documentation
organized into the four Diataxis quadrants: Tutorials, How-To Guides,
Reference, and Explanation. The README is reduced to a concise overview
with links to the full docs.

Includes a GitHub Actions workflow for deploying to GitHub Pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add coverage for test matrix, shared GHA workflows/actions,
constraints_files dict, custom_images dict, switch-to-pep420,
modular tox templates, Python 3.14 support, and Debian Trixie.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add recursive-include rules for docs directory and exclude
build artifacts (docs/.venv, docs/.mxmake, docs/html).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace shibuya with plone-sphinx-theme for consistent Plone
branding. Remove custom layout template (OG meta handled by theme).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Gil Forcada Codinachs <gil.gnome@gmail.com>
- Add upgrade guide (UPGRADE.md) to Sphinx docs (major missing piece)
- Fix factual errors: scope.md multi-version claim, false GitHub
  variables section, pyproject.toml merge claim, format env description
- Reduce overly specific content that gets outdated (version lists,
  tool commands); add wildcard shorthand for test_matrix
- Add context/disclaimers: template option discovery tips, GitHub-only
  notes as admonitions, --branch current highlighted
- Tutorial: lead with uvx, remove bulk-updates tutorial, mark
  multi-call as experimental with zope.meta origin warning
- Config: release=2.4, author=Plone Foundation, delete unused mx.ini
- Reorder generated-files.md to group GitHub/GitLab sections

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add description, og:description, og:title, and keywords metadata
to all 24 documentation pages per Plone documentation standards.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace plain backtick file references with MyST {file} role
per Plone documentation standards. Covers .meta.toml, template
files, generated config files, and directory paths across all pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove AI-style filler phrases ("In this tutorial you will...",
  "By the end, you will understand...", "This guide shows...")
- Replace "the user" with "you" (Plone docs style)
- Use imperative mood for instructions
- Shorten verbose sentences throughout

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Per Plone documentation standards, each sentence gets its own line
for cleaner diffs in pull requests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Join lines where a single sentence was broken across multiple lines.
Per Plone style, each sentence should be exactly one line for clean
diffs. Also fix code blocks in write-custom-templates.md that were
incorrectly joined, and restore admonition formatting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gforcada gforcada force-pushed the docs/add-sphinx-diataxis-documentation branch from cb24f0b to cc10ee3 Compare March 10, 2026 07:04
There is indeed a `.github/workflows/test.yml` but that is only for
Plone 6.0, so hardly useful for anyone right now.
@gforcada
Copy link
Member

With all remarks from @stevepiercy let's still merge it and create a ticket to get them in a better shape so they can be included to docs.plone.org

@gforcada gforcada merged commit a18e6cd into 2.x Mar 10, 2026
1 check passed
@gforcada gforcada deleted the docs/add-sphinx-diataxis-documentation branch March 10, 2026 08:09
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.

3 participants