DEV Community

I had to build my own Markdown Editor because no tool was fast enough for me.

Andrew Brown πŸ‡¨πŸ‡¦ on February 14, 2020

TL;DR I built an open-source markdown editor called Fast Author to improve my productivity when creating written articles specific for t...
Collapse
Β 
moopet profile image
Ben Sinclair β€’

Nice, but I think you built it because you couldn't find a tool that had all the features you want built-in. The line about it not being fast enough is to do with workflow, not the editor.

I mean, Vim is pretty fast at editing markdown, but it doesn't have image editing features, and that's ok. Other people's workflows will be to use an image editor to edit images and a text editor to edit text. Building a behemoth is fine, but it's not going to speed up other people's workflows.

Collapse
Β 
andrewbrown profile image
Andrew Brown πŸ‡¨πŸ‡¦ ExamPro β€’ β€’ Edited

The line about it not being fast enough is to do with workflow, not the editor.

I thought that was obvious. I guess I'll do more exposition dumps in the future.

Building a behemoth is fine, but it's not going to speed up other people's workflows.

What's your point here? I built it for me. If you're doing the same kind of content creation as me then it will absolutely speed up your workflow.

Collapse
Β 
haideralipunjabi profile image
Haider Ali Punjabi β€’

Just started using Typora, but maybe it's time to switch :)

Collapse
Β 
rickmills profile image
Rick Mills β€’

This is awesome, as someone in the middle of writing a ton of markdown content I share your pain with the existing editors out there so will be giving this a try!

One thing I am curious about - grammarly. Did you manage to get this working? It's super tedious copy/pasting into their online editor to check things constantly.

Collapse
Β 
andrewbrown profile image
Andrew Brown πŸ‡¨πŸ‡¦ ExamPro β€’

Not yet, but its fairly easy to load Chrome Extensions into Electron:

Just have to download the extension and then use the Electron API addDevToolsExtension

const path = require('path')
const os = require('os')

BrowserWindow.addDevToolsExtension(
   path.join(os.homedir(), '/Library/Application Support/Google/Chrome/Default/Extensions/fmkadmapgofadopljbjfkapdkoienihi/4.3.0_0')
)

electronjs.org/docs/tutorial/devto...

Its a pain point for myself as well. I'm just in the middle of publishing a 10 hour course, so something that show up on Fast-Author in a week or two

Collapse
Β 
antjanus profile image
Ant The Developer β€’

I totally understand your motivation. I've written several Electron-based markdown editors in a struggle to do the same as you. Though I think I made my scope too large to satisfy.

The current editors out there are really not good enough because many tools are great for writing but not for editing, publishing, or writing multi-markdown documents.

Collapse
Β 
andrewbrown profile image
Andrew Brown πŸ‡¨πŸ‡¦ ExamPro β€’

Inkdrop comes as close as possible since it has taken a modular approach where you can install various plugins, though InkDrop has yet to reach the maturity which will satisfy my needs.

Collapse
Β 
ben profile image
Ben Halpern β€’

Wow, well done.

Collapse
Β 
lampewebdev profile image
Michael "lampe" Lazarski β€’

Nice work :)

Collapse
Β 
sirseanofloxley profile image
Sean Allin Newell β€’

No reactive nonesense.

Blam-o!

I'll have to check it out.

Collapse
Β 
andrewbrown profile image
Andrew Brown πŸ‡¨πŸ‡¦ ExamPro β€’

Its much more stable today. Once you make a project public you realize you can't just keep pushing random commits.

Collapse
Β 
charbelsako profile image
Charbel Sarkis β€’

Very nice.

Collapse
Β 
corelhas profile image
Carlos Orelhas β€’

Good Job Andrew, an amazing project you built!

Collapse
Β 
deadcoder0904 profile image
Akshay Kadam (A2K) β€’

Amazing job. Since I write blogs too, I wanted to build something like this but it uploads to Imgur so that I don’t have to manually upload to Imgur & link images to it. I’ll probably build it πŸ˜‚

Collapse
Β 
bmartel profile image
Brandon Martel β€’

Nice to see another Mithril user. One of the most underrated libs around, and my personal go to for years when I'm on a tight deadline. Really nice work.

Collapse
Β 
markoshiva profile image
Marko Shiva β€’

A JavaScript error occurred in the main process
Uncaught Exception:
Error:
Something went wrong installing the "sharp" module

Module did not self-register.

Collapse
Β 
andrewbrown profile image
Andrew Brown πŸ‡¨πŸ‡¦ ExamPro β€’

I spent so many hours on this.

You may need to change 0.24 in the package json to 0.23.4 , and then

rm -rf node_modules/sharp

And ensure you do the electron-rebuild setup. That might fix it.

I think once we build binaries things will be easier

Collapse
Β 
khuongduybui profile image
Duy K. Bui β€’

For those who thought "SharpJS, what???" like I did, Andrew was referring to Sharp (sharp.pixelplumbing.com/), not SharpJS (iridiumion.github.io/SharpJS/)