npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-html-transformers

v1.0.2

Published

A helper function that lets you transform html to string, pdf and image. This tool lets you dynamically insert content into any HTML file.

Downloads

10

Readme

Node HTML transformers

The Node HTML transformers class is designed to facilitate the conversion of HTML content to other formats, specifically to PDF and image. It provides methods to replace placeholders in the HTML content and then convert the processed HTML to a PDF file or an image.

Table of Contents

Installation

Make sure you have Node.js and npm installed. Install the required dependencies using the following command:

npm install puppeteer

Usage

import HtmlTransformer from 'node-html-transformers';

// Create an instance of the ConvertHTML class
const converter = new HtmlTransformer('path/to/html/file.html', 'utf-8', { variable1: 'value1', variable2: 'value2' });

// Convert HTML to PDF
const pdfContent = await converter.toPDF('output.pdf');
console.log('Base64-encoded PDF Content:', pdfContent);

// Convert HTML to Image
const imageContent = await converter.toImage('output.png');
console.log('Base64-encoded Image Content:', imageContent);

Templating with HTML

You can create placeholders in HTML documents and then Dynamically pass in data. To do this you should surround the placeholder variable with double curly braces e.g {{placeholderVariable}}.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test Document</title>
</head>
<body>
    <h1>
        Sample template in html
    </h1>
    <p>
        My name is {{name}}, I am {{age}} years old.
    </p>
<img src={{imageUrl}} />
</body>
</html>

Then, pass the same variable name as a field to the content {placeholderVariable:value} argument when creating an instance of the HtmlTransformer class e.g

import HtmlTransformer from 'node-html-transformers';

// Create an instance of the ConvertHTML class
const converter = new HtmlTransformer('path/to/html/file.html', 'utf-8', { name: 'Ayomikun', age: '20' });

Class Methods

toString

Converts the HTML content to a string with replaced placeholders. returns a string

  const htmlString = await converter.toString();

toPDF

Converts the HTML content to a PDF file. -- returns a base64 encoded PDF string

const pdfContent = await converter.toPDF('output.pdf');
console.log('Base64-encoded PDF Content:', pdfContent);

toImage

Converts the HTML content to an image. -- returns a base64 encoded Image string

const imageContent = await converter.toImage('output.png');
console.log('Base64-encoded Image Content:', imageContent);

Class Properties

  • filePath: The file path of the HTML file to be converted.
  • encoding: The encoding of the HTML file. Defaults to 'utf-8'.
  • content: An object containing key-value pairs for replacing placeholders in the HTML content.
  • Dependencies
  • puppeteer: Headless Chrome browser automation library.

Contributing

Feel free to contribute by opening issues or submitting pull requests. Contributions are welcome!

License

This project is licensed under the MIT License.

made with 💘 by Ayomikun Faluyi