# harbour-quill Markdown notes client (**Obsidian-like**) for Sailfish OS. Notes live in a WebDAV folder (e.g. a Nextcloud directory): browse, edit and preview `.md` notes with automatic save — no local storage, your vault stays on your server. ## Features - **WebDAV browsing**: folder navigation, all files shown (not only `.md`, any file can be opened as text), mtime/size listing - **Markdown editor** with automatic save on exit - **Preview** rendered locally by the built-in parser (`Markdown.js`): - GFM tables (delimiter row, column alignment, inline markup in cells) - navigable `[[wiki-links]]` - inline images with local cache - relative links resolved against the note's WebDAV folder - local `file:` links blocked with a banner (safety) - **Note search** (title filter) - **New / delete notes** from the folder list - **English and Italian** UI: language selector (system / English / Italiano), applied on restart; Italian catalogue `.qm` in the app data dir - Settings in `~/.config/harbour/quill/quill.conf` — the persistent zone of the SailJail sandbox (Sailfish 4.4+/5.x) ## Build You need the [Sailfish SDK](https://sailfishos.org/wiki/Sailfish_SDK). ```sh sfdk target install SailfishOS-5.0.0.62-aarch64 # or your device target sfdk target use SailfishOS-5.0.0.62-aarch64 sfdk build # produces the RPM in RPMS/ sfdk deploy # installs on the connected device ``` Targets: `aarch64` (Jolla Phone 2026, Xperia 10 II/III), `armv7hl` (Xperia X, Jolla C), `x86_64` (emulator). ## Configuration Open the app → menu → **Settings**: | Field | Value | |---|---| | Server URL | e.g. `https://nextcloud.example.com/remote.php/dav/files/user/Notes` | | Username | WebDAV user | | Password | app password / account password | | Language | System / English / Italiano (applied on restart) | ## Structure ``` qml/harbour-quill.qml app entry qml/pages/ MainPage (folder list + search), EditorPage, PreviewPage, SettingsPage, NewNoteDialog qml/components/ DavClient.qml (WebDAV), Banner.qml, Markdown.js (parser), PropfindParser.js src/ main.cpp (language + translator), settings (QSettings, sandbox config), downloader (image cache) tests/ test_parsers.js (Markdown/propfind parsers) translations/ harbour-quill_it.ts (English is the source language) rpm/ spec (lrelease → .qm in app data dir) and desktop file (SailJail: Internet) ``` ## Known limitations - The WebDAV password is stored in plain text in the app settings (`~/.config/harbour/quill/quill.conf`) — acceptable for personal use. - The preview is a local render; some exotic Markdown edge cases may differ from Obsidian. - The language change takes effect on restart. ## License GPLv3