Andy Kopra cacff229a1 feat(argtype): :alone - the value of an option written without one
An optional argument has three values: the default (the name is absent),
the argument type's :alone value (the name is written alone), and a
written value.

:alone is declared by the argument type only, never by a klammer's
parameter declaration -- a default is what one klammer means by silence,
but a bare option name must read the same way in every klammer.  The bool
type declares :alone true, which is the whole of the convention that a
bare boolean option means true; there is no boolean special case in the
engine.  A type whose pattern matches running text cannot declare :alone,
since an option's value runs to the next bar or option name and would
swallow the following text.

kdesc and `ktext -m` now show [default: X] and [alone: Y] per argument
type.

In the Standard Klammer Set: @code :number becomes a bool (it was an
untyped string tested only for truthiness, so a bare :number was a
no-op); decimal_mark declares :alone comma; table_hline and table_vline
declare :alone all.  The 35 bools that default false gained the bare form
for free.

Tests: tst/alone_test.sh (21 cases) joins the shipped suite.

(from dev 6024f49c2859)
2026-07-28 22:24:32 +02:00

Klammertext

Klammertext is a markup language that produces multiple output formats — HTML, LaTeX/PDF, and plain text — from a single source description. Its core engine, the Klammermachine, is written in C++; the Standard Klammer Set (SKS) adds a default library of formatting and document-structuring operators on top.

Installing

Installation guides are in doc/install/:

  • Linux, from source — doc/install/linux_source_install.md
  • macOS, from source — doc/install/macos_source_install.md
  • Linux, container — doc/install/linux_container_install.md
  • macOS, container — doc/install/macos_container_install.md

Building from source

With a C++20 compiler and KLAMMERTEXT_HOME set to this directory:

make -C com

This builds the Klammermachine library (into lib/), the SKS components, and the three commands — ktext, kdesc, kdiag (into bin/). See the source-install guide for prerequisites (TeX Live for PDF output, Python, and so on).

Editor support

Editing support for Emacs, Sublime Text, Vim, and Visual Studio Code — syntax highlighting, delimiter matching, structural reindentation, table alignment, diagnostics — is in doc/edit/, together with the shared implementation and the Klammertext language server they build on.

Provenance

This repository is a curated snapshot of Klammertext's private development tree, assembled by a manifest-driven script. Its history is a series of release snapshots, not a mirror of the development history, and files here are regenerated on each release — patches cannot be merged directly. Report problems (or send patches) to the author; accepted changes are applied to the development tree and appear in a following snapshot.

This snapshot was assembled from development commit 6024f49c2859.

License

See LICENSE.md.

Description
No description provided
Readme 5.1 MiB
Languages
C++ 52%
Python 21%
Shell 14.5%
JavaScript 5.5%
CSS 2.9%
Other 4%