Skip to content

Commit 9fc9bce

Browse files
committed
Configure reverse-app for sub-path deployment and update GitHub Actions
1 parent 294be47 commit 9fc9bce

24 files changed

Lines changed: 3624 additions & 49 deletions

.github/workflows/deploy.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ jobs:
3838
- name: 生成静态文件 (Hexo Generate)
3939
run: hexo generate
4040

41+
- name: 构建 Reverse App
42+
working-directory: ./reverse-app
43+
run: |
44+
npm install
45+
npm run build
46+
47+
- name: 将 Reverse App 移动到 public 目录
48+
run: |
49+
mkdir -p public/reverse-app
50+
cp -r reverse-app/dist/* public/reverse-app/
51+
4152
- name: 上传构建产物
4253
uses: actions/upload-pages-artifact@v3
4354
with:

.obsidian/workspace.json

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -323,51 +323,51 @@
323323
},
324324
"active": "0f9137889bb90f42",
325325
"lastOpenFiles": [
326-
"source/_posts/2026年伊朗战时处决:萨利赫·穆罕默迪与赛义德·达乌迪的悲剧.md",
327-
"source/_posts/中国期货的影响因素.md",
328-
"source/_posts/2026波斯湾地缘观察:治理重组与航道博弈的深度推演.md",
329-
"source/_posts/2026年伊朗地缘政治与军事安全深度评估报告:政权更迭、武装力量现状与霍尔木兹海峡的未来.md",
330-
"source/_posts/硅基流动的免费token软文推荐.md",
331-
"source/img/龙虾免费token.png",
332-
"source/_posts/失去中东原油的战略与经济后果:美国能源安全、全球定价机制与供应链的连锁反应.md",
333-
"source/img/中东原油对美国的意义.png",
334-
"source/_posts/2026-03-15-figure-ai-the-robot-that-learns-like-human.md",
335-
"source/img/figure机器人.jpg",
336-
"source/_posts/2026-03-13-anthropic-the-story-behind-claude.md",
337-
"Prompts/figure机器人.md",
338-
"source/_posts/prompt/figure机器人.md",
339-
"source/_posts/prompt",
340-
"source/_posts/claude的公众号文章.md",
341-
"source/_posts/上海东京房价走势分析.md",
342-
"source/img/Anthropic的开创和发展.png",
343-
"claude的公众号文章.md",
344-
"source/_posts/吴计划:那个推倒北大南墙的人,与他心中的《资本论》.md",
345-
"source/img/求购铝土矿.png",
346-
"source/_posts/哈梅内伊.md",
347-
"source/img/北大校长吴树清.png",
348-
"source/_posts/伊朗是如何伊斯兰教化的?.md",
349-
"source/img/伊朗的穆斯林化.png",
350-
"source/_posts/2026年3月首周中国与全球商品期货市场深度研究报告:宏观博弈、产业分化与超级周期重塑.md",
351-
"source/img/2026宏观博弈.jpg",
352-
"source/_posts/待ai完善修改:太空堡垒的一些想法.md",
353-
"source/img/概率越高的观点,越难以形成有效策略.png",
354-
"source/_posts/建立云数据库.md",
355-
"source/_posts/深度研究报告:2026年伊朗政权危机、社会解构与地缘政治重塑.md",
356-
"source/_posts/为什么我会把Gemini CLI作为主要的Agent助手?.md",
357-
"source/_posts/海湾潮起:地缘局势如何重塑全球原油价格走势?.md",
358-
"source/img/伊朗局势与原油的关系.jpg",
359-
"source/_posts/揭秘BR厂库仓单:是“凭空印钱”还是“信誉担保”?.md",
360-
"source/_posts/全球天然橡胶主产区转移的历史沿革、底层逻辑与未来趋势深度研判.md",
361-
"source/_posts/零关税后,非洲胶如何影响未来天然橡胶市场?.md",
362-
"source/_posts/资本、生态与技术的百年博弈:全球橡胶产业的演进逻辑与未来重塑.md",
363-
"source/img/我用ai做了啥.jpg.crdownload",
364-
"Prompts",
365-
"Clippings",
366-
"candlestick-analyzer 1/references",
367-
"candlestick-analyzer 1",
368-
"source/_posts/candlestick-analyzer.skill",
369-
"source/_posts/candlestick-analyzer/scripts/example_script.cjs",
370-
"source/_posts/candlestick-analyzer/assets/example_asset.txt",
371-
"candlestick-analyzer/references"
326+
"reverse-app/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/functions/rcompare.js",
327+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/utils.js",
328+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/skip-cursor.js",
329+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/padded-token-cursor.js",
330+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/limit-cursor.js",
331+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/index.js",
332+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-cursor.js",
333+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js",
334+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/filter-cursor.js",
335+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/decorative-cursor.js",
336+
"reverse-app/node_modules/eslint/lib/languages/js/source-code/token-store/cursors.js",
337+
"reverse-app/node_modules/rolldown/node_modules/@rolldown/pluginutils/README.md",
338+
"reverse-app/node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys/README.md",
339+
"reverse-app/node_modules/@typescript-eslint/typescript-estree/node_modules/semver/README.md",
340+
"reverse-app/node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match/README.md",
341+
"reverse-app/node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match/LICENSE.md",
342+
"reverse-app/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/README.md",
343+
"reverse-app/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/LICENSE.md",
344+
"reverse-app/node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion/README.md",
345+
"reverse-app/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/README.md",
346+
"reverse-app/node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys/README.md",
347+
"reverse-app/node_modules/@eslint/eslintrc/node_modules/globals/readme.md",
348+
"reverse-app/node_modules/ajv/lib/dotjs/README.md",
349+
"reverse-app/node_modules/flatted/golang/README.md",
350+
"reverse-app/node_modules/@vitejs/plugin-react/README.md",
351+
"reverse-app/node_modules/@typescript-eslint/visitor-keys/README.md",
352+
"reverse-app/node_modules/@typescript-eslint/utils/README.md",
353+
"reverse-app/node_modules/@typescript-eslint/type-utils/README.md",
354+
"reverse-app/node_modules/@typescript-eslint/typescript-estree/README.md",
355+
"reverse-app/node_modules/@eslint/eslintrc/README.md",
356+
"reverse-app/node_modules/@typescript-eslint/tsconfig-utils/README.md",
357+
"reverse-app/node_modules/@typescript-eslint/types/README.md",
358+
"reverse-app/node_modules/@typescript-eslint/scope-manager/README.md",
359+
"reverse-app/node_modules/@typescript-eslint/project-service/README.md",
360+
"reverse-app/node_modules/@typescript-eslint/parser/README.md",
361+
"reverse-app/node_modules/@typescript-eslint/eslint-plugin/README.md",
362+
"reverse-app/src/assets/vite.svg",
363+
"reverse-app/src/assets/react.svg",
364+
"reverse-app/src/assets/hero.png",
365+
"reverse-app/public/icons.svg",
366+
"reverse-app/public/favicon.svg",
367+
"reverse-app/dist/icons.svg",
368+
"reverse-app/dist/favicon.svg",
369+
"source/img/绞死的运动员.webp",
370+
"source/img/伊朗摔跤冠军2.webp",
371+
"source/img/被绞死的伊朗年轻人.png"
372372
]
373373
}

reverse-app/.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?

reverse-app/README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# React + TypeScript + Vite
2+
3+
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4+
5+
Currently, two official plugins are available:
6+
7+
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs)
8+
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/)
9+
10+
## React Compiler
11+
12+
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
13+
14+
## Expanding the ESLint configuration
15+
16+
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
17+
18+
```js
19+
export default defineConfig([
20+
globalIgnores(['dist']),
21+
{
22+
files: ['**/*.{ts,tsx}'],
23+
extends: [
24+
// Other configs...
25+
26+
// Remove tseslint.configs.recommended and replace with this
27+
tseslint.configs.recommendedTypeChecked,
28+
// Alternatively, use this for stricter rules
29+
tseslint.configs.strictTypeChecked,
30+
// Optionally, add this for stylistic rules
31+
tseslint.configs.stylisticTypeChecked,
32+
33+
// Other configs...
34+
],
35+
languageOptions: {
36+
parserOptions: {
37+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
38+
tsconfigRootDir: import.meta.dirname,
39+
},
40+
// other options...
41+
},
42+
},
43+
])
44+
```
45+
46+
You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
47+
48+
```js
49+
// eslint.config.js
50+
import reactX from 'eslint-plugin-react-x'
51+
import reactDom from 'eslint-plugin-react-dom'
52+
53+
export default defineConfig([
54+
globalIgnores(['dist']),
55+
{
56+
files: ['**/*.{ts,tsx}'],
57+
extends: [
58+
// Other configs...
59+
// Enable lint rules for React
60+
reactX.configs['recommended-typescript'],
61+
// Enable lint rules for React DOM
62+
reactDom.configs.recommended,
63+
],
64+
languageOptions: {
65+
parserOptions: {
66+
project: ['./tsconfig.node.json', './tsconfig.app.json'],
67+
tsconfigRootDir: import.meta.dirname,
68+
},
69+
// other options...
70+
},
71+
},
72+
])
73+
```

reverse-app/eslint.config.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import js from '@eslint/js'
2+
import globals from 'globals'
3+
import reactHooks from 'eslint-plugin-react-hooks'
4+
import reactRefresh from 'eslint-plugin-react-refresh'
5+
import tseslint from 'typescript-eslint'
6+
import { defineConfig, globalIgnores } from 'eslint/config'
7+
8+
export default defineConfig([
9+
globalIgnores(['dist']),
10+
{
11+
files: ['**/*.{ts,tsx}'],
12+
extends: [
13+
js.configs.recommended,
14+
tseslint.configs.recommended,
15+
reactHooks.configs.flat.recommended,
16+
reactRefresh.configs.vite,
17+
],
18+
languageOptions: {
19+
ecmaVersion: 2020,
20+
globals: globals.browser,
21+
},
22+
},
23+
])

reverse-app/index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>String Reverser</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
<script type="module" src="/src/main.tsx"></script>
12+
</body>
13+
</html>

0 commit comments

Comments
 (0)