0.0.15 • Published 5 years ago

render-it v0.0.15

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

Render It :pencil:

NPM version

Render any JavaScript content to create static sites ready for SEO.

$ yarn add --dev render-it

or

$ npm install --save-dev render-it

Render it uses Headless Chrome to render the JavaScript content and JSDOM to replace the content in the original HTML document.

Motivation

If you are here, you probably have a problem like this:

Your server is returning a HTML structure without the content that JavaScript renders.

<!-- DOCUMENT HTML -->
<!DOCTYPE html>
<html>
  <body>
    <div>Content from the server</div>
    
    <div id='root'></div> <!-- placeholder for JavaScript to render content -->
  </body>
</html>

But you want to return the document HTML with the content (usually for SEO and SMO).

<!-- DOCUMENT HTML -->
<!DOCTYPE html>
<html>
  <body>
    <div>Content from the server</div>
    
    <div id='root'>Content from the client</div>
  </body>
</html>

Render It allows you to generate all the static pages WITH the content. It returns the same HTML structure from the server but with the JavaScript content inside the placeholder.

Why is it awesome?

  • Zero config required in the server side.
  • Zero config required in the client side.
  • Works with any server language.
  • Works with any JavaScript library or framework. (like React, VueJS, Angular)
  • Just render what you need.
  • Does not depend on Webpack.
  • Allows a production site URL to generate the static pages.

Usage

Create a Node task to generate the static pages.

// render-it.js

const renderIt = require('render-it')

const config = {
  url: 'http://localhost:3000',
  paths: ['/', '/about', '/contact'],
  selector: '#root',
  outputFolder: 'dist'
}

renderIt(config) 

Then you can run it with: node ./render-it.js

So, you can use this task in any environment with Node.

Conguration

OptionDefaultDescription
urlnoneURL of the site to crawl. If this parameter isn't present, render-it will run it's own static server using the output folder.
outputFolderoutputPath of the folder to store the generated static pages
paths'/'Url pathnames to render
selector#rootSelector to render the JavaScript content
puppeteerConfig{ headless: true }Force to use another options for puppeteer

Roadmap

FeatureStatus
CLIIn progress
Render meta tagsPending
Auto crawlingPending
Wait to renderPending
Auto renderPending
Support multiple selectorsPending
0.0.15

5 years ago

0.0.14

5 years ago

0.0.13

5 years ago

0.0.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago