diff --git a/.gitignore b/.gitignore index db47ab3..1e52000 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ hugo.darwin hugo.linux # End of https://www.gitignore.io/api/hugo + +blog/node_modules diff --git a/blog/.DS_Store b/blog/.DS_Store index ab77100..8cc92df 100644 Binary files a/blog/.DS_Store and b/blog/.DS_Store differ diff --git a/blog/build-lunrjs-index.js b/blog/build-lunrjs-index.js new file mode 100644 index 0000000..b5916eb --- /dev/null +++ b/blog/build-lunrjs-index.js @@ -0,0 +1,70 @@ +const fs = require("fs").promises; +const { promisify } = require("util"); +const frontMatterParser = require("parser-front-matter"); +const lunrjs = require("lunr"); +const readdirp = require("readdirp"); + +const parse = promisify(frontMatterParser.parse.bind(frontMatterParser)); + +async function loadPostsWithFrontMatter(postsDirectoryPath) { + // We read the content directory, but avoid indexing of these directories: + // .DS_Store, old. + const postEntryInfos = await readdirp.promise(postsDirectoryPath, { + fileFilter: ["!.DS_Store", "!_index.md", "!*.jpg", "!*.svg", "!*.png"], + directoryFilter: "!old", + }); + // We take each post and map their paths. + const postNames = postEntryInfos.map((file) => file.path); + // To debug index building, un-comment the following line to get a list of + // postNames. Do NOT keep it un-commented or the search will fail. + // console.error(postNames); + const posts = await Promise.all( + postNames.map(async (fileName) => { + const fileContent = await fs.readFile( + `${postsDirectoryPath}/${fileName}`, + "utf8" + ); + const { content, data } = await parse(fileContent); + return { + // we only take a 10,000 character slice of the post to index. this ensures + // our index doesn't grow too large + content: content.slice(0, 10000), + ...data, + }; + }) + ); + return posts; +} + +function makeIndex(posts) { + return lunrjs(function () { + // list of fields we are gathering from each post. we use the Title as our + // reference marker (identifying feature) + this.ref("title"); + this.field("title"); + // this.field('authors'); + // this.field('date'); + this.field("content"); + this.field("tags"); + // this.field('resources.src'); + // this.field('imageDescription') + posts.forEach((p) => { + this.add(p); + }); + }); +} + +async function run() { + // The following line specifies which directory to use for indexing. See above + // for excluded directories and filetypes. + const posts = await loadPostsWithFrontMatter(`${__dirname}/content/`); + const index = makeIndex(posts); + console.log(JSON.stringify(index)); +} + +run() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error.stack); + process.exit(1); + }); diff --git a/blog/config.toml b/blog/config.toml index 9ceb5e3..970ae92 100644 --- a/blog/config.toml +++ b/blog/config.toml @@ -20,13 +20,25 @@ LanguageName = "English" identifier = "home" name = "Home" url = "/" -weight = 10 +weight = 1 [[menu.main]] identifier = "about" name = "About" url = "/about/" -weight = 0 +weight = 2 + +[[menu.main]] +identifier = "tags" +name = "Tags" +url = "/tags/" +weight = 3 + +[[menu.main]] +identifier = "search" +name = "Search" +url = "/search/" +weight = 4 [taxonomies] category = "categories" diff --git a/blog/content/post/first_post/index.md b/blog/content/post/first_post/index.md index eb60724..098acc2 100644 --- a/blog/content/post/first_post/index.md +++ b/blog/content/post/first_post/index.md @@ -5,7 +5,7 @@ date: "2020-05-04T02:14:50+01:00" images: ["images/first_post.svg"] draft: true authors: ["Daniel Tomlinson"] -tags: ["Introduction"] +tags: ["Introduction", "another"] --- Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugo-s-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds. diff --git a/blog/package.json b/blog/package.json new file mode 100644 index 0000000..8e59881 --- /dev/null +++ b/blog/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "lunr": "^2.3.8", + "parser-front-matter": "^1.6.4", + "readdirp": "^3.4.0" + } +} diff --git a/blog/static/search-index.json b/blog/static/search-index.json new file mode 100644 index 0000000..08734ce --- /dev/null +++ b/blog/static/search-index.json @@ -0,0 +1 @@ +{"version":"2.3.8","fields":["title","content","tags"],"fieldVectors":[["title/Our Difference",[0,1.51]],["content/Our Difference",[1,1.059,2,1.676,3,1.676,4,1.676,5,1.676,6,1.676,7,1.676,8,0.652,9,1.676,10,2.163,11,2.163,12,2.163,13,2.163,14,2.163,15,2.163,16,2.163,17,2.163,18,1.676,19,1.676,20,1.676,21,1.676]],["tags/Our Difference",[]],["title/undefined",[]],["content/undefined",[]],["tags/undefined",[]],["title/Second Post",[24,1.113,25,0.703]],["content/Second Post",[1,0.985,8,0.407,26,0.985,27,0.661,28,0.661,29,0.985,30,0.661,31,0.661,32,0.661,33,1.513,34,0.661,35,0.661,36,0.661,37,0.985,38,0.661,39,0.661,40,0.661,41,1.303,42,0.661,43,0.661,44,0.661,45,0.661,46,0.661,47,0.661,48,0.661,49,0.661,50,1.765,51,0.661,52,0.606,53,0.661,54,0.661,55,0.985,56,0.661,57,0.985,58,0.661,59,0.661,60,0.661,61,0.661,62,0.661,63,0.661,64,1.176,65,0.985,66,0.661,67,0.661,68,0.661,69,0.661,70,0.661,71,0.661,72,0.661,73,0.661,74,1.047]],["tags/Second Post",[52,0.383,75,0.621]],["title/First Post",[25,0.703,76,1.113]],["content/First Post",[8,0.428,26,1.022,27,0.696,28,0.696,29,1.022,30,0.696,31,0.696,32,0.696,33,1.488,34,0.696,35,0.696,36,0.696,37,1.022,38,0.696,39,0.696,40,0.696,41,1.336,42,0.696,43,0.696,44,0.696,45,0.696,46,0.696,47,0.696,48,0.696,49,0.696,50,1.754,51,0.696,52,0.428,53,0.696,54,0.696,55,1.022,56,0.696,57,1.022,58,0.696,59,0.696,60,0.696,61,0.696,62,0.696,63,0.696,64,1.212,65,1.022,66,0.696,67,0.696,68,0.696,69,0.696,70,0.696,71,0.696,72,0.696,73,0.696]],["tags/First Post",[75,0.621,77,0.984]]],"invertedIndex":[["",{"_index":50,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["1085870671291310081",{"_index":70,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["48912912",{"_index":73,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["5",{"_index":7,"title":{},"content":{"Our Difference":{}},"tags":{}}],["along",{"_index":36,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["amet",{"_index":13,"title":{},"content":{"Our Difference":{}},"tags":{}}],["anoth",{"_index":77,"title":{},"content":{},"tags":{"First Post":{}}}],["background",{"_index":5,"title":{},"content":{"Our Difference":{}},"tags":{}}],["bgvuinzyfa",{"_index":62,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["br",{"_index":64,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["built",{"_index":29,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["choro",{"_index":18,"title":{},"content":{"Our Difference":{}},"tags":{}}],["class=\"front",{"_index":4,"title":{},"content":{"Our Difference":{}},"tags":{}}],["code",{"_index":53,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["config](https://gohugo.io/about/hugo",{"_index":38,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["content",{"_index":35,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["def",{"_index":56,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["differ",{"_index":0,"title":{"Our Difference":{}},"content":{},"tags":{}}],["dolor",{"_index":11,"title":{},"content":{"Our Difference":{}},"tags":{}}],["emb",{"_index":49,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["enabl",{"_index":42,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["enhanc",{"_index":66,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["essent",{"_index":15,"title":{},"content":{"Our Difference":{}},"tags":{}}],["et",{"_index":14,"title":{},"content":{"Our Difference":{}},"tags":{}}],["first",{"_index":76,"title":{"First Post":{}},"content":{},"tags":{}}],["flask",{"_index":55,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["flask.someth",{"_index":58,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["gdpr",{"_index":39,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["hidecapt",{"_index":63,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["hugo",{"_index":26,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["images/banner.svg",{"_index":74,"title":{},"content":{"Second Post":{}},"tags":{}}],["img",{"_index":1,"title":{},"content":{"Our Difference":{},"Second Post":{}},"tags":{}}],["import",{"_index":8,"title":{},"content":{"Our Difference":{},"Second Post":{},"First Post":{}},"tags":{}}],["instagram",{"_index":60,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["instagram_simpl",{"_index":61,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["introduct",{"_index":75,"title":{},"content":{},"tags":{"Second Post":{},"First Post":{}}}],["ipsum",{"_index":10,"title":{},"content":{"Our Difference":{}},"tags":{}}],["js",{"_index":44,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["lorem",{"_index":9,"title":{},"content":{"Our Difference":{}},"tags":{}}],["management/shortcodes/#us",{"_index":31,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["media",{"_index":48,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["mediocritatem",{"_index":16,"title":{},"content":{"Our Difference":{}},"tags":{}}],["mei",{"_index":21,"title":{},"content":{"Our Difference":{}},"tags":{}}],["more",{"_index":51,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["oporteat",{"_index":20,"title":{},"content":{"Our Difference":{}},"tags":{}}],["page",{"_index":23,"title":{},"content":{"undefined":{}},"tags":{}}],["post",{"_index":25,"title":{"Second Post":{},"First Post":{}},"content":{},"tags":{}}],["privaci",{"_index":37,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["python",{"_index":54,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["quo",{"_index":17,"title":{},"content":{"Our Difference":{}},"tags":{}}],["return",{"_index":59,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["rich",{"_index":34,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["s",{"_index":32,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["search",{"_index":22,"title":{},"content":{"undefined":{}},"tags":{}}],["second",{"_index":24,"title":{"Second Post":{}},"content":{},"tags":{}}],["set",{"_index":40,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["sever",{"_index":28,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["ship",{"_index":27,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["shortcod",{"_index":33,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["shortcodes](https://gohugo.io/cont",{"_index":30,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["simpl",{"_index":41,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["sit",{"_index":12,"title":{},"content":{"Our Difference":{}},"tags":{}}],["social",{"_index":47,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["someth",{"_index":57,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["src=\"/images/front",{"_index":2,"title":{},"content":{"Our Difference":{}},"tags":{}}],["static",{"_index":43,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["style=\"opac",{"_index":6,"title":{},"content":{"Our Difference":{}},"tags":{}}],["test",{"_index":52,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{"Second Post":{}}}],["twitter",{"_index":68,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["twitter_simpl",{"_index":69,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["variou",{"_index":46,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["version",{"_index":45,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["vimeo",{"_index":71,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["vimeo_simpl",{"_index":72,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["volumu",{"_index":19,"title":{},"content":{"Our Difference":{}},"tags":{}}],["wallpaper.svg",{"_index":3,"title":{},"content":{"Our Difference":{}},"tags":{}}],["youtub",{"_index":65,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}],["zjthwmvuzzc",{"_index":67,"title":{},"content":{"Second Post":{},"First Post":{}},"tags":{}}]],"pipeline":["stemmer"]} diff --git a/blog/yarn-error.log b/blog/yarn-error.log new file mode 100644 index 0000000..669aeeb --- /dev/null +++ b/blog/yarn-error.log @@ -0,0 +1,36 @@ +Arguments: + /usr/local/Cellar/node/13.2.0/bin/node /usr/local/bin/yarn init + +PATH: + /Users/dtomlinson/.pyenv/shims:/Users/dtomlinson/.pyenv/bin:/usr/local/python/python-3.8/lib/python3.8/site-packages:/usr/local/opt/openssl/bin:/Users/dtomlinson/.local/bin:/Users/dtomlinson/.poetry/bin:/Users/dtomlinson/.cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin + +Yarn version: + 1.22.0 + +Node version: + 13.2.0 + +Platform: + darwin x64 + +Trace: + Error: canceled + at Interface. (/usr/local/lib/node_modules/yarn/lib/cli.js:136987:13) + at Interface.emit (events.js:210:5) + at Interface._ttyWrite (readline.js:885:16) + at ReadStream.onkeypress (readline.js:191:10) + at ReadStream.emit (events.js:210:5) + at emitKeys (internal/readline/utils.js:433:14) + at emitKeys.next () + at ReadStream.onData (readline.js:1151:36) + at ReadStream.emit (events.js:210:5) + at addChunk (_stream_readable.js:326:12) + +npm manifest: + No manifest + +yarn manifest: + No manifest + +Lockfile: + No lockfile diff --git a/blog/yarn.lock b/blog/yarn.lock new file mode 100644 index 0000000..a42e8b6 --- /dev/null +++ b/blog/yarn.lock @@ -0,0 +1,182 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +file-is-binary@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-is-binary/-/file-is-binary-1.0.0.tgz#5e41806d1bcae458c8fec32fe3ce122dbbbc4356" + integrity sha1-XkGAbRvK5FjI/sMv484SLbu8Q1Y= + dependencies: + is-binary-buffer "^1.0.0" + isobject "^3.0.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +gray-matter@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-3.1.1.tgz#101f80d9e69eeca6765cdce437705b18f40876ac" + integrity sha512-nZ1qjLmayEv0/wt3sHig7I0s3/sJO0dkAaKYQ5YAOApUtYEOonXSFdWvL1khvnZMTvov4UufkqlFsilPnejEXA== + dependencies: + extend-shallow "^2.0.1" + js-yaml "^3.10.0" + kind-of "^5.0.2" + strip-bom-string "^1.0.0" + +is-binary-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-binary-buffer/-/is-binary-buffer-1.0.0.tgz#bc6031290b65cbf799b9d9502b50fd5375524007" + integrity sha1-vGAxKQtly/eZudlQK1D9U3VSQAc= + dependencies: + is-buffer "^1.1.5" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +js-yaml@^3.10.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +lazy-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" + integrity sha1-uRkKT5EzVGlIQIWfio9whNiCImQ= + dependencies: + set-getter "^0.1.0" + +lunr@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.8.tgz#a8b89c31f30b5a044b97d2d28e2da191b6ba2072" + integrity sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +parser-front-matter@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/parser-front-matter/-/parser-front-matter-1.6.4.tgz#71fe3288a51c7b8734163f3793f3fdc24b0a8a90" + integrity sha512-eqtUnI5+COkf1CQOYo8FmykN5Zs+5Yr60f/7GcPgQDZEEjdE/VZ4WMaMo9g37foof8h64t/TH2Uvk2Sq0fDy/g== + dependencies: + extend-shallow "^2.0.1" + file-is-binary "^1.0.0" + gray-matter "^3.0.2" + isobject "^3.0.1" + lazy-cache "^2.0.2" + mixin-deep "^1.2.0" + trim-leading-lines "^0.1.1" + +picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +readdirp@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + +set-getter@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376" + integrity sha1-12nBgsnVpR9AkUXy+6guXoboA3Y= + dependencies: + to-object-path "^0.3.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +trim-leading-lines@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/trim-leading-lines/-/trim-leading-lines-0.1.1.tgz#0e7cac3e83042dcf95a74ed36966f17744d5c169" + integrity sha1-DnysPoMELc+Vp07TaWbxd0TVwWk= + dependencies: + is-whitespace "^0.3.0"