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

30 sources
It'll help build cross-platform desktop applications. In theory, it'll streamline using GitHub Actions to produce platform-specific binaries, such as my FOSS Markdown editor KeenWrite[0], without having to have a copy of every target operating system. To my knowledge, cross-compiling "native" Linux and Windows binaries using Java requires duct tape, chewing gum, and warp-packer.[1][2] If there's another way to cross-compile a Java application into a standalone binary for multiple target platforms, do tell! GraalVM isn't a panacea. For example, GraalVM cannot compile Renjin[3], a pure Java R interpreter, which means switching from Renjin to FastR. Not trivial. Other sinkholes likely lurk that'll only reveal themselves when walking through the weeds. [0]: https://github.com/DaveJarvis/keenwrite [1]: https://dave.autonoma.ca/blog/2020/06/29
Read the rest
In OpenJDK Proposes Project Galahad to Merge GraalVM Native Compilation
> Nevertheless, I would prefer a Markdown-based system My free, cross-platform desktop Markdown editor, KeenWrite[1], integrates with the ConTeXt typesetting software[2]. I'm working on a branch to make integration containerized[3] because its installation is painful. KeenWrite limits math to plain TeX[4] so that the output can be rendered using any TeX-based typesetter (ConTeXt, LaTeX, MathJax, εχTEX, etc.). Here's a sample document typeset using ConTeXt (skip to page 40 for the math): https://pdfhost.io/v/4FeAGGasj_SepiSolar_Highlevel_Software_... That document theme is called Solare[8]. > that can use CSS and MathML Adding CSS mixes presentation logic with content, which is something KeenWrite strives to avoid. Instead, KeenWrite implements Pandoc's annotation syntax to keep presentation logic out of the content. I've written about thi
Read the rest
s extensively in my Typesetting Markdown series[5]. You can produce some pretty amazing documents just with annotations, such as the following that I wrote in Markdown and typeset using ConTeXt: https://impacts.to/downloads/lowres/impacts.pdf > has a 100% bibtex clone for references. Markdown fails at references. At some point, I'd like to implement cross-references in KeenWrite. Except there's at least six competing standards for the syntax, which I've also remarked upon[6], making the choice of syntax difficult[7]. > setting up such a pipeline is still too complicated for many FWIW, my Typesetting Markdown series, which explains how to set up a typesetting pipeline using Pandoc, is one of the reasons I developed KeenWrite: to replace that entire pipeline (R, Markdown, externalized variable interpolation, math, and typesetting) with a single tool. [1]: https://github.com/DaveJarvis/keenwrite [2]: https://wiki.contextgarden.net/Installation [3]: https://github.com/DaveJarvis/keenwrite/blob/1_typeset_using... [4]: https://github.com/DaveJarvis/keenwrite/blob/main/docs/scree... [5]: https://dave.autonoma.ca/blog/2020/04/28/typesetting-markdow... [6]: https://talk.commonmark.org/t/cross-references-and-citations... [7]: https://xkcd.com/927/ [8]: https://github.com/DaveJarvis/keenwrite-themes/tree/main/sol...
In Converting my PhD thesis into HTML (2021)
CSV is also great for importing external data into documents. My text editor, KeenWrite[0], includes an R engine and a CSV-to-Markdown function[1]. This means you can write the following in a plain text R Markdown document: `r#csv2md('filanme.csv')` The editor will convert Markdown to XHTML in the preview panel (in real time), then ConTeXt can typeset the XHTML into a PDF file in various styles.[2][3] This avoids spending time fighting with table formatting/consistency in certain word processors while storing the data in a machine-friendly format. (Thereby upholding the DRY principle because the data can have a single source of truth, as opposed to copying data into documents, which could go stale/diverge.) Using JSON would be possible, but it's not as easy to convert into a Markdown table. [0]: https://github.com/DaveJarvis/keenwrit
Read the rest
In Consider Using CSV
My desktop text editor, KeenWrite[0], uses EchoSVG[1], which fixes numerous issues with Apache Batik[2]. KeenWrite takes SVG rasterization a little further by also making a text-to-diagram layer available. That is, text is transformed via Kroki[3] to SVG, then rasterized using EchoSVG. (Along the way, variables are interpolated and inserted, shown in the first screenshot.) [0]: https://github.com/DaveJarvis/keenwrite/blob/main/docs/scree... [1]: https://github.com/css4j/echosvg/ [2]: https://xmlgraphics.apache.org/batik/ [3]: https://kroki.io/
In Inkscape 1.2.2
KeenWrite is my free, cross-platform, open-source text editor that supports plain TeX[0]. The editor converts Markdown into XHTML that's then fed into ConTeXt for later typesetting. Take a look at section 9.9.1 of my high-level design document[1] to see some sample output. I primarily developed KeenWrite to put interpolated variables at my fingertips[2]. [0]: https://github.com/DaveJarvis/keenwrite/blob/master/docs/scr... [1]: https://pdfhost.io/v/4FeAGGasj_SepiSolar_Highlevel_Software_... [2]: https://github.com/DaveJarvis/keenwrite/blob/master/docs/var...
In How to easily type scientific notes with TeXmacs [video]
> These look great! Were these generated with KeenWrite? Thank you! My sci-fi story, autónoma, is the reason I started to work on KeenWrite, and can be fully generated from within the app. The others could be edited in KeenWrite, but there'd probably need to be some work done to get the HTML/CSS preview panel to display the various annotated sections correctly. Speech bubbles (::: bubbletx and ::: bubblerx), for example, currently work in KeenWrite, but the spectrographic lines in the Impacts Project would need to have special CSS written to render correctly in the preview. > The challange is when a document will have multi, non-technical, owners. Invariably the "solution" is to open the PDF in Word. Teaching people to separate content from presentation takes a lot of effort. That's also a process problem. You could ask people to provide
Read the rest
feedback by adding notes into the PDF, rather than editing it directly. At some point it'd be nice to see real-time collaboration added to KeenWrite, which would go a little ways to helping solve multiple users editing a single document: https://github.com/DaveJarvis/keenwrite/issues/120
In Markdown, Asciidoc, or reStructuredText – a tale of docs-as-code
> Most folks mention that Markdown is not suitable for serious documentation projects. PDFs I've written in Markdown and typeset using ConTeXt: * https://pdfhost.io/v/4FeAGGasj_SepiSolar_Highlevel_Software_... * https://pdfhost.io/v/mhw8jCJzw_autnoma * https://dave.autonoma.ca/blog/2020/04/28/typesetting-markdow... * https://impacts.to/downloads/lowres/impacts.pdf I think Markdown can be used in serious documentation projects. I am biased, given that I've been working on my free and open source, cross-platform Markdown editor for several years: https://github.com/DaveJarvis/keenwrite/blob/master/docs/scr...
In Markdown, Asciidoc, or reStructuredText – a tale of docs-as-code
KeenWrite[0] is my free, open-source plain text Markdown editor that exports to XHTML. That XHTML is passed into ConTeXt (typesetting software) to produce beautifully typeset PDFs. On the way from Markdown to XHTML, KeenWrite passes the XHTML through KeenQuotes[1], my straight quote curling library, to encode quotation marks as HTML entities. This means ' becomes lsquo, rsquo, or apos, depending on the context (pun intended, sorry). Those HTML entities are then curled correctly when any theme[2] is applied. What bytes is not having a separate glyph for a curled apostrophe because it makes detection of British (or nested) quotations a difficult chore for natural language processors. To get a curled apostrophe, word processors inject the semantically incorrect right-curled single quote, which ought to be reserved for a closing quotation mar
Read the rest
In HN mining or: How I learned that there are some among us with soft quotes
Curling smart quotes correctly is a deceptively hard problem. I implemented a basic natural language parser that does a decent job. However, straight quotes are ambiguous. Compounding the problem is that curled apostrophes and right single quotes are indistinguishable, which is an oversight in Unicode, IMO, because they are semantically different. Here's my swat at the puzzle: https://whitemagicsoftware.com/keenquotes/ When exporting Markdown documents to HTML or PDF, my text editor uses KeenQuotes to curl straight quotes to their most likely candidate: https://github.com/DaveJarvis/keenwrite#download
In What can’t the internet handle in 2022? Apostrophes
Another item missing from Markdown is a standard syntax for cross-references and citations: https://talk.commonmark.org/t/cross-references-and-citations... Is the tweeted list a little outdated now? > no id's in headers A natural ID is derived by changing the header to lowercase and replacing spaces with hyphens, such as: https://github.com/DaveJarvis/keenwrite/blob/master/docs/scr... > no syntax for adding classes Pandoc introduced ::: annotation blocks that produce div tags with classes. I discuss this length: https://dave.autonoma.ca/blog/2020/04/28/typesetting-markdow... My editor, KeenWrite[0], also supports annotation syntax: https://user-images.githubusercontent.com/2131950/161400266-... > any number will do in ordered lists Isn't that either a presentation issue or a feature? I prefer numbering lists with a sequence of 1., 1., 1.,
Read the rest
1., to let the computer automatically increment the number. Makes adding/removing items easier. Being able to arbitrarily change the numbering seems weird, though potentially useful. > code blocks (4 spaces) over code fences (```) Not sure why this is a design mistake. When reading technical documentation, indented stands out more. IMO, it improves readability for short snippets (where syntax highlighting doesn't matter). > can't nest Markdown in HTML in Markdown Depends on the Markdown flavour, doesn't it? [0]: https://github.com/DaveJarvis/keenwrite#download
In My Contribution to Markdown
> Replacing TeX is pretty easy since it is a fairly small language. Conceptually, easy. In practice, it can go sideways. Take JMathTeX, for instance: http://jmathtex.sourceforge.net/ The code had (has?) a particularly nasty bottleneck. An exception is thrown while parsing for every single character in a macro name until the macro name resolves to a known TeX command. In Java, throwing an exception requires filling out a complete stack trace. I forked the project to fix that issue and then optimized the font glyph to SVG path conversion algorithm. The TeX library went from non-real-time rendering of a few formulas to real-time rendering of 1,000 formulas. https://github.com/DaveJarvis/JMathTeX Here's a screenshot showing the JMathTeX fork integrated into my text editor, KeenWrite: https://github.com/DaveJarvis/keenwrite/blob/master/docs/sc
Read the rest
r... See also the build instructions for Knuth's original TeX: https://tex.stackexchange.com/a/576314/2148
In Implementing a “mini-LaTeX” in ~2000 lines of code
My desktop text editor, KeenWrite[0], allows referencing variables within the main document text and figures. KeenWrite uses Kroki[1] to provide a wealth of diagram formats. In the screenshots[2], a Graphviz-based family tree is shown that uses character names sourced from an external YAML file. Those same variables can be used when writing prose. Change the variable in a single location and the family tree is updated and rendered immediately. You can't do that with Google Docs, Lucid Chart, Word, OpenOffice, Scrivener, etc. [0]: https://github.com/DaveJarvis/keenwrite [1]: https://kroki.io/ [2]: https://github.com/DaveJarvis/keenwrite/blob/master/docs/scr...
In Show HN: Typograms, Markdown-like renderer for ASCII diagrams
> That is not a trivial shell script or toolchain for me, and certainly is too much for someone looking for a Word replacement. Absolutely. I developed KeenWrite[0], a free and open source desktop editor, to replace those shell scripts with a graphical user interface and command-line interface[1]. There are several starter themes you can use, as well.[2] [0]: https://github.com/DaveJarvis/keenwrite [1]: https://github.com/DaveJarvis/keenwrite/blob/master/docs/cmd... [2]: https://github.com/DaveJarvis/keenwrite-themes/
In Will word processors start a home working revolution? (1979) [video]

Showing the 15 most recent of 30 sources. Enable JavaScript to search and browse every indexed mention.

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.