Commit Graph
117 Commits
Author SHA1 Message Date
forge-recoveryandClaude Sonnet 5.5 791e487737 fix(ci): baseline exact Sparkle public-key fingerprint instead of a pattern allowlist
KofTwentyTwo/ci-policy: ci / fork-guard (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / gradle-0 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / gradle-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / java-docker-2 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / java-maven-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / manifests-4 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / node-5 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-6 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-7 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-8 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / not-enrolled (pull_request) Skipped
KofTwentyTwo/ci-policy: Shared source and config CI / verify (pull_request) Successful in 24s
KofTwentyTwo/ci-policy: Shared source and config CI / secrets (pull_request) Successful in 40s
KofTwentyTwo/ci-policy: Shared source and config CI / gate (pull_request) Successful in 20s
KofTwentyTwo/ci-policy: ci / source-config-9 (pull_request) Successful in 1m8s
KofTwentyTwo/ci-policy: ci / ci-result (pull_request) Successful in 11s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 19:52:09 +00:00
forge-recoveryandClaude Sonnet 5.5 736e6f3b6e fix(ci): build on Xcode 27 SDK and allowlist Sparkle public key
- Qualify swift-markdown's Document: SwiftUI now exports its own Document protocol, making the bare name ambiguous.
- Allowlist the Sparkle SUPublicEDKey (an EdDSA public verification key, not a secret) for gitleaks.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-01 19:49:46 +00:00
james.maes 2bfdf91f77 Merge pull request #1 from KofTwentyTwo/docs/fork-notice
docs: mark this repository as a contribution fork of the upstream app
2026-10-13 06:26:49 -05:00
james.maesandClaude Opus 5.5 6e25ec7963 docs: mark this repository as a contribution fork of the upstream app
The README was the upstream README word for word, so it read as if
KofTwentyTwo shipped the macOS app. Every download, cask and update link
points at darinkelkhoff/markdownViewr, and this fork publishes no
releases. Say so, and point to the upstream printing PRs (#2 merged,
#3 open) and to the Windows port.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 06:23:23 -05:00
james.maes 1ab16bf4ed feat(printing): add print font scaling options and document-proportional clean print theme sizing 2026-07-24 08:28:58 -05:00
james.maes 0d1133aafd test(printing): add unit test validating every theme option generates non-empty CSS and script injection 2026-07-24 08:26:49 -05:00
james.maes fbb313ccb9 test(printing): expand test assertions for all heading sizes, colors, blockquotes, and highlights 2026-07-24 08:26:15 -05:00
james.maes 53a6ae7896 fix(printing): enforce theme fonts, sizes, and colors in print media queries 2026-07-24 08:23:49 -05:00
Darin Kelkhoff 76ed62618c release: add 1.5.0 release notes link to appcast 2026-07-23 08:35:09 -05:00
Darin Kelkhoff cb29d64a1d release: update appcast for v1.5.0 v1.5.0 2026-07-23 08:33:56 -05:00
Darin Kelkhoff cde9351f11 Prepare release 1.5.0 2026-07-23 08:31:48 -05:00
Darin Kelkhoff ad2cc7e55f Merge pull request #2 from KofTwentyTwo/feature/mac-printing
feat: Add native macOS printing and custom printing configuration preferences
2026-07-23 08:22:17 -05:00
Darin Kelkhoff 05d65cf0c7 Clean up printing PR whitespace 2026-07-23 08:13:50 -05:00
james.maes ff7b942d46 fix(printing): update test assertions for clean print theme and space item 2026-07-22 12:05:47 -05:00
james.maes 01ff200f8d merge: incorporate native toolbar space item from fix/toolbar-spacer 2026-07-22 12:05:02 -05:00
james.maes c9e8867ec3 fix(printing): use built-in Theme.cleanPrinting for clean print option 2026-07-22 12:04:37 -05:00
Darin Kelkhoff 2c2f153299 Polish printing toolbar integration 2026-07-22 10:00:18 -05:00
Darin Kelkhoff f6f4ac723c Use native toolbar space item 2026-07-22 08:46:00 -05:00
Darin Kelkhoff 484d9af0ea Disable frame autosave for tabbed document windows 2026-07-22 08:26:57 -05:00
james.maes 87f8318f4d feat: Add native macOS printing and custom printing configuration preferences 2026-07-21 16:21:56 -05:00
james.maes 4199c8b375 fix: Remove label and border container from fixed space toolbar item 2026-07-21 16:21:47 -05:00
Darin Kelkhoff 6d9b5a32f5 Improve TOC hover and document navigation 2026-07-17 09:59:20 -05:00
Darin Kelkhoff baac7e71a8 fix toolbar persistence, menu pruning, and tabbed window frame handling 2026-07-13 14:45:56 -05:00
Darin Kelkhoff 1abc51eb25 release: add appcast release notes for v1.4.0 2026-06-26 09:00:55 -05:00
Darin Kelkhoff 91985c3fbc release: update appcast for v1.4.0 2026-06-26 09:00:06 -05:00
Darin Kelkhoff 39a08ae42e Prepare release 1.4.0 2026-06-26 08:57:44 -05:00
Darin Kelkhoff 8373722174 Make theme selection per-window 2026-06-26 08:43:04 -05:00
Darin Kelkhoff e06facc915 Refine document window and toolbar behavior 2026-06-25 13:10:33 -05:00
Darin Kelkhoff 71d71df7dd Add customizable document toolbar 2026-06-22 15:51:59 -05:00
Darin Kelkhoff 842d6bf025 Add native toolbar customization 2026-06-22 12:40:59 -05:00
Darin Kelkhoff 28458b0892 Polish menus and toolbar controls 2026-06-22 11:38:34 -05:00
Darin Kelkhoff ad76a0c8e1 Prune editing commands from File menu 2026-06-19 16:40:24 -05:00
Darin Kelkhoff a3d91f50f4 Add release notes page for 1.3.0 v1.4.0 2026-06-19 15:42:23 -05:00
Darin Kelkhoff 88c983b51f release: update appcast for v1.3.0 2026-06-19 14:47:15 -05:00
Darin Kelkhoff 562462714a MARKETING_VERSION 1.3.0 v1.3.0 2026-06-19 14:45:05 -05:00
Darin Kelkhoff 63cd94886c Update feature documentation 2026-06-19 14:44:16 -05:00
Darin Kelkhoff 50a9d2a01c Improve document panes and CSS help 2026-06-19 11:43:14 -05:00
Darin KelkhoffandClaude Opus 4.8 0bf40661bf feat: Markdown source pane + task-list checkboxes
Add a toggleable raw-Markdown source pane (toolbar button) shown beside the
rendered view in the WKWebView:
- Resizable divider with persisted width (@AppStorage), dynamic max width.
- Find spans both panes, pairing the k-th rendered hit with the k-th source hit
  so next/prev moves both.
- Header-anchored scroll-sync both directions (interpolated between headings).
- Option-click a rendered header to anchor/jump (both panes follow).
- Collapsing a section mirrors into the source with a collapsed-section ellipsis.
- Slides open/closed like the TOC (suppressed on load and during drag).

Also render GFM task lists ([ ]/[x]) as real disabled checkboxes, and document
the source-pane and TOC custom-CSS selectors in the shared CSS help (now
scrollable + selectable).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:54:41 -05:00
Darin KelkhoffandClaude Opus 4.8 442a6ebae9 fix: user theme override of a built-in is no longer shadowed
Editing a built-in theme in place saves a same-named user file, but loadThemes
appended both the bundled and user copies, so the built-in (added first) shadowed
the override in every name-based lookup — the editor reopened the bundled copy
(losing edits/customCSS) and rendering used it too.

Drop the shadowed bundled copy when a user theme shares its name, and mark that
override built-in so the UI still shows it as one. deleteTheme now also removes
the override file (so deleting an edited built-in actually clears it).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 16:54:40 -05:00
Darin KelkhoffandClaude Opus 4.8 6f595b9370 feat: TOC wrap toggle, depth markers, full-height divider, slide animation
- Settings → General toggle to wrap long TOC entries; default is no-wrap with
  ellipsis (hover shows full text via the title attribute).
- 'Depth markers' toggle prefixing each entry with a shape that varies by
  heading level (●○◆◇■□), with hanging-indent so wrapped lines align past
  the marker.
- Move the divider onto the full-height sticky resizer so it spans the whole
  window regardless of TOC content length.
- Animate TOC open/close (width/padding/opacity), suppressed on initial load
  and during drag-resize so only deliberate toggles animate.
- Fix the Settings TOC GroupBox not spanning full width.

New settings persist via @AppStorage and inject into the web view on load.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 15:30:16 -05:00
Darin KelkhoffandClaude Opus 4.8 7f23bb9393 feat: resizable TOC panel with persisted width, visibility, and depth
Add a drag handle on the TOC's right edge (CSS/JS in template.html); on
drag-end the width is posted to Swift via a new tocWidth message handler and
saved to @AppStorage, then injected into every document on load. Also persist
tocVisible and tocDepth (previously per-window @State) so the whole TOC state
survives across documents and launches.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 12:47:24 -05:00
Darin KelkhoffandClaude Opus 4.8 fd0df14e95 docs: correct inaccurate syntax-highlighting claim
The app does not tokenize/highlight code; code blocks are monospaced and
themed. Fix the claim in the README and landing page.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:02:19 -05:00
Darin KelkhoffandClaude Opus 4.8 4edb7f3bd7 build: show export-compliance state in asc-builds output
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 12:18:55 -05:00
Darin KelkhoffandClaude Opus 4.8 82e12674b4 docs: add privacy policy page and link it from the landing page
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 12:04:52 -05:00
Darin KelkhoffandClaude Opus 4.8 df8eeab4ad build: add asc-builds recipe to check App Store Connect build state
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 12:02:16 -05:00
Darin KelkhoffandClaude Opus 4.8 8d76a4bdca build: split App Store build into its own Sparkle-free target
A single target can't exclude Sparkle from the MAS build: SwiftPM auto-links
a declared package-product dependency regardless of #if guards, so the
framework is always embedded/linked. App Store rejects Sparkle's non-sandboxed
helpers (error 90296), and the framework can't be stripped post-build (the
binary links it -> dyld launch crash).

Replace the single target + Debug-MAS/Release-MAS configs with two app targets
sharing a targetTemplates base:
- markdownViewr (Developer ID, depends on Sparkle)
- markdownViewr-MAS (App Store, no Sparkle dependency, sandboxed, MAS_BUILD)

Both use plain Debug/Release. Update release-mas, test, and the test runner to
the new scheme names.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 09:07:09 -05:00
Darin KelkhoffandClaude Opus 4.8 b07a9f87a1 build: fix upload-mas just --list description ordering
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 08:44:59 -05:00
Darin KelkhoffandClaude Opus 4.8 e870838a73 build: add upload-mas recipe for App Store Connect delivery
Auto-discovers the API Key ID from the AuthKey_<id>.p8 filename and reads
the issuer id from ~/.appstoreconnect/issuer_id (or ASC_ISSUER_ID), so no
credentials live in this public repo and no per-run input is needed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 08:44:40 -05:00
Darin KelkhoffandClaude Opus 4.8 f10dd1fa48 build: allow provisioning updates and use app-store-connect export method
-allowProvisioningUpdates lets xcodebuild create the Mac App Store
provisioning profile for com.dkelkhoff.markdownViewr on first export.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 08:32:52 -05:00
Darin KelkhoffandClaude Opus 4.8 f1e96f2913 docs: add Apple-platform portability note
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 08:11:24 -05:00