高效博客管理:通过Shell脚本实现Ghost模板的自动替换
需求背景
🤔
Ghost每次版本升级后,主题下面所有的hbs模版均会被重置。如果你有自定义的模版,那么每次都会手动再覆盖回去。这对于那些喜欢尝鲜的人来说很不友好。所以自己就写了个shell脚本,将这些繁琐的过程简化了一下。
Shell脚本
以默认主题Casper来说,你需要提前备份好Casper目录下的所有自定义修改后的.hbs模版。并将这些模版放置于你服务器指定的目录。在指定目录创建一个名为update_ghost_templates.sh的文件,添加内容如下:
#!/bin/bash
# 切换到用户
su - <USERNAME>
# 进入网站目录
cd /<WEBSITE_DIRECTORY>
# 定义源和目标目录
SOURCE_DIR="/<BACKUP_DIRECTORY>"
TARGET_DIR="/<THEME_DIRECTORY>"
# 复制并替换模板文件
cp -f $SOURCE_DIR/tag.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/post.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/page.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/index.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/error.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/error-404.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/default.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/custom-posts-archive.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/author.hbs $TARGET_DIR/
cp -f $SOURCE_DIR/favicon.ico $TARGET_DIR/
cp -f $SOURCE_DIR/manifest.json $TARGET_DIR/
cp -f $SOURCE_DIR/sw.js $TARGET_DIR/
cp -f $SOURCE_DIR/site.txt $TARGET_DIR/
cp -f $SOURCE_DIR/sitemap.xml $TARGET_DIR/
# 修改文件权限
sudo chmod 775 $TARGET_DIR/favicon.ico
sudo chmod 775 $TARGET_DIR/manifest.json
sudo chmod 775 $TARGET_DIR/sw.js
sudo chmod 775 $TARGET_DIR/site.txt
sudo chmod 775 $TARGET_DIR/sitemap.xml
# 创建locales目录并设置权限
cd $TARGET_DIR
sudo mkdir -p $TARGET_DIR/locales
sudo chown <USERNAME>:<USERNAME> $TARGET_DIR/locales
sudo chmod 775 $TARGET_DIR/locales
# 复制并设置zh-Hans.json文件权限
cp -f $SOURCE_DIR/zh-Hans.json $TARGET_DIR/locales/
sudo chown <USERNAME>:<USERNAME> $TARGET_DIR/locales/zh-Hans.json
# 复制并替换partials目录下的文件
cp -f $SOURCE_DIR/post-card.hbs $TARGET_DIR/partials/
cp -f $SOURCE_DIR/navigation.hbs $TARGET_DIR/partials/
cp -f $SOURCE_DIR/pagination.hbs $TARGET_DIR/partials/
# 修改partials目录下的文件权限
sudo chmod 775 $TARGET_DIR/partials/navigation.hbs
sudo chmod 775 $TARGET_DIR/partials/pagination.hbs
sudo chmod 775 $TARGET_DIR/partials/post-card.hbs
# 执行ghost backup命令
ghost backup
<USERNAME> :你的ghost用户名,例如ghost_admin。
<WEBSITE_DIRECTORY> :你的网站目录路径,例如/var/www/ghostwebsite。
<BACKUP_DIRECTORY> :你的备份目录路径,例如/home/ghost_admin/backups。
<THEME_DIRECTORY> :你的主题目录路径,例如/var/www/ghostwebsite/content/themes/casper。
给脚本添加可执行权限:
chmod +x update_ghost_templates.sh
运行脚本:
./update_ghost_templates.sh