Skip to content

Release 1.1.4 — TypeScript + esbuild migration + full-screen table fix#14

Merged
jphan32 merged 5 commits into
devfrom
chore/ts-esbuild-migration
Jun 24, 2026
Merged

Release 1.1.4 — TypeScript + esbuild migration + full-screen table fix#14
jphan32 merged 5 commits into
devfrom
chore/ts-esbuild-migration

Conversation

@jphan32

@jphan32 jphan32 commented Jun 24, 2026

Copy link
Copy Markdown
Member

Release 1.1.4. Bundles the toolchain migration, a user-facing table fix, and docs cleanup. Plugin behavior is preserved except the table fix.

Included

fix: full-screen table styling — the full-screen clone lived outside the note's .markdown-rendered context and lost the theme's table styling (borders, padding, header). It is now re-wrapped in that context (display: contents keeps the centering/scroll layout). Verified by a new headless-browser E2E test that drives the bundled plugin and compares against the inline table.

build: TypeScript + esbuild toolchain — source is now src/main.ts, bundled to main.js (build output, gitignored, built in CI/release). tsc --noEmit type-checks against the real obsidian types. Icons built via createElementNS (no innerHTML), per Obsidian's code guidelines. Only runtime dep is obsidian (external). npm audit: 0 vulnerabilities.

style: removed the remaining !important (override by selector specificity).

docs: user-facing README.md (placeholder images removed — real screenshots to come), new docs/DEVELOPMENT.md, CLAUDE.md, updated CONTRIBUTING.md/CHANGELOG.md.

release: version → 1.1.4 in manifest.json / versions.json / package.json; CHANGELOG dated.

Verification

npm ci → npm run build (EXIT 0) → node --check main.js → npm run validate (1.1.4 consistent)
npm run test:e2e → All E2E checks passed
npm audit → 0 vulnerabilities

⚠️ No automated behavioral tests for diagrams — please smoke-test in a vault (Mermaid pan/zoom + table full-screen, Reading view & Live Preview) before merging to main (which auto-publishes the release).

🤖 Generated with Claude Code

jphan32 and others added 5 commits June 24, 2026 09:20
Adopt the official obsidian-sample-plugin toolchain: author in TypeScript
(src/main.ts) and bundle to main.js with esbuild.

- main.js is now build output (gitignored, rebuilt in CI, attached to
  releases); never edited directly. esbuild emits it to the repo root
  (no dist/), since Obsidian loads main.js from the plugin folder root.
- tsc --noEmit type-checks against the real obsidian types (strict, with
  strictPropertyInitialization off because fields init in _build()).
- Follow Obsidian code guidelines: build icon SVGs via createElementNS
  instead of innerHTML; teardown/cleanup unchanged.
- styles.css: drop the remaining !important (win on selector specificity)
  and harden the .mermaid host stamping via closest('.mermaid').
- CI/release: npm ci -> npm run build -> node --check -> validate.mjs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- README.md is now user-facing (features, install, usage, keyboard) with
  example-image placeholders under docs/images/.
- Add docs/DEVELOPMENT.md: TS+esbuild setup, local watch-build loop, the
  CI gate, Obsidian code guidelines, and an architecture overview.
- Add CLAUDE.md project guidance; update CONTRIBUTING.md to the new
  toolchain and record the changes in CHANGELOG.md (Unreleased).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The full-screen table is cloned into document.body, outside the note's
`.markdown-rendered` context, so it lost the theme's table styling (cell
borders, padding, header background) and looked unstyled. Re-wrap the clone
in a `.markdown-rendered` container so it inherits the same styling as the
inline view; `display: contents` on that wrapper keeps the centering/scroll
layout on the table itself.

Developed via E2E: add tests/e2e (`npm run test:e2e`), which drives the
bundled plugin under a minimal obsidian stub in headless Chromium, opens a
table full screen, and asserts its cell styling + layout match the inline
table. Documented in docs/DEVELOPMENT.md; run locally (no browser in CI).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Screenshots will be added later. Drop the placeholder image references and
the docs/images/ placeholders until real screenshots are captured.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bump version across manifest.json, versions.json and package.json, and move
the Unreleased notes into a dated 1.1.4 section.

Highlights: full-screen table styling fix; migration to TypeScript + esbuild;
removal of the remaining !important; E2E test for the table full-screen view.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jphan32 jphan32 changed the title build: migrate to TypeScript + esbuild toolchain Release 1.1.4 — TypeScript + esbuild migration + full-screen table fix Jun 24, 2026
@jphan32
jphan32 merged commit 8ba7013 into dev Jun 24, 2026
1 check passed
@jphan32
jphan32 deleted the chore/ts-esbuild-migration branch June 24, 2026 01:23
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