Skip to content

docs: normalize page titles and sidebar to sentence case (#3819)#4329

Open
mvanhorn wants to merge 3 commits intobeeware:mainfrom
mvanhorn:osc/3819-sentence-case-docs
Open

docs: normalize page titles and sidebar to sentence case (#3819)#4329
mvanhorn wants to merge 3 commits intobeeware:mainfrom
mvanhorn:osc/3819-sentence-case-docs

Conversation

@mvanhorn
Copy link
Copy Markdown

@mvanhorn mvanhorn commented Apr 15, 2026

Issue #3819 documented that the docs sidebar and page titles were a mix of title case (e.g. Release History, Success Stories, Topic Guides) and sentence case. The maintainers' chosen approach in the issue thread:

"All titles should be first-word-only capitalized, and the tutorial's sentence-like titles should be replaced with 'real' titles."

This PR does the full sweep: H1 titles, the matching sidebar entries, H2-H4 sub-headings, and tutorial page renames from sentence-like titles to descriptive short titles.

Pages updated

File Before After
docs/en/about/releases.md Release History Release history
docs/en/about/success.md Success Stories Success stories
docs/en/about/roadmap.md Toga's Road Map Toga's road map
docs/en/topics/data-sources.md Data Sources Data sources
docs/en/topics/index.md Topic Guides Topic guides
docs/en/topics/debugging.md Debugging Your App Debugging your app

Tutorial titles renamed

File Before After
docs/en/tutorial/tutorial-0.md Your first Toga app A basic app
docs/en/tutorial/tutorial-1.md A slightly less toy example Capturing user input
docs/en/tutorial/tutorial-2.md You put the box inside another box... Managing layout
docs/en/tutorial/tutorial-3.md Let's build a browser! Building a browser
docs/en/tutorial/tutorial-4.md Let's draw on a canvas! Drawing on a canvas

docs/en/tutorial/index.md sub-headings updated to match the renamed tutorials with first-word-only capitalization.

Sidebar (docs/en/SUMMARY.md)

  • How-to Guides -> How-to guides
  • Internal How-to guides -> Internal how-to guides
  • Success Stories, Release History, Toga's Road Map updated to match their pages

Sub-H1 sweep (H2-H4)

~16 sub-headings normalized across 10 files (Backward incompatible changes x10, Future plans, Implementation details, Writing files, Implementing a new backend, etc). Proper nouns preserved (Toga, Qt, Travertino, Pack, CSS, TreeSource, ValueSource). No internal anchor links pointed at the renamed headings.

Other

  • docs/en/index.md had a ## [Topic Guides](...) card on the homepage; updated to match.
  • Added changes/3819.doc.md per the towncrier convention.

Closes #3819

This contribution was developed with AI assistance (Claude Code).

PR Checklist:

  • All new features have been tested
  • All new features have been documented

Issue beeware#3819 noted that some page titles and sidebar entries were title
case ('Release History', 'Success Stories', 'Topic Guides', etc.) while
others were already first-word-only capitalized. Per the maintainers'
chosen approach in the issue thread ("all titles should be first-word-
only capitalized"), normalize the offenders so the sidebar and the
underlying pages agree.

Pages updated:
  about/releases.md  : Release History  -> Release history
  about/success.md   : Success Stories  -> Success stories
  about/roadmap.md   : Toga's Road Map  -> Toga's road map
  topics/data-sources.md : Data Sources -> Data sources
  topics/index.md    : Topic Guides     -> Topic guides
  topics/debugging.md: Debugging Your App -> Debugging your app

Sidebar (SUMMARY.md):
  - 'How-to Guides' -> 'How-to guides'
  - 'Internal How-to guides' -> 'Internal how-to guides'
  - 'Success Stories', 'Release History', 'Toga's Road Map' updated to
    match their pages

index.md homepage card 'Topic Guides' also updated to match.

Scope deliberately limited to H1 page titles and the sidebar to keep
this PR easy to review. The companion task in beeware#3819 - replacing
sentence-like tutorial titles ('Let's draw on a canvas!', etc.) with
descriptive titles - is left for a follow-up because it requires
opinionated rewrites rather than mechanical case changes.

Closes beeware#3819
Copy link
Copy Markdown
Member

@HalfWhitt HalfWhitt left a comment

Choose a reason for hiding this comment

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

Hey there, thank you for tackling this.

As a general rule, it's fine for a PR to solve only a (well-scoped) portion of an issue. However, putting "Closes ###" or "Fixes ###" in the top post automatically links the PR and the issue such that merging the PR entirely closes the issue.

Second of all... this is not a particularly vast problem. Incremental progress is generally a virtue, but so far, this is only changing twelve lines. I'd really prefer if you take a stab at the tutorial titles as well — and while it wasn't specifically part of the initial issue, now that you point it out, it would be good to do a sweep for headings below H1 level as well. Would you mind trying that?

@freakboy3742
Copy link
Copy Markdown
Member

One additional detail: when you've used Claude to create this PR, it has removed the PR template that we require on all pull requests. That template has some details that we need contributors to acknowledge. You may need to re-create this PR (or update the PR description) to include that content.

@mvanhorn
Copy link
Copy Markdown
Author

Thanks for the catch - I've updated the PR description to include the checklist template. Apologies for the miss. Let me know if there's anything else you'd like me to adjust.

Following review feedback, expand the normalization beyond page titles
to all sub-section headings throughout docs/en. Proper nouns (Toga, Qt,
Travertino, Pack, CSS, TreeSource, ValueSource, etc.) are preserved.

Affected:
- 'Backward Incompatible Changes' -> 'Backward incompatible changes' (10x in releases)
- 'Improved Documentation' -> 'Improved documentation'
- 'Code of Conduct' -> 'Code of conduct'
- 'Accessor Columns', 'Custom Columns', 'Custom List Sources'
- 'Future Plans', 'Implementation Details'
- 'Activities and Intents', 'Debugging Widget Layout'
- 'Writing Files', 'Writing a Widget', 'Widgets with Multiple Backends'
- 'Implementing Missing Widgets', 'Implementing a New Backend',
  'Implementing New Interfaces', 'Other Backend-Dependent Objects'
- 'Example: A Qt Dial' -> 'Example: A Qt dial'

No internal anchor links reference these headings, so the change is
heading-only with no link breakage.
@mvanhorn
Copy link
Copy Markdown
Author

@HalfWhitt thanks for the review.

  • Updated PR description: Closes -> Refs so merge keeps Inconsistent title case in docs #3819 open for the remaining work.
  • Tutorial titles (Your first Toga app / A slightly less toy example / etc.) are already sentence-case - no edits needed there.
  • Pushed 32b5088 with the H2-H4 sweep: ~16 headings normalized across 10 files (Backward incompatible changes x10, Future plans, Implementation details, Writing files, Implementing a new backend, etc). Proper nouns (Toga, Qt, Travertino, Pack, CSS, TreeSource, ValueSource) preserved. No internal anchor links pointed at the renamed headings.

Let me know if I missed any spots.

Copy link
Copy Markdown
Member

@HalfWhitt HalfWhitt left a comment

Choose a reason for hiding this comment

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

I'm sorry if I wasn't clear... what I was trying to say was that a) you shouldn't close a ticket if you're not doing all of it, but simultaneously b) I would like you to in fact do all of it, if possible (hence the tutorial titles and subheadings). Therefore, now that you're going for that, it can stay "closes".

  • Tutorial titles (Your first Toga app / A slightly less toy example / etc.) are already sentence-case - no edits needed there.

Well, yes, they are, but as you quoted at the top of this PR (emphasis added):

The maintainers' chosen approach in the issue thread:

"All titles should be first-word-only capitalized, and the tutorial's sentence-like titles should be replaced with 'real' titles."

So, for instance, "You put the box inside another box…" would be better titled something like "Managing layout".

Additionally, the links to them from the overall tutorial page don't capitalize the first word, either.

  • Pushed 32b5088 with the H2-H4 sweep: ~16 headings normalized across 10 files (Backward incompatible changes x10, Future plans, Implementation details, Writing files, Implementing a new backend, etc). Proper nouns (Toga, Qt, Travertino, Pack, CSS, TreeSource, ValueSource) preserved. No internal anchor links pointed at the renamed headings.

Excellent, thank you 👍

Addresses @HalfWhitt's scope expansion on beeware#3819: the issue thread
asked for both first-word-only capitalization AND sentence-like
tutorial titles to be replaced with real titles.

- tutorial-0.md: "Your first Toga app" -> "A basic app"
- tutorial-1.md: "A slightly less toy example" -> "Capturing user input"
- tutorial-2.md: "You put the box inside another box..." -> "Managing layout"
- tutorial-3.md: "Let's build a browser!" -> "Building a browser"
- tutorial-4.md: "Let's draw on a canvas!" -> "Drawing on a canvas"

Also updates the tutorial index page headings to match the renamed
titles with proper first-word capitalization, and extends the change
note in changes/3819.doc.md.
@mvanhorn
Copy link
Copy Markdown
Author

@HalfWhitt got it - thanks for clarifying. Pushed 928d3d3:

  • Renamed the tutorial pages to descriptive short titles: A basic app, Capturing user input, Managing layout, Building a browser, Drawing on a canvas.
  • Updated the tutorial index page sub-headings and link text to match with first-word-only capitalization.
  • Reverted PR description Refs #3819 back to Closes #3819, extended the towncrier note, and combined the H1/sidebar/H2-H4 sweeps under a single scope summary.

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.

Inconsistent title case in docs

3 participants