diff --git a/.gitignore b/.gitignore index e5fb71a7..c707164d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ data locales images/latex/source component/section/**/index.js +!component/section/index.js +.buildmark +npm-debug.log diff --git a/components/sections/index.js b/components/sections/index.js new file mode 100644 index 00000000..442e6182 --- /dev/null +++ b/components/sections/index.js @@ -0,0 +1,59 @@ +/** + * This is an ordered list of all sections for the article + * @type {Object} + */ +module.exports = { + preface: require("./preface"), + introduction: require("./introduction"), + whatis: require("./whatis"), + explanation: require("./explanation"), + control: require("./control"), + extended: require("./extended"), + + matrix: require("./matrix"), + decasteljau: require("./decasteljau"), + flattening: require("./flattening"), + splitting: require("./splitting"), + matrixsplit: require("./matrixsplit"), + reordering: require("./reordering"), + + derivatives: require("./derivatives"), + pointvectors: require("./pointvectors"), + components: require("./components"), + extremities: require("./extremities"), + boundingbox: require("./boundingbox"), + aligning: require("./aligning"), + tightbounds: require("./tightbounds"), + inflections: require("./inflections"), + canonical: require("./canonical"), + + arclength: require("./arclength"), + arclengthapprox: require("./arclengthapprox"), + tracing: require("./tracing"), + + intersections: require("./intersections"), + curveintersection: require("./curveintersection"), + + abc: require("./abc"), + moulding: require("./moulding"), + pointcurves: require("./pointcurves"), + + catmullconv: require("./catmullconv"), + catmullmoulding: require("./catmullmoulding"), + + polybezier: require("./polybezier"), + + shapes: require("./shapes"), + + projections: require("./projections"), + offsetting: require("./offsetting"), + graduatedoffset: require("./graduatedoffset"), + + circles: require("./circles"), + circles_cubic: require("./circles_cubic"), + arcapproximation: require("./arcapproximation"), + + bsplines: require("./bsplines"), + + comments: require("./comments") +}; diff --git a/package.json b/package.json index 4453d69c..8927ccb8 100644 --- a/package.json +++ b/package.json @@ -3,18 +3,19 @@ "version": "2.0.0", "description": "pomax.github.io/bezierinfo", "scripts": { + "bootstrap": "run-s makeindex localize", "localize": "node tools/make-locales", "prebuild": "node tools/buildmark -- set", - "build": "run-s localize less makeindex build:** default", + "build": "run-s bootstrap less build:** default", "default": "node tools/copy-default-locale", "postbuild": "node tools/buildmark -- resolve", - "makeindex": "node tools/form-section-index-files.js", + "makeindex": "node tools/form-section-index-files", "build:en-GB": "webpack -p", "build:zh-CN": "cross-env LOCALE=zh-CN webpack -p", "build:ja-JP": "cross-env LOCALE=ja-JP webpack -p", - "dev": "npm run localize && npm run less && webpack-dev-server --progress --colors --hot --inline", - "dev:zh-CN": "npm run localize && npm run less && cross-env LOCALE=zh-CN webpack-dev-server --progress --colors --hot --inline", - "dev:ja-JP": "npm run localize && npm run less && cross-env LOCALE=ja-JP webpack-dev-server --progress --colors --hot --inline", + "dev": "npm run bootstrap && npm run less && webpack-dev-server --progress --colors --hot --inline", + "dev:zh-CN": "npm run bootstrap && npm run less && cross-env LOCALE=zh-CN webpack-dev-server --progress --colors --hot --inline", + "dev:ja-JP": "npm run bootstrap && npm run less && cross-env LOCALE=ja-JP webpack-dev-server --progress --colors --hot --inline", "latex": "node tools/tex-to-svg", "less": "lessc stylesheets/style.less > stylesheets/style.base.css && csso stylesheets/style.base.css > stylesheets/style.css", "singles": "npm run dev -- --singles", diff --git a/tools/form-section-index-files.js b/tools/form-section-index-files.js index 4010cd90..19991257 100644 --- a/tools/form-section-index-files.js +++ b/tools/form-section-index-files.js @@ -14,11 +14,15 @@ var jsxshim = require("./lib/jsx-shim"); const BASEDIR = path.join(__dirname, ".."); var index = require(path.join(BASEDIR, "components/sections")); +console.log(index); + var handlers = []; Object.keys(index).forEach( section => { var handlerFile = path.join(BASEDIR, `components/sections/${section}/handler.js`); + var hasHandler = false; var withKeys = false; + if (fs.existsSync(handlerFile)) { hasHandler = true; let content = fs.readFileSync(handlerFile).toString(); @@ -38,5 +42,6 @@ Object.keys(index).forEach( section => { `module.exports = generateBase("${section}");` ].filter(l => !!l).join('\n'); + console.log(`writing ${section}`); fs.writeFileSync(path.join(BASEDIR,`components/sections/${section}/index.js`), indexCode); });