1.0.9 • Published 3 years ago

scarbon v1.0.9

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 years ago

Scarbon (Scuffed Carbon) is an elegant code renderer based off Carbon built 100% locally. Scarbon made using Shiki for highlighting, Prettier for formatting, and Canvas for rendering.

Banner

Example

The below snippet creates a render of itself

const Scarbon = require("scarbon");
const fs = require("fs");

(async () => {
  const render = await new Scarbon({
    theme: "Min Dark", // One of the default themes (Full list below)
    base: "transparent", // Color behind the codeblock
    width: 2048, // Set the width of the image
    radius: 32 // Set the radius of the codeblock corner
  });

  const code = fs.readFileSync(__filename, "utf8"); // Get current file contents
  const output = render.pretty(code); // Get file buffer

  fs.writeFileSync("code.png", output); // Write buffer to file
})();

Output image (code.png) Output

Documentation

Methods

const Scarbon= require("scarbon")

Scarbon.list() // List of registered themes to load by name
Scarbon.register(theme) // Register a theme to load by name
new Scarbon(options) // { Promise } => Renderer (below)

Renderer (class)

{
	png(code, options)
	svg(code, options)
	pretty(code, options)
}

Theme (string, object) The theme to use, can be a registered theme name, a URL to a VSCode theme JSON, a path to a VSCode theme JSON file, VScode theme object

Code (string) The text to format (Should match the language, and formatter parser if provided)

Options (object) Option|Description|Type|Default|Availability :---|:----:|:----:|:----:|---: formatter|Options for Prettier|formatOptions|formatOptions|all background|Background color for the codeblock|color string|theme background|all padding|Amount of padding to add (8 => 1/8 of width)|number|8|pretty width|Width of output image in pixels|number|1200|pretty, png radius|Radius of the codeblock background corners|number|16|all size|Size of the code font|number|24|all font|Font to use for the code (Experimental)|string|Consolas|all base|Color behind code block|color string|xs #ABB8C3|pretty lang|Language to highlight in|language string|javascript|all theme|Theme to use|theme|nord|constructor

formatOptions (object) Option|Description|Type|Default :---|:----:|:----:|---: format|Engine for language formatting|string|babel trailingComma|Whether to add a comma to the end of objects|string (all, none, es5)|none tab|Indent size|number|2 length|Max length before wrapping text|number|80 bracketSpacing|Whether to add space in between {}|boolean|true semicolon|Whether to add semicolons to the end of lines|boolean|true singleQuote|Whether to use ' on strings instead of "|boolean|false disabled|Whether to disable the formatter all together|boolean|false

Default Theme List

  • 3024 Night
  • A11y Dark
  • Base 16 Dark
  • Base 16 Light
  • Blackboard
  • Cobalt
  • Dracula
  • DuoTone Earth
  • DuoTone Forest
  • DuoTone Sea
  • DuoTone Sky
  • DuoTone Space
  • Github Dark
  • Github Light
  • Hopscoth
  • light-plus
  • Lucario
  • Material Darker
  • Material Default
  • Material Lighter
  • Material Ocean
  • Material Palenight
  • Min Dark
  • Min Light
  • Monokai
  • Night Owl Italics
  • Night Owl
  • Nord
  • Oceanic Next
  • One Dark
  • One Light
  • Panda
  • Paraiso Dark
  • Paraiso Light
  • Seti
  • Shades of Purple Italics
  • Shades of Purple
  • Slack Dark
  • Slack Ochin
  • Solarized Dark
  • Solarized Light
  • Synthwave 84
  • Twilight
  • Verminal
  • VS Code
  • Zenburn
1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago