Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Node package and CLI tool to convert code into image with syntax highlighting
Node package and CLI tool to convert code into image with syntax highlighting.
npm install --save catage
npm install --global catage
const path = require( 'path' );
// import `convert` function and constants
const { convert, IMAGE_FORMATS, LANGUAGES, THEMES } = require( 'catage' );
// convert a code file to an image file
convert( options );
Name | Use | default Value |
---|---|---|
inputFile | Required: Relative or absolue path of a code (text) file. | undefined |
outputFile | Required: Relative or absolue of the output image file. | undefined |
language | Language of the code file. | LANGUAGES.DART |
theme | Theme for the syntax highlighting. | THEMES.FIREWATCH |
format | Format of the output image file. | IMAGE_FORMATS.PNG |
ignoreLineNumbers | Avoid adding line numbers to the code. | false |
scale | DPI scale factor of the output image. | 2 |
hasFrame | Add OSX window frame in the output image. | true |
execute | Execute a command with inputFile and inject result in output image file. | null |
displayCommand | An alternative command to display in the output image. | execute option value |
Supported themes: https://iterm2colorschemes.com/
Supported languages: https://github.com/highlightjs/highlight.js/tree/master/src/languages
Supported image formats: png,jpeg
const path = require( 'path' );
// import library functions and constants
const { convert, IMAGE_FORMATS, LANGUAGES, THEMES } = require( '../' );
// create image of a code file
convert( {
// by ignoring `outputFile` option, promise resolution will return an image buffer
outputFile: path.resolve( __dirname, 'set-data-structure.png' ),
inputFile: path.resolve( __dirname, 'set-data-structure.dart' ),
language: LANGUAGES.DART,
format: IMAGE_FORMATS.PNG,
theme: THEMES.FIREWATCH,
ignoreLineNumbers: false,
scale: 2,
hasFrame: true,
frameTitle: 'Dart Sets Data Structure',
execute: 'dart __FILE__', // `__FILE__` placeholder is mandatory
displayCommand: 'dart sets.dart',
} ).then( () => {
console.log( 'DONE!' );
} );
$ catage --help
Usage: catage [options] <inputFile> <outputFile>
Convert code (text) file to an image file
Options:
-v, --version Prints current CLI version.
-l, --language <language> Language of the code in the input file
-t, --theme <theme> Theme for the syntax highlighting
-f, --format <format> Format of the output image file ( png / jpeg / jpg / svg ).
-s, --scale <scale> DPI scale factor of the output image
--no-line-numbers Ignore line numbers in the code
--no-frame Ignore OSX window frame in the output image
--frame-title <frameTitle> Title of the OSX window frame
--execute <execute> Command to execute with the code file. You must provide `__FILE__` placeholder in the command string.
--display-command <displayCommand> An alternative command to display in the output result.
-h, --help output usage information
catage recursive-function.py recursive-function.png -l python -t "Builtin Solarized Light" --frame-title "Recursive Function" --execute="python3 __FILE__" --display-command="python recursive-function.py"
catage go-defer.go go-defer.jpg -l go -t AtomOneLight -f jpeg --no-line-numbers --no-frame
language
option that does not listed in supported languages. Since it is a plain text file, you can not use execute
option. Also the code won't be syntax highlighted.catage
command, then make sure your program is inheriting STDIO
of the shell process which started it. This is necessary for syntax highlighting.This tool is dependent puppeteer
NPM package which has external dependency on headless Chromium browser. After installation, puppeteer
downloads Chromium browser which could be more than 100MB in zipped format.
FAQs
Node package and CLI tool to convert code into image with syntax highlighting
The npm package catage receives a total of 19 weekly downloads. As such, catage popularity was classified as not popular.
We found that catage demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.