Hacker News new | ask | show | jobs
by mrottenkolber 4613 days ago
Very interesting and great effort you put into it! I know exactly what you mean by cleaning up taking time. I am in the same stage (making it look good) of a document processing toolchain I am working on, which supports HTML, (La)TeX and plain text output backends. I thought I could be done this year, but I will probably take longer. I have started working and thinking on this problem about three years ago and am very careful about it's design (it's focus is on developer friendliness and extensibility, while keeping it dead simple and modular). It's not even that I expect others to jump on it, after all people seem to happy with Org mode and Markdown, but I want to solve my own documentation toolchain needs once and for all.

I am looking forward to see how your project turns out, choosing TeX as the print backend wasn't an easy choice and I would definitely consider another print media backend, if there was one. :)

Big ups!

1 comments

Do you have a github repo for your project ? Or somewhere where I can take a look at the code ?

I was hoping to find the time to write something similar in Clojure (a lisp dialect), and the idea should be to take hiccup[1] as starting point.

Why hiccup ?

Because it is death easy to use, because I think it to be extensible, and because I hate write html while I love to write hiccup-code...

The real problem (other than the lack of time) is that I have no idea how to start, and it bring me to this other comment:

https://news.ycombinator.com/item?id=6669854

[1] https://github.com/weavejester/hiccup

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.