Skip to content

KB-RolePlay/view-engine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 View Engine

In this fork, we removed everything that we didn't use and upgrade versions to support Deno V2. We know, the code is so bad but we don't want to spend time on the upgrade.

View Engine Logo

A Template View Engine for Deno frameworks

View Engine is now matching the version of Oak

tag

Features:

  • Support multiple templating engines📰
  • 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 await to load adapters and engines🌈

Table of Contents


Usage

viewEngine(
  adapter: Adapter,
  engine:Engine,
  viewConfig?: ViewConfig
)

🎛Adapter

import { oakAdapter } from "https://deno.land/x/view_engine@v10.6.0/mod.ts"

🚀Engine

import { ejsEngine, denjuckEngine, handlebarsEngine } from "https://deno.land/x/view_engine@v10.6.0/mod.ts"

⚙ViewConfig

const viewConfig: ViewConfig = {
  viewRoot: <string>"./views", // default: "", specify the root path, it can be remote address
}

Examples

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.ts
import { 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"

const app = new Application();

app.use(
  viewEngine(oakAdapter, etaEngine, {
    viewRoot: "./views/eta",
  })
);

app.use(async (ctx, next) => {
  ctx.render("index.eta", { name: "John" } );
});

await app.listen({ port: 8000 });

Then run

> deno run --allow-net --allow-read ./app.ts

Open any browser, url: http://localhost:8000 you should see the result.

Credit

Original work by @gjuoun

About

🚀A Template View Engine for Deno frameworks

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 95.1%
  • EJS 2.2%
  • Handlebars 1.4%
  • HTML 1.3%