Jekyll 博客搭建

Reno 于 2025-09-06 发布

开始

点击这里 从模板创建 命名为 Username.github.io

然后将仓库克隆到本地

git clone https://github.com/<Username>/<Username>.github.io blog

撰写

删除 blog/_postblog/post目录下的所有文件,其中 blog/_post 存放博客文章, blog/post存放媒体文件

博客文章需要在开头插入头信息,示例如下所示,对应的媒体文件放置于 blog/_post/2025/09/06,并直接使用相对位置调用

layout: mypost
title: Jekyll 博客搭建
date: 2025-09-06
published: true
categories: 博客
tags: 
 - blog

点击查看 所有头信息

如果已有博客文章需要迁移,重命名脚本

# --- PowerShell 重命名脚本 ---

# 路径已在上面通过 cd 命令设置,这里不再需要 $folderPath

Get-ChildItem -Path . -Filter "*.md" | ForEach-Object {
    $file = $_
    $originalFileName = $file.Name
    $lastWriteTime = $file.LastWriteTime # 获取文件的最后修改时间
    $datePrefix = $lastWriteTime.ToString("yyyy-MM-dd") # 格式化为 YYYY-MM-DD

    # 获取不带扩展名的原始文件名(例如 "my-awesome-post")
    $baseName = [System.IO.Path]::GetFileNameWithoutExtension($originalFileName)

    # 移除可能已经存在的 YYYY-MM-DD- 前缀,以防重复运行脚本或文件名已包含日期
    $cleanBaseName = $baseName -replace "^\d{4}-\d{2}-\d{2}-", ""

    # 构建新的完整文件名 (例如 "2023-10-27-my-awesome-post.md")
    $newFileName = "$datePrefix-$cleanBaseName.md"

    # 检查新旧文件名是否不同,避免不必要的重命名操作
    if ($originalFileName -ne $newFileName) {
        Write-Host "Renaming '$originalFileName' to '$newFileName'"
        Rename-Item -Path $file.FullName -NewName $newFileName # 加上 -WhatIf 会模拟操作,不实际执行
    } else {
        Write-Host "File '$originalFileName' already in correct format or does not need renaming, skipping."
    }
}

Write-Host "--- 脚本执行完毕。请检查上面的输出。---"
Write-Host "如果输出符合预期,请删除脚本末尾的 '-WhatIf' 后再次运行以实际重命名。"