diff --git a/astro.config.mjs b/astro.config.mjs
index 6ee1eb7..8e9525c 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -1,58 +1,11 @@
import { defineConfig } from "astro/config";
import vue from "@astrojs/vue";
import tailwind from "@astrojs/tailwind";
-import fs from "fs";
-import { load } from "cheerio";
-
-function thymeleafAssetsProcessor() {
- return {
- name: "thymeleaf-assets-processor",
- hooks: {
- "astro:build:done": async ({ dir, routes, pages }) => {
- const pageRoutes = routes.filter((route) => route.type === "page");
-
- for (let i = 0; i < pageRoutes.length; i++) {
- const route = pageRoutes[i];
-
- const pathname = route.distURL?.pathname;
-
- const inputHTML = await fs.promises.readFile(pathname, {
- encoding: "utf-8",
- });
-
- const $ = load(inputHTML);
-
- $("link").each((_, el) => {
- const href = $(el).attr("href");
-
- if (href.startsWith("/assets")) {
- $(el).attr("th:href", `@{${href}}`);
- }
- });
-
- $("astro-island").each((_, el) => {
- const componentUrl = $(el).attr("component-url");
- const rendererUrl = $(el).attr("renderer-url");
-
- if (componentUrl && componentUrl.startsWith("/assets")) {
- $(el).attr("th:component-url", `@{${componentUrl}}`);
- }
-
- if (rendererUrl && rendererUrl.startsWith("/assets")) {
- $(el).attr("th:renderer-url", `@{${rendererUrl}}`);
- }
- });
-
- await fs.promises.writeFile(pathname, $.html());
- }
- },
- },
- };
-}
+import astroHaloThemeIntegration from "@halo-dev/astro-halo-theme-integration";
// https://astro.build/config
export default defineConfig({
- integrations: [vue(), tailwind(), thymeleafAssetsProcessor()],
+ integrations: [vue(), tailwind(), astroHaloThemeIntegration()],
outDir: "./templates",
build: {
format: "file",
@@ -60,15 +13,4 @@ export default defineConfig({
server: {
port: 4000,
},
- vite: {
- build: {
- rollupOptions: {
- output: {
- entryFileNames: "assets/[name].[hash].js",
- chunkFileNames: "assets/chunks/[name].[hash].js",
- assetFileNames: "assets/[name].[hash][extname]",
- },
- },
- },
- },
});
diff --git a/package.json b/package.json
index 7d3a46f..0dc5009 100644
--- a/package.json
+++ b/package.json
@@ -17,12 +17,12 @@
"@vue/eslint-config-typescript": "^11.0.0",
"@vue/tsconfig": "^0.1.3",
"astro": "^1.0.0-rc.2",
- "cheerio": "1.0.0-rc.12",
"eslint": "^8.20.0",
"eslint-plugin-vue": "^9.3.0",
"prettier": "^2.7.1",
"prettier-plugin-tailwindcss": "^0.1.13",
- "vue": "^3.2.37"
+ "vue": "^3.2.37",
+ "@halo-dev/astro-halo-theme-integration": "^0.0.1"
},
"dependencies": {
"@headlessui/vue": "^1.6.7",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6abb1ce..c15d119 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -3,6 +3,7 @@ lockfileVersion: 5.4
specifiers:
'@astrojs/tailwind': ^0.2.5
'@astrojs/vue': ^0.5.0
+ '@halo-dev/astro-halo-theme-integration': ^0.0.1
'@headlessui/vue': ^1.6.7
'@rushstack/eslint-patch': ^1.1.4
'@types/node': '16'
@@ -10,7 +11,6 @@ specifiers:
'@vue/eslint-config-typescript': ^11.0.0
'@vue/tsconfig': ^0.1.3
astro: ^1.0.0-rc.2
- cheerio: 1.0.0-rc.12
dayjs: ^1.11.4
eslint: ^8.20.0
eslint-plugin-vue: ^9.3.0
@@ -25,13 +25,13 @@ dependencies:
devDependencies:
'@astrojs/tailwind': 0.2.5
'@astrojs/vue': 0.5.0_vue@3.2.37
+ '@halo-dev/astro-halo-theme-integration': 0.0.1
'@rushstack/eslint-patch': 1.1.4
'@types/node': 16.11.46
'@vue/eslint-config-prettier': 7.0.0_vvfpqh5kol6rhqy7beehv5uezq
'@vue/eslint-config-typescript': 11.0.0_bu6pzweaepnqqz4ai64ugihjt4
'@vue/tsconfig': 0.1.3_@types+node@16.11.46
astro: 1.0.0-rc.2
- cheerio: 1.0.0-rc.12
eslint: 8.20.0
eslint-plugin-vue: 9.3.0_eslint@8.20.0
prettier: 2.7.1
@@ -420,6 +420,10 @@ packages:
- supports-color
dev: true
+ /@halo-dev/astro-halo-theme-integration/0.0.1:
+ resolution: {integrity: sha512-8ZIDOjyvbs9BhDPlOGyvNk7eCrEniGBcuF/5ZZh/8pYwym61UB/nuLmpfdqI92AQ/2CPLRpGqm/o9xxYdhwbHw==}
+ dev: true
+
/@headlessui/vue/1.6.7_vue@3.2.37:
resolution: {integrity: sha512-5sTCBpkUoFE7zhANn/6Z+pf3PUA7MD6BBaTsJcQybq9E4fnNiMM9agOJI9meXbtcawE6Dm8EeB5A8HAJEnZCbQ==}
engines: {node: '>=10'}
@@ -1231,30 +1235,6 @@ packages:
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
dev: true
- /cheerio-select/2.1.0:
- resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
- dependencies:
- boolbase: 1.0.0
- css-select: 5.1.0
- css-what: 6.1.0
- domelementtype: 2.3.0
- domhandler: 5.0.3
- domutils: 3.0.1
- dev: true
-
- /cheerio/1.0.0-rc.12:
- resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==}
- engines: {node: '>= 6'}
- dependencies:
- cheerio-select: 2.1.0
- dom-serializer: 2.0.0
- domhandler: 5.0.3
- domutils: 3.0.1
- htmlparser2: 8.0.1
- parse5: 7.0.0
- parse5-htmlparser2-tree-adapter: 7.0.0
- dev: true
-
/chokidar/3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
@@ -1344,21 +1324,6 @@ packages:
which: 2.0.2
dev: true
- /css-select/5.1.0:
- resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
- dependencies:
- boolbase: 1.0.0
- css-what: 6.1.0
- domhandler: 5.0.3
- domutils: 3.0.1
- nth-check: 2.1.1
- dev: true
-
- /css-what/6.1.0:
- resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
- engines: {node: '>= 6'}
- dev: true
-
/cssesc/3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
@@ -1464,33 +1429,6 @@ packages:
esutils: 2.0.3
dev: true
- /dom-serializer/2.0.0:
- resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
- dependencies:
- domelementtype: 2.3.0
- domhandler: 5.0.3
- entities: 4.3.1
- dev: true
-
- /domelementtype/2.3.0:
- resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
- dev: true
-
- /domhandler/5.0.3:
- resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
- engines: {node: '>= 4'}
- dependencies:
- domelementtype: 2.3.0
- dev: true
-
- /domutils/3.0.1:
- resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==}
- dependencies:
- dom-serializer: 2.0.0
- domelementtype: 2.3.0
- domhandler: 5.0.3
- dev: true
-
/dset/3.1.2:
resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==}
engines: {node: '>=4'}
@@ -1519,11 +1457,6 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
- /entities/4.3.1:
- resolution: {integrity: sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==}
- engines: {node: '>=0.12'}
- dev: true
-
/eol/0.9.1:
resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==}
dev: true
@@ -2399,15 +2332,6 @@ packages:
resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
dev: true
- /htmlparser2/8.0.1:
- resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==}
- dependencies:
- domelementtype: 2.3.0
- domhandler: 5.0.3
- domutils: 3.0.1
- entities: 4.3.1
- dev: true
-
/human-signals/3.0.1:
resolution: {integrity: sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==}
engines: {node: '>=12.20.0'}
@@ -3511,23 +3435,10 @@ packages:
unist-util-visit-children: 1.1.4
dev: true
- /parse5-htmlparser2-tree-adapter/7.0.0:
- resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==}
- dependencies:
- domhandler: 5.0.3
- parse5: 7.0.0
- dev: true
-
/parse5/6.0.1:
resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
dev: true
- /parse5/7.0.0:
- resolution: {integrity: sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==}
- dependencies:
- entities: 4.3.1
- dev: true
-
/path-browserify/1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
dev: true
diff --git a/templates/post.html b/templates/post.html
index 6b5535b..1fb15cc 100644
--- a/templates/post.html
+++ b/templates/post.html
@@ -10,7 +10,7 @@
Post
Links
-
+