Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joyqi/koa-pug-middleware
A Koa Pug view render middleware.
https://github.com/joyqi/koa-pug-middleware
koa koa-pug pug pugjs
Last synced: about 16 hours ago
JSON representation
A Koa Pug view render middleware.
- Host: GitHub
- URL: https://github.com/joyqi/koa-pug-middleware
- Owner: joyqi
- License: mit
- Created: 2022-11-25T02:36:36.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-14T09:34:12.000Z (about 2 years ago)
- Last Synced: 2024-12-23T04:49:05.523Z (4 days ago)
- Topics: koa, koa-pug, pug, pugjs
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/koa-pug-middleware
- Size: 54.7 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# koa-pug-middleware
This is a Koa middleware wrapper for [Pug](https://pugjs.org/) template engine.
Compare to [koa-pug](https://www.npmjs.com/package/koa-pug), this middleware has the following features:
1. More elegant API, no need to pass `app` to `Pug` constructor.
2. Follows KISS principle, keep more things to Pug.
3. Support `koa@2` only.
4. Support `pug@3` only.
5. Add `context.setLocal` method, so you can set locals in middleware.## Installation
```bash
npm install -s koa-pug-middleware
```## Usage
### Mount the middleware
Use [Pug](https://pugjs.org/api/reference.html) options to initialize the middleware:
```typescript
import * as Koa from 'koa';
import * as pug from 'koa-pug-middleware';const app = new Koa();
app.use(pug({
debug: false,
cache: true, // NOTE: set to false in development
pretty: false,
compileDebug: false,
locals: {
globalFoo: 'bar' // You can set global locals here
},
basedir: './views'
}));
```### `context.setLocal(key, value)`
Parameters:
- `key` - The key of the local variable.
- `value` - The value of the local variable.```typescript
app.use(async (ctx) => {
ctx.setLocal('foo', 'bar'); // You can set locals here
});
```### `context.render(view, locals, options?)`
Parameters:
- `view` - The path of the view file. Relative to the `basedir` option. You can omit the extension name.
- `locals` - The locals for the view.
- `options` - The options for the view. See [Pug options](https://pugjs.org/api/reference.html#options). Will override the options in the middleware.```typescript
app.use(async (ctx) => {
await ctx.render('index', {
foo: 'bar' // You can set locals here
});
});
```