node js 環境安裝可以觀看 (link)
wordpress 網站選擇想要的文章
- 到 WordPress 後台 > 工具 > 匯出程式
- 選擇文章,你可以在透過分類、作者、發佈日期、狀態來進行篩選
- 會得到一個 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"})"
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 裡面的路徑
