Organize docs
This commit is contained in:
parent
854a90145b
commit
c5521ba101
82
README.md
82
README.md
@ -1 +1,81 @@
|
|||||||
# wikingo
|
# Wikingo
|
||||||
|
|
||||||
|
A minimal personal wiki written in Go Lang
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
* Markdown -> HTML
|
||||||
|
* Basic HTML (with Water CSS, for example)
|
||||||
|
* requires serving static content
|
||||||
|
* One level pages (e.g. http://host/PageName/)
|
||||||
|
* view version (default latest)
|
||||||
|
* old version -> restore
|
||||||
|
* delete
|
||||||
|
* edit
|
||||||
|
* list history (changes -> view version)
|
||||||
|
* Normalize URLs
|
||||||
|
* e.g. reidrect page/ -> page
|
||||||
|
|
||||||
|
### Stretch goals
|
||||||
|
|
||||||
|
1. List pages
|
||||||
|
* optionally filter by tag
|
||||||
|
* pagination
|
||||||
|
2. Search
|
||||||
|
* query into title (e.g. PageName), tags
|
||||||
|
* full text?
|
||||||
|
* n results, pagination not needed
|
||||||
|
3. Auth for protected pages
|
||||||
|
* edit, restore
|
||||||
|
4. Atom feed for updated pages (last n)
|
||||||
|
5. Detect the page has changed before post
|
||||||
|
* show warning
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
|
||||||
|
* Storage: sqlite with [GORM](https://gorm.io/)
|
||||||
|
* easy queries
|
||||||
|
* struct -> tables
|
||||||
|
* auto-migrations
|
||||||
|
* HTTP server: [Echo](https://echo.labstack.com/)
|
||||||
|
* easy to use
|
||||||
|
* routes
|
||||||
|
* static content
|
||||||
|
* middleware (e.g. auth, remove trailing slash)
|
||||||
|
* Templates
|
||||||
|
* needed? [html/template](https://pkg.go.dev/html/template)
|
||||||
|
* not super-easy to use
|
||||||
|
* Markdown -> HTML: [Blackfriday](https://github.com/russross/blackfriday)
|
||||||
|
|
||||||
|
## Routes
|
||||||
|
|
||||||
|
| Method | URL | Notes |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| GET | / | alias for WikiHome |
|
||||||
|
| GET | /:page(/:version)? | version is optional, defaults to "latest" |
|
||||||
|
| GET | /:page/edit | protected |
|
||||||
|
| POST | /:page/edit | protected |
|
||||||
|
| GET | /:page/history | |
|
||||||
|
| POST | /:page/restore/:version | protected |
|
||||||
|
| DELETE | /:page/:version | protected |
|
||||||
|
| GET | /list(/:tag)? | tag is optional, stretch goal |
|
||||||
|
| POST | /search | stretch goal |
|
||||||
|
| GET | /atom.xml | stretch goal |
|
||||||
|
|
||||||
|
:page in format CamelCase (starts uppercase)
|
||||||
|
:version is numeric
|
||||||
|
:tag is string
|
||||||
|
|
||||||
|
## Model: Page
|
||||||
|
|
||||||
|
* Page name
|
||||||
|
* version
|
||||||
|
* change description
|
||||||
|
* created on
|
||||||
|
* updated on
|
||||||
|
* tags (e.g. tag1:tag2:tag3)
|
||||||
|
* body
|
||||||
|
|
||||||
|
|
||||||
|
(thanks [reidrac](http://github.com/reidrac), [MrReidrac](https://twitch.tv/reidrac))
|
||||||
|
|
||||||
|
18
TODO.md
Normal file
18
TODO.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# TODO
|
||||||
|
|
||||||
|
## General
|
||||||
|
> General options
|
||||||
|
- [ ] Flag to select store
|
||||||
|
- [ ] Config file (to select store and some other future options)
|
||||||
|
- [ ] Proper logger
|
||||||
|
- [ ] Make helper
|
||||||
|
- [ ] CI (gofmt, golint, more)?
|
||||||
|
|
||||||
|
## Bootstrap
|
||||||
|
> Basic elements
|
||||||
|
- [x] Echo server
|
||||||
|
- [x] Sample Model
|
||||||
|
- [x] Store interface (gorm, file...)
|
||||||
|
- [x] Open db store
|
||||||
|
- [ ] Open file store
|
||||||
|
- [x] Templates
|
78
doc/wip.md
78
doc/wip.md
@ -1,78 +0,0 @@
|
|||||||
# Minimal personal wiki in Go
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
* Markdown -> HTML
|
|
||||||
* Basic HTML (with Water CSS, for example)
|
|
||||||
* requires serving static content
|
|
||||||
* One level pages (e.g. http://host/PageName/)
|
|
||||||
* view version (default latest)
|
|
||||||
* old version -> restore
|
|
||||||
* delete
|
|
||||||
* edit
|
|
||||||
* list history (changes -> view version)
|
|
||||||
* Normalize URLs
|
|
||||||
* e.g. reidrect page/ -> page
|
|
||||||
|
|
||||||
### Stretch goals
|
|
||||||
|
|
||||||
1. List pages
|
|
||||||
* optionally filter by tag
|
|
||||||
* pagination
|
|
||||||
2. Search
|
|
||||||
* query into title (e.g. PageName), tags
|
|
||||||
* full text?
|
|
||||||
* n results, pagination not needed
|
|
||||||
3. Auth for protected pages
|
|
||||||
* edit, restore
|
|
||||||
4. Atom feed for updated pages (last n)
|
|
||||||
5. Detect the page has changed before post
|
|
||||||
* show warning
|
|
||||||
|
|
||||||
## Stack
|
|
||||||
|
|
||||||
* Storage: sqlite with [GORM](https://gorm.io/)
|
|
||||||
* easy queries
|
|
||||||
* struct -> tables
|
|
||||||
* auto-migrations
|
|
||||||
* HTTP server: [Echo](https://echo.labstack.com/)
|
|
||||||
* easy to use
|
|
||||||
* routes
|
|
||||||
* static content
|
|
||||||
* middleware (e.g. auth, remove trailing slash)
|
|
||||||
* Templates
|
|
||||||
* needed? [html/template](https://pkg.go.dev/html/template)
|
|
||||||
* not super-easy to use
|
|
||||||
* Markdown -> HTML: [Blackfriday](https://github.com/russross/blackfriday)
|
|
||||||
|
|
||||||
## Routes
|
|
||||||
|
|
||||||
| Method | URL | Notes |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| GET | / | alias for WikiHome |
|
|
||||||
| GET | /:page(/:version)? | version is optional, defaults to "latest" |
|
|
||||||
| GET | /:page/edit | protected |
|
|
||||||
| POST | /:page/edit | protected |
|
|
||||||
| GET | /:page/history | |
|
|
||||||
| POST | /:page/restore/:version | protected |
|
|
||||||
| DELETE | /:page/:version | protected |
|
|
||||||
| GET | /list(/:tag)? | tag is optional, stretch goal |
|
|
||||||
| POST | /search | stretch goal |
|
|
||||||
| GET | /atom.xml | stretch goal |
|
|
||||||
|
|
||||||
:page in format CamelCase (starts uppercase)
|
|
||||||
:version is numeric
|
|
||||||
:tag is string
|
|
||||||
|
|
||||||
## Model: Page
|
|
||||||
|
|
||||||
* Page name
|
|
||||||
* version
|
|
||||||
* change description
|
|
||||||
* created on
|
|
||||||
* updated on
|
|
||||||
* tags (e.g. tag1:tag2:tag3)
|
|
||||||
* body
|
|
||||||
|
|
||||||
|
|
||||||
(thanks [reidrac](http://github.com/reidrac), [MrReidrac](https://twitch.tv/reidrac))
|
|
Loading…
Reference in New Issue
Block a user