github martinkoutecky/tine v0.3.3
Tine v0.3.3

latest releases: beta, v0.6.987, v0.6.986...
2 months ago

Changed

  • Consecutive same-page query results share one heading. When a query is
    sorted, several results from the same page that land next to each other in the
    order now render under a single page heading, instead of repeating the heading
    once per result. A page whose results fall at different positions in the sort
    (e.g. an A and a C task under a priority sort) still appears at each of those
    positions, and a page's blocks keep their document order under the heading.
  • A block that fails to parse no longer breaks rendering. The parser is now
    guarded per block: if the WebAssembly parser ever traps on some block, Tine rebuilds
    a fresh parser instance and retries; if that block still traps, it's shown as raw
    text with a subtle marker while every other block renders normally — instead of the
    whole view going blank until restart. (Defense-in-depth: lsdoc v0.4.1 has no known
    trapping input; this guards the unknown.)
  • Parser updated to lsdoc v0.4.1. Two threads since v0.3.0: (1) a batch of
    edge-case byte-exactness fixes that bring parsing closer to Logseq's own on
    uncommon constructs — Markdown table-separator rules, LaTeX-environment tails,
    definition lists, front matter, footnote definitions, >>/nested blockquotes,
    Markdown comments, and inline backslash/backtick residue (so a handful of unusual
    blocks now render exactly as Logseq renders them, where before they differed); and
    (2) more O(n²)→O(n) parse-path fixes (raw-HTML tag index, >-quote fallback
    reparse, and the Markdown link-label scan), so pathological blocks parse fast.

Added

  • Sort query results with one click. The visual query builder's Sort
    control now leads with preset buttons — Newest first / Oldest first,
    Priority A→C, Page A→Z, Deadline, Scheduled — so the common orderings
    need no typing (a free-text field remains for sorting by any other property).
    Newest first places results on one timeline: journal pages by the day they
    represent (stable — not the file's modified time), other pages by when the file
    was last modified, so journal-page and ordinary-page todos interleave
    chronologically. These extend Logseq's property-only (sort-by …).
  • Copy/export "Rendered" mode resolves block refs and macros. Copying or
    exporting in Rendered mode now flattens a ((block ref)) to the referenced
    block's text and a user {{macro}} to its expansion, instead of the bare uuid or
    the literal {{…}} — so the copied text matches what you see. Math stays as TeX
    (which is what selecting rendered KaTeX copies anyway).
  • User :macros can expand to real blocks (OG parity). A config.edn macro
    whose template is block-level Markdown — a heading, a list, multiple paragraphs —
    now renders as real nested blocks instead of a flattened inline line. Single-
    paragraph/inline macros still render inline. Unfilled placeholders ($5 with only
    two args) stay literal, and arguments now come straight from the parser, so a
    quoted argument containing a comma is no longer split in two — all matching Logseq.
  • Headings stay heading-sized while you edit them (OG parity). Clicking into a
    single-line #/##/###… heading now keeps the editor text at its heading size
    and weight (the # markers stay visible at the same size), instead of shrinking to
    body size on focus and jumping back on blur. Multi-line heading blocks edit at body
    size (only the heading's own line is enlarged), matching Logseq's uniline rule.
  • Select text, then wrap it (OG parity). With text selected in the editor,
    typing [ twice wraps it as [[selection]] and opens the page search seeded
    with those words — so Enter links it to an existing page or creates it (#18);
    ( twice does the same for a block ref ((selection)). Emphasis marks wrap a
    selection too: */~/=/_ (and the Org markers //+/^), so a second
    press gives **bold**, ~~strike~~, ==highlight==. This is always on and
    independent of the opt-in auto-pairing (which only affects the empty-caret case).

Fixed

  • Clicking a query's collapse arrow toggles it, instead of editing the block.
    The ▸/▾ arrow — and the other query controls (the title, result-page links,
    table headers) — now run their own action on click and no longer fall through
    into raw-text edit mode of the query block.
  • Collapsed query builders no longer flicker. On WebKitGTK, moving the pointer
    off the page and back could flash a varying subset of collapsed {{query}}
    boxes; each now sits on a stable compositing layer, so the compositor reuses its
    texture instead of re-rasterizing it.
  • Deleting today's journal leaves an empty today. Right-clicking today in the
    Journals feed and choosing Delete journal used to blank the top of the feed;
    it now restores the empty, writable today placeholder — the same one you get on
    reopening the journal — so you can start writing again straight away (#17).

Download an installer for your platform below. Windows users who prefer no installer can grab the portable Tine_*_x64-portable.zip — unzip and run the exe (needs the WebView2 runtime, preinstalled on Windows 10/11). macOS/Windows builds are currently unsigned (right-click → Open on macOS; More info → Run anyway on Windows). On macOS, if Tine keeps asking to access your Documents folder on launch, see the workaround.

Don't miss a new tine release

NewReleases is sending notifications on new releases.