Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git
# Introduction

{{app.title}} is a free desktop editor that transforms Markdown documents into
beautifully typeset PDF files. Whether you're crafting technical documentation,
reports, academic papers, or creative content, {{app.title}} combines the
simplicity and readability of Markdown with high-quality publishing
capabilities.

## Rethink

The core philosophy behind {{app.title}} may require shifting how you think
about writing documents. Unlike traditional word processors that mix content
and styling, {{app.title}} aims to completely separate what is written from how
it appears. You write in plain text and instruct the computer to typset the
document into print-ready PDF files. This approach allows for:

* **Rebranding** -- Corporations can redesign documents in weeks, not years
* **Consistency** -- Ensure uniform, high-quality output across documents
* **Future-proof** -- Plain-text files will be readable long after proprietary formats go obsolete
* **Version control** -- Plain text works seamlessly with version control systems
* **Reproducibility** -- Generate the same output using different systems
* **Focus** -- Write without distraction from formatting concerns

## Reflow

Learning how {{app.title}} converts plain text into PDF can help understand its
usage.

The original intent of Markdown was to simplify writing web pages. As such,
there are numerous tools to convert Markdown to HTML. {{app.title}} goes one
step further and converts Markdown to XHTML, which is a *well-formed* version
of HTML and also a type of XML. The typesetting system can transform XML
documents, and therefore XHTML documents, into typesetting instructions. Those
instructions add styling (colours, fonts, layout, etc.) to the final output
document.

In a nutshell: **Markdown → XHTML → TeX → PDF**

This chain allows separating content (the Markdown source) from presentation
(a TeX typesetting system), allowing the two to vary independently.
Incidentally, it also allows publishing the same content to the web, styled
using cascading stylesheets.

## Features

{{app.title}} has numerous tools to assist with document creation.

### Writing and editing

Built-in features to help write and edit documents include:

* **User-defined variables** for consistency, with autocomplete
* **Spell checking** to catch typos as you type
* **Document outline** for easy navigation in long documents
* **File manager** to view related files within the editor
* **Word count** and document statistics

### Export formats

{{app.title}} provides multiple export formats from Markdown:

* **PDF files** typeset using the ConTeXt typesetting system
* **XHTML files** for publishing to the web
* **Markdown** with variables interpolated and substituted

### Advanced capabilities

Beyond basic document creation, {{app.title}} includes:

* **Data visualization** through R integration
* **Diagram generation** supporting PlantUML, Mermaid, and other text formats
* **Variable interpolation** enables a single source of truth for content
* **Internationalization** with font handling for multiple languages
* **Mathematical** equations and formulas rendered beautifully

### User interface

The user interface has:

* **Dark mode** and other skin customizations
* **Multi-document editing** with detachable tabs
* **Live preview** showing formatted output as you write
* **Distraction-free** settings when you need to focus

## Target users

{{app.title}} is designed for anyone who needs to produce high-quality
documents while maintaining control over content and presentation:

* **Technical writers** creating documentation, user manuals, and specifications
* **Researchers and academics** writing papers with mathematical content
* **Authors** producing books and long-form content

## Quick start

The easiest way to begin using {{app.title}}:

1. **Download** the application from [keenwrite.com](https://keenwrite.com).
1. **Run** the application (no installation necessary).
1. **Create** your first document by clicking **File → New**.
1. **Start writing** in Markdown format.
1. **Preview** your work in the preview tab.
1. **Export** to PDF when ready.

To generate PDF files, you'll also need:

* The theme pack to apply a look and feel
* ConTeXt typesetting system (can be installed automatically)

If you have opted to download the Java version of {{app.title}}, see
[@sec:java-runtime-environment] for installation instructions.

## Document structure

This manual is organized to support both newcomers and experienced users
seeking specific information. You can read the manual sequentially to build
expertise gradually, or jump to specific chapters as needed.

## Getting help

When you need assistance or encounter challenges, multiple resources are
available to help. If you encounter issues or need assistance:

* Check the **Troubleshooting** chapter for common problems and solutions
* Visit the **Screenshots** chapter to see the interface in action
* Consult the **Command-line reference** for automation tasks
* Review the **Architecture** chapter if you're interested in extending {{app.title}}

The remaining chapters will guide you through installation, basic usage, and
gradually introduce advanced features.