【发布时间】:2016-06-10 15:14:47
【问题描述】:
我们想为 Meteor 项目创建一个主题框架——类似于 Wordpress 如何启用自定义主题。
我已经阅读了以下帖子,建议可能是 Iron Router 或 If Blocks,meteor-template-extension package 似乎也很受欢迎。
任何意见或指导将不胜感激,谢谢。
【问题讨论】:
标签: wordpress meteor frameworks themes wordpress-theming
我们想为 Meteor 项目创建一个主题框架——类似于 Wordpress 如何启用自定义主题。
我已经阅读了以下帖子,建议可能是 Iron Router 或 If Blocks,meteor-template-extension package 似乎也很受欢迎。
任何意见或指导将不胜感激,谢谢。
【问题讨论】:
标签: wordpress meteor frameworks themes wordpress-theming
您不能为 Meteor 项目本身创建主题,您可以自定义用于 UI 或自己提供的现有包。
WordPress 是 CMS,它具有许多开箱即用的核心功能。因此,您可以自定义这些部分的视图。
Meteor 是框架,因此不同项目之间没有共享 UI 组件,因为每个项目都是独一无二的,您无需自定义任何内容。
但是,有很多广泛使用的基于 Blaze 模板的包,您可以为它们创建主题并编辑源代码,例如 ian:accounts-ui-bootstrap-3。
还可以查看Orion - 基于 Meteor 的 CMS,它至少有两个 themes(Materialize 和 Bootstrap),也可以由另一个扩展。
在您发表评论后很清楚,我们正在谈论您自己项目中的一项功能。我同意 in question you mentioned 的人的观点 - 你可以使用许多 {{#if smth}} 块来动态加载所需的模板,但是创建两个前端实例需要做很多工作。
它可能看起来像这样:
<template name="material-button">
<a id="myBtn" class="waves-effect waves-light btn">
Button!
</a>
</template>
<template name="bs-button">
<button id="myBtn" class="btn btn-primary">
Button!
</button>
</template>
<template name="button">
{{#if material}}
{{> material-button}}
{{else}}
{{> bs-button}}
{{/if}}
</template>
Template.button.helpers({
material: function() {
// true or false depending on user choice
return Session.get('material');
}
});
至于布线和布局 - 看看recommended in Meteor Guide flow-router。您可以在布局中采用用户喜欢的主题,然后将其作为参数传递给所有嵌套模板。
【讨论】: