A HTML template framework without client-side dependencies. amy allows you to split up your web app in small components. amy will merge these components at runtime and replace variables.
blauspecht.io uses node-html-light
to render their whole page server-side. blauspecht.io enables you to provide rich content to your followers, schedule tweets and threads and will add AI-powered features soon.
In the example below you can see, that the file index.html contains various import commands. At runtime these commands will add
- Meta Tags,
- CSS,
- JavaScript,
- and of course the content of the page
<!DOCTYPE html>
<html>
<head>
<!-- @amy import amy/views/base/meta.html-->
<!-- @amy import amy/views/base/css.html-->
</head>
<body>
...
<!-- @amy import amy/views/body/main.html -->
...
</body>
<!-- @amy import amy/views/base/scripts.html -->
</html>
<head>
<!-- @amy import amy/views/base/meta.html-->
</head>
- Description: Will import a compo nent into the current html page
- Syntax:
<!-- @amy import path/to/file.html [with contextName [as contextAlias]]-->
- Requirements:
- path/to/file.html must be a valid relative path to a file
- contextName is a property in the current rendering context
<div>
<div>
<h2>Work Experience</h2>
</div>
<div>
<!-- @amy import amy/views/experience/blocks/listItem.html forEach experience as experience -->
</div>
</div>
- Description: Will import a component multiple times into the current html page
- Syntax:
<!-- @amy import path/to/file.html forEach context [as contextAlias]-->
- Requirements:
- path/to/file.html must be a valid relative path to a file
- contextName is a property in the current rendering context
- the value of context[contextName] must be of type Array
- Description: Will import a component into another component
- Syntax:
<!-- @amy import path/to/file.html [with contextName [as contextAlias]] and add path/to/another/file.html [with contextName [as contextAlias]] -->
<li>
<span>{{ experience.label }}</span>
</li>
- Description: Will declare variables in a component that will be replaced at runtime
- Syntax:
{{ variableName }}
npm install node-amy --save
This project is distributed under the MIT license.