[
  {
    "path": ".gitignore",
    "content": "_site\n.sass-cache\n.jekyll-metadata\npublic\nnode_modules\nbundle.js\nbundle.js.map\n"
  },
  {
    "path": ".prettierrc",
    "content": "{\n    \"printWidth\": 100,\n    \"tabWidth\": 4,\n    \"trailingComma\": \"es5\",\n    \"singleQuote\": true\n}\n"
  },
  {
    "path": "README.md",
    "content": "## Jekyll & Webpack, integrated\n\nSo you can have your React and serve it statically, too. Plugin-free! (<- that's like saying orange juice is gluten-free, btw)\n\nAre you working with Github pages? See the gh-pages branch:\n\n- https://github.com/allizad/jekyll-webpack/tree/gh-pages\n\nYou can learn more about how this was put together in my walkthrough post here:\n- [Using Webpack and React with Jekyll](https://medium.com/@allizadrozny/using-webpack-and-react-with-jekyll-cfe137f8a2cc)\n\nSee the full series of adding search to Jekyll, for which this project was a building block, here:\n- [Elasticsearch for Jekyll, Part 1](https://blog.omc.io/elasticsearch-for-jekyll-part-1-ab456ac7c093)\n\nWoohoo! Now go build shit!\n\n![cat image](https://i0.wp.com/www.developermemes.com/wp-content/uploads/2015/10/Now-That-You-Have-That-Feature-Done-I-Want-It-To-Do-Something-Else-Instead-Web-Developer-Meme.jpg?resize=385%2C232)\n"
  },
  {
    "path": "_config.yml",
    "content": "# Welcome to Jekyll!\n#\n# This config file is meant for settings that affect your whole blog, values\n# which you are expected to set up once and rarely need to edit after that.\n# For technical reasons, this file is *NOT* reloaded automatically when you use\n# 'jekyll serve'. If you change this file, please restart the server process.\n\n# Site settings\ntitle: Jekyll-Webpack Boilerplate\nemail: hi@allizad.com\ndescription: > # this means to ignore newlines until \"baseurl:\"\n  Write an awesome description for your new site here. You can edit this\n  line in _config.yml. It will appear in your document head meta (for\n  Google search results) and in your feed.xml site description.\nbaseurl: \"\" # the subpath of your site, e.g. /blog\nurl: \"http://allizad.com\" # the base hostname & protocol for your site\ntwitter_username: allizad\ngithub_username:  allizad\n\n# Build settings\nmarkdown: kramdown\nsource: src\ndestination: public\n"
  },
  {
    "path": "package.json",
    "content": "{\n    \"name\": \"jekyll-webpack-react\",\n    \"version\": \"1.0.0\",\n    \"description\": \"A simple boilerplate for webpack and jekyll integration.\",\n    \"main\": \"bundle.js\",\n    \"scripts\": {\n        \"build\": \"webpack\",\n        \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n    },\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/allizad/jekyll-webpack.git\"\n    },\n    \"keywords\": [\"jekyll\", \"webpack\", \"react\"],\n    \"author\": \"Allison Zadrozny\",\n    \"license\": \"ISC\",\n    \"bugs\": {\n        \"url\": \"https://github.com/allizad/jekyll-webpack/issues\"\n    },\n    \"homepage\": \"https://github.com/allizad/jekyll-webpack#readme\",\n    \"devDependencies\": {\n        \"@babel/core\": \"^7.0.0-beta.40\",\n        \"@babel/preset-env\": \"^7.0.0-beta.40\",\n        \"@babel/preset-react\": \"^7.0.0-beta.40\",\n        \"@babel/preset-stage-0\": \"^7.0.0-beta.40\",\n        \"babel-loader\": \"^8.0.0-beta.2\",\n        \"react\": \"^16.2.0\",\n        \"react-dom\": \"^16.2.0\",\n        \"webpack\": \"^4.1.1\",\n        \"webpack-cli\": \"^2.0.11\"\n    }\n}\n"
  },
  {
    "path": "src/_includes/footer.html",
    "content": "<footer class=\"site-footer\">\n\n  <div class=\"wrapper\">\n\n    <h2 class=\"footer-heading\">{{ site.title }}</h2>\n\n    <div class=\"footer-col-wrapper\">\n      <div class=\"footer-col footer-col-1\">\n        <ul class=\"contact-list\">\n          <li>{{ site.title }}</li>\n          <li><a href=\"mailto:{{ site.email }}\">{{ site.email }}</a></li>\n        </ul>\n      </div>\n\n      <div class=\"footer-col footer-col-2\">\n        <ul class=\"social-media-list\">\n          {% if site.github_username %}\n          <li>\n            {% include icon-github.html username=site.github_username %}\n          </li>\n          {% endif %}\n\n          {% if site.twitter_username %}\n          <li>\n            {% include icon-twitter.html username=site.twitter_username %}\n          </li>\n          {% endif %}\n        </ul>\n      </div>\n\n      <div class=\"footer-col footer-col-3\">\n        <p>{{ site.description }}</p>\n      </div>\n    </div>\n\n  </div>\n\n</footer>\n"
  },
  {
    "path": "src/_includes/head.html",
    "content": "<head>\n  <meta charset=\"utf-8\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n  <title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>\n  <meta name=\"description\" content=\"{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}\">\n\n  <link rel=\"stylesheet\" href=\"{{ \"/css/main.css\" | prepend: site.baseurl }}\">\n  <link rel=\"canonical\" href=\"{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}\">\n  <link rel=\"alternate\" type=\"application/rss+xml\" title=\"{{ site.title }}\" href=\"{{ \"/feed.xml\" | prepend: site.baseurl | prepend: site.url }}\">\n</head>\n"
  },
  {
    "path": "src/_includes/header.html",
    "content": "<header class=\"site-header\">\n\n  <div class=\"wrapper\">\n\n    <a class=\"site-title\" href=\"{{ site.baseurl }}/\">{{ site.title }}</a>\n\n    <nav class=\"site-nav\">\n      <a href=\"#\" class=\"menu-icon\">\n        <svg viewBox=\"0 0 18 15\">\n          <path fill=\"#424242\" d=\"M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z\"/>\n          <path fill=\"#424242\" d=\"M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z\"/>\n          <path fill=\"#424242\" d=\"M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z\"/>\n        </svg>\n      </a>\n\n      <div class=\"trigger\">\n        {% for my_page in site.pages %}\n          {% if my_page.title %}\n          <a class=\"page-link\" href=\"{{ my_page.url | prepend: site.baseurl }}\">{{ my_page.title }}</a>\n          {% endif %}\n        {% endfor %}\n      </div>\n    </nav>\n\n  </div>\n\n</header>\n"
  },
  {
    "path": "src/_includes/icon-github.html",
    "content": "<a href=\"https://github.com/{{ include.username }}\"><span class=\"icon icon--github\">{% include icon-github.svg %}</span><span class=\"username\">{{ include.username }}</span></a>\n"
  },
  {
    "path": "src/_includes/icon-twitter.html",
    "content": "<a href=\"https://twitter.com/{{ include.username }}\"><span class=\"icon icon--twitter\">{% include icon-twitter.svg %}</span><span class=\"username\">{{ include.username }}</span></a>\n"
  },
  {
    "path": "src/_layouts/default.html",
    "content": "<!DOCTYPE html>\n<html>\n\n  {% include head.html %}\n\n  <body>\n\n    {% include header.html %}\n    <div id=\"root\"></div>\n    <div class=\"page-content\">\n      <div class=\"wrapper\">\n        {{ content }}\n      </div>\n    </div>\n\n    {% include footer.html %}\n    <script type=\"text/javascript\" src=\"/assets/javascripts/bundle.js\" charset=\"utf-8\"></script>\n  </body>\n\n</html>\n"
  },
  {
    "path": "src/_layouts/page.html",
    "content": "---\nlayout: default\n---\n<article class=\"post\">\n\n  <header class=\"post-header\">\n    <h1 class=\"post-title\">{{ page.title }}</h1>\n  </header>\n\n  <div class=\"post-content\">\n    {{ content }}\n  </div>\n\n</article>\n"
  },
  {
    "path": "src/_layouts/post.html",
    "content": "---\nlayout: default\n---\n<article class=\"post\" itemscope itemtype=\"http://schema.org/BlogPosting\">\n\n  <header class=\"post-header\">\n    <h1 class=\"post-title\" itemprop=\"name headline\">{{ page.title }}</h1>\n    <p class=\"post-meta\"><time datetime=\"{{ page.date | date_to_xmlschema }}\" itemprop=\"datePublished\">{{ page.date | date: \"%b %-d, %Y\" }}</time>{% if page.author %} • <span itemprop=\"author\" itemscope itemtype=\"http://schema.org/Person\"><span itemprop=\"name\">{{ page.author }}</span></span>{% endif %}</p>\n  </header>\n\n  <div class=\"post-content\" itemprop=\"articleBody\">\n    {{ content }}\n  </div>\n\n</article>\n"
  },
  {
    "path": "src/_posts/2016-05-02-welcome-to-jekyll.markdown",
    "content": "---\nlayout: post\ntitle:  \"Welcome to Jekyll!\"\ndate:   2016-05-02 09:28:59 -0500\ncategories: jekyll update\n---\nYou’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.\n\nTo add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.\n\nJekyll also offers powerful support for code snippets:\n\n{% highlight ruby %}\ndef print_hi(name)\n  puts \"Hi, #{name}\"\nend\nprint_hi('Tom')\n#=> prints 'Hi, Tom' to STDOUT.\n{% endhighlight %}\n\nCheck out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].\n\n[jekyll-docs]: http://jekyllrb.com/docs/home\n[jekyll-gh]:   https://github.com/jekyll/jekyll\n[jekyll-talk]: https://talk.jekyllrb.com/\n"
  },
  {
    "path": "src/_sass/_base.scss",
    "content": "/**\n * Reset some basic elements\n */\nbody, h1, h2, h3, h4, h5, h6,\np, blockquote, pre, hr,\ndl, dd, ol, ul, figure {\n    margin: 0;\n    padding: 0;\n}\n\n\n\n/**\n * Basic styling\n */\nbody {\n    font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;\n    color: $text-color;\n    background-color: $background-color;\n    -webkit-text-size-adjust: 100%;\n    -webkit-font-feature-settings: \"kern\" 1;\n    -moz-font-feature-settings: \"kern\" 1;\n    -o-font-feature-settings: \"kern\" 1;\n    font-feature-settings: \"kern\" 1;\n    font-kerning: normal;\n}\n\n\n\n/**\n * Set `margin-bottom` to maintain vertical rhythm\n */\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\nul, ol, dl, figure,\n%vertical-rhythm {\n    margin-bottom: $spacing-unit / 2;\n}\n\n\n\n/**\n * Images\n */\nimg {\n    max-width: 100%;\n    vertical-align: middle;\n}\n\n\n\n/**\n * Figures\n */\nfigure > img {\n    display: block;\n}\n\nfigcaption {\n    font-size: $small-font-size;\n}\n\n\n\n/**\n * Lists\n */\nul, ol {\n    margin-left: $spacing-unit;\n}\n\nli {\n    > ul,\n    > ol {\n         margin-bottom: 0;\n    }\n}\n\n\n\n/**\n * Headings\n */\nh1, h2, h3, h4, h5, h6 {\n    font-weight: $base-font-weight;\n}\n\n\n\n/**\n * Links\n */\na {\n    color: $brand-color;\n    text-decoration: none;\n\n    &:visited {\n        color: darken($brand-color, 15%);\n    }\n\n    &:hover {\n        color: $text-color;\n        text-decoration: underline;\n    }\n}\n\n\n\n/**\n * Blockquotes\n */\nblockquote {\n    color: $grey-color;\n    border-left: 4px solid $grey-color-light;\n    padding-left: $spacing-unit / 2;\n    font-size: 18px;\n    letter-spacing: -1px;\n    font-style: italic;\n\n    > :last-child {\n        margin-bottom: 0;\n    }\n}\n\n\n\n/**\n * Code formatting\n */\npre,\ncode {\n    font-size: 15px;\n    border: 1px solid $grey-color-light;\n    border-radius: 3px;\n    background-color: #eef;\n}\n\ncode {\n    padding: 1px 5px;\n}\n\npre {\n    padding: 8px 12px;\n    overflow-x: auto;\n\n    > code {\n        border: 0;\n        padding-right: 0;\n        padding-left: 0;\n    }\n}\n\n\n\n/**\n * Wrapper\n */\n.wrapper {\n    max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));\n    max-width:         calc(#{$content-width} - (#{$spacing-unit} * 2));\n    margin-right: auto;\n    margin-left: auto;\n    padding-right: $spacing-unit;\n    padding-left: $spacing-unit;\n    @extend %clearfix;\n\n    @include media-query($on-laptop) {\n        max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));\n        max-width:         calc(#{$content-width} - (#{$spacing-unit}));\n        padding-right: $spacing-unit / 2;\n        padding-left: $spacing-unit / 2;\n    }\n}\n\n\n\n/**\n * Clearfix\n */\n%clearfix {\n\n    &:after {\n        content: \"\";\n        display: table;\n        clear: both;\n    }\n}\n\n\n\n/**\n * Icons\n */\n.icon {\n\n    > svg {\n        display: inline-block;\n        width: 16px;\n        height: 16px;\n        vertical-align: middle;\n\n        path {\n            fill: $grey-color;\n        }\n    }\n}\n"
  },
  {
    "path": "src/_sass/_layout.scss",
    "content": "/**\n * Site header\n */\n.site-header {\n    border-top: 5px solid $grey-color-dark;\n    border-bottom: 1px solid $grey-color-light;\n    min-height: 56px;\n\n    // Positioning context for the mobile navigation icon\n    position: relative;\n}\n\n.site-title {\n    font-size: 26px;\n    font-weight: 300;\n    line-height: 56px;\n    letter-spacing: -1px;\n    margin-bottom: 0;\n    float: left;\n\n    &,\n    &:visited {\n        color: $grey-color-dark;\n    }\n}\n\n.site-nav {\n    float: right;\n    line-height: 56px;\n\n    .menu-icon {\n        display: none;\n    }\n\n    .page-link {\n        color: $text-color;\n        line-height: $base-line-height;\n\n        // Gaps between nav items, but not on the last one\n        &:not(:last-child) {\n            margin-right: 20px;\n        }\n    }\n\n    @include media-query($on-palm) {\n        position: absolute;\n        top: 9px;\n        right: $spacing-unit / 2;\n        background-color: $background-color;\n        border: 1px solid $grey-color-light;\n        border-radius: 5px;\n        text-align: right;\n\n        .menu-icon {\n            display: block;\n            float: right;\n            width: 36px;\n            height: 26px;\n            line-height: 0;\n            padding-top: 10px;\n            text-align: center;\n\n            > svg {\n                width: 18px;\n                height: 15px;\n\n                path {\n                    fill: $grey-color-dark;\n                }\n            }\n        }\n\n        .trigger {\n            clear: both;\n            display: none;\n        }\n\n        &:hover .trigger {\n            display: block;\n            padding-bottom: 5px;\n        }\n\n        .page-link {\n            display: block;\n            padding: 5px 10px;\n\n            &:not(:last-child) {\n                margin-right: 0;\n            }\n            margin-left: 20px;\n        }\n    }\n}\n\n\n\n/**\n * Site footer\n */\n.site-footer {\n    border-top: 1px solid $grey-color-light;\n    padding: $spacing-unit 0;\n}\n\n.footer-heading {\n    font-size: 18px;\n    margin-bottom: $spacing-unit / 2;\n}\n\n.contact-list,\n.social-media-list {\n    list-style: none;\n    margin-left: 0;\n}\n\n.footer-col-wrapper {\n    font-size: 15px;\n    color: $grey-color;\n    margin-left: -$spacing-unit / 2;\n    @extend %clearfix;\n}\n\n.footer-col {\n    float: left;\n    margin-bottom: $spacing-unit / 2;\n    padding-left: $spacing-unit / 2;\n}\n\n.footer-col-1 {\n    width: -webkit-calc(35% - (#{$spacing-unit} / 2));\n    width:         calc(35% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-2 {\n    width: -webkit-calc(20% - (#{$spacing-unit} / 2));\n    width:         calc(20% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-3 {\n    width: -webkit-calc(45% - (#{$spacing-unit} / 2));\n    width:         calc(45% - (#{$spacing-unit} / 2));\n}\n\n@include media-query($on-laptop) {\n    .footer-col-1,\n    .footer-col-2 {\n        width: -webkit-calc(50% - (#{$spacing-unit} / 2));\n        width:         calc(50% - (#{$spacing-unit} / 2));\n    }\n\n    .footer-col-3 {\n        width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n        width:         calc(100% - (#{$spacing-unit} / 2));\n    }\n}\n\n@include media-query($on-palm) {\n    .footer-col {\n        float: none;\n        width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n        width:         calc(100% - (#{$spacing-unit} / 2));\n    }\n}\n\n\n\n/**\n * Page content\n */\n.page-content {\n    padding: $spacing-unit 0;\n}\n\n.page-heading {\n    font-size: 20px;\n}\n\n.post-list {\n    margin-left: 0;\n    list-style: none;\n\n    > li {\n        margin-bottom: $spacing-unit;\n    }\n}\n\n.post-meta {\n    font-size: $small-font-size;\n    color: $grey-color;\n}\n\n.post-link {\n    display: block;\n    font-size: 24px;\n}\n\n\n\n/**\n * Posts\n */\n.post-header {\n    margin-bottom: $spacing-unit;\n}\n\n.post-title {\n    font-size: 42px;\n    letter-spacing: -1px;\n    line-height: 1;\n\n    @include media-query($on-laptop) {\n        font-size: 36px;\n    }\n}\n\n.post-content {\n    margin-bottom: $spacing-unit;\n\n    h2 {\n        font-size: 32px;\n\n        @include media-query($on-laptop) {\n            font-size: 28px;\n        }\n    }\n\n    h3 {\n        font-size: 26px;\n\n        @include media-query($on-laptop) {\n            font-size: 22px;\n        }\n    }\n\n    h4 {\n        font-size: 20px;\n\n        @include media-query($on-laptop) {\n            font-size: 18px;\n        }\n    }\n}\n"
  },
  {
    "path": "src/_sass/_syntax-highlighting.scss",
    "content": "/**\n * Syntax highlighting styles\n */\n.highlight {\n    background: #fff;\n    @extend %vertical-rhythm;\n\n    .highlighter-rouge & {\n      background: #eef;\n    }\n\n    .c     { color: #998; font-style: italic } // Comment\n    .err   { color: #a61717; background-color: #e3d2d2 } // Error\n    .k     { font-weight: bold } // Keyword\n    .o     { font-weight: bold } // Operator\n    .cm    { color: #998; font-style: italic } // Comment.Multiline\n    .cp    { color: #999; font-weight: bold } // Comment.Preproc\n    .c1    { color: #998; font-style: italic } // Comment.Single\n    .cs    { color: #999; font-weight: bold; font-style: italic } // Comment.Special\n    .gd    { color: #000; background-color: #fdd } // Generic.Deleted\n    .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific\n    .ge    { font-style: italic } // Generic.Emph\n    .gr    { color: #a00 } // Generic.Error\n    .gh    { color: #999 } // Generic.Heading\n    .gi    { color: #000; background-color: #dfd } // Generic.Inserted\n    .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific\n    .go    { color: #888 } // Generic.Output\n    .gp    { color: #555 } // Generic.Prompt\n    .gs    { font-weight: bold } // Generic.Strong\n    .gu    { color: #aaa } // Generic.Subheading\n    .gt    { color: #a00 } // Generic.Traceback\n    .kc    { font-weight: bold } // Keyword.Constant\n    .kd    { font-weight: bold } // Keyword.Declaration\n    .kp    { font-weight: bold } // Keyword.Pseudo\n    .kr    { font-weight: bold } // Keyword.Reserved\n    .kt    { color: #458; font-weight: bold } // Keyword.Type\n    .m     { color: #099 } // Literal.Number\n    .s     { color: #d14 } // Literal.String\n    .na    { color: #008080 } // Name.Attribute\n    .nb    { color: #0086B3 } // Name.Builtin\n    .nc    { color: #458; font-weight: bold } // Name.Class\n    .no    { color: #008080 } // Name.Constant\n    .ni    { color: #800080 } // Name.Entity\n    .ne    { color: #900; font-weight: bold } // Name.Exception\n    .nf    { color: #900; font-weight: bold } // Name.Function\n    .nn    { color: #555 } // Name.Namespace\n    .nt    { color: #000080 } // Name.Tag\n    .nv    { color: #008080 } // Name.Variable\n    .ow    { font-weight: bold } // Operator.Word\n    .w     { color: #bbb } // Text.Whitespace\n    .mf    { color: #099 } // Literal.Number.Float\n    .mh    { color: #099 } // Literal.Number.Hex\n    .mi    { color: #099 } // Literal.Number.Integer\n    .mo    { color: #099 } // Literal.Number.Oct\n    .sb    { color: #d14 } // Literal.String.Backtick\n    .sc    { color: #d14 } // Literal.String.Char\n    .sd    { color: #d14 } // Literal.String.Doc\n    .s2    { color: #d14 } // Literal.String.Double\n    .se    { color: #d14 } // Literal.String.Escape\n    .sh    { color: #d14 } // Literal.String.Heredoc\n    .si    { color: #d14 } // Literal.String.Interpol\n    .sx    { color: #d14 } // Literal.String.Other\n    .sr    { color: #009926 } // Literal.String.Regex\n    .s1    { color: #d14 } // Literal.String.Single\n    .ss    { color: #990073 } // Literal.String.Symbol\n    .bp    { color: #999 } // Name.Builtin.Pseudo\n    .vc    { color: #008080 } // Name.Variable.Class\n    .vg    { color: #008080 } // Name.Variable.Global\n    .vi    { color: #008080 } // Name.Variable.Instance\n    .il    { color: #099 } // Literal.Number.Integer.Long\n}\n"
  },
  {
    "path": "src/about.md",
    "content": "---\nlayout: page\ntitle: About\npermalink: /about/\n---\n\nThis is the base Jekyll and Webpack boilerplate, created and maintained by [@allizad](https://github.com/allizad).\n\nYou can learn more about how this was put together in my walkthrough post here:\n- [Using Webpack and React with Jekyll](https://medium.com/allizad/)\n\nSee the full series of adding search to Jekyll, for which this project was a building block, here:\n- [Elasticsearch for Jekyll, Part 1](https://blog.omc.io/elasticsearch-for-jekyll-part-1-ab456ac7c093)\n\nThanks! Now go build shit!\n\n![cat-lappy-image](src/assets/images/cat-lappy.gif)\n"
  },
  {
    "path": "src/css/main.scss",
    "content": "---\n# Only the main Sass file needs front matter (the dashes are enough)\n---\n@charset \"utf-8\";\n\n\n\n// Our variables\n$base-font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n$base-font-size:   16px;\n$base-font-weight: 400;\n$small-font-size:  $base-font-size * 0.875;\n$base-line-height: 1.5;\n\n$spacing-unit:     30px;\n\n$text-color:       #111;\n$background-color: #fdfdfd;\n$brand-color:      #2a7ae2;\n\n$grey-color:       #828282;\n$grey-color-light: lighten($grey-color, 40%);\n$grey-color-dark:  darken($grey-color, 25%);\n\n// Width of the content area\n$content-width:    800px;\n\n$on-palm:          600px;\n$on-laptop:        800px;\n\n\n\n// Use media queries like this:\n// @include media-query($on-palm) {\n//     .wrapper {\n//         padding-right: $spacing-unit / 2;\n//         padding-left: $spacing-unit / 2;\n//     }\n// }\n@mixin media-query($device) {\n    @media screen and (max-width: $device) {\n        @content;\n    }\n}\n\n\n\n// Import partials from `sass_dir` (defaults to `_sass`)\n@import\n        \"base\",\n        \"layout\",\n        \"syntax-highlighting\"\n;\n"
  },
  {
    "path": "src/feed.xml",
    "content": "---\nlayout: null\n---\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n  <channel>\n    <title>{{ site.title | xml_escape }}</title>\n    <description>{{ site.description | xml_escape }}</description>\n    <link>{{ site.url }}{{ site.baseurl }}/</link>\n    <atom:link href=\"{{ \"/feed.xml\" | prepend: site.baseurl | prepend: site.url }}\" rel=\"self\" type=\"application/rss+xml\"/>\n    <pubDate>{{ site.time | date_to_rfc822 }}</pubDate>\n    <lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>\n    <generator>Jekyll v{{ jekyll.version }}</generator>\n    {% for post in site.posts limit:10 %}\n      <item>\n        <title>{{ post.title | xml_escape }}</title>\n        <description>{{ post.content | xml_escape }}</description>\n        <pubDate>{{ post.date | date_to_rfc822 }}</pubDate>\n        <link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>\n        <guid isPermaLink=\"true\">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>\n        {% for tag in post.tags %}\n        <category>{{ tag | xml_escape }}</category>\n        {% endfor %}\n        {% for cat in post.categories %}\n        <category>{{ cat | xml_escape }}</category>\n        {% endfor %}\n      </item>\n    {% endfor %}\n  </channel>\n</rss>\n"
  },
  {
    "path": "src/index.html",
    "content": "---\nlayout: default\n---\n\n<div class=\"home\">\n\n  <h1 class=\"page-heading\">Howdy</h1>\n\n  <div class=\"post-content\">\n    <p>This is the base Jekyll and Webpack boilerplate, created and maintained by <a href=\"https://github.com/allizad\">@allizad</a>.</p>\n\n    <p>You can learn more about how this was put together in my walkthrough post here:</p>\n    <ul>\n    <li><a href=\"https://medium.com/allizad/\">Using Webpack and React with&nbsp;Jekyll</a></li>\n    </ul>\n\n    <p>See the full series of adding search to Jekyll, for which this project was a building block, here:</p>\n    <ul>\n    <li><a href=\"https://blog.omc.io/elasticsearch-for-jekyll-part-1-ab456ac7c093\">Elasticsearch for Jekyll, Part 1</a></li>\n    </ul>\n\n    <p>Thanks! Now go build shit!</p>\n\n    <p><img src=\"/assets/images/cat-lappy.gif\" alt=\"cat-lappy-image\"></p>\n  </div>\n\n  <ul class=\"post-list\">\n    {% for post in site.posts %}\n      <li>\n        <span class=\"post-meta\">{{ post.date | date: \"%b %-d, %Y\" }}</span>\n\n        <h2>\n          <a class=\"post-link\" href=\"{{ post.url | prepend: site.baseurl }}\">{{ post.title }}</a>\n        </h2>\n      </li>\n    {% endfor %}\n  </ul>\n\n  <p class=\"rss-subscribe\">subscribe <a href=\"{{ \"/feed.xml\" | prepend: site.baseurl }}\">via RSS</a></p>\n\n</div>\n"
  },
  {
    "path": "webpack/components/Hello.js",
    "content": "import React, { Component } from 'react';\n\nclass Hello extends Component {\n    render() {\n        return <div>Hey, y’all!! This is a React Component</div>;\n    }\n}\nexport default Hello;\n"
  },
  {
    "path": "webpack/entry.js",
    "content": "import React, { Component } from 'react';\nimport { render } from 'react-dom';\nimport Hello from './components/Hello';\n\nclass App extends Component {\n    render() {\n        return <Hello />;\n    }\n}\n\nrender(<App />, document.getElementById('root'));\n"
  },
  {
    "path": "webpack.config.js",
    "content": "const path = require('path');\n\nmodule.exports = {\n    // webpack folder's entry js - excluded from jekll's build process.\n    entry: './webpack/entry.js',\n    output: {\n        // we're going to put the generated file in the assets folder so jekyll will grab it.\n        path: path.resolve(__dirname, 'src/assets/javascripts/'),\n        filename: 'bundle.js',\n    },\n    module: {\n        rules: [\n            {\n                test: /\\.jsx?$/,\n                exclude: /(node_modules)/,\n                loader: 'babel-loader',\n                query: {\n                    presets: [\n                        '@babel/preset-react',\n                        ['@babel/preset-env', { modules: false }],\n                        '@babel/preset-stage-0',\n                    ],\n                },\n            },\n        ],\n    },\n    devtool: 'source-map',\n    mode: 'development' // Avoids a warning when running `webpack`.\n                      // Set to 'production' for minified version.\n};\n"
  }
]