Skip to content
Tags give the ability to mark specific points in history as being important
  • v1.22.12
    New feat.: localize new note's front matter / theme selection
    
    * Localize new note's front matter
    
    * Theme selection:
      A theme is an interchangeable set of configuration file variables. Tp-Note is shipped
      with two scheme: `default`, `zettel` (for Zettelkasten, experimental).
    
      The user can select a scheme with:
      * the command line option `--scheme SCHEME_NAME`,
      * environment variable `TPNOTE_SCHEME` or
      * the configuration file variable `arg_default.scheme`.
    
    * The command line option:
      `--force-lang='-'` is replaced with `--force-lang=''`
  • v1.22.11
    Internal improvements: better modelling of "sequential/chronological" sort-tags
    
    This release formalizes the concepts of `sequential sort-tags` vs.
    `chronological sort-tags`:
    
    1. A _sort-tag_ is composed of a number of counters, which can be numerical,
       e.g. `123.28` or combined numerical/letter based, e.g. `123ab`.
    
    2. A counter is set of digits (base 10) `123` or a set of lowercase
       letters (base 26) `ab`.
    
    3. A letter based counter can be maximal 2 letters wide. Its maximum is
       `zz` (cf. `filename.sort_tag.letters_in_succession_max`).
    
    4. A _sequential sort-tag_ is a sort-tag that whose counters are at most 3
       digits wide (cf. `sort_tag.sequential.digits_in_succession_max`).
    
    5. The filter `incr_sort_tag` increments only sequential sort-tags.
    
    6. In order not to confuse sequential and chronological sort-tags, it is
       recommended to always write out the year in chronological sort-tags with 4
       digits, e.g. `2013-08-10` or `20130810`.
  • v1.22.10
    Tmpl: relax sort-tag chars; increment sequential sort-tags;
    
    New features:
    
    1. Default change in `filename.sort_tag_chars`: sort-tags may now include
       lowercase letters. The space and tab characters are depreciated.
    2. Tp-Note searches for the latest created document, extracts the sort-tag from
       the finding, increments it and uses the result as sort-tag for the new file.
       Incrementation examples: `02-3` -> `02-4` or `1b01f` -> `1b01g`.
       Chronological sort-tags like `20231024` are never incremented.
    3. The viewer now understands so-called _format strings_ that can be appended
       to local links, e.g. the link `<tpnote:1a3?-->` expands to
       `<a href="1a3-my doc.md">my doc</a>` in case a file `1a3-my doc.md` exists in
       the current directory.
    
    Breaking changes:
    
    1. In previous Tp-Note versions, the default set for allowed characters in
       sort-tags included the space and tab characters. From this version on, these
       characters are not allowed in valid sort-tags anymore. If needed, you can
       re-add them to the configuration file variable `filename.sort_tag_chars`.
  • v1.22.9
    Minor improvements in Markdown parsing
    
    The version now recognizes all the official Markdown escape `\`
    characters when searching for Hyperlinks or rendering `.txtnote` files.
    
    See
    [CommonMark Spec](https://spec.commonmark.org/0.30/#backslash-escapes)
    for more details.
  • v1.22.8
    Viewer renderer: resolve shorthand links to their link text
    
    * Viewer: When viewing documents, shortcut links are resolved to their title.
      For example: a shorthand link `tpnote:docs/20230513` that targets the file
      `docs/20230513-Animals.md` is shown as a hyperlink with the link text
      "Animals" in the browser.
    
    * Viewer: hyperlinks with embedded images are now supported.
    
    * The `.txtnote` renderer now parses inline images and hyperlinks with inline
      images.
  • v1.22.7
    Viewer: link to other docs with shorthand links, minor regr. fixes
    
    New features:
    
    * A shorthand link in a Tp-Note document e.g. `[text](tpnote:123)` is now
      expanded when being viewed. The renderer searches for a file starting
      with the sort-tag `123` on disk and displays the filename (without sort-tag).
      For example: a shorthand link to the file `123-My Animals.md` can be
      written as`<tpnote:123>` and the link will be displayed as `My Animals`.
    * HTML rendition: The erroneous link path is now shown next to the error
      message.
    
    (Minor) bug fixes:
    
    * `file_ext: ''` is allowed again (regression introduced in v1.22.0)
    * The viewer opens also (with an error message) in case of syntax errors
      in `file_ext:` or `sort_tag:`. These syntax errors had been mistakenly
      considered being fatal since v1.22.0.
    
    Internal improvements:
    
    * The link rewriting code is heavily refactored, simplified and easier to
      maintain.
  • v1.22.6
    New shortcut notation to link Tp-Note documents
    
    * Links in Tp-Note documents: Add new optional scheme `tpnote:` for local links,
      e.g. in Markdown the autolink `<tpnote:dir/my%20other%20doc.md>` targets
      `dir/my other doc.md`. The link is displayed as `my other doc`.
    * Configuration: the variable `filename.extensions` groups all former
      `filename.extensions_*` variables (config breaking change).
    * Viewer: internal improvements handling HTML escape codes and percent codes
      in URLs.
    * Integration: register additional Tp-Note files extension: `.txtnote`. The
      viewer only links, no markup.
    * Template: new filter: `link_text_picky`, similar to `link_text`. The latter
      always return the fist link found, `link_text_picky` rejects obvious
      meaningless link text content.
  • v1.22.5
    Improve `.txtnote` renderer: recognize Markdown autolink
    
    `.txtnote` renderer: Recognize Markdown autolinks, e.g. <https:getreu.net> or <foo@mydomain.com>
    
    Breaking configuration change:
    
    * Rename `tmpl_html.linux.*` variables to `tmpl_html.unix.*`
  • v1.22.4
    Add compilation target `freebsd`, fixes #17
  • v1.22.3
    Maintenance release: refactor and simplify HTML tmpl. code
    
    Breaking change in HTML templates:
    
    * Rename template variables `{{note_*}}` to `{{ doc_* }}`
    * New `markup_to_html(extension=ext)` filter
    * Replace template variable `doc_erroneous_content_html|safe` with
      `doc_text|markup_to_html|safe`
  • v1.22.2
    Viewer: choose syntax highlighting theme
    
    This release come with 3 new configuration features:
    
    1. Choose the syntax highlighting theme with the configuration file variables:
       `tmpl_html.viewer_highlighting_theme` and
       `tmpl_html.exporter_highlighting_theme`.
    
    2. Breaking change: The HTML templates `tmpl_html.viewer`,
       `tmpl_html.viewer_error` and `tmpl_html.exporter` automatically escape
       HTML critical characters. Escaping can be disabled be adding the
       `safe` filter in last position.
    
    3. Tp-Note's configuration file is now stored with inline documentation.
  • v1.22.1
    de437227 · Prepare `tpnote` v1.22.1 ·
    Maintenance release, no new features
    
    Configuration breaking change:
    
    * Split the `field(...)` filter into `remove(key=...)` and
      `insert(key=..., value=...)` filters with more common names.
  • v1.22.0
    Support also nested YAML types (map, array) in document header
    
    Before this release, all header variables were limited to flat string types.
    This release overcomes this limitation: all templates and the document viewer
    can now deal with all YAML types, e.g. String, Number, Bool, including the
    nested ones: Array, Object. For example, the following is now valid:
    
    ```yaml
    title:     My Article
    author:
      first:   John Doe
      second:  Martin Foo
    date:
    - 2023-04-13
    - 2023-04-22
    ```
    
    Further improvements:
    
    * The templates only emits double quotes, were required be YAML standards.
    
    * Configurable type checks occur before applying filename templates (see
      `tmpl.filter_assert_preconditions` in `tpnote-lib/src/config_default.toml`).
    
    * Stronger (configurable) type checks for `title:`, `subtitle:`,
      `lang:`, `sort_tag:` and `file_ext:` header variables with user prompts
    
    * The configuration defaults are now written and documented in TOML format:
      * `tpnote/src/config_default.toml`
      * `tpnote-lib/src/config_default.toml`
  • v1.21.16
    Maintenance release: move crate `tp-note` to `tpnote`. No code change.
  • v1.21.15
    Fix filename related edge cases
    
    This release fixes some filename related edge cases:
    
    * Prepend `filename.sort_tag_extra_separator` in case the note's title
      field is empty.
    * Append `filename.copy_counter_extra_separator` in case the file stem
      resembles a copy counter.
  • v1.21.14
    Fix a minor regression when the title contains only sort-tag characters
    
    This release fixes a minor regression introduced with Tp-Note v1.21.10: Note
    files, created with title fields containing only sort tag characters, need an
    `extra_separator` between in the sort-tag and the title in their filename.
    Failing this rule caused cyclic filename change when synchronizing the note's
    metadata and the filename. Now, an extra-separator is correctly inserted
    as before.
  • v1.21.13
    Fix minor regression: ref docs by sort-tag only
    
    A minor regression introduced with Tp-Note v1.21.11
    prevented the viewer from following links to other Tp-Note
    documents by indicating the sort-tag only. This commit
    restores the previous behavior.
  • v1.21.12
    Maintenance release: remove helper fn from public API
  • v1.21.11
    Fix for minor regression introduced with v1.21.10
    
    The incomplete refactoring of filename related code in v1.21.10 led to
    some buggy behavior in some edge cases.
  • v1.21.10
    Improve the sort-tag detection algorithm
    
    This release adds the optional configuration file variable
    `filename.sort_tag_separator="-"` which specifies how the sort tag is separated
    from the rest of the filename without being part of the former. As a result, the
    additional `filename.sort_tag_extra_separator="''"` is required less often.