Blogger 網站 轉 md 格式

node js 環境安裝可以觀看 (link)

wordpress 網站選擇想要的文章

  1. 到 WordPress 後台 > 工具 > 匯出程式
  2. 選擇文章,你可以在透過分類、作者、發佈日期、狀態來進行篩選
  3. 會得到一個 xml 檔案

透過 github 上面的 Opensource (link) 下載專案至 local 端

git clone https://github.com/palaniraja/blog2md.git

安裝所需的依賴包

npm install

Cmd 輸入 WordPress 備份轉換命令

node index.js w rororo-.WordPress.2025-09-30.xml out

成功轉成 md

將連結 網站的 url 打包到 local

  • 將 markdown 全部放置到 posts 資料夾
  • 建立一個 images 的資料夾
  • 外層撰寫一個 processMdImage.py
import os
import re
import requests
from glob import glob

# 設定資料夾路徑
markdown_dir = "./posts"   # 這裡放你的 markdown 檔案資料夾
image_dir = "images"       # 圖片要存放的資料夾(會放在 markdown_dir 裡)

# 確保圖片資料夾存在
os.makedirs(os.path.join(markdown_dir, image_dir), exist_ok=True)

# Markdown 圖片語法
pattern = re.compile(r'!\[.*?\]\((https?://[^\)]+)\)')

def download_image(url, folder):
    filename = url.split("/")[-1]  # 取最後的檔名
    local_path = os.path.join(folder, filename)
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                      "AppleWebKit/537.36 (KHTML, like Gecko) "
                      "Chrome/120.0.0.0 Safari/537.36",
        "Referer": "https://rororohao.com/"
    }
    try:
        r = requests.get(url, headers=headers, timeout=10)
        if r.status_code == 200:
            with open(local_path, "wb") as img:
                img.write(r.content)
            print(f"✅ Downloaded: {url} -> {local_path}")
        else:
            print(f"⚠️ Failed to download {url} ({r.status_code})")
    except Exception as e:
        print(f"❌ Error downloading {url}: {e}")
    return filename


def process_markdown(file_path):
    with open(file_path, "r", encoding="utf-8") as f:
        content = f.read()

    def replace_link(match):
        url = match.group(1)
        filename = download_image(url, os.path.join(markdown_dir, image_dir))
        return f"![]({os.path.join('./' + image_dir, filename)})"

    new_content = pattern.sub(replace_link, content)

    # 覆寫回原始檔案
    with open(file_path, "w", encoding="utf-8") as f:
        f.write(new_content)
    print(f"🎉 Updated {file_path}")

# 找出所有 md 檔案
for md_file in glob(os.path.join(markdown_dir, "*.md")):
    process_markdown(md_file)

print("\n✅ 全部處理完成!")

python 執行程式

python processMdImage.py

成功產生對應的 image 並且改寫 markdown 裡面的路徑