Changelog
v0.6.3 October 11, 2026
Improved
==highlight==marks text in highlighter yellow; can be turned off in Settings.- Code blocks show their language at the top right, e.g. Python, bash.
Fixed
- Code blocks fenced as
objc,regexorjsxare now syntax-highlighted. - Toggling “Show HTML image tags” no longer moves your reading position elsewhere.
- Inline formulas ending in
\now display correctly. - Tabs in code blocks align to a stop every 4 characters instead of collapsing.
- Table-of-contents links reach headings with
_and percent-encoded anchors. - With Hiragino or similar Han fonts, Japanese and Korean bold and italic stay distinct.
- Double-clicking a word no longer joins an inline formula with the letters touching it.
- Opening both the sidebar and the outline widens a narrow window instead of squeezing out the text.
- Quitting in full screen no longer reopens the window screen-sized.
- ⌘N in full screen opens the new window next to the original, not in the top-left corner.
v0.6.2 October 4, 2026
Fixed
- Fixed the first ⌘C after selecting text beeping and copying nothing; ⌘A had the same problem. Fixed in both the reading view and the source view.
- Fixed ⌘W closing the whole window when several tabs were open: it now closes only the current tab.
v0.6.1 October 4, 2026
Highlights
- Mermaid draws more kinds of diagram (a Labs feature; the switch is ⌘, ▸ Labs ▸ Mermaid): besides flowcharts, Telari now draws sequence, state, ER, class and pie diagrams, mindmaps and tree views. Flowchart and state-diagram styling is drawn too, and more syntax is understood. A diagram that can’t be drawn still shows as a code block, with the reason; very large diagrams no longer freeze the reader.
Improved
- When the window is narrow, a table too wide to fit can be slid sideways.
- Your own typesetting presets now have an anchor too: any changed field can go back to its starting value in one click.
- Better export: PDF body text now uses a print size, and tables split across pages more cleanly.
- Telari is smaller: the download is about 9% smaller and the installed app takes about 7 MB less.
- Settings now use macOS’s own name, Quick Look, everywhere.
Fixed
- Very long code blocks no longer slow scrolling down.
\left./\right.in formulas now leave the same space on the empty side as TEX.- A task item with just a checkbox and a nested list right below it no longer loses its checkbox.
- Quick Look previews of very short documents no longer show a translucent band below the text.
- The Kaiti help text now says plainly that it takes effect after Telari restarts once the download finishes.
v0.6.0 October 1, 2026
Highlights
-
Colour themes, with a new default: Mono. ⌘, ▸ Appearance gains two dropdowns: one theme for the light appearance, one for the dark; which one is on screen follows the Appearance setting above them. Switching themes repaints only, never re-lays-out: lines do not move and neither does your reading position. Eight ship with the app:
- Mono (the default): body text, headings, links, tables, rules and the window chrome are all black, white and grey — only code highlighting keeps its colours; headings, links and inline code are pure black (pure white on the dark page), a step darker than the body text, and links are underlined. The light page is an off-white
#FAFAF8with a faint warmth that the code blocks, rules and sidebar share, while the text stays pure grey; the dark page is#262626. - Classic: the previous colours themselves, pixel for pixel (tables aside — see Improved). To get the old look back after updating, pick Classic in both dropdowns.
- One Light / One Dark and Solarized Light / Dark: faithful ports, original names and original colours. In Mono and Classic, the code colours are spread out in lightness, so they stay distinguishable without relying on hue.
- Mono (the default): body text, headings, links, tables, rules and the window chrome are all black, white and grey — only code highlighting keeps its colours; headings, links and inline code are pure black (pure white on the dark page), a step darker than the body text, and links are underlined. The light page is an off-white
-
You can write your own themes. Drop a TOML file into
~/.config/telari/document-themes/; the minimum is a[meta]name and appearance. Anything you leave out is inherited alongbased_on, ending at the factory colours. Saving takes effect at once, no restart. The⋯beside each dropdown offers “Copy as My Theme…” (writes the current theme out whole, as a starting point) and “Show in Finder”. A broken file is harmless: one bad value skips just that key, a file that is not valid at all simply does not appear in the list, and a light slot naming a dark theme says “Invalid” out loud rather than quietly resolving to something else. -
The window chrome follows the theme too: the sidebar, active tab and column divider backgrounds, and the text in the sidebar and tab bar. A theme file can set them in its
[chrome]table; left out, the text colours take the theme’s body text colour and the backgrounds fall back to the system greys. -
Finder’s spacebar preview follows your theme, once Telari has been launched at least once (with ⌘, ▸ Quick Look set to “Standard Telari typography” it uses the default Mono theme rather than yours). Exported PDFs are still white paper.
Improved
- Inline code no longer wears a capsule by default. It is now set apart from the body text by its monospaced face and its colour alone (pure black or pure white under Mono, the same ink as headings and links). Its spacing next to Chinese follows the same rule as body text: a letter or digit at the edge of the code gets the mixed-script gap, while a symbol such as
@or→gets none, just as the same symbol would in running text; a Chinese character in the code next to one outside it gets a narrow gap so the two do not run together; next to Latin text there is only the space you typed. To bring the capsule back, set Style to Capsule under ⌘, ▸ Presets ▸ Inline Code (or writecode_capsule = truein a typography preset file). Themes gain aninline_codecolour; left out, it follows that theme’s body text colour. - Half-width parentheses and brackets next to Chinese now get the same small gap as Latin letters on their outer side. In 中文(English)中文 or 中文[注]中文 each bracket keeps a little space outside while still hugging the text inside; full-width brackets are unchanged.
- Tables are now three-rule (booktabs) tables, with a redesigned grid as the alternative: three-rule drops the column rules, the rules between rows and the shaded header, keeping just three horizontal rules in the body text colour — at the top, under the header and at the bottom — with the header text in the heading colour; the grid has a rounded outer frame, a faintly tinted header and hairline rules between rows and columns. Three-rule is the default; switch with Style under ⌘, ▸ Presets ▸ Tables. The screen, exported PDFs and Finder’s spacebar preview all follow; in a PDF every piece of a table split across pages is complete on its own (its own three rules, or its own rounded frame and tinted header). Switching moves nothing — row heights, column widths and your reading position stay put.
- In full screen the title bar and toolbar hide themselves and slide in when the pointer reaches the top of the screen. The page runs all the way to the top edge, with no title-bar stripe a shade off the paper colour; the toolbar slides in over the page without moving the text. Windowed mode is unchanged.
- Settings now wears the reader window’s chrome colours: its sidebar and selected item use the reader sidebar’s colours, and the sidebar, selection and dividers change along with the colour theme.
- The table toolbar now appears only when the pointer rests on the header row. It used to pop up anywhere over a table; now it goes away as soon as the pointer moves into the rows, so it no longer gets in the way while you read.
Fixed
-
HTML in a document no longer disappears. A block of HTML with text in it (a whole
<table>, a<details>…) now shows as its source, in code style, every character intact; a wrapper made only of tags (like a README’s<div align="center">) still shows nothing, and what it wraps shows as usual. Inside running text,<sub>and<sup>become subscript and superscript, soH<sub>2</sub>Oreads H₂O; formatting tags such as<b>and<span>drop out and the text joins up; separating tags such as<td>and<br>drop out without running words together:<td>12</td><td>34</td>reads “12 34”, not “1234”, and nothing is inserted between two Chinese characters. HTML comments stay hidden. -
Changing a typesetting setting or switching colour themes no longer stutters. The pause used to grow with the number of open tabs; with four tabs a theme switch is now near-instant, and changing line spacing or the typesetting scheme is much quicker too.
-
Switching left / centre / right alignment from the table bar no longer makes the page jump. The table is redrawn in place and your reading position stays put.
-
Short table columns are no longer squeezed to one character wide. When a table has a short column (a two-character header, say) beside a column of long sentences, the short column now gets its full width and does not wrap, and the long columns share what is left; before, a short column’s header could end up one character per line.
-
Link underlines sit a little lower and a little heavier, and no longer graze the feet of Chinese characters. The same holds in exported PDFs and in the Finder Quick Look preview.
-
Paste and Cut now work in text fields such as those in Settings: ⌘V, ⌘X and the new Cut and Paste items in the Edit menu work in any text field; over the document itself Cut and Paste are greyed out, and ⌘C and ⌘A behave as before.
-
casesin formulas now left-aligns both columns with a quad between them, as LATEX does. The condition column used to be centred with a slightly narrower gap, so conditions of different lengths did not line up. -
A one-line
alignedformula now sits where LATEX puts it (LATEX leaves 10pt of space on its right, so the formula sits slightly left of centre), and when one line holds several&alignment pairs, the space between pairs now matches LATEX. -
Stretchy brackets now pick the same size as LATEX at a few exact heights: a display-style
\genfracwith a square bracket, for example, used to get a bracket one size smaller than LATEX’s.
v0.5.13 September 26, 2026
Highlights
- Space to page: with the document focused, Space pages down one screen and ⇧Space pages up. The last two lines of the old screen stay at the top of the new one, and a line cut by the bottom edge always comes through whole instead of split in two; every page moves at least half a screen, and at the top or end of the document nothing moves and nothing beeps. Holding the key, or turning on Reduce Motion, jumps straight there. Space in the sidebar still previews, and Space in the find field is still a space.
- PageDown / PageUp (fn+↓ / fn+↑) now page exactly like Space: the same two-line overlap, aligned to lines, no more half-cut lines.
- Page right after opening a document or switching tabs: a file opened with ⌘O (including Open Recent) or from the Finder always puts focus on the document, even if the sidebar had it; after switching tabs and the like, there’s no need to click into the document first unless the sidebar has focus. Clicking a file in the sidebar (single click, double click, or Open in New Tab from its context menu) lets you press Space straight away whenever the click changed what the document shows — a new file opened, or you were switched to the tab that already had it; clicking the file already on screen, clicking a folder, or opening with the keyboard keeps focus in the sidebar.
Fixed
- No more stall when switching entries in the Acknowledgements window: after viewing the “Syntax definitions” entry, or clicking into its text, moving to another entry no longer shows the spinning cursor; the title and copyright line now stay put above the licence text, which scrolls on its own.
- The scroller knob no longer occasionally jumps while scrolling, and the space below the last paragraph no longer briefly comes up short when you reach the end of a document.
v0.5.12 September 25, 2026
Fixed
- A little space between a footnote’s number and its text: the number no longer touches the note’s first word, and a note that opens with inline code no longer has the code’s background drawn over its number.
v0.5.11 September 23, 2026
Improved
- Cheaper frames while dragging a window edge: the document-height estimate is no longer re-fitted on every tick of a live resize, only once when you let go; where you land is unchanged.
- The sidebar’s Library list and the outline list are now native tables: in the Library, the arrow keys move the selection and Return opens the selected file in a new tab.
- Page Up/Down, Home and End in the sidebar no longer turn into a search: those keys used to drop an invisible character into the search field and steal focus.
Fixed
- Launching or restarting Telari no longer brings up an empty “Telari Settings” window.
- Five improvements to formula typesetting:
- The rows of
\substack{…}are set at script size, with TEX’s row spacing — outside a summation’s limits they no longer come out as large as body text. - A matrix written in a superscript or subscript keeps its full row height, and its brackets no longer shrink.
- A cell that starts with
+or−in analignedenvironment gets proper binary-operator spacing on both sides, priced per row from that row’s own operator. - A radical whose index has zero width (
\sqrt[\rlap{n}]{x}, say) no longer draws the index at all — as in LuaTEX, a zero-width index is discarded entirely. - When the current math font has no bracket or radical sign, the whole formula falls back to its source instead of being drawn with a hole in it.
- The rows of
v0.5.10 September 22, 2026
Fixed
- Better spacing between the first line and the tab band — a document starting with a paragraph, list, quote, code block, table or picture no longer sits pressed against the tab band.
- The Chinese colon and semicolon no longer sit slightly below the ideographs’ centre line — under the default Songti punctuation,
:and;now ride at the height the surrounding characters do, in body text and headings alike. - In documents with pictures or flowcharts, the reading place no longer creeps down the page as the window is resized — going out to a wider window and back leaves the line you were on exactly where it was.
- The bundled TEX Gyre Pagella is back in the font pop-ups on ⌘, ▸ Fonts — on macOS 27 it had vanished from all three of them, so the Pagella Serif scheme still rendered but could no longer be chosen.
- A dozen-odd improvements to formula typesetting. Each is a fraction of a point to a few points off; together they were the “formulas look loose, scripts float” feeling:
- No extra gap between a relation and a bracket or punctuation mark (
(=x),(x=),x=,yand the like). - When a superscript and a subscript are both present they rise together to the right height; the subscript after a slanted capital such as
V_A,P_nor\Gamma_itucks in under the letter’s slope instead of hanging out to the right. - In display style the lower limit of
∑∏∫sits a little further from the operator, as in TEX. \overlineover a short character (.,·) hugs it instead of floating at x-height; a superscript inside\underlineis no longer pushed down, and two stacked underlines put the second bar and the space beneath it in the right place.- The brackets of
\binomare no longer too loose (each side used to carry an extra gap); the numerator of a fraction drawn without a bar (\binom,\atopand the like) sits at the right height. \overrightarrow,\overbrace,\underbrace,\overbracketand\underbracketare placed correctly horizontally.- Radicals, stacks and extensible arrows (
\xlongequal) that end on a glyph such as=no longer come up a little short in depth. - A one-character custom operator such as
\mathop{V}sits centred on the math axis like∑, and its scripts follow it to the right height.
- No extra gap between a relation and a bracket or punctuation mark (
- Refinements to paragraph line breaking — how break costs are computed, how lines are graded tight or loose, how ties are settled, and the extra penalty for ending a paragraph on a hyphen are now closer to TEX.
v0.5.9 September 21, 2026
Fixed
- The resize cursor now stays put while the pointer rests on a column divider — it no longer flashes for an instant and snaps back to the arrow.
v0.5.8 September 21, 2026
Highlights
- ⌘, ▸ TXT now binds a typography preset to .txt files — pick “A specific preset…” and it starts on 「书籍」. From then on every .txt read as plain text uses it, while your .md tabs keep the preset you read everything else with, side by side in the same window. Delete the bound preset and those tabs quietly fall back to the current one.
Improved
- New in Labs: “Receive release candidates”. With it on, Check for Updates… also offers candidate builds that have not shipped yet, installed in-app instead of from a hand-downloaded DMG.
- List markers now sit inside the margin, half a character in. Bullets, numbers and checkboxes no longer indent a step to the right: they stand half a character inside the text’s own left edge, on the same line a blockquote’s bar stands on, and a nested list starts from its parent item’s text column with the same half-character step. The indent is the marker’s own width — the widest marker in that list plus 8pt. Bullets and checkboxes share one symbol slot and sit centred in it, so a bulleted list and a task list carry their marks on one vertical and start their words in one column, whether or not the two kinds are in the same list. Numbers, boxes and the blockquote bar share one left edge, measured on the ink you can see rather than the glyph’s outer box — so a digit’s own side bearing no longer nudges the number half a point right of the marker beside it — and every number in a list lines its full stop up with the rest,
10.included. The bullet is now a drawn circle whose size no longer drifts between presets, and every marker takes the body text colour. - The marker gap, the bullet size, how far markers sit inside the margin and the blockquote bar’s daylight are yours to set — per preset. Put
marker_inset,list_marker_gap,list_bullet_sizeorquote_bar_gapunder[profile]in~/.config/telari/profiles/<preset>.toml; saving the file is enough, and the reading window, the exported PDF and the Finder spacebar preview all follow. Because they belong to the preset, a .txt tab bound to another one carries that one’s geometry too.
Fixed
- A preset nothing is using is no longer shown as chosen: with
typography = "profile"hand-written and noprofilebeside it, the TXT and Quick Look pages both show “Unspecified” instead of the first preset in the list. - A number in
settings.tomlthat is not a real one (nan,inf,1e999) now reads as if the key were not there: that one setting falls back to its default, and every other key in the file still applies.
v0.5.7 September 18, 2026
Highlights
- Trackpad scrolling feels much better. Vertical scrolling goes back through macOS’s responsive scrolling, so the page no longer lags a beat behind your fingers; and a two-finger sideways swipe on a too-wide formula takes every time — the gesture belongs to the formula from its first frame and is judged on the first few points as a whole, so a little up-and-down wobble is no longer mistaken for scrolling and the formula stays under your fingers.
Improved
- Control+Tab / Control+Shift+Tab switch tabs too, as in Safari, Terminal and Finder — from the document, the sidebar, the outline or the find field alike. With a single tab open they do nothing, silently. Command+Shift+] / Command+Shift+[ still work.
- The first-launch welcome document now introduces plain-text reading too. Its opening line calls Telari a reader for Markdown and plain text (.txt), and a new section covers how a
.txtis read: encoding detection, paragraph splitting, chapter headings in the outline, the “Book” preset, and ⌥⌘→ for the next file in the folder. All four languages.
Fixed
- A linked badge or picture —
[](url), the README shape — opens its link when you click it. ⌥-click still shows the picture full size. Links on such pictures work in the Finder spacebar preview too. - Punctuation correction no longer turns a file extension’s dot into a full stop. Under “Convert to full-width”, common extensions such as
.txt,.mdand.pdfkeep their dot as written. - Quitting with the settings panel open no longer brings up an empty “Telari Settings” window at the next launch.
- On macOS 13, the Labs row in the settings sidebar has its icon.
v0.5.6 September 18, 2026
Fixed
- The white band on macOS 13–15 is gone. With a mouse attached (or with “Show scroll bars: Always” set), the settings panel, the workspace sidebar and the reading window no longer have a pale vertical strip down their right edge — the scroller’s track is the colour of the surface it sits on, and the knob stays visible on it.
v0.5.5 September 17, 2026
Changed
- The sidebar and the tab strip show the whole file name: the extension travels with the name, so
notes.mdandnotes.txtare two rows you can tell apart — on tabs too. Sidebar search filters by extension:txtor.txtleaves only plain-text files, andnotes txtlooks for a name and a format together. A name too long for its place is elided in the middle, keeping its start and its extension visible; hovering a sidebar row shows the full name. - A first launch starts in the Serif scheme: Settings ▸ Typography Schemes selects it outright, its form is editable, and the “no active scheme” notice is gone; the Finder spacebar preview is typeset the same way as the reading window.
Fixed
- Zoomed flowcharts no longer run their text into the shapes: with ⌘+ or a larger body size, boxes, arrows and labels scale together; a
subgraphtitle no longer sits on the frame line or sinks into the node below it. - In source view (⌘3), a file changed on disk reloads without losing your line and without flashing back to the rendered view.
- On macOS 15, the magnifier in the sidebar search field is no longer drawn low.
- Scheme names in Settings ▸ Typography Schemes are no longer clipped along their bottom edge.
v0.5.4 September 16, 2026
Highlights
- Mermaid flowcharts are on by default. A fenced code block tagged
mermaidis drawn as a flowchart — shapes, arrow variants, subgraphs, self-loops, edge labels — with lines and text following your theme and light/dark mode, and real selectable glyphs in exported PDFs. Not for you? Turn it off in ⌘, ▸ Labs and the fences go back to being code blocks. - A new Labs page in Settings. Features that already work but whose details are still moving — and which may yet change, be removed, or be folded into ordinary features — live here, each with its own switch.
- A
.txtfile now opens as plain text. The encoding is detected (GB18030 included), paragraphs and chapter headings such as 「第三章」 orChapter IVare found, and the chapters appear in the outline;*,#and1.are shown exactly as written instead of being read as Markdown. A new TXT page in ⌘, changes the encoding, the paragraph rule and chapter detection — or reads the file as Markdown after all. - A
.txtnovel of tens of megabytes opens ready to read. Only the chapter you are in and the ones around it are laid out, and the rest follows as you scroll — no waiting for the whole book; the scrollbar’s length and outline jumps are computed for the whole book, and finishing it does not leave all of it in memory. - Reading a novel that comes as one file per chapter. ⌥⌘→ opens the next file in the same folder in the same tab, ⌥⌘← the previous one — two hundred chapters, not two hundred tabs. It steps between documents of the same kind only:
.txtfollows.txtand Markdown follows Markdown, so a folder holding both keeps the two sequences apart. Reach the end of a.txtand a small “Next: 002.txt →” appears in the bottom-right corner; click it to go on. At the last file it does not appear and the menu items are greyed out. Which documents get that hint is a three-way choice in ⌘, ▸ General — Off / .txt only (the default) / All documents — and the two menu items work whatever it is set to. - When the encoding was a guess, Telari says so. A file read as GB18030, or one nothing could decode, now shows a small notice in the top-right corner; open it and pick another encoding and that tab re-reads the file at once. Big5, Shift_JIS and EUC-KR are new (Traditional Chinese, Japanese, Korean) and are deliberately hand-picks only — they never enter the automatic detection. The notice steps aside after ten seconds — it waits while the pointer is on it or its menu is open — and does not come back for that tab. View ▸ Text Encoding for This Tab is the same choice as a permanent menu; the choice is remembered per tab and survives a relaunch.
.mdfiles too.
Improved
- The workspace sidebar now understands symlinked folders: a linked folder expands and opens like any other, changes inside the link target show up in the sidebar live, and several links to the same folder stay independent of each other.
- New built-in typography scheme, Book: a two-character first-line indent, no blank line between paragraphs, hanging punctuation — the way a novel is set.
- A
.mdfile in GB18030, UTF-16 or carrying a byte-order mark now just opens, and Finder’s space-bar preview shows it too.
v0.5.3 September 15, 2026
Highlights
- Finder’s space-bar preview can now select and copy text. Drag in the preview panel to select, ⌘C to copy, ⌘A to select all; the context menu has Copy / Select All too. What you copy is exactly what copying the same passage in Telari gives: a drag across table cells pastes into the matching cells of a spreadsheet, and a display formula copies as its
$$source. - Click a picture to see it at full size. A single click opens the original in the system Quick Look panel — pinch to zoom, full screen, share, space to close. The pointer becomes a magnifier over the picture (macOS 15 and later). Remote pictures open as the downloaded file, so GIFs animate.
- Pictures in lists, pictures written back to back, and pictures inside a paragraph now show. Previously only a picture standing alone in its own paragraph was drawn. A picture in a list item now draws in that item’s content column, with its bullet, number or checkbox level with the text items beside it; consecutive pictures draw one after another; a picture in the middle of running text shows as a small picture mark — hover for its caption, click to view it, and it copies back as
.
Changed
\mathscrand\mathcalnow look different in formulas:\mathcalis the calligraphic face,\mathscrthe flourished roundhand, as in MathJax and KaTEX. Only capitals differ; with Pagella Math the two are the same.- Long footnotes can span pages. When exporting a PDF, a footnote that does not fit is split in the footer and continues in the next page’s footer, instead of being pushed whole to the next page or overflowing the footer.
- Pictures resized in Typora now show. Typora writes a resized picture as
<img src="…" style="zoom: 87%;" />, which used to vanish entirely; it now draws as an ordinary picture (the zoom is ignored). An<img>wrapped in other HTML tags still does not show in this version. Setting: ⌘, ▸ Markdown ▸ “Show HTML image tags”, on by default.
Fixed
- “Correct to full-width” no longer turns a heading’s section number
4.into4。. An ordinal at the start of a block —4.,1.2.,A.,1)— is left as written; a genuinely misused half-width stop mid-sentence is still corrected. - A block quote’s bar lines up with the body’s left edge. The bar sits on the body’s left edge, and each nested level on the left edge of the text one level out; quoted text moves slightly left with it, and the gap between bar and text is unchanged. The same holds in the Finder preview, exported PDFs and the Spola editor.
- Scrolling the document no longer gets stuck after you slide an over-wide formula sideways. The formula stays where you slid it; trackpad and mouse wheel alike.
- With “shrink formulas to fit” on, resizing the window repeatedly no longer creeps the reading position downward.
- A table longer than a page is exported across pages by row, with the header repeated on every page, instead of being shrunk to fit one page.
- Changing a setting in ⌘3 source mode returns to the line you were reading, not to where you entered.
- Picture paths written with Windows backslashes (
images\image.png) are now found. - A list item’s second paragraph no longer gets an extra bullet.
- A picture inside a block quote now carries the quote bar, instead of the bar breaking around it.
v0.5.2 September 14, 2026
Improved
- Chinese punctuation now uses SimSong’s glyphs. When body text and headings are set in Songti SC, fullwidth Chinese punctuation (,。:;「」()《》?!~ and the like) is drawn from the system’s SimSong instead — cleaner marks, and it also fixes the
!that Songti SC Regular draws in the middle of its em box. Only the marks’ appearance changes: line widths, line breaks and line spacing are untouched. Headings and bold emphasis on the “Bold” tier take SimSong Bold’s marks; bold emphasis on the default “Black” tier keeps Songti Black’s own (SimSong has no Black). Exported PDFs and Finder’s Quick Look preview use SimSong too (PDFs embed the used glyphs). To keep the old look, choose “Same as body” under ⌘, ▸ Fonts ▸ “CJK punctuation”, or putcjk_punct_face = "native"in the typesetting profile. On the rare Mac without SimSong the marks fall back to Songti SC’s own (positioned as in the next item), and the panel row says so. - Songti SC’s own punctuation sits where it should. Three cases still draw Songti SC’s own marks: bold emphasis on the default “Black” tier, “Same as body”, and a Mac without SimSong. There, marks such as
?!,、.that ride high against the ideographs come down to where SimSong puts them (Black moves only,.), and Regular’s centred!moves back to the left half. Only the glyphs move; line spacing and line breaks are unchanged.
v0.5.1 September 13, 2026
Highlights
A major settings-panel overhaul
- Settings (⌘,) is now a vertical tab panel: one navigation column on the left and seven pages — General / Appearance / Typography Schemes / Markdown / Shortcuts / Quick Look / Advanced. It used to be two horizontal tabs with ten groups stacked on the “General” one, scrolling all the way down. Every setting is still there, re-grouped by what you are changing: light/dark, reading width and the title-bar buttons moved to Appearance; “quit when the last window closes” sits in a Behaviour card on General; single line breaks and consecutive spaces to Markdown; the debug legend and the
settings.tomlpath to Advanced. The sidebar icons are one set of filled symbols now, and the column dividers — in the panel and in the reading window alike — are much fainter: the separation is carried by the two surfaces’ shades, the line is only an accent. - A new Shortcuts page lists every keyboard shortcut — the whole menu bar, grouped by menu, plus the ones that are not in any menu (switching tabs, the sidebar and outline panes, zooming, the sidebar’s arrow keys). The page only lists them; it cannot change a key yet.
- The overlay gutter is a dropdown now, the same vocabulary as every other choice in the panel; appearance mode keeps its three-way strip (Light / Dark / Follow System), one click fewer.
- The scheme list shows name + a one-line summary + status (the summary is Latin face · Han face · size) instead of drawing a typography thumbnail; the specimen moved to the preview box atop the editing column. Two schemes that share a font but differ in layout parameters are told apart only by that summary; in exchange the list no longer re-renders a batch of bitmaps every time the palette, the appearance or a font changes.
- The Quick Look page moved into the new panel too: the previous version’s Finder-preview settings (typography tier / pinned preset / preview width / preview height / web images) are row for row the same, rebuilt in the card form every other page uses, each row’s explanation now under its own row, and sit between Shortcuts and Advanced.
- ⌘W with the settings panel focused closes the panel, not a tab of the document window behind it. Same for the Acknowledgements window.
Fixed
- In dark mode, the area below a document shorter than the window could come out as something other than paper: the system painted it as a material tinted by the window backdrop, a bluish off-colour block. It is always paper now.
- A font installed while Telari was running did not show up in a font-family menu the settings panel had already built until the app was relaunched; it appears as soon as it is installed.
v0.5.0 September 12, 2026
Highlights
- The Quick Look preview can follow your typography: it used to render the factory look no matter what; it now matches the window you read in by default — fonts, size, leading, column width and colour theme all count. Settings (⌘,) gains a Quick Look page with three choices: follow the current preset (the default), standard Telari typography, or one specific preset. If the pinned preset is deleted, the preview falls back to the factory look and the row says “(deleted)” — it never silently switches to another one. Changes apply the next time you press Space.
- The Quick Look panel’s width and height are yours to set: width defaults to 800 pt and no longer follows the reading window’s “maximum width” (following it would hand a window filling a wide screen a preview just as wide); height still defaults to 85% of the screen, and the slider sets it in points — a height picked on a large display folds into a smaller desktop without shrinking the number you stored.
- The Quick Look preview can load images from the web, off by default.
Improved
- Copying a formula brings its delimiters back: every formula in the selection lands on the clipboard wrapped in
$…$or$$…$$, whether selected on its own or as part of a paragraph or the whole document, and pastes into another Markdown editor as a formula. - Footnotes are numbered 1…n by first-reference order: the superscript in the text, the definition block and the foot of an exported PDF page always show the same number, wherever the definitions are written; two adjacent references get a comma between them,
1,2. The source is untouched —[^label]is still the label you wrote. - File links are drawn with a dashed underline; web links stay solid. Before clicking you can tell whether you stay in the document or open another file on this Mac. Both use the same colour; only the line style differs. PDF, PNG and the Quick Look preview draw them the same way.
mailto:and links with other schemes now open: they are handed to the system to pick an app; they previously did nothing. A local file of the same name still wins.- File links in the Quick Look preview no longer look clickable while doing nothing: the pointer stays an arrow and a hint says file links do not open in the preview.
- The Japanese and Korean interfaces have welcome documents of their own: the Japanese one covers kinsoku, punctuation tightening, the Japanese–Latin gap and the mincho/gothic split for emphasis; the Korean one covers breaking between words and never inside one.
v0.4.12 September 11, 2026
Improved
- The Finder spacebar preview panel is bigger: it used to open small, squeezing the text column. It now opens with the text as wide as in a Telari window — the same line length — and about 85% of the screen’s usable height, both clamped to the screen. You can still drag the panel edges and the text reflows live.
- Very large Markdown files (tens of millions of characters) can be spacebar-previewed: files over 8 MB used to show “file too large to preview”. The panel now previews the beginning of the file — cut at a paragraph boundary, so no half sentence or half code block — with a footer saying “Previewing the beginning only (file is 33 MB)”. A 33 MB file appears in about 50 ms. Open the file in Telari to read it in full.
v0.4.11 September 11, 2026
Highlights
- Dragging a selection past the top or bottom edge of the window now scrolls it
- A table can be selected across its cells, or as a whole; what you copy keeps the table’s shape and pastes straight into a spreadsheet
Improvements
- Small improvements to PDF export
Fixes
- Reloading a document clears the current selection.
v0.4.10 September 10, 2026
Highlights
- Finder space-bar preview: links are clickable and local images show up. Web links open in your default browser, in-document anchors (
#heading) and footnotes jump within the preview, and the pointer turns into a hand over a link; images next to the document (-style relative paths) render instead of a placeholder box. Two boundaries up front: links to local files do not respond yet, and remote images still do not load in the preview.
Improved
- PDF export now breaks pages with TEX’s page builder (club / widow / heading-follow) instead of filling greedily line by line: a heading is no longer stranded alone at the foot of a page, and a paragraph’s first or last line is no longer left by itself on the other side of the break.
Fixed
- A task item whose content vanishes no longer disappears.
- [x] <!-- comment -->followed by a blank line used to lose the whole row, checkbox included; it now draws an empty task row, matching both the tight form (- [x]on its own line) and what the Spola editor shows.
v0.4.9 September 9, 2026
Highlights
- “Export Image…” can now export the whole document, at a width (current window / phone 400 / tablet 672 / custom) and a scale (1× / 2× / 3×) of your choice. The export is what you see in Telari: typography scheme, theme and code highlighting all carry over, and a dark theme exports dark paper. When the picture would be too large, Telari says so instead of writing a file.
- The ⌘3 source view has been restyled. Instead of a stack of shaded “code blocks” it is now one continuous sheet, coloured by markdown syntax (bold headings, real bold/italic for
**and_, underlined links, dimmed delimiters); the colours follow your theme, and line breaks and copied bytes are unchanged. Long lines wrap more carefully: continuations indent two spaces, Latin breaks after a space, Chinese may break between characters.
Fixed
- “Export Image” no longer writes a blank sheet (solid black under a dark theme).
- Empty list items no longer disappear: a
-or1.with nothing after it keeps its line and marker, and numbering does not skip. - Spaces inside
\text{…}in a formula are no longer swallowed —\text{若 } xno longer sets as若x; the automatic Chinese↔Latin gap now applies inside formulas too, driven by the samecjk_latin_gapknob as prose.
v0.4.8 September 8, 2026
Fixed
- The format-check counter no longer reports a missing CJK–Latin seam for an ideograph inside inline code.
`々`aused to be counted as “Chinese and Latin not separated” even though the layout inserts no gap there (an ideograph inside a code run takes no seam); the diagnostic and the typesetter now share one predicate. The other direction is unchanged:中`a`is still counted, because the layout really does add the gap there. A space typed inside the backticks (中` x`) also counts as separating them, matching the layout. - The emphasis seam now also reaches line-break-prohibited ideographs such as 々 and 〻. In Chinese, bold/italic switches font families and the spacing at the boundary collapses slightly, so a small seam is added there — but it could not be added at pairs like
体々/体〻, where a line break is forbidden (人々was welded into a single unbreakable box with no glue to carry the seam), leaving体〆evenly spaced while体々looked cramped in the same sentence. Those boundaries now take the seam too, and the break prohibition is unchanged — that sliver of space can never become a break point.人々with no family switch is pixel-identical to before. - A
\text{…}holding a fraction or a script no longer renders as blank.\text{\frac{a}{b}},\text{a^b},\mbox{\sqrt{x}}and\hbox{…}are errors in LATEX itself (Missing $ inserted), and telari used to draw them as nothing at all — a piece of the formula silently missing, with no hint that anything went wrong. The whole formula now falls back to showing its LATEX source, so you can at least see what you wrote. Same for\operatorname{a^b}. The fallback also covers a\text{…}whose argument breaks off mid-way —x+\text{^b$}+yused to drawx+b$, dropping the^and the entire+ytail without a word. Spellings that already worked (\text{maximum},\mbox{if }x>0,\mathrm{\sqrt{x}}, …) are untouched. \operatorname{\mathit{x}}keeps the alphabet you asked for. An explicit\mathitinside an operator name used to be discarded and drawn upright; it is now italic, as requested. (Bold spellings such as\operatorname{\mathbf{sin}}were already correct.)\text{\mathit{x}}is fixed the same way.- Hot reload no longer dies when a theme / profile directory is replaced wholesale. Deleting and recreating
document-themes/orprofiles/in one go (restoring from a backup,git checkoutof a whole directory, a sync tool swapping the directory) used to leave the watcher pinned to the vanished old directory — even with identically named files inside, later hand-edits went unnoticed. The directory’s own identity is now the test: when it changes, the per-file watches are rebuilt from scratch. That includes timestamp-preserving restores (cp -p,rsync -a,ditto) and atomic swaps, whose(mtime, size)is bit-identical to the original — identity is the only thing that tells them apart.
v0.4.7 September 7, 2026
Improved
-
Documents with code blocks no longer stall on syntax highlighting. Highlighting used to run inside the frame that drew the code block, so opening or scrolling to one in a large file could hitch; it now runs on a background thread — the block is painted in the body colour first and recoloured as soon as the answer lands, usually too fast to see. If a grammar genuinely wedges, it costs one background thread, that language renders plain for the rest of the session, and every other language is unaffected.
-
The installer keeps getting smaller. The three math fonts and the four TEX Gyre Pagella text faces are no longer shipped as separate files; they are compiled into the core library
libtelari_core.dylib, taking the DMG from about 11.5 MB to 6.8 MB. This also closes a latent failure: the Finder Quick Look sandbox cannot read font files inside the host app (the read fails silently, with no error anywhere), whereas code loaded through the library works — so the preview and the reading window now use the very same bytes. The fonts’ licence text (GUST Font License) still ships as a readable file, and the Acknowledgements window is unchanged. -
Links are now underlined. A link in body text used to be distinguished from its surroundings by colour alone; it now also carries a thin, faded rule (the link colour at 40 % alpha, centred 0.15 em below the baseline, the same thickness as a strikethrough), so hue is no longer the only channel. One link is one rule: it crosses word spaces, runs of
**bold**and`code`, and reaches the automatic hyphen on a broken word, while a^2^superscript stretch follows the superscript’s own height. The rule steps aside at a descender — p / g / y / j / q break it for their own width plus 0.06 em of clearance on each side, instead of being struck through (a Han glyph’s foot only grazes the rule rather than passing through it, so a Chinese link keeps one unbroken line). Two adjacent links stay two rules. The reading window, exported PDFs, the Finder spacebar preview and links inside table cells all draw it. Footnote references ([^1]) and image alt text do not.
v0.4.6 September 6, 2026
Highlights
- Fenced code blocks are now syntax-highlighted. A fenced block tagged with a language (
```rust,```python) is coloured in five classes — keyword, string, comment, literal, type — with everything else staying the body colour; 213 languages and their common aliases are recognised. Blocks with no language tag, an unknown language, or a highlighting failure render pixel-for-pixel as before. The colours were picked on a lightness ladder (every pair of classes at least 7.5 L* apart), so they stay distinguishable without relying on hue, and light and dark each have their own set. The reading window, exported PDFs, the Finder spacebar preview and the Spola editor all use the same implementation — code in an exported PDF is still real, selectable, searchable text. - It can be turned off.
[appearance] code_highlight = falseinsettings.tomlrestores plain code blocks; both preference panels carry a switch (Telari under Appearance, Spola under Editing).
Improved
-
Spola’s ⌘, ▸ Editing gains an Appearance control (Light / Dark / Follow System), the same key and the same meaning as Telari’s Appearance group: until now Spola only followed the system, so switching light and dark meant switching the whole machine.
-
Smaller installer: the DMG now uses lzma compression — about 30% smaller than the previous zlib image for the same contents.
Fixed
- The gap around inline math in Chinese text no longer depends on how the formula is spelled.
中文和$x$这样got the 0.25em CJK–Latin gap on both sides while中文和$\alpha$这样sat flush — the decision looked at the first character of the LATEX source (\and(counted as “neither Chinese nor Latin”). A successfully typeset inline formula now always counts as Latin-side content, so formulas starting with a backslash or a bracket gain that 0.25em in Chinese documents. - Images whose path contains spaces now display. All three spellings work: a bare space (
— exactly what dragging an image into an editor produces),%20, and<…>. Until now the bare-space form was drawn as literal body text, and the%20form parsed as an image but could not find the file, leaving a placeholder box. The leniency is images only:[link](/my uri)is still body text, not a link.
v0.4.5 September 5, 2026
Highlights
-
Better math rendering. Greek letters typed directly in the source (
α,Γ) now draw with the same glyph as\alpha,\Gamma— no more one italic, one upright depending on how they were entered. Alphabet commands wrapping a superscript, fraction or radical (\mathbf{x^2},\mathbf{\frac{a}{b}}) used to render the whole formula as blank; they now render correctly. Greek letters also follow\mathbf,\mathit,\boldsymboland\mathbb(including the four double-struck letters ℼ ℽ ℾ ℿ). -
Better inline code rendering. A code capsule now always keeps a minimum gap from the text around it — whether the neighbour is a word space, a Chinese punctuation mark or another capsule — and a tightly set line no longer squeezes them into contact. Leading and trailing spaces inside a code span (as in
` a `) are now drawn inside the capsule; they used to land on the page background.
Improved
-
The current find match now has an outline, so telling “which one am I on” no longer relies on orange versus yellow alone.
-
々, 〆, 〇 and 〻 are treated as ideographs. “人々” followed by Latin text now gets the CJK–Latin gap; it used to get none.
-
Built-in typography preset names follow the interface language. In English, Japanese, Korean and Traditional Chinese, preset names such as “Serif” and “Sans” in ⌘, no longer show in Simplified Chinese; the Simplified Chinese interface is unchanged.
Fixed
-
Sidebar search keeps filtering after switching between Workspace and Recents. Switching back used to show a list with a query but no results, forcing you to type it again. Bulk adding or deleting files in a large workspace no longer stalls the sidebar.
-
Hand-editing the window size in
settings.tomlcan no longer open a window smaller than the minimum.[window] width = 200used to open a window with no text column at all.
v0.4.4 September 4, 2026
Highlights
-
Superscript and subscript syntax are now supported.
x^2^is drawn as a real superscript andH~2~Oas a real subscript (Pandoc style: a pair of^marks a superscript, a pair of single~marks a subscript). The scale and the raise/drop of the small text come from the math font’s MATH constants and share one set of sizes with footnote reference marks —x^2^andx[^1]now match exactly in size and height. Copy and find still use the source text. Known limits: a space inside a super/subscript can break across lines; a subscript cannot start with punctuation; inline math inside a super/subscript is not shrunk (write$x^{y}$instead). -
Note: a single tilde
~x~is now a subscript, no longer a strikethrough. Write~~x~~for strikethrough; forms like~~a~b~c~~with a single tilde inside a strikethrough lose the strikethrough. This is the upstream Markdown parser’s (pulldown-cmark) decision, which Telari follows.
Improved
-
Footnote reference marks are slightly smaller (0.70× the body size instead of 0.75×) to match super/subscripts.
-
The line breaker prices the whitespace right after a break point more accurately. A few paragraphs may break slightly differently — usually for the better: one loose line fewer, or a line that used to be misjudged as not fitting now fits.
Fixed
-
In a centered paragraph, a line that breaks at a hyphen is now truly centered. Such lines used to sit about half a hyphen to the left.
-
Top-level keys in
settings.tomlare no longer written into the[window]section. Previously, after choosing a typography preset in ⌘,, top-level keys such asactive_profilewere appended to the end of the file and landed inside[window](Telari could still read them back, but the file was wrong by TOML rules). They are now written at the top of the file; an old file is relocated automatically on its next write, with everything else untouched. -
When a preset file has a duplicate key, panel edits no longer land on the ignored one. If a hand-written preset file had two lines with the same key, dragging a slider in ⌘, edited the first while layout read the last — the slider moved, the layout didn’t. The last one now wins. Also,
heading_scale/heading_weightare no longer lost when creating or duplicating a preset. -
Removed the five hidden defaults keys from the scroll-feel experiments (
TelariScrollGain,TelariScrollResample,TelariScrollResampleHorizon,TelariScrollResampleHz,TelariScrollDirect). If you had set any of them, scrolling returns to the native system behaviour.
v0.4.3 August 31, 2026
Highlights
- Strikethrough and task lists are now supported. These are two more of GFM’s (GitHub Flavored Markdown) commonly used syntaxes:
~~like this~~now draws a real strikethrough rule instead of showing the literal tildes, and- [ ]/- [x]are drawn as real checkboxes, with a check mark when ticked.
Fixed
- No more stray blank space above an indented HTML fragment. Previously, when a document contained an indented HTML block, a gap more than a line high appeared out of nowhere above it.
v0.4.2 August 30, 2026
Highlights
-
Less chrome, more immersive reading. “Automatically hide title bar buttons” is now on by default: while both sidebars are closed the two sidebar buttons step aside and the title bar shows just the document name; move the pointer to either top corner to bring them back. If you had already turned the switch off, your choice is kept. Requires macOS 15 or later.
-
Better stretching for mixed Chinese/Latin text. In most cases the spacing between ideographs is no longer stretched wide open: most of the stretch budget now goes to word spaces and to the gaps between Chinese and Latin text. Narrow, mixed-script paragraphs improve the most; pure-Chinese paragraphs keep essentially the same spacing, and pure-English documents are entirely unaffected.
-
When the window gets too narrow, justification can now step aside automatically. Justified text simply cannot be set well in a very narrow column: too few characters fit per line, letter spacing goes slack, and lines end with lonely word fragments. Now, whenever the text column is narrower than about 20 characters (roughly the narrowest the window goes with no sidebars open), the whole page switches to left alignment — a ragged right edge, but clean spacing; widen the window and justification comes back. On by default; the switch and the trigger width live in ⌘, ▸ Profiles ▸ Layout, and it only matters when body text is justified. The trigger width is counted in characters: it scales with the body font size, so a larger font raises the corresponding window width too.
Improved
- Better line breaking in extreme cases. When a line truly cannot fit — an extremely narrow column, or an unbreakable long word or URL in the paragraph — the algorithm now handles it more gracefully, spreading the tightness and looseness across the whole paragraph as evenly as it can.
Fixed
- The interface language chosen in ⌘, no longer reverts to “Match system” after a restart. The language choice in settings was never read back on the next launch, so the interface returned to the system language every time. Also: the menu bar and the settings panel switch language immediately, but window chrome such as the sidebar only switches after a restart — the panel now says so and offers a “Restart now” button (the restart is quick, and windows and reading positions are restored automatically).
v0.4.1 August 30, 2026
Highlights
-
New “letter spacing” control. ⌘, ▸ Layout now has a letter spacing slider that adjusts the natural spacing between characters — mainly the spacing between CJK ideographs. Punctuation, code, and math are unaffected. The factory default is still 0. The old “Compactness” preset moved into the advanced group.
-
New “Open in Editor” (⌘⇧O). Spotted a typo while reading? Telari is a reader, not an editor — but now one command hands the current document to your own Markdown editor: File ▸ Open in Editor. The first use asks once which app to use (the system default, or one you pick) and remembers it; change your mind in ⌘, ▸ General ▸ Editor. Save in the editor and Telari updates in place. “System default” is whatever opens
.mdon your system; if that happens to be Telari itself, the plain-text default editor is used instead.
Improved
-
New “Automatically hide title bar buttons”. For a more immersive reading window: with ⌘, ▸ General ▸ Window ▸ Automatically hide title bar buttons on, the two sidebar toggles disappear while both sidebars are closed, leaving only the document name in the title bar; move the pointer to the window’s top corners to reveal them, and they linger for about 3 seconds after it leaves. With a sidebar open its buttons stay visible. Off by default; requires macOS 15 (the switch has no effect on earlier systems).
-
A cleaner title bar. The sidebar toggle icons are one size smaller, and the window title changed from “document — Telari” to the full file name (e.g.
tables.md). -
settings.tomlis now reachable from the settings panel. A new “Configuration file” section at the bottom of ⌘, ▸ General openssettings.tomlas text with one click, next to the path actually in effect. Every advanced option the panel doesn’t cover lives in that file; edits apply live, no restart. -
Removed the “outside workspace” hint bar at the bottom of the sidebar (introduced in 0.4.0): it took more space than the information was worth.
Fixed
- Selection and copy are no longer offset inside normalized inline math like
\(…\)and$ x $. Selecting or copying inside such a formula used to yield source text shifted left by a few characters.
v0.4.0 August 26, 2026
Highlights
-
The window has been redesigned. This release rebuilds the window chrome around a three-column skeleton — a substantial visual overhaul, and the groundwork for the theming system to come:
-
The sidebar is now a flat, edge-to-edge, full-height column. It used to be (especially on macOS 26) a floating glass island — inset on all four sides, rounded, tinted by whatever desktop picture sat behind it, changing color when the wallpaper did, with no real separator on its left. It now runs flush to the window edge and up to the top, keeps a fixed background, and meets the text column at a single 1pt vertical line; the two horizontal hairlines that used to sit under the tab strip and the sidebar header are gone.
-
Tabs are now text plus an indicator line. The active tab is no longer a filled capsule but its title with a short line centered under the ink — far lighter visually. Tab titles drop the
.mdsuffix and truncate at the tail based on their actual width. With a single tab open, the tab strip collapses to an 8pt sliver (the tab title itself hides, and the text moves up 22pt); opening a second tab brings it back exactly as it was. The+button at the end of the strip is gone — new tabs come from ⌘T or the File menu. -
The title bar shows “document — Telari”, centered. Toolbar icons are smaller and no longer sit on glass platters; the only two items left are the sidebar and outline toggles at the ends.
-
Search has moved into the top of the sidebar: click 🔍 to expand the search row and focus it; while the field has focus, a second click (or Esc) dismisses it. Typing directly in the file list still summons search as before — and an old bug is fixed along the way: fast consecutive typing no longer drops the first character.
-
The sidebar now opens with a Workspace / Recents switcher plus a root folder row: clicking the root name (or right-clicking, or pressing Space/Return) opens one menu, with “Open Folder…” as its first item. “Clear Recents” has moved to the context menu on the Recents section header. When no workspace folder is chosen yet, the sidebar’s empty-state button now matches the welcome page’s style.
-
Fixed
-
Inline formulas with spaces between the
$and the content —$ \xi=0 $— now render. The prevailing rule for inline math (Pandoc, Typora, and others) requires$to hug the content, precisely so that price lists don’t get misread as formulas; but the padded spelling is common in AI-generated documents, and such formulas used to be shown as raw source, whole. For spellings that carry clear mathematical signals (backslash commands,=,^,_, and so on), telari now tightens the padding and renders the formula — after checking it isn’t a price, code, or similar context.$4.99/moand$89.99on the same line still display as-is. Known boundary:$ x $, where the content is a single bare word with no mathematical signal at all, still doesn’t render as a formula — same as Typora. -
The sidebar no longer shrinks each time it’s toggled. On macOS 26, every close-and-reopen quietly shaved 8pt off the sidebar’s width, all the way down to the minimum. Fixed. Along the way, the ⌃⌘1/⌃⌘2 shortcuts were removed — they overlapped heavily with ⌘B/⌘1 for toggling the sidebar, yet could only open it and never close it, making them the easiest way to trip this bug; the menu items remain. The sidebar’s maximum width was also raised from 360pt to 400pt, so deep folder trees can be dragged wider.
-
Keyboard focus no longer gets trapped inside a collapsed sidebar. If focus was in the sidebar when you collapsed it, it used to stay in the now-invisible sidebar — Tab, arrow keys, and keyboard scrolling in the text all went dead. Collapsing now returns focus to the text; the Tab cycle between the switcher, the file list, and the search field inside the sidebar has been straightened out as well.
-
At the window’s narrowest, the centered window title no longer strays across the sidebars. With both side columns open and the text column squeezed to nothing, the title used to draw right across them; at that width it now hides.
v0.3.5 August 21, 2026
Highlights
-
How a single newline inside a paragraph is treated is now up to you. By the strict Markdown syntax, a lone newline inside a paragraph is not a line break, just a space — you fold the source across several lines, and the reader still sees one paragraph, rewrapped to the reading width. But Typora and Obsidian default to the other dialect (a single newline is a break), so a document written line by line arrives in telari squashed into one block. ⌘, ▸ General ▸ Line breaks & spaces ▸ Single newline now offers two settings: Merge into a paragraph (Markdown standard) and Keep the break; you can also change just one tab — View ▸ Line breaks in this tab (Follow settings / Merge into a paragraph / Keep the break), so the same file can sit in two tabs under two different settings. The choice is remembered per tab and disappears when the tab is closed. The factory default (merge into a paragraph) is unchanged
-
Emphasis markers pressed against Chinese punctuation now work. Writing something like
在**「保留换行」档下……**。used to render as literal bare asterisks — CommonMark’s flanking rules were designed for text with spaces between words, Chinese is written without them, and**therefore often lands exactly on a Han-character↔Chinese-punctuation seam, where the rules let it neither open nor close (our own manual pages, shipped with the app, carried bare asterisks because of this). Telari now follows the CommonMark CJK-friendly emphasis amendment (drafted by tats-u; merged upstream in pulldown-cmark, not yet released): the seam opens or closes as long as CJK characters or CJK punctuation sit on either side of it.
Improved
-
Runs of spaces inside inline code are no longer collapsed.
-
Runs of spaces in body text can now be preserved. The option lives in ⌘, ▸ General ▸ Line breaks & spaces, and coexists with justification: the first space of a run stretches as before, the rest contribute width but no elasticity, so the greyness of a justified line is unaffected and two spaces are always wider than one.
Fixed
-
A price list is no longer mistaken for inline math. A line with two prices written together, like
$4.99/mo·$89.99, used to be read as a single$…$formula. Fixed. -
An escaped bracket is no longer taken for a reference link.
见[文档]\[id]。used to render 文档 as a hyperlink and drop both pairs of brackets from the page — even though\[is exactly how an author declares “this is a literal bracket”. It is now shown as written (backported upstream fix). -
Fixed the background of the install DMG window — the disk image drew its background incorrectly on some macOS versions. Fixed, and the background itself simplified.
v0.3.4 August 20, 2026
Highlights
-
The empty window now lists recent folders and favourite folders. The blank page you get at launch, on ⌘N, or after closing the last article now offers three things: recent files, recent folders, and favourite folders.
-
A wide formula in a narrow window is no longer silently truncated. A formula is rigid — it cannot rewrap the way a paragraph does;
\operatorname{MultiHead}(Q,K,V) = \ldotsis simply that wide. Narrow the window far enough and you eventually meet “this formula is wider than the text column”, and until now the part that stuck out past the column just disappeared.It now happens in two steps. First, the formula may reach symmetrically into the margins, borrowing up to 1.5 em from space that was empty anyway — the everyday “doesn’t quite fit” ends here, at full size. Second, only if it still doesn’t fit is it clipped, with a small triangle drawn at the cut.
Swipe sideways to read the rest of the formula, or double-click it to open a panel that shows it in full. Both are on by default; to keep just one (or turn both off), run
defaults write dev.telari.reader TelariMathEscape pan— the other three values arepopover/both/off— and restart.Not shrinking the formula by default is a deliberate trade-off: shrinking makes a symbol in this formula smaller than the same symbol one formula further up, and two or three sizes on a page of math look worse than a page of math carrying one marker. If you would rather “see the whole thing, smaller is fine”, edit the typesetting preset as text and set
[layout] math_shrink_to_fit = true; step two then becomes a proportional shrink, down to the equivalent of 9pt body text (about 0.56× at a 16pt body size).
Improved
-
A working folder picked in an empty window survives a restart. Until now a window with no document open was not recorded at quit at all — including the folder you had just picked for it — so the next launch gave you a blank slate. Now, as long as the window holds a folder you explicitly chose, it comes back as it was; a genuinely empty window with nothing chosen is still not recorded, since there is nothing there worth restoring.
-
The window can be dragged narrower (minimum width 480 → 401pt). At its smallest it is roughly a phone-width reading preview — a way to see how your own document reads on a narrow screen without exporting it or reaching for another tool.
v0.3.3 August 17, 2026
Highlights
-
Three math fonts to choose from (⌘, ▸ Presets ▸ Fonts ▸ Math): NewCM Regular (the default — the classic TEX look), NewCM Book (the same Computer Modern skeleton in a heavier weight, rules included; a face made for reading on screen, where thin rules are easy to lose track of), and Pagella Math (Palatino-flavoured, so formulas and body text come from one design when you set TEX Gyre Pagella as the body face; the cost is that a few uncommon symbols have no glyph, and a formula using one shows its source instead). All three ship with the app — nothing to install — and switching re-typesets the open document immediately. The math font is part of the typesetting preset rather than a global switch, so it travels with whichever preset you pick.
Latin Modern Math, the previous default, is retired. It covered the symbols telari already supported, but only 65% of the full Unicode math character set — so every symbol added from here on risked hitting “this font has no such glyph” (
\subsetneqqis exactly how a reader ran into it). NewCM is a modern remake of the same Computer Modern skeleton with 100% coverage, and the two agree item for item on their typesetting constants, so your existing formulas keep their look. A few places do shift slightly — accents, integral limits and blackboard-bold letters are the easiest to spot. -
Hard line breaks inside a paragraph are now rendered faithfully. A trailing backslash
\(or two trailing spaces) is Markdown’s way of saying “break the line, not the paragraph” — addresses, signatures, verse, lyrics and lists of short clauses all rely on it. telari used to treat it as an ordinary space and join the two lines; now it really breaks, both on screen and in exported PDFs. Soft breaks (nothing at the end of the line) are unchanged and still flow into one continuous paragraph.
Improved
-
New setting: Quit when the last window closes (⌘, ▸ General ▸ Window, off by default). With it on, closing the window after finishing a document no longer leaves Telari sitting in the Dock. The next launch still returns you to the window you closed last — that document, and the position you had reached in it; the position is the one recorded at the moment you closed the window, not whatever happened to be saved earlier. When several windows are open and you close them one by one, only the last one comes back; to put the whole set away and get all of it back next time, use ⌘Q as before.
-
Fraction bars are back to TEX’s rule: the bar spans the numerator and denominator exactly, instead of sticking out a little on each side. Short fractions (
\frac{a}{b},\frac{1}{2}) used to leave the bar hanging in mid-air at both ends, and inside a radical or a pair of tall parentheses the overhanging end came close to touching the fence. A bar slightly longer than its content is a legitimate house style, so it was not deleted but demoted to a knob: edit the preset as text and set[typeset] math_frac_bar_overhang = 0.09to reproduce the 0.3.2 geometry exactly. -
When a formula falls back to showing its source, the message now says which kind of fallback it is: “The current math font is missing a required glyph — try another math font” (another face may well draw it) versus “Will be rendered in a future version” (the construct isn’t supported yet, and changing fonts won’t help). The two call for opposite next steps.
Fixed
-
Fixed a rare case where the settings file could be silently reset to factory defaults.
settings.tomlis a plain text file you are meant to be able to edit by hand; if it became unreadable — an editor saving it in a non-UTF-8 encoding, an interrupted disk write — the previous behaviour was to replace it with the factory default at launch, so fonts, theme, zoom and colour scheme all reverted and the original was gone. The original file is now kept intact (renamed tosettings.broken-<timestamp>.tomlbeside it), so fixing the encoding and renaming it back restores everything. If even the rename fails, Telari runs from in-memory defaults and stops writing to that file rather than overwriting what you wrote. -
Chinese characters in narrow table columns were being sliced in half. When the columns genuinely did not fit, every column used to be scaled down proportionally — one column’s overflow was billed to all of them — and the narrowest could end up under one ideograph wide, cutting every character in it. The allocator now shaves from the top instead: columns that are already narrow keep their width in full, and only those above the waterline are cut back to it. The width measurement behind it was fixed too: a cell holding something like a long URL, which can only break in a few places, had its “how narrow can this go” measured as “how wide with no break at all”, skewing the whole table’s allocation.
-
Formulas in table cells had a corner clipped off. Accents, arrows and the like legitimately paint outside their typesetting box (on both sides), and that ink used to run into the cell’s clipping edge. Clipping now follows the formula’s actual ink extent while still staying within the cell padding — the rule that an over-long unbreakable word gets cut at the cell edge is untouched.
-
\sqrt[n]{…}: the index collided with the radical sign. The radical’s horizontal position should be a function of the index box’s width, but was treated as a constant — with a single-digit index that looks like a matter of taste, while\sqrt[n^2]{y}drew the index right on top of the sign. In the same batch: the radical’s rule and box were each 0.1em wider than they should be at every level, and it accumulated through nesting (\sqrt{\sqrt{x}}differed by 2.4pt at 12pt). Rule length and box width now match LuaTEX. -
Accented formulas sat in the wrong place. For
\hat,\vecand family over a base in a reduced size (as in scripts), the engine read the anchor of the full-size glyph while drawing the font’s reduced-size variant — placing B by A’s anchor, and the deeper the nesting the more visible it got. The opposite direction was fixed in the same batch: the difference between the two anchors is legitimately allowed to be negative (the accent should be able to reach left of the base’s origin), but was being clamped at zero, so on narrow bases with a left-leaning anchor — italics especially — the hat sat too far right of the letter it belongs to (about 0.6pt at 12pt for\hat{b}). -
Nested scripts now use the right small-size glyphs. Math fonts draw a separate, more legible set of glyphs for reduced sizes, in two steps — one for scripts, a smaller one for scripts-on-scripts. telari took the first step no matter how deep the nesting went, so the
2innermost inx^{y^2}was drawn one size too large. All three math fonts benefit. -
Superscripts sat too low and subscripts too high. Both clearances should come from the font’s own typesetting constants; telari was using the formulas a typesetting engine falls back on when a font has no such table. The two Computer Modern faces barely show it (those fallback formulas were derived from that very design); Pagella is where it shows: about 0.46pt for superscripts and 0.75pt for subscripts.
-
Five math commands added:
\Updownarrow,\subsetneqq,\supsetneqq,\subseteqqand\supseteqqwere not recognised, and one of them was enough to make the whole formula fall back to its source.\Updownarrownow renders in all three fonts; the other four render in the two NewCM faces. Pagella Math has no glyphs for them, so under that face a formula using one still shows its source. -
Digits now follow the alphabet variant they are in, as in
\mathbf{2024}. Digits in the bold, blackboard, sans-serif and monospace families used to fall back to ordinary glyphs, leaving a few normal-weight digits in the middle of a run of bold letters. (Italic, script and fraktur have no digit variants — that is the character set’s own rule — and are unchanged.)
v0.3.2 August 6, 2026
Highlights
- Cross-document links now honor anchors: clicking a link like
[text](other-file.md#some-heading)opens the target document and scrolls straight to that heading, landing the same way in-document jumps do (target at the top of the viewport). Previously the anchor was ignored and the file opened at the beginning.
Fixed
- Inline math in table cells (e.g. a
\dfracfraction) taller than the text line is no longer clipped top and bottom. The line carrying the formula now opens up so the numerator and denominator are fully visible; plain-text lines in the same cell keep their normal line spacing.
v0.3.1 July 29, 2026
Fixed
- Fixed a problem on macOS 26 where resting the pointer near the left or right edge of the window — most often while hovering over the scroll bar on the right — would slide out a blank panel and squeeze the text column. This is a behaviour the new system adds on its own to a collapsed sidebar; earlier versions of macOS are unaffected.
v0.3.0 July 28, 2026
Highlights
- Continued improvements to the reading-anchor mechanism: your reading position is now estimated more accurately after a jump or an external edit. Also fixes the position jumping after you switch typography profiles.
- Added reading-position memory. Previously, relaunching the app took you back to the top of the file; it now remembers where you left off. With several tabs open, each tab records its own position.
- You can now choose a light or dark appearance explicitly, or follow the system, from the preferences panel.
- Added a Markdown source-reading mode (⌘3) that toggles between the typeset view and the source view. Our typesetting is lovely, of course — but sometimes you just need to see what the source file actually looks like.
- Wide tables are no longer squeezed into the body measure: when the window is wide enough, a wide table now expands symmetrically past the text column to its natural column widths (tables still always fit inside the window — never a horizontal scroll).
- Added a floating table toolbar for changing a table’s alignment and width:
left / center / right, and body-width / full-window. Changes apply live and
globally. Alignment only affects columns that carry no alignment marker in the
file; explicit
:---:/---:columns keep the alignment written in the file. This is a display-layer change only — your source file is never modified. - You can now relaunch Telari from the menu, with ⌃⌘R.
Improved & Fixed
- Fixed the left rounded corner of an inline-code capsule being clipped flat inside a table cell.
- Improved the horizontal padding of inline-code capsules — slightly more
breathing room. When editing a typography profile as text you can now set
code_capsule_pad(default 0.2); raising it widens the capsule margins, but it can make line-breaking worse overall, especially at narrow page widths. It’s a genuine trade-off.
v0.2.6 July 25, 2026
Highlights
- Improved where outline, anchor, and footnote jumps land. Previously, clicking a heading in the outline left the target sitting at the very bottom of the viewport; it now lands at the top.
- Fixed jumping to an already-open document opening a duplicate tab.
- Fixed the sidebar’s open/closed state and width being lost on restart.
v0.2.5 July 24, 2026
Highlights
- Improved the reading-anchor mechanism. Previously, editing a file in an external editor could make your reading position jump; the anchor mechanism now does its best to keep your place.
- Smoother scrolling. Reworked how scrolling is rendered, and document layout now warms up progressively while idle — reducing dropped frames and stutter in long documents.
v0.2.4 July 22, 2026
Highlights
- Fixed tabs not responding to clicks on macOS 15
- Tabs are now implemented in AppKit instead of SwiftUI, with a modest performance improvement
- Fixed content shifting for an instant at launch on older versions of macOS
- Fixed images not rendering when the image’s alt text contains an inline formula
v0.2.3 July 20, 2026
Fixed
- Support for a large batch of long-tail math commands, starting with
\centernot— four families landed this round: centered negation\centernot(the slash sits centered over relations like⟹); a set of symbols and delimiters (\leqq/\geqq, semantic brackets\llbracket…\rrbracket, corner brackets\ulcorner…\urcorner,\lgroup/\rgroup, plus aliases such as\owns/\Join/\thicksim); numbering-pipeline commands like\label{…}/\tag{…}/\allowbreak, which are now correctly swallowed — they are extremely common in textbooks and in AI-generated formulas, and until now a single\labelmade the whole formula render as source; and finally mathtools’dcases(display-size cases), the zero-width overlap boxes\rlap/\llap/\clap, and the function names\sech/\csch/\arccot.
v0.2.2 July 18, 2026
Highlights
- File links now work — clicking a link that points to a local file (relative or absolute path) opens it: markdown files open in Telari (following the File ▸ Open policy — an empty tab is filled in place, otherwise a new tab opens), other file types are handed to the system’s default app. Clicking a link whose target doesn’t exist does nothing.
Improved
- Faster find — typing the first character into ⌘F no longer triggers a full-document reshape in long documents; results appear as you type.
- Minor performance improvements.
- Adjustable radical clearance (
math_radical_gap) — an inline\sqrt{f}hugging the vinculum is TEX-faithful behavior, but faithful doesn’t mean you have to like it. Style TOML gains[typeset] math_radical_gap: a multiplier on the clearance between the radical rule and its content, default 1.0 = bit-identical to LuaTEX. Raising it gives inline radicals more daylight, and the clearance feeds variant selection. Fine-grained knob, TOML-only.
Fixed
\rvert,\textttand friends no longer knock a whole formula back to source text — a formula containing an\lvert …\rvertabsolute value or a file name like\texttt{main.c}used to display as literal source.\rvertand the\texttt/\textsf/\textbf/\textitfamily now render correctly (monospace / sans-serif / bold / italic faces).- Reading position occasionally lost when reopening a window — a timing race that could snap the reading position back to the top when reopening after closing all windows (or restoring a session at launch) is fixed.
- Line-initial brackets no longer poke past the margin, and brackets next to Latin text no longer carry a wide gap — a fullwidth mark at the start of a split text segment, butted against Latin text, picked up an extra 0.5em of system-added blank. Such marks are now clamped back to the standard 1em fullwidth cell.
- Korean no longer breaks or stretches inside words — Korean paragraphs now use keep-all: lines break only at spaces and punctuation, justification falls entirely on interword spaces, and very long words keep a last-resort break in extremely narrow columns. Chinese and Japanese behavior is unchanged.
v0.2.1 July 11, 2026
Highlights
\(…\)and\[…\]math rendering — markdown produced by ChatGPT and other AI tools often marks math with LATEX’s native delimiters —\(x^2\)inline,\[…\]for display equations — rather than the$…$/$$…$$convention of the markdown world. Those formulas used to render as literal characters; now they render as proper math the moment the file opens, no search-and-replace needed. The conversion errs firmly on the side of caution: code blocks and inline code, HTML blocks, and link reference definitions are all exempt, and mid-line brackets like\[1\]citations are never touched — when in doubt, the source is left exactly as written. Quick Look previews benefit too.
Improved
- Front matter is no longer rendered as body text — the metadata block at
the very top of a file, fenced by
---(YAML) or+++(TOML) — the common convention of Obsidian, Jekyll, Hugo and AI tools — is now stripped by default: not rendered, excluded from find and copy, and the first screen starts right at the content. It used to be typeset as markdown — key-value lines merged into a paragraph, indented tags became a real list, and a single-line block even turned into an H2 heading. A---mid-document or without a closing fence still renders as a thematic break; the source file is untouched. - The Fonts pane, reorganized — Preferences ▸ Fonts now reads top-down: Base size first (the one parameter that scales everything), then Body & code (the Latin and code fonts), then a CJK group — Han family, the Chinese bold/italic face pickers, Han scale, and the baseline trims collected into one subsection (its name follows each interface language’s natural order: 中日韩 / 日中韓 / 한중일). A pure rearrangement — every control behaves as before.
- “Edit as Text…” moved where it belongs — the button opens the whole preset file (layout keys included), yet it used to sit at the bottom of the Fonts pane only. It now lives in the preset editor’s bottom bar, shared by the Fonts and Layout tabs and always visible; “Restore Factory Settings” appears alongside once the preset has been modified. The behavior itself is unchanged.
Fixed
- Math italic correction — a slanted math letter leans right at the top,
and TEX compensates with a small correction after it; without it a following
parenthesis crashes into the letter’s shoulder. The layout engine used to
drop that correction:
f(x)looked cramped and the P inP(A|B)nearly touched its parenthesis. It is now implemented to full TEX semantics — between a letter and what follows, in superscript placement (riding the shoulder) vs subscript (tucked to the stem), the ±IC/2 shear of\limitsbounds on integrals, numerator/denominator centering, and radical/accent box widths — coordinate-identical to LuaTEX with the same font (pinned by 18 new golden-oracle cases). Also fixed along the way: hanging punctuation no longer misfires on inline formulas that start with.(a line-final$.5x$used to hang its whole box past the margin). $$formulas with=on its own line are no longer bisected — ChatGPT habitually writes display equations with the=alone on a line; CommonMark’s setext-heading rule cuts such a paragraph apart before math pairing gets a chance — the first half used to render as a giant bold heading, the rest as plain text. That block shape (and its\[…\]twin) is now recognized before parsing and renders as a proper formula; matrix\\row separators and formulas inside lists and blockquotes are rescued too — a real ChatGPT test document with 33 display blocks, 12 of them bisected, now renders every one. Every conversion is verified by re-parsing the result and is abandoned wholesale if anything but the expected formula comes out —$$inside code blocks and real list/table/heading structure stay exactly as written.- Large images no longer distort — images taller than the height limit used to be squeezed into a fixed-height letterbox (a large square image came out as a ~2:1 stretched rectangle). They now scale proportionally into a square box the width of the text measure: landscape and square images fill the measure, portrait images shrink to fit and center horizontally — never stretched; small images keep their natural size. PDF export benefits too.
- Delimiters now grow to fit large formulas —
\left(…\right), the\bigfamily, and the radical sign used to top out at the tallest ready-made glyph the font provides (about three lines tall): anything taller — a matrix of three or more rows, stacked fractions — got brackets visibly shorter than their content. They are now assembled from the font’s own pieces (top hook, extender, bottom hook) to any height, coordinate-identical to LuaTEX with the same font. - Math rendering refinements — radicals no longer come out one step too
short at boundary sizes (
\sqrt{f}and the like — TEX’s integer-rounding semantics are now replicated exactly, agreeing with LuaTEX bit for bit); top accents (hats, bars) no longer sit systematically too low, glued to their base, nested accents stack in exact vertical alignment and\overbracecentering is corrected; and the source-fallback box for not-yet-supported constructs is now measured from the real line count, so multi-line source no longer overflows the box and crushes the next block.
v0.2.0 July 8, 2026
Highlights
- Better default emphasis styling — Chinese bold now uses the Songti Black face (the Bold face is barely +10% ink over regular and drowned at body size); italics render in Kaiti (楷体), the traditional Chinese emphasis face — never a synthetic slant; bold-italic lands on Kaiti Bold. Latin bold is now real Bold (it silently resolved to Semibold before). A hairline spacing compensation keeps Kaiti↔Songti seams from touching. Headings keep Songti Bold (Black would be too heavy at heading sizes).
- New pickers in the Fonts pane — Preferences ▸ Fonts gains two pickers, so you can choose your own Chinese emphasis faces. “Chinese italic face”: Kaiti (the traditional emphasis face, unchanged default), Fangsong, Xihei, or “Don’t substitute” to keep italics upright — Fangsong has a single weight, so bold-italic stays Fangsong (the face wins); Xihei promotes bold-italic to Heiti; Kaiti is not preinstalled (a download-on-demand system font, usually already fetched on Chinese-language systems) — until it’s in place, italics stay upright and switch over once the font arrives. “Chinese bold face”: Black (the most visible, unchanged default), Bold (a restrained half-step), or Heiti — switching bold spans to the sans family, the other Simplified-Chinese tradition (Songti body, Heiti emphasis, as in ctex). Baselines stay flush in every tier; headings keep Songti Bold.
- Japanese and Korean paragraphs get their own faces — paragraphs with kana set in Japanese style: Mincho body with emphasis switching to Gothic (the orthodox Japanese convention); paragraphs with Hangul set in Korean style: Gothic body with weight-tier emphasis. Detected per paragraph, zero configuration. The same detection also scopes the punctuation correction/spacing strategies to Chinese paragraphs only — halfwidth punctuation in Japanese and Korean is legitimate usage and stays untouched.
- The sans schemes get the full emphasis system. The sans and Avenir profiles (PingFang SC) now carry their own emphasis mapping, symmetric with the serif schemes: the Chinese italic-face picker works (Kaiti by default, with a properly recentered baseline), the Chinese bold-face picker offers Semibold/Medium (PingFang has no Black face; the default is exactly the face used before), and Japanese/Korean paragraphs switch to the system Japanese/Korean fonts — Japanese set gothic-body with weight-step emphasis, matching the sans body. Chinese body text renders identically to before.
- Paragraph separation, the book way or the web way. A new two-way choice
in Preferences ▸ Layout: Spaced (gap between paragraphs, no indent — the
web convention, unchanged default) or Indented (every paragraph gets a
2-em first-line indent — including after headings, the Simplified-Chinese
book convention — and paragraphs have no gap between them). Lists and
quotes keep their spacing and stay flush. Power users can override the
exact indent (
first_line_indent) and paragraph gap (para_space_between) in the profile file; explicit values always win over the preset. - Single-click to preview, double-click to keep. Clicking a file in the sidebar now opens it immediately — in a preview tab (italic, dimmed title) that later clicks reuse, so browsing never piles up tabs and never replaces the document you’re reading. Double-click the file or the tab title (or drag the tab, or pick “Keep Open” from its context menu) to pin it. In the sidebar, Space previews and Return pins; arrow keys just move the selection. Previewed files stay out of the Recents list until you keep them, so browsing doesn’t reshuffle the list under your cursor. The preview tab survives relaunch.
Improved
- A tidier Layout pane. The four raw fine-tuning parameters (inter-character stretch/shrink, punctuation squeeze, CJK–Latin gap) moved into a collapsed “Advanced Typesetting Parameters” group at the bottom of Preferences ▸ Layout. They work exactly as before; the group just makes clear these are internals tuned as a whole — each field’s ↩ restores it anytime.
- Tabs fit their titles. Tab width now adapts to the file name (like
Safari and VS Code) instead of chopping longer names to a fixed box; titles
sit centered, and the close button appears on hover. Two open files with
the same name automatically show a small directory hint after the title
(
README.md — docs). Opening or switching to a tab that sits past the edge scrolls the tab bar to it.
Fixed
- Inline code capsules finally have side padding. The capsule background
used to hug the glyphs edge-to-edge — worst in Chinese text, where a code
span touching a full-width mark (
(,,) or a Han character rendered with zero margin. Two-part fix: the capsule may now borrow most of an existing seam for its padding (keeping a small optical gap to the neighbor), and where no seam exists at all — code against full-width punctuation, a symbol-initial span right after a Han character, tight writing like`code`bar— the typesetter now reserves a small real gap (~0.22 em of the code font), the same way web renderers reserve inline-code padding. Line-break rules (kinsoku) are untouched: none of the reserved gaps is a break opportunity. Table column sizing also got more accurate along the way (natural widths now come from the real layout, counting these gaps and punctuation compression). - Emphasis runs sit on the same visual baseline as body text: the ink-box offsets of Songti Black and Kaiti (measured per character) are compensated, so bold spans no longer float slightly above the line.
v0.1.8 July 7, 2026
Fixed
- Long numbers and URLs no longer wreck the layout. Previously, a long unbreakable run — stuck-together digits, a hash, a bare URL — forced justification to stretch CJK letter-spacing to absurd widths trying to fit the blob. Telari now breaks inside such runs as a last resort, the way a browser wraps a long URL: no hyphen, normal spacing, and only when the line would otherwise fall apart. Normal prose is provably unaffected.
- New windows remember your size. ⌘N opens at the size you last shaped a window to, cascaded so it doesn’t stack on the old one; closing every window and reopening brings the last window back in place. A frame saved on a since-unplugged external display falls back to the visible screen instead of opening off-screen.
- Opening a new window while in full screen no longer merges it into the full-screen window as a macOS-native tab (Telari has its own tab system); the same fix covers users whose System Settings prefer tabs “Always”.
Changed
- The update dialog’s release notes now display in Chinese when your system language is Chinese.
v0.1.7 July 5, 2026
Added
- Quick Look preview — press spacebar on a Markdown file in Finder and it renders through Telari’s real typesetting engine: Knuth–Plass justification, CJK punctuation handling, math, and tables, live-reflowing as you resize the preview panel. One-time setup: launch Telari once, then enable it under System Settings ▸ Login Items & Extensions ▸ Quick Look. The preview uses Telari’s factory style; remote images show as placeholders, and very long documents preview the first 500 blocks. Press Return (or double-click) to open the file in Telari itself.
Fixed
- The update dialog now shows what’s new — release notes from this changelog are embedded in the update feed, so you can see what a new version brings before installing it.
v0.1.6 July 5, 2026
Added
- More math commands — a large batch of new LATEX commands, including boxed
formulas (
\boxed), colored math, strikethrough, stretchy delimiters, and extensible arrows. - CJK in math — Chinese inside inline and display formulas now renders in a real font, aligned to the math baseline.
- Finer vertical typesetting — spacing of radicals and related constructs now matches a professional typesetting engine, for a more natural look.
Fixed
- A formula containing a glyph the math font lacks now falls back cleanly to its source text instead of half-rendering.
v0.1.5 July 2, 2026
Added
- Zoom (View menu) — ⌘+ / ⌘− step through a zoom ladder (80%–200%), ⌘0
returns to actual size, and trackpad pinch steps the same ladder. Zoom is
proportional: it scales the text size and the reading-width limit
together, so the number of characters per line — and therefore the line
breaks — stay essentially the same while everything gets bigger. Your
reading position is preserved across zoom steps, the level persists across
relaunches (
[view] zoominsettings.toml), and PDF export always uses the un-zoomed size (print semantics). With “Limit reading width” off, zoom scales the text only and the window edge sets the measure. - Code styling — fenced code blocks now sit on a rounded, warm-gray container that extends symmetrically 0.75 em past the text column (book-style outdent; the code itself stays aligned with the body), and inline code gets a subtle capsule background. Both are paint-only: line breaking, selection, and copy are unchanged. The geometry is specified in em, so containers and capsules scale with the font size — and with the new zoom. Light and dark appearances each have an explicit surface color.
v0.1.4 July 1, 2026
Added
- Reading width control (Preferences ▸ General) — a checkbox plus a slider (480–1280 pt) sets the maximum width of the body column, so full-screen or wide windows no longer leave large empty margins. Uncheck “Limit reading width” to let the text fill the window (a 32 pt side margin is kept). The default cap is now wider (960 pt), and the current width in points is shown next to the slider. Scroll position is preserved while you adjust it.
- Ragged code paragraphs — a paragraph that is mostly inline code (e.g.
a.b.c.method(...)with no spaces to stretch) now renders flush-left instead of justified, avoiding the large gaps that would otherwise open up inside identifiers. The density threshold is adjustable under Preferences ▸ Presets ▸ Layout, and it only affects justified text.
Changed
- Better line breaking around inline code and long unbreakable tokens — fewer overly loose lines in code-dense prose.
- Renamed the Preferences “Profiles” tab to “Presets” to better match a reading app (the on-disk profile format is unchanged).
- The layout debug overlay (⌘⇧D) now labels each block in the left gutter with its index and kind, making it easier to read the geometry.
Fixed
- Invalid reading-width values in
settings.toml(non-finite numbers) now fall back to the default instead of breaking layout. - The debug overlay’s left gutter no longer grows the window past the screen edge on very wide documents.
v0.1.3 June 30, 2026
Changed
- The download disk image now opens with a one-step drag-to-Applications layout — Telari on the left, an Applications shortcut on the right. The app itself is unchanged from 0.1.2; this release only improves the installer.
v0.1.2 June 29, 2026
Added
- In-app Send Feedback menu item (app menu) — opens a pre-filled email to support@telari.app with the app and macOS version.
- Privacy Policy and License Agreement menu items linking to telari.app.
- Anonymous usage statistics, on by default — sends a random ID plus the app and macOS version at most once a day (no personal data, no document content). Turn it off in Preferences ▸ Privacy.
- Hanging punctuation toggle (Preferences ▸ Layout) for CJK text.
- CJK↔Latin space justification — boundary spaces are absorbed, code spaces stay rigid, and inter-character spacing is distributed evenly (均等割付).
Fixed
- Launch crash that affected 0.1.0 on every Mac — the app aborted before any
window appeared because its bundled fonts and strings could not be found in a
packaged build. Resources now resolve from
Contents/Resources. - Reading position is kept exactly across tab switches, hot-reload, and the grow-window overlay toggle (no more jumping back to the top).
- CJK ideographs keep their natural 1em advance with per-script font families pinned, fixing inflated ideograph spacing.
- Adjacent CJK closing punctuation marks are set solid per clreq/JLREQ.
v0.1.0 June 28, 2026
First public testing build.
Added
- Knuth–Plass justified typesetting for CJK + Latin, TEX-faithful line breaking.
- Self-built OpenType MATH engine (
$…$inline /$$…$$display) rendered with Latin Modern Math. - Markdown reading: headings, paragraphs, lists, tables (scale-to-fit), images, links, footnotes, code spans/blocks.
- Selection, copy, and find across the document (resize-stable).
- PDF and PNG export with real (selectable) glyphs.
- Punctuation display strategies (faithful / spacing / fold) for CJK text.
- Preferences: justification presets, layout/style profiles, interface language (English / 简体 / 繁體 / 日本語 / 한국어).
- Self-update via Sparkle (direct-download builds).