From 2c6cbf094f20e7c04c4ce108b5fb4b5a38fbfb1e Mon Sep 17 00:00:00 2001 From: Ben Ramey Date: Fri, 17 Mar 2023 09:07:57 -0500 Subject: [PATCH] Getting somewhere with theme --- .../Assets/dist/index.html | 13 +- .../Assets/package-lock.json | 376 ++++++++++++++++++ .../Assets/package.json | 2 + .../Assets/src/404.pug | 19 + .../Assets/src/components/footer.pug | 9 + .../Assets/src/components/header.pug | 8 + .../Assets/src/components/nav.pug | 5 + .../Assets/src/components/post.pug | 29 ++ .../Assets/src/index.pug | 15 + .../Assets/src/post.pug | 14 + .../Assets/src/scss/styles.scss | 150 +++---- .../Assets/webpack.config.js | 15 +- 12 files changed, 566 insertions(+), 89 deletions(-) create mode 100644 src/OrchardCore.BenRameyTheme/Assets/src/404.pug create mode 100644 src/OrchardCore.BenRameyTheme/Assets/src/components/footer.pug create mode 100644 src/OrchardCore.BenRameyTheme/Assets/src/components/header.pug create mode 100644 src/OrchardCore.BenRameyTheme/Assets/src/components/nav.pug create mode 100644 src/OrchardCore.BenRameyTheme/Assets/src/components/post.pug create mode 100644 src/OrchardCore.BenRameyTheme/Assets/src/index.pug create mode 100644 src/OrchardCore.BenRameyTheme/Assets/src/post.pug diff --git a/src/OrchardCore.BenRameyTheme/Assets/dist/index.html b/src/OrchardCore.BenRameyTheme/Assets/dist/index.html index 77c5d67..812ee9f 100644 --- a/src/OrchardCore.BenRameyTheme/Assets/dist/index.html +++ b/src/OrchardCore.BenRameyTheme/Assets/dist/index.html @@ -1,12 +1 @@ - - - - - Ben Ramey Blog - - - - - - - +p This is it! \ No newline at end of file diff --git a/src/OrchardCore.BenRameyTheme/Assets/package-lock.json b/src/OrchardCore.BenRameyTheme/Assets/package-lock.json index 07ec978..8dc4b3e 100644 --- a/src/OrchardCore.BenRameyTheme/Assets/package-lock.json +++ b/src/OrchardCore.BenRameyTheme/Assets/package-lock.json @@ -4,6 +4,35 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/parser": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz", + "integrity": "sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==", + "dev": true + }, + "@babel/types": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz", + "integrity": "sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, "@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -606,6 +635,27 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -618,6 +668,12 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -775,6 +831,15 @@ "supports-color": "^7.1.0" } }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dev": true, + "requires": { + "is-regex": "^1.0.3" + } + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -903,6 +968,16 @@ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true }, + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -1060,6 +1135,12 @@ "esutils": "^2.0.2" } }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "dev": true + }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -1128,6 +1209,12 @@ "integrity": "sha512-DIk2H4g/3ZhjgiABJjVdQvUdMlSABOsjeCm6gmUzIdKxAuFrGiJ8QXMm3i09grZdDBMC/d8MELMrdwYRC0+YHg==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -1665,6 +1752,15 @@ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "dev": true }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -1920,6 +2016,24 @@ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1962,6 +2076,22 @@ "isobject": "^3.0.1" } }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -2023,6 +2153,12 @@ "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==", "dev": true }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "dev": true + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2050,6 +2186,25 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dev": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -2078,6 +2233,17 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -2252,6 +2418,12 @@ "brace-expansion": "^1.1.7" } }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2338,6 +2510,12 @@ "boolbase": "^1.0.0" } }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -2662,6 +2840,15 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -2680,6 +2867,165 @@ } } }, + "pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dev": true, + "requires": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + }, + "dependencies": { + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + } + } + }, + "pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dev": true, + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + }, + "dependencies": { + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + } + } + }, + "pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + }, + "dependencies": { + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + } + } + }, + "pug-loader": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/pug-loader/-/pug-loader-2.4.0.tgz", + "integrity": "sha512-cD4bU2wmkZ1EEVyu0IfKOsh1F26KPva5oglO1Doc3knx8VpBIXmFHw16k9sITYIjQMCnRv1vb4vfQgy7VdR6eg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "pug-walk": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "dev": true + }, + "pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "requires": { + "pug-error": "^2.0.0" + } + }, + "pug-walk": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", + "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==", + "dev": true + }, "punycode": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", @@ -3284,6 +3630,12 @@ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3299,6 +3651,12 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "dev": true + }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -3385,6 +3743,12 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "dev": true + }, "watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", @@ -3676,6 +4040,18 @@ "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, + "with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "requires": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", diff --git a/src/OrchardCore.BenRameyTheme/Assets/package.json b/src/OrchardCore.BenRameyTheme/Assets/package.json index 361aeb3..70e87f1 100644 --- a/src/OrchardCore.BenRameyTheme/Assets/package.json +++ b/src/OrchardCore.BenRameyTheme/Assets/package.json @@ -17,6 +17,8 @@ "html-webpack-plugin": "^5.5.0", "mini-css-extract-plugin": "^2.7.3", "prettier": "^2.8.4", + "pug": "^3.0.2", + "pug-loader": "^2.4.0", "sass": "^1.58.3", "sass-loader": "^13.2.0", "style-loader": "^3.3.1", diff --git a/src/OrchardCore.BenRameyTheme/Assets/src/404.pug b/src/OrchardCore.BenRameyTheme/Assets/src/404.pug new file mode 100644 index 0000000..9aae187 --- /dev/null +++ b/src/OrchardCore.BenRameyTheme/Assets/src/404.pug @@ -0,0 +1,19 @@ +doctype html +html(lang='en') + + head + title Ben Ramey's Blog + + body + include components/header.pug + include components/nav.pug + main + div(class='container') + article(class='page') + h1(class='page-title') 404 : Page not found + p Sorry, we've misplaced that URL or it's pointing to something that doesn't exist. + p + a(href='/') Head back home + span to try finding it again. + + include components/footer.pug diff --git a/src/OrchardCore.BenRameyTheme/Assets/src/components/footer.pug b/src/OrchardCore.BenRameyTheme/Assets/src/components/footer.pug new file mode 100644 index 0000000..9729af0 --- /dev/null +++ b/src/OrchardCore.BenRameyTheme/Assets/src/components/footer.pug @@ -0,0 +1,9 @@ +footer(class='footer') + div(class='container') + hr + small + . + © + time(dateTime='2023-01-01T00:00:00Z') 2023 + . + . All rights reserved. \ No newline at end of file diff --git a/src/OrchardCore.BenRameyTheme/Assets/src/components/header.pug b/src/OrchardCore.BenRameyTheme/Assets/src/components/header.pug new file mode 100644 index 0000000..b02e2a3 --- /dev/null +++ b/src/OrchardCore.BenRameyTheme/Assets/src/components/header.pug @@ -0,0 +1,8 @@ +header + div(class='container') + div(class='d-flex justify-content-between align-item-center') + a(class='d-flex justify-content-start align-items-center me-2 text-decoration-none', href='/', title='Home') + img(src='https://en.gravatar.com/userimage/738990/32d8e61848233a67f5e02dcc43be0ff8.jpeg', alt='Gravatar', width='40px', height='40px') + span(class='ms-2') Ben Ramey's Blog + div(class='d-none d-sm-flex flex-column justify-content-around ms-2') + small Scripture, programming problems, solutions and stories. \ No newline at end of file diff --git a/src/OrchardCore.BenRameyTheme/Assets/src/components/nav.pug b/src/OrchardCore.BenRameyTheme/Assets/src/components/nav.pug new file mode 100644 index 0000000..6093ad8 --- /dev/null +++ b/src/OrchardCore.BenRameyTheme/Assets/src/components/nav.pug @@ -0,0 +1,5 @@ +nav(class='main') + div(class='container d-flex justify-content-center') + a(href='/archive') archive + a(href='/tags') tags + a(href='/categories') categories \ No newline at end of file diff --git a/src/OrchardCore.BenRameyTheme/Assets/src/components/post.pug b/src/OrchardCore.BenRameyTheme/Assets/src/components/post.pug new file mode 100644 index 0000000..451243a --- /dev/null +++ b/src/OrchardCore.BenRameyTheme/Assets/src/components/post.pug @@ -0,0 +1,29 @@ +article.post + h1.post-title Sample post title + div(class='post-info d-flex justify-content-start') + time(class='post-date', datetime='2022/02/10') Thu Feb 10th, 2022, about 1 year ago + nav.post-tags + a(href='/tags/tag1') #tag1 + a(href='/tags/tag2') #tag2 + a(href='/tags/tag3') #tag3 + nav.post-categories + span posted in: + a(href='/categories/category1') category1 + a(href='/categories/category2') category2 + a(href='/categories/category3') category3 + div + p Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Pellentesque elit eget gravida cum sociis natoque penatibus et magnis. Fames ac turpis egestas integer eget aliquet nibh praesent. At imperdiet dui accumsan sit amet nulla facilisi morbi. Sed viverra tellus in hac. Faucibus vitae aliquet nec ullamcorper sit amet. Pretium viverra suspendisse potenti nullam + p ac tortor vitae. Arcu non sodales neque sodales ut etiam sit amet nisl. In iaculis nunc sed augue lacus. Ultrices vitae auctor eu augue ut. Nibh ipsum consequat nisl vel pretium lectus quam id. Eget gravida cum sociis natoque penatibus et magnis dis parturient. A iaculis at erat pellentesque. Lectus nulla at volutpat diam ut venenatis. Nisl vel pretium lectus quam. Etiam dignissim diam quis enim lobortis scelerisque. Non sodales neque sodales ut etiam sit amet nisl. Feugiat nibh sed pulvinar proin gravida. Nam at lectus urna duis convallis convallis. + h1 This is a header 1 + h2 This is a header 2 + h3 This is a header 3 + h4 This is a header 4 + h5 This is a header 5 + blockquote this is a very important quote from someone + .remark-highlight + pre.language-csharp + code.language-csharp > become -a "hacker" --with "this code block" + +section.comments + a#comments-section + h2 Comments \ No newline at end of file diff --git a/src/OrchardCore.BenRameyTheme/Assets/src/index.pug b/src/OrchardCore.BenRameyTheme/Assets/src/index.pug new file mode 100644 index 0000000..53ea4df --- /dev/null +++ b/src/OrchardCore.BenRameyTheme/Assets/src/index.pug @@ -0,0 +1,15 @@ +doctype html +html(lang='en') + + head + title Ben Ramey's Blog + + body + include components/header.pug + include components/nav.pug + main + div(class='container') + article(class='page') + h1(class='page-title') This is a page title + + include components/footer.pug diff --git a/src/OrchardCore.BenRameyTheme/Assets/src/post.pug b/src/OrchardCore.BenRameyTheme/Assets/src/post.pug new file mode 100644 index 0000000..a8f26d5 --- /dev/null +++ b/src/OrchardCore.BenRameyTheme/Assets/src/post.pug @@ -0,0 +1,14 @@ +doctype html +html(lang='en') + + head + title Ben Ramey's Blog + + body + include components/header.pug + include components/nav.pug + main + div(class='container') + include components/post.pug + + include components/footer.pug diff --git a/src/OrchardCore.BenRameyTheme/Assets/src/scss/styles.scss b/src/OrchardCore.BenRameyTheme/Assets/src/scss/styles.scss index 312263b..256d9df 100644 --- a/src/OrchardCore.BenRameyTheme/Assets/src/scss/styles.scss +++ b/src/OrchardCore.BenRameyTheme/Assets/src/scss/styles.scss @@ -4,7 +4,7 @@ @import "prismjs/themes/prism-tomorrow.css"; h1 { - color: lighten($body-color, 35%); + color: lighten($body-color, 35%); } h2, @@ -12,113 +12,113 @@ h3, h4, h5, h6 { - color: lighten($body-color, 25%); + color: lighten($body-color, 25%); } h1, h2, h3 { - a { - color: inherit; - } + a { + color: inherit; + } } header { - padding: 10px 0; - margin-top: 20px; - background-color: lighten($body-bg, 10%); - border-width: 1px 0; - border-style: solid; - border-color: $border-color; + padding: 10px 0; + margin-top: 20px; + background-color: lighten($body-bg, 10%); + border-width: 1px 0; + border-style: solid; + border-color: $border-color; - img { - @include border-radius(50%); - width: 40px; - height: 40px; - } - small { - vertical-align: middle; - } + img { + @include border-radius(50%); + width: 40px; + height: 40px; + } + small { + vertical-align: middle; + } } nav.main { - margin-bottom: 20px; + margin-bottom: 20px; - a { - display: block; - padding: 5px; - margin: 0 10px; - text-transform: lowercase; - } + a { + display: block; + padding: 5px; + margin: 0 10px; + text-transform: lowercase; + } } nav.pagination { - a, - span { - display: block; - margin: 0 20px; - } + a, + span { + display: block; + margin: 0 20px; + } } section { - margin: 40px 0; + margin: 40px 0; } article { - &.post { - img { - display: block; - margin: 5px 0; - } - } - div.post-info { - nav { - display: flex; - justify-content: flex-start; - } - time, - nav a { - display: block; - margin: 10px 20px 10px 0; - } - nav span { - display: block; - margin: 10px 5px; - } - } + &.post { + img { + display: block; + margin: 5px 0; + } + } + div.post-info { + nav { + display: flex; + justify-content: flex-start; + } + time, + nav a { + display: block; + margin: 10px 20px 10px 0; + } + nav span { + display: block; + margin: 10px 5px; + } + } } .remark-highlight { - @include border-radius(); - padding: 10px; - border: 1px solid $border-color; - background-color: lighten($body-bg, 5%); - color: lighten($body-color, 5%); - margin: 10px 0; + @include border-radius(); + padding: 10px; + border: 1px solid $border-color; + background-color: lighten($body-bg, 5%); + color: lighten($body-color, 5%); + margin: 10px 0; - pre { - margin: 0; - background-color: inherit; - padding: 0; - font-size: 87.5%; - } + pre { + margin: 0; + background-color: inherit; + padding: 0; + font-size: 87.5%; + } } code { - color: $code-color; + color: $code-color; } blockquote { - display: block; - @include border-radius(); - padding: 10px 20px; - background-color: lighten($body-bg, 5%); - color: lighten($body-color, 5%); + display: block; + @include border-radius(); + padding: 10px 20px; + background-color: lighten($body-bg, 5%); + color: lighten($body-color, 5%); - p { - margin: 0; - } + p { + margin: 0; + } } section.comments { - min-height: 500px; + min-height: 500px; } diff --git a/src/OrchardCore.BenRameyTheme/Assets/webpack.config.js b/src/OrchardCore.BenRameyTheme/Assets/webpack.config.js index b1d689b..7fdadc1 100644 --- a/src/OrchardCore.BenRameyTheme/Assets/webpack.config.js +++ b/src/OrchardCore.BenRameyTheme/Assets/webpack.config.js @@ -16,6 +16,10 @@ module.exports = (env) => { }, module: { rules: [ + { + test: /.pug$/i, + loader: "pug-loader", + }, { test: /.scss$/i, use: [ @@ -28,8 +32,15 @@ module.exports = (env) => { }, plugins: [ new HtmlWebpackPlugin({ - title: "Ben Ramey Blog", - favicon: path.join(__dirname, "src/assets/favicon.ico"), + template: "src/index.pug", + }), + new HtmlWebpackPlugin({ + template: "src/post.pug", + filename: "post.html", + }), + new HtmlWebpackPlugin({ + template: "src/404.pug", + filename: "404.html", }), new MiniCssExtractPlugin(), ],