Socket
Socket
Sign inDemoInstall

prism-cli

Package Overview
Dependencies
4
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    prism-cli

Syntax highlighting for command line using ANSI Escape codes


Version published
Weekly downloads
40
decreased by-27.27%
Maintainers
1
Install size
1.95 MB
Created
Weekly downloads
 

Readme

Source

Prims-cli

Prism-cli is small script for highlighting of source code files from command line

It use awesome PrismJS library by Lea Verou and support all languages that prism support, but not all tokens are supported, ANSI colors are handled by ansi-256-colors. If you want you can provide configuration file where you can use any colors you like and provide all the tokens that PrismJS support.

npm GitHub license

Preview

Terminal with JavaScript Code in color

Installation

npm install -g prism-cli

Usage

cat {FILENAME} | prism -l {LANGAUGE}

or

prism -l {LANGUAGE} -f {FILENAME}

if you want to use less you need to use -R option:

prism --color=256 -l {LANGUAGE} -f {FILENAME} | less -R

You need --color option because of detection of 256 colors don't work in less because it's not real terminal. If your terminal don't support 256 colors you can use --color without argument.

If for some reason you need ANSI formatting for each line, like when you have long multiline comments and you use tail or head to get only few lines you can use -n option to have ANSI formatting on each line:

prism -l {LANGUAGE} -f {FILENAME} -n | tail -n 10

If you need to get the html code instead of the terminal output you can pass the --html parameter

prism -l {LANGUAGE} -f {FILENAME} --html

Node.js module

You can also use it as node.js module and highlight the text in your app.

var highlight = require('prism-cli');

console.log(hightlight('function(x) { return x * x; }', 'javascript'));

There is also 3rd optional argument to hightlight function which is newline flag same as -n in command line.

3rd argument to main function is options that are optional, it can accept this options:

  • html - indicate if it should return default html code from prism.
  • newlines - if set to true it will wrap each line in ANSI formatting.
  • grammar - prism.js grammar that you can load yourself (or you can have custom grammar).
  • colors - object with mapping prism token => ANSI escape color

Config file

If you don't like default colors you can use ~/.prismrc file that should be node module with exported object, that have PrismJS tokens that map to ASNI escapes.

Example mapping for 256 color supported terminals:

module.exports = {
  'function': '\x1b[37m',
  'comment': '\x1b[38;5;241m',
  'keyword': '\x1b[38;5;31m',
  'string': '\x1b[38;5;28m',
  'punctuation': '',
  'operator': '',
  'number': '\x1b[38;5;166m',
};

List of all PrismJS tokens can be found in PrismJS source code in prism.css.

Contribution

If you use some language that lack of colors for prism token, you can create Pull Request. I will happly merge your changes.

If you create nice palette using configuration file, you can create an issue or PR, I will check it and merge if it looks good.

Contributors

License

Licensed under MIT license

Copyright (c) 2017 Jakub T. Jankiewicz

Keywords

FAQs

Last updated on 03 Dec 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc