0.1.7 • Published 10 months ago

@ossph/temple v0.1.7

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
10 months ago

Install

$ npm -i @ossph/temple

Compiler Usage

//on server:
import temple from '@ossph/temple/compiler';
//make a temple compiler
const compiler = temple();
//render HTML
const results = compiler.render('./page.dtml');
//show HTML
console.log(results);

Temple Markup

Basic Markup

<!-- page.html -->
<script>
  const name = 'world';
</script>
<h1>Hello {name}!</h1>

Markup with Styles

<!-- page.html -->
<style>
  :host {
    color: purple;
  }
  :host h1 {
    font-family: 'Comic Sans MS', cursive;
    font-size: 2em;
  }
</style>
<script>
  const name = 'world';
</script>
<h1>Hello {name}!</h1>

Markup with Props

<!-- page.html -->
<script>
  import { props } from '@ossph/temple';
  const { name } = props();
</script>
<h1>Hello {name}</h1>

Markup with Reactivity

<!-- page.html -->
<script>
  import { signal } from '@ossph/temple';
  const name = signal('world');
  const add = () => name.value += '!';
</script>
<h1 click=add>Hello {name.value}</h1>

Markup with Imports

<!-- page.html -->
<link rel="import" type="component" href="./my-heading.tml" />
<script>
  const name = 'world';
</script>
<my-heading {name}>Hello</my-heading>
<!-- my-heading.html -->
<script>
  import { props, children } from '@ossph/temple';
  const { name } = props();

</script>
<h1>{children()} {name}</h1>

Markup with Conditional

<!-- page.html -->
<script>
  const name = 'world';
  const show = name === "world";
</script>
<if true={show}>
  <h1>Hello {name}</h1>
</if>

Markup with Loops

<!-- page.html -->
<script>
  const list = [ 'a', 'b', 'c' ];
</script>
<ul>
  <each key=i value=item from=list>
    <li>{i}: {item}</li>
  </each>
</ul>

Document Markup

<!-- page.html -->
<link rel="import" type="template" href="./templates/html-head.tml" />
<link rel="import" type="component" href="./components/to-do.tml" />
<style>
  body { 
    background-color: #DA532C; 
    color: #EFEFEF; 
  }
</style>
<html>
  <html-head />
  <body>
    <h1>{title}</h1>
    <to-do list=list start=start />
  </body>
</html>

Why Temple?

Current frontend solutions for the most part, come in the form of a "frontend framework" and are "all encompassing", requiring more import into the frontend framework and give little export out to support server first solutions. Temple is a modern HTML markup language and a server first template engine with a built-in parser/compiler that generates web components and support reactivity.

Temple works with most server frameworks including:

0.1.7

10 months ago

0.1.6

10 months ago

0.1.4

10 months ago

0.1.5

10 months ago

0.1.3

10 months ago

0.1.2

11 months ago

0.1.0

11 months ago

0.1.1

11 months ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago