summaryrefslogtreecommitdiff
path: root/jt.md
blob: c8beace9eb4f7ea91f628aa1f577ad1884684bc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Introduction

The **jt** software (short for "journalling tool") is a helper for
maintaining a journal or personal knowledge base. It has been written
for the personal use of its authors, but might be useful for others.

The guiding principle for jt is that having longevity for one's data
and complete control over it are crucial. Because of these, the
approach taken by jt is to build a static web site from source files
stored in a version control system. The files will be edited with a
text editor chosen by the journal writer, rather than via a custom
web, desktop, or mobile application. The built journal is then served
with some suitable web server.

The role of jt is to make it easier to create new journal entries (new
Markdown files), and to make all the common tasks of maintaining a
knowledge base have minimal friction.

## Example

The following example creates a new journal, which will be the default
journal for the user, and a new journal entry. The entry is a draft
until it's finished.

~~~sh
$ jt init ~/Journal default "My private journal"
$ jt new --tag meta --tag journalling "My first journal entry"
... # text editor is opened so the new entry can be written
$ jt finish
~~~


# Acceptance criteria and their verification

This chapter defines detailed acceptance criteria and how they're
verified using *scenarios* for the [Subplot][] tool.

[Subplot]: https://subplot.liw.fi/

## Create a new local journal repository

`jt` works on a local repository, and it can be created an initialised
using the tool.

~~~scenario
when I run jt init jrnl default "My test journal"
then program finished successfully
and directory jrnl exists

when I run jt is-journal jrnl
then program finished successfully

when I run jt is-journal bogus
then exit code is non-zero
~~~



---
title: "jt—a journalling tool"
author:
- Lars Wirzenius
- Daniel Silverstone
bindings:
- jt.yaml
- runcmd.yaml
functions:
- jt.py
- runcmd.py
...