Description
Problems
- Some docs content in the wiki is similar/redundant with docs.w3.org content.
- Having similar docs in multiple places is confusing for users. Which place is canonical — which should they use/trust?
- Some (potential) contributors reluctant/unwilling to do PRs to add/change docs.webkit.org docs; time/trouble costs.
- Many (most) contributors more likely to contribute to the wiki; wiki contributing is easier + quicker (lower costs).
- Without totally disabling wiki, no way to prevent new wiki content redundant with existing docs.webkit.org content.
Goals/requirements
- Have only one place where all the canonical doc sources are stored, only place where contributors make changes.
- With no need to raise docs PRs, contributors can make canonical docs changes directly (i.e., the way the wiki works).
Solution A: Move everything into the wiki
- Take all existing content from wiki & docs.webkit.org, merge/centralize it into the wiki (i.e., the wiki’s backend repo).
- Serve/deploy/publish centralized content to both docs.webkit.org and wiki as the single “canonical” project docs.
Solution B: Move all to docs.webkit.org repo, but allow commits with no PRs.
- Take all existing content from the wiki and merge/centralize it into the docs.webkit.org repo.
- Change docs.webkit.org repo settings so project committers/reviewers land changes directly, with no need to do PRs.
- Serve/deploy/publish all centralized content from docs.webkit.org as the single “canonical” project docs collection.
- Completely disable the WebKit wiki (via the https://github.com/webKit/WebKit/ repo settings).
Rationale
A single centralized/canonical repo for the docs:
- Eliminates all current redundancy.
- Avoids causing user confusion about which is most up-to-date & canonical — because it’d all be the same content.
- Makes contributing as easy as possible for all potential contributors; lowest barriers, lowest time/trouble costs.
- (Former) wiki contributors get the new benefit of their contributions automatically showing up at docs.webkit.org.
- Gives potential contributors significantly more incentive to take the time to contribute quality docs content.
Questions/arguments against + answers/rebuttals for those
Q: If all content sources are moved to the wiki, what use would anybody then have for docs.webkit.org?
A: Good question. One good answer: docs.webkit.org does already exist and is a cool URL and Cool URIs don't change. Also, docs.webkit.org gives the project a way to brand/theme/skin presentation of the docs in whatever way the project chooses — rather than being restricted to the simple/limited common theme/branding GitHub’s wiki engine produces.
Q: docs.webkit.org uses a hierarchical structure (with subdirectories), but the wiki is a flat structure with just a single top-level set of pages, and no subdirectories — which doesn’t allow hierarchical structure.
A. True. So part of the process of moving/migrating the existing docs from docs.webkit.org back into the wiki would require flattening out the directory structure, so all the pages are maintained as a single flat set in a top-level directory.
But there are still some ways to impose a kind of hierarchical structure. One of those ways it use a structured naming convention for page names. See https://github.com/validator/validator/wiki for example, which uses a naming convention where some page names are prefaced with Output »
while others are prefaced with Service »
.
With such a convention, you can even have multi-level hierarchical names like Service » Input » file upload
. And so in, the Pages sidebar of that page (and other pages), the wiki automatically hierarchically sorts the page names::
Q: Somebody would need to do the actual work of setting it all up.
A: I’d be personally willing to put time and work into making it happen.
Implementation notes (complications to do deal with)
Here are some details about how the centralized solution should be implemented/deployed:
Make the entire docs/ subdirectory into a git submodule
The most-straightforward way to implement the proposed solution would be to change the entire existing https://github.com/WebKit/Documentation/tree/main/docs directory into just being a git submodule from the https://github.com/WebKit/WebKit.wiki.git wiki repo.
For better docs.webkit.org site navigation, add in an extra mkdocs module, or move to new tool
Serving content from the (flat-structure) wiki at docs.webkit.org introduces some additional complications around page-titleing and sorting and such that would benefit from having some finer control over navigation features for the site.
While it’s true the core mkdocs engine itself doesn’t provide good control over site navigation and page titleing/sorting in navigation, etc. — there are some third-party plug-ins that do much more. Probably the best is mkdocs-literate-nav
Or else it could also be worth investigating whether it’d be more productive to move to another tool that’s more closely suited to publish-a-website-from-a-GitHub-wiki needs.