A Template View Engine for Deno frameworks
- Support multiple templating engines📰
- Current support Denjucks, Eta, Handlebars, and dejs,
- Engines can be used standalone🎙 - Use standlone handlebar engine
- Framework neutral🎨, it uses adapter to load engine
- Current support Oak
- Local file⛱ loading
Ashychorous⚡ remote file fetching (fetching template on the fly )- Dynamic module import, uses
awaitto load adapters and engines🌈
viewEngine(adapter: Adapter,engine:Engine,viewConfig?: ViewConfig)import{oakAdapter}from"https://deno.land/x/view_engine@v10.6.0/mod.ts"import{ejsEngine,denjuckEngine,handlebarsEngine}from"https://deno.land/x/view_engine@v10.6.0/mod.ts"constviewConfig: ViewConfig={viewRoot: <string>"./views",// default: "", specify the root path, it can be remote address}Use Oak to render eta template at ./views/eta/index.eta
Suppose you have a folder like this:
/views/index.ejs
/app.ts
<!--index.html--><body>
Hobbies of <%=it.name%></body>// app.tsimport{Application}from"https://deno.land/x/oak@v10.5.1/mod.ts";import{viewEngine,ejsEngine,oakAdapter}from"https://deno.land/x/view_engine@v10.5.1c/mod.ts"constapp=newApplication();app.use(viewEngine(oakAdapter,etaEngine,{viewRoot: "./views/eta",}));app.use(async(ctx,next)=>{ctx.render("index.eta",{name: "John"});});awaitapp.listen({port: 8000});Then run
>denorun--allow-net--allow-read./app.tsOpen any browser, url: http://localhost:8000 you should see the result.
Original work by @gjuoun