|
|
|
|
|
by mrottenkolber
4613 days ago
|
|
I am doing it in Common Lisp, I haven't released it yet but if you drop me an email to max on mr.gy I can let you know when I progress and also tell you about how I designed my system if you like. To summarize: Come up with a model for documents (e.g. datastructure, what is it made up of, how is it represented). Then think about how to input a document (makes a big difference, I made a markdown like language) and how you can render documents (html, paper, audiobook, video...). I concentrated on the idea that my documents should represent structure of content while the type of content (mixed?) is irrelevant. I then started writing backends that support rendering of sets of content types. E.g. HTML can do a lot, including video. But on paper it's hard to play back audo or video data so we fall back to a simple url (which sucks on paper too, but we could render QR codes on paper for instance). So there is a lot of room for specialization, I am trying to keep the core concepts as generic as possible so I can extend the system later on, and maybe use my document format to write a song after I implement musical content types in some backend some day maybe... You get the idea I guess. Regarding hiccup: I wrote an HTML DSL myself, which I also use in my document pipeline, it is released and can be found here:
http://mr.gy/software/macro-html/ By the way, I work prefessionally with Clojure at the moment, and I'd rather advise against using it. Ihmo it is not ready, I like some ideas, some I like less, but its still a mess and the (only!) implementation is not on par with a real lisp yet. |
|