- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
更具体地说,我想通过引用外部 JSON 文件来添加标题,我们称它为 titles.json。
我使用 grunt 的其中一件事是构建用于设计和调试的静态 HTML 文件。这在开发过程中非常有用,不仅对标题而且对其他潜在数据也是如此,例如设置事件导航链接。
我目前正在使用此处接受的答案所描述的过程连接 HTML 文件: Using grunt concat, how would I automate the concatenation of the same file to many other files?
编辑:我现在使用 assemble为此,创建它是为了使使用模板和外部数据变得非常容易。
最佳答案
这是我的看法。使用 grunt 的标准模板机制,页面元数据在实际页面文件之外的对象中定义,正如您所建议的(我不能说我喜欢这样)。
gruntfile(包括来自 Using grunt concat, how would I automate the concatenation of the same file to many other files? 的 wrap
任务):
/*global module:false*/
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
meta: {
version: '0.1.0',
banner: '/*! PROJECT_NAME - v<%= meta.version %> - ' +
'<%= grunt.template.today("yyyy-mm-dd") %>\n' +
'* http://PROJECT_WEBSITE/\n' +
'* Copyright (c) <%= grunt.template.today("yyyy") %> ' +
'YOUR_NAME; Licensed MIT */'
},
// Paths
project: {
partials: 'assets/partials', // don't put trailing slash
pages: 'assets/pages', // don't put trailing slash
less: 'assets/less',
css: 'assets/css',
img: 'assets/img',
js: 'assets/js'
},
// Used for page title and nav generation.
// It's an array to ensure correct order for nav
pages: [{
file: 'index.html',
title: 'My homepage'
/* This format can be extended to something like:
* {
* title: 'My homepage',
* header: 'Welcome to my site',
* navtitle: 'Home'
* }
* Although I think it's best to keep page metadata as close to content as possible,
* i.e. right inside pages files (think YAML headers in Jekyll pages)
*/
}, {
file: 'about.html',
title: 'About me'
}, {
file: 'contact.html',
title: 'Contact'
}],
// wraps files with header and footer
wrap: {
html: {
header: '<%= project.partials %>/head.tmpl',
footer: '<%= project.partials %>/footer.tmpl',
src: [
'<%= project.pages %>/index.html',
'<%= project.pages %>/about.html',
'<%= project.pages %>/contact.html'
],
dest: '.' // destination *directory*, probably better than specifying same file names twice
}
},
// processes templates in page files
buildPages: {
pages: '<config:pages>', // page files metadata
dir: '.' // page files location dir
}
});
// Default task.
grunt.registerTask('default', 'wrap buildPages');
grunt.registerMultiTask('wrap', 'Wraps source files with specified header and footer', function() {
var data = this.data,
path = require('path'),
dest = grunt.template.process(data.dest),
files = grunt.file.expandFiles(this.file.src),
header = grunt.file.read(grunt.template.process(data.header)),
footer = grunt.file.read(grunt.template.process(data.footer)),
sep = grunt.utils.linefeed;
files.forEach(function(f) {
var p = dest + '/' + path.basename(f),
contents = grunt.file.read(f);
grunt.file.write(p, header + sep + contents + sep + footer);
grunt.log.writeln('File "' + p + '" created.');
});
});
grunt.registerTask('buildPages', 'Processes templates in page files', function() {
// NOTE: current implementation replaces files
var data = grunt.config('buildPages'),
pages = data.pages,
dir = data.dir,
contents,
curPath;
pages.forEach(function(page) {
curPath = dir + '/' + page.file;
contents = grunt.file.read(curPath);
// feed the entire pages array and current entry to the template
grunt.file.write(curPath, grunt.template.process(contents, {
pages: pages,
curPage: page
}));
grunt.log.writeln('Page at "' + curPath + '" built.');
});
});
};
head.tmpl:
<!DOCTYPE html>
<html>
<head>
<title><%= curPage.title %></title>
</head>
<body>
<!-- NAV -->
<ul class="nav">
<%
pages.forEach(function(p) {
print(
'<li class="' + ((curPage === p) ? 'active' : '') + '">' +
((curPage === p) ? p.title : ('<a href="' + p.file + '">' + p.title + '</a>')) +
'</li>\n'
);
});
%>
</ul>
<!-- /NAV -->
<!-- MAIN CONTENT -->
<div class="main">
页脚.tmpl:
</div>
<!-- /MAIN CONTENT -->
</body>
</html>
关于html - 使用 grunt js,如何将 <title> 动态添加到静态 html 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12982396/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!