정적 HTML 페이지가 새로운 정적 HTML 페이지로 변환되어야하는 프로젝트에서 작업하고 있습니다. Cheerio로 페이지를 긁어내어 페이지 간 관계를 JSON으로 저장했습니다.Node.js + 정적 HTML을 사전 처리하기위한 콧수염
도전 과제는 모든 것을 상호 연결하는 목차가있는 정적 HTML 페이지를 만드는 것입니다.
콧수염 템플릿 :
이<h1>Table of Contents</h1>
{{#toc}}
<h2>{{moduleName}}</h2>
<ul class='module'>
{{#page}}
<li><a href='{{url}}'>{{title}}</a></li>
{{/page}}
</ul>
{{/toc}}
데이터 :
{
"toc": [{
"moduleName": "Getting Started",
"page": [{
"title": "Welcome",
"url": "L0-01_Welcome.html"
}, {
"title": "Who Should Read This?",
"url": "L0-02_WhoFor.html"
}]
}, {
"moduleName": "Module 1",
"page": [{
"title": "Definitions",
"url": "L1-01_Definitions.html"
}]
}]
}
노드 설치 :
var Mustache = require("mustache");
var fs = require("fs");
var cheerio = require("cheerio");
// File Paths
var pathToMustache = "./templates/toc.mustache";
var pathToJSON = "./menu/data.json";
// Generate HTML menu
//var htmlMenu = Mustache.render(fs.readFileSync(pathToMustache).toString(), fs.readFileSync(pathToJSON));
var htmlMenu = Mustache.to_html(fs.readFileSync(pathToMustache).toString(), fs.readFileSync(pathToJSON));
console.log(htmlMenu);
// Then loop through the html files appending the new menu using Cheerio...
이 성공적으로 <h1>Table of Contents</h1>
,하지만 아무것도를 추가 않습니다. 나는이 사실을 이해할 수 없기 때문에 아주 명백한 것을 놓치고 있어야합니다.
저는 콧수염뿐 아니라 일반적으로 프로그래밍에 익숙하지 않으므로 조언을 주시면 대단히 감사하겠습니다.
정말 고마워요! 그것은 트릭을했다!! 그래서 실수가 아니라면 JSON 데이터는 다음 세 가지 상태로 존재합니다 : 1) ??? 2) 문자열 3) 객체 – MCTaylor17
JSON은 데이터 교환 형식입니다. 기본적으로 주어진 JSON 텍스트에 객체를 반환하는 JSON.parse와 값을 JSON으로 변환하는 JSON.stringify라는 두 가지 기능이 있습니다. –
아마도 이것은 Node fs 모듈에 대한 전반적인 이해가 붕괴 된 것일 수 있습니다. 제 질문은 데이터가 어떤 형태로'fs.readFile ("data.json")'로 존재한다는 사실에 중점을두고 있습니다. – MCTaylor17