120 Commits
Author SHA1 Message Date
james.maes 466a1e655c Merge pull request 'ci: shared ci-workflows macOS workflow; fix the Xcode 27 Document ambiguity (blocked: runner has no GUI session)' (#3) from ci/shared-macos into main
macos / macos (push) Successful in 14s
build / macos (push) Successful in 14s
2026-11-08 23:28:56 +00:00
James MaesandClaude Opus 5.5 be68c9f1bb ci: build only on CI; run the app-hosted tests locally
macos / macos (push) Successful in 16s
build / macos (push) Successful in 16s
The grogu runner has no GUI session, so xcodebuild test cannot reach
testmanagerd. CI compiles the app and the test bundle unsigned
(build-for-testing); the README documents running just test locally.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 17:24:40 -06:00
James MaesandClaude Opus 5.5 77b9274434 ci: pin the shared workflow to v1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 07:46:19 -06:00
James MaesandClaude Opus 5.5 ab3731e0df fix: qualify Markdown.Document for the Xcode 27 SDK
macos / macos (push) Failing after 14s
build / macos (push) Failing after 14s
SwiftUI now declares a Document protocol, so the unqualified name in the
plain-text visitor is ambiguous and the build fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 07:37:16 -06:00
James MaesandClaude Opus 5.5 4536db3f09 ci: build on the shared ci-workflows macOS workflow
macos / macos (push) Failing after 16s
build / macos (push) Failing after 16s
Runs the repository's build (and tests where it has them) on the KOF macOS
host runner through ci-workflows macos.yaml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 07:34:06 -06: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