Hi Edgaras and others! This is a great initiative! I really like these ideas and the minimalistic mockups look really nice. Before finding TW I was using Notion for a while and I think it has a really neat UX that's complex under the hood, but presented nicely.
Re: mixing wikitext and Markdown: They are fundamentally incompatible in some areas, e.g. # in MD means header, while in WT it's an ordered list item. Initially I also wanted to just use Markdown, but nowadays I feel like wikitext might actually be "the better Markdown". That's bad because then it's harder to champion for the more mainstream Markdown :) Re: modeless editing: I feel like this is a really powerful concept that brought text and layout editing to the masses. At the same time, I believe having an editable readable text "source" for a document is powerful in terms of: • reproducibility - you can copy paste a section of the source to someone and they will get the same thing barring side effects • consistency - all the state is visible, so it's harder to get into a weird state where some hidden format or layout is affecting your writing unintentionally • flexibility - since code is usually text too, you can essentially have a way more flexible system if you can also write "code" within text (wikitext has this with transclusions, etc., LaTeX too) That said, as you mentioned, looking at / parsing all this additional code all the time can be taxing, as as much as we want them to be, human brains aren't really great computer grammar parsers :) This brings me to what you and others mentioned and what I believe Notion got really right. The concept of logical blocks a page / note consists of. This can be a paragraph, a link, an image, a table, etc. In Notion it's natural to add these, you type a / and up pops a small non-intrusive command search popup, where you just search for a thing to add. These quick-add slash commands would be essential when it comes to the unified view / edit flow imo. On top of that add drag and drop reordering logic and you're 80% there. So how do you reconcile having source editing and Notion-like blocks? I would start by keeping the source and having a special type of a UI view that is smart enough to modify the source directly through UI actions like typing in the middle of some text, adding a new block (read: header, image, tiddler link, transclusion, anything that's a toolbar button right now) with a slash command, or reordering some blocks in the tiddler (e.g. dragging a header a few paragraphs higher would move it in source text a few lines up). Now for a little nerd talk. Jeremy, I hope you're listening ☺ Technically, this would have to be done carefully as to not corrupt or change the source in any unexpected way. The complexity depends a little on how wikitext is parsed currently. If it's the standard lexer-parser setup where you get an Abstract Syntax Tree (AST) somewhere in the middle before you convert it into HTML it would already help a lot. One interesting feature that many parsers usually don't care about is that we would need is for the AST to be losslessly reversible back into wikitext (including whitespace, comments, everything). That way we would be able to operate on the source in a safe and structured manner without losing any extra stuff in it. To be able to visually link the blocks back to their source text, we would need to track all the up-to-date character ranges for the parsed tokens / AST leaves and carry their ids up to the UI / HTML elements used to display them. Then when you e.g. have a list of images and you drag an image, the UI knows of the hierarchy behind the display (from the AST) and at the same time knows how to modify the source text (by the character ranges in each AST element) to produce the desired modified output. Nerd mode off. Clearly you won't have a UI that allows you to edit every single wikitext feature including transclusions, macros, etc. on day one. But I see great value in having even just bold, italic, headers and links as an MVP and blackboxing everything that is not supported. Since the source wikitext would remain, you could always switch to the source view for more advanced stuff. Now if we entertain this modeless direct editing experience some more, I can imagine all the blackboxed blocks turning into inline source code editors. Transclusions could provide a way for editing the source tiddler directly by showing a nested UI in the context of the transcluded tiddler with some border or whatever showing up to tell you which one it is. I'm not saying it would be easy, but it's definitely achievable, especially if you limit the scope of what to do initially. :) Welp, I spent too much time writing this brain dump, so I hope it gave some ideas to someone at least. :) Best, Miha -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/4d8c0a58-a75d-49ef-ae67-b28170c21d33%40googlegroups.com.