From 09186c2341d9e8076a04b29270ff61973adc74a7 Mon Sep 17 00:00:00 2001 From: Chung Leong Date: Sun, 27 Jan 2019 20:56:53 +0100 Subject: [PATCH] Added configuration for accessing remote instance of WordPress (issue #23). --- docker-compose-remote.yml | 39 +++++++++++++++++++ .../docker-compose.yml => docker-compose.yml | 8 ++-- package.json | 4 ++ server/client/front-end.js | 2 +- server/client/styles.css | 3 +- server/index.js | 4 +- server/json-retriever.js | 2 +- server/nginx-ext/default.conf | 29 ++++++++++++++ server/nginx/default.conf | 2 + server/page-renderer.js | 2 +- server/www/front-end.js | 2 +- server/www/report.html | 2 +- server/www/styles.css | 3 +- src/style.scss | 23 ++++++++++- 14 files changed, 111 insertions(+), 14 deletions(-) create mode 100644 docker-compose-remote.yml rename server/docker-compose.yml => docker-compose.yml (90%) create mode 100644 server/nginx-ext/default.conf diff --git a/docker-compose-remote.yml b/docker-compose-remote.yml new file mode 100644 index 0000000..2fcaef0 --- /dev/null +++ b/docker-compose-remote.yml @@ -0,0 +1,39 @@ +version: "2" +services: + node: + image: node:8 + volumes: + - .:/opt/example + - web_cache:/var/cache/nginx + networks: + network: + ipv4_address: 172.130.0.4 + environment: + WORDPRESS_HOST: https://realworldtech.com + NGINX_HOST: http://nginx + NGINX_CACHE: /var/cache/nginx/data + command: [ node, /opt/example/server/index.js ] + restart: always + nginx: + depends_on: + - node + image: nginx:latest + volumes: + - ./server/nginx-ext:/etc/nginx/conf.d + - web_cache:/var/cache/nginx + networks: + network: + ipv4_address: 172.130.0.5 + ports: + - 8000:80 + restart: always +volumes: + db_data: + web_cache: +networks: + network: + driver: bridge + ipam: + config: + - subnet: 172.130.0.0/16 + gateway: 172.130.0.1 diff --git a/server/docker-compose.yml b/docker-compose.yml similarity index 90% rename from server/docker-compose.yml rename to docker-compose.yml index 5f0e93b..ad6283a 100644 --- a/server/docker-compose.yml +++ b/docker-compose.yml @@ -32,14 +32,14 @@ services: - wordpress image: node:8 volumes: - - ..:/opt/example + - .:/opt/example - web_cache:/var/cache/nginx networks: network: ipv4_address: 172.129.0.4 environment: - WORDPRESS_HOST: wordpress - NGINX_HOST: nginx + WORDPRESS_HOST: http://wordpress + NGINX_HOST: http://nginx NGINX_CACHE: /var/cache/nginx/data command: [ node, /opt/example/server/index.js ] restart: always @@ -49,7 +49,7 @@ services: - node image: nginx:latest volumes: - - ./nginx:/etc/nginx/conf.d + - ./server/nginx:/etc/nginx/conf.d - web_cache:/var/cache/nginx networks: network: diff --git a/package.json b/package.json index c53cf8d..6e3768b 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,10 @@ "watch": "webpack --watch", "build": "webpack", "start": "webpack-dev-server --host 0.0.0.0 && exit 0", + "start-server": "docker-compose -p example -f docker-compose.yml up -d", + "stop-server": "docker-compose -p example -f docker-compose.yml down", + "start-server-remote": "docker-compose -p remote -f docker-compose-remote.yml up -d", + "stop-server-remote": "docker-compose -p remote -f docker-compose-remote.yml down", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { diff --git a/server/client/front-end.js b/server/client/front-end.js index 60fe915..160c00f 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,C=-1,P=!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=C;S=null,C=-1;var r=t.unstable_now(),o=!1;if(0>=O-r){if(!(-1!==n&&n<=r))return P||(P=!0,a(W)),S=e,void(C=n);o=!0}if(null!==e){H=!0;try{e(o)}finally{H=!1}}};var W=function(e){if(null!==S){a(W);var t=e-O+R;tt&&(t=8),R=tt?F.postMessage(void 0):P||(P=!0,a(W))},k=function(){S=null,E=!1,C=-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("../../relaks-wordpress-data-source/index.js"),p=r(h),y=n("../../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,useHashFallback:""===location.host}),o.addEventListener("beforechange",function(e){var t=new _.Route(o,r);e.postponeDefault(t.setParameters(e))}),o.activate(),e.next=8,o.start();case 8:return i=document.getElementById("react-container"),a=(0,c.createElement)(f.FrontEnd,{dataSource:r,routeManager:o,ssr:"hydrate"}),e.next=13,(0,v.harvest)(a,{seeds:!0});case 13:u=e.sent,(0,b.plant)(u),(0,m.hydrate)(a,i);case 16:l=(0,c.createElement)(f.FrontEnd,{dataSource:r,routeManager:o}),(0,m.render)(l,i),h=n+"/.mtime",y=void 0;case 20:return e.prev=20,e.next=23,fetch(h);case 23:return j=e.sent,e.next=26,j.text();case 26:M=e.sent,M!==y&&(y&&r.invalidate(),y=M),e.next=32;break;case 30:e.prev=30,e.t0=e.catch(20);case 32:return e.next=34,(0,d.delay)(1e4);case 34:e.next=20;break;case 36:case"end":return e.stop()}},e,this,[[20,30]])}));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.setParameters(e))}),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","./tag-page":"./pages/tag-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;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.date,a=(0,b.default)(i.year+"-"+_.padStart(i.month,2,"0")),u={route:o,month:a},t.show(M.default.createElement(S,u)),l=a.toISOString(),d=a.clone().endOf("month").toISOString(),c="/wp/v2/posts/?after="+l+"&before="+d,e.next=10,r.fetchList(c);case 10:return u.posts=e.sent,e.abrupt("return",M.default.createElement(S,u));case 12: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.posts,r=e.month,o=r.format("MMMM YYYY"),s=[{label:"Archive"},{label:o}];return M.default.createElement("div",{className:"page"},M.default.createElement(T.default,{trail:s}),M.default.createElement(x.default,{route:t,posts: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/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/breadcrumb.jsx")),Y=r(T),x=n("./widgets/post-list.jsx"),D=r(x),S=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;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.categorySlugs,i={route:o},t.show(L.default.createElement(E,i)),e.next=6,r.fetchMultiple("/wp/v2/categories/",s);case 6:return i.categories=e.sent,t.show(L.default.createElement(E,i)),u=j.default.last(i.categories),e.next=11,r.fetchList("/wp/v2/posts/?categories="+u.id);case 11:return i.posts=e.sent,e.abrupt("return",L.default.createElement(E,i));case 13:case"end":return e.stop()}},e,this)}));return e}()}]),t}(k.AsyncComponent);S.displayName="CategoryPage";var E=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.posts,r=e.categories,o=[{label:"Categories"}],i=j.default.last(r),a=!0,u=!1,l=void 0;try{for(var d,c=(0,s.default)(r);!(a=(d=c.next()).done);a=!0){var m=d.value,f=j.default.get(m,"name","");if(m!==i){var _=t.getObjectURL(m);o.push({label:f,url:_})}else o.push({label:f})}}catch(e){u=!0,l=e}finally{try{!a&&c.return&&c.return()}finally{if(u)throw l}}return L.default.createElement("div",{className:"page"},L.default.createElement(Y.default,{trail:o}),L.default.createElement(D.default,{route:t,posts:n,minimum:40}))}}]),t}(M.PureComponent);E.displayName="CategoryPageSync";t.default=S,t.CategoryPage=S,t.CategoryPageSync=E},"./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),C=n("./widgets/page-list.jsx"),P=r(C),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;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.pageSlugs,i={route:o},t.show(L.default.createElement(O,i)),e.next=6,r.fetchMultiple("/wp/v2/pages/",s);case 6:return i.pages=e.sent,t.show(L.default.createElement(O,i)),u=j.default.last(i.pages),e.next=11,r.fetchList("/wp/v2/pages/?parent="+u.id,{minimum:"100%"});case 11:return i.childPages=e.sent,e.abrupt("return",L.default.createElement(O,i));case 13: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.pages,r=e.childPages,o=(e.transform,j.default.last(n)),i=[],a=!0,u=!1,l=void 0;try{for(var d,c=(0,s.default)(n);!(a=(d=c.next()).done);a=!0){var m=d.value;if(m!==o){var f=j.default.get(o,"title.rendered",""),_=t.getObjectURL(m);i.push({label:L.default.createElement(Y.default,{text:f}),url:_})}}}catch(e){u=!0,l=e}finally{try{!a&&c.return&&c.return()}finally{if(u)throw l}}return L.default.createElement("div",{className:"page"},L.default.createElement(D.default,{trail:i}),L.default.createElement(E.default,{page:o,transform:t.transformLink}),L.default.createElement(P.default,{route:t,pages:r}))}}]),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}}function o(e,t,n){var r=L.default.find(n,{id:t});r&&(L.default.includes(e,r)||e.push(r),o(e,r.parent,n))}function s(e,t,n){var r=[],s=!0,i=!1,u=void 0;try{for(var l,d=(0,a.default)(t);!(s=(l=d.next()).done);s=!0){o(r,l.value,e)}}catch(e){i=!0,u=e}finally{try{!s&&d.return&&d.return()}finally{if(i)throw u}}var c=function(e){return L.default.findLastIndex(n,function(t){if(t.params.categorySlugs)return L.default.includes(t.params.categorySlugs,e.slug)})},m=function t(n){if(n.parent){var r=L.default.find(e,{id:n.parent});if(r)return t(r)+1}return 0};r=L.default.orderBy(r,[c,m,"name"],["desc","desc","asc"]);var f=L.default.first(r),_=[];if(f){for(var h=f;h;h=L.default.find(r,{id:h.parent}))_.unshift(h);for(var p=f;p;p=L.default.find(r,{parent:p.id}))p!==f&&_.push(p)}return _}Object.defineProperty(t,"__esModule",{value:!0}),t.PostPageSync=t.PostPage=t.default=void 0;var i=n("../node_modules/babel-runtime/core-js/get-iterator.js"),a=r(i),u=n("../node_modules/babel-runtime/regenerator/index.js"),l=r(u),d=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),c=r(d),m=n("../node_modules/babel-runtime/core-js/object/get-prototype-of.js"),f=r(m),_=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),h=r(_),p=n("../node_modules/babel-runtime/helpers/createClass.js"),y=r(p),g=n("../node_modules/babel-runtime/helpers/possibleConstructorReturn.js"),v=r(g),b=n("../node_modules/babel-runtime/helpers/inherits.js"),j=r(b),M=n("../node_modules/lodash/lodash.js"),L=r(M),k=n("../node_modules/moment/moment.js"),w=(r(k),n("../node_modules/react/index.js")),T=r(w),Y=n("../node_modules/relaks/index.js"),x=(n("./routing.js"),n("./wordpress.js")),D=(r(x),n("./widgets/breadcrumb.jsx")),S=r(D),E=n("./widgets/post-view.jsx"),C=r(E),P=n("./widgets/comment-section.jsx"),H=r(P),O=function(e){function t(){return(0,h.default)(this,t),(0,v.default)(this,(t.__proto__||(0,f.default)(t)).apply(this,arguments))}return(0,j.default)(t,e),(0,y.default)(t,[{key:"renderAsync",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,c.default)(l.default.mark(function e(t){var n,r,o,i,a,u;return l.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.postSlug,a={route:o},t.show(T.default.createElement(A,a)),e.next=6,r.fetchOne("/wp/v2/posts/",i);case 6:return a.post=e.sent,t.show(T.default.createElement(A,a)),e.next=10,r.fetchList("/wp/v2/categories/",{minimum:"100%"});case 10:return u=e.sent,a.categories=s(u,a.post.categories,o.history),t.show(T.default.createElement(A,a)),e.next=15,r.fetchOne("/wp/v2/users/",a.post.author);case 15:if(a.author=e.sent,r.ssr){e.next=21;break}return t.show(T.default.createElement(A,a)),e.next=20,r.fetchList("/wp/v2/comments/?post="+a.post.id);case 20:a.comments=e.sent;case 21:return e.abrupt("return",T.default.createElement(A,a));case 22:case"end":return e.stop()}},e,this)}));return e}()}]),t}(Y.AsyncComponent);O.displayName="AchivePostPage";var A=function(e){function t(){return(0,h.default)(this,t),(0,v.default)(this,(t.__proto__||(0,f.default)(t)).apply(this,arguments))}return(0,j.default)(t,e),(0,y.default)(t,[{key:"render",value:function(){var e=this.props,t=e.route,n=e.categories,r=e.post,o=e.author,s=e.comments,i=[{label:"Categories"}],u=!0,l=!1,d=void 0;try{for(var c,m=(0,a.default)(n);!(u=(c=m.next()).done);u=!0){var f=c.value,_=L.default.get(f,"name",""),h=t.getObjectURL(f);i.push({label:_,url:h})}}catch(e){l=!0,d=e}finally{try{!u&&m.return&&m.return()}finally{if(l)throw d}}return T.default.createElement("div",{className:"page"},T.default.createElement(S.default,{trail:i}),T.default.createElement(C.default,{post:r,author:o,transform:t.transformLink}),T.default.createElement(H.default,{comments:s}))}}]),t}(w.PureComponent);A.displayName="PostPageSync";t.default=O,t.PostPage=O,t.PostPageSync=A},"./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/tag-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.TagPageSync=t.TagPage=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/react/index.js"),j=r(b),M=n("../node_modules/relaks/index.js"),L=(n("./routing.js"),n("./wordpress.js")),k=(r(L),n("./widgets/breadcrumb.jsx")),w=r(k),T=n("./widgets/post-list.jsx"),Y=r(T),x=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;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.tagSlug,a={route:o},t.show(j.default.createElement(D,a)),e.next=6,r.fetchOne("/wp/v2/tags/",i);case 6:return a.tag=e.sent,t.show(j.default.createElement(D,a)),e.next=10,r.fetchList("/wp/v2/posts/?tags="+a.tag.id);case 10:return a.posts=e.sent,e.abrupt("return",j.default.createElement(D,a));case 12:case"end":return e.stop()}},e,this)}));return e}()}]),t}(M.AsyncComponent);x.displayName="TagPage";var D=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.posts,r=e.tag,o=v.default.get(r,"name",""),s=[{label:"Tags"},{label:o}];return j.default.createElement("div",{className:"page"},j.default.createElement(w.default,{trail:s}),j.default.createElement(Y.default,{route:t,posts:n,minimum:40}))}}]),t}(b.PureComponent);D.displayName="TagPageSync";t.default=x,t.TagPage=x,t.TagPageSync=D},"./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}}function o(e){y.startsWith(e,"/date/")&&(e=e.substr(5));var t=/^\/(\d{4})\/(\d+)\/?/.exec(e);if(t)return{year:parseInt(t[1]),month:parseInt(t[2])}}function s(e){if(y.startsWith(e,"/archives/")){var t=parseInt(e.substr(10));if(t===t)return t}}function i(e,t){var n=[],r=!0,o=!1,s=void 0;try{for(var i,a=(0,u.default)(e);!(r=(i=a.next()).done);r=!0){var l=i.value,d=y.trimEnd(l.link,"/")+"/";y.startsWith(t,d)&&n.push(l)}}catch(e){o=!0,s=e}finally{try{!r&&a.return&&a.return()}finally{if(o)throw s}}if(n.length>0){return y.map(y.sortBy(n,"link.length"),"slug")}}Object.defineProperty(t,"__esModule",{value:!0}),t.routes=t.Route=void 0;var a=n("../node_modules/babel-runtime/core-js/get-iterator.js"),u=r(a),l=n("../node_modules/babel-runtime/regenerator/index.js"),d=r(l),c=n("../node_modules/babel-runtime/helpers/asyncToGenerator.js"),m=r(c),f=n("../node_modules/babel-runtime/helpers/classCallCheck.js"),_=r(f),h=n("../node_modules/babel-runtime/helpers/createClass.js"),p=r(h),y=n("../node_modules/lodash/lodash.js"),g=function(){function e(t,n){var r=this;(0,_.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,p.default)(e,[{key:"change",value:function(e,t){return this.routeManager.change(e,t)}},{key:"getRootURL",value:function(){return this.composeURL({path:"/"})}},{key:"getSearchURL",value:function(e){return this.composeURL({path:"/",query:{s:e}})}},{key:"getArchiveURL",value:function(e){var t=e.year,n=e.month;return this.composeURL({path:"/date/"+t+"/"+y.padStart(n,2,"0")+"/"})}},{key:"getObjectURL",value:function(e){var t=this.params.siteURL,n=e.link;if(!y.startsWith(n,t))throw new Error("Object URL does not match site URL");var r=n.substr(t.length);return this.composeURL({path:r})}},{key:"composeURL",value:function(e){var t=y.clone(this.routeManager.context);this.routeManager.rewrite("to",e,t);var n=this.routeManager.compose(e);return this.routeManager.options.useHashFallback&&void 0!=n&&(n="#"+n),n}},{key:"setParameters",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,m.default)(d.default.mark(function e(t){var r;return d.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getParameters(t.path,t.query);case 2:r=e.sent,r.module=n("./pages recursive ^\\.\\/.*\\-page$")("./"+r.pageType+"-page"),y.assign(t.params,r);case 5:case"end":return e.stop()}},e,this)}));return e}()},{key:"getParameters",value:function(){function e(e,n){return t.apply(this,arguments)}var t=(0,m.default)(d.default.mark(function e(t,n){var r,a,u,l,c,m,f,_,h,p,g,v,b,j,M,L;return d.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getSiteURL();case 2:if(r=e.sent,a=y.trimEnd(r+t,"/")+"/",!(u=n.s)){e.next=7;break}return e.abrupt("return",{pageType:"search",search:u,siteURL:r});case 7:if("/"!==t){e.next=9;break}return e.abrupt("return",{pageType:"welcome",siteURL:r});case 9:if(!(l=o(t))){e.next=12;break}return e.abrupt("return",{pageType:"archive",date:l,siteURL:r});case 12:if(!(c=s(t))){e.next=20;break}return e.next=16,this.dataSource.fetchOne("/wp/v2/posts/",c);case 16:if(!(m=e.sent)){e.next=20;break}return f=m.slug,e.abrupt("return",{pageType:"post",postSlug:f,siteURL:r});case 20:return e.next=22,this.dataSource.fetchList("/wp/v2/pages/",{minimum:"100%"});case 22:if(_=e.sent,!(h=i(_,a))){e.next=26;break}return e.abrupt("return",{pageType:"page",pageSlugs:h,siteURL:r});case 26:return e.next=28,this.dataSource.fetchList("/wp/v2/categories/",{minimum:"100%"});case 28:if(p=e.sent,!(g=i(p,a))){e.next=32;break}return e.abrupt("return",{pageType:"category",categorySlugs:g,siteURL:r});case 32:return e.next=34,this.dataSource.fetchList("/wp/v2/tags/",{minimum:"100%"});case 34:if(v=e.sent,!(b=i(v,a))){e.next=39;break}return j=b[0],e.abrupt("return",{pageType:"tag",tagSlug:j,siteURL:r});case 39:return M=y.last(y.filter(y.split(t,"/"))),e.next=42,this.dataSource.fetchOne("/wp/v2/posts/",M);case 42:if(!(L=e.sent)){e.next=45;break}return e.abrupt("return",{pageType:"post",postSlug:M,siteURL:r});case 45:return e.abrupt("return",{pageType:"welcome",siteURL:r});case 46:case"end":return e.stop()}},e,this)}));return e}()},{key:"getSiteURL",value:function(){function e(){return t.apply(this,arguments)}var t=(0,m.default)(d.default.mark(function e(){var t;return d.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.dataSource.fetchOne("/");case 2:return t=e.sent,e.abrupt("return",y.trimEnd(t.url,"/"));case 4:case"end":return e.stop()}},e,this)}));return e}()},{key:"preloadPage",value:function(){function e(e){return t.apply(this,arguments)}var t=(0,m.default)(d.default.mark(function e(t){return d.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}(),v={page:{path:"*"}};t.Route=g,t.routes=v},"./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.page,r=h.default.get(n,"title.rendered",""),o=t.getObjectURL(n);return y.default.createElement("div",{className:"page-list-view"},y.default.createElement("a",{href:o},y.default.createElement(v.default,{text:r})))}}]),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;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}))})):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/www/styles.css b/server/www/styles.css index 852fcc5..a3f67f4 100644 --- a/server/www/styles.css +++ b/server/www/styles.css @@ -185,7 +185,8 @@ A:link, A:visited { .page-container .page .comments .replies, .page-container .post .comments .replies { padding-left: 1.5em; } .page-container .page IMG, .page-container .post IMG { - max-width: 100%; } + max-width: 100%; + height: auto; } @media only screen and (max-width: 800px) { .page-container { diff --git a/src/style.scss b/src/style.scss index 49099ff..60d3464 100644 --- a/src/style.scss +++ b/src/style.scss @@ -28,7 +28,8 @@ A { top: 0; bottom: 0; background-color: #66023c; - overflow: hidden; + overflow-x: hidden; + overflow-y: auto; color: #cccccc; padding: 0 1em 0 1em; @@ -100,6 +101,25 @@ A { .tags { margin-left: 0.5em; } + + // use custom color only on desktop + @media only screen and (min-device-width : 800px) { + &::-webkit-scrollbar-track { + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.2); + background-color: transparent; + } + + &::-webkit-scrollbar { + width: 14px; + background-color: transparent; + } + + &::-webkit-scrollbar-thumb { + border-radius: 2px; + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.2); + background-color: rgba(0,0,0,.2); + } + } } .top-nav { @@ -290,6 +310,7 @@ A { IMG { max-width: 100%; + height: auto; } } }