src2img
TypeScript icon, indicating that this package has built-in type declarations

3.0.1 • Public • Published

src2img

Converts source code to high quality images.

Install

$ npm i src2img

Usage

import fs from 'node:fs/promises'
import { join } from 'node:path'
import src2img from 'src2img'

const src = `path/to/sources`
const out = `path/to/out`

const names = await fs.readdir(src)
const srcs = Promise.all(
  names.map(async name => ({
    name,
    src: await fs.readFile(join(src, name), `utf8`),
  })),
)

const images = await src2img({
  // Font size and unit control the size and quality of the image.
  fontSize: 20,
  fontSizeUnit: `pt`,
  padding: 3,
  // Using 'px' does not scale with font size.
  paddingUnit: `vw`,
  // Png or jpeg
  type: `png`,
  src: srcs.map(({ src }) => [
    src,
    // https://prismjs.com/index.html#languages-list
    `javascript`,
    // See https://www.npmjs.com/package/filename2prism for getting alias from
    // filename.
  ]),
})

await Promise.all(
  images.map((image, i) =>
    fs.writeFile(
      join(out, `${srcs[i].name.replaceAll(/\.[^.]+$/gu, ``)}.png`),
      image,
    ),
  ),
)

Look at the CLI package if you'd like to use this from the command line.

Some rendered code:

example

Related

Contributing

Stars are always welcome!

For bugs and feature requests, please create an issue.

License

MIT © Tomer Aberbach

Dependencies (3)

Dev Dependencies (5)

Package Sidebar

Install

npm i src2img

Weekly Downloads

5

Version

3.0.1

License

MIT

Unpacked Size

33.8 kB

Total Files

14

Last publish

Collaborators

  • tomeraberbach