# Plain text with lines [![0 dependencies!](https://0dependencies.dev/0dependencies.svg)](https://0dependencies.dev) An editor for plain text where you can also seamlessly insert line drawings. Designed above all to be easy to understand. http://akkartik.name/lines.html ## Getting started Install [LÖVE](https://love2d.org). It's just a 5MB download, open-source and extremely well-behaved. To run from the terminal, [pass this directory to LÖVE](https://love2d.org/wiki/Getting_Started#Running_Games), optionally with a file path to edit. Alternatively, turn it into a .love file you can double-click on: ``` $ zip -r /tmp/lines2.love *.lua ``` By default, lines2.love reads/writes the file `lines.txt` in [a directory relative to this app](https://love2d.org/wiki/love.filesystem.getSourceBaseDirectory). To open a different file, drop it on the lines2.love window. ## Keyboard shortcuts While editing text: * `ctrl+f` to find patterns within a file * `ctrl+c` to copy, `ctrl+x` to cut, `ctrl+v` to paste * `ctrl+z` to undo, `ctrl+y` to redo * `ctrl+=` to zoom in, `ctrl+-` to zoom out, `ctrl+0` to reset zoom * `alt+right`/`alt+left` to jump to the next/previous word, respectively * mouse drag or `shift` + movement to select text, `ctrl+a` to select all For shortcuts while editing drawings, consult the online help. Either: * hover on a drawing and hit `ctrl+h`, or * click on a drawing to start a stroke and then press and hold `h` to see your options at any point during a stroke. lines2.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: http://akkartik.name/contact ## Known issues * No support yet for Unicode graphemes spanning multiple codepoints. * No support yet for right-to-left languages. * lines2.love assumes a file always contains at least one line of text. You can violate this invariant by editing the file outside lines2.love. Don't do that. * If you make the first line a drawing there's currently no way to insert lines above it. * Help screen may show up in multiple drawings at a time. That feels a bit klunky. * Clicking on a drawing to focus cursor on it adds a point. Orphaned points disappears on reload, but still. Klunky. To avoid this you can move the cursor using the keyboard, but who can remember that? * No clipping yet for drawings. In particular, circles/squares/rectangles and point labels can overflow a drawing. * If you ever see a crash when clicking on the mouse, it might be because a mouse press and release need to happen in separate frames. Try pressing and releasing more slowly and let me know if that helps or not. This is klunky, sorry. * 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. * Can't scroll while selecting text with mouse. * No scrollbars yet. That stuff is hard. ## Mirrors This repo is a fork of [lines.love](http://akkartik.name/lines.html), aiming to be more elegant and have fewer bugs. Updates to it can be downloaded from: * https://git.merveilles.town/akkartik/lines2.love * https://git.sr.ht/~akkartik/lines2.love ## Associated tools * https://codeberg.org/akkartik/lines2md exports files to Markdown and (non-editable) SVG. * https://git.sr.ht/~akkartik/lines2html.love exports files to html and inline SVG. * https://codeberg.org/eril/lines2html.love provides the option to export just the drawings to a directory. Also provides a CLI, which should be more natural for many people. ## Feedback [Most appreciated.](http://akkartik.name/contact) Messages, PRs, patches, forks, it's all good.