2022-08-11 17:29:00 +00:00
|
|
|
In progress. Manage a directory tree containing plain-text notes (with [some
|
|
|
|
line drawings](http://akkartik.name/lines.html)). Notes/files can have
|
2022-08-11 18:39:50 +00:00
|
|
|
[cross-links](https://merveilles.town/@akkartik/108766067153506592) (not
|
|
|
|
hyperlinks, but that's planned) with other notes, which are saved outside the
|
|
|
|
plain-text in a corresponding .json file.
|
2022-06-07 01:33:44 +00:00
|
|
|
|
2022-08-12 05:42:27 +00:00
|
|
|
pensieve.love is a compatible fork of [lines.love](http://akkartik.name/lines.html),
|
|
|
|
an editor for plain text where you can also seamlessly insert line drawings.
|
|
|
|
Designed above all to be easy to modify and give you early warning if your
|
|
|
|
modifications break something.
|
|
|
|
|
2022-08-11 16:38:31 +00:00
|
|
|
## Requirements
|
2022-06-07 01:33:44 +00:00
|
|
|
|
2022-08-11 16:38:31 +00:00
|
|
|
LÖVE. Get it from https://love2d.org (5MB)
|
2022-06-07 01:33:44 +00:00
|
|
|
|
2022-08-11 16:38:31 +00:00
|
|
|
## Invocation, and where your notes will live
|
2022-08-11 16:33:05 +00:00
|
|
|
|
|
|
|
To try out pensieve.love with some sample data, run the following command from
|
|
|
|
this repo's top-level directory:
|
|
|
|
|
|
|
|
```
|
|
|
|
love . sample
|
|
|
|
```
|
|
|
|
|
2022-08-11 16:38:31 +00:00
|
|
|
This will read the notes from the `data.sample/` directory in this repo to
|
|
|
|
give you a flavor for what the app is like.
|
|
|
|
|
|
|
|
While the sample gives you stuff to browse, don't use it to write any real
|
2022-08-11 16:48:00 +00:00
|
|
|
notes. LÖVE limits what directories apps can list files from (which is great
|
|
|
|
for privacy), but has some confusing rules around them. Each app can only
|
|
|
|
write to files under a single directory, the app's _save directory_
|
|
|
|
([love.filesystem.getSaveDirectory()](https://love2d.org/wiki/love.filesystem.getSaveDirectory)).
|
2022-08-11 16:43:54 +00:00
|
|
|
In addition, reads will also fall back to read from the repo directory,
|
|
|
|
enabling the sample experience. However, edits you make will not modify the
|
2022-08-11 16:49:32 +00:00
|
|
|
`data.sample/` directory in this repo. Your notes will fragment between two
|
|
|
|
directories, which can get confusing.
|
2022-08-11 16:33:05 +00:00
|
|
|
|
2022-08-11 16:38:31 +00:00
|
|
|
To create your own directory of notes, run without an argument:
|
2022-08-11 16:33:05 +00:00
|
|
|
|
2022-08-11 16:38:31 +00:00
|
|
|
```
|
|
|
|
love .
|
|
|
|
```
|
2022-08-11 16:33:05 +00:00
|
|
|
|
2022-08-11 16:38:31 +00:00
|
|
|
pensieve.love will then create a `data/` directory in the app's save directory
|
2022-08-11 16:43:54 +00:00
|
|
|
as above. Confusing location, but everything will be in one place.
|
2022-08-11 16:33:05 +00:00
|
|
|
|
2022-09-04 01:10:12 +00:00
|
|
|
## Modifying the app
|
2022-06-07 01:33:44 +00:00
|
|
|
|
2022-09-04 02:00:56 +00:00
|
|
|
Hit `ctrl+w` from within the to modify its code. The infrastructure works, but
|
|
|
|
it isn't advertised within the app because this particular app is currently
|
2022-09-04 01:10:12 +00:00
|
|
|
too large to comfortably modify from within itself. I use more specialized
|
|
|
|
editors while I improve the editing infrastructure further.
|
2022-06-07 20:48:59 +00:00
|
|
|
|
2022-05-30 00:03:01 +00:00
|
|
|
## Known issues
|
2022-05-21 17:36:27 +00:00
|
|
|
|
2022-05-18 05:05:00 +00:00
|
|
|
* No support yet for Unicode graphemes spanning multiple codepoints.
|
2022-05-21 17:36:27 +00:00
|
|
|
|
2022-07-08 21:16:48 +00:00
|
|
|
* No support yet for right-to-left languages.
|
|
|
|
|
2022-08-13 16:07:00 +00:00
|
|
|
* Editing a note grows sluggish if it grows larger than 1.5KB or so. Either
|
|
|
|
use smaller notes (I haven't seen any slowdowns with lots of notes on the
|
|
|
|
surface) or maximize large notes when editing them.
|
|
|
|
|
|
|
|
* Editing a note larger than 50KB grows sluggish (particularly during
|
|
|
|
undo/redo) even when maximized.
|
2022-06-05 17:26:35 +00:00
|
|
|
|
2022-06-10 21:19:27 +00:00
|
|
|
* If you kill the process, say by force-quitting because things things get
|
|
|
|
sluggish, you can lose data.
|
|
|
|
|
2022-09-07 04:58:46 +00:00
|
|
|
* Searching is slow. There's no index yet. Searching happens in the same
|
|
|
|
thread as UI updates, so UI may go unresponsive with really large notes. I
|
|
|
|
haven't observed this in practice.
|
|
|
|
|
2022-08-13 16:07:00 +00:00
|
|
|
* Pressing keys while editing will try to always keep the text cursor on
|
|
|
|
screen. This can have some strange implications:
|
2022-05-21 17:36:27 +00:00
|
|
|
|
2022-05-19 01:19:27 +00:00
|
|
|
* A long series of drawings will get silently skipped when you hit
|
|
|
|
page-down, until a line of text can be showed on screen.
|
2022-05-20 05:56:55 +00:00
|
|
|
* If there's no line of text at the top of the file, you may not be able
|
|
|
|
to scroll back up to the top with page-up.
|
2022-05-21 17:36:27 +00:00
|
|
|
|
2022-05-20 05:56:55 +00:00
|
|
|
So far this app isn't really designed for drawing-heavy files. For now I'm
|
2022-05-19 01:19:27 +00:00
|
|
|
targeting mostly-text files with a few drawings mixed in.
|
2022-05-21 17:36:27 +00:00
|
|
|
|
2022-06-16 03:57:14 +00:00
|
|
|
* No clipping yet for drawings. In particular, circles/squares/rectangles and
|
|
|
|
point labels can overflow a drawing.
|
2022-05-30 00:03:01 +00:00
|
|
|
|
2022-07-29 21:38:45 +00:00
|
|
|
* Long wrapping lines can't yet distinguish between the cursor at end of one
|
|
|
|
screen line and start of the next, so clicking the mouse to position the
|
|
|
|
cursor can very occasionally do the wrong thing.
|
2022-05-30 00:03:01 +00:00
|
|
|
|
|
|
|
* Touchpads can drag the mouse pointer using a light touch or a heavy click.
|
|
|
|
On Linux, drags using the light touch get interrupted when a key is pressed.
|
|
|
|
You'll have to press down to drag.
|
2022-06-03 20:32:42 +00:00
|
|
|
|
|
|
|
* Can't scroll while selecting text with mouse.
|
|
|
|
|
|
|
|
* No scrollbars yet. That stuff is hard.
|
2022-06-07 01:33:44 +00:00
|
|
|
|
2022-09-07 04:59:51 +00:00
|
|
|
* When editing sources, selecting text is not yet completely implemented.
|
2022-09-03 21:13:22 +00:00
|
|
|
|
2022-08-12 05:42:27 +00:00
|
|
|
## Mirrors and Forks
|
|
|
|
|
2022-08-15 22:56:37 +00:00
|
|
|
This repo is a fork of [lines.love](http://akkartik.name/lines.html). Updates
|
|
|
|
to it can be downloaded from:
|
2022-08-12 05:42:27 +00:00
|
|
|
|
|
|
|
* https://git.sr.ht/~akkartik/pensieve.love
|
|
|
|
|
|
|
|
Further forks are encouraged. If you show me your fork, I'll link to it here.
|
|
|
|
|
|
|
|
## Associated tools
|
|
|
|
|
|
|
|
* https://git.sr.ht/~akkartik/capture.love provides a blank-slate UI into the
|
|
|
|
same notes directory as pensieve.love.
|
|
|
|
* https://codeberg.org/akkartik/lines2md exports lines.love files to Markdown
|
|
|
|
and (non-editable) SVG.
|
|
|
|
|
2022-06-07 01:33:44 +00:00
|
|
|
## Feedback
|
|
|
|
|
|
|
|
[Most appreciated.](http://akkartik.name/contact)
|
2022-08-11 18:12:59 +00:00
|
|
|
|
|
|
|
In particular, pensieve.love has been exclusively tested so far with a US
|
|
|
|
keyboard layout. If you use a different layout, please let me know if things
|
|
|
|
worked, or if you found anything amiss.
|