Skip to content

Commit 50a0100

Browse files
committed
更新 notes
1 parent f7131ca commit 50a0100

File tree

2 files changed

+90
-44
lines changed

2 files changed

+90
-44
lines changed

static/notes/notes.pdf

98.9 KB
Binary file not shown.

update-notes.sh

Lines changed: 90 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,81 @@
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 路径(Git Bash 风格路径) ===
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(需 >= 0.13 才有较完善的 HTML 实验特性)。"
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 自动编译为 HTML(实验性,需要开启 features html) ===
42+
# else
43+
# echo "ℹ️ 未发现 Tinymist HTML,尝试使用 typst CLI 编译为 HTML(实验性)..."
44+
45+
# # 使用环境变量 + 命令行开关开启 HTML 导出
46+
# TYPST_FEATURES=html \
47+
# "$TYPST_CMD" compile "$TYP_FILE" --format html --features html "$OUT_FILE"
48+
# EXIT_CODE=$?
49+
50+
# if [ $EXIT_CODE -ne 0 ]; then
51+
# echo "❌ Typst 编译为 HTML 失败(exit code: $EXIT_CODE)。"
52+
# echo " - 请检查 Typst 版本是否支持 HTML 导出(需开启 html feature)"
53+
# echo " - 或在 VSCode 用 Tinymist 手动导出 notes/main.html 后再运行本脚本。"
54+
# exit 1
55+
# fi
56+
57+
# echo "✅ Typst CLI 编译完成: $OUT_FILE"
58+
# fi
59+
60+
# # === Git 操作 ===
61+
# echo "📦 执行 git add/commit/push"
62+
63+
# git add "$TYP_FILE" "$OUT_FILE"
64+
65+
# git commit -m "$COMMIT_MSG"
66+
# if [ $? -ne 0 ]; then
67+
# echo "ℹ️ 没有变化,无需 push。"
68+
# exit 0
69+
# fi
70+
71+
# git push
72+
# if [ $? -eq 0 ]; then
73+
# echo "✅ Push 完成!GitHub Pages 将自动部署。"
74+
# else
75+
# echo "❌ Push 失败,请检查网络或权限。"
76+
# fi
77+
78+
179
#!/bin/bash
280

381
# === 参数 ===
@@ -9,11 +87,10 @@ fi
987

1088
# === 路径 ===
1189
TYP_FILE="notes/main.typ"
12-
TINYMIST_HTML="notes/main.html"
1390
OUT_DIR="static/notes"
14-
OUT_FILE="${OUT_DIR}/index.html"
91+
OUT_FILE="${OUT_DIR}/notes.pdf"
1592

16-
# === Windows 下的 typst 路径 ===
93+
# === Windows 下 Typst 可执行文件 ===
1794
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"
1895

1996
# === 检查 Typst ===
@@ -29,51 +106,20 @@ fi
29106
mkdir -p "$OUT_DIR"
30107

31108
echo "------------------------------------------------------"
32-
echo "📄 更新 Typst 笔记中..."
109+
echo "📄 编译 Typst PDF 中..."
33110
echo "------------------------------------------------------"
34111

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"
112+
# === 编译 PDF ===
113+
$TYPST_CMD compile "$TYP_FILE" "$OUT_FILE"
114+
EXITCODE=$?
40115

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"
116+
if [ $EXITCODE -ne 0 ]; then
117+
echo "❌ Typst PDF 编译失败 (exit $EXITCODE)"
118+
exit 1
75119
fi
76120

121+
echo "✅ PDF 已输出到: $OUT_FILE"
122+
77123
# === Git 操作 ===
78124
echo "📦 执行 git add/commit/push"
79125

@@ -90,4 +136,4 @@ if [ $? -eq 0 ]; then
90136
echo "✅ Push 完成!GitHub Pages 将自动部署。"
91137
else
92138
echo "❌ Push 失败,请检查网络或权限。"
93-
fi
139+
fi

0 commit comments

Comments
 (0)