aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 8abe3c0475bf10a2c5b5472b55d62b57099538f0 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
Table of Contents
_________________

1. Stitch - Note Managing for Unorganized Minimalists
.. 1. FEATURES
.. 2. SCREENSHOTS
.. 3. CREDIT
.. 4. USAGE
.. 5. INSTALLATION
.. 6. DEVELOPMENT & BUILDING
.. 7. ROADMAP
2. COMMUNITY & CONTRIBUTING
3. KNOWN ISSUES
4. AUTHOR


1 Stitch - Note Managing for Unorganized Minimalists
====================================================

        "...Differing from Newton and Schopenhauer, your ancestor did not
        think of time as absolute and uniform. He believed in an infinite
        series of times, in a dizzily growing, ever spreading network of
        diverging, converging and parallel times. This web of time - the
        strands of which approach one another, bifurcate, intersect or ignore
        each other through the centuries - embraces every possibility. We
        do not exist in most of them. In some you exist and not I, while in
        others I do, and you do not, and in yet others both of us exist."
        - Garden of Forking Paths, Borges

  Stitch is a minimal grep-based CLI note-managing system targeting those that
  want to easily capture notes and not spend time organizing them. Capture
  your notes with tags and use stitch to compose the notes together.
  Build your own knowledge base, journal, todo manager and more.

  Stitch aims to be unopinionated; use whatever editor and file format you
  want. The only requirement is that each file contains only one heading.

  While Stitch is a note-manager; it does not come with functionality for
  capturing notes to allow you to set it up in your preferred way. That said,
  the manpages comes with a minimal example to get you started.


1.1 FEATURES
~~~~~~~~~~~~

  - Write your thoughts first; read in multiple different ways later
  - Comes with four views: full, headlines, todo, done
  - Work with any file format: markdown, ruby markup, org etc.
  - Run shell commands on notes using sed, grep etc. with the command mode
  - Write notes in any editor: vim, kakoune... or even ed!
  - Available as a single static binary   
  - No need for any DB, just files
  - Unix-y & fast


1.2 SCREENSHOTS
~~~~~~~~~~~~~~~

  - Notes Overview + Search
    https://blobs.mccd.space/stitch/notes-view.png
  - TODO View
    https://blobs.mccd.space/stitch/todo-view.png 
  - Done View (+ Example of a command)
    https://blobs.mccd.space/stitch/done-view-commands.png 
  - Full-Notes View 
    https://blobs.mccd.space/stitch/full-notes-view.png


1.3 CREDIT
~~~~~~~~~~

  Stitch is based on the note composing system Howm for Emacs.


1.4 USAGE
~~~~~~~~~

  Run `stitch --help' or `man stitch' to get started


1.5 INSTALLATION
~~~~~~~~~~~~~~~~

  You can find all static releases tagged under
  https://git.mccd.space/pub/stitch/refs/
 
  Download the binary, chmod +x the binary and put in PATH.

  Obs, the download link next to the tag is for the snapshot, you will have
  to open the link of the tag to find the download to the binary.

  At minimum, you will need to set the environment variable 
  STITCH_DIRECTORY, which should be an absolute path to where you
  want to store your notes, for stitch to work.


1.6 DEVELOPMENT & BUILDING
~~~~~~~~~~~~~~~~~~~~~~~~~~

  To set up the project for local development, easiest way is to  
  just install Nix, direnv and enable nix flakes. Then to compile:

  dune build

  Optimized build with
  
  dune build --profile release

  And to run

  dune exec -- stitch

  To generate man pages, run

  dune exec -- stitch --help=groff

  You can find the generated binary under 
  _build/default/bin/main.exe. Ignore the .exe, it's not a windows
  binary.

  When the system is built with Nix, it will be dynamically linked.  

  To build a static release, There is a Dockerfile included that 
  compiles it with musl, use it with podman:

  podman pull docker.io/alpine:edge
  podman build . -t stitch:latest
  mkdir release
  podman run -v ./release:/tmp/build/_build:U stitch:latest
  
  Binary will be found in ./release/install/default/bin/stitch and 
  manpages in ./release/install/default/man/man1/stitch.1


1.7 ROADMAP
~~~~~~~~~~~

  - Support sort
  - Support tagging commands
  - Support command piping and hotkeys 
  - Line wrapping
  - Support URL shortening.
  - Better result narrowing


2 COMMUNITY & CONTRIBUTING
==========================

  Patches, discussions, bug reports etc. can be sent to 
  ~marcc/stitch-general@lists.sr.ht.

  Feel free to share your setup, tips, and tricks etc.

  Archives can be found at 
  https://lists.sr.ht/~marcc/stitch-general

  Never used git with email? You can learn how-to here:
  https://git-send-email.io/


3 KNOWN ISSUES
==============

  - ugrep doesn't correctly handle ordering, meaning that if you sort by
    modified date, it doesn't behave correctly. I've waited with
    implementing it until I've resolved that issue

  - File names can not contain :[0-9]:, since it's used to determine
    where the file starts and ends.  One solution is to force one
    uniform file name that we can regexp (and also tweak). I am not sure
    yet what's best.


4 AUTHOR
========

  Marc Coquand (<https://mccd.space>)