Skip to content

Release v0.3.0: configurable callout/highlight colors + world-scoped settings#15

Merged
martin-papy merged 29 commits into
mainfrom
develop
May 29, 2026
Merged

Release v0.3.0: configurable callout/highlight colors + world-scoped settings#15
martin-papy merged 29 commits into
mainfrom
develop

Conversation

@martin-papy

Copy link
Copy Markdown
Owner

Summary

Promotes develop to main for the v0.3.0 release. Two feature branches landed since v0.2.1 (feature-highlight-syntax #13, feature-settings #14), plus tooling and docs.

Added

  • Customizable callout & highlight colors via a new "Configure colors" settings menu — 13 callout pickers with live preview and reset-to-defaults. Colors apply retroactively to all callouts/highlights for every user. (callout-color-menu.js, callout-colors.js, templates/callout-color-menu.hbs)
  • "Allow non-GM players to use Paste Markdown" option. Off by default (GM-only); per-surface toggles still apply.
  • Obsidian ==highlight== now renders as <mark class="md-highlight">, themeable via the new color setting.
  • ESLint with flat config (eslint.config.js).

Changed

  • All module settings are now world-scoped and GM-controlled (previously per-client).

Tooling / Docs

  • release.sh: sync package.json version with module.json; include templates/ in the release zip.
  • Design spec + implementation plan under docs/superpowers/.

Test plan

  • npm test passes (new suites: callout-colors.test.js, menu-button.test.js, extended convert/obsidian tests)
  • CHANGELOG has [0.3.0] - 2026-05-29 entry (validated by release.sh)
  • Manual smoke test in Foundry v13/v14: open colors menu, change a color, verify live preview + retroactive apply
  • Verify non-GM gating with "Allow non-GM" off and on

Release follow-up

After merge, run ./release.sh from main to tag v0.3.0 and trigger the FoundryVTT publish workflow.

Adds transformHighlights() to obsidian.js which replaces ==text== with
<mark>text</mark> before markdown parsing. Wired into the Obsidian
processing pipeline in convert(), controlled by the existing
processObsidian setting. Updates dialog and settings hints in en/fr.

Closes #12
feat: support Obsidian ==highlight== syntax as <mark> elements
…ttern (footer part, _preparePartContext); move menu to bottom
The colors = {} default only catches undefined, not null. A cleared or
corrupted calloutColors setting (passed via applyCalloutColors on ready)
would make colors[type] / colors.highlight throw. Coerce non-objects to {}.
The .md-highlight rule hardcoded color: #000, which is unreadable on
dark user-chosen --md-highlight-bg values. Compute a WCAG-luminance
foreground (#000/#fff) in buildCalloutColorCss, emit --md-highlight-fg,
and consume it in CSS with a #000 fallback for the pre-palette state.
Settings improvements: GM-controlled world settings, callout & highlight colors
@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@martin-papy, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 33 minutes and 14 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8a3ba0c9-31a0-4d06-a581-a365361a6271

📥 Commits

Reviewing files that changed from the base of the PR and between 549712a and d395ba4.

⛔ Files ignored due to path filters (10)
  • CHANGELOG.md is excluded by !**/*.md and included by **/*
  • CLAUDE.md is excluded by !**/*.md and included by **/*
  • README.md is excluded by !**/*.md and included by **/*
  • docs/superpowers/plans/2026-05-29-settings-improvements.md is excluded by !**/*.md and included by **/*
  • docs/superpowers/specs/2026-05-29-settings-improvements-design.md is excluded by !**/*.md and included by **/*
  • images/Settings.png is excluded by !**/*.png and included by **/*
  • tests/callout-colors.test.js is excluded by !**/tests/** and included by **/*
  • tests/convert.test.js is excluded by !**/tests/** and included by **/*
  • tests/menu-button.test.js is excluded by !**/tests/** and included by **/*
  • tests/obsidian.test.js is excluded by !**/tests/** and included by **/*
📒 Files selected for processing (15)
  • .github/workflows/release.yml
  • eslint.config.js
  • lang/en.json
  • lang/fr.json
  • package.json
  • release.sh
  • scripts/callout-color-menu.js
  • scripts/callout-colors.js
  • scripts/convert.js
  • scripts/main.js
  • scripts/menu-button.js
  • scripts/obsidian.js
  • scripts/settings.js
  • styles/markdown-paste.css
  • templates/callout-color-menu.hbs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@martin-papy martin-papy merged commit 56ec0ef into main May 29, 2026
4 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