diff --git a/server/client/front-end.js b/server/client/front-end.js index ef3ee6e..acd582f 100644 --- a/server/client/front-end.js +++ b/server/client/front-end.js @@ -32,4 +32,4 @@ var b=n("../node_modules/object-assign/index.js"),j="function"==typeof Symbol&&S * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -Object.defineProperty(t,"__esModule",{value:!0});var u,l,d=null,c=!1,m=3,f=-1,_=-1,h=!1,p=!1,y=Date,g="function"==typeof setTimeout?setTimeout:void 0,v="function"==typeof clearTimeout?clearTimeout:void 0,b="function"==typeof requestAnimationFrame?requestAnimationFrame:void 0,j="function"==typeof cancelAnimationFrame?cancelAnimationFrame:void 0;if("object"==typeof performance&&"function"==typeof performance.now){var M=performance;t.unstable_now=function(){return M.now()}}else t.unstable_now=function(){return y.now()};var L,k,w,T=null;if("undefined"!=typeof window?T=window:"undefined"!=typeof global&&(T=global),T&&T._schedMock){var Y=T._schedMock;L=Y[0],k=Y[1],w=Y[2],t.unstable_now=Y[3]}else if("undefined"==typeof window||"function"!=typeof MessageChannel){var x=null,D=function(e){if(null!==x)try{x(e)}finally{x=null}};L=function(e){null!==x?setTimeout(L,0,e):(x=e,setTimeout(D,0,!1))},k=function(){x=null},w=function(){return!1}}else{"undefined"!=typeof console&&("function"!=typeof b&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!=typeof j&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"));var S=null,E=!1,P=-1,C=!1,H=!1,O=0,A=33,R=33;w=function(){return O<=t.unstable_now()};var N=new MessageChannel,F=N.port2;N.port1.onmessage=function(){E=!1;var e=S,n=P;S=null,P=-1;var r=t.unstable_now(),o=!1;if(0>=O-r){if(!(-1!==n&&n<=r))return C||(C=!0,a(I)),S=e,void(P=n);o=!0}if(null!==e){H=!0;try{e(o)}finally{H=!1}}};var I=function(e){if(null!==S){a(I);var t=e-O+R;tt&&(t=8),R=tt?F.postMessage(void 0):C||(C=!0,a(I))},k=function(){S=null,E=!1,P=-1}}t.unstable_ImmediatePriority=1,t.unstable_UserBlockingPriority=2,t.unstable_NormalPriority=3,t.unstable_IdlePriority=5,t.unstable_LowPriority=4,t.unstable_runWithPriority=function(e,n){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=m,o=f;m=e,f=t.unstable_now();try{return n()}finally{m=r,f=o,s()}},t.unstable_scheduleCallback=function(e,n){var o=-1!==f?f:t.unstable_now();if("object"==typeof n&&null!==n&&"number"==typeof n.timeout)n=o+n.timeout;else switch(m){case 1:n=o+-1;break;case 2:n=o+250;break;case 5:n=o+1073741823;break;case 4:n=o+1e4;break;default:n=o+5e3}if(e={callback:e,priorityLevel:m,expirationTime:n,next:null,previous:null},null===d)d=e.next=e.previous=e,r();else{o=null;var s=d;do{if(s.expirationTime>n){o=s;break}s=s.next}while(s!==d);null===o?o=d:o===d&&(d=e,r()),n=o.previous,n.next=o.previous=e,e.next=o,e.previous=n}return e},t.unstable_cancelCallback=function(e){var t=e.next;if(null!==t){if(t===e)d=null;else{e===d&&(d=t);var n=e.previous;n.next=t,t.previous=n}e.next=e.previous=null}},t.unstable_wrapCallback=function(e){var n=m;return function(){var r=m,o=f;m=n,f=t.unstable_now();try{return e.apply(this,arguments)}finally{m=r,f=o,s()}}},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_shouldYield=function(){return!c&&(null!==d&&d.expirationTime<_||w())}},"../node_modules/scheduler/index.js":function(e,t,n){"use strict";e.exports=n("../node_modules/scheduler/cjs/scheduler.production.min.js")},"../node_modules/string_decoder/index.js":function(e,t,n){function r(e){if(e&&!u(e))throw new Error("Unknown encoding: "+e)}function o(e){return e.toString(this.encoding)}function s(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function i(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}var a=n("buffer").Buffer,u=a.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},l=t.StringDecoder=function(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),r(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=s;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=i;break;default:return void(this.write=o)}this.charBuffer=new a(6),this.charReceived=0,this.charLength=0};l.prototype.write=function(e){for(var t="";this.charLength;){var n=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,n),this.charReceived+=n,this.charReceived=55296&&r<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var o=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,o),o-=this.charReceived),t+=e.toString(this.encoding,0,o);var o=t.length-1,r=t.charCodeAt(o);if(r>=55296&&r<=56319){var s=this.surrogateSize;return this.charLength+=s,this.charReceived+=s,this.charBuffer.copy(this.charBuffer,s,0,s),e.copy(this.charBuffer,0,0,s),t.substring(0,o)}return t},l.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var n=e[e.length-t];if(1==t&&n>>5==6){this.charLength=2;break}if(t<=2&&n>>4==14){this.charLength=3;break}if(t<=3&&n>>3==30){this.charLength=4;break}}this.charReceived=t},l.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var n=this.charReceived,r=this.charBuffer,o=this.encoding;t+=r.slice(0,n).toString(o)}return t}},"../node_modules/webpack/buildin/module.js":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"./front-end.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.FrontEnd=t.default=void 0;var o=n("../node_modules/babel-runtime/helpers/typeof.js"),s=r(o),i=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/createClass.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),f=r(m),_=n("../node_modules/babel-runtime/helpers/inherits.js"),h=r(_),p=n("../node_modules/react/index.js"),y=r(p),g=n("./wordpress.js"),v=r(g),b=n("./routing.js"),j=n("./widgets/side-nav.jsx"),M=r(j),L=n("./widgets/top-nav.jsx"),k=r(L);n("./style.scss"),n("../node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss"),n("../node_modules/@fortawesome/fontawesome-free/scss/regular.scss"),n("../node_modules/@fortawesome/fontawesome-free/scss/solid.scss");var w=function(e){function t(e){(0,l.default)(this,t);var n=(0,f.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e));T.call(n);var r=n.props,o=r.routeManager,s=r.dataSource;return n.state={route:new b.Route(o,s),wp:new v.default(s,e.ssr),sideNavCollapsed:!0,topNavCollapsed:!1},n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.state,t=e.route,n=e.wp,r=this.state.topNavCollapsed,o=this.state.sideNavCollapsed,s=t.params.module.default,i=[];r&&i.push("top-collapsed"),o&&i.push("side-collapsed");var a=t.url;return y.default.createElement("div",{className:i.join(" ")},y.default.createElement(M.default,{route:t,wp:n}),y.default.createElement(k.default,{route:t,wp:n}),y.default.createElement("div",{className:"page-container"},y.default.createElement(s,{route:t,wp:n,key:a})))}},{key:"componentDidMount",value:function(){var e=this.props,t=e.routeManager,r=e.dataSource;if(t.addEventListener("change",this.handleRouteChange),r.addEventListener("change",this.handleDataSourceChange),document.addEventListener("scroll",this.handleScroll),"object"===("undefined"==typeof window?"undefined":(0,s.default)(window))){var o=n("../node_modules/hammerjs/hammer.js"),i=new o(document.body);i.on("swipeleft",this.handleSwipeLeft),i.on("swiperight",this.handleSwipeRight)}}},{key:"componentDidUpdate",value:function(e,t){var n=this.props,r=n.dataSource,o=n.ssr,s=this.state.route;e.ssr!==o&&this.setState({wp:new v.default(r,o)}),t.route!==s&&(t.route.history.length0&&(s=r.parentNode.scrollTop),s-o>0){if(!n){var i=document.getElementsByClassName("page-container")[0],a=i?i.firstChild:null;if(a){var u=a.getBoundingClientRect();u.top<=40&&e.setState({topNavCollapsed:!0})}else e.setState({topNavCollapsed:!0})}}else n&&e.setState({topNavCollapsed:!1});e.previousScrollPosition=s},this.handleSwipeLeft=function(t){e.state.sideNavCollapsed||e.setState({sideNavCollapsed:!0})},this.handleSwipeRight=function(t){e.state.sideNavCollapsed&&e.setState({sideNavCollapsed:!1})}};t.default=w,t.FrontEnd=w},"./main.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var o=n("../node_modules/babel-runtime/regenerator/index.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/typeof.js"),l=r(u),d=n("../node_modules/bluebird/js/release/bluebird.js"),c=n("../node_modules/react/index.js"),m=n("../node_modules/react-dom/index.js"),f=n("./front-end.jsx"),_=n("./routing.js"),h=n("./wordpress-data-source.js"),p=r(h),y=n("../node_modules/relaks-route-manager/index.js"),g=r(y),v=n("../node_modules/relaks-harvest/index.js"),b=n("../node_modules/relaks/index.js");r(b);if("object"===("undefined"==typeof window?"undefined":(0,l.default)(window))){var j=function(){var e=(0,a.default)(s.default.mark(function e(t){var n,r,o,i,a,u,l,h,y,j,M;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=location.protocol+"//"+location.host,r=new p.default({baseURL:n+"/json"}),r.activate(),o=new g.default({routes:_.routes,basePath:"",preloadingDelay:2e3}),o.addEventListener("beforechange",function(e){var t=new _.Route(o,r);e.postponeDefault(t.setPageType(e.params))}),o.activate(),e.next=9,o.start();case 9:return i=document.getElementById("react-container"),a=(0,c.createElement)(f.FrontEnd,{dataSource:r,routeManager:o,ssr:"hydrate"}),e.next=14,(0,v.harvest)(a,{seeds:!0});case 14:u=e.sent,(0,b.plant)(u),(0,m.hydrate)(a,i);case 17:l=(0,c.createElement)(f.FrontEnd,{dataSource:r,routeManager:o}),(0,m.render)(l,i),h=n+"/.mtime",y=void 0;case 21:return e.prev=21,e.next=24,fetch(h);case 24:return j=e.sent,e.next=27,j.text();case 27:M=e.sent,M!==y&&(y&&(console.log("changed"),r.invalidate()),y=M),e.next=33;break;case 31:e.prev=31,e.t0=e.catch(21);case 33:return e.next=35,(0,d.delay)(1e4);case 35:e.next=21;break;case 37:case"end":return e.stop()}},e,this,[[21,31]])}));return function(t){return e.apply(this,arguments)}}();window.addEventListener("load",j)}else{var M=function(){var e=(0,a.default)(s.default.mark(function e(t){var n,r,o;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=new p.default({baseURL:t.host+"/json",fetchFunc:t.fetch}),n.activate(),r=new g.default({routes:_.routes,basePath:""}),r.addEventListener("beforechange",function(e){var t=new _.Route(r,n);e.postponeDefault(t.setPageType(e.params))}),r.activate(),e.next=7,r.start(t.path);case 7:return o=(0,c.createElement)(f.FrontEnd,{dataSource:n,routeManager:r,ssr:t.target}),e.abrupt("return",(0,v.harvest)(o));case 9:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}();t.render=M}},"./pages recursive ^\\.\\/.*\\-page$":function(e,t,n){function r(e){return n(o(e))}function o(e){var t=s[e];if(!(t+1))throw new Error("Cannot find module '"+e+"'.");return t}var s={"./archive-page":"./pages/archive-page.jsx","./category-page":"./pages/category-page.jsx","./page-page":"./pages/page-page.jsx","./post-page":"./pages/post-page.jsx","./search-page":"./pages/search-page.jsx","./welcome-page":"./pages/welcome-page.jsx"};r.keys=function(){return Object.keys(s)},r.resolve=o,e.exports=r,r.id="./pages recursive ^\\.\\/.*\\-page$"},"./pages/archive-page.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.ArchivePageSync=t.ArchivePage=t.default=void 0;var o=n("../node_modules/babel-runtime/regenerator/index.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),a=r(i),u=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/createClass.js"),f=r(m),h=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),p=r(h),y=n("../node_modules/babel-runtime/helpers/inherits.js"),g=r(y),v=n("../node_modules/moment/moment.js"),b=r(v),j=n("../node_modules/react/index.js"),M=r(j),L=n("../node_modules/relaks/index.js"),k=(n("./routing.js"),n("./wordpress.js")),w=(r(k),n("./widgets/breadcrumb.jsx")),T=r(w),Y=n("./widgets/post-list.jsx"),x=r(Y),D=function(e){function t(){return(0,c.default)(this,t),(0,p.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"renderAsync",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,a.default)(s.default.mark(function e(t){var n,r,o,i,a,u,l,d,c,m,f,h;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.props,r=n.wp,o=n.route,i=o.params,a=i.monthSlug,u=i.categorySlug,l=(0,b.default)(a),d={route:o,month:l},c=l.toISOString(),m=l.clone().endOf("month").toISOString(),t.show(M.default.createElement(S,d)),e.next=9,r.fetchList("/wp/v2/categories/");case 9:return d.categories=e.sent,t.show(M.default.createElement(S,d)),f="/wp/v2/posts/?after="+c+"&before="+m,u&&(h=_.find(d.categories,{slug:u}),f="/wp/v2/posts/?after="+c+"&before="+m+"&categories="+h.id),e.next=15,r.fetchList(f);case 15:return d.posts=e.sent,e.abrupt("return",M.default.createElement(S,d));case 17:case"end":return e.stop()}},e,this)}));return e}()}]),t}(L.AsyncComponent);D.displayName="ArchivePage";var S=function(e){function t(){return(0,c.default)(this,t),(0,p.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.categories,r=e.posts,o=e.month,s=t.params,i=s.monthSlug,a=s.categorySlug,u=o.format("MMMM YYYY"),l=t.find([i]),d=[{label:"Archive"}];if(a){var c=_.find(n,{slug:a}),m=_.get(c,"name","");d.push({label:u,url:l}),d.push({label:m})}else d.push({label:u});return M.default.createElement("div",{className:"page"},M.default.createElement(T.default,{trail:d}),M.default.createElement(x.default,{route:t,posts:r,month:o,categories:n,minimum:100}))}}]),t}(j.PureComponent);S.displayName="ArchivePageSync";t.default=D,t.ArchivePage=D,t.ArchivePageSync=S},"./pages/category-page.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CategoryPageSync=t.CategoryPage=t.default=void 0;var o=n("../node_modules/babel-runtime/regenerator/index.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),a=r(i),u=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/createClass.js"),f=r(m),h=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),p=r(h),y=n("../node_modules/babel-runtime/helpers/inherits.js"),g=r(y),v=n("../node_modules/react/index.js"),b=r(v),j=n("../node_modules/relaks/index.js"),M=(n("./routing.js"),n("./wordpress.js")),L=(r(M),n("./widgets/breadcrumb.jsx")),k=r(L),w=n("./widgets/post-list.jsx"),T=r(w),Y=function(e){function t(){return(0,c.default)(this,t),(0,p.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"renderAsync",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,a.default)(s.default.mark(function e(t){var n,r,o,i,a,u;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.props,r=n.wp,o=n.route,i=o.params.categorySlug,a={route:o},t.show(b.default.createElement(x,a)),e.next=6,r.fetchList("/wp/v2/categories/");case 6:return a.categories=e.sent,t.show(b.default.createElement(x,a)),u=_.find(a.categories,{slug:i}),e.next=11,r.fetchList("/wp/v2/posts/?categories="+u.id);case 11:return a.posts=e.sent,e.abrupt("return",b.default.createElement(x,a));case 13:case"end":return e.stop()}},e,this)}));return e}()}]),t}(j.AsyncComponent);Y.displayName="CategoryPage";var x=function(e){function t(){return(0,c.default)(this,t),(0,p.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,f.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.posts,r=e.categories,o=t.params.categorySlug,s=_.find(r,{slug:o}),i=_.get(s,"name",""),a=[{label:"Categories"},{label:i}];return b.default.createElement("div",{className:"page"},b.default.createElement(k.default,{trail:a}),b.default.createElement(T.default,{route:t,categories:r,posts:n,minimum:40}))}}]),t}(v.PureComponent);x.displayName="CategoryPageSync";t.default=Y,t.CategoryPage=Y,t.CategoryPageSync=x},"./pages/page-page.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PagePageSync=t.PagePage=t.default=void 0;var o=n("../node_modules/babel-runtime/core-js/get-iterator.js"),s=r(o),i=n("../node_modules/babel-runtime/regenerator/index.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),l=r(u),d=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),f=r(m),_=n("../node_modules/babel-runtime/helpers/createClass.js"),h=r(_),p=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),y=r(p),g=n("../node_modules/babel-runtime/helpers/inherits.js"),v=r(g),b=n("../node_modules/lodash/lodash.js"),j=r(b),M=n("../node_modules/react/index.js"),L=r(M),k=n("../node_modules/relaks/index.js"),w=(n("./routing.js"),n("./wordpress.js")),T=(r(w),n("./widgets/html.jsx")),Y=r(T),x=n("./widgets/breadcrumb.jsx"),D=r(x),S=n("./widgets/page-view.jsx"),E=r(S),P=n("./widgets/page-list.jsx"),C=r(P),H=function(e){function t(){return(0,f.default)(this,t),(0,y.default)(this,(t.__proto__||(0,c.default)(t)).apply(this,arguments))}return(0,v.default)(t,e),(0,h.default)(t,[{key:"renderAsync",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,l.default)(a.default.mark(function e(t){var n,r,o,s,i,u,l;return a.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.props,r=n.wp,o=n.route,s=o.params,i=s.pageSlug,u=s.parentPageSlugs,l={route:o},e.next=5,r.fetchOne("/wp/v2/pages/",i);case 5:return l.page=e.sent,t.show(L.default.createElement(O,l)),e.next=9,r.fetchMultiple("/wp/v2/pages/",u);case 9:return l.parentPages=e.sent,t.show(L.default.createElement(O,l)),e.next=13,r.fetchList("/wp/v2/pages/?parent="+l.page.id,{minimum:"100%"});case 13:return l.childPages=e.sent,e.abrupt("return",L.default.createElement(O,l));case 15:case"end":return e.stop()}},e,this)}));return e}()}]),t}(k.AsyncComponent);H.displayName="PagePage";var O=function(e){function t(){return(0,f.default)(this,t),(0,y.default)(this,(t.__proto__||(0,c.default)(t)).apply(this,arguments))}return(0,v.default)(t,e),(0,h.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.page,r=e.parentPages,o=e.childPages,i=(e.transform,[]),a=[];if(r){var u=!0,l=!1,d=void 0;try{for(var c,m=(0,s.default)(r);!(u=(c=m.next()).done);u=!0){var f=c.value;a.push(f);var _=j.default.get(f,"title.rendered",""),h=j.default.map(a,"slug"),p=t.find(h);i.push({label:L.default.createElement(Y.default,{text:_}),url:p})}}catch(e){l=!0,d=e}finally{try{!u&&m.return&&m.return()}finally{if(l)throw d}}a.push(n)}return L.default.createElement("div",{className:"page"},L.default.createElement(D.default,{trail:i}),L.default.createElement(E.default,{page:n,transform:t.transformLink}),L.default.createElement(C.default,{route:t,pages:o,parentPages:a}))}}]),t}(M.PureComponent);O.displayName="PagePageSync";t.default=H,t.PagePage=H,t.PagePageSync=O},"./pages/post-page.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PostPageSync=t.PostPage=t.default=void 0;var o=n("../node_modules/babel-runtime/regenerator/index.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),a=r(i),u=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/createClass.js"),f=r(m),_=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),h=r(_),p=n("../node_modules/babel-runtime/helpers/inherits.js"),y=r(p),g=n("../node_modules/lodash/lodash.js"),v=r(g),b=n("../node_modules/moment/moment.js"),j=r(b),M=n("../node_modules/react/index.js"),L=r(M),k=n("../node_modules/relaks/index.js"),w=(n("./routing.js"),n("./wordpress.js")),T=(r(w),n("./widgets/breadcrumb.jsx")),Y=r(T),x=n("./widgets/post-view.jsx"),D=r(x),S=n("./widgets/comment-section.jsx"),E=r(S),P=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,y.default)(t,e),(0,f.default)(t,[{key:"renderAsync",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,a.default)(s.default.mark(function e(t){var n,r,o,i,a,u,l,d;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=this.props,r=n.wp,o=n.route,i=o.params,a=i.monthSlug,u=i.categorySlug,l=i.postSlug,d={route:o},a&&(d.month=(0,j.default)(a)),t.show(L.default.createElement(C,d)),!u){e.next=10;break}return e.next=8,r.fetchOne("/wp/v2/categories/",u);case 8:d.category=e.sent,t.show(L.default.createElement(C,d));case 10:return e.next=12,r.fetchOne("/wp/v2/posts/",l);case 12:return d.post=e.sent,t.show(L.default.createElement(C,d)),e.next=16,r.fetchOne("/wp/v2/users/",d.post.author);case 16:if(d.author=e.sent,r.ssr){e.next=22;break}return t.show(L.default.createElement(C,d)),e.next=21,r.fetchList("/wp/v2/comments/?post="+d.post.id);case 21:d.comments=e.sent;case 22:return e.abrupt("return",L.default.createElement(C,d));case 23:case"end":return e.stop()}},e,this)}));return e}()}]),t}(k.AsyncComponent);P.displayName="AchivePostPage";var C=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,y.default)(t,e),(0,f.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.month,r=e.category,o=e.post,s=e.author,i=e.comments,a=t.params,u=a.monthSlug,l=a.categorySlug,d=[];if(u){var c=n.format("MMMM YYYY"),m=t.find([u]);d.push({label:"Archive"}),d.push({label:c,url:m})}if(l){var f=v.default.get(r,"name",""),_=void 0;u?_=t.find([u,l]):(d.push({label:"Categories"}),_=t.find([l])),d.push({label:f,url:_})}return L.default.createElement("div",{className:"page"},L.default.createElement(Y.default,{trail:d}),L.default.createElement(D.default,{category:r,post:o,author:s,transform:t.transformLink}),L.default.createElement(E.default,{comments:i}))}}]),t}(M.PureComponent);C.displayName="PostPageSync";t.default=P,t.PostPage=P,t.PostPageSync=C},"./pages/search-page.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.SearchPageSync=t.SearchPage=t.default=void 0;var o=n("../node_modules/babel-runtime/regenerator/index.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),a=r(i),u=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/createClass.js"),f=r(m),_=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),h=r(_),p=n("../node_modules/babel-runtime/helpers/inherits.js"),y=r(p),g=n("../node_modules/react/index.js"),v=r(g),b=n("../node_modules/relaks/index.js"),j=(n("./routing.js"),n("./wordpress.js")),M=(r(j),n("./widgets/breadcrumb.jsx")),L=r(M),k=n("./widgets/post-list.jsx"),w=r(k),T=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,y.default)(t,e),(0,f.default)(t,[{key:"renderAsync",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,a.default)(s.default.mark(function e(t){var n,r,o,i,a,u;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.props,r=n.wp,o=n.route,i=o.params.search,a={route:o},t.show(v.default.createElement(Y,a)),e.next=6,r.fetchList("/wp/v2/categories/");case 6:if(a.categories=e.sent,!i){e.next=14;break}return u="/wp/v2/posts/?search="+encodeURIComponent(i)+"'",e.next=11,r.fetchList(u);case 11:a.posts=e.sent,e.next=15;break;case 14:a.posts=null;case 15:return e.abrupt("return",v.default.createElement(Y,a));case 16:case"end":return e.stop()}},e,this)}));return e}()}]),t}(b.AsyncComponent);T.displayName="SearchPage";var Y=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,y.default)(t,e),(0,f.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.categories,r=e.posts,o=t.params.search,s=[{label:"Search"}];if(r){var i=r.total,a=1===i?"":"s",u=i+" matching article"+a;s.push({label:u})}else o&&s.push({label:"..."});return v.default.createElement("div",{className:"page"},v.default.createElement(L.default,{trail:s}),v.default.createElement(w.default,{categories:n,route:t,posts:r,minimum:40}))}}]),t}(g.PureComponent);Y.displayName="SearchPageSync";t.default=T,t.SearchPage=T,t.SearchPageSync=Y},"./pages/welcome-page.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.WelcomePageSync=t.WelcomePage=t.default=void 0;var o=n("../node_modules/babel-runtime/regenerator/index.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),a=r(i),u=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/createClass.js"),f=r(m),_=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),h=r(_),p=n("../node_modules/babel-runtime/helpers/inherits.js"),y=r(p),g=n("../node_modules/react/index.js"),v=r(g),b=n("../node_modules/relaks/index.js"),j=(n("./routing.js"),n("./wordpress.js")),M=(r(j),n("./widgets/post-list.jsx")),L=r(M),k=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,y.default)(t,e),(0,f.default)(t,[{key:"renderAsync",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,a.default)(s.default.mark(function e(t){var n,r,o,i;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.props,r=n.wp,o=n.route,i={route:o},t.show(v.default.createElement(w,i)),e.next=5,r.fetchList("/wp/v2/categories/");case 5:return i.categories=e.sent,e.next=8,r.fetchList("/wp/v2/posts/");case 8:return i.posts=e.sent,e.abrupt("return",v.default.createElement(w,i));case 10:case"end":return e.stop()}},e,this)}));return e}()}]),t}(b.AsyncComponent);k.displayName="WelcomePage";var w=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,y.default)(t,e),(0,f.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.categories,r=e.posts;return v.default.createElement("div",{className:"page"},v.default.createElement(L.default,{categories:n,route:t,posts:r,minimum:40}))}}]),t}(g.PureComponent);w.displayName="WelcomePageSync";t.default=k,t.WelcomePage=k,t.WelcomePageSync=w},"./routing.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.routes=t.Route=void 0;var o=n("../node_modules/babel-runtime/regenerator/index.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/createClass.js"),c=r(d),m=n("../node_modules/lodash/lodash.js"),f=function(){function e(t,n){var r=this;(0,l.default)(this,e),this.transformLink=function(e){if("tag"===e.type&&"a"===e.name){if(r.pageLinkRegExp){var t=r.pageLinkRegExp.exec(e.attribs.href);if(t){var n=t[1],o=t[3];return e.attribs.href="/"+n+"/"+o+"/",delete e.attribs.target,void r.preloadPage({categorySlug:n,postSlug:o})}}if(r.imageLinkRegExp){if(r.imageLinkRegExp.exec(e.attribs.href))return void(e.attribs.target||(e.attribs.target="_blank"))}}},this.routeManager=t,this.name=t.name,this.params=t.params,this.history=t.history,this.url=t.url,this.dataSource=n,this.pageLinkRegExp=null,this.imageLinkRegExp=null}return(0,c.default)(e,[{key:"change",value:function(e,t){return this.routeManager.change(e,t)}},{key:"find",value:function(e){if(e instanceof Array){var t=e;return this.routeManager.find("page",{slugs:t})}return this.routeManager.find("page",e)}},{key:"setPageType",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,a.default)(s.default.mark(function e(t){var n,r,o;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.slugs,!(n.length>0)){e.next=29;break}return e.next=4,this.getSlugType(n[0]);case 4:if("page"!==(r=e.sent)){e.next=11;break}t.pageType="page",t.pageSlug=m.last(n),t.parentPageSlugs=m.slice(n,0,-1),e.next=29;break;case 11:if("category"!==r){e.next=15;break}1===n.length?(t.pageType="category",t.categorySlug=n[0]):2===n.length&&(t.pageType="post",t.categorySlug=n[0],t.postSlug=n[1]),e.next=29;break;case 15:if("archive"!==r){e.next=29;break}if(1!==n.length){e.next=21;break}t.pageType="archive",t.monthSlug=n[0],e.next=29;break;case 21:if(2!==n.length){e.next=28;break}return e.next=24,this.getSlugType(n[1]);case 24:o=e.sent,"category"===o?(t.pageType="archive",t.monthSlug=n[0],t.categorySlug=n[1]):(t.pageType="post",t.monthSlug=n[0],t.postSlug=n[1]),e.next=29;break;case 28:3===n.length&&(t.pageType="post",t.monthSlug=n[0],t.categorySlug=n[1],t.postSlug=n[2]);case 29:t.pageType||(void 0!==t.search?t.pageType="search":t.pageType="welcome");case 30:case"end":return e.stop()}},e,this)}));return e}()},{key:"getSlugType",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,a.default)(s.default.mark(function e(t){var n,r,o;return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n={minimum:"100%"},e.next=3,this.dataSource.fetchList("/wp/v2/pages/?parent=0",n);case 3:if(r=e.sent,!m.some(r,{slug:t})){e.next=6;break}return e.abrupt("return","page");case 6:return e.next=8,this.dataSource.fetchList("/wp/v2/categories/",n);case 8:if(o=e.sent,!m.some(o,{slug:t})){e.next=11;break}return e.abrupt("return","category");case 11:if(!/^\d{4}\-\d{2}$/.test(t)){e.next=13;break}return e.abrupt("return","archive");case 13:case"end":return e.stop()}},e,this)}));return e}()},{key:"preloadPage",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,a.default)(s.default.mark(function e(t){return s.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:try{t.postSlug?this.dataSource.fetchOne("/wp/v2/posts/",t.postSlug):t.pageSlug&&this.dataSource.fetchOne("/wp/v2/pages/",t.pageSlug)}catch(e){}case 1:case"end":return e.stop()}},e,this)}));return e}()}]),e}(),_={page:{path:{from:function(e,t){return t.slugs=e.split("/").filter(Boolean),!0},to:function(e){return e.slugs instanceof Array?"/"+e.slugs.join("/"):"/"}},query:{search:"${search}"},load:function(e){var t=e.params.pageType;t&&(e.params.module=n("./pages recursive ^\\.\\/.*\\-page$")("./"+t+"-page"))}}};t.Route=f,t.routes=_},"./style.scss":function(e,t){},"./widgets/breadcrumb.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.trail,n=[],r=0,o=!0,s=!1,a=void 0;try{for(var l,d=(0,i.default)(t);!(o=(l=d.next()).done);o=!0){var c=l.value;n.push(u.default.createElement("a",{key:r++,href:c.url},c.label)),n.push(" > ")}}catch(e){s=!0,a=e}finally{try{!o&&d.return&&d.return()}finally{if(s)throw a}}return n.pop(),u.default.createElement("h4",{className:"breadcrumb"},n)}Object.defineProperty(t,"__esModule",{value:!0}),t.Breadcrumb=t.default=void 0;var s=n("../node_modules/babel-runtime/core-js/get-iterator.js"),i=r(s),a=n("../node_modules/react/index.js"),u=r(a);t.default=o,t.Breadcrumb=o},"./widgets/comment-list-view.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CommentListView=t.default=void 0;var o=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/createClass.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/inherits.js"),f=r(m),_=n("../node_modules/lodash/lodash.js"),h=r(_),p=n("../node_modules/react/index.js"),y=r(p),g=n("./widgets/html.jsx"),v=r(g),b=n("./widgets/comment-list.jsx"),j=r(b),M=function(e){function t(){return(0,a.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props.comment,t=h.default.get(e,"content.rendered",""),n=h.default.get(e,"author_avatar_urls.24"),r=h.default.get(e,"author_name");return y.default.createElement("div",{className:"comment-list-view"},y.default.createElement("div",{className:"commenter"},y.default.createElement("img",{className:"avatar",src:n}),y.default.createElement("span",{className:"name"},r,":")),y.default.createElement(v.default,{text:t}),this.renderReplies())}},{key:"renderReplies",value:function(){var e=this.props,t=e.comment,n=e.allComments;return h.default.some(n,{parent:t.id})?y.default.createElement("div",{className:"replies"},y.default.createElement(j.default,{allComments:n,parentCommentID:t.id})):null}}]),t}(p.PureComponent);M.displayName="CommentListView";t.default=M,t.CommentListView=M},"./widgets/comment-list.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CommentList=t.default=void 0;var o=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/createClass.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/inherits.js"),f=r(m),_=n("../node_modules/lodash/lodash.js"),h=r(_),p=n("../node_modules/react/index.js"),y=r(p),g=n("./widgets/comment-list-view.jsx"),v=r(g),b=function(e){function t(){return(0,a.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props,t=e.allComments,n=e.parentCommentID,r=h.default.filter(t,{parent:n});return y.default.createElement("div",{className:"comments"},h.default.map(r,function(e){return y.default.createElement(v.default,{comment:e,allComments:t,key:e.id})}))}}]),t}(p.PureComponent);b.displayName="CommentList";t.default=b,t.CommentList=b},"./widgets/comment-section.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CommentSection=t.default=void 0;var o=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/createClass.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/inherits.js"),f=r(m),_=n("../node_modules/lodash/lodash.js"),h=(r(_),n("../node_modules/react/index.js")),p=r(h),y=n("./widgets/comment-list.jsx"),g=r(y),v=function(e){function t(){return(0,a.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props.comments;return e&&0!==e.length?p.default.createElement("div",{className:"comment-section"},p.default.createElement("h3",null,"Comments"),p.default.createElement(g.default,{allComments:e,parentCommentID:0})):null}},{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(e,t){var n=this.props.allComments;n&&n.more()}}]),t}(h.PureComponent);v.displayName="CommentSection";t.default=v,t.CommentSection=v},"./widgets/html.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.HTML=t.default=void 0;var o=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/createClass.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/inherits.js"),f=r(m),_=n("../node_modules/react/index.js"),h=(r(_),n("../node_modules/react-html-parser/lib/index.js")),p=r(h),y=function(e){function t(){return(0,a.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props,t=e.text,n=e.transform,r={transform:n};return(0,p.default)(t,r)}}]),t}(_.PureComponent);t.default=y,t.HTML=y},"./widgets/page-list-view.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PageListView=t.default=void 0;var o=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/createClass.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/inherits.js"),f=r(m),_=n("../node_modules/lodash/lodash.js"),h=r(_),p=n("../node_modules/react/index.js"),y=r(p),g=(n("./routing.js"),n("./widgets/html.jsx")),v=r(g),b=function(e){function t(){return(0,a.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.parentPages,r=e.page,o=h.default.get(r,"title.rendered",""),s=h.default.map(n,"slug"),i=h.default.concat(s,r.slug),a=t.find(i);return y.default.createElement("div",{className:"page-list-view"},y.default.createElement("a",{href:a},y.default.createElement(v.default,{text:o})))}}]),t}(p.PureComponent);b.displayName="PageListView";t.default=b,t.PageListView=b},"./widgets/page-list.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PageList=t.default=void 0;var o=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/createClass.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/inherits.js"),f=r(m),_=n("../node_modules/lodash/lodash.js"),h=(r(_),n("../node_modules/react/index.js")),p=r(h),y=(n("./routing.js"),n("./widgets/page-list-view.jsx")),g=r(y),v=function(e){function t(){return(0,a.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.pages,r=e.parentPages;return n?p.default.createElement("ul",{className:"pages"},n.map(function(e){return p.default.createElement("li",{key:e.id},p.default.createElement(g.default,{route:t,page:e,parentPages:r}))})):null}},{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(e,t){var n=this.props.pages;n&&n.more()}}]),t}(h.PureComponent);v.displayName="PageList";t.default=v,t.PageList=v},"./widgets/page-view.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.PageView=t.default=void 0;var o=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),s=r(o),i=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),a=r(i),u=n("../node_modules/babel-runtime/helpers/createClass.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),c=r(d),m=n("../node_modules/babel-runtime/helpers/inherits.js"),f=r(m),_=n("../node_modules/lodash/lodash.js"),h=r(_),p=n("../node_modules/moment/moment.js"),y=r(p),g=n("../node_modules/react/index.js"),v=r(g),b=n("./widgets/html.jsx"),j=r(b),M=function(e){function t(){return(0,a.default)(this,t),(0,c.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props,t=e.page,n=e.transform,r=h.default.get(t,"title.rendered",""),o=h.default.get(t,"content.rendered",""),s=h.default.get(t,"modified_gmt");return s&&(s=(0,y.default)(s).format("LL")),v.default.createElement("div",{className:"page"},v.default.createElement("div",{className:"meta"},v.default.createElement("div",{className:"date"},s)),v.default.createElement("h1",null,v.default.createElement(j.default,{text:r})),v.default.createElement("div",{className:"content"},v.default.createElement(j.default,{text:o,transform:n})))}}]),t}(g.PureComponent);M.displayName="PageView";t.default=M,t.PageView=M},"./widgets/post-list-view.jsx":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.indexOf('
diff --git a/server/client/styles.css b/server/client/styles.css index 8c6a260..cbb2482 100644 --- a/server/client/styles.css +++ b/server/client/styles.css @@ -31,9 +31,26 @@ A:link, A:visited { color: #cccccc; } .side-nav A:link:hover, .side-nav A:visited:hover { color: #eeccdd; } + .side-nav .categories LI { + margin-top: 0.2em; + margin-bottom: 0.2em; } + .side-nav .categories LI A { + padding: 0.2em 0.5em 0.17em 0.5em; + margin-left: -0.4em; } + .side-nav .categories LI A.selected { + border-radius: 0.5em; + background-color: #990000; + color: #eeeeee; } .side-nav .archive LI { - margin-top: 0.1em; - margin-bottom: 0.1em; } + margin-top: 0.2em; + margin-bottom: 0.2em; } + .side-nav .archive LI A { + padding: 0.2em 0.5em 0.17em 0.5em; + margin-left: -0.4em; } + .side-nav .archive LI A.selected { + border-radius: 0.5em; + background-color: #990000; + color: #eeeeee; } .side-nav .archive .year { cursor: pointer; } .side-nav .archive .months { diff --git a/server/index.js b/server/index.js index fa3d9ff..a2fb2e0 100644 --- a/server/index.js +++ b/server/index.js @@ -6,25 +6,22 @@ const Compression = require('compression'); const SpiderDetector = require('spider-detector') const DNSCache = require('dnscache'); const CrossFetch = require('cross-fetch'); -const ReactDOMServer = require('react-dom/server'); -const FrontEnd = require('./client/front-end'); + +const PageRenderer = require('./page-renderer'); +const JSONRetriever = require('./json-retriever'); const NginxCache = require('./nginx-cache'); // enable DNS caching -let dnsCache = DNSCache({ enable: true, ttl: 300, cachesize: 100 }); +let dnsCache = Bluebird.promisifyAll(DNSCache({ + enable: true, + ttl: 300, + cachesize: 100 +})); -const perPage = 10; -const serverPort = 80; -const wordpressHost = process.env.WORDPRESS_HOST; -const nginxHost = process.env.NGINX_HOST; - -let wordpressIP; -dnsCache.lookup(wordpressHost, (err, result) => { - if (!err) { - wordpressIP = `::ffff:${result}`; - } -}); +const SERVER_PORT = 80; +const WORDPRESS_HOST = process.env.WORDPRESS_HOST; +// start up Express let app = Express(); app.set('json spaces', 2); app.use(Compression()) @@ -35,23 +32,12 @@ app.get('/json/*', handleJSONRequest); app.get(`/*`, handlePageRequest); app.purge(`/*`, handlePurgeRequest); app.use(handleError); -app.listen(serverPort); +app.listen(SERVER_PORT); -let pageDependencies = {}; +// purge cache when starting up +NginxCache.purge(/.*/); -async function handleJSONRequest(req, res, next) { - try { - let path = `/wp-json/${req.url.substr(6)}`; - let url = `http://${wordpressHost}${path}`; - let sres = await CrossFetch(url); - let text = await sres.text(); - res.send(text); - } catch (err) { - next(err); - } -} - -function handleTimestampRequest(req, res, next) { +async function handleTimestampRequest(req, res, next) { try { let now = new Date; let ts = now.toISOString(); @@ -61,44 +47,85 @@ function handleTimestampRequest(req, res, next) { } } -async function handlePageRequest(req, res, next) { +async function handleJSONRequest(req, res, next) { try { - let host = `http://${nginxHost}`; - let path = req.url; - let noScript = (req.query.js === '0') - let target = (req.isSpider() || noScript) ? 'seo' : 'hydrate'; - let sourceURLs = []; - // create a fetch() that remembers the URLs used - let fetch = (url, options) => { - console.log(`Fetching: ${url}`); - if (url.startsWith(host)) { - var relURL = url.substr(host.length); - sourceURLs.push(relURL); - } - return CrossFetch(url, options); - }; - let options = { host, path, target, fetch }; - let rootNode = await FrontEnd.render(options); - let appHTML = ReactDOMServer.renderToString(rootNode); - let indexHTMLPath = `${__dirname}/client/index.html`; - let html = await replaceHTMLComment(indexHTMLPath, 'REACT', appHTML); - - if (target === 'hydrate') { - // add