An open API service indexing awesome lists of open source software.

https://github.com/stfbauer/markshell

Markshell allows you to convert Markdown to a beautiful output on the shell, Ideal for any custom built NodeJS CLI.
https://github.com/stfbauer/markshell

Last synced: 11 months ago
JSON representation

Markshell allows you to convert Markdown to a beautiful output on the shell, Ideal for any custom built NodeJS CLI.

Awesome Lists containing this project

README

          

![Markshell Logo](https://github.com/StfBauer/markshell/blob/master/assets/markshell-banner.png?raw=true "Markshell Banner")

# Markshell - Console output for Markdown

Markshell let you output any [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) file to the console. This tool also includes theming support to change the out put to your favorite colors.

Syntax hightlighting support for source code on the console is provided base on [PrismJS](https://prismjs.com)

The output on the console then looks like this:

![Sample Console Output][markshell]

This package uses [Chalk](https://www.npmjs.com/package/chalk) for coloring the output.

## Install

```shell
npm install markshell --save
```

## Usage

To use Markshell in your CLI code use something like this.

```javascript
const path = require('path');
const fs = require('fs');
const chalk = require('chalk');

const markshell = require('markshell');

const pathToFile = path.join(__dirname,
'path to my markdown file'
);

if (fs.existsSync(pathToFile)) {

// print markdown file
markshell.toConsole(pathToFile);

};
```

## Theme

Setting theme for the console can be accomplished with the following code.

```javascript
// get the default theme
const theme = markshell.getTheme();
```

Gives you the default themeing define in the package. the following theming slots are available.

```javascript
// define headline format
theme.headline = chalk.bold.keyword('lime'),

// define bold text layout
theme.bold = chalk.bold.lime,

// define italic text
theme.italic = chalk.italic.keyword('lime');

// define strikethrough style
theme.strikethrough = chalk.strikethrough.keyword('lime');

// define code output
theme.code = chalk.bold.keyword('lime'),

// define inline code output
theme.inlineCode = chalk.bold.keyword('lime'),

// define blockquote style
theme.blockQuote = chalk.italic.bgKeyword('lime').keyword('black');
```

Finally set the new theme for the output.

```javascript
markshell.setTheme(theme);
```

The output should then transformed into this:

![Themed markshell output][themed-markshell]

For full color reference check out: [Chalk](https://www.npmjs.com/package/chalk)

### Output raw content

I case you like to work with the raw formatted content.

```javascript
const path = require('path');
const fs = require('fs');
const chalk = require('chalk');

const markshell = require('markshell');

const pathToFile = path.join(__dirname,
'path to my markdown file'
);

if (fs.existsSync(pathToFile)) {

// Get the formatted content
var formattedContent = markshell.toRawConsole(pathToFile);

...

};
```

### Use Markshell from the terminal

You can install markshell as a global package too.

```bash
npm install -g markshell
```

To use markshell simply execute:

```bash
markshell ./path-to-your/markdown.md
```

### Used by

[![Microsoft CLI](https://n8d.at/wp-content/uploads/2021/11/pnp-microsoft-365-cli-black-300.png "Microsoft CLI")](https://pnp.github.io/cli-microsoft365/)

Have fun using it!!! 🖤🖤🖤

[markshell]: https://n8d.at/wp-content/uploads/2020/06/console-output.png
[themed-markshell]: https://n8d.at/wp-content/uploads/2020/06/themed-console-output.png