/
component---src-templates-post-template-jsx-8a055050cb09d652c521.js.map
1 lines (1 loc) · 59.5 KB
/
component---src-templates-post-template-jsx-8a055050cb09d652c521.js.map
1
{"version":3,"sources":["webpack:///component---src-templates-post-template-jsx-8a055050cb09d652c521.js","webpack:///./gatsby-config.js","webpack:///./~/react-disqus-comments/build/components/DisqusThread.js","webpack:///./~/react-disqus-comments/build/main.js","webpack:///./src/components/Disqus/Disqus.jsx","webpack:///./src/components/PostTemplateDetails/index.jsx","webpack:///./src/templates/post-template.jsx"],"names":["webpackJsonp","207","module","exports","__dirname","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","siteMetadata","url","title","subtitle","copyright","disqusShortname","menu","label","path","author","name","email","github","rss","plugins","resolve","options","query","feeds","serialize","_ref","_ref$query","site","allMarkdownRemark","edges","map","edge","node","frontmatter","description","excerpt","date","fields","slug","guid","custom_elements","content:encoded","html","output","maxWidth","wrapperStyle","trackingId","fonts","_ref2","allSitePage","changefreq","priority","734","__webpack_require__","_interopRequireDefault","obj","__esModule","default","_defineProperty","value","defineProperty","enumerable","configurable","writable","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","_objectWithoutProperties","keys","indexOf","copyProps","context","props","onNewComment","language","rest","prop","page","callbacks","_createClass","defineProperties","descriptor","protoProps","staticProps","_react","_react2","_propTypes","_propTypes2","DISQUS_CONFIG","__disqusAdded","DisqusThread","_React$Component","this","getPrototypeOf","apply","loadDisqus","nextProps","nextState","identifier","_this2","reduce","memo","some","config","createElement","id","child","disqus","document","parent","getElementsByTagName","async","type","src","shortname","appendChild","_this3","forEach","DISQUS","reset","reload","replace","window","disqus_config","addDisqusScript","Component","displayName","propTypes","string","isRequired","category_id","func","defaultProps","location","href","735","209","_reactDisqusComments","_reactDisqusComments2","_gatsbyConfig","_gatsbyConfig2","Disqus","_Component","_this","state","toasts","notifyAboutComment","bind","onSnackbarDismiss","_state$toasts","slice","setState","push","text","render","postNode","post","213","_gatsbyLink","_gatsbyLink2","_moment","_moment2","_Disqus","_Disqus2","PostTemplateDetails","_props$data$site$site","data","markdownRemark","tags","tagSlugs","homeBlock","className","to","tagsBlock","tag","commentsBlock","dangerouslySetInnerHTML","__html","format","727","222","pageQuery","undefined","_reactHelmet","_reactHelmet2","_PostTemplateDetails","_PostTemplateDetails2","PostTemplate","_post$frontmatter","postTitle","postDescription","content"],"mappings":"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","file":"component---src-templates-post-template-jsx-8a055050cb09d652c521.js","sourcesContent":["webpackJsonp([108009296967943],{\n\n/***/ 207:\n/***/ (function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__dirname) {'use strict';\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tmodule.exports = {\n\t siteMetadata: {\n\t url: 'https://www.zhouhua.info/',\n\t title: 'Step Over',\n\t subtitle: '有趣的灵魂终会相遇',\n\t copyright: '© All rights reserved.',\n\t disqusShortname: '',\n\t menu: [{\n\t label: '文章',\n\t path: '/'\n\t }, {\n\t label: '关于我',\n\t path: '/about/'\n\t }, {\n\t label: '联系我',\n\t path: '/contact/'\n\t }],\n\t author: {\n\t name: '周骅',\n\t email: 'zhou--hua@163.com',\n\t github: 'zhouhua-js',\n\t rss: '#'\n\t }\n\t },\n\t plugins: [{\n\t resolve: 'gatsby-source-filesystem',\n\t options: {\n\t path: __dirname + '/src/pages',\n\t name: 'pages'\n\t }\n\t }, {\n\t resolve: 'gatsby-plugin-feed',\n\t options: {\n\t query: '\\n {\\n site {\\n siteMetadata {\\n url\\n title\\n subtitle\\n }\\n }\\n }\\n ',\n\t feeds: [{\n\t serialize: function serialize(_ref) {\n\t var _ref$query = _ref.query,\n\t site = _ref$query.site,\n\t allMarkdownRemark = _ref$query.allMarkdownRemark;\n\t return allMarkdownRemark.edges.map(function (edge) {\n\t return _extends({}, edge.node.frontmatter, {\n\t description: edge.node.excerpt,\n\t date: edge.node.frontmatter.date,\n\t url: site.siteMetadata.url + edge.node.fields.slug,\n\t guid: site.siteMetadata.url + edge.node.fields.slug,\n\t custom_elements: [{ 'content:encoded': edge.node.html }]\n\t });\n\t });\n\t },\n\t query: '\\n {\\n allMarkdownRemark(\\n limit: 1000,\\n sort: { order: DESC, fields: [frontmatter___date] },\\n filter: { frontmatter: { layout: { eq: \"post\" }, draft: { ne: true } } }\\n ) {\\n edges {\\n node {\\n excerpt(pruneLength: 150)\\n html\\n fields {\\n slug\\n }\\n frontmatter {\\n title\\n date\\n layout\\n draft\\n }\\n }\\n }\\n }\\n }\\n ',\n\t output: '/rss.xml'\n\t }]\n\t }\n\t }, {\n\t resolve: 'gatsby-transformer-remark',\n\t options: {\n\t plugins: [{\n\t resolve: 'gatsby-remark-images',\n\t options: { maxWidth: 960 }\n\t }, {\n\t resolve: 'gatsby-remark-responsive-iframe',\n\t options: { wrapperStyle: 'margin-bottom: 1.0725rem' }\n\t }, 'gatsby-remark-prismjs', 'gatsby-remark-copy-linked-files', 'gatsby-remark-smartypants', 'gatsby-remark-katex']\n\t }\n\t }, 'gatsby-transformer-sharp', 'gatsby-plugin-sharp', {\n\t resolve: 'gatsby-plugin-google-analytics',\n\t options: { trackingId: '' }\n\t }, {\n\t resolve: 'gatsby-plugin-google-fonts',\n\t options: { fonts: ['roboto:400,400i,500,700'] }\n\t }, {\n\t resolve: 'gatsby-plugin-sitemap',\n\t options: {\n\t query: '\\n {\\n site {\\n siteMetadata {\\n url\\n }\\n }\\n allSitePage(\\n filter: {\\n path: { regex: \"/^(?!/404/|/404.html|/dev-404-page/)/\" }\\n }\\n ) {\\n edges {\\n node {\\n path\\n }\\n }\\n }\\n }',\n\t output: '/sitemap.xml',\n\t serialize: function serialize(_ref2) {\n\t var site = _ref2.site,\n\t allSitePage = _ref2.allSitePage;\n\t return allSitePage.edges.map(function (edge) {\n\t return {\n\t url: site.siteMetadata.url + edge.node.path,\n\t changefreq: 'daily',\n\t priority: 0.7\n\t };\n\t });\n\t }\n\t }\n\t }, 'gatsby-plugin-offline', 'gatsby-plugin-catch-links', 'gatsby-plugin-react-helmet', 'gatsby-plugin-postcss-sass']\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, \"/\"))\n\n/***/ }),\n\n/***/ 734:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(9);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tvar DISQUS_CONFIG = ['shortname', 'identifier', 'title', 'url', 'category_id', 'onNewComment', 'language'];\n\tvar __disqusAdded = false;\n\t\n\tfunction copyProps(context, props) {\n\t var onNewComment = props.onNewComment,\n\t language = props.language,\n\t rest = _objectWithoutProperties(props, ['onNewComment', 'language']);\n\t\n\t for (var prop in rest) {\n\t context.page[prop] = rest[prop];\n\t }\n\t\n\t // Setting the language - if none is provided, the default one is used\n\t context.language = language;\n\t\n\t if (onNewComment) {\n\t context.callbacks = {\n\t onNewComment: [onNewComment]\n\t };\n\t }\n\t}\n\t\n\tvar DisqusThread = function (_React$Component) {\n\t _inherits(DisqusThread, _React$Component);\n\t\n\t function DisqusThread() {\n\t _classCallCheck(this, DisqusThread);\n\t\n\t return _possibleConstructorReturn(this, (DisqusThread.__proto__ || Object.getPrototypeOf(DisqusThread)).apply(this, arguments));\n\t }\n\t\n\t _createClass(DisqusThread, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t this.loadDisqus();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate() {\n\t this.loadDisqus();\n\t }\n\t }, {\n\t key: 'shouldComponentUpdate',\n\t value: function shouldComponentUpdate(nextProps, nextState) {\n\t return nextProps.identifier !== this.props.identifier;\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this2 = this;\n\t\n\t var props = Object.keys(this.props).reduce(function (memo, key) {\n\t return DISQUS_CONFIG.some(function (config) {\n\t return config === key;\n\t }) ? memo : _extends({}, memo, _defineProperty({}, key, _this2.props[key]));\n\t }, {});\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t props,\n\t _react2.default.createElement('div', { id: 'disqus_thread' })\n\t );\n\t }\n\t }, {\n\t key: 'addDisqusScript',\n\t value: function addDisqusScript() {\n\t if (__disqusAdded) {\n\t return;\n\t }\n\t\n\t var child = this.disqus = document.createElement('script');\n\t var parent = document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0];\n\t\n\t child.async = true;\n\t child.type = 'text/javascript';\n\t child.src = '//' + this.props.shortname + '.disqus.com/embed.js';\n\t\n\t parent.appendChild(child);\n\t __disqusAdded = true;\n\t }\n\t }, {\n\t key: 'loadDisqus',\n\t value: function loadDisqus() {\n\t var _this3 = this;\n\t\n\t var props = {};\n\t\n\t // Extract Disqus props that were supplied to this component\n\t DISQUS_CONFIG.forEach(function (prop) {\n\t // prop \"shortname\" is only necessary for loading the script, not for the config itself\n\t if (prop !== 'shortname' && !!_this3.props[prop]) {\n\t props[prop] = _this3.props[prop];\n\t }\n\t });\n\t\n\t // If Disqus has already been added, reset it\n\t if (typeof DISQUS !== 'undefined') {\n\t DISQUS.reset({\n\t reload: true,\n\t config: function config() {\n\t copyProps(this, props);\n\t\n\t // Disqus needs hashbang URL, see https://help.disqus.com/customer/portal/articles/472107\n\t this.page.url = this.page.url.replace(/#/, '') + '#!newthread';\n\t }\n\t });\n\t } else {\n\t // Otherwise add Disqus to the page\n\t window.disqus_config = function () {\n\t copyProps(this, props);\n\t };\n\t this.addDisqusScript();\n\t }\n\t }\n\t }]);\n\t\n\t return DisqusThread;\n\t}(_react2.default.Component);\n\t\n\tDisqusThread.displayName = 'DisqusThread';\n\t\n\tDisqusThread.propTypes = {\n\t id: _propTypes2.default.string,\n\t\n\t /**\n\t * `shortname` tells the Disqus service your forum's shortname,\n\t * which is the unique identifier for your website as registered\n\t * on Disqus. If undefined , the Disqus embed will not load.\n\t */\n\t shortname: _propTypes2.default.string.isRequired,\n\t\n\t /**\n\t * `identifier` tells the Disqus service how to identify the\n\t * current page. When the Disqus embed is loaded, the identifier\n\t * is used to look up the correct thread. If disqus_identifier\n\t * is undefined, the page's URL will be used. The URL can be\n\t * unreliable, such as when renaming an article slug or changing\n\t * domains, so we recommend using your own unique way of\n\t * identifying a thread.\n\t */\n\t identifier: _propTypes2.default.string,\n\t\n\t /**\n\t * `title` tells the Disqus service the title of the current page.\n\t * This is used when creating the thread on Disqus for the first time.\n\t * If undefined, Disqus will use the <title> attribute of the page.\n\t * If that attribute could not be used, Disqus will use the URL of the page.\n\t */\n\t title: _propTypes2.default.string,\n\t\n\t /**\n\t * `url` tells the Disqus service the URL of the current page.\n\t * If undefined, Disqus will take the window.location.href.\n\t * This URL is used to look up or create a thread if disqus_identifier\n\t * is undefined. In addition, this URL is always saved when a thread is\n\t * being created so that Disqus knows what page a thread belongs to.\n\t */\n\t url: _propTypes2.default.string,\n\t\n\t /**\n\t * `category_id` tells the Disqus service the category to be used for\n\t * the current page. This is used when creating the thread on Disqus\n\t * for the first time.\n\t */\n\t category_id: _propTypes2.default.string,\n\t\n\t /**\n\t * `onNewComment` function accepts one parameter `comment` which is a\n\t * JavaScript object with comment `id` and `text`. This allows you to track\n\t * user comments and replies and run a script after a comment is posted.\n\t */\n\t onNewComment: _propTypes2.default.func,\n\t\n\t /**\n\t * `language` tells the Disqus service which language should be used.\n\t * Please refer to https://www.transifex.com/disqus/disqus/ on which languages can be used\n\t * If undefined, English is used as default one\n\t */\n\t language: _propTypes2.default.string\n\t};\n\t\n\tDisqusThread.defaultProps = {\n\t url: typeof window === 'undefined' ? null : window.location.href\n\t};\n\t\n\texports.default = DisqusThread;\n\n/***/ }),\n\n/***/ 735:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tmodule.exports = __webpack_require__(734);\n\n/***/ }),\n\n/***/ 209:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDisqusComments = __webpack_require__(735);\n\t\n\tvar _reactDisqusComments2 = _interopRequireDefault(_reactDisqusComments);\n\t\n\tvar _gatsbyConfig = __webpack_require__(207);\n\t\n\tvar _gatsbyConfig2 = _interopRequireDefault(_gatsbyConfig);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar Disqus = function (_Component) {\n\t _inherits(Disqus, _Component);\n\t\n\t function Disqus(props) {\n\t _classCallCheck(this, Disqus);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\t\n\t _this.state = { toasts: [] };\n\t _this.notifyAboutComment = _this.notifyAboutComment.bind(_this);\n\t _this.onSnackbarDismiss = _this.onSnackbarDismiss.bind(_this);\n\t return _this;\n\t }\n\t\n\t Disqus.prototype.onSnackbarDismiss = function onSnackbarDismiss() {\n\t var _state$toasts = this.state.toasts,\n\t toasts = _state$toasts.slice(1);\n\t\n\t this.setState({ toasts: toasts });\n\t };\n\t\n\t Disqus.prototype.notifyAboutComment = function notifyAboutComment() {\n\t var toasts = this.state.toasts.slice();\n\t toasts.push({ text: 'New comment available!!' });\n\t this.setState({ toasts: toasts });\n\t };\n\t\n\t Disqus.prototype.render = function render() {\n\t var postNode = this.props.postNode;\n\t\n\t if (!_gatsbyConfig2.default.siteMetadata.disqusShortname) {\n\t return null;\n\t }\n\t var post = postNode.frontmatter;\n\t var url = _gatsbyConfig2.default.siteMetadata.url + postNode.fields.slug;\n\t return _react2.default.createElement(_reactDisqusComments2.default, {\n\t shortname: _gatsbyConfig2.default.siteMetadata.disqusShortname,\n\t identifier: post.title,\n\t title: post.title,\n\t url: url,\n\t category_id: post.category_id,\n\t onNewComment: this.notifyAboutComment\n\t });\n\t };\n\t\n\t return Disqus;\n\t}(_react.Component);\n\t\n\texports.default = Disqus;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 213:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _gatsbyLink = __webpack_require__(18);\n\t\n\tvar _gatsbyLink2 = _interopRequireDefault(_gatsbyLink);\n\t\n\tvar _moment = __webpack_require__(27);\n\t\n\tvar _moment2 = _interopRequireDefault(_moment);\n\t\n\tvar _Disqus = __webpack_require__(209);\n\t\n\tvar _Disqus2 = _interopRequireDefault(_Disqus);\n\t\n\t__webpack_require__(727);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar PostTemplateDetails = function (_React$Component) {\n\t _inherits(PostTemplateDetails, _React$Component);\n\t\n\t function PostTemplateDetails() {\n\t _classCallCheck(this, PostTemplateDetails);\n\t\n\t return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n\t }\n\t\n\t PostTemplateDetails.prototype.render = function render() {\n\t var _props$data$site$site = this.props.data.site.siteMetadata,\n\t subtitle = _props$data$site$site.subtitle,\n\t author = _props$data$site$site.author;\n\t\n\t var post = this.props.data.markdownRemark;\n\t var tags = post.fields.tagSlugs;\n\t\n\t var homeBlock = _react2.default.createElement(\n\t 'div',\n\t null,\n\t _react2.default.createElement(\n\t _gatsbyLink2.default,\n\t { className: 'post-single__home-button', to: '/' },\n\t 'All Articles'\n\t )\n\t );\n\t\n\t var tagsBlock = _react2.default.createElement(\n\t 'div',\n\t { className: 'post-single__tags' },\n\t _react2.default.createElement(\n\t 'ul',\n\t { className: 'post-single__tags-list' },\n\t tags && tags.map(function (tag, i) {\n\t return _react2.default.createElement(\n\t 'li',\n\t { className: 'post-single__tags-list-item', key: tag },\n\t _react2.default.createElement(\n\t _gatsbyLink2.default,\n\t { to: tag, className: 'post-single__tags-list-item-link' },\n\t post.frontmatter.tags[i]\n\t )\n\t );\n\t })\n\t )\n\t );\n\t\n\t var commentsBlock = _react2.default.createElement(\n\t 'div',\n\t null,\n\t _react2.default.createElement(_Disqus2.default, { postNode: post })\n\t );\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t homeBlock,\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'post-single' },\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'post-single__inner' },\n\t _react2.default.createElement(\n\t 'h1',\n\t { className: 'post-single__title' },\n\t post.frontmatter.title\n\t ),\n\t _react2.default.createElement('div', { className: 'post-single__body', dangerouslySetInnerHTML: { __html: post.html } }),\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'post-single__date' },\n\t _react2.default.createElement(\n\t 'em',\n\t null,\n\t 'Published ',\n\t (0, _moment2.default)(post.frontmatter.date).format('D MMM YYYY')\n\t )\n\t )\n\t ),\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'post-single__footer' },\n\t tagsBlock,\n\t _react2.default.createElement('hr', null),\n\t _react2.default.createElement(\n\t 'p',\n\t { className: 'post-single__footer-text' },\n\t subtitle,\n\t _react2.default.createElement('br', null),\n\t _react2.default.createElement(\n\t 'strong',\n\t null,\n\t '@',\n\t author.name\n\t )\n\t ),\n\t commentsBlock\n\t )\n\t )\n\t );\n\t };\n\t\n\t return PostTemplateDetails;\n\t}(_react2.default.Component);\n\t\n\texports.default = PostTemplateDetails;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 727:\n/***/ (function(module, exports) {\n\n\t// empty (null-loader)\n\n/***/ }),\n\n/***/ 222:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.pageQuery = undefined;\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactHelmet = __webpack_require__(23);\n\t\n\tvar _reactHelmet2 = _interopRequireDefault(_reactHelmet);\n\t\n\tvar _PostTemplateDetails = __webpack_require__(213);\n\t\n\tvar _PostTemplateDetails2 = _interopRequireDefault(_PostTemplateDetails);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar PostTemplate = function (_React$Component) {\n\t _inherits(PostTemplate, _React$Component);\n\t\n\t function PostTemplate() {\n\t _classCallCheck(this, PostTemplate);\n\t\n\t return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n\t }\n\t\n\t PostTemplate.prototype.render = function render() {\n\t var _props$data$site$site = this.props.data.site.siteMetadata,\n\t title = _props$data$site$site.title,\n\t subtitle = _props$data$site$site.subtitle;\n\t\n\t var post = this.props.data.markdownRemark;\n\t var _post$frontmatter = post.frontmatter,\n\t postTitle = _post$frontmatter.title,\n\t postDescription = _post$frontmatter.description;\n\t\n\t var description = postDescription || post.excerpt || subtitle;\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t _react2.default.createElement(\n\t _reactHelmet2.default,\n\t null,\n\t _react2.default.createElement(\n\t 'title',\n\t null,\n\t postTitle + ' - ' + title\n\t ),\n\t _react2.default.createElement('meta', { name: 'description', content: description })\n\t ),\n\t _react2.default.createElement(_PostTemplateDetails2.default, this.props)\n\t );\n\t };\n\t\n\t return PostTemplate;\n\t}(_react2.default.Component);\n\t\n\texports.default = PostTemplate;\n\tvar pageQuery = exports.pageQuery = '** extracted graphql fragment **';\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// component---src-templates-post-template-jsx-8a055050cb09d652c521.js","module.exports = {\n siteMetadata: {\n url: 'https://www.zhouhua.info/',\n title: 'Step Over',\n subtitle: '有趣的灵魂终会相遇',\n copyright: '© All rights reserved.',\n disqusShortname: '',\n menu: [\n {\n label: '文章',\n path: '/'\n },\n {\n label: '关于我',\n path: '/about/'\n },\n {\n label: '联系我',\n path: '/contact/'\n }\n ],\n author: {\n name: '周骅',\n email: 'zhou--hua@163.com',\n github: 'zhouhua-js',\n rss: '#'\n }\n },\n plugins: [\n {\n resolve: 'gatsby-source-filesystem',\n options: {\n path: `${__dirname}/src/pages`,\n name: 'pages'\n }\n },\n {\n resolve: 'gatsby-plugin-feed',\n options: {\n query: `\n {\n site {\n siteMetadata {\n url\n title\n subtitle\n }\n }\n }\n `,\n feeds: [\n {\n serialize: ({ query: { site, allMarkdownRemark } }) => (\n allMarkdownRemark.edges.map(edge =>\n Object.assign({}, edge.node.frontmatter, {\n description: edge.node.excerpt,\n date: edge.node.frontmatter.date,\n url: site.siteMetadata.url + edge.node.fields.slug,\n guid: site.siteMetadata.url + edge.node.fields.slug,\n custom_elements: [{ 'content:encoded': edge.node.html }]\n }))\n ),\n query: `\n {\n allMarkdownRemark(\n limit: 1000,\n sort: { order: DESC, fields: [frontmatter___date] },\n filter: { frontmatter: { layout: { eq: \"post\" }, draft: { ne: true } } }\n ) {\n edges {\n node {\n excerpt(pruneLength: 150)\n html\n fields {\n slug\n }\n frontmatter {\n title\n date\n layout\n draft\n }\n }\n }\n }\n }\n `,\n output: '/rss.xml'\n }\n ]\n }\n },\n {\n resolve: 'gatsby-transformer-remark',\n options: {\n plugins: [\n {\n resolve: 'gatsby-remark-images',\n options: { maxWidth: 960 }\n },\n {\n resolve: 'gatsby-remark-responsive-iframe',\n options: { wrapperStyle: 'margin-bottom: 1.0725rem' }\n },\n 'gatsby-remark-prismjs',\n 'gatsby-remark-copy-linked-files',\n 'gatsby-remark-smartypants',\n 'gatsby-remark-katex'\n ]\n }\n },\n 'gatsby-transformer-sharp',\n 'gatsby-plugin-sharp',\n {\n resolve: 'gatsby-plugin-google-analytics',\n options: { trackingId: '' }\n },\n {\n resolve: 'gatsby-plugin-google-fonts',\n options: { fonts: ['roboto:400,400i,500,700'] }\n },\n {\n resolve: 'gatsby-plugin-sitemap',\n options: {\n query: `\n {\n site {\n siteMetadata {\n url\n }\n }\n allSitePage(\n filter: {\n path: { regex: \"/^(?!/404/|/404.html|/dev-404-page/)/\" }\n }\n ) {\n edges {\n node {\n path\n }\n }\n }\n }`,\n output: '/sitemap.xml',\n serialize: ({ site, allSitePage }) =>\n allSitePage.edges.map(edge => {\n return {\n url: site.siteMetadata.url + edge.node.path,\n changefreq: 'daily',\n priority: 0.7\n };\n })\n }\n },\n 'gatsby-plugin-offline',\n 'gatsby-plugin-catch-links',\n 'gatsby-plugin-react-helmet',\n 'gatsby-plugin-postcss-sass'\n ]\n};\n\n\n\n// WEBPACK FOOTER //\n// ./gatsby-config.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DISQUS_CONFIG = ['shortname', 'identifier', 'title', 'url', 'category_id', 'onNewComment', 'language'];\nvar __disqusAdded = false;\n\nfunction copyProps(context, props) {\n var onNewComment = props.onNewComment,\n language = props.language,\n rest = _objectWithoutProperties(props, ['onNewComment', 'language']);\n\n for (var prop in rest) {\n context.page[prop] = rest[prop];\n }\n\n // Setting the language - if none is provided, the default one is used\n context.language = language;\n\n if (onNewComment) {\n context.callbacks = {\n onNewComment: [onNewComment]\n };\n }\n}\n\nvar DisqusThread = function (_React$Component) {\n _inherits(DisqusThread, _React$Component);\n\n function DisqusThread() {\n _classCallCheck(this, DisqusThread);\n\n return _possibleConstructorReturn(this, (DisqusThread.__proto__ || Object.getPrototypeOf(DisqusThread)).apply(this, arguments));\n }\n\n _createClass(DisqusThread, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.loadDisqus();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.loadDisqus();\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n return nextProps.identifier !== this.props.identifier;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var props = Object.keys(this.props).reduce(function (memo, key) {\n return DISQUS_CONFIG.some(function (config) {\n return config === key;\n }) ? memo : _extends({}, memo, _defineProperty({}, key, _this2.props[key]));\n }, {});\n\n return _react2.default.createElement(\n 'div',\n props,\n _react2.default.createElement('div', { id: 'disqus_thread' })\n );\n }\n }, {\n key: 'addDisqusScript',\n value: function addDisqusScript() {\n if (__disqusAdded) {\n return;\n }\n\n var child = this.disqus = document.createElement('script');\n var parent = document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0];\n\n child.async = true;\n child.type = 'text/javascript';\n child.src = '//' + this.props.shortname + '.disqus.com/embed.js';\n\n parent.appendChild(child);\n __disqusAdded = true;\n }\n }, {\n key: 'loadDisqus',\n value: function loadDisqus() {\n var _this3 = this;\n\n var props = {};\n\n // Extract Disqus props that were supplied to this component\n DISQUS_CONFIG.forEach(function (prop) {\n // prop \"shortname\" is only necessary for loading the script, not for the config itself\n if (prop !== 'shortname' && !!_this3.props[prop]) {\n props[prop] = _this3.props[prop];\n }\n });\n\n // If Disqus has already been added, reset it\n if (typeof DISQUS !== 'undefined') {\n DISQUS.reset({\n reload: true,\n config: function config() {\n copyProps(this, props);\n\n // Disqus needs hashbang URL, see https://help.disqus.com/customer/portal/articles/472107\n this.page.url = this.page.url.replace(/#/, '') + '#!newthread';\n }\n });\n } else {\n // Otherwise add Disqus to the page\n window.disqus_config = function () {\n copyProps(this, props);\n };\n this.addDisqusScript();\n }\n }\n }]);\n\n return DisqusThread;\n}(_react2.default.Component);\n\nDisqusThread.displayName = 'DisqusThread';\n\nDisqusThread.propTypes = {\n id: _propTypes2.default.string,\n\n /**\n * `shortname` tells the Disqus service your forum's shortname,\n * which is the unique identifier for your website as registered\n * on Disqus. If undefined , the Disqus embed will not load.\n */\n shortname: _propTypes2.default.string.isRequired,\n\n /**\n * `identifier` tells the Disqus service how to identify the\n * current page. When the Disqus embed is loaded, the identifier\n * is used to look up the correct thread. If disqus_identifier\n * is undefined, the page's URL will be used. The URL can be\n * unreliable, such as when renaming an article slug or changing\n * domains, so we recommend using your own unique way of\n * identifying a thread.\n */\n identifier: _propTypes2.default.string,\n\n /**\n * `title` tells the Disqus service the title of the current page.\n * This is used when creating the thread on Disqus for the first time.\n * If undefined, Disqus will use the <title> attribute of the page.\n * If that attribute could not be used, Disqus will use the URL of the page.\n */\n title: _propTypes2.default.string,\n\n /**\n * `url` tells the Disqus service the URL of the current page.\n * If undefined, Disqus will take the window.location.href.\n * This URL is used to look up or create a thread if disqus_identifier\n * is undefined. In addition, this URL is always saved when a thread is\n * being created so that Disqus knows what page a thread belongs to.\n */\n url: _propTypes2.default.string,\n\n /**\n * `category_id` tells the Disqus service the category to be used for\n * the current page. This is used when creating the thread on Disqus\n * for the first time.\n */\n category_id: _propTypes2.default.string,\n\n /**\n * `onNewComment` function accepts one parameter `comment` which is a\n * JavaScript object with comment `id` and `text`. This allows you to track\n * user comments and replies and run a script after a comment is posted.\n */\n onNewComment: _propTypes2.default.func,\n\n /**\n * `language` tells the Disqus service which language should be used.\n * Please refer to https://www.transifex.com/disqus/disqus/ on which languages can be used\n * If undefined, English is used as default one\n */\n language: _propTypes2.default.string\n};\n\nDisqusThread.defaultProps = {\n url: typeof window === 'undefined' ? null : window.location.href\n};\n\nexports.default = DisqusThread;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-disqus-comments/build/components/DisqusThread.js\n// module id = 734\n// module chunks = 108009296967943","'use strict';\n\nmodule.exports = require('./components/DisqusThread');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-disqus-comments/build/main.js\n// module id = 735\n// module chunks = 108009296967943","import React, { Component } from 'react';\nimport ReactDisqusComments from 'react-disqus-comments';\nimport config from '../../../gatsby-config';\n\nclass Disqus extends Component {\n constructor(props) {\n super(props);\n this.state = { toasts: [] };\n this.notifyAboutComment = this.notifyAboutComment.bind(this);\n this.onSnackbarDismiss = this.onSnackbarDismiss.bind(this);\n }\n\n onSnackbarDismiss() {\n const [, ...toasts] = this.state.toasts;\n this.setState({ toasts });\n }\n notifyAboutComment() {\n const toasts = this.state.toasts.slice();\n toasts.push({ text: 'New comment available!!' });\n this.setState({ toasts });\n }\n render() {\n const { postNode } = this.props;\n if (!config.siteMetadata.disqusShortname) {\n return null;\n }\n const post = postNode.frontmatter;\n const url = config.siteMetadata.url + postNode.fields.slug;\n return (\n <ReactDisqusComments\n shortname={config.siteMetadata.disqusShortname}\n identifier={post.title}\n title={post.title}\n url={url}\n category_id={post.category_id}\n onNewComment={this.notifyAboutComment}\n />\n );\n }\n}\n\nexport default Disqus;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Disqus/Disqus.jsx","import React from 'react';\nimport Link from 'gatsby-link';\nimport moment from 'moment';\nimport Disqus from '../Disqus/Disqus';\nimport './style.scss';\n\nclass PostTemplateDetails extends React.Component {\n render() {\n const { subtitle, author } = this.props.data.site.siteMetadata;\n const post = this.props.data.markdownRemark;\n const tags = post.fields.tagSlugs;\n\n const homeBlock = (\n <div>\n <Link className=\"post-single__home-button\" to=\"/\">All Articles</Link>\n </div>\n );\n\n const tagsBlock = (\n <div className=\"post-single__tags\">\n <ul className=\"post-single__tags-list\">\n {tags && tags.map((tag, i) => (\n <li className=\"post-single__tags-list-item\" key={tag}>\n <Link to={tag} className=\"post-single__tags-list-item-link\">\n {post.frontmatter.tags[i]}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n );\n\n const commentsBlock = (\n <div>\n <Disqus postNode={post} />\n </div>\n );\n\n return (\n <div>\n {homeBlock}\n <div className=\"post-single\">\n <div className=\"post-single__inner\">\n <h1 className=\"post-single__title\">{post.frontmatter.title}</h1>\n <div className=\"post-single__body\" dangerouslySetInnerHTML={{ __html: post.html }} />\n <div className=\"post-single__date\">\n <em>Published {moment(post.frontmatter.date).format('D MMM YYYY')}</em>\n </div>\n </div>\n <div className=\"post-single__footer\">\n {tagsBlock}\n <hr />\n <p className=\"post-single__footer-text\">\n {subtitle}\n <br />\n <strong>@{author.name}</strong>\n </p>\n {commentsBlock}\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default PostTemplateDetails;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/PostTemplateDetails/index.jsx","import React from 'react';\nimport Helmet from 'react-helmet';\nimport PostTemplateDetails from '../components/PostTemplateDetails';\n\nclass PostTemplate extends React.Component {\n render() {\n const { title, subtitle } = this.props.data.site.siteMetadata;\n const post = this.props.data.markdownRemark;\n const { title: postTitle, description: postDescription } = post.frontmatter;\n const description = postDescription || post.excerpt || subtitle;\n\n return (\n <div>\n <Helmet>\n <title>{`${postTitle} - ${title}`}</title>\n <meta name=\"description\" content={description} />\n </Helmet>\n <PostTemplateDetails {...this.props} />\n </div>\n );\n }\n}\n\nexport default PostTemplate;\n\nexport const pageQuery = graphql`\n query PostBySlug($slug: String!) {\n site {\n siteMetadata {\n title\n subtitle\n copyright\n author {\n name\n rss\n email\n github\n }\n }\n }\n markdownRemark(fields: { slug: { eq: $slug } }) {\n id\n html\n excerpt\n fields {\n tagSlugs\n }\n frontmatter {\n title\n tags\n date\n description\n }\n }\n }\n`;\n\n\n\n// WEBPACK FOOTER //\n// ./src/templates/post-template.jsx"],"sourceRoot":""}