Merge branch 'main' of gitea.icodef.com:codfrm/blog
All checks were successful
Release / deploy (push) Successful in 2m52s

This commit is contained in:
2025-07-01 08:17:01 +08:00
9 changed files with 974 additions and 1316 deletions

View File

@ -25,7 +25,7 @@ jobs:
fetch-depth: 0
- name: Use Node.js
uses: actions/setup-node@v4.1.1
uses: actions/setup-node@v4
with:
node-version: "20.x"
cache: 'npm'
@ -45,7 +45,7 @@ jobs:
- name: Login to Docker Hub
# uses: docker/login-action@v3
uses: actions/login-action@v1
uses: actions/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKER_USERNAME }}
@ -58,7 +58,7 @@ jobs:
- name: Docker build and push
# use: docker/build-push-action@v5
uses: actions/build-push-action@v5
uses: actions/build-push-action@v6
with:
push: true
file: deploy/docker/Dockerfile
@ -69,7 +69,7 @@ jobs:
- name: Set up kubeconfig
# uses: azure/k8s-set-context@v3
uses: actions/k8s-set-context@v3
uses: actions/k8s-set-context@v4
with:
method: kubeconfig
kubeconfig: ${{ secrets.KUBE_CONFIG }}
@ -77,7 +77,7 @@ jobs:
- name: Set up Helm
# uses: azure/setup-helm@v3
uses: actions/setup-helm@v3.6
uses: actions/setup-helm@v4
with:
version: 'v3.13.1' # default is latest (stable)

View File

@ -16,6 +16,8 @@
由于这个变化,脚本猫的很多功能几乎全部需要重写,通信方面也要重新设计,一些功能也要重新考虑。虽然说都有替代方案,但还是有些烦躁。
另外我也还没有接触过 Service Worker还需要学习一下开发过程中可能还会遇到一些问题。
## DNR
其次就是围绕着网络请求修改方面的Manifest V2可以使用[`webRequest API`](https://developer.chrome.com/docs/extensions/reference/api/webRequest?hl=zh-cn),可以非常自由的修改网络请求,然而 V3 版本这个 API 被移除了,取而代之的是 [`declarativeNetRequest API`](https://developer.chrome.com/docs/extensions/reference/api/declarativeNetRequest?hl=zh-cn),使用的是声明式的规则列表,甚至还有条数限制。这直接影响了 GM_xhr 的相关功能例如Forbidden header、匿名 cookie、set-cookie 等。
@ -26,7 +28,7 @@ Tampermonkey 并没有放弃这个功能,我不知道它是如何实现的,
## Userscript 和后台脚本
mv3 引入了两个新的 API`[chrome.userScripts](https://developer.chrome.com/docs/extensions/reference/api/userScripts?hl=zh-cn)``[chrome.offscreen](https://developer.chrome.com/docs/extensions/reference/api/offscreen?hl=zh-cn)`,对于实现 Userscript 和后台脚本的功能上来说,更方便了,而且 chrome.userScripts 甚至可以让脚本在页面加载前进行注入,感觉又可以诞生一些新的玩法。但是必须要求用户开启开发者模式,这个实在是太难接受了。而且这个 API 可以突破 CSP 限制,在此之前是直接使用 webRequest API 将 CSP 策略移除,这样是更加安全的。
mv3 引入了两个新的 API[chrome.userScripts](https://developer.chrome.com/docs/extensions/reference/api/userScripts?hl=zh-cn)和[chrome.offscreen](https://developer.chrome.com/docs/extensions/reference/api/offscreen?hl=zh-cn),对于实现 Userscript 和后台脚本的功能上来说,更方便了,而且 chrome.userScripts 甚至可以让脚本在页面加载前进行注入,感觉又可以诞生一些新的玩法。但是必须要求用户开启开发者模式,这个实在是太难接受了。而且这个 API 可以突破 CSP 限制,在此之前是直接使用 webRequest API 将 CSP 策略移除,这样是更加安全的。
现在脚本的注入完全依赖这个 API而不需要自己管理了这个算是一个好消息但是这样的话对于@match/@include 的表达式会产生一些影响。

2232
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -18,10 +18,10 @@
"packages/*"
],
"dependencies": {
"@docusaurus/core": "3.1.1",
"@docusaurus/plugin-content-docs": "^3.1.1",
"@docusaurus/plugin-sitemap": "^3.1.1",
"@docusaurus/preset-classic": "3.1.1",
"@docusaurus/core": "^3.4.0",
"@docusaurus/plugin-content-docs": "^3.4.0",
"@docusaurus/plugin-sitemap": "^3.4.0",
"@docusaurus/preset-classic": "^3.4.0",
"@giscus/react": "^3.0.0",
"@gracefullight/docusaurus-plugin-tailwind": "^1.0.1",
"@iconify/react": "^4.1.1",
@ -37,10 +37,10 @@
"react-dom": "^18.0.0"
},
"devDependencies": {
"@docusaurus/eslint-plugin": "^3.1.1",
"@docusaurus/module-type-aliases": "3.1.1",
"@docusaurus/tsconfig": "3.1.1",
"@docusaurus/types": "3.1.1",
"@docusaurus/eslint-plugin": "^3.4.0",
"@docusaurus/module-type-aliases": "^3.4.0",
"@docusaurus/tsconfig": "^3.4.0",
"@docusaurus/types": "^3.4.0",
"typescript": "~5.2.2"
},
"browserslist": {

View File

@ -9,8 +9,8 @@
"author": "",
"license": "ISC",
"dependencies": {
"@docusaurus/core": "^3.1.1",
"@docusaurus/plugin-content-docs": "^3.1.1",
"@docusaurus/core": "^3.4.0",
"@docusaurus/plugin-content-docs": "^3.4.0",
"dayjs": "^1.11.10",
"reading-time": "^1.5.0",
"simple-git": "^3.22.0"

View File

@ -98,16 +98,16 @@ export default async function pluginContentDocs(
return ret;
};
const warpContentLoaded = ret.contentLoaded;
ret.contentLoaded = async ({ content, actions, allContent }) => {
const ret = await warpContentLoaded({
content,
actions,
allContent,
});
return ret;
};
const warpAllContentLoaded = ret.allContentLoaded;
if (warpAllContentLoaded) {
ret.allContentLoaded = async ({ actions, allContent }) => {
const ret = await warpAllContentLoaded({
actions,
allContent,
});
return ret;
};
}
return ret;
}

View File

@ -9,7 +9,7 @@
"author": "",
"license": "ISC",
"dependencies": {
"@docusaurus/core": "^3.1.1",
"@docusaurus/core": "^3.4.0",
"dayjs": "^1.11.10",
"reading-time": "^1.5.0"
}

View File

@ -51,7 +51,7 @@ export default function (context: LoadContext, options: any): Plugin {
getThemePath() {
return themePath;
},
async contentLoaded({ content, actions, allContent }): Promise<void> {
async allContentLoaded({ actions, allContent }): Promise<void> {
const { addRoute, createData, setGlobalData } = actions;
const docsData = allContent["docusaurus-plugin-content-docs"] as {