Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/spdegabrielle/clash

a quick racket wiki
https://github.com/spdegabrielle/clash

racket wiki

Last synced: 26 days ago
JSON representation

a quick racket wiki

Awesome Lists containing this project

README

        

Clash - a wiki in racket using scribble.
=====

> _We plan to replace this wiki (eventually) with a wiki written in Racket, to which we will migrate the existing content._

(footer of the racket wiki on GitHub at )

## Goal
A wiki using scribble as the wiki text!

## Purpose
To replace .

### Design

DRAFT - subject to change

GET http(s)://server/filename.html
- file exist -> serve static file at specified path
- file missing -> Redirect if applicable, otherwise start Edit flow

Edit flow
edit form to create new page
GET http(s)://server/filename.html?action=edit
-> serve edit page servlet that retrieves scribble source and puts it in a form
GET http(s)://server/filename
-> serve edit page adding parameters ?action=edit or maybe new
POST form to http(s)://server/filename.html
-> update scribble source file & generate target html file in #:server-root-path and redirect to target html file at http(s)://server/filename.html

the Scribble source and the generated html are in separate folders,

````
;; folder to store html static files
(define page-root (build-path (current-directory) "html"))
;; folder to store scribble source (or other source format)
(define scribble-root (build-path (current-directory) "scribble"))
````

* filename.html is in `#:extra-files-paths` aka `page-root`
* I'm trying to make it with plain old s hence the use of POST (or can I use PUT or invent a verb in modern browsers?)

### ToDO
- [X] convert scribble to html
- [ ] users/authentication (openID?)
- [ ] git for versions (of the scribble files)
- [ ] history, scribble-diff, rollback
- [ ] An editor(in RacketScript), to provide a better UX than a form textbox
- [ ] editing from DrRacket
- [ ] pollen instead of scribble (pollen allows undefined identifiers - which scribble doesn't - which would be useful in creating new pages in a wiki-like fashion) pollen blog: may be relevant
- [ ] support redirects
- [ ] what else?

### resources

* http://docs.racket-lang.org/continue/index.html
* https://serverracket.com/
* https://github.com/mbutterick/pollen/blob/master/pollen/private/project-server.rkt
* http://matt.might.net/articles/low-level-web-in-racket/
* https://github.com/mattmight/uiki