Add Calendar integration (read-only)
This commit is contained in:
@@ -12,6 +12,7 @@ Minimal self-hosted personal wiki. Folders are pages.
|
||||
- **Wikilinks**: `[[query]]` or `[[query::label]]`. They open a search, so links still work after a page is renamed. Typing `[[` in the editor suggests page names. Embed files with ``.
|
||||
- **Movie import**: create a page from OMDb metadata. Asks once for a free [OMDb API key](https://www.omdbapi.com/apikey.aspx) and keeps it in the browser.
|
||||
- **Special folders**: a [photo diary](#diary) and a [fitness dashboard](#fitness).
|
||||
- **Calendars**: Nextcloud calendars mirrored into the wiki. They add events and weight to the diary, and a [maintenance widget](#calendars) to every page.
|
||||
- **Quick-add bookmarklet**: save the current tab to a wiki page.
|
||||
- **Companion app**: an optional desktop helper, downloadable from the wiki footer. It opens wiki files in local apps and folders in the file manager.
|
||||
|
||||
@@ -33,6 +34,8 @@ GOOS=linux GOARCH=arm go build -o datascape . # QNAP NAS
|
||||
| `-cache` | `./cache` | Thumbnail cache |
|
||||
| `-user`, `-pass` | | Basic auth (omit to disable) |
|
||||
| `-reindex-interval` | `30m` | Search index rebuild (`0` = off) |
|
||||
| `-calendars` | `Calendars` | [Calendars](#calendars) folder, relative to `-dir` (empty = off) |
|
||||
| `-tz` | system | Time zone for calendars and the diary, e.g. `Europe/Berlin` |
|
||||
|
||||
## `.page-settings`
|
||||
|
||||
@@ -43,7 +46,7 @@ Per-folder `key = value` file. The **view** button in the `Files` header sets th
|
||||
| `view` | `list`, `thumbnail` |
|
||||
| `sort` | `name`, `modified`, `size` |
|
||||
| `order` | `asc`, `desc` |
|
||||
| `type` | `diary`, `fitness` |
|
||||
| `type` | `diary`, `fitness`, `calendars` |
|
||||
|
||||
## Keyboard shortcuts
|
||||
|
||||
@@ -51,7 +54,7 @@ All use Alt+Shift.
|
||||
|
||||
| Where | Keys |
|
||||
|-------|------|
|
||||
| Anywhere | `E` edit, `N` new page, `M` move, `F` search |
|
||||
| Anywhere | `E` edit, `N` new page, `M` move, `F` search, `H` maintenance |
|
||||
| Editor | `S` save, `1`–`3` heading, `B`/`I` bold/italic, `C`/`K` code/code block, `L` link, `P` wikilink, `G` embed, `U`/`O`/`X` bullet/numbered/task list, `Q` quote, `R` rule, `T` format table, `D`/`W` date (ISO/long), `V` movie, `Y` delete line |
|
||||
|
||||
## Diary
|
||||
@@ -72,6 +75,46 @@ Bookmarkable shortcuts: `<diary>/today/`, `<diary>/this-month/`, `<diary>/this-y
|
||||
|
||||
With `type = fitness`, a folder shows weight charts (daily and weekly mean, with your goal) below its content. Copy the [Waistline](https://github.com/davidhealey/waistline) app's export into the folder as `waistline_export.json`. Each new export replaces the old file.
|
||||
|
||||
## Calendars
|
||||
|
||||
```
|
||||
Calendars/
|
||||
.page-settings ← type = calendars, roles, sync credentials
|
||||
Personal.ics ← one file per calendar
|
||||
Gewicht.ics
|
||||
…
|
||||
```
|
||||
|
||||
Pages only read these local files and never contact the calendar server. The built-in sync downloads all calendars of a CalDAV calendar home in the background. Or you can put the `.ics` files there yourself.
|
||||
|
||||
```
|
||||
type = calendars
|
||||
|
||||
# Roles: file names without .ics
|
||||
diary = Personal, Feiertage
|
||||
weight = Gewicht
|
||||
maintenance = Maintainance
|
||||
|
||||
# Sync (Nextcloud)
|
||||
caldav-url = https://cloud.example/remote.php/dav/calendars/me/
|
||||
caldav-user = me
|
||||
caldav-pass = xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
|
||||
sync-interval = 15m
|
||||
```
|
||||
|
||||
| Key | |
|
||||
|-----|-|
|
||||
| `diary` | Events shown under each diary day: all-day first, then by start time |
|
||||
| `weight` | Titles like `95,6kg`, shown under the diary day's events |
|
||||
| `maintenance` | Tasks in the header widget (with the number due today) and on the calendars page |
|
||||
| `caldav-url` | Calendar home. Empty = no sync |
|
||||
| `caldav-user`, `caldav-pass` | Use a Nextcloud app password (Settings → Security), not the account password |
|
||||
| `sync-interval` | Default `15m`. `0` = only at startup and with **Sync now** |
|
||||
|
||||
Changes apply without a restart. Each calendar is saved as `<display name>.ics`. A download that fails or is not valid iCalendar keeps the old file. Datascape never serves dotfiles, so the password in `.page-settings` cannot be downloaded. It is still in every backup of the wiki folder.
|
||||
|
||||
The calendars page lists the maintenance tasks (repeat rule, last date, next date) and the sync status of each calendar.
|
||||
|
||||
## Quick-add bookmarklet
|
||||
|
||||
Replace `wiki.host` and `/Topics/Bookmarks/` with your host and target page:
|
||||
|
||||
Reference in New Issue
Block a user