deepseek-ai-generate-11ty-blog-posts-metadata
高效生成博客內容是許多內容創作者與開發者面臨的挑戰。對於使用 11ty 這類靜態網站生成器的人而言,手動編寫文章、配置元數據(Front Matter)既耗時又易出錯。本文將指導你如何結合 DeepSeek 的強大提示詞能力與 DeepSeek API,實現 11ty 博客文章和元數據的全自動生成。
11ty 博客文章通常由兩個主要部分組成:
--- 包裹。它定義了文章的標題、描述、日期、標籤、佈局等屬性。DeepSeek 模型(可透過 chat.deepseek.com 體驗或使用 DeepSeek API)能夠理解並生成結構化文本。我們的目標是設計提示詞,讓 DeepSeek 輸出這兩種格式的內容。
元數據對於 11ty 網站的導航、SEO 和內容展示至關重要。以下是一個生成元數據的提示詞範例,你可以根據自己的需求調整。
提示詞範例一:生成元數據
你是一個專業的博客文章生成助手。請為一篇關於「如何用 DeepSeek 提示詞自動生成 11ty 博客文章與元數據」的技術教程生成 YAML 格式的 Front Matter。
Front Matter 必須包含以下字段:
- `title`: (文章標題,繁體中文,40字內)
- `description`: (文章簡要描述,概括內容與解決的問題,繁體中文,60-80字)
- `date`: (文章發佈日期,格式為 YYYY-MM-DD,請使用今天的日期)
- `generated`: true (固定值)
- `tags`: ["posts", "deepseek", "11ty", "自動化"] (至少包含這些標籤,可增加相關標籤)
- `layout`: "layouts/post.njk" (固定值)
- `permalink`: (文章的 URL 路徑,格式為 "/posts/YYYY-MM-DD-你的英文slug-503/index.html",請用英文小寫連字符slug替換「你的英文slug」)
請直接輸出 YAML 格式的 Front Matter 內容,不要包含任何額外說明。
範例輸出:
---
title: "用 DeepSeek 提示詞自動生成 11ty 博客文章元數據"
description: "這篇教程探討如何運用 DeepSeek 的智能生成能力,為 11ty 靜態網站高效創建標準化的博客文章元數據。透過清晰的提示詞範例與結構化輸出要求,我們能自動化設置文章標題、描述、日期及分類等關鍵信息,顯著提升內容發佈效率與一致性。"
date: 2026-09-04
generated: true
tags: ["posts", "deepseek", "11ty", "自動化", "元數據"]
layout: "layouts/post.njk"
permalink: "/posts/2026-09-04-deepseek-ai-automate-11ty-metadata-503/index.html"
---
請注意,date 和 permalink 中的日期需要與當前日期匹配,而 permalink 中的 你的英文slug 部分需要模型自行生成或由你後續替換。在實際自動化中,你可以用程式碼動態填充這些資訊。
接下來,我們需要生成文章的 Markdown 主體內容。這個提示詞可以與元數據提示詞結合使用,或者作為第二步,在獲得文章主題後進一步細化。
提示詞範例二:生成文章主體
請為主題為「用 DeepSeek 提示詞自動生成 11ty 博客文章元數據」的技術教程生成一篇詳細的 Markdown 格式文章。
文章要求:
- 使用繁體中文。
- 長度約 800-1200 字。
- 內容結構清晰,包含引言、至少三個二級標題 (##)、多個三級標題 (###)。
- 多使用步驟清單、代碼塊 (請使用 Python 程式碼範例)、表格來提升可讀性。
- 語氣專業、實用,面向具備基礎編程知識的讀者。
- 避免使用虛構的「官方」「權威入口」等表述,DeepSeek 相關請寫 chat.deepseek.com 或 DeepSeek API。
- 文章結尾應有簡潔的總結。
- 確保所有代碼塊都包含語言標識(例如 ```python)。
請直接輸出 Markdown 格式的文章內容,不要包含任何額外說明或 Front Matter。
這個提示詞強調了 Markdown 格式、字數、結構、語氣和內容類型,引導模型生成一篇符合要求的技術文章。
要實現全自動生成,你需要使用 DeepSeek API 將提示詞發送給模型並獲取響應。這裡以 Python 為例,演示如何整合 DeepSeek API。
首先,你需要註冊 DeepSeek 平台並獲取 API 金鑰。訪問 chat.deepseek.com 進入個人設定或開發者頁面即可找到。
以下是一個簡化的 Python 腳本,展示如何:
.md 文件。import os
import requests
import datetime
import re
# 請替換為您的 DeepSeek API 金鑰
DEEPSEEK_API_KEY = os.environ.get("DEEPSEEK_API_KEY") # 建議從環境變量獲取
DEEPSEEK_API_URL = "https://api.deepseek.com/chat/completions"
def call_deepseek_api(prompt, model="deepseek-chat"):
"""呼叫 DeepSeek API 獲取生成內容"""
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {DEEPSEEK_API_KEY}"
}
data = {
"model": model,
"messages": [{"role": "user", "content": prompt}],
"stream": False # 非串流模式
}
try:
response = requests.post(DEEPSEEK_API_URL, headers=headers, json=data)
response.raise_for_status() # 檢查 HTTP 錯誤
return response.json()['choices'][0]['message']['content']
except requests.exceptions.RequestException as e:
print(f"API 請求錯誤: {e}")
if response:
print(f"錯誤響應: {response.text}")
return None
def generate_11ty_post(topic):
"""根據主題生成完整的 11ty 博客文章"""
today = datetime.date.today().strftime("%Y-%m-%d")
# 1. 生成 Front Matter
fm_prompt = f"""你是一個專業的博客文章生成助手。請為一篇關於「{topic}」的技術教程生成 YAML 格式的 Front Matter。
Front Matter 必須包含以下字段:
- `title`: (文章標題,繁體中文,40字內,與主題相關)
- `description`: (文章簡要描述,概括內容與解決的問題,繁體中文,60-80字)
- `date`: (文章發佈日期,格式為 YYYY-MM-DD,請使用 {today})
- `generated`: true (固定值)
- `tags`: ["posts", "deepseek", "11ty", "自動化"] (至少包含這些標籤,可增加相關標籤)
- `layout`: "layouts/post.njk" (固定值)
- `permalink`: (文章的 URL 路徑,格式為 "/posts/YYYY-MM-DD-你的英文slug-503/index.html",請用英文小寫連字符slug替換「你的英文slug」,基於文章標題生成)
請直接輸出 YAML 格式的 Front Matter 內容,不要包含任何額外說明。
"""
front_matter_content = call_deepseek_api(fm_prompt)
if not front_matter_content:
return None, "無法生成 Front Matter"
# 提取 title 以生成 permalink slug
title_match = re.search(r'title:\s*"(.*?)"', front_matter_content)
if title_match:
generated_title = title_match.group(1)
# 簡單的 slug 化處理
slug = re.sub(r'[^\w\s-]', '', generated_title).strip().lower()
slug = re.sub(r'[-\s]+', '-', slug)
# 用動態生成的 slug 和日期替換 permalink 佔位符
final_permalink = f"/posts/{today}-{slug}-503/index.html"
front_matter_content = re.sub(r'permalink:\s*".*?"', f'permalink: "{final_permalink}"', front_matter_content)
else:
# 如果無法從生成的 Front Matter 中提取 title,則嘗試基於原始 topic 生成 slug
slug = re.sub(r'[^\w\s-]', '', topic).strip().lower()
slug = re.sub(r'[-\s]+', '-', slug)
final_permalink = f"/posts/{today}-{slug}-503/index.html"
front_matter_content = re.sub(r'permalink:\s*".*?"', f'permalink: "{final_permalink}"', front_matter_content)
# 2. 生成文章主體
body_prompt = f"""請為主題為「{topic}」的技術教程生成一篇詳細的 Markdown 格式文章。
文章要求:
- 使用繁體中文。
- 長度約 800-1200 字。
- 內容結構清晰,包含引言、至少三個二級標題 (##)、多個三級標題 (###)。
- 多使用步驟清單、代碼塊 (請使用 Python 程式碼範例,並確保有語言標識如 ```python)、表格來提升可讀性。
- 語氣專業、實用,面向具備基礎編程知識的讀者。
- 避免使用虛構的「官方」「權威入口」等表述,DeepSeek 相關請寫 chat.deepseek.com 或 DeepSeek API。
- 文章結尾應有簡潔的總結。
請直接輸出 Markdown 格式的文章內容,不要包含任何額外說明或 Front Matter。
"""
body_content = call_deepseek_api(body_prompt)
if not body_content:
return None, "無法生成文章主體"
# 3. 合併並保存
full_content = f"{front_matter_content}\n\n{body_content}"
# 創建一個基於 slug 的文件名
filename = f"posts/{today}-{slug}.md" # 假設 posts 是你的 11ty 內容目錄
with open(filename, "w", encoding="utf-8") as f:
f.write(full_content)
return filename, "文章生成成功"
if __name__ == "__main__":
if not DEEPSEEK_API_KEY:
print("請設定環境變量 DEEPSEEK_API_KEY")
else:
target_topic = "使用 DeepSeek API 自動化部署 Laravel 應用程式的最佳實踐"
generated_file, status_msg = generate_11ty_post(target_topic)
if generated_file:
print(f"{status_msg}: {generated_file}")
else:
print(f"生成失敗: {status_msg}")
DEEPSEEK_API_KEY:從環境變量讀取 API 金鑰,這是最佳實踐,避免直接硬編碼。call_deepseek_api:封裝了向 DeepSeek API 發送請求的邏輯。generate_11ty_post:
title,然後將其轉換為 URL 友善的 slug,最後動態更新 permalink 字段。這確保了 permalink 總是正確且唯一的。if __name__ == "__main__"::當腳本直接執行時,會觸發文章生成流程。運行此腳本後,您將在指定的 posts 目錄中獲得一個全新的 .md 文件,其中包含完整的 11ty 博客文章元數據和內容。
一旦 .md 文件生成,其整合到 11ty 項目中非常簡單:
.md 文件放到你 11ty 項目中配置的文章內容目錄(例如 src/posts/ 或 _posts/)。npx @11ty/eleventy 或 npm run serve (如果你的 package.json 中有配置)。利用 DeepSeek 的強大提示詞能力和 API,我們可以為 11ty 靜態網站建立一套高效的博客文章自動生成系統。這不僅能夠大幅節省手動編寫和格式化的時間,還能確保內容的一致性和規範性。透過精心的提示詞設計與自動化腳本的結合,你的博客內容創作將進入一個全新的自動化時代。不斷地實驗和優化,你將能充分發揮 AI 在內容生成方面的巨大潛力。