-
Notifications
You must be signed in to change notification settings - Fork 3
/
component---src-templates-blog-jsx-47fc5d2481e22130ecf2.js.map
1 lines (1 loc) · 40.9 KB
/
component---src-templates-blog-jsx-47fc5d2481e22130ecf2.js.map
1
{"version":3,"sources":["webpack:///component---src-templates-blog-jsx-47fc5d2481e22130ecf2.js","webpack:///./~/lodash/_arrayReduce.js","webpack:///./~/lodash/_asciiWords.js","webpack:///./~/lodash/_createCompounder.js","webpack:///./~/lodash/_hasUnicodeWord.js","webpack:///./~/lodash/_unicodeWords.js","webpack:///./~/lodash/toString.js","webpack:///./~/lodash/_baseToString.js","webpack:///./~/lodash/kebabCase.js","webpack:///./~/lodash/deburr.js","webpack:///./~/lodash/words.js","webpack:///./src/components/PostTags/PostTags.jsx","webpack:///./src/templates/blog.jsx"],"names":["webpackJsonp","462","module","exports","arrayReduce","array","iteratee","accumulator","initAccum","index","length","463","asciiWords","string","match","reAsciiWord","465","__webpack_require__","createCompounder","callback","words","deburr","replace","reApos","rsApos","RegExp","466","hasUnicodeWord","reHasUnicodeWord","test","467","unicodeWords","reUnicodeWord","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","join","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","470","identity","value","464","469","kebabCase","result","word","toLowerCase","468","toString","baseToString","471","pattern","guard","undefined","220","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","_kebabCase2","_kebabCase3","_react","_react2","_gatsbyLink","_gatsbyLink2","PostTags","_Component","this","apply","arguments","render","tags","props","createElement","className","map","tag","key","style","textDecoration","to","Component","315","225","_taggedTemplateLiteralLoose","strings","raw","pageQuery","_templateObject","_reactHelmet","_reactHelmet2","_styledComponents","_styledComponents2","_Header","_Header2","_PostTags","_PostTags2","_SEO","_SEO2","_SiteConfig","_SiteConfig2","PostTemplate","_React$Component","slug","node","fields","postNode","post","frontmatter","id","category_id","config","postDefaultCategoryID","paddingBottom","title","date","dangerouslySetInnerHTML","__html","html","React","Blog","_React$Component2","postNodes","data","allMarkdownRemark","edges","toTime","x","Date","getTime","dateSort","a","b","siteTitle","postPath","siteDescription","location","logo","siteLogo","BodyContents","sort","reduce","prev","i","concat","styled","div","theme","contentWidthLaptop","sitePadding","widthLaptop"],"mappings":"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","file":"component---src-templates-blog-jsx-47fc5d2481e22130ecf2.js","sourcesContent":["webpackJsonp([217035495299209],{\n\n/***/ 462:\n/***/ (function(module, exports) {\n\n\t/**\n\t * A specialized version of `_.reduce` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @param {*} [accumulator] The initial value.\n\t * @param {boolean} [initAccum] Specify using the first element of `array` as\n\t * the initial value.\n\t * @returns {*} Returns the accumulated value.\n\t */\n\tfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n\t var index = -1,\n\t length = array == null ? 0 : array.length;\n\t\n\t if (initAccum && length) {\n\t accumulator = array[++index];\n\t }\n\t while (++index < length) {\n\t accumulator = iteratee(accumulator, array[index], index, array);\n\t }\n\t return accumulator;\n\t}\n\t\n\tmodule.exports = arrayReduce;\n\n\n/***/ }),\n\n/***/ 463:\n/***/ (function(module, exports) {\n\n\t/** Used to match words composed of alphanumeric characters. */\n\tvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\t\n\t/**\n\t * Splits an ASCII `string` into an array of its words.\n\t *\n\t * @private\n\t * @param {string} The string to inspect.\n\t * @returns {Array} Returns the words of `string`.\n\t */\n\tfunction asciiWords(string) {\n\t return string.match(reAsciiWord) || [];\n\t}\n\t\n\tmodule.exports = asciiWords;\n\n\n/***/ }),\n\n/***/ 465:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar arrayReduce = __webpack_require__(462),\n\t deburr = __webpack_require__(468),\n\t words = __webpack_require__(471);\n\t\n\t/** Used to compose unicode capture groups. */\n\tvar rsApos = \"['\\u2019]\";\n\t\n\t/** Used to match apostrophes. */\n\tvar reApos = RegExp(rsApos, 'g');\n\t\n\t/**\n\t * Creates a function like `_.camelCase`.\n\t *\n\t * @private\n\t * @param {Function} callback The function to combine each word.\n\t * @returns {Function} Returns the new compounder function.\n\t */\n\tfunction createCompounder(callback) {\n\t return function(string) {\n\t return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n\t };\n\t}\n\t\n\tmodule.exports = createCompounder;\n\n\n/***/ }),\n\n/***/ 466:\n/***/ (function(module, exports) {\n\n\t/** Used to detect strings that need a more robust regexp to match words. */\n\tvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\t\n\t/**\n\t * Checks if `string` contains a word composed of Unicode symbols.\n\t *\n\t * @private\n\t * @param {string} string The string to inspect.\n\t * @returns {boolean} Returns `true` if a word is found, else `false`.\n\t */\n\tfunction hasUnicodeWord(string) {\n\t return reHasUnicodeWord.test(string);\n\t}\n\t\n\tmodule.exports = hasUnicodeWord;\n\n\n/***/ }),\n\n/***/ 467:\n/***/ (function(module, exports) {\n\n\t/** Used to compose unicode character classes. */\n\tvar rsAstralRange = '\\\\ud800-\\\\udfff',\n\t rsComboMarksRange = '\\\\u0300-\\\\u036f',\n\t reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n\t rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n\t rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n\t rsDingbatRange = '\\\\u2700-\\\\u27bf',\n\t rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n\t rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n\t rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n\t rsPunctuationRange = '\\\\u2000-\\\\u206f',\n\t rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n\t rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n\t rsVarRange = '\\\\ufe0e\\\\ufe0f',\n\t rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\t\n\t/** Used to compose unicode capture groups. */\n\tvar rsApos = \"['\\u2019]\",\n\t rsBreak = '[' + rsBreakRange + ']',\n\t rsCombo = '[' + rsComboRange + ']',\n\t rsDigits = '\\\\d+',\n\t rsDingbat = '[' + rsDingbatRange + ']',\n\t rsLower = '[' + rsLowerRange + ']',\n\t rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n\t rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n\t rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n\t rsNonAstral = '[^' + rsAstralRange + ']',\n\t rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n\t rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n\t rsUpper = '[' + rsUpperRange + ']',\n\t rsZWJ = '\\\\u200d';\n\t\n\t/** Used to compose unicode regexes. */\n\tvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n\t rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n\t rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n\t rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n\t reOptMod = rsModifier + '?',\n\t rsOptVar = '[' + rsVarRange + ']?',\n\t rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n\t rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n\t rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n\t rsSeq = rsOptVar + reOptMod + rsOptJoin,\n\t rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\t\n\t/** Used to match complex or compound words. */\n\tvar reUnicodeWord = RegExp([\n\t rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n\t rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n\t rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n\t rsUpper + '+' + rsOptContrUpper,\n\t rsOrdUpper,\n\t rsOrdLower,\n\t rsDigits,\n\t rsEmoji\n\t].join('|'), 'g');\n\t\n\t/**\n\t * Splits a Unicode `string` into an array of its words.\n\t *\n\t * @private\n\t * @param {string} The string to inspect.\n\t * @returns {Array} Returns the words of `string`.\n\t */\n\tfunction unicodeWords(string) {\n\t return string.match(reUnicodeWord) || [];\n\t}\n\t\n\tmodule.exports = unicodeWords;\n\n\n/***/ }),\n\n/***/ 470:\n/***/ (function(module, exports) {\n\n\t/**\n\t * This method returns the first argument it receives.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Util\n\t * @param {*} value Any value.\n\t * @returns {*} Returns `value`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t *\n\t * console.log(_.identity(object) === object);\n\t * // => true\n\t */\n\tfunction identity(value) {\n\t return value;\n\t}\n\t\n\tmodule.exports = identity;\n\n\n/***/ }),\n\n/***/ 464:\n/***/ (function(module, exports) {\n\n\t/**\n\t * This method returns the first argument it receives.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Util\n\t * @param {*} value Any value.\n\t * @returns {*} Returns `value`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t *\n\t * console.log(_.identity(object) === object);\n\t * // => true\n\t */\n\tfunction identity(value) {\n\t return value;\n\t}\n\t\n\tmodule.exports = identity;\n\n\n/***/ }),\n\n/***/ 469:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar createCompounder = __webpack_require__(465);\n\t\n\t/**\n\t * Converts `string` to\n\t * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 3.0.0\n\t * @category String\n\t * @param {string} [string=''] The string to convert.\n\t * @returns {string} Returns the kebab cased string.\n\t * @example\n\t *\n\t * _.kebabCase('Foo Bar');\n\t * // => 'foo-bar'\n\t *\n\t * _.kebabCase('fooBar');\n\t * // => 'foo-bar'\n\t *\n\t * _.kebabCase('__FOO_BAR__');\n\t * // => 'foo-bar'\n\t */\n\tvar kebabCase = createCompounder(function(result, word, index) {\n\t return result + (index ? '-' : '') + word.toLowerCase();\n\t});\n\t\n\tmodule.exports = kebabCase;\n\n\n/***/ }),\n\n/***/ 468:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseToString = __webpack_require__(464);\n\t\n\t/**\n\t * Converts `value` to a string. An empty string is returned for `null`\n\t * and `undefined` values. The sign of `-0` is preserved.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to convert.\n\t * @returns {string} Returns the converted string.\n\t * @example\n\t *\n\t * _.toString(null);\n\t * // => ''\n\t *\n\t * _.toString(-0);\n\t * // => '-0'\n\t *\n\t * _.toString([1, 2, 3]);\n\t * // => '1,2,3'\n\t */\n\tfunction toString(value) {\n\t return value == null ? '' : baseToString(value);\n\t}\n\t\n\tmodule.exports = toString;\n\n\n/***/ }),\n\n/***/ 471:\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar asciiWords = __webpack_require__(463),\n\t hasUnicodeWord = __webpack_require__(466),\n\t toString = __webpack_require__(470),\n\t unicodeWords = __webpack_require__(467);\n\t\n\t/**\n\t * Splits `string` into an array of its words.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 3.0.0\n\t * @category String\n\t * @param {string} [string=''] The string to inspect.\n\t * @param {RegExp|string} [pattern] The pattern to match words.\n\t * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n\t * @returns {Array} Returns the words of `string`.\n\t * @example\n\t *\n\t * _.words('fred, barney, & pebbles');\n\t * // => ['fred', 'barney', 'pebbles']\n\t *\n\t * _.words('fred, barney, & pebbles', /[^, ]+/g);\n\t * // => ['fred', 'barney', '&', 'pebbles']\n\t */\n\tfunction words(string, pattern, guard) {\n\t string = toString(string);\n\t pattern = guard ? undefined : pattern;\n\t\n\t if (pattern === undefined) {\n\t return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n\t }\n\t return string.match(pattern) || [];\n\t}\n\t\n\tmodule.exports = words;\n\n\n/***/ }),\n\n/***/ 220:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tvar _kebabCase2 = __webpack_require__(469);\n\t\n\tvar _kebabCase3 = _interopRequireDefault(_kebabCase2);\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _gatsbyLink = __webpack_require__(15);\n\t\n\tvar _gatsbyLink2 = _interopRequireDefault(_gatsbyLink);\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 PostTags = function (_Component) {\n\t _inherits(PostTags, _Component);\n\t\n\t function PostTags() {\n\t _classCallCheck(this, PostTags);\n\t\n\t return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n\t }\n\t\n\t PostTags.prototype.render = function render() {\n\t var tags = this.props.tags;\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t { className: \"post-tag-container\" },\n\t tags && tags.map(function (tag) {\n\t return _react2.default.createElement(\n\t _gatsbyLink2.default,\n\t {\n\t key: tag,\n\t style: { textDecoration: \"none\" },\n\t to: \"/tags/\" + (0, _kebabCase3.default)(tag)\n\t },\n\t _react2.default.createElement(\n\t \"button\",\n\t null,\n\t tag\n\t )\n\t );\n\t })\n\t );\n\t };\n\t\n\t return PostTags;\n\t}(_react.Component);\n\t\n\texports.default = PostTags;\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n\n/***/ 315:\n/***/ (function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }),\n\n/***/ 225:\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 _templateObject = _taggedTemplateLiteralLoose(['\\nmargin: 0 auto;\\nmax-width: ', ';\\npadding: ', ';\\n@media (max-width: ', ') {\\n max-width: 95vw;\\n}\\n'], ['\\nmargin: 0 auto;\\nmax-width: ', ';\\npadding: ', ';\\n@media (max-width: ', ') {\\n max-width: 95vw;\\n}\\n']);\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactHelmet = __webpack_require__(26);\n\t\n\tvar _reactHelmet2 = _interopRequireDefault(_reactHelmet);\n\t\n\tvar _styledComponents = __webpack_require__(21);\n\t\n\tvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\t\n\tvar _Header = __webpack_require__(60);\n\t\n\tvar _Header2 = _interopRequireDefault(_Header);\n\t\n\tvar _PostTags = __webpack_require__(220);\n\t\n\tvar _PostTags2 = _interopRequireDefault(_PostTags);\n\t\n\tvar _SEO = __webpack_require__(61);\n\t\n\tvar _SEO2 = _interopRequireDefault(_SEO);\n\t\n\tvar _SiteConfig = __webpack_require__(23);\n\t\n\tvar _SiteConfig2 = _interopRequireDefault(_SiteConfig);\n\t\n\t__webpack_require__(315);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }\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 slug = this.props.node.fields.slug.slug;\n\t\n\t var postNode = this.props.node;\n\t var post = postNode.frontmatter;\n\t if (!post.id) {\n\t post.id = slug;\n\t }\n\t if (!post.id) {\n\t post.category_id = _SiteConfig2.default.postDefaultCategoryID;\n\t }\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t _react2.default.createElement(\n\t 'h3',\n\t { style: { paddingBottom: 0 } },\n\t post.title\n\t ),\n\t _react2.default.createElement(\n\t 'p',\n\t null,\n\t post.date\n\t ),\n\t _react2.default.createElement('div', { dangerouslySetInnerHTML: { __html: postNode.html } }),\n\t _react2.default.createElement(\n\t 'div',\n\t { className: 'post-meta' },\n\t _react2.default.createElement(_PostTags2.default, { tags: post.tags })\n\t )\n\t );\n\t };\n\t\n\t return PostTemplate;\n\t}(_react2.default.Component);\n\t\n\tvar Blog = function (_React$Component2) {\n\t _inherits(Blog, _React$Component2);\n\t\n\t function Blog() {\n\t _classCallCheck(this, Blog);\n\t\n\t return _possibleConstructorReturn(this, _React$Component2.apply(this, arguments));\n\t }\n\t\n\t Blog.prototype.render = function render() {\n\t var postNodes = this.props.data.allMarkdownRemark.edges;\n\t var toTime = function toTime(x) {\n\t return new Date(x.node.frontmatter.date + 'T00:00:00Z').getTime();\n\t };\n\t var dateSort = function dateSort(a, b) {\n\t return toTime(b) - toTime(a);\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 'Blog | ' + _SiteConfig2.default.siteTitle\n\t )\n\t ),\n\t _react2.default.createElement(_SEO2.default, { postPath: '/blog' }),\n\t _react2.default.createElement(_Header2.default, {\n\t siteTitle: _SiteConfig2.default.siteTitle,\n\t siteDescription: _SiteConfig2.default.siteDescription,\n\t location: this.props.location,\n\t logo: _SiteConfig2.default.siteLogo\n\t }),\n\t _react2.default.createElement(\n\t BodyContents,\n\t null,\n\t _react2.default.createElement(\n\t 'h1',\n\t null,\n\t 'Blog'\n\t ),\n\t postNodes.sort(dateSort).reduce(function (prev, x, i) {\n\t return [].concat(prev, [prev ? _react2.default.createElement('hr', null) : undefined, _react2.default.createElement(PostTemplate, { key: i, node: x.node })]);\n\t }, undefined)\n\t )\n\t );\n\t };\n\t\n\t return Blog;\n\t}(_react2.default.Component);\n\t\n\texports.default = Blog;\n\t\n\t\n\tvar BodyContents = _styledComponents2.default.div(_templateObject, function (props) {\n\t return props.theme.contentWidthLaptop;\n\t}, function (props) {\n\t return props.theme.sitePadding;\n\t}, function (props) {\n\t return props.theme.widthLaptop;\n\t});\n\t\n\t/* eslint no-undef: \"off\" */\n\tvar pageQuery = exports.pageQuery = '** extracted graphql fragment **';\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// component---src-templates-blog-jsx-47fc5d2481e22130ecf2.js","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayReduce.js\n// module id = 462\n// module chunks = 217035495299209","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_asciiWords.js\n// module id = 463\n// module chunks = 217035495299209","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createCompounder.js\n// module id = 465\n// module chunks = 217035495299209","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hasUnicodeWord.js\n// module id = 466\n// module chunks = 217035495299209","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_unicodeWords.js\n// module id = 467\n// module chunks = 217035495299209","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/toString.js\n// module id = 470\n// module chunks = 217035495299209","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseToString.js\n// module id = 464\n// module chunks = 217035495299209","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nmodule.exports = kebabCase;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/kebabCase.js\n// module id = 469\n// module chunks = 217035495299209","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/deburr.js\n// module id = 468\n// module chunks = 217035495299209","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/words.js\n// module id = 471\n// module chunks = 217035495299209","import React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport Link from \"gatsby-link\";\n\nclass PostTags extends Component {\n render() {\n const { tags } = this.props;\n return (\n <div className=\"post-tag-container\">\n {tags &&\n tags.map(tag =>\n <Link\n key={tag}\n style={{ textDecoration: \"none\" }}\n to={`/tags/${_.kebabCase(tag)}`}\n >\n <button>\n {tag}\n </button>\n </Link>\n )}\n </div>\n );\n }\n}\n\nexport default PostTags;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/PostTags/PostTags.jsx","import React from 'react';\nimport Helmet from 'react-helmet';\nimport styled from 'styled-components';\nimport Header from '../components/Layout/Header';\nimport PostTags from '../components/PostTags/PostTags';\nimport SEO from '../components/SEO/SEO';\nimport config from '../../data/SiteConfig';\nimport './b16-tomorrow-dark.css';\n\nclass PostTemplate extends React.Component {\n render () {\n const { slug } = this.props.node.fields.slug;\n const postNode = this.props.node;\n const post = postNode.frontmatter;\n if (!post.id) {\n post.id = slug;\n }\n if (!post.id) {\n post.category_id = config.postDefaultCategoryID;\n }\n return (\n <div>\n <h3 style={{paddingBottom: 0}}>{post.title}</h3>\n <p>{post.date}</p>\n <div dangerouslySetInnerHTML={{ __html: postNode.html }} />\n <div className='post-meta'>\n <PostTags tags={post.tags} />\n </div>\n </div>\n );\n }\n}\n\nexport default class Blog extends React.Component {\n render () {\n const postNodes = this.props.data.allMarkdownRemark.edges;\n const toTime = x => new Date(x.node.frontmatter.date + 'T00:00:00Z').getTime();\n const dateSort = (a, b) => toTime(b) - toTime(a);\n return (\n <div>\n <Helmet>\n <title>{`Blog | ${config.siteTitle}`}</title>\n </Helmet>\n <SEO postPath='/blog' />\n <Header\n siteTitle={config.siteTitle}\n siteDescription={config.siteDescription}\n location={this.props.location}\n logo={config.siteLogo}\n />\n <BodyContents>\n <h1>\n Blog\n </h1>\n {postNodes.sort(dateSort).reduce((prev, x, i) => [...prev, prev ? <hr /> : undefined, <PostTemplate key={i} node={x.node} />], undefined)}\n </BodyContents>\n </div>\n );\n }\n}\n\nconst BodyContents = styled.div`\nmargin: 0 auto;\nmax-width: ${props => props.theme.contentWidthLaptop};\npadding: ${props => props.theme.sitePadding};\n@media (max-width: ${props => props.theme.widthLaptop}) {\n max-width: 95vw;\n}\n`;\n\n/* eslint no-undef: \"off\" */\nexport const pageQuery = graphql`\nquery AllBlogPosts {\n allMarkdownRemark(\n filter: {frontmatter: {type: {eq: \"post\"}}},\n sort: { order: DESC, fields: [frontmatter___date] }) {\n edges {\n node {\n html\n timeToRead\n excerpt\n frontmatter {\n title\n cover\n date\n category\n tags\n }\n fields {\n slug\n }\n }\n }\n }\n}`;\n\n\n\n// WEBPACK FOOTER //\n// ./src/templates/blog.jsx"],"sourceRoot":""}