Skip to content

Commit 5b494ee

Browse files
committed
workflow
1 parent b860c3b commit 5b494ee

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

update-notes.sh

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
#!/bin/bash
2+
3+
# === 参数 ===
4+
if [ -z "$1" ]; then
5+
COMMIT_MSG="Update notes"
6+
else
7+
COMMIT_MSG="$1"
8+
fi
9+
10+
# === 路径 ===
11+
TYP_FILE="notes/main.typ"
12+
TINYMIST_HTML="notes/main.html"
13+
OUT_DIR="static/notes"
14+
OUT_FILE="${OUT_DIR}/index.html"
15+
16+
# === Windows 下的 typst 路径 ===
17+
TYPST_WIN_PATH="/c/Users/thinkbook-cxy/AppData/Local/Microsoft/WinGet/Packages/Typst.Typst_Microsoft.Winget.Source_8wekyb3d8bbwe/typst-x86_64-pc-windows-msvc/typst.exe"
18+
19+
# === 检查 Typst ===
20+
if [ -f "$TYPST_WIN_PATH" ]; then
21+
TYPST_CMD="$TYPST_WIN_PATH"
22+
elif command -v typst &> /dev/null; then
23+
TYPST_CMD="typst"
24+
else
25+
echo "❌ typst 未安装,请先安装 Typst CLI。"
26+
exit 1
27+
fi
28+
29+
mkdir -p "$OUT_DIR"
30+
31+
echo "------------------------------------------------------"
32+
echo "📄 更新 Typst 笔记中..."
33+
echo "------------------------------------------------------"
34+
35+
# === 使用 Tinymist 输出的 HTML(如果存在) ===
36+
if [ -f "$TINYMIST_HTML" ]; then
37+
echo "✅ 检测到 VSCode Tinymist 导出的 HTML: $TINYMIST_HTML"
38+
cp "$TINYMIST_HTML" "$OUT_FILE"
39+
echo "✅ 已复制到: $OUT_FILE"
40+
41+
# === 否则用 typst CLI 自动编译 ===
42+
else
43+
echo "ℹ️ 未发现 Tinymist HTML,使用 typst CLI 编译..."
44+
45+
# 方法1:先编译为 PDF,然后如果有工具可以转换为 HTML
46+
# "$TYPST_CMD" compile "$TYP_FILE" "${OUT_DIR}/notes.pdf"
47+
# echo "✅ 已编译为 PDF: ${OUT_DIR}/notes.pdf"
48+
49+
# 方法2:创建一个简单的 HTML 占位符
50+
cat > "$OUT_FILE" << 'EOF'
51+
<!DOCTYPE html>
52+
<html>
53+
<head>
54+
<title>Notes</title>
55+
<meta charset="utf-8">
56+
<style>
57+
body { font-family: Arial, sans-serif; margin: 40px; }
58+
.notice { background: #f0f0f0; padding: 20px; border-radius: 5px; }
59+
</style>
60+
</head>
61+
<body>
62+
<div class="notice">
63+
<h1>📝 Notes</h1>
64+
<p>Typst 文档需要手动编译或使用 Tinymist 导出 HTML。</p>
65+
<p>当前时间: <span id="datetime"></span></p>
66+
<p>源文件: <code>notes/main.typ</code></p>
67+
</div>
68+
<script>
69+
document.getElementById('datetime').textContent = new Date().toLocaleString();
70+
</script>
71+
</body>
72+
</html>
73+
EOF
74+
echo "✅ 已创建 HTML 占位符: $OUT_FILE"
75+
fi
76+
77+
# === Git 操作 ===
78+
echo "📦 执行 git add/commit/push"
79+
80+
git add "$TYP_FILE" "$OUT_FILE"
81+
82+
git commit -m "$COMMIT_MSG"
83+
if [ $? -ne 0 ]; then
84+
echo "ℹ️ 没有变化,无需 push。"
85+
exit 0
86+
fi
87+
88+
git push
89+
if [ $? -eq 0 ]; then
90+
echo "✅ Push 完成!GitHub Pages 将自动部署。"
91+
else
92+
echo "❌ Push 失败,请检查网络或权限。"
93+
fi

0 commit comments

Comments
 (0)