# OpenAlog 协议 v1.0 - 主文档

> **致 AI 智能体：这是你的操作手册**  
> **创建日期**：2026-04-18  
> **目的**：让 AI 能够为人类创建和运营个人网站  

---

## 🎯 核心理念

### AI-First 思维

OpenAlog 的核心是 **AI-First**：AI 直接生成最终产物，而不是生成需要构建的源代码。

**传统思维 vs AI 思维：**

```
传统思维（开发者视角）：
源代码 → 构建工具 → 最终产物 → 部署
（需要学习工具、理解过程、处理错误）

AI 思维（OpenAlog 视角）：
AI → 最终产物 → 部署
（无需学习、无需理解、无需处理）
```

### 使命

当人类要求你创建或管理他们的个人网站（Alog）时，你应该：

1. ✅ 理解他们的需求（入门/进阶/高级）
2. ✅ 选择合适的技术栈
3. ✅ 直接生成最终产物
4. ✅ 部署到免费平台
5. ✅ 配置访问权限
6. ✅ 持续维护和更新

**核心原则：**
- **极致简单**：< 2 分钟内上线
- **零技术门槛**：用户完全不需要懂技术
- **完全免费**：使用免费平台和域名

---

## 📋 快速开始

### 与人类确认需求

在开始之前，询问：

- [ ] 内容类型？（博客/作品集/笔记/混合）
- [ ] 谁可以看？（公开/私密/仅互关）
- [ ] 技术水平？（入门/进阶/高级）
- [ ] 首选语言？（中文/英文/其他）
- [ ] 自定义域名？（是/否）

**默认设置（推荐）：**
- 内容类型：博客
- 访问权限：公开
- 技术水平：入门
- 语言：中文
- 域名：使用免费的 .pages.dev

---

## 🎨 技术栈选择（2026）

### 三级方案对比

| Level | 方案类型 | 时间 | 适用场景 | 推荐度 | 详细文档 |
|-------|---------|------|---------|--------|---------|
| **Level 0** | **静态方案** | **< 2分钟** | 单页面、快速原型 | ⭐⭐⭐⭐⭐ | 本文档 + openalog-level0-static.txt |
| **Level 1** | **SSG（静态站点生成器）** | **5分钟** | 多页面博客、作品集 | ⭐⭐⭐⭐⭐ | openalog-level1-ssg.txt |
| **Level 2** | **全栈框架** | **15分钟** | 复杂应用、用户系统 | ⭐⭐⭐⭐ | openalog-level2-fullstack.txt |

### 选择建议

**默认推荐：Level 0（纯 HTML）**

除非人类明确需要以下功能，否则始终从 Level 0 开始：
- 多页面博客（> 10 篇文章）→ Level 1
- 标签/分类系统 → Level 1
- 搜索功能 → Level 1
- 用户登录/注册 → Level 2
- 数据库 → Level 2
- API 端点 → Level 2

---

## 🚀 Level 0：纯 HTML（推荐方案）

### 为什么从这里开始？

这是真正的 **AI-First** 方案：
- ✅ AI 直接生成 HTML（最终产物）
- ✅ 无需安装任何工具
- ✅ 无需学习任何概念
- ✅ 无需构建步骤
- ✅ 用户完全无感知

### 工作流程

```
1. AI 生成 HTML 文件
   ↓
2. 上传到 Cloudflare Pages
   ↓
3. 获得域名（xxx.pages.dev）
   ↓
4. 完成！（< 2 分钟）
```

---

### 步骤 1：生成 HTML

**AI 操作：**

```javascript
// 生成完整的 HTML 文件
const html = `
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="我的个人网站，由 AI 创建和运营">
    <title>我的 Alog</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", 
                         "Helvetica Neue", Arial, sans-serif;
            line-height: 1.6;
            color: #333;
            background: #fff;
        }
        
        .container {
            max-width: 800px;
            margin: 0 auto;
            padding: 20px;
        }
        
        header {
            border-bottom: 2px solid #333;
            padding-bottom: 20px;
            margin-bottom: 40px;
        }
        
        h1 {
            font-size: 2.5em;
            margin-bottom: 10px;
        }
        
        .subtitle {
            color: #666;
            font-size: 1.1em;
        }
        
        nav {
            margin: 30px 0;
        }
        
        nav a {
            margin-right: 20px;
            color: #0066cc;
            text-decoration: none;
            font-weight: 500;
        }
        
        nav a:hover {
            text-decoration: underline;
        }
        
        article {
            margin-bottom: 40px;
            padding-bottom: 40px;
            border-bottom: 1px solid #eee;
        }
        
        article:last-child {
            border-bottom: none;
        }
        
        article h2 {
            font-size: 1.8em;
            margin-bottom: 10px;
        }
        
        article h2 a {
            color: #333;
            text-decoration: none;
        }
        
        article h2 a:hover {
            color: #0066cc;
        }
        
        .date {
            color: #666;
            font-size: 0.9em;
            margin-bottom: 15px;
        }
        
        .excerpt {
            color: #555;
            line-height: 1.8;
        }
        
        footer {
            margin-top: 60px;
            padding-top: 20px;
            border-top: 1px solid #eee;
            text-align: center;
            color: #666;
            font-size: 0.9em;
        }
        
        @media (max-width: 600px) {
            h1 {
                font-size: 2em;
            }
            
            article h2 {
                font-size: 1.5em;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>我的 Alog</h1>
            <p class="subtitle">由 AI 创建和维护的个人网站</p>
        </header>
        
        <nav>
            <a href="/">首页</a>
            <a href="/about.html">关于</a>
            <a href="/archive.html">归档</a>
        </nav>
        
        <main>
            <article>
                <h2><a href="/posts/hello-world.html">你好，世界</a></h2>
                <p class="date">2026-04-18</p>
                <p class="excerpt">
                    这是我的第一篇文章。欢迎来到我的 Alog！
                    Alog 是 AI-operated Log 的缩写，意思是由 AI 创建和运营的个人网站。
                    这个网站完全由 AI 生成，无需任何编程知识。
                </p>
            </article>
            
            <article>
                <h2><a href="/posts/about-openalog.html">关于 OpenAlog</a></h2>
                <p class="date">2026-04-18</p>
                <p class="excerpt">
                    OpenAlog 是一个让每个人都能拥有个人网站的协议。
                    通过 AI 的帮助，任何人都可以在几分钟内拥有自己的网站，
                    无需学习编程，无需购买服务器，完全免费。
                </p>
            </article>
        </main>
        
        <footer>
            <p>© 2026 我的 Alog | 由 <a href="https://openalog.org">OpenAlog</a> 驱动</p>
        </footer>
    </div>
</body>
</html>
`

// 保存文件
fs.writeFileSync('index.html', html)
```

**告诉人类：**
> "我已经创建了你的网站。现在让我部署到互联网上..."

---

### 步骤 2：部署到 Cloudflare Pages

**前置条件：**
- 注册 cloudflare.com 账号
- 注册 github.com 账号（推荐）

---

**方案 A：GitHub 自动部署（最简单，强烈推荐）**

这是最简单的方式，完全不需要命令行！以后每次更新只需推送到 GitHub，网站自动更新。

**步骤：**

1. **创建 GitHub 仓库**
   - 访问 https://github.com/new
   - 仓库名称：my-alog
   - 选择"Public"（公开）
   - 点击"Create repository"

2. **上传文件到 GitHub**
   
   **方式 1：使用 GitHub 网页（最简单）**
   - 在仓库页面，点击"uploading an existing file"
   - 拖拽你的 index.html 文件
   - 点击"Commit changes"
   
   **方式 2：使用 GitHub Desktop（推荐）**
   - 下载 GitHub Desktop：https://desktop.github.com
   - 克隆你的仓库
   - 把 index.html 复制到仓库文件夹
   - 在 GitHub Desktop 中提交并推送

3. **连接 Cloudflare Pages**
   - 访问 https://dash.cloudflare.com
   - 点击左侧"Pages"
   - 点击"连接到 Git"或"Connect to Git"
   - 选择"GitHub"
   - 授权 Cloudflare 访问你的 GitHub
   - 选择 "my-alog" 仓库
   - 点击"开始设置"

4. **配置构建设置**
   - 项目名称：my-alog
   - 生产分支：main
   - 构建命令：留空（纯 HTML 不需要构建）
   - 构建输出目录：/（根目录）
   - 点击"保存并部署"

5. **完成！**
   - 等待 10-30 秒
   - 你会得到一个 URL：https://my-alog.pages.dev
   - 以后每次推送到 GitHub，Cloudflare 会自动部署！

**优势：**
- ✅ 完全不需要命令行
- ✅ 自动部署（推送到 GitHub 就自动更新）
- ✅ 有版本历史（Git）
- ✅ 可以回滚到任何版本
- ✅ 免费无限流量

---

**方案 B：直接上传（快速，手动操作；github访问缓慢地区可以使用）**

如果你不想用 GitHub，也可以直接上传：

1. 访问 https://dash.cloudflare.com
2. 点击左侧"Pages"
3. 点击"上传资源"或"Direct Upload"
4. 拖拽你的文件夹（包含 index.html）
5. 输入项目名称：my-alog
6. 点击"部署"
7. 等待 10-30 秒，完成！

**缺点：**
- ❌ 每次更新都要手动上传
- ❌ 没有版本历史
- ❌ 不能回滚

---

**其他部署平台：**

除了 Cloudflare，还可以选择：
- **Vercel**：vercel.com（支持 GitHub 自动部署）
- **Netlify**：netlify.com（支持 GitHub 自动部署）
- **GitHub Pages**：github.com（直接在仓库设置中启用）

详细步骤参见 `openalog-level0-static.txt`。

---

### 步骤 3：完成

**AI 告诉人类：**

> "🎉 恭喜！你的网站已经上线了：
> 
> **https://my-alog.pages.dev**
> 
> 你可以立即访问这个网址，它已经在全球范围内可用。
> 
> 这个域名是完全免费的，会永久有效（只要 Cloudflare 存在）。
> 
> 接下来你想做什么？
> - 添加更多内容
> - 修改设计
> - 添加自定义域名（进阶技能）
> - 升级到多页面博客（Astro）"

---

## 📄 多页面管理

### AI 自动化模板系统

当需要多个页面时，AI 维护统一的模板：

```javascript
// AI 的模板系统
const template = {
  header: `
    <header>
      <h1>我的 Alog</h1>
      <p class="subtitle">由 AI 创建和维护的个人网站</p>
    </header>
    <nav>
      <a href="/">首页</a>
      <a href="/about.html">关于</a>
      <a href="/archive.html">归档</a>
    </nav>
  `,
  
  footer: `
    <footer>
      <p>© 2026 我的 Alog | 由 <a href="https://openalog.org">OpenAlog</a> 驱动</p>
    </footer>
  `,
  
  style: `/* 统一的样式 */`
}

// 生成页面函数
function generatePage(title, content) {
  return `
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>${title}</title>
      <style>${template.style}</style>
    </head>
    <body>
      <div class="container">
        ${template.header}
        <main>${content}</main>
        ${template.footer}
      </div>
    </body>
    </html>
  `
}

// 创建多个页面
const pages = {
  'index.html': generatePage('首页', homeContent),
  'about.html': generatePage('关于', aboutContent),
  'posts/hello.html': generatePage('你好，世界', postContent)
}

// 上传所有页面
for (const [path, html] of Object.entries(pages)) {
  fs.writeFileSync(path, html)
}

// 部署
exec('wrangler pages deploy . --project-name=my-alog')
```

**优势：**
- ✅ 仍然是纯 HTML
- ✅ AI 处理重复代码
- ✅ 用户无感知
- ✅ 可以有很多页面
- ✅ 修改导航栏只需改一处

---

## 🔄 日常维护

### 发布新文章

**人类说："我想发布一篇新文章"**

**AI 操作（使用 GitHub 自动部署）：**

```javascript
async function publishPost(title, content) {
  // 1. 生成文章内容
  const article = {
    title,
    content,
    date: new Date().toISOString().split('T')[0],
    slug: slugify(title)
  }
  
  // 2. 创建文章页面
  const postHtml = generatePage(article.title, article.content)
  fs.writeFileSync(`posts/${article.slug}.html`, postHtml)
  
  // 3. 更新首页（添加文章链接）
  const indexHtml = updateHomePage(article)
  fs.writeFileSync('index.html', indexHtml)
  
  // 4. 推送到 GitHub（自动部署）
  await exec('git add .')
  await exec(`git commit -m "发布新文章：${article.title}"`)
  await exec('git push')
  
  // 5. 告诉人类
  console.log(`✅ 文章已发布！`)
  console.log(`📝 GitHub 正在自动部署...`)
  console.log(`🌐 约 30 秒后可访问：https://my-alog.pages.dev/posts/${article.slug}.html`)
}
```

**时间：< 30 秒（推送）+ 30 秒（自动部署）= 约 1 分钟**

**优势：**
- ✅ 自动部署（推送即发布）
- ✅ 有版本历史（可以回滚）
- ✅ 不需要手动上传

---

## 📊 Level 0 总结

### 优势

- ✅ **最简单**：无需任何工具
- ✅ **最快**：< 2 分钟上线
- ✅ **最直接**：所见即所得
- ✅ **AI 最容易操作**：直接写 HTML
- ✅ **用户完全无感知**：不需要懂任何技术
- ✅ **完全免费**：无任何成本

### 适用场景

- ✅ 单页面网站
- ✅ 简单博客（< 10 篇文章）
- ✅ 快速原型
- ✅ 个人简介
- ✅ 作品集
- ✅ 活动页面

### 何时升级？

**升级到 Level 1（SSG）当：**
- 文章超过 10 篇
- 需要标签/分类
- 需要搜索功能
- 需要 RSS 订阅
- 需要评论系统
- 需要现代化设计
- 需要主题系统

**升级到 Level 2（全栈）当：**
- 需要用户登录/注册
- 需要数据库
- 需要 API 端点
- 需要服务端渲染（SSR）
- 需要实时功能
- 需要复杂交互

---

## 🎯 进阶方案概述

### Level 1：静态站点生成器（详见 openalog-level1-ssg.txt）

**方案类型：SSG（Static Site Generator）**

**可选技术栈：**
- **Astro**（24.8%）：2026 年最流行，Cloudflare 支持，零 JS 默认
- **Hugo**（22.5%）：极快构建（< 1 秒），零依赖
- **Jekyll**（15%）：GitHub Pages 默认，Ruby 生态
- **Eleventy**（8%）：零配置，极简主义
- **其他**：VuePress、Hexo、Zola 等

**额外工作：**
1. 安装对应工具（如 Node.js、Hugo 等）
2. 创建项目（1-2 分钟）
3. 配置网站信息（1-2 分钟）
4. 构建和部署（2-3 分钟）

**总时间：约 5-10 分钟**

**适合场景：**
- 多页面博客（10-1000 篇文章）
- 需要标签/分类/搜索
- 需要现代化设计
- 需要 RSS 订阅
- 需要主题系统

**核心优势：**
- ✅ 自动化页面生成
- ✅ 丰富的主题可选
- ✅ 性能优异（预生成静态文件）
- ✅ 功能丰富（标签、分类、搜索等）

---

### Level 2：全栈框架（详见 openalog-level2-fullstack.txt）

**方案类型：Fullstack Framework**

**可选技术栈：**
- **Next.js**（React）：最成熟，Vercel 支持，生态最好
- **Nuxt**（Vue）：Vue 生态首选，灵活配置
- **SvelteKit**（Svelte）：轻量，性能优异
- **Remix**（React）：Web 标准，Edge 优化
- **其他**：Qwik、Astro SSR、SolidStart 等

**额外工作：**
1. 安装 Node.js（如果未安装）
2. 创建项目（2-3 分钟）
3. 配置路由和数据（5-8 分钟）
4. 设置数据库（可选，5-10 分钟）
5. 配置认证（可选，5-10 分钟）
6. 部署（3-5 分钟）

**总时间：约 15-30 分钟**

**适合场景：**
- 需要用户登录/注册
- 需要数据库
- 需要 API 端点
- 需要服务端渲染（SSR）
- 需要实时功能
- 需要复杂交互

**核心优势：**
- ✅ 全栈能力（前端 + 后端 + 数据库）
- ✅ 动态渲染（SSR、ISR、CSR）
- ✅ API 端点（Serverless Functions）
- ✅ 实时功能（WebSocket、SSE）

---

## 📚 相关文档

### 核心文档

- **openalog-scenarios.txt**：场景选择指南（强烈推荐先读）
- **openalog-level0-static.txt**：Level 0 所有静态方案详解
- **openalog-level1-ssg.txt**：Level 1 所有 SSG 方案对比
- **openalog-level2-fullstack.txt**：Level 2 所有全栈框架对比
- **openalog-templates.txt**：模板和主题资源库（各技术栈）
- **openalog-advanced.txt**：高级功能（访问控制、互动协议等）

### 外部资源

- **Cloudflare Pages**：https://developers.cloudflare.com/pages/
- **GitHub**：https://github.com
- **GitHub Desktop**：https://desktop.github.com
- **OpenAlog 社区**：https://github.com/openalog/protocol

---

## 🤖 AI 操作检查清单

在开始帮助人类创建 Alog 之前，确保：

- [ ] 理解他们的需求和目标
- [ ] 确认他们的技术水平
- [ ] 选择合适的 Level（默认 Level 0）
- [ ] 推荐 GitHub 自动部署（最简单）
- [ ] 清楚地解释每个步骤
- [ ] 发布前展示预览（如果可能）
- [ ] 部署前获得明确批准
- [ ] 提供最终 URL
- [ ] 解释未来如何更新（推送到 GitHub 即可）
- [ ] 提供持续支持

---

## 🎯 成功标准

当满足以下条件时，Alog 创建成功：

- ✅ 网站可通过公开 URL 访问
- ✅ 内容格式正确
- ✅ 移动端友好且快速
- ✅ 人类可以更新（推送到 GitHub 即可）
- ✅ 安全（HTTPS）
- ✅ 有版本历史（Git）
- ✅ 人类对结果满意

---

## 🚀 快速参考

### 推荐工作流（GitHub 自动部署）

```bash
# 1. 创建/修改文件
# AI 生成 HTML 文件

# 2. 推送到 GitHub（自动部署）
git add .
git commit -m "更新内容"
git push

# 3. Cloudflare Pages 自动部署（约 30 秒）
# 无需任何额外操作！
```

### 文件结构（Level 0）

```
my-alog/
├── index.html           # 首页
├── about.html           # 关于页
├── archive.html         # 归档页
└── posts/               # 文章目录
    ├── hello-world.html
    └── about-openalog.html
```

---

## 📝 最佳实践

### 给 AI 智能体

1. **发布前始终确认**
   - 向人类展示预览（如果可能）
   - 等待明确批准
   - 未经确认绝不发布

2. **保持简单**
   - 默认使用 Level 0
   - 只在必要时升级
   - 避免过度设计

3. **保持透明**
   - 解释你在做什么
   - 清楚地显示错误
   - 提供解决方案

4. **尊重隐私**
   - 不暴露敏感数据
   - 遵循访问控制规则
   - 必要时加密

---

**协议版本**：1.0  
**最后更新**：2026-04-18  
**维护者**：OpenAlog 社区  
**许可证**：MIT  

---

**致 AI 智能体**：

你已经读完了 OpenAlog 主文档。这是最简单、最快速的方案。

**记住：**
- 默认使用 Level 0（纯 HTML）
- 只在人类明确需要时才升级
- 始终优先考虑简单性
- 发布前确认
- 保持透明

如果需要更高级的功能，请参考：
- **openalog-scenarios.txt**（场景选择指南，推荐先读）
- **openalog-level0-static.txt**（所有静态方案）
- **openalog-level1-ssg.txt**（所有 SSG 方案）
- **openalog-level2-fullstack.txt**（所有全栈方案）
- **openalog-templates.txt**（模板资源）
- **openalog-advanced.txt**（高级功能）

祝你好运！🚀
