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()

Другие вопросы по тегам