Closes #43 - Generates full markup at build time, while retaining any needed JS dynamics on the browser side.
Now using webpack to serve locally
employ common NODE_ENV var usage, either "production" or "development";
hugo serves the file structure to a temporary directory;
those files are then processed by webpack to append the react output;
there's a better loading (percentage) indicator in the console when building, so it's easier to know when webpack is done (#24);
webpack is also the local server used as well, when you run yarn start; used to be hugo doing that, so one more step towards complete hugo abstraction;
~webpack server doesn't add the trailing slash correctly in the admin path and so Netlify CMS fails to load:~
~temporary solution is to always type the forward slash;~
~doesn't affect live builds on Netlify of course, which redirect to the trailing slash correctly, it's only a local issue.~
App entry point
Renamed the folder jsx to components to be more in-line with common development procedure;
The entry point for resulting app.min.js file, called in the browser, is now components/App.jsx, which must be modified to list and initialize every individual component per project/site.
New BesugoComponent properties and methods
(They're all better documented in the code.)
.view(), that returns either the window object or CMS's iframe, depending on where it is being rendered, for easier abstraction during any implementation work;
.config is an object that defines the component within the website context, see inline comments on what properties it expects;
.extraProps() called before building a component, to fetch any information necessary not found in props; use to append directly to props;
.buildContainer() what form should the component's container take; by default this returns a simple div. Useful when you're building lists and want to wrap lis in a ul for instance.
Closes #43 - Generates full markup at build time, while retaining any needed JS dynamics on the browser side.
Now using webpack to serve locally
hugo
serves the file structure to a temporary directory;webpack
to append the react output;webpack
is done (#24);webpack
is also the local server used as well, when you runyarn start
; used to behugo
doing that, so one more step towards completehugo
abstraction;webpack
server doesn't add the trailing slash correctly in the admin path and so Netlify CMS fails to load:~App entry point
jsx
tocomponents
to be more in-line with common development procedure;app.min.js
file, called in the browser, is nowcomponents/App.jsx
, which must be modified to list and initialize every individual component per project/site.New BesugoComponent properties and methods
(They're all better documented in the code.)
.view()
, that returns either thewindow
object or CMS's iframe, depending on where it is being rendered, for easier abstraction during any implementation work;.config
is an object that defines the component within the website context, see inline comments on what properties it expects;.extraProps()
called before building a component, to fetch any information necessary not found in props; use to append directly to props;.buildContainer()
what form should the component's container take; by default this returns a simple div. Useful when you're building lists and want to wrapli
s in aul
for instance.