GhostWriter is a distraction free Markdown editor
wereturtle.github.io
wereturtle.github.io
https://github.com/DaveJarvis/keenwrite#features
What sets KeenWrite apart is the ability to use (externally-defined) variables within the prose, shown in this older demo video:
https://www.youtube.com/watch?v=u_dFd6UhdV8
Also, variables work in diagrams, R expressions, and TeX equations. For example, take a look at the following screenshot:
https://raw.githubusercontent.com/DaveJarvis/keenwrite/maste...
The palette is defined in one spot, allowing colours to be used by both diagrams and typesetting the final PDF. Further, character names can be assigned and referenced within both the prose and diagrams. Also, the variables are interpolated, which allows variables to be defined in terms of other variables.
Are there any other text editors that have interpolated variable references? (I looked, but didn't find any, so started developing my own text editor.)
>Are there any other text editors that have interpolated variable references?
The closest I can think of are Frescobaldi's snippets[1], vim's `!read`, or spreadsheets. Maybe light table [2]? I haven't seen anything exactly like what you've made
[1] https://www.frescobaldi.org/uguide#help_snippet_edit_help
Maybe Leo? I'm not sure if it qualifies as a (plain) text editor, but then maybe neither does keenwrite.
Or you could pair markdown with m4 - but I wouldn't really recommend it.
I made my own markup language a while back that sort of has that feature (http://breuleux.github.io/quaint/syntax.html#variables). The variables can be defined inline or imported from a JSON file or whatever. It does reparse the whole thing on every change, so I'm not sure it scales very well. The language should be amenable to incremental parsing, though, I just haven't had time to tackle that issue. It's far more extensible and far better than Markdown IMO, but I suppose I'm biased.
Is this not the epitome of douchebaggery?
It can spark all sorts of discussions and ideas about the decisions and tradeoffs made in both projects. All aspects of this - from the ideas themselves to the community response to them - can be very valuable to the original creators of both. It can also give the original creator more information about what's been done and how. Searching for similar stuff when you lack a very well-defined term can be annoyingly difficult.
And it has what I think should be obvious value to the readers and commenters who are interested in originally posted product. Other similar projects may well serve any interested readers better than what was originally posted. Again, searching for this stuff can be difficult. Do you really want to remove this chance to discover a better-fitting product/project/whatever from all the readers?
I see no problem with people posting similar projects. With the usual caveats of civility that apply to literally every other comment as well, these stand to be highly productive comments.
I'm sure you're thinking of the more emotional aspects of this, and even here I disagree. The only situation I can think of where a poster is better off no even hearing about alternatives is if their main motivation is receiving praise on HN. And in that case, hopefully the situation will make it easier for them to realize that is what they are doing, and give them the opportunity to decide if that's something they want to continue doing.
Kanye West hops on stage at the MTV Music Awards, steals the mic from "Best Female Music Video" winner Taylor Swift, and proceeds to tell the audience why he thought Beyonce should have won instead. It was an outrageous act widely panned as 'douchey'.
Is this example much different?
ps- Besides, a good community calls a spade a spade
Exactly why every single reply to your comment has explained why you're wrong.
And honestly, if I see an advertisement _without_ any criticism, it sounds too good to be true to me. Seeing a comparison between these editors is going to provide a thousand times better information then just people talking about one or saying "hm, that looks interesting, I'll check it out sometime".
Not whatsoever. It's on-topic and allows the community to discover other related, competing projects.
https://github.com/rougier/nano-emacs (haven't tried, but clean look and defaults)
https://github.com/rnkn/olivetti (writing environment)
https://github.com/rnkn/fountain-mode (screenplay writing)
https://github.com/alphapapa/org-sidebar (sidebar)
https://github.com/jrblevin/markdown-mode (markdown, with preview too)
https://orgmode.org/ (of course, org-mode for everything)
https://github.com/junegunn/goyo.vim (distraction free mode)
https://github.com/reedes/vim-pencil (better behaviour for writing prose)
https://github.com/junegunn/limelight.vim (visual highlighting of current paragraph)
https://github.com/plasticboy/vim-markdown (better markdown syntax)
https://vim-voom.github.io/ (outliner sidebar)
Edit:
BTW, for my truly favourite aesthetic experience, I like to pair this setup with a nice dark theme, a high quality font, and cool-retro-term (https://github.com/Swordfish90/cool-retro-term/) emulating an old school CRT. Is this practical or ergonomic? Nope! But I love it!
(Of course could then use Evil in Emacs for Vim keys, or just run vim in a terminal inside Emacs...)
I used to be an Emacs user back in the early 2000s but Emacs pinky hit me something fierce (it's my own fault; I have poor typing style so I never use the right control, and I could never adapt to the control-capslock swap) so I jumped into Vim and never looked back.
But I gotta admit, Orgmode, among other things, has me feeling a bit Emacs-curious these days... ;)
I should finally learn the Vim way. At the very least so when I forget to set EDITOR for root and edit some config, I'm not totally useless. That'll teach me for not opening it up (with sudo via how Emacs handles things like ssh) in my favorite editor. And org-mode is great, I've been doing more and more in Emacs and org these days (email, notes, todo, writing, coding).
Alternatively, you may be able to hit some of the modifiers with the side of your hand instead of your pinky. That's what I did with my previous keyboard (Pok3r). It also made it easy to hit ctrl and super at the same time for some of my window manager keybinds that use both keys.
But all of this requires changing my typing style, and I've been typing the same way for, like, 25 years.
Put it this way: I chose to learn Vim instead of change how I type because that was easier. ;)
Am I just being lazy in learning the Vim plugin system? Are there pretty Vim frontends now that render all nicely like Ghostwriter et al?
Go check out the screenshots for Goyo and Limelight and ask yourself if it's pretty enough for you. Personally, I think Vim can look as good as any modern editor with a couple plugins and a decent theme and font, but we might not have the same standards. :)
I'm looking to avoid learning Vim plugins (again...again), setting up an environment, and learning keybindings for sidebars, filenav, etc...
(Sad to see the state of desktop GUI has come to this...)
It's been next on my "to learn" list for way way too long.
Make no mistake, Electron is awesome stuff, but it consumes too much memory and processing power for what it can do.
Atom, the poster child of Electron uses as much RAM as Eclipse and can't do 10% of a stock Eclipse installation. When I left it, Atom was unable to open large files, do lazy loading or similar simple stuff.
Other Electron based software also wastes too much resources for the functionality it offers. This is where it gets the most flak.
Electron is a nice cross-platform solution until it isn't. Imagine using VSCode, Discord, Slack, Matrix, Spotify, some markdown editor and now you have 6 browser instances chipping away your machine resources...not even counting the actual browser.
Yes. Also, I'm curious, do you find the webapp forms use measurably less resources than the electron version? I would've imagined they're pretty close (with Electron possibly even being lighter than a full browser tab), but I am not confident and could be completely wrong.
> Imagine using VSCode, Discord, Slack, Matrix, Spotify, some markdown editor and now you have 6 browser instances chipping away your machine resources
I, and surely tons of others on this forum, am doing this right now without issue.
Sure it's not perfect, especially if you're on battery, but most of the time it just doesn't matter to almost all of their user base.
I personally run Teams, Spotify, Evernote and Discord, but I close them as soon as finish working with them. So without issue is a bit of a stretch. Also These applications glitch in a funny, agonizing and obscure ways. They are non-deterministic blobs and this is not good.
> Sure it's not perfect, especially if you're on battery, but most of the time it just doesn't matter to almost all of their user base.
Actually, when computing is moving on portables in an ever increasing speed, this sounds bad. "It's a nice application, but it just kills your mobility. It's not important anyway, eh?"
I don't think the approach of "we have a lot of processing power and its processor is efficient anyway, so let's abuse this" is a good way to approach software development.
The reality is it's far, far easier to write a bad Qt app that sits in busy wait loops locking up an entire core while refreshing UI and destroys your battery (this is a knock on complex native app development, not Qt).
Yes. However, these efficiencies are not always translate to better Electron or WebApps on desktop applications.
> With browsers and JS sandbox VMs they are much better equipped to actively manage and spin down idle tasks.
If your code doesn't allow these idle tasks to spin down, all this work is effectively moot.
> Folks get 20+ hours of battery now on M1 macs running tons of Electron apps like Slack, Discord, VSCode, etc. all at once.
This is possible because of the process suspension capabilities of macOS. Not efficiencies of the applications themselves completely. Evernote is the 6th most power hungry application on my M1 MacBook Air, First two is Zoom and Skype. Third one is Safari. I run Teams and Discord only on my desktop, so I've no 12hr power statistics for them for now.
> The reality is it's far, far easier to write a bad Qt app that sits in busy wait loops locking up an entire core while refreshing UI and destroys your battery (this is a knock on complex native app development, not Qt).
Qt's QML simplifies this stuff tremendously. You can write a whole UI in Qt in five lines with QML, without thinking about any of this stuff, while keeping everything native and nice.
I prefer to allocate that memory to a VM or sandboxed/instrumented debug binary instead of a “communicate by sending cats” application.
I want to reiterate that using resources carelessly just because they are abundant is bad resource management. If two or three applications are that careless, neither your RAM, nor your disk space is infinite anymore.
Microsoft Word for Mac uses less RAM and power than Evernote. That’s madness! I love Evernote, but eh, that’s a bit too much for a networked note editor.
yes
has 32gb and looking for next laptop with 64
I'm slightly curious about this, pretty much all my gaming-chat has been done on discord for years now and I've literally never had an issue with it at all
As a big fan of compiled, so-called proper programming languages (and high performance code developer to some extent), I can tell that JVM is being bashed unnecessarily. JVM was heavy, I agree. Since the age of Intel Core i series, JVM is no longer heavy.
I use one of the heaviest JVM applications regularly: Eclipse. It can run in circles around any of the Electron apps with similar memory usage, and I get much more bang per MB in Eclipse. In ~1GB I can keep 3 IDEs open with plethora of files, daemons, tools and integrations. We have in-place updaters for a lot of platforms. Mac has sparkle. Linux's AppImage can update itself seamlessly.
There's no guarantee that an Electron application targets everything out of the pipeline. We still don't have an official Evernote client for Linux. Spotify for Linux is a volunteer project inside the company (which had a very painful and bloody teething too). Slack just hogs your computer. I didn't look to resource usage of Discord, but it's not light I presume.
On the update department again, I've found out that Office for Mac has updated itself again and I didn't notice. Same for Firefox.
So Electron is a nice solution, for some stuff, but it leans too much on "Hardware is cheap, network is reliable" paradigm, which is flat out wrong.
It's very cheap to build on Electron, but user pays the price. There's always the price. It all depends who's going to pay it at the end of the day.
That's because the dependencies are included. You can bundle JRE with your Java app and it will "just work" too. You can also ship a native application that "just works" too. There's certainly nothing inherent about Electron apps that make them easier to use. In fact, I'd say many of them _aren't_ easy to use by nature of them not following OS standards; each one has a new interface you have to learn.
Personally, I think the idea of a cross-platform application runtime with GUI capabilities is a good one, browser-based or otherwise. The only real problem is every app needing its own, rather than using some sort of shared (but partitioned) app subsystem based around a central browser engine. I think the Chrome apps were supposed to be essentially that, but didn't work out. That said, Chrome basically treats every tab as a separate browser instance, so Electron really isn't as bad as all that compared to a browser-based app.
The problem is everyone compares it to native, not acknowledging the dev's choice was probably Electron vs. no support off the dev's main OS (usually Windows), rather than Electron vs. native support for Mac or Linux. I still remember when you had to have Windows to run most of the interesting productivity and development apps, so I'm pretty OK with extra overhead in exchange for the expanded support.
Something I like is that everything is in plain text and it just uses iCloud for sync rather than trying to do its own thing. Or you can just use Dropbox or whatever else you want as it is just text files in a folder which I always prefer over a database and proprietary syncing solution.
You're not in a fancy CMS editor with all these whiz-bang blocks and components--those are just noise that give you more anxiety (should I be making this paragraph a hero/lead element? wait no, what about a side-by-side with a graphic? oh, but what graphic? ... hrm, time to go waste 30 minutes looking at unsplash... oh wait, what was I writing again? oh nevermind, I guess I'll come back to finish this tomorrow when my head is clear).
You're not writing content in something that feels like a programming language filled with special characters, an IDE yelling at you for every little misplaced indent or space, etc.
You're just writing text with some light formatting to emphasize structure and key elements. Maybe some lists or bullet points thrown in. A graphic figure or two. It's just like composing an e-mail, something you've done thousands and thousands of times already in your life. There's no pomp and circumstance, no steep learning curve... just writing.
I'll comment on the repo as well, but would love to see the ability to drop in a standard image.
(HN thread from Nov 2019: https://news.ycombinator.com/item?id=21462832 — I asked for other editors like this and got no other answers AFAICT. So this Mark Text is still the only open-source "WYSIWYG" Markdown editor I'm aware of.)
Edit: The https://github.com/blackhole89/notekit mentioned in a sibling comment is now another.
- Creation of tables (CTRL + T) - Export to PDF - A bit of vertical space between a title (# title) and the next line of text. - Support for Latex equations
A few things I like about GhostWriter
- Support for multiple flavors of Markdown - Export to HTML - Many themes
It’s a bit crazy to me. As a business I want to know that the tools I’m building on are going to survive. Take. My. Money.
I like the feature set, by the way.
This
* list item 1
* list item 2
mimics final representation of bullet list and so do pretty much all other syntax constructs of Markdown.The only benefit it gives for the user (if to compare with typical WYSIWYG) is a simplification of caret positioning.
Consider these MD construct:
_italics_**bold**
In MD you can easily put something in between these two words or modify words themselves. But in case of "tru-WYSIWYG" you will have this situation: <i>italics</i><b>bold</b>
with just one caret position between italics and bold. In fact there are three possible caret positions (on edges of words and between) but no WYSIWYG editor allows you to do that.<style> pre { font-family: Verdana; } </style>
The reason it took me this long to not use HTML for writing simple texts I think is that the DEFAULT font for PRE in browsers looks terrible.
Whatever else I need are simple tags like <b> <h2>, <h3>, <hr> and simple hyperlinks. I can omit <html> and <head> and <body> tags totally it seems. No problem not having them. Just nice simple MINIMAL MARKUP content-pages.
But I can easily use the full power of HTML when needed. No need to rely on non-standard markdown dialects.
Is there a specific advantage of Markdown I am missing?
I don't know if the following is valid HTML but it shows 3 list-items perfectly in my browser:
<li> one
<li> two
<li> three
There are pros and cons. I don't mind having to type a few html-tags here and there when most of my content is just plain paragraphs anyway. I can keep a list of HTML snippets handy I need daily, and copy and paste them into my text.
<li> one
The first one still more readable. The advantage of markdown is that it’s readable both formatted and unformatted.
That doesn't apply to a-links, because using those implies users made an active decision to load that resource, and thus consent.
We've stopped using outside resources for that exact matter. In many european websites today, you see extra steps being necessary before other external ressources (which includes embedded Youtube videos) are loaded - for an example of that, see https://www.heise.de/make/meldung/Wenn-die-Band-bastelt-Murm...
We host locally on our own servers. It's one of those typical "tragedy of the commons" situation in which one bad actor kills a good thing (in this case: caching).
https://github.com/michelolvera/vs-ghostwriter/releases/down...
He does provide a 7-zip portable binary for 1.8.1+.
I did download and try it briefly. It has a wordpad-like feel, pulldowns for bold, italic, indent, lists and so on. Seemed pretty nice to use.
Edit: Open source for one, I would say.
I however prefer just using Atom with Markdown Preview Plus. It has a ton of features built in with sane extensions, or you can integrate it with Pandoc:
https://github.com/atom-community/markdown-preview-plus/blob...
I'm sure VS Code has something similar, but only from non-trusted third parties.
Generally, your options on Linux consist of:
- A couple apps that have been around and remain essentially unchanged since the '90s,
- Some recent, well-meaning but poorly executed programs, and
- A nice-looking but infuriatingly clunky and out-of-place Electron app which I'm loathe to use on principle.
I'm very glad to see a first-class Linux app in this category.
A self-hosted open source option here if you can do some basic web-app setup and maintenance is HedgeDoc.
That's quite a qualifier you have there - there's no meaningful distinction between a text editor and a non-programming text editor. You have older options like Emacs and Vim, newer options like VS Code and Atom, and a broad array in between like Geany, Textadept, Kate, Pluma, and on and on.
In the non-programming text editor category you nonetheless have things like Joplin, Obsidian, Notable, and Boostnote. And of course web editors like Evernote, Notion, and Roam, plus TiddlyWiki, Dokuwiki, PmWiki, and so on in the wiki category.
Simple, minimal, lightweight, has a dark theme. There's a distraction free mode which basically fades out everything except for the sentence you are writing. And a Hemingway mode which disables the delete key :)
I've gotten used to writing in Markdown since I started using GhostWriter as it makes that easy. For instance when I type "[" it automatically adds "]" as well. Worth a try!
My html-notepad (https://html-notepad.com/) (Sciter based) that allows to edit documents in as WYSIWYG as Markdown forms is just 2 Mb ( also compressed installer ) - 40 times smaller.
A markdown editor in single HTML file. Works offline too.
Demo URL: https://rioastamal.net/kapur/
https://vim.fandom.com/wiki/Keep_your_cursor_centered_vertic...
Don't know a way to set it to a percent, but could be nice too, indeed.
What I do in my ~/.vimrc is:
" Number of lines (context) around the cursor
" You may like 3, or 5, or 10
" A high number keeps the cursor in the middle of the editor
set scrolloff=999
Then... it's always in the middle of the screen/window, even when working at really big resolutions.- Open Source https://www.libhunt.com/r/ghostwriter
- Commercial https://www.saashub.com/ghostwriter-alternatives
For the releases, I don't actually see a published tarball for the bundle (on github) so I'm going to further think that they mean "...first you have to follow the compile instructions to create the output bundle (binaries)" - get Xcode installed, etc. and follow the second macOS readme.
Better answer on bundles: https://en.wikipedia.org/wiki/Bundle_(macOS)
edit: below people mentioned Typora - that's what I want in my favorite editors (vscode/obsidian)