5.0.0 • Published 9 years ago

pageify v5.0.0

Weekly downloads
10
License
ISC
Repository
-
Last release
9 years ago

Generate a page.js client side router from a pageify-config.js file.

Build Status

#example pageify-config.js

  module.exports = {
    PAGES_FOLDER: './pages/',
    PUBLIC_FOLDER: '/',
    PUBLIC_PAGES_FOLDER: '/pages/',
    JS_EXT: '.js',
    CSS_EXT: '.scss',
    setupPage: function(page, context) {
      // setup page here.
    },
    STYLE_ID: '#perPageStyle',
    mappings: {
      '/': {
          page: 'home',
          route: 'home'
      },
      '/seach': {
          page: 'search',
          route: 'search'
      },

      '/about': {
          page: 'about',
          route: 'about'
      },
      '/:line/:stationName': {
          page: 'station',
          route: 'station'

      }
    }
  } ;

with browserify:

In your clientside js:

main.js :

    require('pageify');

browserify:

browserify -t pageify main.js -o bundle.js

Config Options

PAGES_FOLDER

The folder in which you store your pages. Should contain a folder for each page.

- pages
    - home
        - home.scss
    - search
        - search.js
        - search.scss
    - shared
        - shared.js
        - shared.scss

PUBLIC_FOLDER

The folder from which the compiled js and css files will be served.

in this case 'public'

- public
  - js
    - shared.js
    - pages
      - search.js
      - home.js
  - css
    - shared.css
    - pages
      - search.css
      - home.css

PUBLIC_PAGES_FOLDER

We build up the public url like so:

css

config.PUBLIC_FOLDER + 'css' + config.PUBLIC_PAGES_FOLDER + item.page + '.css'

js

config.PUBLIC_FOLDER + 'js' + config.PUBLIC_PAGES_FOLDER + item.page + '.js'

JS_EXT

default: '.js'

When it generates the route for each page it checks to see if there is a file with this extension to determine if it should include the js snippet for this route.

CSS_EXT

default: '.scss'

When it generates the route for each page it checks to see if there is a file with this extension to determine if it should include the js snippet for this route.

STYLE_ID

The id of the link tag which should be updated when the page changes.

MAPPINGS

default: {}

example: {
    '/search': {
        page: 'search',
    }
}

given this config it would look for the files:

/pages/css/search.scss

/pages/js/search.js

if those files exist, when the url is hit the browser should request:

/public/pages/css/search.css

/public/pages/js/search.js

For lack of a simple example it can be seen in use at:

github.com/simonmcmanus/woodford.today

Currently requires node 10 or above.

5.0.0

9 years ago

4.0.0

9 years ago

3.0.0

9 years ago

2.0.4

9 years ago

2.0.3

9 years ago

2.0.2

9 years ago

2.0.1

9 years ago

2.0.0

9 years ago

1.0.0

9 years ago