Hello Jonas,
Jonas Baggett
Thank you for the suggestion. I was first thinking about incrementally creating a custom format that evolves as features are implemented. And for translating the custom format into a backend format, I was thinking of creating files with translations rules for each backend so that anyone can add support for a new backend or update an existing backend to add more feature or to make it compatible with a newer version of the backend, without needing to modify the editor code. A translation rule is e.g. start_section[title=
, back_ground_color= ] => @startsection(title -> { }, bg_color -> { }) which will convert a start section command of the document format into the same command for a backend format.
Skribilo uses an abstract syntax internally and the different output engines process that into the target language. In essence each engine is the collection of rules appropriate to that target.
At first glance that way seems to be the easiest way for me, but Skribilo looks interesting as a fallback option, although I find its syntax to be weird, if I find out that the idea with translation rules isn't working as expected.
There are two input syntaxes, a simple one a bit like Emacs' outline mode and the more Scheme-like syntax. The former has limitations documented on the Skribilo web-site, the latter is far more complete. I an guessing it is the Scheme-like syntax that you find weird. I have played around a a little this week on using Wisp (http://www.draketo.de/proj/wisp/) and Readable (http://readable.sourceforge.net/) to write Skribilo in a less parenthesis rich style. Although not able to complete the work owing to time constraints, it looks acheivavble. Cheers, Roger Off topic ======== My goal would be to have an output ConTeXt (or Lout) document, with fallback to LaTeX or XML if a publisher insists. If this could be combined with Emacs org-mode to document, store and run (or compile-run) source code, then a very complete and versatile system for reproducible reasearch could be constructed.