HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
davejarvis
keenwrite
HISTORICAL RECORD2020–2023
davejarvis / keenwrite · Not publicly available

keenwrite

Discover this repository through its Hacker News conversations.

4Distinct people
78Mentions
0Explicit recommenders
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A public description has not been verified.

Where it is used

The source check is incomplete. Verified examples will appear here.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 7:24:48 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year78 dated mentions

Observed mentions: 2020-09-20 00:20:50 UTC to 2023-08-17 04:21:56 UTC.

01020302020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 18 mentions; 2 submissions, 16 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 30 mentions; 3 submissions, 27 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 24 mentions; 3 submissions, 21 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC615
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC18216
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC30327
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC24321

What Hacker News says

6 sources
> please don’t use <script type="math/tex">…</script> for equations KeenWrite[0], my desktop text editor, has an Export HTML using TeX/SVG feature that encodes math glyphs as vector paths, embedding the SVG into the resulting HTML file. On the subject of optimizations, KeenWrite can render 1,000 simple TeX formulas to SVG format in about 500 milliseconds (on my desktop machine), sufficient for real-time previews. Two libraries needed changes to accomplish this feat. First, JFreeSVG and Apache Batik both suffer from the same performance problem: they use Java's NumberFormat to convert floating point numbers to strings. It's slow because of internationalization rules, which aren't necessary for a machine-readable format. The fix entailed replacing NumberFormat with the Ryū algorithm[1]. Second, JMathTeX[2] was parsing TeX by throwing except
Read the rest
ions for flow control. In Java, throwing an exception forces the virtual machine to fill out a stack trace. Normally this wouldn't result in abysmal performance, but the flow control was being executed for each character in every macro name encountered. Pre-parsing macro names without any flow control resolved the issue. Further optimizations were made, but those two were the lion's share. Combined, the total time went from 1 TeX formula to SVG format in ~5 seconds to 1,000 in ~.5 seconds. [0]: https://github.com/DaveJarvis/keenwrite [1]: https://github.com/DaveJarvis/JMathTeX [2]: http://jmathtex.sourceforge.net
In 14,000x Speedup (2015)
> If you have the option to consider server-side equation rendering, your users may thank you. I'm developing KeenWrite[0], a desktop-based text editor that provides real-time rendering of TeX. It has two TeX-related HTML export formats: SVG (no rendering for either client or server) or TeX (requires client-side rendering). Behind the scenes it uses a highly-optimized version of JMathTeX[1] that includes a custom renderer to handle translating math font glyphs into SVG paths. [0]: https://github.com/DaveJarvis/keenwrite [1]: https://github.com/DaveJarvis/JMathTeX
In MathJax
> I think the primary problem is that the indentation is significant. An editor problem, perhaps? We don't maintain office documents using vim; why edit structured configuration files using a plain text editor, if doing so is arduous? My text editor[0] abstracts the underlying hierarchical data format behind a tree-based widget[1]. Whether YAML, JSONNET, NestedText, CSON, XML, or TOML backs the widget becomes an implementation detail. [0]: https://github.com/DaveJarvis/keenwrite [1]: https://dave.autonoma.ca/blog/2019/07/06/typesetting-markdow...
In NestedText, a nice alternative to JSON, YAML, TOML
There's a bit of code duplication[0] that often emerges as a result of parsing command-line arguments in shell scripts. The duplication can be eliminated by defining[1] the set of arguments to pass into a reusable template script[2]. [0]: https://dave.autonoma.ca/blog/2019/06/16/typesetting-markdow... [1]: https://github.com/DaveJarvis/keenwrite/blob/master/installe... [2]: https://github.com/DaveJarvis/keenwrite/blob/master/build-te...
In Bash code generator for command-line arguments
KeenWrite[0] is my desktop text editor that supports interpolated strings, R statements, and simple TeX expressions[1], all in real-time. The screenshot below shows a -π approximation found by tweaking inputs to the quadratic equation. An older video[2] shows some non-math scenarios. Would appreciate reading your thoughts on integrated interpolated strings. [0]: https://github.com/DaveJarvis/keenwrite [1]: https://i.ibb.co/MSxVyHM/keenwrite-hn.png [2]: https://www.youtube.com/watch?v=u_dFd6UhdV8
In KeenWrite: A Text Editor

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.