Tp-Note, a Tera-template based note tool with filename synchronization

Abstract: Tp-Note helps you to quickly get started writing notes with its
powerful template system. As tp-note takes care that the note’s filename
is always synchronized with its document title, you will find back your
notes easily.

I am a great fan of markup-languages. I started in my youth with LaTex, later
I discovered Asciidoc and ReStructuredText. Some years ago Markdown
improved so much, that it became my favorite markup-language. I have currently
settled on Pandoc for producing renditions for all kind of purposes. The best
is, that I can write everything in a text editor with vi-key-bindings!
Especially for fast note-taking, markup-languages are particularly well suited.
In my early computer days, I still took notes in regular text files, but soon
raised the need for better order into this: over the years my experience
established some best practise conventions about how filenames, and front matter
of notes should look like. It suggested itself to use some template system in
order to create notes quickly. About 20 years ago, I developed a first
Bash-script to create note-templates. Templates are most useful, when
they can be filled out automatically.

Over the years 3 templates proved to be beneficial:

  1. A template that is filled with information about the location of the note in
    the filesystem. For example: when you place a note in a folder named "German
    past tense", then there is a big chance that the words "German past tense"
    will appear in a prominent place in your note. Most likely even in the title
    or subtitle.

  2. A template referencing the name of another file: e.g. you want to place a
    note next to a file called "Who Moved my Cheese.pdf". The note should have
    a similar filename to the .pdf-file, in order to find it back later more
    easily. Here again, it is most likely, that your note content will contain
    the string "Who Moved my Cheese".

  3. A template that is filled with clipboard data. For example, you have copied an
    Internet link, and want to create a note with a filename similar to its
    linkname, while the complete URl should appear in content of the note.

What makes it difficult the meet the above requirements, is that on the one hand
the user needs flexibility to adjust the templates to his needs, and on the other
hand the system must be rigorous and well-defined in when it comes to conversion
between the data sources: clipboard, filesystem and the note's front matter,
structure and encoding. The solution should be available for all common
operating systems, to allow data exchange. And last but not least, it should be
text-editor and markup-language agnostic: everybody has some preference about
which text-editor is the best and the same is true about markup languages!

The first version of my template engine, pandoc-note, written in Bash, was
already a step in this direction: it was quite flexible, but hard to use on
Windows and the data conversion mechanisms were not very reliable. Although I
have been working with it for many years, it was time to make another attempt,
when I discovered that a Tera-template library is available for Rust; all
credit to Vincent Prouillet for his work!

Today, I am happy to announce the release of Tp-Note, a fast note taking tool
with templates and filename synchronization. The source code is available on
GitHub - getreu/tp-note and some binaries and packages for Linux and Windows
can be found here.

The figure below illustrates the layout of a note created with tp-note.

Installation is simple, you just need to copy one executable. To fully profit
of Tp-note, I recommend reading tp-note's user manual. When you like
Tp-Note, you probably soon want to customize it. How to do so, is explained
in tp-note's manual page.

Tp-Note for iOS is available.

Version Tp-Note 1.2 comes with Windows, Linux, iOS (new) support.

2 Likes

TpNote (fast note talking with templates and filename-synchronization) for MacOs is available - please help with feed-back - help - The Rust Programming Language Forum

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.