Advanced Markdown Editors – Mark Text and VNote
Mark It Up
Upgrade your Markdown game! Markdown editors Mark Text and VNote both offer a wide range of tools and options for users who want to get the most out of a text editor.
When it comes to text editors, they tend to focus on simplicity. It's not difficult to see why. Markdown was originally introduced as a simplified alternative to existing markup languages, so it appeals to the minimalist users among us. Thus, there are plenty of Markdown-based editors of varying degrees of quality that ride the wave of minimalism and distraction-free writing. Sure, you don't need much if you mostly write README files and pen blog posts. But you'll quickly hit a ceiling if you venture beyond that.
Fortunately, there are several quality Markdown editors that cater to more demanding users, including Mark Text and VNote.
Mark Text
If you are looking for a Markdown editor that offers advanced functionality dressed into an approachable and unobtrusive interface, you can do much worse than giving Mark Text [1] a try. The first thing you'll notice is that the editor is available for several platforms, a real boon if you have to do writing on Linux as well as Windows and macOS. On the project's website, you'll also find DEB and RPM packages compatible with many mainstream Linux distributions. Better still, Mark Text is also distributed as an AppImage self-containing package that requires no installation. Download the AppImage file, make it executable, and then double-click on it to launch the editor. While the file weighs a hefty 103MB, it offers the most straightforward way of running Mark Text.
When you launch Mark Text, you're greeted with an interface devoid of embellishments (Figure 1). This is because all features and menu items are tucked under the hamburger icon in the upper-left corner of the interface. And while you can start writing right away, it's worth exploring what the editor has to offer and configuring it to your liking (Figure 2). To configure Mark Text, click on the hamburger menu and choose File | Preferences. Since the editor has keyboard shortcuts for practically all actions, you can evoke the Preferences dialog by pressing the Ctrl+, key combination.
All available settings in the Preferences dialog are grouped into sections. In the General section, for example, you can configure the editor's overall behavior. Here, you can enable and configure the autosave feature as well as specify what the editor should do when it starts. The Editor section allows you to tweak a wide range of options: from font and line height to syntax and brackets autocompletion. In the Markdown section, you can enable support for footnotes as well as superscript and subscript tags. Head to the Spelling section to enable spell checking, install dictionaries for different languages, and specify the available spell-checking options. As with any editor worth its salt, Mark Text supports themes, and you can pick the one you like in the Theme section. Finally, the Image section lets you specify how the editor should handle images. You can choose to keep images in their original locations with absolute paths pointing to them, or you can opt for uploading inserted images to one of the supported image hosting services. If you choose the latter option, you can configure the settings of the service you want to use in the Image Uploader section.
With all key settings configured, you're ready to put Mark Text to writing duty. Although Mark Text allows you to work on a single document, the editor also makes it possible to open an entire folder. This simple feature is indispensable for working on projects containing multiple Markdown files like books and documentation. When you open a folder, its contents are shown as a hierarchical tree in the left sidebar. The tree gives you quick access to all files in the opened folder as well as all subfolders and their contents. Select a file in the left sidebar, and it opens in a separate tab. Thanks to the support for tabs, you can open as many files as you need and effortlessly switch between them.
For each file, Mark Text automatically generates a table of contents based on the document's headings. Switch to the Table of Contents view in the left sidebar (Figure 3), and you can quickly jump to specific parts of the document by clicking on the desired headings.
Mark Text offers plenty of other creature comforts. As you would expect, the editor is equipped with word counting capabilities, and a small indicator in the upper-left corner of the left sidebar shows the current word count. Mouse over it, and you'll see character and paragraph counts in a pop-up. Clicking on the counter itself cycles through the available counters (word, paragraph, character).
Mark Text also makes it easy to insert content blocks (Figure 4): type @, and you should see a pop-up list of the available blocks such as headings, tables, math formulas, and diagrams. Select the desired block to insert it into the current position in the text. Speaking of diagrams, Mark Text supports several diagram types, each powered by a specific JavaScript engine: Vega-Lite [2], flowchart.js [3], js-sequence-diagrams [4], and Mermaid [5]. To insert a diagram, choose the desired type and enter the diagram data in the supported format (Figure 5).
As you'd expect, the editor allows you to switch to the source code view, which can come in useful when you need to edit Markdown code directly. In addition to that, Mark Text features two editing modes: Typewriter mode and Focus mode. You can enable one or both of them. When the Typewriter mode is enabled, the editor automatically scrolls the document when you move up and down in the text. Enable the Focus mode, and the editor highlights the current paragraph, while fading the rest of the text.
If you have to save a Markdown file in the HTML or PDF formats, you'll be pleased to learn that Mark Text allows you to do just that. Keep in mind, though, Mark Text can only export the currently opened file and not all files in the directory.
VNote
While Mark Text is suitable for practically anyone working with Markdown, VNote [6] caters to programmers. Of course, it doesn't mean that VNote is of no use to mere mortals, but the editor does have features designed specifically for programmers and casual coders alike. VNote is also available as an AppImage package, so you can give it a try without going through an installation procedure.
Unlike Mark Text that opens a Markdown file stored anywhere on the system, VNote prompts you to set up a dedicated directory for your Markdown files. This approach offers several advantages. Having all your notes in one place makes it easier to synchronize them and create backups. You can also easily manage and organize the notes directly within the editor. And unlike Mark Text, VNote doesn't try to wrap its functionality into a slick disguise, but rather exposes all its features through a functional but somewhat busy interface (Figure 6). It does, however, follow established conventions, and it puts all essential tools right at your fingertips.
All the features that any decent editor is expected to have are here and accounted for. This includes several light and dark themes, extensive support for shortcuts, and a wide range of configurable options. Similar to Mark Text, VNote supports several image hosting services.
All notes in VNote are organized into separate directories called notebooks (Figure 7). Each notebook can hold an unlimited number of notes and sub-notebooks. The navigation sidebar on the left gives you quick access to all the notebooks and their contents. While VNote is designed to store notes in a dedicated directory, the editor does allow you to open Markdown files stored elsewhere (Figure 8). Switch to the Explorer tab in the navigation sidebar, and you can use a file tree to locate and open the desired file. The navigation sidebar has two other useful tabs. The History tab contains a list of all previously opened files (handy if you need to quickly reopen a file), while the Tag tab lets you access notes that have a specific tag. VNote also supports tabs, so you can open multiple Markdown files and work on them. VNote doesn't have an editable preview mode like Mark Text. Instead you have to manually switch between the Edit and Read modes. In the Edit mode, you work directly with the Markdown code. VNote offers a word count feature, but it has an interesting twist to it: the Word Count pop-up window shows separate statistics for the Read and Edit modes. The latter count is usually higher, since it includes characters that are not visible in the Read mode. The stats also show character counts including and excluding spaces. All of this gives you a more nuanced and accurate word count estimate.
When it comes to editing, VNote offers several features that cater to its intended audience. First, there is a line numbering feature that offers several numbering options. While VNote doesn't have a dedicated "focus" mode, it offers an option to highlight the line with the cursor. Highlight selected word is yet another feature essential for working with code. Select a word, and the editor automatically highlights all its occurrences in the file.
Things get even more interesting when you take a look at the right sidebar that features several tabs. As the name suggests, the Outline tab displays an automatically generated outline (or table of contents, if you like) of the current document. You can quickly jump to the desired place in the file by clicking on the appropriate heading. The Cart tab acts as temporary storage for individual Markdown files. Add files here to get quick access to them when needed.
The Snippets tab is probably the most interesting one (Figure 9). Similar to many code editors, VNote makes it possible to define and store frequently-used text fragments. For example, if you often need to include the same preamble, you can save yourself a lot of typing by creating a snippet with the preamble's text and insert it on demand. When creating a snippet, you have two useful items at your disposal. The @@ element indicates where to place the cursor in the inserted snippet. For example, in the following snippet, the cursor is placed between the code fences, so you can start entering code as soon as the snippet is inserted:
```php @@ ```
The $$ element indicates selection, meaning that if you select a text fragment in the file and insert a snippet, it will be wrapped around the selection. Replace @@ with $$ in the example above, and you can instantly turn a selected text fragment into a code block by applying the snippet to the selection. VNote offers a clever way to quickly insert snippets. In the Edit mode, press Ctrl+E S, and you should see a pop-up list of all snippets. Select the desired snippet to insert it. Better still, if you assigned a key to the snippet, you can insert it by pressing Ctrl+E S and then the assigned key.
VNote features another useful time-saver called Magic Words. These are basically short strings that automatically expand into predefined texts. The %da% Magic Word expands into the current date, while %note% expands into the current note's name. VNote comes with several Magic Words preconfigured, and you can view them by creating a new note and typing %help% in the Note name field. Of course, you can define your own Magic Words as well as use Magic Words in snippets.
This is just a small selection of what VNote has to offer. Note templates, support for diagrams, tagging and export functionality, and powerful search capabilities – there are plenty of other features that make VNote a rather capable and flexible Markdown editor.
Final Word
Mark Text and VNote cater to different target groups, and each offers functionality that the intended audience may find useful. But it's not a competition, and you don't have to settle for just one of them. In your daily work, you may switch between different tasks and find each editor uniquely suited to the task at hand. So give both editors a try, and you may very well end up using both on a regular basis.
Infos
- Mark Text: http://github.com/marktext/marktext
- Vega-Lite: http://vega.github.io/vega-lite/
- flowchart.js: http://flowchart.js.org
- js-sequence-diagrams: http://bramp.github.io/js-sequence-diagrams/
- Mermaid: http://mermaid-js.github.io/mermaid/
- VNote: http://tamlok.github.io/vnote/
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.