尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Markio — a native, offline macOS viewer for GitHub Flavored Markdown with Mermaid diagrams.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A native macOS Markdown viewer with no web view, no HTML and no JavaScript.
Every glyph on screen is typeset by CoreText from a parser that reads the
file's bytes directly. Nothing is converted to HTML on the way, so there is no
browser engine to start, no document object model to build, and no second copy
of the text living inside a renderer. The point of that is what it buys on
large files: an 8 MB document opens as fast as an 8 KB one, and scrolling
through a 32 MB one measures the same as scrolling through a short note.
Markio reads. It never writes a file it opens.檢視完整 README ↗A native macOS Markdown viewer with no web view, no HTML and no JavaScript.
Every glyph on screen is typeset by CoreText from a parser that reads the file's bytes directly. Nothing is converted to HTML on the way, so there is no browser engine to start, no document object model to build, and no second copy of the text living inside a renderer. The point of that is what it buys on large files: an 8 MB document opens as fast as an 8 KB one, and scrolling through a 32 MB one measures the same as scrolling through a short note.
Markio reads. It never writes a file it opens.
https://…, a www.… and an email address in the prose are all links<b>, <em>, <kbd>, <mark>,
<u>, <del>, <code>, <sup>, <sub>, <br> and their synonyms —
mapped straight to text styles. There is no HTML engine; anything else is
dropped rather than showncases and aligned, and a display formula's limits above and below its sum
sign. What the subset does not cover keeps its source rather than being
guessed at<details> sections, folded away until you click their summaryclassDef colours — and sequence diagrams with loops, alternatives,
notes and activation bars, plus pie charts, state machines, class diagrams,
entity–relationship diagrams, mindmaps, timelines, user journeys, Gantt
charts, quadrant charts, xy charts, git graphs, packet diagrams, kanban
boards, requirement diagrams, Sankey diagrams, treemaps, C4 diagrams,
architecture diagrams, radar charts, block diagrams and ZenUML, drawn with
paths and
glyphs, each showing the title its YAML preamble gave it. No web view, no
diagram library. What the subset does not cover stays a fenced blockSources/Markio/main.swift:42 — is a link when
the file is really there, and opens at that line in the same editorNeeds Deno 2 and a Swift 6.3 toolchain.
deno task check
That is the gate: format, lint, type-check, a debug build and a release one, a scan for TODO markers, a scan that fails if WebKit or JavaScriptCore ever appear in the sources, a format lint, and the tests. Both configurations are built because the release compiler sees across files and rejects captures the debug one accepts, and the release build is what a reader ends up running.
Other verbs:
deno task app — build the .app bundle into .build/Markio.appdeno task dev <file.md> — build and open a documentdeno task test — the test suite alonedeno task bench — parse cost and memory footprint at 1, 8 and 32 MBdeno task viewbench — what one document costs the Mac apps that open it,
this one and any other, measured from the outside
(the procedure)deno task layoutbench — crossings, lines through boxes, covered words and
detours in how the graphs in test-fixtures/layout/ are laid outdeno task icons — redraw the app icon set from Icon.swiftdeno task dist — the unsigned bundle; signing and upload happen outside
this repositoryThe app can draw its own window into a PNG, which is how rendering is checked without a screen:
.build/Markio.app/Contents/MacOS/Markio doc.md --capture=/tmp/shot.png
Add --capture-hover=<x>,<y> to park the pointer first, for the controls that
only appear under it, --capture-click=<x>,<y> for what only a click shows,
--capture-type=<text> to type into whatever that click focused, or
--capture-scroll=<points> for what only appears once a document has been
scrolled. --compare=<path> (with --side-by-side) captures a comparison
without a hand on the mouse, --present [--slide=<n>] opens the deck,
--export-pdf=<path> writes the PDF and quits, and --dump-menu[=<path>] writes
the menu bar as AppKit has it — every item with its shortcut, whether it is
enabled, and which object would receive it. It waits 2.5 seconds first and says
in its first line whether the app was active and which window was key: an
inactive app disables every document command, so a dump that says
active=false cannot answer whether an item is enabled. Add -ApplePersistenceIgnoreState YES when the
shot must show one document and not whatever macOS restored alongside it. The bench harness renders offscreen, and takes a baseline
when the thing to look at is a comparison:
.build/release/markio-bench snapshot new.md /tmp/diff.png 900 620 light 0 old.md
Release build, Apple silicon, generated documents of realistic shape:
Peak resident memory across all three: 73.6 MB. The parse tree costs 38% of the file it describes, and the time to the first screenful does not grow with the document, because only the blocks on screen are ever typeset.
Sources/MarkdownKit — the parser. Pure Swift, no AppKit, byte-levelSources/MarkioRender — CoreText typesetting, the virtualized layout and the
reading viewSources/Markio — the app: documents, windows, menus, live reloadSources/MarkioQuickLook — the Finder preview extensionSources/markio-bench — headless measurement and offscreen renderingdocuments/ — requirements, design and per-task notes<details> summary to fold its section away or bring it back.md file in Finder for the same rendering in Quick Look