Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
6292495
revert: spacing around blocks back to 1.14.2
b451c Nov 4, 2026
27ce616
release: v1.14.4 (build 30)
b451c Nov 4, 2026
69757f1
Parser: one text row per CommonMark block
b451c Nov 4, 2026
d64dc20
Vertical rhythm: one spacing system for every pair of blocks
b451c Nov 4, 2026
fc7c948
Copy: a block cut into rows copies as one block
b451c Nov 4, 2026
3753ea8
Print/PDF: the same spacing system as the screen
b451c Nov 4, 2026
163311b
Tests: vertical rhythm
b451c Nov 4, 2026
4b1bce3
Scroll anchor: keep the reader's block across toggles and reports
b451c Nov 4, 2026
b06ed24
Scroll anchor: keep the reader in a block that is still an estimate
b451c Nov 4, 2026
8d8da43
Print/PDF: a heading never ends a page
b451c Nov 4, 2026
03579d1
Rhythm: front matter the parser could not read is still front matter
b451c Nov 4, 2026
cb25b5f
Parser: cut a row only where CommonMark lets a list interrupt
b451c Nov 4, 2026
80c3954
Rhythm: a quote is read by its text, a diagram by its ink
b451c Nov 4, 2026
4f67351
Measurer: an autorelease pool per text layout
b451c Nov 4, 2026
f5bbb2d
fix(list): hold the anchor through a layout switch; seed pictures fro…
b451c Nov 4, 2026
7ddc1ce
fix(list): a text row under the top inset no longer scrolls the docum…
b451c Nov 4, 2026
719d437
fix(heights): a picture or diagram shown once is measured exactly at …
b451c Nov 4, 2026
a4a8813
fix(mermaid): a re-created diagram shows its latest snapshot until th…
b451c Nov 4, 2026
ac4a103
test: one temporary-defaults helper, no plist left in ~/Library/Prefe…
b451c Nov 4, 2026
c1907a7
test(tables): pin GFM body-row cell count (pad fewer, ignore excess)
b451c Nov 4, 2026
ce5ba94
fix(tables): split cells on unicode scalars, so a pipe before a combi…
b451c Nov 4, 2026
11aaaab
fix(math): a formula that parses but draws nothing falls back to its …
b451c Nov 4, 2026
9b032bd
fix(copy): a formula shown as its source copies as $$...$$ when cover…
b451c Nov 4, 2026
f536e84
fix(toc): a stored Contents depth outside the choices reads as the ne…
b451c Nov 4, 2026
53fad31
fix(review): count the reading minute only while the reader is active
b451c Nov 4, 2026
1705b70
fix(selection): a double- or triple-click in a gap selects the word w…
b451c Nov 4, 2026
83a5645
fix(front-matter): a list whose item contains a comma shows one item …
b451c Nov 4, 2026
7567c21
perf(copy): a heading-heavy document's copy and search reuse the meas…
b451c Nov 4, 2026
f41634b
fix(front-matter): a value's backslashes show as written
b451c Nov 4, 2026
4840f08
fix(front-matter): the focused search match on a key uses the text co…
b451c Nov 4, 2026
39f117e
fix(markdown): an item line that may not interrupt a paragraph is tha…
b451c Nov 4, 2026
73bc0f7
fix(headings): character references show as characters, ids match GitHub
b451c Nov 4, 2026
9bbf6ae
fix(markdown): a line of no-break spaces is text, not a blank line
b451c Nov 4, 2026
46a5001
fix(references): reference links and images resolve in quotes, alerts…
b451c Nov 4, 2026
ff81e5b
fix(links): build link URLs the same on every macOS, keeping the frag…
b451c Nov 4, 2026
f200a8f
fix(search): ⌘G centres the match inside a block taller than the window
b451c Nov 4, 2026
732c4ff
fix(links): other.md#section scrolls the other document to its heading
b451c Nov 4, 2026
299d408
fix(watcher): an unreadable document says it can't be read, not that …
b451c Nov 4, 2026
47de67b
fix(lists): an ordered list keeps one text edge across rows and neste…
b451c Nov 4, 2026
246cde8
fix(mermaid): a rendered diagram is as tall as it is, no 50 pt floor
b451c Nov 4, 2026
817907b
fix(reading-mode): no heading copy icon in Reading Mode, same heading…
b451c Nov 4, 2026
b32c10b
fix(anchor): tables without a header get a distinctive anchor signature
b451c Nov 4, 2026
1cc4046
fix(settings): remember the Settings tab by identifier, migrating the…
b451c Nov 4, 2026
d1ed1bb
docs(links): inDocumentFragment comment describes linkURL, not the ol…
b451c Nov 4, 2026
d6e28a2
fix(footnotes): footnote references resolve in quotes, alerts and tab…
b451c Nov 4, 2026
46afa5e
feat(reading): the reading column scales with the zoom
b451c Nov 4, 2026
c3186c2
fix(text): decode HTML character references in all inline text, as Gi…
b451c Nov 4, 2026
ac2f994
fix(copy): a front-matter list copies without U+2028
b451c Nov 4, 2026
4196d8a
fix(references): inline quote and alert references per soft-break group
b451c Nov 4, 2026
ddc0540
fix(references): resolve an image reference inside an inline link's text
b451c Nov 4, 2026
40a29da
fix(links): URL(string:) first, our encoder only when it fails
b451c Nov 4, 2026
c7a46ee
fix(links): cross-document anchors key on the symlink-resolved path
b451c Nov 4, 2026
8d3649a
docs(readme): the reading column grows with zoom
b451c Nov 4, 2026
a633405
fix(text): every ASCII punctuation escapes; the Contents sidebar show…
b451c Nov 4, 2026
256689a
test(watcher): permission tests wait for the event, skip as root
b451c Nov 4, 2026
b0d8e53
feat(images): a line that is only one linked image is an image block
b451c Nov 4, 2026
63da3c4
test(settings): SettingsTab migration test in its own SettingsTabTest…
b451c Nov 4, 2026
a851229
fix(parser): block markers take spaces and tabs only; the block loop …
b451c Nov 4, 2026
636de0e
fix(source-edit): the editor's column follows the zoom the document i…
b451c Nov 4, 2026
b9f0cda
fix(search): the reader's own scroll cancels a jump's pending aim at …
b451c Nov 4, 2026
c58c4ab
Merge feature/vertical-rhythm (46afa5e) into feature/backlog-b
b451c Nov 4, 2026
88bceb7
test(parser): linked images,   lines and 1. under whole-docu…
b451c Nov 4, 2026
e71f11c
fix(source-edit): the tint reads titles and blank lines as the parser…
b451c Nov 4, 2026
f06ad86
fix(math): an escaped dollar is a dollar sign, never a formula delimiter
b451c Nov 4, 2026
1f9947c
fix(links): character references in link destinations are decoded
b451c Nov 4, 2026
a32f42d
fix(parser): a quote's paragraph takes lazy continuation lines
b451c Nov 4, 2026
c0e3378
fix(math): a formula keeps its LaTeX escapes
b451c Nov 4, 2026
fa3f125
fix(alerts): an alert marker takes spaces and tabs around it, nothing…
b451c Nov 4, 2026
9894f25
fix(search): only a wheel event that scrolls drops a jump's aim
b451c Nov 4, 2026
1ed16c1
fix(links): a link's text with a backslash escape is inline-parsed
b451c Nov 4, 2026
3dccab0
fix(source-edit): the editor's font follows ⌘+ at once, its column th…
b451c Nov 4, 2026
fef7f52
fix(links): a link's text is inline Markdown, as on GitHub
b451c Nov 4, 2026
e2fd34d
fix(parser): a lazy quote line is paragraph text, never structure
b451c Nov 4, 2026
9a28887
fix(headings): a formula in a heading shows its source with its LaTeX…
b451c Nov 4, 2026
9cd2e27
fix(parser): a definition inside a fenced code block is the block's text
b451c Nov 4, 2026
24a23d9
fix(parser): a link definition cannot interrupt a paragraph
b451c Nov 4, 2026
82c34c7
fix(parser): an indented fence drops its indentation from its lines
b451c Nov 4, 2026
e29a51c
perf(links): plain link text skips the inline pass
b451c Nov 4, 2026
cbd0d7c
fix(parser): a Setext underline makes the whole paragraph above it th…
b451c Nov 4, 2026
4c0afbf
fix(links): code spans outrank brackets
b451c Nov 4, 2026
44eaf23
perf(quote): a long quote is rendered once per parse, not per re-meas…
b451c Nov 4, 2026
cc49795
fix(links): a backtick in a link destination opens no code span for b…
b451c Nov 4, 2026
9b68914
perf(links): the image-line bracket scan pairs parens once, not per i…
b451c Nov 4, 2026
0e8ced0
fix(anchors): a multi-line Setext title gets GitHub's id
b451c Nov 4, 2026
cbe5c1c
fix(parser): a block start ends a table's body
b451c Nov 4, 2026
f5425f9
fix(parser): a tab past an indented fence's indentation leaves spaces
b451c Nov 4, 2026
61b9a6d
fix(parser): a link definition may start a quote's paragraph
b451c Nov 4, 2026
11f924d
fix(quote): a run of blank lines in a quote is one paragraph break
b451c Nov 4, 2026
324453f
fix(anchors): a code span across a Setext title's break keeps a space…
b451c Nov 4, 2026
8c0fd97
fix(parser): a definition opening a deeper quote is a definition
b451c Nov 4, 2026
cc0a95e
Merge feature/vertical-rhythm (8c0fd97) into feature/backlog-b
b451c Nov 4, 2026
7aea0cd
fix(parser): a lazy line after a quote's definition stays in the quote
b451c Nov 4, 2026
24863d9
fix(parser): reference links in headings resolve
b451c Nov 4, 2026
3e7ed3c
fix(parser): a footnote definition in a quote is a footnote
b451c Nov 4, 2026
12f9b33
fix(parser): reference labels match as CommonMark's
b451c Nov 4, 2026
cc694e6
fix(parser): an alert needs a body
b451c Nov 4, 2026
ec52f13
fix(parser): a footnote label is GitHub's
b451c Nov 4, 2026
a8bdff0
Merge feature/vertical-rhythm (ec52f13) into feature/backlog-b
b451c Nov 4, 2026
4d00241
fix(parser): footnote labels match as reference labels do
b451c Nov 4, 2026
002ce92
fix(parser): a whitespace-only label defines nothing
b451c Nov 4, 2026
54d8463
fix(parser): escaped brackets in reference labels
b451c Nov 4, 2026
cf4da3c
Merge feature/backlog-b: one vertical rhythm and Markdown read as on …
b451c Nov 4, 2026
d96c911
Merge fix/review-prompt-active: the rating prompt counts only active …
b451c Nov 4, 2026
058a1c5
test: comments no longer point at local scratch files
b451c Nov 4, 2026
1154df2
chore: drop an unused loop index in the height measurer
b451c Nov 4, 2026
07dca92
fix(images): a linked image is a picture only when it is its own para…
b451c Nov 4, 2026
fb6d4ad
fix(hover): block buttons show only while the pointer is over the doc…
b451c Nov 5, 2026
fe0f954
release: v1.14.4 (build 31)
b451c Nov 5, 2026
08d7f03
docs(readme): screenshots for 1.14.4
b451c Nov 5, 2026
3870506
chore: sync local Casks/quickmd.rb to v1.14.4
b451c Nov 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Casks/quickmd.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cask "quickmd" do
version "1.14.3"
sha256 "a9d00b75f01778d2e5309358f847f74076734bf51a639873ef197c6756114b78"
version "1.14.4"
sha256 "17677468c385bbe190c8770fe35843c41485bfe02ccbeca3210d8ee2ca4f0104"

url "https://github.com/b451c/quickmd/releases/download/v#{version}/QuickMD-v#{version}.zip"
name "QuickMD"
Expand Down
26 changes: 26 additions & 0 deletions QuickMD/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,32 @@ All notable changes to QuickMD will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.14.4] - 2026-11-05

Comfortable spacing, done properly, and Markdown that reads like it does on GitHub.

### Changed
- **Spacing:** one consistent rhythm between every kind of block. Headings get clear space above and stay close to their own text; paragraphs, lists, quotes, tables, code and diagrams are evenly spaced, with or without blank lines in the source. This replaces the cramped spacing of 1.14.3. PDF export follows the same rhythm and keeps a heading on the page with its text.
- **Reading Mode:** the column grows with zoom, so a line holds the same amount of text at any size (720 pt at 100%). The heading copy buttons are hidden there.

### Fixed
- Read as on GitHub:
- character references such as `&`, `©` and ` ` show as characters, also in link addresses;
- formatting inside link text (`[**Docs**](...)`, ``[`code`](...)``) renders;
- a linked image that stands alone in its paragraph (a README logo or a single badge) shows the picture;
- reference links and footnotes work inside quotes, alerts and table cells;
- a quote wrapped over several lines without `>` on each line stays one quote;
- an alert marker with nothing under it (`> [!NOTE]` alone) is a plain quote;
- `1)` lists, a year like `1984.` inside a paragraph, a heading underlined over several lines, `\$5` amounts, and link definitions inside code;
- a fenced code block indented under a list step is no longer drawn shifted right.
- Formulas keep their LaTeX escapes (`$50\%$`), and a formula that cannot be drawn shows its source.
- Zoom and Reading Mode keep your reading position exactly; images and diagrams keep their size once shown, and a diagram no longer flashes empty when it scrolls back into view.
- Search centres the match inside a tall table, code block or quote.
- A link to a section of another document (`other.md#section`) scrolls to that section.
- A file that cannot be read says so, instead of reporting it as missing.
- Settings reopens on the tab you used last.
- Faster copy and search in documents with many headings; long quotes no longer slow down scrolling and search.

## [1.14.3] - 2026-11-04

Two rendering fixes.
Expand Down
56 changes: 52 additions & 4 deletions QuickMD/QuickMD.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,23 @@
A1B2C3D401000231 /* ReviewPrompt.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000230 /* ReviewPrompt.swift */; };
A1B2C3D401000232 /* ReviewPromptTrigger.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000231 /* ReviewPromptTrigger.swift */; };
A1B2C3D401000233 /* ReviewPromptTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000232 /* ReviewPromptTests.swift */; };
A1B2C3D401000300 /* TemporaryDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000300 /* TemporaryDefaults.swift */; };
A1B2C3D40100030B /* SettingsTabTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D40000030B /* SettingsTabTests.swift */; };
A1B2C3D401000201 /* PrintableTableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000200 /* PrintableTableTests.swift */; };
A1B2C3D4010001C0 /* SelectionRows.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D4000001C0 /* SelectionRows.swift */; };
A1B2C3D4010001C1 /* SelectionRows.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D4000001C0 /* SelectionRows.swift */; };
A1B2C3D4010002A0 /* VerticalRhythm.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D4000002A0 /* VerticalRhythm.swift */; };
A1B2C3D4010002A1 /* VerticalRhythm.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D4000002A0 /* VerticalRhythm.swift */; };
A1B2C3D401000301 /* ReferenceLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000301 /* ReferenceLinks.swift */; };
A1B2C3D401000302 /* ReferenceLinks.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000301 /* ReferenceLinks.swift */; };
A1B2C3D401000303 /* CrossDocumentAnchors.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000303 /* CrossDocumentAnchors.swift */; };
A1B2C3D401000304 /* CrossDocumentAnchors.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000303 /* CrossDocumentAnchors.swift */; };
A1B2C3D401000305 /* SettingsTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000305 /* SettingsTab.swift */; };
A1B2C3D401000306 /* SettingsTab.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000305 /* SettingsTab.swift */; };
A1B2C3D401000309 /* HTMLEntityTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000309 /* HTMLEntityTable.swift */; };
A1B2C3D40100030A /* HTMLEntityTable.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000309 /* HTMLEntityTable.swift */; };
A1B2C3D401000307 /* HTMLEntities.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000307 /* HTMLEntities.swift */; };
A1B2C3D401000308 /* HTMLEntities.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000307 /* HTMLEntities.swift */; };
A1B2C3D4010001C2 /* TableSelectionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D4000001C1 /* TableSelectionTests.swift */; };
A1B2C3D40100000E /* ImageBlockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000012 /* ImageBlockView.swift */; };
A1B2C3D40100000F /* BlockquoteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000013 /* BlockquoteView.swift */; };
Expand Down Expand Up @@ -119,6 +133,7 @@
A1B2C3D401000068 /* ChromeHoverState.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000066 /* ChromeHoverState.swift */; };
A1B2C3D401000069 /* BlockHeightMeasurer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000069 /* BlockHeightMeasurer.swift */; };
A1B2C3D40100006A /* BlockHeightMeasurerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D40000006A /* BlockHeightMeasurerTests.swift */; };
A1B2C3D4010002A2 /* VerticalRhythmTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D4000002A1 /* VerticalRhythmTests.swift */; };
A1B2C3D40100006B /* BlockHeightMeasurer.swift in Sources (Tests) */ = {isa = PBXBuildFile; fileRef = A1B2C3D400000069 /* BlockHeightMeasurer.swift */; };
A1B2C3D40100006C /* VirtualBlockList.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D40000006C /* VirtualBlockList.swift */; };
A1B2C3D40100006D /* SVGBlockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1B2C3D40000006D /* SVGBlockView.swift */; };
Expand Down Expand Up @@ -173,6 +188,7 @@
A1B2C3D400000064 /* FontTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontTests.swift; sourceTree = "<group>"; };
A1B2C3D400000069 /* BlockHeightMeasurer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockHeightMeasurer.swift; sourceTree = "<group>"; };
A1B2C3D40000006A /* BlockHeightMeasurerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockHeightMeasurerTests.swift; sourceTree = "<group>"; };
A1B2C3D4000002A1 /* VerticalRhythmTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalRhythmTests.swift; sourceTree = "<group>"; };
A1B2C3D40000006C /* VirtualBlockList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VirtualBlockList.swift; sourceTree = "<group>"; };
A1B2C3D40000006D /* SVGBlockView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SVGBlockView.swift; sourceTree = "<group>"; };
A1B2C3D40000006E /* SVGImageDecoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SVGImageDecoder.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -226,8 +242,16 @@
A1B2C3D400000230 /* ReviewPrompt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewPrompt.swift; sourceTree = "<group>"; };
A1B2C3D400000231 /* ReviewPromptTrigger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewPromptTrigger.swift; sourceTree = "<group>"; };
A1B2C3D400000232 /* ReviewPromptTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewPromptTests.swift; sourceTree = "<group>"; };
A1B2C3D400000300 /* TemporaryDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemporaryDefaults.swift; sourceTree = "<group>"; };
A1B2C3D40000030B /* SettingsTabTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsTabTests.swift; sourceTree = "<group>"; };
A1B2C3D400000200 /* PrintableTableTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrintableTableTests.swift; sourceTree = "<group>"; };
A1B2C3D4000001C0 /* SelectionRows.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectionRows.swift; sourceTree = "<group>"; };
A1B2C3D4000002A0 /* VerticalRhythm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalRhythm.swift; sourceTree = "<group>"; };
A1B2C3D400000301 /* ReferenceLinks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReferenceLinks.swift; sourceTree = "<group>"; };
A1B2C3D400000303 /* CrossDocumentAnchors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrossDocumentAnchors.swift; sourceTree = "<group>"; };
A1B2C3D400000305 /* SettingsTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsTab.swift; sourceTree = "<group>"; };
A1B2C3D400000309 /* HTMLEntityTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTMLEntityTable.swift; sourceTree = "<group>"; };
A1B2C3D400000307 /* HTMLEntities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTMLEntities.swift; sourceTree = "<group>"; };
A1B2C3D4000001C1 /* TableSelectionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TableSelectionTests.swift; sourceTree = "<group>"; };
A1B2C3D400000012 /* ImageBlockView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageBlockView.swift; sourceTree = "<group>"; };
A1B2C3D400000013 /* BlockquoteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockquoteView.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -334,12 +358,15 @@
A1B2C3D400000064 /* FontTests.swift */,
A1B2C3D400000067 /* ChromeHoverTests.swift */,
A1B2C3D40000006A /* BlockHeightMeasurerTests.swift */,
A1B2C3D4000002A1 /* VerticalRhythmTests.swift */,
A1B2C3D400000082 /* ImageLoadingTests.swift */,
A1B2C3D4000000E1 /* HTMLImageTests.swift */,
A1B2C3D4000000F0 /* HeadingLayoutTests.swift */,
A1B2C3D4000001B2 /* TableTextTests.swift */,
A1B2C3D400000221 /* FrontMatterTests.swift */,
A1B2C3D400000232 /* ReviewPromptTests.swift */,
A1B2C3D400000300 /* TemporaryDefaults.swift */,
A1B2C3D40000030B /* SettingsTabTests.swift */,
A1B2C3D400000200 /* PrintableTableTests.swift */,
A1B2C3D4000001C1 /* TableSelectionTests.swift */,
A1B2C3D4000000C1 /* DocumentSelectionTests.swift */,
Expand Down Expand Up @@ -377,6 +404,12 @@
A1B2C3D400000081 /* ImageLoader.swift */,
A1B2C3D4000000C0 /* DocumentSelection.swift */,
A1B2C3D4000001C0 /* SelectionRows.swift */,
A1B2C3D4000002A0 /* VerticalRhythm.swift */,
A1B2C3D400000301 /* ReferenceLinks.swift */,
A1B2C3D400000303 /* CrossDocumentAnchors.swift */,
A1B2C3D400000305 /* SettingsTab.swift */,
A1B2C3D400000309 /* HTMLEntityTable.swift */,
A1B2C3D400000307 /* HTMLEntities.swift */,
A1B2C3D400000110 /* DocumentReadingPosition.swift */,
A1B2C3D400000120 /* DocumentFileFormat.swift */,
A1B2C3D400000121 /* DocumentFileWriter.swift */,
Expand Down Expand Up @@ -674,6 +707,12 @@
A1B2C3D401000082 /* ImageLoader.swift in Sources */,
A1B2C3D4010000C0 /* DocumentSelection.swift in Sources */,
A1B2C3D4010001C0 /* SelectionRows.swift in Sources */,
A1B2C3D4010002A0 /* VerticalRhythm.swift in Sources */,
A1B2C3D401000301 /* ReferenceLinks.swift in Sources */,
A1B2C3D401000303 /* CrossDocumentAnchors.swift in Sources */,
A1B2C3D401000305 /* SettingsTab.swift in Sources */,
A1B2C3D401000309 /* HTMLEntityTable.swift in Sources */,
A1B2C3D401000307 /* HTMLEntities.swift in Sources */,
A1B2C3D401000110 /* DocumentReadingPosition.swift in Sources */,
A1B2C3D401000120 /* DocumentFileFormat.swift in Sources */,
A1B2C3D401000122 /* DocumentFileWriter.swift in Sources */,
Expand Down Expand Up @@ -715,6 +754,7 @@
A1B2C3D401000067 /* ChromeHoverTests.swift in Sources */,
A1B2C3D401000068 /* ChromeHoverState.swift in Sources (Tests) */,
A1B2C3D40100006A /* BlockHeightMeasurerTests.swift in Sources */,
A1B2C3D4010002A2 /* VerticalRhythmTests.swift in Sources */,
A1B2C3D40100006B /* BlockHeightMeasurer.swift in Sources (Tests) */,
A1B2C3D4010001B1 /* TableTextBuilder.swift in Sources (Tests) */,
A1B2C3D401000221 /* FrontMatter.swift in Sources (Tests) */,
Expand All @@ -726,6 +766,12 @@
A1B2C3D4010000E2 /* HTMLImageTests.swift in Sources */,
A1B2C3D4010000C1 /* DocumentSelection.swift in Sources (Tests) */,
A1B2C3D4010001C1 /* SelectionRows.swift in Sources (Tests) */,
A1B2C3D4010002A1 /* VerticalRhythm.swift in Sources (Tests) */,
A1B2C3D401000302 /* ReferenceLinks.swift in Sources (Tests) */,
A1B2C3D401000304 /* CrossDocumentAnchors.swift in Sources (Tests) */,
A1B2C3D401000306 /* SettingsTab.swift in Sources (Tests) */,
A1B2C3D40100030A /* HTMLEntityTable.swift in Sources (Tests) */,
A1B2C3D401000308 /* HTMLEntities.swift in Sources (Tests) */,
A1B2C3D4010000C2 /* DocumentSelectionTests.swift in Sources */,
A1B2C3D401000111 /* DocumentReadingPosition.swift in Sources (Tests) */,
A1B2C3D401000112 /* ExternalEditorLineTests.swift in Sources */,
Expand All @@ -751,6 +797,8 @@
A1B2C3D4010001B3 /* TableTextTests.swift in Sources */,
A1B2C3D401000222 /* FrontMatterTests.swift in Sources */,
A1B2C3D401000233 /* ReviewPromptTests.swift in Sources */,
A1B2C3D401000300 /* TemporaryDefaults.swift in Sources */,
A1B2C3D40100030B /* SettingsTabTests.swift in Sources */,
A1B2C3D401000201 /* PrintableTableTests.swift in Sources */,
A1B2C3D4010001C2 /* TableSelectionTests.swift in Sources */,
);
Expand Down Expand Up @@ -891,7 +939,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 29;
CURRENT_PROJECT_VERSION = 31;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = VJ92852M32;
ENABLE_APP_SANDBOX = YES;
Expand All @@ -916,7 +964,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.14.3;
MARKETING_VERSION = 1.14.4;
PRODUCT_BUNDLE_IDENTIFIER = pl.falami.studio.QuickMD;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand All @@ -935,7 +983,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 29;
CURRENT_PROJECT_VERSION = 31;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = VJ92852M32;
ENABLE_APP_SANDBOX = YES;
Expand All @@ -960,7 +1008,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.14.3;
MARKETING_VERSION = 1.14.4;
PRODUCT_BUNDLE_IDENTIFIER = pl.falami.studio.QuickMD;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down
Loading
Loading