mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
1. Make a package called `static-html` that just compiles `<head>` and `<body>` tags inside `.html` files. Much like templating but without the templates. 2. Refactor `templating` to avoid duplicating code. Split out code that would be shared between `templating` and `static-html` into a new `templating-tools` package. These tools could also be used to simplify implementation of other build plugins, like `simple:markdown-templating`. This also has the added benefit of moving as much code as humanly possible out of the `templating` package, so that it can be reused in other packages. 1. `templating-tools` package and its README 2. `static-html` package and its README 3. `caching-html-compiler` is not new code; it is just code factored out of the batch plugin version of `templating`, but the README and some comments are new. 1. `tools/tests/static-html.js` tests static html and error handling 2. `templating-tools/html-scanner-tests.js` tests `scanHtmlForTags` and `compileTagsWithSpacebars` together. All unit tests pass on this branch.
19 lines
529 B
JavaScript
19 lines
529 B
JavaScript
TemplatingTools.generateTemplateJS =
|
|
function generateTemplateJS(name, renderFuncCode) {
|
|
const nameLiteral = JSON.stringify(name);
|
|
const templateDotNameLiteral = JSON.stringify(`Template.${name}`);
|
|
|
|
return `
|
|
Template.__checkName(${nameLiteral});
|
|
Template[${nameLiteral}] = new Template(${templateDotNameLiteral}, ${renderFuncCode});
|
|
`;
|
|
}
|
|
|
|
TemplatingTools.generateBodyJS =
|
|
function generateBodyJS(renderFuncCode) {
|
|
return `
|
|
Template.body.addContent(${renderFuncCode});
|
|
Meteor.startup(Template.body.renderToDocument);
|
|
`;
|
|
}
|