The important feature worth mentioning (more than “simple and elegant” and “focused on speed and usability”) is that it directly renders the Markdown (in the editor itself, not in a separate pane or window), giving a WYSIWYG feel while still being backed by a plain-text (markdown) format that if needed can be edited directly (even in an different editor). This I've found to help enormously with being distraction-free (while still having the peace of mind from not creating an irrecoverable binary blob). Of course, to someone else it may not be a big deal.
Before seeing this just now, Typora (https://news.ycombinator.com/item?id=21458977) was the only Markdown editor I had encountered that does this, but it is not open-source. Another was the halfway-in-between (shows both syntax and rendering) Abricotine (https://github.com/brrd/Abricotine) which has the sense to mention it as the main feature: “Markdown editor with inline preview” and “you can preview your document directly in the text editor rather than in a side pane”.
After trying the Mark Text demo (very nice), I got very curious about the editor control and how I could integrate it into something I am thinking about working on.
Bear and Ulysses, while nice, do not do what OP is talking about (unless they just did an update I’m not aware of).
Both of these apps do not abstract away the markup after a word is typed. This is the killer feature of Typora, along with the ability to completely redesign the entire editor yourself with a custom style sheet (along with awesome image management).
Typora has completely taken over my markdown workflow because of this.
I’ve tried Bear, Ulysses, IA writer, and countless others. None have this clever blended preview like Typora.
I've used Typora and enjoyed it, but I've learned that I really dislike this abstracting away of the Markdown. I'm glad it exists though — and it's a really excellent product for those who enjoy this feature.
My understanding is they store everything in SQLite. Their business strategy is to charge for sync (although manual export is free)
Given that it is branded as a note taking application it makes sense both from a business and implementation point of view.
Bear also kinda uses its own rendering for some things. Like dashes turn into checkboxes rather than unordered lists. Again, for a note app, checkboxes are really neat!
I’ve been using it for 2-3 month and really like it!
I've made a web-based one called Elltwo where you can toggle between plain text and rendered markdown on a line-by-line basis. I've found it to be a good midpoint between full on WYSIWYG and just editing raw text. It also supports equations, references, footnotes, etc.
How is the text/data stored per cell? I tried building something similar to this based off cells in Jupyter notebooks, but one issue I encountered was with having a one-way binding from editor to render.
One problem with this is with to-do lists, where instead of having the user modifying the underlying text representation in the editor, I wanted the user to be able to check off an item via the rendered html. For this, it seems like I needed three components: an editor, a render, and a non-flat data model.
The cell data is always stored as plain text, on the client side simply with an attribute. And you can only ever edit cells as text, so those issues never come up. I could see how the checkbox would be tough though because you'd have to decide which line they clicked on in the text representation.
I've thought about porting to Jupyter too, but the plugin system on JupyterLab is pretty involved, and you lose plain text storage on the server side.
It's not an editor, but ProseMirror is something that I'd recommend checking out if you wanted to build a web-based WYSIWYG markdown editor with possibly extended features. There's also Notion.so. Both of these aren't explicitly markdown, but if you keep the representation simple and flat you can always export it as such. I came across both of these editors when I saw a friend with a Chrome extension (Papier) which replaced new tabs with a markdown-esque page, but it didn't support inline math. Marktext, as mentioned in other comments, is open-source but I found it hard to just take the editor Muya and attach that onto a webpage.
That is cool no doubt, but to be clear I was referring to rendering markdown in the editor itself, as you're typing. (Not in a separate pane or browser, which almost every Markdown editor does.) For example, if you type asterisk-foo-asterisk-space you should (in the editor) see an italicized foo followed by a space, and if you move your cursor to the “foo” you should be able to see the asterisks and edit the syntax again.
Ya Typora was my first thought as well. It does almost everything I need except generate the table of contents (TOC) for things like GitHub. I've used markdown-toc and similar CLI tools, but it would be great if they were built in. A few others for ideas:
One thing I really wish some of these editors had were an IDE-like sidebar.
Whenever I'm editing markdown files, it's usually in a folder of notes, or blog posts, or writing of some kind. And it'd be nice to be able to cycle through several open files like you would in VS Code.
I tried writing my own but -- I just didn't have time and got bored of it.
Have you heard of editors that are specific for markdown and have this feature?
You should check out Mark Text (which is the main topic of this thread) - Mark Text can open folders and it looks very similar to VSCode. In the settings you can even say "open this folder by default, if I open Mark Text"... this looks like it would make quiet a nice and easy note taking solution.
> Whenever I'm editing markdown files, it's usually in a folder of notes, or blog posts, or writing of some kind. And it'd be nice to be able to cycle through several open files like you would in VS Code.
You pretty much describe how I'm using MarkText all the time. On the left, you have a file panel (or search or navigation inside your file) which you can hide/ show with a keystroke. On the top, you have several tabs for your open files. And yes, you can set a default folder.
> The important feature worth mentioning is that it directly renders the Markdown, giving a WYSIWYG feel while still being backed by a plain-text (markdown)
Exactly. It has a little bit of an IA Writer feel except that you no longer need a preview window thanks to this feature.
Before seeing this just now, Typora (https://news.ycombinator.com/item?id=21458977) was the only Markdown editor I had encountered that does this, but it is not open-source. Another was the halfway-in-between (shows both syntax and rendering) Abricotine (https://github.com/brrd/Abricotine) which has the sense to mention it as the main feature: “Markdown editor with inline preview” and “you can preview your document directly in the text editor rather than in a side pane”.
Are there any other editors like this?