Skip to content

Commit a2e6b1f

Browse files
author
John Guo
committed
add example hbs.registerHelper
1 parent 9459ad1 commit a2e6b1f

File tree

1 file changed

+44
-5
lines changed

1 file changed

+44
-5
lines changed

readme.md

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ import {
9898
viewEngine,
9999
engineFactory,
100100
adapterFactory,
101-
} from "https://deno.land/x/view_engine@v1.4.3/mod.ts";
101+
} from "https://deno.land/x/view_engine@v1.4.4/mod.ts";
102102

103103
const ejsEngine = engineFactory.getEjsEngine();
104104
const oakAdapter = adapterFactory.getOakAdapter();
@@ -146,7 +146,7 @@ import {
146146
viewEngine,
147147
engineFactory,
148148
adapterFactory,
149-
} from "https://deno.land/x/view_engine@v1.4.3/mod.ts";
149+
} from "https://deno.land/x/view_engine@v1.4.4/mod.ts";
150150

151151
const handlebarsEngine = engineFactory.getHandlebarsEngine();
152152
const oakAdapter = adapterFactory.getOakAdapter();
@@ -180,7 +180,7 @@ import {
180180
viewEngine,
181181
engineFactory,
182182
adapterFactory,
183-
} from "https://deno.land/x/view_engine@v1.4.3/mod.ts";
183+
} from "https://deno.land/x/view_engine@v1.4.4/mod.ts";
184184

185185
const handlebarsEngine = engineFactory.getHandlebarsEngine();
186186
const oakAdapter = adapterFactory.getOakAdapter();
@@ -207,7 +207,7 @@ Open any browser, type ```http://localhost:8000``` you should see the result.
207207

208208
```ts
209209
// app.ts
210-
import { engineFactory } from "https://deno.land/x/view_engine@v1.4.3/mod.ts";
210+
import { engineFactory } from "https://deno.land/x/view_engine@v1.4.4/mod.ts";
211211

212212
const handlebarsEngine = engineFactory.getHandlebarsEngine();
213213

@@ -225,11 +225,50 @@ console.log(rendered);
225225
*/
226226
```
227227

228+
### Use `Handlebars.registerHelper()`
229+
230+
```ts
231+
// app.ts
232+
import { Application } from "https://deno.land/x/oak@v6.2.0/mod.ts";
233+
import {
234+
viewEngine,
235+
engineFactory,
236+
adapterFactory, hbs
237+
} from "https://deno.land/x/view_engine@v1.4.4/mod.ts";
238+
239+
const handlebarsEngine = engineFactory.getHandlebarsEngine();
240+
const oakAdapter = adapterFactory.getOakAdapter();
241+
242+
hbs.registerHelper('loud', (str:string) => {
243+
return str.toUpperCase()
244+
})
245+
246+
const app = new Application();
247+
248+
app.use(
249+
viewEngine(oakAdapter, handlebarsEngine, {
250+
viewRoot: "./view",
251+
viewExt: ".handlebars",
252+
})
253+
);
254+
255+
app.use(async (ctx, next) => {
256+
ctx.render("index", { data: { name: "John" } });
257+
});
258+
259+
await app.listen({ port: 8000 });
260+
```
261+
262+
Then you are able to include this in your handlebar template:
263+
264+
```hbs
265+
{{loud "all in upper case"}}
266+
```
267+
228268
## [🔝](#table-of-contents)
229269

230270
### Roadmap
231271

232-
- [x] Support [denjucks](https://github.com/denjucks/denjucks)
233272
- [x] Support [ejs](https://github.com/mde/ejs)
234273
- [x] Support [Handlebars](https://github.com/handlebars-lang/handlebars.js)
235274
- [x] Cache strategy

0 commit comments

Comments
 (0)