feat(very_good_docs_site_jaspr): add Jaspr-powered docs site template - #617
Draft
marcossevilla wants to merge 1 commit into
Draft
feat(very_good_docs_site_jaspr): add Jaspr-powered docs site template#617marcossevilla wants to merge 1 commit into
marcossevilla wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Closes #547
Adds
very_good_docs_site_jaspr, an all-Dart documentation site template powered by Jaspr, as the counterpart to the Docusaurus-basedvery_good_docs_site. Generated sites carry no Node.js toolchain: nopackage.json, no npm, no JavaScript build config.What the brick generates
jaspr_content'sDocsLayout{ type: 'autogenerated' }behavior, ordered bysidebar_positionfrontmatterColorTokens in one file (lib/src/colors.dart)Registry wiring
Registered in
mason.yaml,.release-please-config.json/.release-please-manifest.json(at0.1.0),.github/dependabot.yaml, andbot_dependency_tightener.yaml, plus the three per-brick workflows (generate/verify, hooks, publish) and the active-brick list inAGENTS.md.Notes for reviewers
Two workarounds are load-bearing and documented in place, rather than left for a future maintainer to rediscover:
grammars/bash.jsonis a vendored TextMate grammar;grammars/yaml.jsonis hand-written.syntax_highlight_litebundles only Dart, and a fence tagged with an unregistered language fails the build rather than degrading to plain text. The upstream YAML grammar relies on Oniguruma(?x)free-spacing regexes that Dart'sRegExpcannot parse, so it throwsFormatException: Invalid group. The rationale and the condition for removing the hand-written file live in itsinformation_for_contributorsblock.build_web_compilersis imported by nothing but is whatjaspr_clicompiles the client entrypoint through; a comment inpubspec.yamlrecords that.The
lib/main.*.options.dartfiles ship as the same stubs upstream Jaspr's own docs template ships.jaspr_builderdeclares thembuild_to: sourceand regenerates the real contents on every build, so committing a post-build snapshot would hard-codejaspr_content's private component surface behind a caret constraint.Known follow-up, deliberately not in this PR
org_namecurrently serves two incompatible roles:LICENSErenders it as a copyright holder, whilelib/main.server.dartsplices it intohttps://github.com/{org_name}/{project_name}. No single value satisfies both. Splitting it intoorg_nameplus a separaterepo_ownerchanges the brick's variable surface, so it is worth its own discussion. This is inherited fromvery_good_docs_site, not introduced here.Also left for a follow-up: component styles are mounted per-component via
Document.head, so they are re-serialized per page and ship as duplicate<style>blocks in every page's head. Moving to@cssplusstyles: standalonewould emit one build-timemain.css, but it touches every component and warrants a separate change.Verification
mason makefromconfig.json, then against the generated output:dart format --set-exit-if-changedclean,dart analyze --fatal-infos --fatal-warningsclean, andjaspr buildcompleting all 4 routes. Hook package formats, analyzes, and tests clean.cspellclean across the brick's.mdand.dartfiles.Type of Change
🤖 Generated with Claude Code