diff --git a/CHANGELOG.md b/CHANGELOG.md index d7cb895..04d118e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +### [0.5.0](https://github.com/juliancwirko/create-harold-app/releases/tag/v0.5.0) (2021-07-06) + +- templates are now located in separate repositories +- nothing should change from the usage perspective +- you can still use `npm init harold-app my-app` or `npm init harold-app my-app -t bare` + ### [0.4.1](https://github.com/juliancwirko/create-harold-app/releases/tag/v0.4.1) (2021-06-06) - fix postsList date element class name diff --git a/bin/create-harold-app.js b/bin/create-harold-app.js index 5fae87f..9598cb8 100755 --- a/bin/create-harold-app.js +++ b/bin/create-harold-app.js @@ -3,11 +3,16 @@ const spawn = require('cross-spawn'); const { program } = require('commander'); const sanitizeName = require('sanitize-filename'); -const path = require('path'); -const fse = require('fs-extra'); +const download = require('download'); const fs = require('fs'); -const TEMPLATES = ['bare', 'default']; +const TEMPLATE_BARE_NAME = 'bare'; +const TEMPLATE_DEFAULT_NAME = 'default'; +const TEMPLATES = [TEMPLATE_BARE_NAME, TEMPLATE_DEFAULT_NAME]; +const BARE_PACKAGE_PATH = + 'https://github.com/juliancwirko/harold-template-bare/archive/refs/heads/main.zip'; +const DEFAULT_PACKAGE_PATH = + 'https://github.com/juliancwirko/harold-template-default/archive/refs/heads/main.zip'; const packageJson = require('../package.json'); @@ -31,19 +36,22 @@ if (projectName && projectName.indexOf('-') !== 0) { // Create project directory spawn.sync('mkdir', [sanitizeName(projectName)], { stdio: 'inherit' }); - let templateName = 'default'; + let templateArchiveFilePath = DEFAULT_PACKAGE_PATH; // Choose template if user passes an option if (options.template && TEMPLATES.includes(options.template)) { - templateName = options.template; + templateArchiveFilePath = + options.template === TEMPLATE_BARE_NAME + ? BARE_PACKAGE_PATH + : DEFAULT_PACKAGE_PATH; } - // Copy required files to proper directories - fse - .copy( - path.join(__dirname, '../templates/' + templateName), - process.cwd() + '/' + projectName + '/src' - ) + // Extract required files to proper directories + download( + templateArchiveFilePath, + process.cwd() + '/' + projectName + '/src', + { extract: true, strip: 1 } + ) .then(() => { // Write proper package.json file for the project fs.readFile( @@ -73,7 +81,16 @@ if (projectName && projectName.indexOf('-') !== 0) { ); }) .catch((err) => { - if (err) console.log(err); + if (err) + console.log( + "Can't download the " + + options.template + + ' template: (' + + err.statusCode + + ': ' + + err.statusMessage + + ')' + ); }); } else { console.log('Please provide project name (directory)'); diff --git a/bin/packagejson.template b/bin/packagejson.template index 40a7608..d1740d9 100644 --- a/bin/packagejson.template +++ b/bin/packagejson.template @@ -8,6 +8,6 @@ "start": "harold-scripts start" }, "devDependencies": { - "harold-scripts": "^0.4.1" + "harold-scripts": "^0.5.0" } } diff --git a/package-lock.json b/package-lock.json index b580124..cee705e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "create-harold-app", - "version": "0.4.1", + "version": "0.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -65,6 +65,11 @@ } } }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" + }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -104,6 +109,21 @@ "color-convert": "^1.9.0" } }, + "archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "requires": { + "file-type": "^4.2.0" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" + } + } + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -127,6 +147,20 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -136,6 +170,65 @@ "concat-map": "0.0.1" } }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" + } + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -186,6 +279,14 @@ } } }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -209,6 +310,19 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -227,6 +341,141 @@ "ms": "2.1.2" } }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + } + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + } + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -240,11 +489,42 @@ "esutils": "^2.0.2" } }, + "download": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/download/-/download-8.0.0.tgz", + "integrity": "sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==", + "requires": { + "archive-type": "^4.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.2.1", + "ext-name": "^5.0.0", + "file-type": "^11.1.0", + "filenamify": "^3.0.0", + "get-stream": "^4.1.0", + "got": "^8.3.1", + "make-dir": "^2.1.0", + "p-event": "^2.1.0", + "pify": "^4.0.1" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -409,6 +689,23 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "requires": { + "mime-db": "^1.28.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "requires": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -429,6 +726,14 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -437,6 +742,26 @@ "flat-cache": "^3.0.4" } }, + "file-type": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz", + "integrity": "sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==" + }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" + }, + "filenamify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz", + "integrity": "sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==", + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -451,6 +776,20 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -477,6 +816,14 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==" }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -513,6 +860,42 @@ } } }, + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, "graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", @@ -523,6 +906,29 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -556,6 +962,15 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -574,11 +989,50 @@ "is-extglob": "^2.1.1" } }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -593,6 +1047,11 @@ "esprima": "^4.0.0" } }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -612,6 +1071,14 @@ "universalify": "^2.0.0" } }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "requires": { + "json-buffer": "3.0.0" + } + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -626,6 +1093,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -634,6 +1106,32 @@ "yallist": "^4.0.0" } }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -652,6 +1150,31 @@ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "dependencies": { + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -673,6 +1196,37 @@ "word-wrap": "^1.2.3" } }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" + }, + "p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "requires": { + "p-timeout": "^2.0.1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "requires": { + "p-finally": "^1.0.0" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -691,11 +1245,39 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, "prettier": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", @@ -709,16 +1291,54 @@ "fast-diff": "^1.1.2" } }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, "regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", @@ -734,6 +1354,14 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -742,6 +1370,11 @@ "glob": "^7.1.3" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "sanitize-filename": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", @@ -750,6 +1383,21 @@ "truncate-utf8-bytes": "^1.0.0" } }, + "seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "requires": { + "commander": "^2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, "semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", @@ -804,11 +1452,32 @@ } } }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "requires": { + "sort-keys": "^1.0.0" + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, "string-width": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", @@ -819,6 +1488,14 @@ "strip-ansi": "^6.0.0" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -827,11 +1504,27 @@ "ansi-regex": "^5.0.0" } }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "requires": { + "is-natural-number": "^4.0.1" + } + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -869,11 +1562,48 @@ } } }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -895,6 +1625,15 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -908,11 +1647,29 @@ "punycode": "^2.1.0" } }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -936,10 +1693,24 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } } } } diff --git a/package.json b/package.json index 2637187..e306ad7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "create-harold-app", - "version": "0.4.1", + "version": "0.5.0", "description": "Static blog/site generator", "author": "Julian Ćwirko (julian.io)", "license": "MIT", @@ -27,6 +27,7 @@ "dependencies": { "commander": "^7.1.0", "cross-spawn": "^7.0.3", + "download": "^8.0.0", "eslint": "^7.12.0", "eslint-config-prettier": "^6.14.0", "eslint-plugin-prettier": "^3.1.4", diff --git a/templates/bare/assets/images/favicon.png b/templates/bare/assets/images/favicon.png deleted file mode 100644 index 0cce75e..0000000 Binary files a/templates/bare/assets/images/favicon.png and /dev/null differ diff --git a/templates/bare/blog-layouts/blog-post.hbs b/templates/bare/blog-layouts/blog-post.hbs deleted file mode 100644 index 4c98672..0000000 --- a/templates/bare/blog-layouts/blog-post.hbs +++ /dev/null @@ -1,27 +0,0 @@ -{{> head title=title description=excerpt }} - -
- {{#if coverImage}} - - {{/if}} -
- -
-

{{title}}

-
-
- {{{content}}} -
- -
-
- -{{> footer}} diff --git a/templates/bare/jsonData/posts.json b/templates/bare/jsonData/posts.json deleted file mode 100644 index a86ac5a..0000000 --- a/templates/bare/jsonData/posts.json +++ /dev/null @@ -1,11 +0,0 @@ -[ - { - "fileName": "example.html", - "title": "Example post title", - "body": "

Lorem ipsum 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

\"alt

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Lorem ipsum 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

\"alt

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Code sample. Ready for code highlighters, for example PrismJS

const test = 'test'; console.log(test); 

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

", - "excerpt": "This is short excerpt of an example post. Lorem ipsum dolor sit amet, consectetur adipiscing elit.", - "publicationDate": "2021-04-15", - "tags": ["tag 1", "tag 2"], - "coverImage": "https://picsum.photos/2000/1000" - } -] diff --git a/templates/bare/pages/about.hbs b/templates/bare/pages/about.hbs deleted file mode 100644 index e95ab52..0000000 --- a/templates/bare/pages/about.hbs +++ /dev/null @@ -1,54 +0,0 @@ -{{> head title="About" description="Harold app bare theme" }} - -
-
-

About page example

-
-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac lacus non neque vehicula euismod. Vivamus rutrum - vitae velit vel fringilla. Aliquam ultricies id erat condimentum tempor. Nullam porta magna tristique, - sollicitudin urna sed, sollicitudin ante. Ut ante tellus, luctus sed sollicitudin eget, feugiat vitae quam. - Praesent porta pellentesque sapien a mattis. Curabitur sit amet ligula nibh. Sed quis molestie ligula. Vivamus ut - purus id ipsum placerat pharetra nec eget lectus. Pellentesque tempus tincidunt hendrerit. Morbi mollis leo ut - semper finibus. Aliquam erat volutpat. Nullam convallis ultrices facilisis. Duis scelerisque sit amet libero eu - malesuada. -

- -

- Vivamus rutrum feugiat urna, vitae volutpat nibh porta in. Vivamus velit orci, maximus tincidunt mi id, efficitur - tempor mi. Nunc laoreet, dui quis molestie iaculis, sem augue volutpat enim, vitae fringilla ante odio ac eros. - Nullam sit amet erat sit amet lectus gravida porta. Pellentesque habitant morbi tristique senectus et netus et - malesuada fames ac turpis egestas. Curabitur bibendum dui vel accumsan lobortis. Nunc feugiat, ex rutrum posuere - eleifend, elit sem molestie sapien, in facilisis leo mauris et lacus. Donec sit amet placerat tortor, vel - tincidunt urna. Morbi et justo dui. Maecenas sodales sem lectus. Curabitur ut quam lorem. -

- -

- Nulla aliquam leo non justo aliquam viverra. Vivamus eu ultrices felis, ac pellentesque elit. Maecenas blandit ac - ex vel faucibus. Cras rutrum ornare velit, scelerisque pharetra est. Nulla vel tincidunt turpis. Donec in auctor - ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. -

- -

- In nunc nisi, dapibus at iaculis eget, vestibulum accumsan purus. Suspendisse tincidunt rhoncus gravida. - Suspendisse laoreet convallis massa ullamcorper ultrices. Curabitur at ante quis ante euismod porttitor sit amet - et magna. Donec at lacus metus. Nullam ut lacinia lorem. Praesent feugiat nunc nisi. Proin elementum ultricies - odio, ac ultricies urna imperdiet ac. Maecenas vitae porttitor purus, et suscipit ante. Praesent tincidunt lorem - mollis lectus eleifend tempus. In lacinia, eros a faucibus mollis, mi turpis sollicitudin felis, quis luctus felis - mi sed magna. Sed pharetra sapien a mi fermentum blandit. Quisque lacinia, ligula nec maximus eleifend, orci - ligula consequat orci, nec lacinia odio justo quis risus. Aliquam at eros quis lacus volutpat fermentum id quis - ex. -

- -

- Nam ligula tortor, finibus non urna at, dictum porttitor velit. Orci varius natoque penatibus et magnis dis - parturient montes, nascetur ridiculus mus. Mauris condimentum tincidunt placerat. Maecenas nec venenatis erat. Nam - lacus metus, fermentum nec felis in, bibendum vestibulum arcu. Sed sollicitudin nisi a ultrices imperdiet. - Vestibulum in rutrum risus. Integer sed turpis velit. Aenean imperdiet hendrerit nisl, et ultricies neque - facilisis non. Praesent imperdiet ex ornare mi porta hendrerit. -

-
-
-
- -{{> footer}} \ No newline at end of file diff --git a/templates/bare/pages/all-posts-list.hbs b/templates/bare/pages/all-posts-list.hbs deleted file mode 100644 index 686f536..0000000 --- a/templates/bare/pages/all-posts-list.hbs +++ /dev/null @@ -1,13 +0,0 @@ -{{> head title="All posts" description="Harold App Bare theme" }} - -
- {{postsList - noImage=true - noExcerpt=true - noReadMoreButton=true - className="post-list-items" - dateFormat='dd mmmm yyyy' - }} -
- -{{> footer}} diff --git a/templates/bare/pages/index.hbs b/templates/bare/pages/index.hbs deleted file mode 100644 index 2b07004..0000000 --- a/templates/bare/pages/index.hbs +++ /dev/null @@ -1,15 +0,0 @@ -{{> head title="Homepage" description="Harold App Bare theme" }} - -
- {{postsList - perPageLimit=6 - currentPage=1 - className="post-list-items" - dateFormat='dd mmmm yyyy' - }} -
- See all posts -
-
- -{{> footer}} diff --git a/templates/bare/partials/footer.hbs b/templates/bare/partials/footer.hbs deleted file mode 100644 index c286ee2..0000000 --- a/templates/bare/partials/footer.hbs +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/templates/bare/partials/head.hbs b/templates/bare/partials/head.hbs deleted file mode 100644 index af3f7b5..0000000 --- a/templates/bare/partials/head.hbs +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - {{title}} - - - - - - - -
-
-
- - -
-
-
diff --git a/templates/bare/posts/example.md b/templates/bare/posts/example.md deleted file mode 100644 index a9b1d58..0000000 --- a/templates/bare/posts/example.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: 'blog-post' -title: 'Example post title' -excerpt: "This is short excerpt of an example post. Lorem ipsum dolor sit amet, consectetur adipiscing elit." -coverImage: 'https://picsum.photos/2000/1000' -tags: - - tag 1 - - tag 2 -publicationDate: '2021-04-15' ---- - -## Lorem ipsum 1 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -
alt text
- -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -## Lorem ipsum 2 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -![alt text](https://picsum.photos/300/200?style=centered) - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -
- -
- -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Code sample. Ready for code highlighters, for example [PrismJS](https://prismjs.com/) -```javascript -const test = 'test'; -console.log(test); -``` - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. \ No newline at end of file diff --git a/templates/bare/styles/_basic.scss b/templates/bare/styles/_basic.scss deleted file mode 100644 index 862a3fa..0000000 --- a/templates/bare/styles/_basic.scss +++ /dev/null @@ -1,127 +0,0 @@ -* { - box-sizing: border-box; -} - -body { - font-family: $font-family-main; - font-weight: 300; - margin: 0; - padding: 0; - min-height: 100vh; - overflow-x: hidden; - line-height: 30px; - color: $color-main-dark; -} - -article, aside, footer, header, nav, section { - display: block; - - h1 { - font-size: 2em; - } -} - -.main-header-container { - height: 100px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.main-menu-list { - display: flex; - list-style-type: none; - margin: 0; - padding: 0; -} - -.main-menu-list-item { - font-weight: 600; - font-size: 18px; - border-bottom: 3px solid transparent; - margin-left: 10px; - margin-right: 10px; - - a { - display: flex; - align-items: center; - text-decoration: none; - color: inherit; - - i { - margin-left: 10px; - } - } - - &:hover { - border-bottom: 3px solid $color-main-dark; - } -} - -.main-logo { - font-size: 36px; - font-weight: 900; - display: flex; - align-items: flex-end; - - a { - text-decoration: none; - color: inherit; - } -} - -.main-logo-dot { - width: 15px; - height: 15px; - background-color: $color-main-contrast; - margin-right: 10px; - margin-bottom: 2px; -} - -.container { - max-width: 1200px; - margin: 0 auto; - width: 100%; - padding: 0 30px; -} - -.main-footer { - padding: 60px 30px 30px; - text-align: center; - font-size: 13px; - color: rgba($color-main-dark, .4); - height: $size-footer-height; - - a { - color: $color-main-contrast; - } -} - -.page-container, -.post-container { - min-height: calc(100vh - #{$size-header-height} - #{$size-footer-height}); -} - -.button { - color: $color-main-dark; - display: inline-block; - border: 1px solid $color-main-dark; - transition: background-color .2s; - text-decoration: none; - padding: 5px 20px; - border-radius: 3px; - text-align: center; - font-weight: 400; - background-color: $color-main-dark; - color: $color-main-light; - - &:hover { - background-color: darken($color-main-dark, 50%); - } -} - -.home-see-all-posts { - padding: 60px 20px; - display: flex; - justify-content: center; -} diff --git a/templates/bare/styles/_page.scss b/templates/bare/styles/_page.scss deleted file mode 100644 index 4eb5092..0000000 --- a/templates/bare/styles/_page.scss +++ /dev/null @@ -1,17 +0,0 @@ -.page-content { - max-width: 760px; - width: 100%; - margin: 40px auto 10px; - font-size: 18px; - - img { - max-width: 100%; - } - } - -.page-content-title { - font-weight: 900; - font-size: 2.8rem; - line-height: 45px; - margin: 0 0 50px; -} diff --git a/templates/bare/styles/_post.scss b/templates/bare/styles/_post.scss deleted file mode 100644 index 5c1f583..0000000 --- a/templates/bare/styles/_post.scss +++ /dev/null @@ -1,122 +0,0 @@ -.post-content { - max-width: 760px; - width: 100%; - margin: 40px auto 10px; - font-size: 18px; - - img { - max-width: 100%; - } -} - -.post-content-date { - font-weight: 300; - font-size: 14px; -} - -.post-content-title { - font-weight: 900; - font-size: 2.8rem; - line-height: 45px; - margin: 0 0 50px; -} - -.post-cover-image { - text-align: center; - - img { - max-width: 100%; - } -} - -.post-content-tags { - display: flex; - align-items: center; - border-top: 1px solid rgba($color-main-dark, .15); - margin-top: 20px; - padding-top: 20px; -} - -.post-content-tag { - border: 1px solid rgba($color-main-dark, .15); - padding: 0 15px; - font-size: 13px; - font-weight: 300; - margin-right: 10px; - color: rgba($color-main-dark, .8); - border-radius: 3px; -} - - -.post-list-items { - display: flex; - flex-wrap: wrap; - justify-items: space-between; - width: 100%; -} - -.all-posts-page { - .post-list-items--article { - padding: 20px; - } -} - -.post-list-items--article { - position: relative; - padding: 20px 20px 62px; - box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; - margin: 10px; - width: calc(33% - 20px); - - @media (max-width: 1200px) { - width: calc(50% - 20px); - } - - @media (max-width: 800px) { - width: calc(100% - 20px); - } - - img { - max-width: 100%; - } -} - -.post-list-items--image { - margin-bottom: 10px; -} - -.post-list-items--title { - font-size: 26px; - font-weight: 900; - - a { - text-decoration: none; - color: $color-main-dark; - } -} - -.post-list-items--date { - font-size: 15px; -} - -.post-list-items--tags { - font-weight: 600; - color: $color-main-contrast; - font-size: 13px; -} - -.post-list-items--excerpt { - margin-top: 10px; - margin-bottom: 35px; - line-height: 1.5; - font-size: 14px; -} - -.post-list-items--button { - @extend .button; - display: block; - position: absolute; - bottom: 20px; - left: 20px; - right: 20px; -} diff --git a/templates/bare/styles/_utils.scss b/templates/bare/styles/_utils.scss deleted file mode 100644 index ffad280..0000000 --- a/templates/bare/styles/_utils.scss +++ /dev/null @@ -1,39 +0,0 @@ -// Center small image in markdown without html -// example in markdown: ![alt text](![alt text](/assets/image.png?style=centered) -img[src$="centered"] { - display:block; - margin: 0 auto; -} - -// Content wider than post container - html has to be used in markdown -// Example:
alt text
-.wide-content { - position: relative; - width: 85vw; - min-width: 100%; - margin: 30px calc(50% - 50vw); - transform: translateX(calc(50vw - 50%)); - text-align: center; -} - - -// Responsive container for video, codepen etc. iframes -.embeded-media-container { - height: 0; - margin-bottom: 0.88889rem; - overflow: hidden; - padding-bottom: 67.5%; - padding-top: 1.38889rem; - position: relative; } - .embeded-media-container.vimeo { - padding-top: 0; } - .embeded-media-container iframe, - .embeded-media-container object, - .embeded-media-container embed, - .embeded-media-container video { - height: 100%; - position: absolute; - top: 0; - width: 100%; - left: 0; - border: 0; } \ No newline at end of file diff --git a/templates/bare/styles/_variables.scss b/templates/bare/styles/_variables.scss deleted file mode 100644 index eabb34b..0000000 --- a/templates/bare/styles/_variables.scss +++ /dev/null @@ -1,8 +0,0 @@ -$color-main-dark: #383838; -$color-main-light: #fff; -$color-main-contrast: #ea4c89; - -$font-family-main: 'Poppins', sans-serif; - -$size-header-height: 100px; -$size-footer-height: 120px; diff --git a/templates/bare/styles/main.scss b/templates/bare/styles/main.scss deleted file mode 100644 index ea845c1..0000000 --- a/templates/bare/styles/main.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import 'variables'; -@import 'utils'; -@import 'basic'; -@import 'post'; -@import 'page'; diff --git a/templates/default/assets/images/favicon.png b/templates/default/assets/images/favicon.png deleted file mode 100644 index 0cce75e..0000000 Binary files a/templates/default/assets/images/favicon.png and /dev/null differ diff --git a/templates/default/assets/js/harold-main-menu.js b/templates/default/assets/js/harold-main-menu.js deleted file mode 100644 index 52ba74e..0000000 --- a/templates/default/assets/js/harold-main-menu.js +++ /dev/null @@ -1,18 +0,0 @@ -(function () { - const menuIcon = document.querySelector('[data-js-menu]'); - const menuIconClose = document.querySelector('[data-js-menu-close]'); - const menuOverlay = document.querySelector('[data-js-menu-overlay]'); - const body = document.body; - - if (menuIcon && menuIconClose && menuOverlay) { - menuIcon.addEventListener('click', function () { - menuOverlay.classList.add('js-visible'); - body.classList.add('js-overflow-y-hidden'); - }); - - menuIconClose.addEventListener('click', function () { - menuOverlay.classList.remove('js-visible'); - body.classList.remove('js-overflow-y-hidden'); - }); - } -})(); diff --git a/templates/default/assets/js/harold-scroll-top.js b/templates/default/assets/js/harold-scroll-top.js deleted file mode 100644 index 1d9221e..0000000 --- a/templates/default/assets/js/harold-scroll-top.js +++ /dev/null @@ -1,25 +0,0 @@ -(function () { - const scrollTopButton = document.querySelector('[data-js-scroll-top]'); - - if (scrollTopButton) { - let ticking = false; - - document.addEventListener('scroll', function () { - if (!ticking) { - window.requestAnimationFrame(function () { - if (window.scrollY > 200) { - scrollTopButton.classList.add('js-visible'); - } else { - scrollTopButton.classList.remove('js-visible'); - } - ticking = false; - }); - ticking = true; - } - }); - - scrollTopButton.addEventListener('click', function () { - window.scroll({ top: 0, left: 0, behavior: 'smooth' }); - }); - } -})(); diff --git a/templates/default/assets/js/harold-search.js b/templates/default/assets/js/harold-search.js deleted file mode 100644 index 4be67a3..0000000 --- a/templates/default/assets/js/harold-search.js +++ /dev/null @@ -1,62 +0,0 @@ -(function () { - // Trigger search overlay events and logic - const rootDir = document.querySelector('html').dataset.hrldRoot; - const postsPath = - (rootDir && window.location.href.includes(rootDir) ? '/' + rootDir : '') + - '/posts/'; - const searchIcon = document.querySelector('[data-js-search]'); - const searchIconClose = document.querySelector('[data-js-search-close]'); - const searchOverlay = document.querySelector('[data-js-search-overlay]'); - const body = document.body; - const searchInput = document.querySelector('[data-js-search-input]'); - const searchResultsContainer = document.querySelector( - '[data-js-search-results]' - ); - - if ( - searchIcon && - searchInput && - searchIconClose && - searchOverlay && - searchResultsContainer - ) { - searchIcon.addEventListener('click', function () { - searchOverlay.classList.add('js-visible'); - body.classList.add('js-overflow-y-hidden'); - searchInput.focus(); - }); - - searchIconClose.addEventListener('click', function () { - searchInput.value = ''; - searchResultsContainer.innerHTML = ''; - searchOverlay.classList.remove('js-visible'); - body.classList.remove('js-overflow-y-hidden'); - }); - - searchInput.addEventListener('keyup', function () { - if (!this.value) { - searchResultsContainer.innerHTML = ''; - } - if (this.value && this.value.length >= 3 && harold && harold.search) { - searchResultsContainer.innerHTML = ''; - const results = harold.search(this.value); - if (!results || results.length === 0) { - const noResults = document.createElement('div'); - noResults.classList.add('search-overlay-results-item'); - noResults.innerText = 'No results...'; - searchResultsContainer.appendChild(noResults); - } else { - results.forEach(function (result) { - const resultItemContainer = document.createElement('div'); - resultItemContainer.classList.add('search-overlay-results-item'); - const resultItem = document.createElement('a'); - resultItem.innerText = result.title; - resultItem.setAttribute('href', postsPath + result.fileName); - resultItemContainer.appendChild(resultItem); - searchResultsContainer.appendChild(resultItemContainer); - }); - } - } - }); - } -})(); diff --git a/templates/default/assets/js/harold.js b/templates/default/assets/js/harold.js deleted file mode 100644 index 26da857..0000000 --- a/templates/default/assets/js/harold.js +++ /dev/null @@ -1,62 +0,0 @@ -const harold = (function () { - let searchIndex; - let postsJSON; - const rootDir = document.querySelector('html').dataset.hrldRoot; - const postsJsonDataPath = - (rootDir && window.location.href.includes(rootDir) ? '/' + rootDir : '') + - '/jsonData/posts.json'; - - // Loads data for search index - const fetchPostsJsonData = () => { - return fetch(postsJsonDataPath) - .then((response) => response.json()) - .then((data) => { - postsJSON = data; - return data; - }); - }; - - // Builds search index using json data and lunr library - const buildSearchIndexWithLunr = () => { - fetchPostsJsonData().then((data) => { - searchIndex = lunr(function () { - this.ref('fileName'); - this.field('title'); - this.field('body'); - this.field('excerpt'); - this.field('tags'); - data.forEach((doc) => { - this.add( - Object.assign(doc, { - tags: doc.tags.join(' '), - body: doc.body.replace(/(<([^>]+)>)/gi, ''), - }) - ); - }, this); - }); - }); - }; - - // Search function - const search = (phrase) => { - if (searchIndex) { - const searchResults = searchIndex.search(phrase); - const refs = searchResults.map((result) => result.ref); - return postsJSON.filter((item) => refs.includes(item.fileName)); - } else { - console.error('Search index is not ready!'); - } - }; - - // Initialize whole harold app javascript logic - const init = () => { - buildSearchIndexWithLunr(); - }; - - return { - init, - search, - }; -})(); - -harold.init(); diff --git a/templates/default/blog-layouts/blog-post.hbs b/templates/default/blog-layouts/blog-post.hbs deleted file mode 100644 index de6b774..0000000 --- a/templates/default/blog-layouts/blog-post.hbs +++ /dev/null @@ -1,27 +0,0 @@ -{{> head description=excerpt}} - -
- {{#if coverImage}} - - {{/if}} -
- -
-

{{title}}

-
-
- {{{content}}} -
- -
-
- -{{> footer}} diff --git a/templates/default/jsonData/posts.json b/templates/default/jsonData/posts.json deleted file mode 100644 index 74fcb27..0000000 --- a/templates/default/jsonData/posts.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - { - "fileName": "example1.html", - "title": "First post title", - "body": "

Lorem ipsum 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

\"alt

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Lorem ipsum 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

\"alt

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Code sample.

const test = 'test'; console.log(test); 

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

", - "excerpt": "Excerpt of the first example post.", - "publicationDate": "2021-04-15", - "tags": ["tag1", "art"], - "coverImage": "https://picsum.photos/id/0/1000/1000" - }, - { - "fileName": "example2.html", - "title": "Second post title", - "body": "

Lorem ipsum 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

\"alt

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Lorem ipsum 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

\"alt

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Code sample.

const test = 'test'; console.log(test); 

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

", - "excerpt": "Excerpt of the second example post.", - "publicationDate": "2021-04-16", - "tags": ["tag2", "coding"], - "coverImage": "https://picsum.photos/id/1008/1000/1000" - }, - { - "fileName": "example3.html", - "title": "Third post title", - "body": "

Lorem ipsum 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

\"alt

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Lorem ipsum 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

\"alt

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Code sample.

const test = 'test'; console.log(test); 

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

", - "excerpt": "Excerpt of the third example post.", - "publicationDate": "2021-04-18", - "tags": ["tag3", "coding"], - "coverImage": "https://picsum.photos/id/1011/1000/1000" - }, - { - "fileName": "example4.html", - "title": "Fourth post title", - "body": "

Lorem ipsum 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

\"alt

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Lorem ipsum 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

\"alt

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Code sample.

const test = 'test'; console.log(test); 

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

", - "excerpt": "Excerpt of the fourth example post. This one is longer.", - "publicationDate": "2021-04-18", - "tags": ["tag4", "coding"], - "coverImage": "https://picsum.photos/id/1060/1000/1000" - }, - { - "fileName": "example5.html", - "title": "Fifth post title", - "body": "

Lorem ipsum 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

\"alt

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Lorem ipsum 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

\"alt

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Code sample.

const test = 'test'; console.log(test); 

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

", - "excerpt": "Excerpt of the fifth example post.", - "publicationDate": "2021-04-18", - "tags": ["tag5", "art", "design"], - "coverImage": "https://picsum.photos/id/171/1000/1000" - }, - { - "fileName": "example6.html", - "title": "Sixth post title", - "body": "

Lorem ipsum 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

\"alt

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Lorem ipsum 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est.

Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit.

\"alt

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

Code sample.

const test = 'test'; console.log(test); 

Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus.

", - "excerpt": "Excerpt of the sixth example post.", - "publicationDate": "2021-04-18", - "tags": ["tag6", "art"], - "coverImage": "https://picsum.photos/id/202/1000/1000" - }, - { - "fileName": "harold-intro.html", - "title": "Harold is alive!", - "body": "

Harold is a static site and blog generator based on Handlebars templating system and Markdown. There are two types of presentation possibilities (Page and Post) and couple of helpers. Here are some of the features:

- Search system based on pre-generated JSON data, indexed with Lunr

- Configurable posts lists with Handlebars helper

{{postsList   perPageLimit=6,   byTagName='javascript',   currentPage=1,   className='hrld-post-list',   noImage=false,   noExcerpt=false,   noTags=false,   noDate=false,   noReadMoreButton=false,   readMoreButtonLabel='Read more',   dateFormat='yyyy-mm-dd', }} 

- Scss support

- Wide images:

\"alt

- Embeded media:

- Code highlighter:

const test = 'test'; console.log(test); 

- Markdown Front Matter support

--- layout: 'blog-post' title: 'Harold is alive!' excerpt: \"Excerpt of the featured example post.\" coverImage: 'https://picsum.photos/id/82/1500/600' tags:   - tag7   - featured publicationDate: '2021-04-18'  --- 

- Support for social media meta tags

In markdown files (for blog posts):

ogTitle: 'Harold is alive!' ogDescription: 'Harold is a static site generator based on Handlebars templating system and markdown' ogUrl: '' ogImage: '' twitterTitle: 'Harold is alive!' twitterDescription: 'Harold is a static site generator based on Handlebars templating system and markdown' twitterUrl: '' twitterImage: '' 

Using Handlebars head partial (for subpages):

{{> head   title=\"Homepage\"   description=\"Harold app default theme\"   ogTitle=\"Harold Homepage\"   ogDescription=\"Harold Description\"   ogImage=\"\"   twitterTitle=\"Harold Homepage\"   twitterDescription=\"Harold Description\"   twitterImage=\"\" }} 

These are just examples. It can be configured as you need.

- Handlebars support

- Date formatter helper

{{formatDate date=publicationDate format='dd mmmm yyyy'}} 

You can customize it as you want. This theme is just an example. It is simple to learn such tools looking into real code example.

", - "excerpt": "Excerpt of the featured example post.", - "publicationDate": "2021-04-18", - "tags": ["tag7", "featured"], - "coverImage": "https://picsum.photos/id/82/1500/600" - } -] diff --git a/templates/default/pages/about.hbs b/templates/default/pages/about.hbs deleted file mode 100644 index 18ae089..0000000 --- a/templates/default/pages/about.hbs +++ /dev/null @@ -1,54 +0,0 @@ -{{> head title="About" description="Harold app default theme" }} - -
-
-

About page example

-
-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac lacus non neque vehicula euismod. Vivamus rutrum - vitae velit vel fringilla. Aliquam ultricies id erat condimentum tempor. Nullam porta magna tristique, - sollicitudin urna sed, sollicitudin ante. Ut ante tellus, luctus sed sollicitudin eget, feugiat vitae quam. - Praesent porta pellentesque sapien a mattis. Curabitur sit amet ligula nibh. Sed quis molestie ligula. Vivamus ut - purus id ipsum placerat pharetra nec eget lectus. Pellentesque tempus tincidunt hendrerit. Morbi mollis leo ut - semper finibus. Aliquam erat volutpat. Nullam convallis ultrices facilisis. Duis scelerisque sit amet libero eu - malesuada. -

- -

- Vivamus rutrum feugiat urna, vitae volutpat nibh porta in. Vivamus velit orci, maximus tincidunt mi id, efficitur - tempor mi. Nunc laoreet, dui quis molestie iaculis, sem augue volutpat enim, vitae fringilla ante odio ac eros. - Nullam sit amet erat sit amet lectus gravida porta. Pellentesque habitant morbi tristique senectus et netus et - malesuada fames ac turpis egestas. Curabitur bibendum dui vel accumsan lobortis. Nunc feugiat, ex rutrum posuere - eleifend, elit sem molestie sapien, in facilisis leo mauris et lacus. Donec sit amet placerat tortor, vel - tincidunt urna. Morbi et justo dui. Maecenas sodales sem lectus. Curabitur ut quam lorem. -

- -

- Nulla aliquam leo non justo aliquam viverra. Vivamus eu ultrices felis, ac pellentesque elit. Maecenas blandit ac - ex vel faucibus. Cras rutrum ornare velit, scelerisque pharetra est. Nulla vel tincidunt turpis. Donec in auctor - ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. -

- -

- In nunc nisi, dapibus at iaculis eget, vestibulum accumsan purus. Suspendisse tincidunt rhoncus gravida. - Suspendisse laoreet convallis massa ullamcorper ultrices. Curabitur at ante quis ante euismod porttitor sit amet - et magna. Donec at lacus metus. Nullam ut lacinia lorem. Praesent feugiat nunc nisi. Proin elementum ultricies - odio, ac ultricies urna imperdiet ac. Maecenas vitae porttitor purus, et suscipit ante. Praesent tincidunt lorem - mollis lectus eleifend tempus. In lacinia, eros a faucibus mollis, mi turpis sollicitudin felis, quis luctus felis - mi sed magna. Sed pharetra sapien a mi fermentum blandit. Quisque lacinia, ligula nec maximus eleifend, orci - ligula consequat orci, nec lacinia odio justo quis risus. Aliquam at eros quis lacus volutpat fermentum id quis - ex. -

- -

- Nam ligula tortor, finibus non urna at, dictum porttitor velit. Orci varius natoque penatibus et magnis dis - parturient montes, nascetur ridiculus mus. Mauris condimentum tincidunt placerat. Maecenas nec venenatis erat. Nam - lacus metus, fermentum nec felis in, bibendum vestibulum arcu. Sed sollicitudin nisi a ultrices imperdiet. - Vestibulum in rutrum risus. Integer sed turpis velit. Aenean imperdiet hendrerit nisl, et ultricies neque - facilisis non. Praesent imperdiet ex ornare mi porta hendrerit. -

-
-
-
- -{{> footer}} \ No newline at end of file diff --git a/templates/default/pages/all-posts-list.hbs b/templates/default/pages/all-posts-list.hbs deleted file mode 100644 index 2aa7679..0000000 --- a/templates/default/pages/all-posts-list.hbs +++ /dev/null @@ -1,13 +0,0 @@ -{{> head title="All posts" description="Harold app default theme" }} - -
- {{postsList - noImage=true - noExcerpt=true - noReadMoreButton=true - className="post-list-items" - dateFormat='dd mmmm yyyy' - }} -
- -{{> footer}} \ No newline at end of file diff --git a/templates/default/pages/author.hbs b/templates/default/pages/author.hbs deleted file mode 100644 index a1cd48f..0000000 --- a/templates/default/pages/author.hbs +++ /dev/null @@ -1,54 +0,0 @@ -{{> head title="Author" description="Harold app default theme" }} - -
-
-

Author page example

-
-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac lacus non neque vehicula euismod. Vivamus rutrum - vitae velit vel fringilla. Aliquam ultricies id erat condimentum tempor. Nullam porta magna tristique, - sollicitudin urna sed, sollicitudin ante. Ut ante tellus, luctus sed sollicitudin eget, feugiat vitae quam. - Praesent porta pellentesque sapien a mattis. Curabitur sit amet ligula nibh. Sed quis molestie ligula. Vivamus ut - purus id ipsum placerat pharetra nec eget lectus. Pellentesque tempus tincidunt hendrerit. Morbi mollis leo ut - semper finibus. Aliquam erat volutpat. Nullam convallis ultrices facilisis. Duis scelerisque sit amet libero eu - malesuada. -

- -

- Vivamus rutrum feugiat urna, vitae volutpat nibh porta in. Vivamus velit orci, maximus tincidunt mi id, efficitur - tempor mi. Nunc laoreet, dui quis molestie iaculis, sem augue volutpat enim, vitae fringilla ante odio ac eros. - Nullam sit amet erat sit amet lectus gravida porta. Pellentesque habitant morbi tristique senectus et netus et - malesuada fames ac turpis egestas. Curabitur bibendum dui vel accumsan lobortis. Nunc feugiat, ex rutrum posuere - eleifend, elit sem molestie sapien, in facilisis leo mauris et lacus. Donec sit amet placerat tortor, vel - tincidunt urna. Morbi et justo dui. Maecenas sodales sem lectus. Curabitur ut quam lorem. -

- -

- Nulla aliquam leo non justo aliquam viverra. Vivamus eu ultrices felis, ac pellentesque elit. Maecenas blandit ac - ex vel faucibus. Cras rutrum ornare velit, scelerisque pharetra est. Nulla vel tincidunt turpis. Donec in auctor - ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. -

- -

- In nunc nisi, dapibus at iaculis eget, vestibulum accumsan purus. Suspendisse tincidunt rhoncus gravida. - Suspendisse laoreet convallis massa ullamcorper ultrices. Curabitur at ante quis ante euismod porttitor sit amet - et magna. Donec at lacus metus. Nullam ut lacinia lorem. Praesent feugiat nunc nisi. Proin elementum ultricies - odio, ac ultricies urna imperdiet ac. Maecenas vitae porttitor purus, et suscipit ante. Praesent tincidunt lorem - mollis lectus eleifend tempus. In lacinia, eros a faucibus mollis, mi turpis sollicitudin felis, quis luctus felis - mi sed magna. Sed pharetra sapien a mi fermentum blandit. Quisque lacinia, ligula nec maximus eleifend, orci - ligula consequat orci, nec lacinia odio justo quis risus. Aliquam at eros quis lacus volutpat fermentum id quis - ex. -

- -

- Nam ligula tortor, finibus non urna at, dictum porttitor velit. Orci varius natoque penatibus et magnis dis - parturient montes, nascetur ridiculus mus. Mauris condimentum tincidunt placerat. Maecenas nec venenatis erat. Nam - lacus metus, fermentum nec felis in, bibendum vestibulum arcu. Sed sollicitudin nisi a ultrices imperdiet. - Vestibulum in rutrum risus. Integer sed turpis velit. Aenean imperdiet hendrerit nisl, et ultricies neque - facilisis non. Praesent imperdiet ex ornare mi porta hendrerit. -

-
-
-
- -{{> footer}} \ No newline at end of file diff --git a/templates/default/pages/index.hbs b/templates/default/pages/index.hbs deleted file mode 100644 index 44c21cd..0000000 --- a/templates/default/pages/index.hbs +++ /dev/null @@ -1,58 +0,0 @@ -{{> head - title="Homepage" - description="Harold app default theme" - ogTitle="Harold Homepage" - ogDescription="Harold Description" - ogImage="" - twitterTitle="Harold Homepage" - twitterDescription="Harold Description" - twitterImage="" -}} - - - -
-
-

Coding

- {{postsList - perPageLimit=3 - currentPage=1 - className="post-list-items" - dateFormat="dd mmmm yyyy" - byTagName="coding" - readMoreButtonLabel="⇢" - }} -
-
- -
-
-

Art and Design

- {{postsList - perPageLimit=3 - currentPage=1 - className="post-list-items" - dateFormat="dd mmmm yyyy" - byTagName="art" - readMoreButtonLabel="⇢" - }} -
-
- -
- See all posts -
- -{{> footer}} diff --git a/templates/default/pages/projects.hbs b/templates/default/pages/projects.hbs deleted file mode 100644 index b08aed7..0000000 --- a/templates/default/pages/projects.hbs +++ /dev/null @@ -1,54 +0,0 @@ -{{> head title="Projects" description="Harold app default theme" }} - -
-
-

Projects page example

-
-

- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ac lacus non neque vehicula euismod. Vivamus rutrum - vitae velit vel fringilla. Aliquam ultricies id erat condimentum tempor. Nullam porta magna tristique, - sollicitudin urna sed, sollicitudin ante. Ut ante tellus, luctus sed sollicitudin eget, feugiat vitae quam. - Praesent porta pellentesque sapien a mattis. Curabitur sit amet ligula nibh. Sed quis molestie ligula. Vivamus ut - purus id ipsum placerat pharetra nec eget lectus. Pellentesque tempus tincidunt hendrerit. Morbi mollis leo ut - semper finibus. Aliquam erat volutpat. Nullam convallis ultrices facilisis. Duis scelerisque sit amet libero eu - malesuada. -

- -

- Vivamus rutrum feugiat urna, vitae volutpat nibh porta in. Vivamus velit orci, maximus tincidunt mi id, efficitur - tempor mi. Nunc laoreet, dui quis molestie iaculis, sem augue volutpat enim, vitae fringilla ante odio ac eros. - Nullam sit amet erat sit amet lectus gravida porta. Pellentesque habitant morbi tristique senectus et netus et - malesuada fames ac turpis egestas. Curabitur bibendum dui vel accumsan lobortis. Nunc feugiat, ex rutrum posuere - eleifend, elit sem molestie sapien, in facilisis leo mauris et lacus. Donec sit amet placerat tortor, vel - tincidunt urna. Morbi et justo dui. Maecenas sodales sem lectus. Curabitur ut quam lorem. -

- -

- Nulla aliquam leo non justo aliquam viverra. Vivamus eu ultrices felis, ac pellentesque elit. Maecenas blandit ac - ex vel faucibus. Cras rutrum ornare velit, scelerisque pharetra est. Nulla vel tincidunt turpis. Donec in auctor - ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. -

- -

- In nunc nisi, dapibus at iaculis eget, vestibulum accumsan purus. Suspendisse tincidunt rhoncus gravida. - Suspendisse laoreet convallis massa ullamcorper ultrices. Curabitur at ante quis ante euismod porttitor sit amet - et magna. Donec at lacus metus. Nullam ut lacinia lorem. Praesent feugiat nunc nisi. Proin elementum ultricies - odio, ac ultricies urna imperdiet ac. Maecenas vitae porttitor purus, et suscipit ante. Praesent tincidunt lorem - mollis lectus eleifend tempus. In lacinia, eros a faucibus mollis, mi turpis sollicitudin felis, quis luctus felis - mi sed magna. Sed pharetra sapien a mi fermentum blandit. Quisque lacinia, ligula nec maximus eleifend, orci - ligula consequat orci, nec lacinia odio justo quis risus. Aliquam at eros quis lacus volutpat fermentum id quis - ex. -

- -

- Nam ligula tortor, finibus non urna at, dictum porttitor velit. Orci varius natoque penatibus et magnis dis - parturient montes, nascetur ridiculus mus. Mauris condimentum tincidunt placerat. Maecenas nec venenatis erat. Nam - lacus metus, fermentum nec felis in, bibendum vestibulum arcu. Sed sollicitudin nisi a ultrices imperdiet. - Vestibulum in rutrum risus. Integer sed turpis velit. Aenean imperdiet hendrerit nisl, et ultricies neque - facilisis non. Praesent imperdiet ex ornare mi porta hendrerit. -

-
-
-
- -{{> footer}} \ No newline at end of file diff --git a/templates/default/partials/footer.hbs b/templates/default/partials/footer.hbs deleted file mode 100644 index 021efd3..0000000 --- a/templates/default/partials/footer.hbs +++ /dev/null @@ -1,18 +0,0 @@ - - - {{> search-overlay}} - {{> main-menu-overlay}} - {{> go-top-btn}} - - - - - - - - - - - diff --git a/templates/default/partials/go-top-btn.hbs b/templates/default/partials/go-top-btn.hbs deleted file mode 100644 index a739895..0000000 --- a/templates/default/partials/go-top-btn.hbs +++ /dev/null @@ -1,3 +0,0 @@ -
- -
\ No newline at end of file diff --git a/templates/default/partials/head.hbs b/templates/default/partials/head.hbs deleted file mode 100644 index 8bf21c0..0000000 --- a/templates/default/partials/head.hbs +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - {{title}} - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
-
-
diff --git a/templates/default/partials/main-menu-overlay.hbs b/templates/default/partials/main-menu-overlay.hbs deleted file mode 100644 index 4782590..0000000 --- a/templates/default/partials/main-menu-overlay.hbs +++ /dev/null @@ -1,24 +0,0 @@ - diff --git a/templates/default/partials/search-overlay.hbs b/templates/default/partials/search-overlay.hbs deleted file mode 100644 index af1d30b..0000000 --- a/templates/default/partials/search-overlay.hbs +++ /dev/null @@ -1,19 +0,0 @@ -
-
-
-
- -
-
-
-
\ No newline at end of file diff --git a/templates/default/posts/example1.md b/templates/default/posts/example1.md deleted file mode 100644 index cf1e8a9..0000000 --- a/templates/default/posts/example1.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: 'blog-post' -title: 'First post title' -excerpt: "Excerpt of the first example post." -coverImage: 'https://picsum.photos/id/0/1000/1000' -tags: - - tag1 - - art -publicationDate: '2021-04-15' ---- - -## Lorem ipsum 1 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -
alt text
- -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -## Lorem ipsum 2 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -![alt text](https://picsum.photos/300/200?style=centered) - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -
- -
- -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Code sample. -```javascript -const test = 'test'; -console.log(test); -``` - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. \ No newline at end of file diff --git a/templates/default/posts/example2.md b/templates/default/posts/example2.md deleted file mode 100644 index d911aa3..0000000 --- a/templates/default/posts/example2.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: 'blog-post' -title: 'Second post title' -excerpt: "Excerpt of the second example post." -coverImage: 'https://picsum.photos/id/1008/1000/1000' -tags: - - tag2 - - coding -publicationDate: '2021-04-16' ---- - -## Lorem ipsum 1 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -
alt text
- -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -## Lorem ipsum 2 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -![alt text](https://picsum.photos/300/200?style=centered) - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -
- -
- -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Code sample. -```javascript -const test = 'test'; -console.log(test); -``` - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. \ No newline at end of file diff --git a/templates/default/posts/example3.md b/templates/default/posts/example3.md deleted file mode 100644 index cc5d260..0000000 --- a/templates/default/posts/example3.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: 'blog-post' -title: 'Third post title' -excerpt: "Excerpt of the third example post." -coverImage: 'https://picsum.photos/id/1011/1000/1000' -tags: - - tag3 - - coding -publicationDate: '2021-04-18' ---- - -## Lorem ipsum 1 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -
alt text
- -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -## Lorem ipsum 2 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -![alt text](https://picsum.photos/300/200?style=centered) - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -
- -
- -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Code sample. -```javascript -const test = 'test'; -console.log(test); -``` - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. \ No newline at end of file diff --git a/templates/default/posts/example4.md b/templates/default/posts/example4.md deleted file mode 100644 index 3bc5fd9..0000000 --- a/templates/default/posts/example4.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: 'blog-post' -title: 'Fourth post title' -excerpt: "Excerpt of the fourth example post. This one is longer." -coverImage: 'https://picsum.photos/id/1060/1000/1000' -tags: - - tag4 - - coding -publicationDate: '2021-04-18' ---- - -## Lorem ipsum 1 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -
alt text
- -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -## Lorem ipsum 2 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -![alt text](https://picsum.photos/300/200?style=centered) - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -
- -
- -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Code sample. -```javascript -const test = 'test'; -console.log(test); -``` - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. \ No newline at end of file diff --git a/templates/default/posts/example5.md b/templates/default/posts/example5.md deleted file mode 100644 index 0d477c7..0000000 --- a/templates/default/posts/example5.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: 'blog-post' -title: 'Fifth post title' -excerpt: "Excerpt of the fifth example post." -coverImage: 'https://picsum.photos/id/171/1000/1000' -tags: - - tag5 - - art - - design -publicationDate: '2021-04-18' ---- - -## Lorem ipsum 1 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -
alt text
- -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -## Lorem ipsum 2 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -![alt text](https://picsum.photos/300/200?style=centered) - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -
- -
- -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Code sample. -```javascript -const test = 'test'; -console.log(test); -``` - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. \ No newline at end of file diff --git a/templates/default/posts/example6.md b/templates/default/posts/example6.md deleted file mode 100644 index b8b8747..0000000 --- a/templates/default/posts/example6.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -layout: 'blog-post' -title: 'Sixth post title' -excerpt: "Excerpt of the sixth example post." -coverImage: 'https://picsum.photos/id/202/1000/1000' -tags: - - tag6 - - art -publicationDate: '2021-04-18' ---- - -## Lorem ipsum 1 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -
alt text
- -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -## Lorem ipsum 2 - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam laoreet, nunc non feugiat egestas, velit sem eleifend augue, non posuere quam risus a neque. Sed sed leo turpis. Curabitur molestie nulla vitae quam porta, eget imperdiet velit gravida. In non ipsum rutrum, fermentum nibh nec, elementum sapien. Nullam eu imperdiet lacus. Vivamus consequat tellus sed nisl tempor viverra. Fusce vulputate vel diam a suscipit. Praesent vel lectus metus. In condimentum iaculis lorem ut condimentum. Vestibulum ullamcorper euismod neque vel ullamcorper. Donec auctor nisl vel urna malesuada, sit amet tempor lacus blandit. Sed eu enim felis. Maecenas sagittis justo at eleifend sagittis. Vestibulum libero magna, imperdiet id eleifend tristique, condimentum eget est. - -Ut tempor, arcu vitae lacinia iaculis, lacus neque pellentesque arcu, non blandit eros sem non nisi. Donec placerat nisi sed rhoncus mattis. Donec eu vulputate dolor. Pellentesque eget nisl faucibus, lobortis ex nec, porta arcu. Sed eu arcu sed mauris scelerisque pellentesque. Donec velit lectus, tempor eu lacus quis, tincidunt tristique libero. Praesent sit amet orci quis velit tempor volutpat gravida non dui. Morbi malesuada hendrerit nibh, vel accumsan enim volutpat nec. Morbi a justo leo. Fusce tristique quam ac pharetra commodo. Pellentesque imperdiet luctus magna sed hendrerit. - -![alt text](https://picsum.photos/300/200?style=centered) - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -
- -
- -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. - -Code sample. -```javascript -const test = 'test'; -console.log(test); -``` - -Duis ac nunc quis lacus maximus faucibus at nec turpis. Ut ac pulvinar ex. Maecenas dignissim tellus ut facilisis tempus. Vivamus sed orci sed mi imperdiet efficitur. Ut efficitur magna sed enim ornare sagittis. Ut lacus ligula, suscipit vitae nisi at, commodo lobortis massa. Aliquam venenatis dolor a diam dapibus, at mattis velit auctor. Vestibulum laoreet sodales fringilla. Pellentesque ornare mattis turpis, in finibus lacus posuere sit amet. Cras tempor nibh ut semper fringilla. Morbi tristique lacus id dapibus mattis. Phasellus in commodo odio. In at rhoncus purus, eget elementum magna. Sed sit amet interdum metus. \ No newline at end of file diff --git a/templates/default/posts/harold-intro.md b/templates/default/posts/harold-intro.md deleted file mode 100644 index 7ff1a81..0000000 --- a/templates/default/posts/harold-intro.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -layout: 'blog-post' -title: 'Harold is alive!' -excerpt: "Excerpt of the featured example post." -coverImage: 'https://picsum.photos/id/82/1500/600' -tags: - - tag7 - - featured -publicationDate: '2021-04-18' -ogTitle: 'Harold is alive!' -ogDescription: 'Harold is a static site generator based on Handlebars templating system and markdown' -ogUrl: '' -ogImage: '' -twitterTitle: 'Harold is alive!' -twitterDescription: 'Harold is a static site generator based on Handlebars templating system and markdown' -twitterUrl: '' -twitterImage: '' ---- - -Harold is a static site and blog generator based on Handlebars templating system and Markdown. -There are two types of presentation possibilities (Page and Post) and couple of helpers. -Here are some of the features: - -### - Search system based on pre-generated JSON data, indexed with Lunr - -### - Configurable posts lists with Handlebars helper - -``` -{{postsList - perPageLimit=6, - byTagName='javascript', - currentPage=1, - className='hrld-post-list', - noImage=false, - noExcerpt=false, - noTags=false, - noDate=false, - noReadMoreButton=false, - readMoreButtonLabel='Read more', - dateFormat='yyyy-mm-dd', -}} -``` - -### - Scss support - -### - Wide images: - -
alt text
- -### - Embeded media: - -
- -
- -### - Code highlighter: - -```javascript -const test = 'test'; -console.log(test); -``` - -### - Markdown Front Matter support - -```markdown ---- -layout: 'blog-post' -title: 'Harold is alive!' -excerpt: "Excerpt of the featured example post." -coverImage: 'https://picsum.photos/id/82/1500/600' -tags: - - tag7 - - featured -publicationDate: '2021-04-18' - ---- -``` - -### - Support for social media meta tags - -In markdown files (for blog posts): - -```markdown -ogTitle: 'Harold is alive!' -ogDescription: 'Harold is a static site generator based on Handlebars templating system and markdown' -ogUrl: '' -ogImage: '' -twitterTitle: 'Harold is alive!' -twitterDescription: 'Harold is a static site generator based on Handlebars templating system and markdown' -twitterUrl: '' -twitterImage: '' -``` - -Using Handlebars head partial (for subpages): - -``` -{{> head - title="Homepage" - description="Harold app default theme" - ogTitle="Harold Homepage" - ogDescription="Harold Description" - ogImage="" - twitterTitle="Harold Homepage" - twitterDescription="Harold Description" - twitterImage="" -}} -``` - -These are just examples. It can be configured as you need. - -### - Handlebars support - -### - Date formatter helper - -``` -{{formatDate date=publicationDate format='dd mmmm yyyy'}} -``` - -You can customize it as you want. This theme is just an example. It is simple to learn such tools looking into real code example. diff --git a/templates/default/styles/_basic.scss b/templates/default/styles/_basic.scss deleted file mode 100644 index 422f68a..0000000 --- a/templates/default/styles/_basic.scss +++ /dev/null @@ -1,208 +0,0 @@ -// check css.gg icons https://css.gg -@import url('https://unpkg.com/css.gg/icons/css/menu.css'); -@import url('https://unpkg.com/css.gg/icons/css/search.css'); -@import url('https://unpkg.com/css.gg/icons/css/close.css'); -@import url('https://unpkg.com/css.gg/icons/css/twitter.css'); -@import url('https://unpkg.com/css.gg/icons/css/instagram.css'); -@import url('https://unpkg.com/css.gg/icons/css/facebook.css'); -@import url('https://css.gg/chevron-double-up.css'); - -* { - box-sizing: border-box; -} - -body { - font-family: $font-family-main; - font-weight: 300; - margin: 0; - padding: 150px 0 0; - min-height: 100vh; - overflow-x: hidden; - line-height: 30px; - color: $color-main-dark; - background-color: $color-main-light; -} - -article, aside, footer, header, nav, section { - display: block; - - h1 { - font-size: 2em; - } -} - -pre { - font-size: 16px; - - code.hljs { - border-radius: 6px; - padding: 20px 30px; - } -} - -.main-header { - position: fixed; - z-index: 1; - top: 0; - left: 0; - right: 0; - background-color: rgba($color-main-light, 0.9); - backdrop-filter: saturate(180%) blur(10px); - backface-visibility: hidden; - box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px; -} - -.main-header-container { - height: 100px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.main-menu-list { - display: flex; - list-style-type: none; - margin: 0; - padding: 0; -} - -.main-menu-list-item { - margin-left: 10px; - margin-right: 10px; - cursor: pointer; - display: flex; - align-items: center; - user-select: none; -} - -.main-logo { - font-size: 36px; - font-weight: 900; - display: flex; - align-items: flex-end; - - a { - text-decoration: none; - color: inherit; - } -} - -.main-logo-dot { - width: 15px; - height: 15px; - background-color: $color-main-contrast; - margin-right: 10px; - margin-bottom: 2px; -} - -.container { - max-width: 1200px; - margin: 0 auto; - width: 100%; - padding: 0 30px; -} - -.main-footer { - padding: 60px 30px 30px; - text-align: center; - font-size: 13px; - color: rgba($color-main-dark, .4); - height: $size-footer-height; - - a { - color: $color-main-contrast; - } -} - -.page-container, -.post-container { - min-height: calc(100vh - #{$size-header-height} - #{$size-footer-height}); -} - -.button { - color: $color-main-dark; - display: inline-block; - transition: background-color .2s; - text-decoration: none; - padding: 5px 20px; - border-radius: 3px; - text-align: center; - font-family: $font-family-main; - font-weight: 400; - font-size: 14px; - background-color: $color-main-dark; - color: $color-main-light; - border: 0; - - &:hover { - background-color: lighten($color-main-dark, 5%); - } -} - -.home-see-all-posts { - padding: 20px; - display: flex; - justify-content: center; -} - -.js-overflow-y-hidden { - overflow-y: hidden; - padding-right: 15px; -} - -// menu, search etc. -.full-screen-overlay { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: rgba($color-main-dark, 0.95); - color: $color-main-light; - opacity: 0; - visibility: hidden; - z-index: 2; - - &.js-visible { - opacity: 1; - visibility: visible; - } -} - -.full-screen-overlay-contents { - overflow-y: auto; - height: 100%; -} - -.full-screen-overlay-close-btn { - position: absolute; - top: 40px; - right: 55px; - cursor: pointer; - - .gg-close { - transform: scale(2); - } -} - -.go-to-top-button { - background: $color-main-dark; - color: $color-main-light; - position: fixed; - bottom: -45px; - right: 15px; - width: 50px; - height: 40px; - line-height: 2.5rem; - text-align: center; - cursor: pointer; - transition: all .4s; - border-radius: 3px 3px 0 0; - display: flex; - align-items: center; - justify-content: center; - - &.js-visible { - bottom: 0; - } -} diff --git a/templates/default/styles/_homepage.scss b/templates/default/styles/_homepage.scss deleted file mode 100644 index 79bec8b..0000000 --- a/templates/default/styles/_homepage.scss +++ /dev/null @@ -1,129 +0,0 @@ -.homepage-featured-post { - width: 100%; - margin-bottom: 80px; -} - -.homepage-featured-post--article { - position: relative; - height: 400px; - width: 100%; - overflow: hidden; - padding: 30px; - border-radius: 10px; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; -} - -.homepage-featured-post--image { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - display: flex; - align-items: center; - justify-content: center; - z-index: -1; - - &::after { - content: " "; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - background-color: rgba($color-main-dark, 0.4); - } -} - -.homepage-featured-post--title { - text-align: center; - font-size: 70px; - color: $color-main-light; - font-weight: 900; - line-height: 1.3; - text-shadow: 1px 1px 0px $color-main-dark; - text-transform: uppercase; - - a { - color: inherit; - text-decoration: none; - } - - @media screen and (max-width: 1000px) { - font-size: 60px; - } - - @media screen and (max-width: 700px) { - font-size: 50px; - } -} - -.homepage-featured-post--button { - display: inline-block; - padding: 8px 25px; - font-size: 16px; - font-weight: 600; - background-color: $color-main-contrast; - color: $color-main-light; - border-radius: 6px; - text-decoration: none; - margin-top: 15px; - text-shadow: 1px 1px 0px darken($color-main-contrast, 20%); - transition: background-color .3s; - - &:hover { - background-color: darken($color-main-contrast, 15%); - } -} - -.homepage-header { - font-size: 60px; - padding: 60px 0; - line-height: 1; - - &::after { - content: " "; - display: block; - width: 150px; - height: 6px; - background-color: $color-main-dark; - margin-top: 25px; - } - - @media screen and (max-width: 1000px) { - font-size: 50px; - padding: 50px 0; - - &::after { - width: 125px; - margin-top: 20px; - } - } - - @media screen and (max-width: 700px) { - font-size: 40px; - padding: 40px 0; - - &::after { - width: 100px; - margin-top: 15px; - } - } -} - -.homepage-section { - margin-bottom: 20px; - - &.homepage-section-bg { - padding: 10px 0 60px; - background-color: $color-main-contrast2; - margin-top: 60px; - } - - .homepage-header { - padding-top: 40px; - } -} diff --git a/templates/default/styles/_main-menu.scss b/templates/default/styles/_main-menu.scss deleted file mode 100644 index ab219d0..0000000 --- a/templates/default/styles/_main-menu.scss +++ /dev/null @@ -1,68 +0,0 @@ -.main-menu-overlay { - @extend .full-screen-overlay; -} - -.main-menu-overlay-contents { - @extend .full-screen-overlay-contents; - display: flex; - justify-content: center; - align-items: center; -} - -.main-menu-overlay-close-btn { - @extend .full-screen-overlay-close-btn; -} - -.main-menu-overlay-list { - text-align: center; - margin: 0; - padding: 0; -} - -.main-menu-overlay-list-item { - color: $color-main-light; - padding: 5px 0; - margin-bottom: 40px; - font-size: 60px; - font-family: $font-family-main; - font-weight: 900; - list-style-type: none; - - a { - color: $color-main-light; - text-decoration: none; - - &:hover { - text-decoration: underline; - } - } -} - -.main-menu-overlay-social-separator { - height: 5px; - width: 100px; - margin: 0 auto; - display: block; - background-color: $color-main-light; - margin-top: 70px; - margin-bottom: 50px; -} - -.main-menu-overlay-social { - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - padding-top: 10px; - - a { - color: $color-main-light; - text-decoration: none; - display: inline-block; - margin: 0 20px; - } - - i { - --ggs: 1.3; - } -} diff --git a/templates/default/styles/_page.scss b/templates/default/styles/_page.scss deleted file mode 100644 index 4eb5092..0000000 --- a/templates/default/styles/_page.scss +++ /dev/null @@ -1,17 +0,0 @@ -.page-content { - max-width: 760px; - width: 100%; - margin: 40px auto 10px; - font-size: 18px; - - img { - max-width: 100%; - } - } - -.page-content-title { - font-weight: 900; - font-size: 2.8rem; - line-height: 45px; - margin: 0 0 50px; -} diff --git a/templates/default/styles/_post.scss b/templates/default/styles/_post.scss deleted file mode 100644 index e517bf4..0000000 --- a/templates/default/styles/_post.scss +++ /dev/null @@ -1,156 +0,0 @@ -.post-content { - max-width: 760px; - width: 100%; - margin: 40px auto 10px; - font-size: 18px; - - img { - max-width: 100%; - } -} - -.post-content-date { - font-weight: 300; - font-size: 14px; -} - -.post-content-title { - font-weight: 900; - font-size: 2.8rem; - line-height: 45px; - margin: 0 0 50px; -} - -.post-cover-image { - text-align: center; - - img { - max-width: 100%; - } -} - -.post-content-tags { - display: flex; - align-items: center; - border-top: 1px solid rgba($color-main-dark, .15); - margin-top: 20px; - padding-top: 20px; -} - -.post-content-tag { - border: 1px solid rgba($color-main-dark, .15); - padding: 0 15px; - font-size: 13px; - font-weight: 300; - margin-right: 10px; - color: rgba($color-main-dark, .8); - border-radius: 3px; -} - -.post-list-items { - display: flex; - flex-wrap: wrap; - justify-items: space-between; - width: 100%; -} - -.all-posts-page { - .post-list-items--article { - padding: 20px; - } -} - -.post-list-items--article { - position: relative; - padding: 0 0 62px; - box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px; - margin: 10px; - width: calc(33% - 20px); - background-color: $color-main-light; - border-radius: 5px; - - @media (max-width: 1200px) { - width: calc(50% - 20px); - } - - @media (max-width: 800px) { - width: calc(100% - 20px); - } - - img { - max-width: 100%; - } -} - -.post-list-items--image { - margin-bottom: 10px; - max-height: 200px; - overflow: hidden; - display: flex; - align-items: center; - margin-bottom: 25px; - border-top-left-radius: 5px; - border-top-right-radius: 5px; -} - -.post-list-items--title { - font-size: 30px; - font-weight: 900; - font-family: $font-family-main; - padding: 0 25px; - - a { - text-decoration: none; - color: $color-main-dark; - } -} - -.post-list-items--date { - font-size: 13px; - padding: 0 25px; -} - -.post-list-items--tags { - color: $color-main-contrast; - font-size: 13px; - font-weight: 300; - font-family: $font-family-main; - padding: 0 25px; -} - -.post-list-items--excerpt { - margin-top: 10px; - line-height: 1.5; - font-size: 14px; - padding: 0 25px; -} - -@keyframes postListButtonAnim { - from { - right: 0; - } - - to { - right: 5px; - } -} - -.post-list-items--button { - @extend .button; - position: absolute; - bottom: 5px; - right: 0; - font-size: 25px; - border-radius: 0; - border-bottom-right-radius: 5px; - background-color: transparent; - color: $color-main-dark; - - &:hover { - background-color: transparent; - animation-duration: 0.5s; - animation-name: postListButtonAnim; - animation-iteration-count: infinite; - animation-direction: alternate; - } -} diff --git a/templates/default/styles/_search.scss b/templates/default/styles/_search.scss deleted file mode 100644 index 0686e80..0000000 --- a/templates/default/styles/_search.scss +++ /dev/null @@ -1,74 +0,0 @@ -.search-overlay { - @extend .full-screen-overlay; -} - -.search-overlay-contents { - @extend .full-screen-overlay-contents; -} - -.search-overlay-close-btn { - @extend .full-screen-overlay-close-btn; -} - -.search-overlay-input-wrapper { - margin: 20vh auto 5vh; - max-width: 60%; - width: 100%; - - @media screen and (max-width: 1200px) { - max-width: 90%; - } -} - -.search-overlay-input { - width: 100%; - background-color: transparent; - color: $color-main-light; - border: 0; - font-size: 60px; - font-family: $font-family-main; - font-weight: 900; - padding: 20px 0 10px; - line-height: 1; - outline: none; - border-bottom: 5px solid $color-main-light; - - &::placeholder { - color: $color-main-light; - } -} - -.search-overlay-results { - font-family: $font-family-main; - font-size: 20px; - font-weight: 900; - max-width: 60%; - width: 100%; - margin: 0 auto; - - @media screen and (max-width: 1200px) { - max-width: 90%; - } -} - -.search-overlay-results-item { - display: flex; - align-items: center; - color: $color-main-light; - padding: 5px 0; - - a { - color: $color-main-light; - text-decoration: none; - - &:hover { - text-decoration: underline; - } - } - - &:before { - content: "\25CF"; - padding-right: 15px; - margin-top: -2px; - } -} diff --git a/templates/default/styles/_utils.scss b/templates/default/styles/_utils.scss deleted file mode 100644 index ffad280..0000000 --- a/templates/default/styles/_utils.scss +++ /dev/null @@ -1,39 +0,0 @@ -// Center small image in markdown without html -// example in markdown: ![alt text](![alt text](/assets/image.png?style=centered) -img[src$="centered"] { - display:block; - margin: 0 auto; -} - -// Content wider than post container - html has to be used in markdown -// Example:
alt text
-.wide-content { - position: relative; - width: 85vw; - min-width: 100%; - margin: 30px calc(50% - 50vw); - transform: translateX(calc(50vw - 50%)); - text-align: center; -} - - -// Responsive container for video, codepen etc. iframes -.embeded-media-container { - height: 0; - margin-bottom: 0.88889rem; - overflow: hidden; - padding-bottom: 67.5%; - padding-top: 1.38889rem; - position: relative; } - .embeded-media-container.vimeo { - padding-top: 0; } - .embeded-media-container iframe, - .embeded-media-container object, - .embeded-media-container embed, - .embeded-media-container video { - height: 100%; - position: absolute; - top: 0; - width: 100%; - left: 0; - border: 0; } \ No newline at end of file diff --git a/templates/default/styles/_variables.scss b/templates/default/styles/_variables.scss deleted file mode 100644 index e274067..0000000 --- a/templates/default/styles/_variables.scss +++ /dev/null @@ -1,9 +0,0 @@ -$color-main-dark: #383838; -$color-main-light: #fff; -$color-main-contrast: #ea4c89; -$color-main-contrast2: #F6F9FB; - -$font-family-main: 'Poppins', sans-serif; - -$size-header-height: 100px; -$size-footer-height: 120px; diff --git a/templates/default/styles/main.scss b/templates/default/styles/main.scss deleted file mode 100644 index cdb888f..0000000 --- a/templates/default/styles/main.scss +++ /dev/null @@ -1,8 +0,0 @@ -@import 'variables'; -@import 'utils'; -@import 'basic'; -@import 'search'; -@import 'main-menu'; -@import 'post'; -@import 'page'; -@import 'homepage';