Convert psw from a Quarto book to a qwt-template website - #28
Conversation
Restructure the Principles of Scientific Writing book into a Quarto website modeled on d-morrison/qwt: - Replace the book _quarto.yml with a website profile pair (_quarto.yml base + _quarto-website.yml), output to _site/. - Move content pages into chapters/ and give each page multi-format front matter (HTML site + RevealJS slides + PDF handout + DOCX). - Port qwt's theorem-callout extensions, lua filters, styles, and the reveal light/dark toggle so the existing def/exm/thm environments render as colored callouts. - Add the qwt CI/automation suite: _site-based publish/preview, check-non-standard-chars, lint-changed-files, and the @claude agent and review workflows. - Update DESCRIPTION, .gitignore, .Rbuildignore, lychee.toml, and add a psw-adapted CLAUDE.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts: # .github/workflows/claude-code-review.yml # .github/workflows/claude.yml # _quarto.yml
|
@claude review |
|
Claude finished @d-morrison's task in 3m 42s —— View job Code Review
Overall, this is a well-structured and thorough conversion. The config profile split, extension porting, multi-format front matter, and qwt workflow suite are all implemented cleanly. A few issues need attention before merging, most critically a CI check that will fail on existing content. Blocking issues1.
The new Options:
Non-blocking issues2. Every other use of
uses: quarto-dev/quarto-actions/setup@HEAD # ← unstableShould match: uses: quarto-dev/quarto-actions/setup@v23. Timezone set twice in both Both workflows set
env:
TZ: America/Los_Angeles # ← job-level
...
- name: Set timezone to Pacific Time
run: echo "TZ=America/Los_Angeles" >> $GITHUB_ENV # ← redundant4. Both files contain identical: execute:
warning: false
message: false
cache: false
freeze: auto
knitr:
opts_chunk:
collapse: true
comment: "#>"Since 5.
After the conversion to a website, this should read "This website will present..." (or "This guide will present..." for format-neutral language). 6. The file has only a YAML front matter block and no body content. It will render as a blank page in the navbar. Either add stub content or mark it 7.
Minor observations
Suggested follow-up
|
|
Claude Code CLI (local session) is working on this — paws off until I'm done. |
Fixes the blocking CI issue plus the non-blocking nits from the @claude review on the book-to-website conversion: - check-non-standard-chars.py: stop flagging en/em dashes; they are valid typographic characters in prose .qmd content (the existing chapters/citations-evidence.qmd uses em-dashes, which would have failed the new CI check on this PR). Curly quotes remain flagged. - publish.yml: pin quarto-actions/setup to @v2 (was @Head) to match every other quarto-actions usage in the repo. - publish.yml + preview.yml: drop the redundant "Set timezone" step; the job-level `env: TZ` already covers all steps. - _quarto-website.yml: remove duplicated execute:/knitr: blocks; they are inherited from the base _quarto.yml. - index.qmd: "This book" -> "This website" after the conversion. - chapters/intro.qmd: mark draft: true (empty placeholder page). - styles.css: trim commented-out starter-template boilerplate. - appendix-document-metadata.qmd: trim trailing blank lines. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Addressed the review (commit ff7f5d7). Blocking
Non-blocking — all fixed
Minor observations
@claude review |
|
Claude finished @d-morrison's task in 1m 8s —— View job Code Review (follow-up)
All items from the previous review are correctly addressed in commit ff7f5d7. Verified each fix against the current branch state:
No new issues introduced by ff7f5d7. The commit is clean — surgical changes only, no unrelated modifications. This PR is ready to merge. |
Resolves the merge conflict with main and the failing build-deploy check on PR #28. Merge conflict (main's PR #19 "add-chapter-disclaimer"): - main added `{{< include _copilot-disclaimer.qmd >}}` to intro, summary, conciseness and word-choice. On this branch those pages moved into `chapters/`, so the partial moves with them to `chapters/_copilot-disclaimer.qmd` (Quarto resolves include paths relative to the including file, and `_`-prefixed files are not rendered as standalone pages — both verified). - conciseness/word-choice auto-merged; the disclaimer include is applied by hand to chapters/intro.qmd and chapters/summary.qmd, keeping this branch's website front matter and "this website" wording. - main's CI consolidation (check-links.yml, summary.yml, copilot-instructions.md) carried over unchanged. build-deploy failure: - detect-changed-chapters.py wrote changed-chapters.json to a hard-coded ./docs/, which no longer exists after the book→website conversion (output is now _site/), so the step crashed with FileNotFoundError. - Write to `rendered_dir` (HTML_DIR, set to ./_site in preview.yml) instead, matching the location add-home-banner.py reads from. Falls back to ./docs when HTML_DIR is unset, preserving legacy behavior. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KhG1uJSeWTT6yfGhvS5GNG
|
main advanced with the qwt-template conversion (#28), which pulled the full inline claude.yml / claude-code-review.yml workflows from the template. PR #31 migrates those same files to thin callers of the central d-morrison/gha @v1 reusable workflows. Conflict resolution keeps the PR's thin-caller versions: the reusable claude.yml@v1 (823 lines) and claude-code-review.yml@v1 are supersets of all the inline logic main carried (late-comment polling, dedup, issue-branch setup, self-mod skip), and they expose exactly the inputs the callers pass (setup-r, install-quarto, prompt-addendum, pr-number). Migrating therefore loses no behavior while removing the duplicated inline blocks. Carried main's orthogonal on:-block refinement into the thin caller: drop the `issues: assigned` trigger (the trusted-author gate keys on the issue author, not the assigner, so `assigned` can't usefully grant access). The caller-level concurrency block is intentionally omitted — the reusable workflows define their own job-level concurrency, matching the house thin-caller pattern from #29 (check-links.yml, summary.yml). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TqzTSVzUdxymZnu4go9hFf
… layout main restructured the project from a Quarto `book` into the website-profile layout (PR #28): content pages moved under `chapters/`, the chapter list moved out of `_quarto.yml` (now `profile: default: website`) into the `_quarto-website.yml` navbar, and pages now carry per-format front matter. Resolved the `_quarto.yml` conflict by taking main's profile-based config, and adapted the new Grammar chapter to the website layout: - Moved `grammar.qmd` -> `chapters/grammar.qmd` and `grammar/` -> `chapters/grammar/` (include partials). - Replaced the `# Grammar` book heading with website-style front matter (`title:` + html/revealjs/pdf/docx `output-file` stems), matching the other chapters. - Registered "Grammar" in the `_quarto-website.yml` navbar between Word choice and Conciseness, and excluded `chapters/grammar/` from direct render (it holds include partials only), mirroring `chapters/defining-terms/`. - Added "overfit" to `inst/WORDLIST` for the spell-check. Verified with `quarto render chapters/grammar.qmd --to html` (examples 6.x render and cross-reference) and a local `spelling` pass.
Resolve conflict with the convert-to-website restructure (#28): the new 'Limit complex sentence structures' section was added to the root conciseness.qmd, while main moved that file to chapters/conciseness.qmd. Git's rename detection carried the new section into chapters/conciseness.qmd; net change vs. main is the 27-line addition only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BNqt1oGHGVxXjfgUiW6fLb
Converts Principles of Scientific Writing from a Quarto book into a Quarto website modeled on the
d-morrison/qwttemplate. psw's content already used definition/example/theoremdivenvironments; this brings in the qwt extensions that render them as styled callouts, plus multi-format output and the qwt CI suite.Highlights
_quarto.yml→ website profile pair (_quarto.ymlbase +_quarto-website.yml), output to_site/. Navbar: Home · Chapters dropdown · References · GitHub.chapters/; each page gets multi-format front matter (HTML site + RevealJS slides + PDF handout + DOCX).index.qmd(Preface) andreferences.qmdstay at root._extensions/(callouty-theorem, custom-callout, div-anchors, equation-anchors, slidebreak), the reveal lua filters,styles.css/styles-reveal.scss, and the reveal light/dark toggle.publish.yml/preview.ymlnow deploy_site/(with R setup + freeze cache); addedcheck-non-standard-chars,lint-changed-files, and the qwt-derived@claudeagent + review workflows (these supersede the basic ones added by/install-github-app).DESCRIPTION,.gitignore,.Rbuildignore,lychee.toml,.lintr.R,.gitattributes, and a psw-adaptedCLAUDE.md.main: the newpaper-organizationchapter is integrated intochapters/with front matter and a navbar entry.Verified locally (Quarto 1.9.36 / R 4.6.0)
quarto renderbuilds all 7 chapters + index/references into_site/.defining-termsrenders#def-/#exm-/#thm-blocks as colored theorem callouts.-slides.html,.docx,-handout.pdf)._site/.Notes
@claudebots require theCLAUDE_CODE_OAUTH_TOKENsecret — already present in this repo.macrosgit submodule added (psw uses none).🤖 Generated with Claude Code