HTML шаблон + данные JSON -> статическое развертывание HTML
Возможно ли иметь:
- статический HTML-шаблон
- JSON с некоторыми данными
и создать статический HTML-файл (ы)?
Например, я должен сделать портфолио и код HTML-шаблон:
...
<h1> {title} </h1>
<p> {description} </p>
...
Тогда у меня есть JSON, как это:
"first work" : {
"title" : "alpha",
"description" : "lorem ipsum"
},
"second work" : {
"title" : "beta",
"description" : "lorem ipsum"
}
Я хочу "развернуть" мой сайт и иметь 2 статических файла HTML
first_work.html
<h1> alpha </h1>
<p> lorem ipsum </p>
second_work.html
<h1> beta </h1>
<p> lorem ipsum </p>
Я знаю Джекила, который использует уценку для создания статического HTML, но я предпочитаю JSON в этой ситуации.
2 ответа
Я только что написал полную программу в node.js, делая это:
var fs = require("fs");
var f = fs.readFileSync('./site.json').toString();
var pages = JSON.parse(f);
for (var key in pages) {
var page = pages[key];
fs.writeFile(
key.replace(/ /g, '_')+'.html',
'<h1>'+page.title+'</h1>'
+ '<p>'+page.description+'</p>'
);
}
Если ваш JSON находится в файле с именем site.json
(обратите внимание, что в вашем JSON отсутствует запятая), он записывает два HTML-файла.
Да, это возможно. Я бы порекомендовал использовать php причину той же политики происхождения. Просто загрузите json из файла или напрямую, а затем создайте новый документ с необходимым содержимым. Это легко сделать с помощью phps file_put_contents().
поздравил
Отлично, одна мелочь. Выглядит какfs.writeFileSync()
вместо того fs.writeFile()