Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/Titor8115/mandown

man-page inspired Markdown viewer
https://github.com/Titor8115/mandown

c cli command-line console linux man man-page markdown ncurses ncurses-ui terminal tui

Last synced: 5 days ago
JSON representation

man-page inspired Markdown viewer

Awesome Lists containing this project

README

        

# mandown - mdn

A man-page inspired Markdown pager written in C.

**Name change:** executable's name changed to `mdn`

## What is it

Need to lookup things from README? Or from manual page? Or perhaps just want to install something cool...

## Update

- User Customization
- Added control schemes: mdn, vim, less(default since mdn isn't complete)
- Config file location: `~/.config/mdn/mdnrc`

## Sample

![screenshot](./screenshot.png)

## Installation

Current version is still being developed for some HTML tags. However, it should work on most Markdown documents.

### Homebrew
```shell
$ brew install mandown
```

The installed binary `mdn` would be at `/usr/local/bin/`

```shell
$ git clone https://github.com/Titor8115/mandown.git
$ cd mandown
$ make install
```

To remove the binary, you can run the commands below, or remove manually.

```shell
$ cd mandown
$ make uninstall
```

If you just want to compile and test it.

```shell
$ cd mandown
$ make
```

Feel free to create an issue.

## Usage

Check out the new sample

```shell
$ mdn sample.md
```

Mouse wheel scrolling is supported! (if your terminal emulator allows)

Scroll Up: , k

Scroll Down: , j

Page Up: space bar, pg up, fn + ↑a, b

Page Down: back space, pg down, fn + ↓, f

Select & Get href: tab or double click mouse 1 & enter

Exit: q

To read detailed usage, run `mdn -h`

## Library dependency

Mandown requires `libncurses(w)` and `libxml2` as compile-time dependencies.

Make sure you have them installed before compiling.

### Debian

```shell
$ apt-get install libncursesw5-dev
$ apt-get install libxml2-dev
```

## Todo

- [x] Line fold/wrap on white space
- [x] Optimized resizing
- [ ] Table and contents rendering
- [x] Makefile makeover