Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New gh-pages website #729

Merged
merged 131 commits into from
Oct 18, 2017
Merged
Show file tree
Hide file tree
Changes from 130 commits
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
9b96a3c
Create gh-pages branch via GitHub
aashish24 Sep 19, 2013
5f76002
Adding built source
jbeezley May 14, 2014
10fc889
minifying built source
jbeezley May 19, 2014
2e38a9a
updating built sources
jbeezley Jun 27, 2014
e69ec32
updating geojs library and adding examples
jbeezley Aug 4, 2014
4f6bac0
changing paths for feature example
jbeezley Aug 4, 2014
be30892
updating feature demo
jbeezley Aug 7, 2014
c9b1dbb
using relative paths in example
jbeezley Aug 7, 2014
3ad9040
Added geojs libraries
aashish24 Sep 23, 2014
c425f8e
Updated geojs and vgl
aashish24 Sep 23, 2014
01ca362
Added jquery
aashish24 Sep 24, 2014
1e9b731
Added geojs mega script
aashish24 Sep 24, 2014
9cd53c8
Update geojs and vgl scripts
aashish24 Sep 24, 2014
dc73ecd
Added minified geojs and vgl scripts
aashish24 Sep 24, 2014
ac62509
Update geojs all scripts
aashish24 Sep 24, 2014
f1e5db2
Added minified versions of dependencies
aashish24 Sep 24, 2014
624e4cf
Update script to include fix for the typo
aashish24 Sep 29, 2014
18cb3d1
Load scripts only when needed
aashish24 Sep 29, 2014
ee0c502
Added a ui example
jbeezley Nov 6, 2014
6a65c25
corrected library path
jbeezley Nov 6, 2014
cf953b3
Added source maps
jbeezley Nov 6, 2014
03b3539
Update ui example
jbeezley Nov 6, 2014
6bae606
Updated ui
jbeezley Nov 7, 2014
df3c6db
Testing new examples and packaging
jbeezley Nov 11, 2014
91037f4
Redirecting main page to example
jbeezley Nov 11, 2014
18c7c6a
update
jbeezley Nov 11, 2014
ee11f90
update
jbeezley Nov 12, 2014
f1d5ae8
update
jbeezley Nov 13, 2014
8f5274b
update
jbeezley Nov 24, 2014
553b1fb
Update to latest examples
jbeezley Jan 5, 2015
116146e
Update to fe9ed99a
jbeezley Feb 12, 2015
5df6a8b
Adding link to documentation
jbeezley Feb 12, 2015
58791a0
Added hurricane example
jbeezley Feb 12, 2015
74d15a0
Added hurricane data
jbeezley Feb 12, 2015
54eb0df
Fixing data path
jbeezley Feb 12, 2015
244b906
Updating build
jbeezley Feb 19, 2015
6170143
Updating built libraries
jbeezley Feb 19, 2015
7ce5e78
Adding missing files
jbeezley Feb 25, 2015
bc37fbc
Temporarly removing broken example
jbeezley Feb 26, 2015
b97e28c
Update hurricane example
jbeezley Feb 27, 2015
a733a88
Update to v0.1.0 release
jbeezley Mar 6, 2015
9279da1
Update to v0.4.0
jbeezley Mar 26, 2015
75c3226
Update to version 0.4.1
jbeezley Mar 26, 2015
ab5ff0b
Added logo
aashish24 Mar 27, 2015
afcbd82
Added PNG version of the logo
aashish24 Apr 2, 2015
0327a66
Added smaller versions of the logo
aashish24 Apr 2, 2015
5accbb6
Adding favicons
jbeezley Apr 2, 2015
13167b0
Adding development release
jbeezley Apr 3, 2015
2c074ac
Update for version 0.4.2
jbeezley Apr 29, 2015
ab8eff4
Update to v0.5.0
jbeezley Aug 7, 2015
87637d2
Update logos
jbeezley Oct 26, 2015
d9195a7
Update to 0.6.0-rc.1
jbeezley Dec 19, 2015
71cd4c2
Update to version 0.6
jbeezley Jan 7, 2016
d15ea10
Update deepzoom example
jbeezley Jan 8, 2016
ab8cfc8
Update to version 0.7.0
jbeezley Jan 28, 2016
9de737b
Update my files plz
jbeezley Jan 28, 2016
cae6b15
Update to version 0.8.0
jbeezley Feb 18, 2016
fcc8200
Don't upload large files into gh-pages
jbeezley Feb 18, 2016
52eb104
Replace absolute urls to data files
jbeezley Feb 18, 2016
6314cd1
Update to version 0.9.0
jbeezley Mar 31, 2016
b3b8d9a
Update to version 0.9.1
jbeezley May 10, 2016
4effb08
Update to version 0.10.1
jbeezley Jul 19, 2016
42ca870
Update to version 0.10.2
jbeezley Sep 30, 2016
bf0e350
Update to version 0.10.3
jbeezley Oct 14, 2016
97c9c98
Update to version 0.10.4
jbeezley Oct 28, 2016
c965818
Update to version 0.10.5
jbeezley Dec 5, 2016
2977cb1
Update to version 0.11.0
jbeezley Jan 24, 2017
caa979e
Update to version 0.11.1
jbeezley Mar 1, 2017
895c9cf
Update to version 0.12.0
jbeezley Apr 27, 2017
b9ab0e2
Update to version 0.12.1
jbeezley Jun 2, 2017
cfd6add
Update to version 0.12.2
jbeezley Jun 27, 2017
6b4faf7
Changes for the new website
matthewma7 Jul 18, 2017
11837dd
Updates current examples to be used in new website
matthewma7 Jul 20, 2017
dbf8023
Removes now unnecessary build steps
matthewma7 Jul 21, 2017
89b12fd
Initial commit
matthewma7 Jul 13, 2017
7c83f66
starts to utilize Jekyll
matthewma7 Jul 13, 2017
00a5d20
start to add tutorials
matthewma7 Jul 13, 2017
ca095cd
starts to add ordered tutorials
matthewma7 Jul 14, 2017
cadd0ea
initial implementation of tutorials page
matthewma7 Jul 14, 2017
2ad773a
Initial effort on Welcome page
matthewma7 Jul 17, 2017
388b7ac
Renames tutorial to example and start to introduce new tutorials page;
matthewma7 Jul 17, 2017
7def3be
Initial implementation of new tutorial page; Various improvements;
matthewma7 Jul 17, 2017
2f53be8
Adds a get involved section on welcome page
matthewma7 Jul 17, 2017
b4db4d6
Adding favicon; starts to convert examples;
matthewma7 Jul 18, 2017
59642f7
backup
matthewma7 Jul 18, 2017
1f09b41
starts to migrate examples;
matthewma7 Jul 18, 2017
daef96b
Continue implementation of example page
matthewma7 Jul 19, 2017
5ae9795
Improvements for individual examples;
matthewma7 Jul 20, 2017
ff4dc9a
Initial implementation of download page
matthewma7 Jul 20, 2017
a2c95a7
Update the layout of examples page to a two column design;
matthewma7 Jul 20, 2017
9858568
Add examples and apidocs to site
matthewma7 Jul 20, 2017
f1cf86a
Shift URL to be backwards-compatible with old website URL
matthewma7 Jul 21, 2017
75e5b23
file reorganization
matthewma7 Jul 21, 2017
b4636ab
Further update configurations for new website;
matthewma7 Jul 21, 2017
c435da9
Adds README.md for building instruction; Renames section features to …
matthewma7 Jul 21, 2017
f807a7d
Implement index page logo scroll transition effect; Enlarge individua…
matthewma7 Jul 27, 2017
b2c1173
Updates examples and docs based on recent master branch change
matthewma7 Jul 27, 2017
f51a7d9
Merge branch 'master' into website_examples
matthewma7 Jul 27, 2017
455e77f
Adds tutorial support
matthewma7 Aug 4, 2017
5edeb79
changes tutorials to be used on the new website
matthewma7 Aug 3, 2017
1f09ac4
Add more tutorial support
matthewma7 Aug 4, 2017
8b3b3a9
Update download instruction
matthewma7 Aug 4, 2017
8c9da51
Merge branch 'master' into website_examples
matthewma7 Aug 7, 2017
3ad76c7
Merge branch 'website_examples' into new_website
matthewma7 Aug 7, 2017
9b73c08
Merge branch 'website_tutorials' into new_website
matthewma7 Aug 7, 2017
abff43c
Merge branch 'website' into new_website
matthewma7 Aug 7, 2017
d3228d0
Moves new website to a subdirectory
matthewma7 Aug 7, 2017
ada9d95
Add npm script for building new website
matthewma7 Aug 7, 2017
3503ba7
Merge branch 'master' into new_website
matthewma7 Aug 7, 2017
4038d8e
Replace lorem text.
manthey Aug 10, 2017
3ca74f1
A small config fix
matthewma7 Aug 10, 2017
a85b810
remove footer on individual example page
matthewma7 Aug 10, 2017
b66e6c4
Small improvement of download button position for example page
matthewma7 Aug 10, 2017
5aeea6f
Aashish's layout improvement suggestion
matthewma7 Aug 14, 2017
09cb8b3
initial effort of moving from jekyll to hexo, partially functioning
matthewma7 Sep 8, 2017
ace9c94
Initial version after switching to Hexo
matthewma7 Sep 8, 2017
c021ad7
Small improvement
matthewma7 Sep 8, 2017
cacf8ef
Merge branch 'master' into new_website
matthewma7 Sep 20, 2017
37a5310
Adds missed files;
matthewma7 Sep 21, 2017
ce1f630
Creates special config for example and tutorial for website;
matthewma7 Sep 21, 2017
5989ebf
various improvement and fixes
matthewma7 Sep 22, 2017
5eaca4b
removes some unnecessary files
matthewma7 Sep 22, 2017
bba7696
makes eslint ignore website directory
matthewma7 Sep 22, 2017
92ba4a6
Remove more unnecessarily committed files
matthewma7 Sep 22, 2017
d687507
fixes linting errors;
matthewma7 Sep 22, 2017
8d341f7
Changes to use relative URL to have better support for different webs…
matthewma7 Oct 10, 2017
33d1777
Skip rendering json file in example directory and remove hexo cache b…
matthewma7 Oct 13, 2017
fc1d236
Automatically generate example and tutorial lists.
manthey Oct 13, 2017
6879e1b
Add default example thumbnail as fallback and apply style to overflow…
matthewma7 Oct 17, 2017
b1f1b75
Skip preprocessing docco document webpages
matthewma7 Oct 18, 2017
075af02
Merge branch 'master' into new_website
matthewma7 Oct 18, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ src/util/wigglemaps.js
src/util/distanceGrid.js
dist/**
testing/**
website/**
geo.js
**/*.min.js
examples/common/jsonlint.js
104 changes: 104 additions & 0 deletions examples/build-utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
var fs = require('fs-extra');
var glob = require('glob').sync;
var path = require('path');
var yaml = require('js-yaml');

/**
* Get a sorted list of tutorials or examples, each of which contains an object
* with a variety of attributes:
* - `baseName`Css: a list of css files, if any specified by the record.
* - `baseName`Js: a list of js files, if any specified by the record.
* - main: the first js file in the previous list. May be `undefined` if that
* list is empty.
* - bundle: '../bundle.js' (a fixed string).
* - dir: the directory of the record.
* - path: the last component of the record's directory, or the value
* specified by the record.
* - output: an output path based on `outputDir`, `rootDir`, and `path`.
*
* @param {string} rootDir The location to search for files. Any directory
* with a json file called `baseName`.json will be parsed.
* @param {string} baseName The name of the json file. Also use for attribute
* names.
* @param {string} outputDir The root of a location to empty and copy. The
* actual output is stored at `outputDir`/`rootDir`/<record name>.
*/
function getList(rootDir, baseName, outputDir) {
var list = glob(rootDir + '/*/' + baseName + '.json')
.map(function (f) {
// /path/to/<baseName>.json
f = path.resolve(f);

// content of <baseName>.json
var json = fs.readJSONSync(path.resolve(f));

// directory of the file
var dir = path.dirname(f);

// by default, assume the path is where the files are located.
json.path = json.path || path.basename(dir);
json[baseName + 'Css'] = json[baseName + 'Css'] || [];
json[baseName + 'Js'] = json[baseName + 'Js'] || [];
if (json[baseName + 'Js'].length) {
json.main = path.resolve(dir, json[baseName + 'Js'][0]);
}
json.bundle = '../bundle.js';
json.dir = dir;

json.output = path.resolve(outputDir, rootDir, json.path);
// create, empty, and copy the source directory
fs.emptyDirSync(json.output);
fs.copySync(json.dir, json.output);

return json;
});

/* Sort records. Recods are sorted by level, order, title, and path.
* undefined or null levels ard orders are sorted after defined values.
* level should be used for the approximate significant of the record, and
* order for making specific records appear sooner in the list. */
list.sort(function (a, b) {
if (a.level !== b.level) {
return a.level === undefined ? 1 : b.level === undefined ? -1 : a.level - b.level;
}
if (a.order !== b.order) {
return a.order === undefined ? 1 : b.order === undefined ? -1 : a.order - b.order;
}
if (a.title !== b.title) {
return a.title < b.title ? -1 : 1;
}
return a.path < b.path ? -1 : 1;
});

return list;
}

/**
* Emit a yml list based on the records returned from `getList`.
*
* @param {string} dir The directory to write the file.
* @param {string} filename The name of the file to write.
* @param {array} An array from `getList` to emit.
*/
function writeYamlList(dir, filename, records) {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir);
}
fs.writeFileSync(
path.resolve(dir, filename),
yaml.safeDump(records.filter(function (t) {
return !t.disabled;
}).map(function (t) {
return {
name: t.path,
title: t.title,
description: (t.about || {}).text || t.title
};
}))
);
}

module.exports = {
getList: getList,
writeYamlList: writeYamlList
};
52 changes: 52 additions & 0 deletions examples/build-website.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
var path = require('path');
var fs = require('fs-extra');
var docco = require('docco').document;
var pug = require('pug');

var buildUtils = require('./build-utils');

// generate the examples
fs.ensureDirSync('website/source/examples');
var examples = buildUtils.getList('examples', 'example', path.resolve('website', 'source'));
examples.map(function (json) {
// make docco documentation in:
// dist/examples/<name>/docs/
if (json.main) {
docco({
args: [json.main],
output: path.resolve(json.output, 'docs'),
layout: 'classic'
}, function () {
// simplify the docco output to reduce the output size by
// removing the unnecessary public/ directory
fs.removeSync(path.resolve(json.output, 'docs', 'public'));
});
}
json.docHTML = 'docs/' + path.basename(json.main).replace(/js$/, 'html');

var pugTemplate = '';
var pugFile = path.relative('.', path.resolve(json.dir, 'index.pug'));
if (fs.existsSync(path.resolve(json.dir, 'index.pug'))) {
pugTemplate = fs.readFileSync(pugFile, 'utf8');
pugTemplate = pugTemplate.replace('extends ../common/index.pug', '');
pugTemplate = pugTemplate.replace('block append mainContent', '');
}
pugTemplate = 'div' + pugTemplate;

var fn = pug.compile(pugTemplate, { pretty: false });
var html = fn(json);
html = `---
layout: example
title: ${json.title}
about: ${json.about.text}
exampleCss: ${JSON.stringify(json.exampleCss)}
exampleJs: ${JSON.stringify(json.exampleJs)}
---
` + html;
fs.writeFileSync(path.resolve(json.output, 'index.html'), html);
});

// copy common files
fs.copySync('examples/common', 'website/source/examples/common');

buildUtils.writeYamlList(path.resolve('website', 'source', '_data'), 'examples.yml', examples);
79 changes: 27 additions & 52 deletions examples/build.js
Original file line number Diff line number Diff line change
@@ -1,62 +1,37 @@
var path = require('path');
var glob = require('glob').sync;
var fs = require('fs-extra');
var docco = require('docco').document;
var pug = require('pug');

var buildUtils = require('./build-utils');

// generate the examples
fs.ensureDirSync('dist/examples');
var examples = glob('examples/*/example.json')
.map(function (f) {
// /path/to/example.json
f = path.resolve(f);

// content of example.json
var json = fs.readJSONSync(path.resolve(f));

// directory of the example
var dir = path.dirname(f);

// by default, assume the path is where the files are located
json.path = json.path || path.basename(dir);
json.exampleCss = json.exampleCss || [];
json.exampleJs = json.exampleJs || [];

// the main js file for the example
var main = path.resolve(dir, json.exampleJs[0]);

// the output directory where the example will be compiled
var output = path.resolve('dist', 'examples', json.path);

// create, empty, and copy the source directory
fs.emptyDirSync(output);
fs.copySync(dir, output);

// make docco documentation in:
// dist/examples/<name>/docs/
if (json.exampleJs.length) {
docco({
args: [main],
output: path.resolve(output, 'docs'),
layout: 'classic'
}, function () {
// simplify the docco output to reduce the output size by
// removing the unnecessary public/ directory
fs.removeSync(path.resolve(output, 'docs', 'public'));
});
}
json.docHTML = 'docs/' + path.basename(main).replace(/js$/, 'html');

json.bundle = '../bundle.js';

var pugFile = path.relative('.', path.resolve(dir, 'index.pug'));
if (!fs.existsSync(path.resolve(dir, 'index.pug'))) {
pugFile = path.relative('.', path.resolve(dir, '../common/index.pug'));
}
var fn = pug.compileFile(pugFile, {pretty: true});
fs.writeFileSync(path.resolve(output, 'index.html'), fn(json));
return json;
});
var examples = buildUtils.getList('examples', 'example', 'dist');

examples.map(function (json) {
// make docco documentation in:
// dist/examples/<name>/docs/
if (json.exampleJs.length) {
docco({
args: [json.main],
output: path.resolve(json.output, 'docs'),
layout: 'classic'
}, function () {
// simplify the docco output to reduce the output size by
// removing the unnecessary public/ directory
fs.removeSync(path.resolve(json.output, 'docs', 'public'));
});
}
json.docHTML = 'docs/' + path.basename(json.main).replace(/js$/, 'html');

var pugFile = path.relative('.', path.resolve(json.dir, 'index.pug'));
if (!fs.existsSync(path.resolve(json.dir, 'index.pug'))) {
pugFile = path.relative('.', path.resolve(json.dir, '../common/index.pug'));
}
var fn = pug.compileFile(pugFile, {pretty: true});
fs.writeFileSync(path.resolve(json.output, 'index.html'), fn(json));
});

// copy common files
fs.copySync('examples/common', 'dist/examples/common');
Expand Down
Binary file added examples/common/thumb.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion examples/geoJSON/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
left: 10px;
top: 80px;
width: calc(50% - 10px);
height: calc(100% - 100px) !important;
height: calc(70% - 100px) !important;
z-index: 50;
border-radius: 5px;
border: 1px solid grey;
Expand Down
Binary file modified examples/heatmap/thumb.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions examples/hurricanes/example.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"title": "Hurricane tracking data",
"exampleCss": ["main.css"],
"exampleJs": ["main.js"],
"level": 0,
"order": 0,
"about": {
"text": "Explore historic hurricane paths since 1980 on an interactive map."
}
Expand Down
20 changes: 20 additions & 0 deletions examples/index-website.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
require('../src/vendor');
window.geo = require('../src/index');

// codemirror and plugins
require('codemirror/lib/codemirror.css');
require('codemirror/addon/lint/lint.css');
require('codemirror/addon/fold/foldgutter.css');

// Colorbrewer
require('colorbrewer');

require('./common/jsonlint');
require('codemirror');
require('codemirror/mode/javascript/javascript');
require('codemirror/addon/lint/lint');
require('codemirror/addon/lint/json-lint');
require('codemirror/addon/fold/brace-fold');
require('codemirror/addon/fold/foldcode');
require('codemirror/addon/fold/foldgutter');
require('codemirror/addon/edit/matchbrackets');
2 changes: 1 addition & 1 deletion examples/sld/example.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"title": "Adding styles to WMS raster layers",
"title": "Styling WMS raster layers",
"exampleCss": ["main.css"],
"exampleJs": ["main.js"],
"about": {
Expand Down
12 changes: 9 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"jsdoc-autoprivate": "0.0.1",
"json-loader": "^0.5.4",
"jstransformer-markdown-it": "^2.0.0",
"js-yaml": "^3.10.0",
"karma": "^0.13.22",
"karma-coverage": "^1.0.0",
"karma-chrome-launcher": "^2.2.0",
Expand Down Expand Up @@ -85,9 +86,12 @@
"xmlbuilder": "^8.2.2"
},
"scripts": {
"postinstall": "cd website && npm install",
"build": "webpack --config webpack.config.js && webpack --config external.config.js",
"build-examples": "webpack --config webpack-examples.config.js",
"build-tutorials": "webpack --config webpack-tutorials.config.js",
"build-examples": "node examples/build.js && webpack --config webpack-examples.config.js",
"build-website-examples": "node examples/build-website.js && webpack --config webpack-website-examples.config.js",
"build-tutorials": "node tutorials/build.js && webpack --config webpack-tutorials.config.js",
"build-website-tutorials": "node tutorials/build-website.js && webpack --config webpack-website-tutorials.config.js",
"lint": "eslint --cache .",
"puglint": "pug-lint src examples",
"test": "GEOJS_TEST_CASE=tests/test-unit.js karma start karma-cov.conf.js --single-run --browsers ChromeHeadlessTouch,FirefoxTouch,PhantomJS",
Expand All @@ -106,7 +110,9 @@
"examples": "webpack-dev-server --config webpack-examples.config.js --host ${HOST-127.0.0.1} --port ${PORT-8082} --content-base dist/",
"start-test": "node examples/build.js; forever start ./testing/test-runners/server.js",
"stop-test": "forever stop ./testing/test-runners/server.js",
"docs": "jsdoc --pedantic -d dist/apidocs -r src -c jsdoc.conf.json"
"docs": "jsdoc --pedantic -d dist/apidocs -r src -c jsdoc.conf.json",
"website": "cd website && npx hexo server",
"build-website": "npm run build && cp -a dist/built/. website/source/built && npm run build-website-examples && npm run build-website-tutorials && npm run docs && cp -ar dist/data/. website/source/data && cp -ar dist/apidocs/. website/source/apidocs && cd website && rm -f db.json && npx hexo generate"
},
"keywords": [
"map",
Expand Down
34 changes: 34 additions & 0 deletions tutorials/build-website.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
var path = require('path');
var fs = require('fs-extra');
var pug = require('pug');

var buildUtils = require('../examples/build-utils');

// generate the tutorials
fs.ensureDirSync('website/source/tutorials');
var tutorials = buildUtils.getList('tutorials', 'tutorial', path.resolve('website', 'source'));

tutorials.map(function (json) {
var pugTemplate = fs.readFileSync(path.relative('.', path.resolve(json.dir, 'index.pug')), 'utf8');
pugTemplate = pugTemplate.replace('extends ../common/index.pug', 'extends ../common/index-website.pug');

var fn = pug.compile(pugTemplate, {
pretty: false,
filename: path.relative('.', path.resolve(json.dir, 'index.pug'))
});
var html = fn(json);
html = `---
layout: tutorial
title: ${json.title}
about: ${json.about.text}
tutorialCss: ${JSON.stringify(json.tutorialCss)}
tutorialJs: ${JSON.stringify(json.tutorialJs)}
---
` + html;
fs.writeFileSync(path.resolve(json.output, 'index.html'), html);
});

// copy common files
fs.copySync('tutorials/common', 'website/source/tutorials/common');

buildUtils.writeYamlList(path.resolve('website', 'source', '_data'), 'tutorials.yml', tutorials);
Loading