# KeenWrite: Edit with variables

**URL:** <https://talk.commonmark.org/t/keenwrite-edit-with-variables/3903>\
**Category:** Application\
**Created:** [July 4, 2021, 5:57pm UTC](https://talk.commonmark.org/t/keenwrite-edit-with-variables/3903 "2021-07-04T17:57:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![DaveJarvis](https://talk.commonmark.org/user_avatar/talk.commonmark.org/davejarvis/32/1870_2.png) [@DaveJarvis](https://talk.commonmark.org/u/DaveJarvis)\
**Post date:** [July 4, 2021, 5:57pm UTC](https://talk.commonmark.org/t/keenwrite-edit-with-variables/3903/1 "2021-07-04T17:57:54Z")

</div>

[KeenWrite](https://github.com/DaveJarvis/keenwrite) is my free and open-source cross-platform desktop text editor that allows users to write pose using variables defined in a separate file. A few highlights:

- Uses [flexmark-java](https://github.com/vsch/flexmark-java/) to render Markdown as HTML.
- Extends flexmark-java to support Pandoc’s `:::` fenced div syntax.
- Supports plain text diagrams via [Kroki](https://kroki.io/).
- Computes statistics (word count, word frequencies).
- Performs real-time spell checking.
- Integrates the R programming language.
- Includes a subset of TeX for math.
- Exports to XHTML with TeX as either SVG or inline markup.
- Exports to PDF using the [ConTeXt](https://www.contextgarden.net) typesetting software and a variety of [starter themes](https://github.com/DaveJarvis/keenwrite-themes/).
- Converts straight quotes to curly quotes using [KeenQuotes](https://github.com/DaveJarvis/keenquotes/), automagically.

See the [screenshots](https://github.com/DaveJarvis/keenwrite/blob/master/docs/screenshots.md) for details and an [outdated video](https://www.youtube.com/watch?v=u_dFd6UhdV8) that shows how variable definitions work.

The editor can replace all the scripts and software described in my [Typesetting Markdown](https://dave.autonoma.ca/blog/) series.

---

<div class="post-metadata">

**Author:** ![DaveJarvis](https://talk.commonmark.org/user_avatar/talk.commonmark.org/davejarvis/32/1870_2.png) [@DaveJarvis](https://talk.commonmark.org/u/DaveJarvis)\
**Post date:** [September 11, 2025, 12:04am UTC](https://talk.commonmark.org/t/keenwrite-edit-with-variables/3903/2 "2025-09-11T00:04:14Z")

</div>

Another release is available. For details, see:

- [Homepage (downloads)](https://keenwrite.com)
- [User manual](https://keenwrite.com/docs/user-manual.pdf)
- [Release notes](https://keenwrite.com/docs/release-notes.html)
