Socket
Socket
Sign inDemoInstall

@ayn/pagejs

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ayn/pagejs

Generate HTML5 with javascript.


Version published
Weekly downloads
6
Maintainers
1
Weekly downloads
 
Created
Source

PageJS

min size min zipped

Theme-able HTML markup generator.

API

Sample usage:

const Page = require('@ayn/pagejs')

let page = new Page({ title: 'Hello World!' })
    .div(_=>{
           _.div('I am a div inside a div.')
           _.h1({ style: 'color: red;' },'Cool, uh?', _=>{
                _.br()
                _.span('I am inside h1, so I am red too!')
           })
    })

let markup = page.getMarkup()

Constructor

Constructor takes a single object used for configuration, here are the default values:

{
    doctype: '<!doctype html>',
    lang: 'en',
    charset: 'utf-8',
    title: 'Untitled paged',
    body: 'No content.',
    theme: null,
    tags: {
        self_closing: [
            'area', 'base', 'br', 'col', 'embed', 'wbr', 'input',
            'img', 'source', 'link', 'meta', 'param', 'hr', 'track'
        ],
        autoclose: false,
    }
}

Methods

There is only one method.

page.getMarkup()

Returns the markup code of the page or in the case of a child element (obtained through a tag callback) a subset of it.

Child elements also contain two properties el.parent and el.siblings.

You can also process objects directly.

new Page().getMarkup({
    div: {
        attributes: { style: 'background: purple' },
        content: 'wowza',
        children: []
    }
})

Themes

Plain HTML is useful but not very practical in rapid development.

PageJS supports themes in the form of a JSON object. You can create your own as well as used pre-existing ones. This makes working with css frameworks even easier than working with them directly.

Here's an example:

let page = new Page({theme:'boostrap-4', title: 'Admin Panel' })
    .navbar({ class: 'dark_dark' }, _=>{
        _.brand({ href:'website.com' }, 'COMPANY')
        _.toggler()
    })
    .container({ class: 'fluid', style: 'padding: 20px'}, _=>{
        _.breadcrumb(_=>{
            _.item('Home')
            _.item('Library')
        })
        _.jumbotron(_=>{
            _.h1('Hello, world!')
            _.p('Welcome to my page! It was made with JS.')
            _.br()
            _.btn('Learn more')
        })
    })

Which results in Bootstrap 4 Theme Example

Themes allow for the creation of sudo tags and sudo classes.

You can check out a base theme file here as well as find information on its structure.

Compiling

You can use the pagejs-webpack-plugin. To compile .page.js files into .html if you wish to skip html all together in your projects.

Sponsors

If you would like to support me
Buy Me A Coffee
or feel free to hire me!

License

MIT

Keywords

FAQs

Package last updated on 04 Sep 2019

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc