Crate tpnote_lib

source ·
Expand description

The tpnote-lib library is designed to embed Tp-Note’s core function in common text editors and text editor plugins. It is dealing with templates and input files and is also part of the command line application Tp-Note. This library also provides a default configuration in the static variable LIB_CFG that can be customized at runtime. The defaults for the variables grouped in LIB_CFG, are defined as constants in the module config (see Rustdoc). While LIB_CFG is sourced only once at the start of Tp-Note, the SETTINGS may be sourced more often. The latter contains configuration data originating form environment variables.

Tp-Note’s high-level API, c.f. module workflow, abstracts most implementation details. Roughly speaking, the input path correspond to Tp-Note’s first positional command line parameter and the output path is the same that is printed to stdout after usage. The main consumer of tpnote-lib’s high-level API is the module workflow in the tp-note crate.

Modules§

  • Set configuration defaults, reads and writes Tp-Note’s configuration file and exposes the configuration as the static variable LIB_CFG behind a mutex. This makes it possible to modify all configuration defaults (and templates) at runtime.
  • Self referencing data structures to store the note’s content as a raw string.
  • Extends the built-in Tera filters.
  • Custom error types.
  • Helper functions dealing with filenames.
  • Syntax highlighting for (inline) source code blocks in Markdown input.
  • Helper functions dealing with HTML conversion.
  • Helper functions dealing with markup languages.
  • Configuration data that origins from environment variables. Unlike the configuration data in LIB_CFG which is sourced only once when Tp-Note is launched, the SETTINGS object may be sourced more often in order to follow changes in the related environment variables.
  • Abstractions for content templates and filename templates.
  • Tp-Note’s high level API.

Macros§