72 lines
2.3 KiB
Markdown
72 lines
2.3 KiB
Markdown
# datascape
|
|
|
|
Minimal self-hosted personal wiki. Folders are pages.
|
|
|
|
## Features
|
|
|
|
- **Pages** every folder is a page. Place an `index.md` inside a folder and it renders as HTML. Drop any other files (PDFs, images, etc.) alongside it and they appear in the listing below the content. Navigating to a path that does not exist shows a **[CREATE]** prompt.
|
|
|
|
- **Search** search across all page names (folder names) in the wiki, accessible from the navigation bar.
|
|
|
|
- **Wikilinks** link between pages with `[[Page Name]]` syntax. When a page is renamed or moved, all wikilinks pointing to it are rewritten automatically to reflect the new path.
|
|
|
|
- **Movie import** import movie entries via the OMDb API. Fetches title, year, runtime, genre, director, cast, plot, and poster, and pre-fills a new page with that metadata.
|
|
|
|
- **Special folder types** folders can opt into custom rendering (e.g. a photo diary with calendar navigation). See the [Special Folder Types](#special-folder-types) section for details.
|
|
|
|
## Build
|
|
|
|
```bash
|
|
# local
|
|
go build -o datascape .
|
|
|
|
# QNAP NAS (linux/arm)
|
|
GOOS=linux GOARCH=arm go build -o datascape .
|
|
```
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
go run . -dir ./wiki -addr :8080
|
|
go run . -dir ./wiki -addr :8080 -user me -pass secret
|
|
```
|
|
|
|
| Flag | Default | Description |
|
|
|------|---------|-------------|
|
|
| `-addr` | `:8080` | Listen address |
|
|
| `-dir` | `./wiki` | Wiki root directory |
|
|
| `-cache` | `./cache` | Thumbnail cache directory |
|
|
| `-user` | _(none)_ | Basic auth username — omit to disable auth |
|
|
| `-pass` | _(none)_ | Basic auth password |
|
|
| `-reindex-interval` | `30m` | Periodic search index rebuild interval (`0` disables) |
|
|
|
|
## Special Folder Types
|
|
|
|
A folder can opt into special rendering by adding a `.page-settings` file:
|
|
|
|
```
|
|
type = diary
|
|
```
|
|
|
|
### Diary
|
|
|
|
Designed for a chronological photo diary. Expected structure:
|
|
|
|
```
|
|
FolderName/
|
|
.page-settings ← type = diary
|
|
YYYY/
|
|
YYYY-MM-DD Desc.jpg ← photos named with date prefix
|
|
MM/
|
|
DD/
|
|
index.md ← diary entry for that day
|
|
```
|
|
|
|
| View | What renders |
|
|
|------|-------------|
|
|
| Year (`YYYY/`) | Section per month with link and photo count |
|
|
| Month (`MM/`) | Section per day with entry content and photo grid |
|
|
| Day (`DD/`) | Entry content and photo grid |
|
|
|
|
Days with photos but no `index.md` still appear in the month view and can be created by clicking their heading link.
|