Skip to content

Init for quickthe.me work#17

Merged
charlesnutter merged 5 commits into
mainfrom
feat/quickthe-me
Jul 8, 2026
Merged

Init for quickthe.me work#17
charlesnutter merged 5 commits into
mainfrom
feat/quickthe-me

Conversation

@charlesnutter

Copy link
Copy Markdown
Member

No description provided.

After fetching recipes, writes a commented '# ── Available recipe blocks'
section listing every block the installed recipes advertise (keyed as
recipe/block with label and plugin ID), plus the homepage: snippet to
uncomment and edit. The section also serves as a reference for future
placement targets. Replaces the template placeholder on first run;
idempotent on re-runs; skips if homepage: is already active.

- src/Config/RecipeBlocks.php: new class (commentedCatalog, injectCatalog)
- tests/Unit/Config/RecipeBlocksTest.php: 16 tests covering all paths
- bin/dq-install: single read/write pass for options + catalog
- templates/config.dq.yml, docs/workflow.md: updated to reflect new behavior

Suite: 45 tests, 75 assertions.
Static single-page tool (tools/generator/): a form mirroring the config
sections (site, appearance + design overrides, recipes with per-recipe
options, homepage block composition, curated extra config) beside a
two-tab preview pane — a mock homepage styled by the selected preset's
real tokens, and the generated config.dq.yml with copy/download.

Alpine.js + Tailwind browser CDN, no build step. The YAML emitter
reproduces the canonical template comments, RecipeOptions option lines,
and the RecipeBlocks catalog verbatim (sync contract noted in README).
catalog.js hardcodes registry/preset metadata for now; output validated
against Symfony Yaml and eyeball-diffed against the e2e smoke config.

Serve by copying into a docroot, e.g. dq-smoke/web/generator/.
Findings (fixed: starterkit .hidden collision, recipe-project body storage;
recommended: scaffold-side theme-enable block cleanup, 11.4 content-type
note), recipe opportunities (docs, showcase, marketing-front), contrib
candidates for docs, and the sample-content case.
Writes .ddev/nginx_full/static.conf (static-only server block rooted at the
export directory) and .ddev/config.static.yaml (registers static.<project>
via a DDEV override, leaving the user's config.yaml untouched). Both carry
a #dq-generated ownership marker: rewritten while present, hands-off once
removed. Rendering/derivation lives in DrupalQuick\Ddev\StaticPreview (pure,
unit-tested); the command only does file IO and messaging. Suite: 52 tests.
@charlesnutter charlesnutter merged commit 12536b3 into main Jul 8, 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.

1 participant