This is all great, but the automatic style conversion is most unexpected and cool!
Going forward I’ve got lots of code that could help a project like this, but I’m still not sure what the best way to distribute it is for both me and everyone else. For example right now in the scripting API there’s the ItemSeriailizer class. It support read/write of three formats:
- BML - HTML subset.
- OPML - Outline processing markup.
- TEXT - This is how TaskPaper files are encoded.
I call TaskPaper’s underlying outline model “Birch”. BML is intended to be Birch’s native serialization. It’s not human readable like the TEXT serialization, but it is easier to parse and manipulate (since it’s HTML subset), preserves unique ids for each item, and displays in any web browser.
I’d like to release all this as an
npm package so TaskPaper can spread more easily and in a standard form. The difficulty is that I’d like to somehow retain my right/avoid clones/keep eating! Any thoughts on this:
Make it fully open source. Mostly likely to spread TaskPaper, but then anyone can pretty easily clone TaskPaper.
Make it shared source. So source code is there, but to use it you must also have a TaskPaper license. I wouldn’t be able to enforce this (or really care too) at individual level, but it should keep clones from replacing TaskPaper.
Or some other setup?
Anyway would love to hear what anyone things. @mattgemmell if such as API were available do you think you would have used for this project. Or would you rather have just coded things up yourself for maximum freedom and flexibility?