I’ve been accumulating notes on Bike (in Bike, of course) but figure I better get them off my chest. First, on file formats.
I love the simplicity but I really wish it used tabs instead of spaces. I know tabs-vs-spaces is a religious argument – but I think that’s in programming language contexts. As a file format for an outline, tabs are a natural fit, and spaces are not. You can type literal spaces in a row in Bike, but you can’t type tabs, because in Bike, the keyboard Tab key always means “indent this row one more level”. Bike won’t even let you paste a tab character into a row. (Not complaining about that, just pointing out that literal \t characters seem like they can exist in a Bike outline.)
Tabs would be more like a word processor’s tab stops than a plain text editor in that way. When you’re using Bike (or any proper outliner), the leading indentation feels like tab stops, not spaces. I think one reason why the tabs-vs-spaces argument for programming source code is neverending is that in a text editor, leading tabs and leading spaces more or less feel the same. (That said, I will admit that I’m a tabs guy in source code.)
By using spaces, you’re inviting arguments about how many spaces should be used. Some people might say 2. Some might say 8. If you use tabs it’s clear: each \t = 1 level of indentation. Done. Nice and clean, nothing to argue about.
I know it’s a bit of a contrived example, but consider that a row can start with literal spaces. How would that work with the current text export format?
Another question: what are the advantages, as a users, to using Bike’s native .bike format instead of saving all my Bike outlines as .txt files? It is 100% obvious that Bike should export to text files, of course, but should it be able to open them and treat them as Bike files? There’s a part of me that thinks Bike should be able to export and import text files, but when importing/opening one, it should become a new unsaved .bike file. I’m not sure though.
I’d be OK with the native Bike format being a black box, honestly, as long as it has open export formats. I think it’s kind of neat that the native format is just HTML though. I’m not quite sure where you’re going with the ID values, or whether I should care how they’re generated, but it is a very nice bonus that you can just open a .bike file in a web browser and it renders as a list.
Are you planning to support embedded images? If so, how would that work? I presume you’d have to switch to a package format, like RTF vs. RTFD for TextEdit files with embedded images. My guess is that you’re thinking of Bike as more like a plain text editor, with no embedded images.