tinta

oipoistarMIT活跃维护

Windows 上的原生 C++ Markdown 阅读器,用 Direct2D 渲染,体积不到 5MB、启动不到 100ms,彻底摆脱 Electron 的臃肿。支持主题、目录、搜索和编辑模式。

Fast, lightweight markdown viewer & reader for Windows. Native C++ with Direct2D — <5MB binary, <100ms startup, no Electron. 10 themes, TOC, search, edit mode.

v4.0.2发布于 2026-11-03 16:48 UTC379star +13 / 7 天41fork同步于 2026-11-10 18:01 UTC

怎么上手

从 README 代码块原样提取,可能是其中一种安装方式
winget install "Tinta Markdown Viewer" -s msstore
硬件要求

README 没有说明硬件要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v4.0.2
  1. v4.0.2Tinta v4.0.2最新正式版2026-11-03 · 2026-11-03 16:48 UTC

    Tinta v4.0.2

    Installation

    • Easiest: winget install "Tinta Markdown Viewer" -s msstore (Store-signed, no security prompts, auto-updates), or the Microsoft Store page
    • Portable: download tinta.exe below and run it (SmartScreen may ask: "More info", then "Run anyway")
    • Optionally run tinta.exe /register to register Markdown, Mermaid and PlantUML files

    A fix release for 4.0.1. For what is new in 4.0 (Live and Sheets), see the v4.0.0 notes.

    Added

    • Pinned tabs, from a tab's menu: a pinned tab keeps to the start of the row as its first letter and stays in view. The title bar's pin is remembered for the next start. Requested by @Fallgrim (#312)
    • Equation numbers with \tag, and \eqref and \ref to an equation's \label, in the reader and the HTML and Word exports. Requested by @TiegenFang (#314)
    • With wrapping off, a scrollbar along the source editor's foot for lines that run past it, and the horizontal wheel pans them. Requested by @TiegenFang (#314)
    • mathFont= and cjkFont= in settings.ini name the faces for equations and for Chinese, Japanese and Korean letters. Requested by @TiegenFang (#314)

    Changed

    • Source and Live follow a file another program changes, as the reader does, and ask Reload or Keep mine when there are unsaved edits. Requested by @QuamerX (#311)
    • Each level of a bullet list has its own bullet, closer to its text. In Live, Tab takes an item one level in and Shift+Tab undoes it, and only the line being typed in is highlighted. Requested by @Fallgrim (#315)

    Fixed

    • A double-click in Source selects whole words in every script, Turkish, Greek and Cyrillic included. Reported by @Fallgrim (#313)
    • Selections over bold, italic, links and code are one even band, without seams in the reader or brighter strips in Live. Reported by @Fallgrim (#313)
    • Two $$ equations in a row are set as two, and Word exports include $$ equations. Reported by @TiegenFang (#314)
    • An inline $ equation can close before a letter, as in pandoc, so $R=50\,\mu$m no longer runs on; prices stay text. Reported by @TiegenFang (#314)
    • Signs after brackets, brackets beside slanted letters and accents such as the tilde are set as TeX sets them. Reported by @TiegenFang (#314)

    What's included

    • Export as HTML, DOCX, or PDF, plus optional Pandoc formats
    • 22 natively rendered Mermaid diagram families, and PlantUML diagrams through a local PlantUML
    • Tabbed interface with drag, session restore, and a tab context menu
    • 10 tuned themes (5 light, 5 dark) plus custom themes
    • Hardware-accelerated rendering via Direct2D
    • Single portable executable about 4 MB, no dependencies
  2. v4.0.1Tinta v4.0.12026-11-02 · 2026-11-02 00:21 UTC
    查看更新说明

    Tinta v4.0.1

    Installation

    • Easiest: winget install "Tinta Markdown Viewer" -s msstore (Store-signed, no security prompts, auto-updates), or the Microsoft Store page
    • Portable: download tinta.exe below and run it (SmartScreen may ask: "More info", then "Run anyway")
    • Optionally run tinta.exe /register to register Markdown, Mermaid and PlantUML files

    A fix release for 4.0.0. For what is new in 4.0 (Live and Sheets), see the v4.0.0 notes.

    Added

    • Themes can colour bold and italic text, the selection and horizontal rules with bold=, italic=, bolditalic=, selection= and hr= in themes.ini, on the page, in Live and Source and in the exports. See Theme colours. Requested by @Fallgrim (#310)

    Changed

    • In Live, Ctrl+E shows the page as the reader draws it, and Ctrl+E goes back to the caret; in the reader, Ctrl+E opens the editor. Source keeps Ctrl+E for its preview pane. Requested by @Fallgrim (#308)

    Fixed

    • Live's scrollbar can be dragged, and after a switch to Source and back the wheel and Down keep Live's page where they leave it. Reported by @go4399 (#307)
    • Live no longer sometimes shows a document opened after leaving the editor as Markdown being typed
    • The Microsoft Store logos are sharp at every display scale instead of enlarged and soft. Reported by @Fallgrim (#309)
    • Strikethrough and highlight wrap bold, italic, links and code; ~~**bold**~~ and ==*italic*== used to show their ~~ and == as text. As on GitHub, a == b and x ~~ y ~~ z stay text, and so do escaped signs

    What's included

    • Export as HTML, DOCX, or PDF, plus optional Pandoc formats
    • 22 natively rendered Mermaid diagram families, and PlantUML diagrams through a local PlantUML
    • Tabbed interface with drag, session restore, and a tab context menu
    • 10 tuned themes (5 light, 5 dark) plus custom themes
    • Hardware-accelerated rendering via Direct2D
    • Single portable executable about 4 MB, no dependencies
  3. v4.0.0Tinta v4.0.02026-11-01 · 2026-11-01 12:45 UTC
    查看更新说明

    Tinta v4.0.0

    Installation

    • Easiest: winget install "Tinta Markdown Viewer" -s msstore (Store-signed, no security prompts, auto-updates), or the Microsoft Store page
    • Portable: download tinta.exe below and run it (SmartScreen may ask: "More info", then "Run anyway")
    • Optionally run tinta.exe /register to register Markdown, Mermaid and PlantUML files

    Tinta 4.0 brings two new ways to work: Live, a WYSIWYG editor where you write on the page as it reads, and Sheets, an infinite canvas of Markdown notes. Both are experimental in this release. They are ready to use, and they will grow with what you tell me: I'm looking forward to any suggestions for improving them, so please open an issue with what you would change.

    Live: write on the page (experimental)

    • A second way to edit beside Source: the page as the reading view lays it out, with the Markdown showing only in the block you are typing in. The pill at the top of the edit rail switches between them, and so does Ctrl+/; Tinta remembers the choice
    • Live edits the same text as Source, byte for byte, with the same undo, so switching changes nothing in the file
    • Typing knows Markdown: lists, numbers and tasks go on and end, Tab nests items and walks table cells, a bracket or mark typed over a selection wraps it, and an address pasted over words links them
    • A slash menu (/) makes every block Tinta draws: headings, lists, callouts, code, maths, Mermaid and PlantUML diagrams, a table, a picture, a link, a footnote and properties. Words selected on a line get a format bar
    • A right-click menu that knows what is under the pointer: formats, links, pictures, tasks, a table's rows and columns, Turn into and Insert
    • On a touchscreen a finger held on a word selects it and grows the selection by words, and the menu opens where it lifts
    • More in Live: write on the page

    Sheets: an infinite canvas of notes (experimental)

    • A sheet (.smd) lays out cards that are real Markdown notes in the sheet's folder, joined by arrows and gathered in groups. Make one with New sheet on the start page (or press S there), or open the Sheet tour among the start page's Learn cards
    • Semantic zoom: far out a card is its title, close up the rendered note. The arrow keys walk between cards, and Tab grows a mind map
    • The sheet is its folder: notes added from elsewhere wait in a tray, renamed ones are followed, and links written in the notes show as ghost lines that become arrows with a click
    • Lanes write a property such as status: into the notes dropped in them, so a board and its notes agree
    • A sheet compiles into one document along its arrows, presents along them (P) and tidies itself (Ctrl+L), and a pasted Mermaid flowchart arrives as cards
    • Cards are typed in with Live's engine, slash menu and format bar included
    • Obsidian .canvas files open as sheets too, and save back as JSON Canvas
    • More in Sheets

    Also new

    • The source editor shows Markdown in colour: headings, links and code stand out, the marks go faint, and fenced code and the properties take their language's colours. Settings, Editor turns it off. Requested by @derek-price (#268)
    • A numbered list button on the edit rail. Requested by @nokia5118 (#304)
    • Exit editing in the application menu while editing. Contributed by @SHM-white (#300)
    • Touch: a finger held in the split preview selects the rendered text and offers Copy, and Help scrolls under a finger. Contributed by @SHM-white (#301, #302)

    Fixed

    • The bullet, task and quote buttons mark every line of a selection, in one Ctrl+Z, instead of only the caret's line, and swap one list mark for another instead of stacking them. Reported by @nokia5118 (#306)
    • Lines pasted on a list item become items of that list, as Enter makes them, instead of plain paragr
  4. v3.9.6Tinta v3.9.62026-10-31 · 2026-10-31 00:17 UTC
    查看更新说明

    Tinta v3.9.6

    Installation

    • Easiest: winget install "Tinta Markdown Viewer" -s msstore (Store-signed, no security prompts, auto-updates), or the Microsoft Store page
    • Portable: download tinta.exe below and run it (SmartScreen may ask: "More info", then "Run anyway")
    • Optionally run tinta.exe /register to register Markdown, Mermaid and PlantUML files

    A fix release for 3.9.5. For what is new in 3.9.5 (dragging text in the editor and lists in copies), see the v3.9.5 notes.

    Security

    • Images, wiki links and file references on another computer's share (\\server\share\...) open only in a document from that same server, since opening the share signs in to it with your Windows credentials. Anywhere else such an image shows the note "network path not opened". Files on this computer and on a mapped drive open as before

    Fixed

    • Tables, code blocks and other blocks inside list items render where they are written, with their own layout, and a heading that starts a list item lines up with its marker. Contributed by @shinfd (#292)
    • Local images whose path holds percent escapes, such as folder%20with%20space/image.png, show in the viewer and the exports. Reported and contributed by @tferi99 (#293, #294)
    • Documents in different folders that show an image of the same name each show their own
    • Lists, quotes and emphasis nested a thousand or more levels deep no longer crash Tinta
    • A file that starts with a UTF-8 byte order mark, as Windows PowerShell 5.1 writes it, shows its first heading instead of a literal # Title
    • Text directly inside a raw HTML <blockquote>, without a <p> around it, shows in the quote and in the Word export

    What's included

    • Export as HTML, DOCX, or PDF, plus optional Pandoc formats
    • 22 natively rendered Mermaid diagram families, and PlantUML diagrams through a local PlantUML
    • Tabbed interface with drag, session restore, and a tab context menu
    • 10 tuned themes (5 light, 5 dark) plus custom themes
    • Hardware-accelerated rendering via Direct2D
    • Single portable executable about 2.5 MB, no dependencies
  5. v3.9.5Tinta v3.9.52026-10-29 · 2026-10-29 13:16 UTC
    查看更新说明

    Tinta v3.9.5

    Installation

    • Easiest: winget install "Tinta Markdown Viewer" -s msstore (Store-signed, no security prompts, auto-updates), or the Microsoft Store page
    • Portable: download tinta.exe below and run it (SmartScreen may ask: "More info", then "Run anyway")
    • Optionally run tinta.exe /register to register Markdown, Mermaid and PlantUML files

    Drag text in the editor (#289)

    • Drag selected text in the editor to move it, or hold Ctrl as you let go to leave a copy. A caret shows where it will land, the editor scrolls at its top and bottom edges, one Ctrl+Z undoes it, and Esc cancels
    • Requested by @nokia5118 (#289)

    Lists in copies (#290)

    • Copying from the viewer pastes lists as real bullet and numbered lists in Outlook and Word, nesting and start numbers included, and task items with their checkboxes
    • Contributed by @sebvannistel (#290)

    Fixed

    • A theme font that isn't installed, such as Cascadia Code for Midnight and Arctic on Windows 10, gives way to an installed one, so the editor and code blocks stay monospaced and √ no longer shows as Ã. Reported by @a86022 (#264)
    • The editor's scrollbar stays below the tab bar, and the preview moves smoothly while the editor scrolls through front matter. Reported by @go4399 (#291)

    What's included

    • Export as HTML, DOCX, or PDF, plus optional Pandoc formats
    • 22 natively rendered Mermaid diagram families, and PlantUML diagrams through a local PlantUML
    • Tabbed interface with drag, session restore, and a tab context menu
    • 10 tuned themes (5 light, 5 dark) plus custom themes
    • Hardware-accelerated rendering via Direct2D
    • Single portable executable about 2.5 MB, no dependencies

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Tinta is a fast, lightweight Markdown and Mermaid viewer for Windows, built with Direct2D and DirectWrite for hardware-accelerated rendering. A single native executable of under 5 MB that opens instantly — no Electron, no web engine, no installer.

    Install

    The recommended way is the Microsoft Store: the build is signed by the Store, trusted by Windows out of the box (no security prompts, works with Smart App Control), and updates automatically. The same signed build installs from the command line:

    winget install "Tinta Markdown Viewer" -s msstore
    

    Portable and other options

    Prefer a single file? Grab the latest release: a portable tinta.exe, no installation required. Because a freshly released exe is not yet code-signed, Windows may show a SmartScreen prompt on first run ("More info", then "Run anyway") until the new version builds up download reputation.

    Scoop users can install from the bucket:

    scoop bucket add tinta https://github.com/oipoistar/scoop-bucket
    scoop install tinta
    

    Why Tinta?

    Most markdown apps ship an entire browser to render text. Tinta uses the GPU-accelerated text stack already built into Windows:

    TintaTyporaObsidianVS Code
    Startup<100 ms~1.5 s~3 s~2 s
    Install size<5 MB~90 MB~250 MB~350 MB
    RuntimeNative Direct2DElectronElectronElectron

    It's a viewer first: perfect as the double-click default for .md and .mmd files, for reading documentation and diagrams — with an edit mode when you need it.

    Features

    • Lightning-fast startup - Direct2D rendering, no web engine overhead
    • 10 beautiful themes - 5 light and 5 dark themes to choose from
    • Hardware-accelerated - Smooth text rendering via DirectWrite
    • Word wrap - Optional soft wrap in the editor (Ctrl+W)
    • Native LaTeX math - $inline$ and $$display$$ equations with matrices, cases, aligned equations, fractions, limits, accents and custom macros. Uses an installed math font; no bundled fonts or web engine. See the supported math syntax.
    • Focused editing - Hide the preview pane while writing (Ctrl+E)
    • Native Mermaid diagrams - 22 diagram families, from flowcharts with subgraphs through sequence, class, state, ER, gantt, and pie to C4, sankey, kanban, and radar - rendered without a web engine
    • Export as HTML, DOCX, or PDF - Right-click and pick "Export as..." for a self-contained web page, a Word document that opens natively, or a vector PDF; diagrams and math come along in every format
    • Pandoc export - With pandoc installed (or pointed at in settings), the editor offers EPUB, OpenDocument, PowerPoint, RTF and LaTeX too; rich formats convert from Tinta's own HTML export so diagrams and math survive as vector graphics
    • Sheets - An infinite canvas of notes, made from the start page (S), where a Sheet tour shows the moves: cards are Markdown files in the sheet's folder, joined by arrows and gathered in groups, zoomed from titles down to the rendered note. Arrow keys walk between cards and Tab grows a mind map; links written in the notes show as ghost lines; a group can be a lane that writes status: into the notes dropped in it; the sheet compiles into one document, presents along its arrows, tidies itself, and turns a pasted Mermaid flowchart into cards. A .smd is readable Markdown with a JSON Canvas block, and Obsidian .canvas files open too. See Sheets
    • Start page - Bare launches land on a launcher with recent files, quick actions labeled with your actual key bindings, and built-in guides; closing the last tab returns there, and Ctrl+T opens it as a new tab
    • Review annotations - Select text and press A to attach a note, stored as an invisible HTML comment in the file itself. Annotated passages get a tint and a marker rail beside the scrollbar; hover previews, click edits, and a copy-for-agent button turns the whole review into a paste-ready task list for any coding agent - as the agent fixes items and deletes the comments, the marks vanish live
    • File references - Plain-text paths like docs/plan.md become real links: live targets open as tabs, missing ones render as faded ghosts. Mouse back/forward (or Alt+arrows) walks your jumps with exact scroll restore
    • Link peek - Rest the pointer on a local .md or wiki link and the target appears fully rendered in a panel beside it, no tab opened
    • Follows the file - When another program changes the open file (an AI agent, a script, a second editor), the page shows the new text; an editor with nothing unsaved takes it too, the caret where it was and Ctrl+Z to take it back, and one with unsaved changes asks: Reload or Keep mine
    • Image lightbox - Click any inline image to view it full size: wheel zooms, drag pans, Esc closes
    • Other computers' shares stay closed - An image or file link on another computer's share (\\server\share\...) opens only in a document from that same server; anywhere else the image shows a note instead, since opening the share would sign in to it with your Windows credentials. A share mapped to a drive letter opens like any local folder
    • Copy tables as TSV - Hover a table for a copy button that pastes into Excel or Sheets as a real grid
    • Copy diagrams as images - Hover a diagram for an Image button that puts a crisp 2x PNG on the clipboard
    • Paste screenshots - Ctrl+V a bitmap in edit mode and it saves as a PNG beside the document with the link inserted
    • Pin on top - A pushpin in the title bar keeps the window above every other app, and Tinta remembers it for the next window
    • Rich tables - Tables with bold, italic, code, and clickable links in cells
    • Tabs - Win11 Notepad-style tabs in the title bar: files opened from Explorer join the window as tabs, Ctrl+Tab or the mouse wheel over the strip cycles, Ctrl+W or Ctrl+F4 closes (Ctrl+F4 also while editing, where Ctrl+W is word wrap), middle-click closes, Ctrl+T opens the file browser into a new tab, unsaved buffers show a dot, resting the pointer on a tab shows its full name, its folder and what its dot means, and dragging reorders tabs. Right-click a tab for close operations (close, close all but this, close all to the left/right), pin tab, plus copy path and reveal in Explorer. A pinned tab moves to the start of the row and shrinks to its name's first letter, stays when the others are closed, and comes back pinned with the session. Pulling a tab out of the strip floats it as a card: drop it on open space for a new window (which keeps the tab row), or onto another Tinta window to move it there — and dropping a single-file window onto a tab strip merges it back. Single-file windows stay tabless; turn the Explorer behavior off with the "Open files in tabs" setting
    • Folder browser - Press B to browse and open Markdown or Mermaid files (Ctrl+click a file to open it in a new tab)
    • Table of contents - Press Tab to see document headings, click to jump; the panel follows your reading position, and typing filters the headings
    • Folding sections - In the reading view, the arrow beside a heading folds its section and opens it again, and right-clicking the page offers Fold all sections. Contents still lists every heading, fainter when folded, and jumping to one, following a link to it or searching for a word in a folded section opens the sections around it. Settings → Appearance → Fold sections turns the arrows off, or opens every document folded
    • Unified editor - Press : to edit: your raw Markdown on the left with the rendered page docked beside it. A slim line-number gutter, a soft accent wash on the caret's line and its rendered block, a tool rail with formatting controls (its bullet, numbered, task and quote buttons mark every selected line) plus table-size and diagram-template pickers, and Markdown assists (lists continue on Enter and on a paste of several lines, Tab indents, Ctrl+B/I wrap, and a quote, bracket or * ~ ^ = : typed over a selection wraps it). Alt+↑/↓ moves lines, selected text drags to another place (Ctrl+drag leaves a copy), and several carets (Alt+click, Ctrl+Alt+↑/↓, Ctrl+D) type, delete and move together, handy for lining up tables. A word and character count sits beside the Read button, for the whole document or the selection. Search and find-replace work in the editor too. The source is in colour: headings, links and code stand out, Markdown's marks go faint, and fenced code and the properties take their language's colours (details; Settings → Editor turns it off)
    • Emoji shortcodes - :rocket: and friends render as real emoji
    • Fit to width - Wide tables and diagrams grow a Fit button that shrinks them to the reading column
    • Draft recovery - Unsaved quick notes are stashed continuously and offered back on the next launch. With Close without asking (Settings → Editor), closing Tinta skips the save prompt and keeps unsaved edits as drafts for the next launch
    • Create on click - Clicking a missing file reference offers to create the file and opens it ready to type
    • Text-file references - .txt, .json, .yaml and friends link like Markdown files and open as highlighted documents
    • Update check - Portable builds check GitHub once a day and offer a new release as a quiet, dismissible chip
    • Search - Find text with F or Ctrl+F, cycle through matches with Enter; every match shows as a tick on the scrollbar. Ctrl+Shift+F, or the list button at the end of the search bar, opens a results panel beside the page: every match with a snippet, grouped under its heading, then the matches in your other open tabs and in the document's folder, by line. A click jumps to a match, or opens another file in its own tab at that match
    • Persistent settings - Remembers your theme, zoom level, and window position
    • Portable mode - Create a settings.ini next to tinta.exe (an empty file works) and the whole configuration — settings, custom themes, languages, drafts — lives beside the executable and travels with it; without one, everything stays in %APPDATA%\Tinta
    • Localized interface - English, Simplified Chinese, Japanese, Korean, German, French, and Italian UI; follows Windows or a chosen language
    • Text selection & copy - Select text and copy to clipboard
    • Touch - On a touchscreen a finger scrolls the page, the editor, the side panels and Help, and a flick carries on until a finger catches it; a tap clicks, a double tap selects a word, and a press held on a word selects it, extends word by word as the finger slides, and opens the context menu where it lifts (in the preview beside the editor, Copy and Select all). The application menu has Exit editing for leaving the editor without a keyboard, and a tap beside Help closes it. The mouse and pen work as before
    • Zoom support - Ctrl+scroll to zoom in/out
    • Drag & drop - Drop any Markdown or Mermaid file to view it
    • Minimal footprint - Small binary, minimal dependencies

    Keyboard Shortcuts

    KeyAction
    BToggle folder browser
    TabToggle table of contents (type to filter, Enter jumps)
    AAnnotate the selected text
    F / Ctrl+FOpen search
    EnterNext search match
    Ctrl+Shift+FSearch results panel: every match beside the page
    ESCClose overlay / Quit
    TOpen theme chooser
    SToggle stats overlay
    Ctrl+CCopy selected text (or all if none selected)
    Ctrl+ASelect all text
    Ctrl+ScrollZoom in/out
    Arrow keys / J/KScroll
    Mouse back/forward / Alt+←/→Walk link jumps with scroll restore
    Page Up/DownPage scroll
    Home/EndJump to start/end
    Ctrl+GGo to a line by its number, in the editor or the reading view
    : / Ctrl+EEnter edit mode
    ESC ESCExit edit mode
    Ctrl+NNew quick note — a fresh window, start typing right away; Ctrl+S names it via the save dialog. While the note is still empty, an Open a file button (Ctrl+O) in the preview pane picks an existing file instead
    Ctrl+SSave (in edit mode)
    Ctrl+Shift+SSave As: the editor writes the buffer to a new path, the viewer saves a copy, and the document continues under the new name
    Ctrl+HFind and replace (in edit mode): Tab switches fields, Enter replaces, Ctrl+Enter replaces all
    Ctrl+PPrint / export to PDF; the preview picks the paper, orientation and margins
    Ctrl+EIn Source, show/hide the preview pane; in Live, read the page at full width, and Ctrl+E again to go back
    Ctrl+Shift+ERead the unsaved edits at full width; Esc returns to the source (in edit mode)
    Ctrl+WToggle word wrap (in edit mode)
    Alt+↑ / Alt+↓Move the current line, or the selected lines, up or down (in edit mode)
    Drag / Ctrl+dragMove the selected text to where you let go, or leave a copy there; Esc cancels (in edit mode)
    Ctrl+Alt+↑ / Ctrl+Alt+↓ / Alt+ClickAdd a caret above, below or at the click; Esc returns to one caret (in edit mode)
    Ctrl+DSelect the word, then add its next occurrence as another caret (in edit mode)
    Ctrl+F4Close the current tab (viewer and edit mode)
    QQuit

    Customization

    Shortcut profiles (Settings → Keyboard shortcuts): pick Windows (E edits, F1 opens help, F searches — the default), Vim (/ searches, : edits, ? helps), or Custom. The Edit button opens a shortcut editor: click an action, press its new key. Raw : and ? always work regardless of profile.

    Settings live in a plain INI file at %APPDATA%\Tinta\settings.ini (theme, zoom, window placement, word wrap, and more — written on exit). The [Keys] section holds the Custom profile's bindings if you prefer editing by hand: change a value and restart Tinta. Accepted values are letters, digits, Tab, Space, F1–F12, or any single character.

    [Keys]
    search=F
    browse=B
    toc=Tab
    theme=T
    stats=S
    quit=Q
    newfile=N
    zen=F11
    scrollup=K
    scrolldown=J
    edit=:
    help=?
    

    Ctrl combos (save, print, copy, word wrap…) are fixed. The help overlay and context menu show whatever keys are currently bound.

    Other settings of note: browserFocusPath=1 makes B open the file browser with the path box focused and selected, so paste + Enter jumps anywhere (also in Settings → General). tinta --new starts an untitled quick note from the command line. The print preview offers 12.7, 19.05 and 25.4 mm page margins; printMarginMm= takes any value from 5 to 50 for printing and PDF. cjkFont= names an installed face for a document's Chinese, Japanese and Korean letters, ahead of the ones Tinta falls back to (Microsoft YaHei UI first on most systems): a face with lighter bold weights, such as Source Han Sans or DengXian, sets bold CJK more evenly. mathFont= names one for equations, such as Latin Modern Math. Both are read at start, and a face that is not installed is passed over.

    The interface language is available in Settings → General. It follows the Windows display language by default, or can be changed explicitly. Transient notifications and native error dialogs use the same language. Additional translations can be added through languages.ini; the app remains a native, single-file Windows viewer with no web runtime.

    Building

    Requires Windows with Visual Studio 2019+ and CMake 3.15+.

    mkdir build
    cd build
    cmake ..
    cmake --build . --config Release
    

    The executable will be at build/Release/tinta.exe.

    Usage

    # Open a Markdown file
    tinta.exe document.md
    
    # Open a Mermaid flowchart
    tinta.exe diagram.mmd
    
    # Open with light theme
    tinta.exe -l document.md
    
    # Show stats on startup
    tinta.exe -s document.md
    
    # Register for Markdown and Mermaid files
    tinta.exe /register
    

    Or simply drag and drop a .md, .mmd or .puml file onto the window (.plantuml works too).

    To copy a document's full path, right-click the document or its tab (the filename in the title bar when only one file is open) and choose Copy file path, beside Reveal in Explorer. The tab menu copies the clicked tab's path, even if another tab is active. Untitled notes have no path until saved.

    File Association

    On first launch, Tinta will ask if you want to set it as the default viewer for Markdown, Mermaid and PlantUML files. If you choose "No", you won't be asked again.

    To register Tinta as the default viewer later, run:

    tinta.exe /register
    

    This registers .md, .markdown, .mmd, .puml and .plantuml so you can select Tinta as their default app in Windows Settings.

    Mermaid Support

    Tinta natively renders twenty-two Mermaid diagram families in .mmd files and fenced mermaid code blocks — no web engine involved:

    • Flowcharts (flowchart / graph) - TB/TD, BT, LR, RL layouts, subgraph groups, common node shapes, directed and labeled edges, classDef/class/style styling, and graceful handling of Mermaid 11 edge IDs and node configs
    • Sequence diagrams - participants and actors with aliases and <br/> breaks, every arrow family, activations, notes, autonumber, and loop/alt/opt/par/critical/break frames
    • Class diagrams - member blocks, stereotypes, ~T~ generics, all relation kinds with multiplicities, note and note for
    • State diagrams - [*] start/end, choice/fork/join, descriptions, directions, inline notes
    • ER diagrams - attribute tables with keys, full crow's-foot cardinality notation
    • C4 diagrams (C4Context/C4Container/C4Component/C4Dynamic/C4Deployment) - persons, systems, containers, and components in the standard C4 palette, nested boundaries, labeled relations
    • Requirement diagrams - typed requirement and element boxes with labeled relations
    • Architecture diagrams (architecture-beta) - services with line-art icons, groups, junctions, and side-anchored edges
    • Block diagrams (block-beta) - column grids, spans, spaces, nested blocks, block arrows, labeled edges
    • Sankey diagrams (sankey-beta) - ranked nodes with smooth flow ribbons
    • Packet diagrams (packet-beta) - 32-bit rows with labeled bit-range fields
    • Kanban boards - columns and cards with ticket, assignee, and priority metadata
    • Treemaps (treemap-beta) and radar charts (radar-beta)
    • Pie charts, git graphs, gantt charts (including the numeric dateFormat X axis), mindmaps, timelines, user journeys, quadrant charts, and XY charts (xychart-beta)

    Diagrams follow the active theme, print through Ctrl+P, export as SVG in HTML and as crisp images in DOCX, and their text is selectable and searchable like any other content. Anything a native renderer does not cover yet (composite states, zenuml) falls back to readable source code.

    PlantUML Support

    PlantUML diagrams render through the real PlantUML tool. Tinta never bundles PlantUML, never downloads anything, and makes no network calls - you point it at a tool you already have: either a native plantuml.exe, or a plantuml.jar run through the java found on your PATH. PlantUML runs in its sandbox security profile, so a diagram in a document you open cannot read files from your disk or fetch anything from the network.

    • Configuration - the Settings dialog has a PlantUML diagrams row. Press Browse and pick the exe or the jar; the row then shows the exact command Tinta resolved (for a jar, the java executable plus the jar path). A plantuml.exe on PATH is auto-detected without touching any setting. The choice persists as plantumlPath in settings.ini.
    • What renders - fenced plantuml, puml and pu blocks inside Markdown, and standalone .puml or .plantuml files, which open straight as a diagram and join the open/save dialogs, drag-and-drop and file-association registration.
    • Diagram families - every family the real tool draws from an @startuml block: sequence, use case, class, activity, component, state, object, deployment, timing, gantt and the rest. Detection is anchored on @startuml (named blocks such as @startuml Flow and @startuml(Flow) included); non-UML PlantUML start tags such as @startjson, @startyaml or @startmindmap are not detected and fall back to readable source.
    • Where it works - the preview, print and PDF export, HTML export (the SVG PlantUML produced is inlined), DOCX export (a PNG is embedded), and the copy-diagram-as-image button (a 2x PNG). The editor's diagram-template picker offers three PlantUML starters: sequence, class and activity.
    • Fallback - no tool configured, no @startuml anchor, or a failed or timed-out render leaves readable source code on the page - never a broken image.

    PlantUML ships several license flavors, and some of them (the plantuml-mit jar, for example) omit a few non-UML extras such as ditaa while still generating every UML diagram; Tinta works with any flavor. Setup and troubleshooting: PlantUML support.

    Themes

    Press T to open the theme chooser:

    Light Themes:

    • Paper - Warm sepia, literary feel
    • Sakura - Soft pink elegance
    • Arctic - Cool blue-white
    • Meadow - Fresh green
    • Dusk - Warm gray twilight

    Dark Themes:

    • Midnight - Deep blue-black
    • Dracula - Purple-tinted dark
    • Forest - Deep green
    • Ember - Warm charcoal
    • Abyss - Pure black (OLED-friendly)

    Custom themes live in themes.ini beside the portable executable, or in %APPDATA%\Tinta. Add inlinecode to a [theme] section to color inline code independently of fenced blocks:

    code=334455
    inlinecode=B00020
    

    Here inline code is red and plain fenced code stays neutral. Syntax highlighting keeps its own colors. Without inlinecode, inline code uses code as before. The override is preserved when saving a theme from the editor and applies to HTML and DOCX exports. Native printing keeps Tinta's light print palette, set in the theme's fonts.

    For supported code-fence languages and aliases, including SQL, PowerShell, Java, PHP, HTML/XML, CSS, YAML and Markdown, see Syntax highlighting. The Frontmatter settings page controls property display and optional created/updated dates.

    Named, repeated and multiline footnotes include native navigation and HTML/DOCX export.

    Individual H1-H6, marked-text, bold, italic, selection and rule colours are described in Theme colours.

    Dependencies

    • MD4C - Fast markdown parser (fetched automatically by CMake)
    • Windows Direct2D/DirectWrite (system libraries)

    License

    MIT