1
0
Fork 0
mirror of https://github.com/sbrl/powahroot.git synced 2024-11-22 06:23:02 +00:00
powahroot/README.md

66 lines
2.3 KiB
Markdown
Raw Normal View History

# ![](https://raw.githubusercontent.com/sbrl/powahroot/master/logo-large.png)powahroot
2019-04-26 22:56:29 +00:00
> Client and server-side routing micro frameworks
2019-04-27 00:06:42 +00:00
_Powahroot_ is a pair of micro routing frameworks, presented as an ES6 module:
- The first is for client-side single-page web applications
- The other is for handling server-side Node.js requests
2019-04-27 00:06:42 +00:00
It's based on [`rill`](https://www.npmjs.com/package/rill) (see the npm package bearing the name), but stripped down and simplified.
2019-04-27 00:07:21 +00:00
**Documentation is work-in-progress!**
2019-04-27 00:06:42 +00:00
## Getting Started
Install powahroot as a dependency with npm:
```bash
npm install --save powahroot
```
Then `import` the router you're after:
```js
import { ServerRouter } from 'powahroot';
```
```js
import { ClientRouter } from 'powahroot';
```
## Usage
### Paths
Powahroot supports multiple syntax bells and whistles when defining routes. These are documented below:
Syntax | Meaning
--------------------------------|----------------------------------------
`/index.html` | Regular route. Matches exactly what it says on the tin.
`*` | Special key(word?) that matches _any_ route. Must be present on its own without any other characters.
`/add/vegetable/:name/:weight` | Parameters. Match values an pull them into an object automatically. Does not like forward slashes in parameter values.
`/images/::path` | Parameter values with forward slashes. If you want to use parameters, but need values to be able to contain forward slashes `/`, this is for you. Don't forget you can mix-and-match this with the previous example!
### Client
Initialise a new router like this:
2019-04-26 22:56:29 +00:00
```js
const router = new ClientRouter({
// Options object. Default settings:
verbose: false, // Whether to be verbose in console.log() messages
listen_pushstate: true, // Whether to react to browser pushstate events (excluding those generated by powahroot itself, because that would cause an infinite loop :P)
});
```
2019-04-26 22:56:29 +00:00
2019-04-27 00:06:42 +00:00
### Server
TODO: Finish this section
### Reference
TODO: Generate reference from code automatically
2019-04-26 22:56:29 +00:00
## Licence
Everything in this repository _except_ the logo is licenced under the _Mozilla Public License 2.0.
The logo itself is © Copyright Starbeamrainbowlabs 2019. All rights reserved - though you _may_ use it when linking to this project (or to advertise usage in a 'powered by' logo).