GithubHelp home page GithubHelp logo

maxim-uvarov / mdcat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from swsnr/mdcat

0.0 0.0 0.0 3.09 MB

cat for markdown

Home Page: https://crates.io/crates/mdcat

License: Mozilla Public License 2.0

Shell 1.41% Python 0.58% Lua 0.21% Rust 97.80%

mdcat's Introduction

mdcat

I no longer maintain this tool and its crates.

Fancy cat for Markdown (that is, CommonMark):

$ mdcat sample.md

mdcat showcase with different colour themes

mdcat in WezTerm, with "One Light (base16)", "Gruvbox Light", and "Darcula (base16)" (from left to right), and JetBrains Mono as font.

Features

mdcat works best with iTerm2, WezTerm, and kitty, and a good terminal font with italic characters. Then it

  • nicely renders all basic CommonMark syntax,
  • highlights code blocks with syntect,
  • shows links, and also images inline in supported terminals (see above, where "Rust" is a clickable link!),
  • adds jump marks for headings in iTerm2 (jump forwards and backwards with ⇧⌘↓ and ⇧⌘↑).
Terminal Basic syntax Syntax highlighting Images Jump marks
Basic ANSI¹
Windows 10 console
Terminology
iTerm2 ✓³
kitty ✓³
WezTerm ✓³
VSCode ✓³
  1. mdcat requires that the terminal supports strikethrough formatting and inline links. It will not render strikethrough text and links correctly on terminals that don't support these (e.g. the Linux text console)
  2. VTE is Gnome’s terminal emulation library used by many popular terminal emulators on Linux, including Gnome Terminal, Xfce Terminal, Tilix, etc.
  3. SVG images are rendered with resvg, see SVG support.

Not supported:

  • CommonMark extensions for footnotes and tables.

Usage

Try mdcat --help or read the mdcat(1) manpage.

Installation

  • Release binaries built on Github Actions.
  • 3rd party packages at Repology
  • You can also build mdcat manually with cargo install mdcat (see below for details).

mdcat can be linked or copied to mdless; if invoked as mdless it automatically uses pagination.

Building

Run cargo build --release. The resulting mdcat executable links against the system's SSL library, i.e. openssl on Linux. To build a self-contained executable use cargo build --features=static; the resulting executable uses a pure Rust SSL implementation. It still uses the system's CA roots however.

The build process also generates the following additional files in $OUT_DIR:

  • Completions for Bash, Zsh, Fish, and Powershell, for both mdcat and mdless, in completions sub-directory.
  • A mdcat.1 manpage, build from mdcat.1.adoc with the asciidoctor command from AsciiDoctor. If asciidoctor is not found the build script prints a warning.

These additional artifacts are included in the release builds. If you package mdcat you may want to include these files too.

You may also want to include an mdless link to mdcat (see above).

Troubleshooting

mdcat can output extensive tracing information when asked to. Run mdcat with $MDCAT_LOG=trace for complete tracing information, or with $MDCAT_LOG=mdcat::render=trace to trace only rendering.

License

Copyright Sebastian Wiesner [email protected]

Binaries are subject to the terms of the Mozilla Public License, v. 2.0, see LICENSE.

Most of the source is subject to the terms of the Mozilla Public License, v. 2.0, see LICENSE, unless otherwise noted; some files are subject to the terms of the Apache 2.0 license, see http://www.apache.org/licenses/LICENSE-2.0

mdcat's People

Contributors

swsnr avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar fspillner avatar p00f avatar muhammedzakir avatar kianmeng avatar maxice8 avatar hashworks avatar cherryblossom000 avatar batkiz avatar wezm avatar byron avatar supersandro2000 avatar rashil2000 avatar norman-abramovitz avatar igalic avatar matthiasbeyer avatar shiroyasha avatar herbygillot avatar davidtwco avatar dtolnay avatar opexxx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.