dominiksta / wournal

Simple "digitial paper" for note taking and PDF annotation. Heavily inspired by Xournal.
GNU Lesser General Public License v2.1
69 stars 8 forks source link
handwriting linux note-taking pdf-annotation svg windows xournal

Wournal

Wournal is an app that is probably best described as "digital paper". You can freely put your handwriting, text, images and vector graphics on a canvas that is about as easy to use as paper, freeing up your brain to focus on the subject matter.

Screenshot

Screenshot PDF Annotation

Current Project Status

Wournal is currently still considered alpha software. While that means that there may still be some bugs creeping around, it should be mostly stable.

The plan is to first create an Android version and to wait a while for bug reports before releasing it as beta. The Android release will require a somewhat significant rewrite of many UI components, so the look and feel will change quite a bit when that happens.

Development Roadmap **Known Issues**: - High DPI / Scaling is not Ideal - Zooming PDF Documents Looks a Bit Weird - Text Rendering on Default Zoom Level can be Slightly Blurry **Before Beta**: - [x] Store Config as File Instead of in LocalStorage - [ ] PDF Annotation with [pdf-js](https://mozilla.github.io/pdf.js/) - [x] Viewing & Annotating - [x] Highlight Text - [ ] Choose between attaching PDF to WOJ, Relative or Absolute File Path - [x] Exporting to PDF with [pdf-lib](https://pdf-lib.js.org/) - [x] Table of Contents - [x] Auto Import From PDF - [x] Tabs - [ ] Tablet (and Phone) Friendly UI - [ ] Android Version with Cordova or Capacitor - [x] Stack Trace & Bug Report Dialog - [x] Auto Saves - [x] Single Click to Select - [ ] Polish Icon (especially lower resolution versions) - [ ] Simple Website with some Documentation with GitHub Pages **Before 1.0** - [x] Default Document Zoom Level Config Option - [x] Drag&Drop From File Manager to Open - [x] Jumplist - [x] Customizable Pen Cursor Angle Change (Especially for Lefties) - [ ] Lasso Select - [ ] Set Default Paper Style - [ ] Vertical Space Tool - [ ] Rotate Selection - [x] Notify Update & Display Changelog **(Probably/Maybe) After 1.0** - [ ] Different Page Layouts - [ ] Single Page - [ ] Two Pages (Continuous) - [ ] Annotate Multiple PDFs in one Wournal Document - [ ] Import XOJ (from Xournal) - [ ] Import Annotations from a PDF (at least a bit) - [ ] Apply New Page Style to All Pages - [ ] Laser Pointer - [ ] Custom "Sticker" or "Element" Collections (like Google Material Icons or Cisco Networking Diagram Thingies) - [ ] Page Thumbnails in Left Panel - [ ] Put Text Marker Strokes on a Separate Layer to Always Have Text In Front - Xournal does not do this, Xournal++ and PDF Annotator do - [ ] A Textfield with Syntax Highlighting for Various Programming Langs

Lineage and Thanks

Wournal is primarily inspired by the wonderful Xournal and can therefore be seen as part of a whole lineage of programs written over the years like the venerable Microsoft Windows Journal, Jarnal or the more modern Xournal++ and MrWriter.

In addition to all developers of these programs, ConnorsFan on StackOverflow also deserves a big thank your for the initial basic template for the line smoothing algorithm.

Why write this when X exists?

Most of the programs in the lineage of Wournal have not been maintained for a long time, with three exceptions:

There are likely some competitors that are not mentioned here. If you feel some program is missing here, feel free to expand this section!

Development

Wournal is a mostly relatively normal electron app, except that it uses mvui as a frontend framework. I know, I know, we really need more javascript frameworks, but there were some good reasons to choose it, mainly that a tiny framework like mvui means that Wournal should be easily maintainable long into the future... and it was also kind of fun. You should really not be scared to contribute because of this, you can reproduce most common React patterns in mvui.

git clone https://github.com/dominiksta/wournal/
npm i
npm run dev

Building

Building for Windows on GNU/Linux is possible by installing wine and mono. On Ubuntu, installing wine64 and mono-complete speifically should work. Building for GNU/Linux on Windows can be achieved through WSL2. See the Electron Forge documentation for details.

npm run package # build binary for current os

npm run make # build distributables for current os

# for building windows on linux/wsl (ubuntu 22.04 lts specifically)
sudo apt install wine64 mono-complete
npm run make -- --platform=win32 --targets=zip
# the `wix` target can only be built on a real windows machine