4 Markdown tools for the Linux command line

Command-line Markdown tools are fast, powerful, and flexible. Here are four utilities to try.

Subscribe now

Get the highlights in your inbox every week.

When it comes to working with files formatted with Markdown, command-line tools rule the roost. They're light, fast, powerful, and flexible, and most of them follow the Unix philosophy of doing one thing well.

Take a look at four utilities that can help you work more efficiently with Markdown files at the command line.

mdless

If you've hung around the Linux command line for a while, you're probably familiar with a text-file viewer called less. Sure, you can use less to view Markdown files—but the result is a tad dull. How can you view Markdown files with a bit of pizzazz in a terminal window? By using mdless.

You can move around using the arrow keys on your keyboard, and mdless packs quite a good search function.

Not only does mdless display text, but it also renders formatting like headings, bold, and italics. It can also display tables and do syntax highlighting of code blocks. You can also customize the look and feel of mdless by creating one or more theme files.

Markdown lint tool

When you're typing quickly, you make mistakes. If you miss a bit of formatting when using Markdown (or any other markup language), it can cause problems when you convert your file to another format.

Coders often use tools called linters to check for correct syntax. You can do the same for Markdown using the Markdown lint tool.

When you run this tool over a file that's formatted with Markdown, it checks the formatting against a set of rules. Those rules govern the structure of a document, including the order of header levels, incorrect indentation and spacing, problems with code blocks, the existence of HTML in a file, and more.

Combining files of any kind can be a pain. Take, for example, an eBook I'm pulling together. It's a collection of essays that were first published in my weekly email letter. Those essays were in individual files, and being the masochist that I am, I combined them in a messy, manual way.

I wish I'd known about mdmerge before I started that project. It would have saved me a lot of time and energy.

mdmerge, as you've probably guessed from its name, combines two or more Markdown files into a single file. You don't need to type the names of the files at the command line. Instead, you can add them to a file called book.txt and use that as an input file for mdmerge.

That's not all mdmerge can do. You can add a reference to another document—either one formatted with Markdown or a piece of source code—and pull it into your main document. That enables you to create master documents that you can tailor to specific audiences.

mdmerge isn't one of those utilities you'll use all the time. When you need it, you'll be glad it's on your hard drive.

bashblog

bashblog isn't strictly a tool for working with Markdown. It takes files that are formatted using Markdown and uses them to build a simple blog or website. Think of bashblog as a static site generator, but one that doesn't have a bunch of fragile dependencies. Just about everything you need is in a shell script weighing just under 50KB.

To use bashblog, all you need is a Markdown processor installed on your computer. From there, you edit the shell script to add information about your blog—for example, its title, your name, your social media links, and the like. Then run the script. A new post opens in your default text editor. Start typing.

After you save a post, you can publish it or save it as a draft. If you choose to publish the post, bashblog generates your blog, posts and all, as a set of HTML files that you can upload to a web server.

Out of the box, your blog is bland but serviceable. You can edit the site's CSS file to give it a look and feel all your own.

Topics

About the author

Scott Nesbitt - I'm a long-time user of free/open source software, and write various things for both fun and profit. I don't take myself all that seriously and I do all of my own stunts.
You can find me at these fine establishments on the web: The Plain Text Project, Open Source Musings, The...

5 Comments

I'd like to also suggest the excellent node tool, vmd. It can be used as a markdown file viewer (using the GitHub flavor), but it also updates automatically if the file changes, so it is very useful to it open on a file you are actively editing. I've used it for years.

Footer

The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat.

Opensource.com aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring that you have the necessary permission to reuse any work on this site. Red Hat and the Red Hat logo are trademarks of Red Hat, Inc., registered in the United States and other countries.