Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Сборка HTML файла.. (https://javascript.ru/forum/node-js-io-js/64879-sborka-html-fajjla.html)

jojocague 11.09.2016 16:45

Сборка HTML файла..
 
Всем привет!
Возникла идея создавать страницы сайтов, с помощью добавления блоков html в основной html скелет. В этом мне помогают jquery, fs и jsdom модули:

var fs = require('fs');
var jsdom = require('jsdom');

function homePage() {
	var header = fs.readFileSync('./dist/html/header.html').toString();
	var homepage = fs.readFileSync('./dist/html/homepage.html').toString();	
	fs.readFile('./dist/html/main.html', function(err, data) {
		var dataString = data.toString();
		jsdom.env(dataString, [], function(err, window){
			 var $ = require("jquery")(window);
			 	$('body').addClass('mainPageBody');
			 	$('html').addClass('mainPageHtml');
				$('body').html(header);
				$('body').html(homepage);
				$('body').html('<script src=../js/concatedJS/concated.js></script>');
				$('title').html("Welcome To Home Page");
			 fs.writeFileSync('./dist/html/test.html', window.document.documentElement.outerHTML);
		});
	});
};

homePage();


В результате создается файл test.html, но возникает проблема,то есть пропадает строка <!DOCTYPE html> в начале файла. Строка
'<script src=../js/concatedJS/concated.js></script>'
появляется не только в боди, но и в header.. Никак не могу понять с чем это связянно... Кто знает в чем проблема ???

jojocague 11.09.2016 20:55

тему можно закрывать...

var fs = require('fs');
var jsdom = require('jsdom');


function homePage() {

	var header = fs.readFileSync('./dist/html/header.html').toString();
	var homepage = fs.readFileSync('./dist/html/homepage.html').toString();
	
	fs.readFile('./dist/html/main.html', function(err, data) {

		var dataString = data.toString();
		jsdom.env(dataString, [], function(err, window){
			
			var $ = require("jquery")(window);

			$('body').append(header);
			$('body').append(homepage);
			$('body').addClass('mainPageBody');
            $('html').addClass('mainPageHtml');
            $('title').html("Home Page");
			$('body').append('<script src=../js/concatedJS/concated.js></script>');
			var doubleScriptHtml = window.document.documentElement.outerHTML
			var oneScriptHtml = doubleScriptHtml.replace(/<script src="\.\.\/js\/concatedJS\/concated\.js\"><\/script>/,'')
			fs.writeFileSync('./dist/html/test.html','<!DOCTYPE html>'+ oneScriptHtml);
		});
	});
};


Часовой пояс GMT +3, время: 19:39.