Code Monkey home page Code Monkey logo

page's Introduction

Rill
@rill/page
API stability Standard NPM version Downloads Gitter Chat

Full page management for Rill. Updating the document is done using the set-page library, with the same api (excluding render).

Installation

npm install @rill/page

Example

const app = require('rill')()
const page = require('@rill/page')
const React = require('react')
const renderer = require('@rill/react')

// Set default <head> tags (can override later).
// Must come before render middleware.
app.get(page
  .html({ lang: 'en' })
  .body({ class: 'loading' })
  .meta({ charset: 'utf8' })
  .title('My App')
  .meta({ name: 'author', content: 'Dylan Piercey' })
  .meta({ name: 'descripton', content: 'It is very cool' })
  .link({ rel: 'stylesheet', href: 'index.css' })
  .script({ src: 'index.js', async: true })
)

// Setup React rendering in Rill as an example, but any will do.
app.use(renderer({ root: 'body' }))

app.get('/admin',
  // Override the title for the admin page.
  page.title('My App > Admin'),
  ({ req, res, page }, next)=> {
    // You can also override dynamically by accessing `page` from the context.
    page.meta({ name: 'description', content: 'Updated description' })

    // @rill/page will wrap any html already rendered (in this case jsx) with a document.
    res.body = <div>Hello World</div>

    // On the server the final response will be. (formatted for clarity)
    html`
      <!DOCTYPE html>
      <html>
        <head>
          <meta charset="utf8">
          <title>My App > Admin</title>
          <meta name="author" name="Dylan Piercey">
          <meta name="description" content="Updated description">
          <link rel="stylesheet" href="index.css">
          <script src="index.js" async></script>
        </head>
        <body>
          <div>Hello World</div>
        </body>
      </html>
    `
  }
)

Contributions

  • Use npm test to run tests.

Please feel free to create a PR!

page's People

Contributors

dylanpiercey avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.