生成新博客文章
生成,并要求用户在命令行里输入文章名称,以及tag(用空格隔开)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| #!/bin/bash
BLOG_PATH="/Users/jf/blog"
if [ -f ~/.zshrc ]; then source ~/.zshrc elif [ -f ~/.bash_profile ]; then source ~/.bash_profile fi
echo "========================================" echo " 正在进入博客目录: $BLOG_PATH" echo "========================================"
cd "$BLOG_PATH" || { echo "❌ 路径不存在"; read -p "按回车退出..."; exit 1; }
echo "" echo "请输入新文章的标题:" read -p "📝 Title > " POST_TITLE
if [ -z "$POST_TITLE" ]; then echo "❌ 标题不能为空!窗口即将关闭。" sleep 2 osascript -e 'tell application "Terminal" to close front window' & exit fi
echo "" echo "请输入标签 (多个标签用空格隔开,例如: hexo mac 教程):" read -p "🏷️ Tags > " POST_TAGS
echo "----------------------------------------" echo "正在运行 hexo new..." OUTPUT=$(hexo new "$POST_TITLE") echo "$OUTPUT" echo "----------------------------------------"
if [ $? -eq 0 ]; then FILE_PATH=$(echo "$OUTPUT" | grep 'Created:' | awk '{print $NF}') FILE_PATH=$(echo "$FILE_PATH" | xargs)
FILE_PATH="${FILE_PATH/\~/$HOME}"
if [ -f "$FILE_PATH" ]; then if [ ! -z "$POST_TAGS" ]; then echo "正在自动写入标签..." FORMATTED_TAGS="${POST_TAGS// /, }" FINAL_TAG_STR="[$FORMATTED_TAGS]" sed -i '' "s/^tags:.*/tags: $FINAL_TAG_STR/" "$FILE_PATH" echo "✅ 标签已注入: $FINAL_TAG_STR" else echo "ℹ️ 未输入标签,跳过标签写入步骤。" fi else echo "⚠️ 未能找到生成的文件。请检查 Hexo 输出。" fi else echo "❌ Hexo new 命令执行失败,请检查输出。" fi
echo "----------------------------------------" echo "🎉 操作全部完成!" echo "窗口将在 2 秒后自动关闭..." sleep 2 osascript -e 'tell application "Terminal" to close front window' & exit
|
更新博客内容
更新博客内容(Hexo n) 并Deploy(Hexo d),随后提示是否运行Server(hexo s),如是运行server命令并随后在chrome中打开 http://localhost:4000/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| #!/bin/bash
BLOG_PATH="/Users/jf/blog"
if [ -f ~/.zshrc ]; then source ~/.zshrc elif [ -f ~/.bash_profile ]; then source ~/.bash_profile fi
echo "========================================" echo " 正在进入博客目录: $BLOG_PATH" echo "========================================"
cd "$BLOG_PATH" || { echo "❌ 路径不存在"; read -p "按回车退出..."; exit 1; }
echo "" echo "请输入新文章的标题:" read -p "📝 Title > " POST_TITLE
if [ -z "$POST_TITLE" ]; then echo "❌ 标题不能为空!窗口即将关闭。" sleep 2 osascript -e 'tell application "Terminal" to close front window' & exit fi
echo "" echo "请输入标签 (多个标签用空格隔开,例如: hexo mac 教程):" read -p "🏷️ Tags > " POST_TAGS
echo "----------------------------------------" echo "正在运行 hexo new..." OUTPUT=$(hexo new "$POST_TITLE") echo "$OUTPUT" echo "----------------------------------------"
if [ $? -eq 0 ]; then FILE_PATH=$(echo "$OUTPUT" | grep 'Created:' | awk '{print $NF}') FILE_PATH=$(echo "$FILE_PATH" | xargs)
FILE_PATH="${FILE_PATH/\~/$HOME}"
if [ -f "$FILE_PATH" ]; then if [ ! -z "$POST_TAGS" ]; then echo "正在自动写入标签..." FORMATTED_TAGS="${POST_TAGS// /, }" FINAL_TAG_STR="[$FORMATTED_TAGS]" sed -i '' "s/^tags:.*/tags: $FINAL_TAG_STR/" "$FILE_PATH" echo "✅ 标签已注入: $FINAL_TAG_STR" else echo "ℹ️ 未输入标签,跳过标签写入步骤。" fi else echo "⚠️ 未能找到生成的文件。请检查 Hexo 输出。" fi else echo "❌ Hexo new 命令执行失败,请检查输出。" fi
echo "----------------------------------------" echo "🎉 操作全部完成!" echo "窗口将在 2 秒后自动关闭..." sleep 2 osascript -e 'tell application "Terminal" to close front window' & exit
|