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(),
],