<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Helloworld的笔记 Blog</title>
        <link>https://c8a118ad.bullydoss.pages.dev</link>
        <description>Helloworld的笔记 Blog</description>
        <lastBuildDate>Tue, 02 Jan 2024 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>zh-CN</language>
        <item>
            <title><![CDATA[示例文章：技术栈迁移完成]]></title>
            <link>https://c8a118ad.bullydoss.pages.dev/example-post</link>
            <guid>https://c8a118ad.bullydoss.pages.dev/example-post</guid>
            <pubDate>Tue, 02 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[这是一篇示例文章，用于演示新博客系统的功能。]]></description>
            <content:encoded><![CDATA[<p>这是一篇示例文章，用于演示新博客系统的功能。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-新功能展示">✨ 新功能展示<a href="https://c8a118ad.bullydoss.pages.dev/example-post#-%E6%96%B0%E5%8A%9F%E8%83%BD%E5%B1%95%E7%A4%BA" class="hash-link" aria-label="✨ 新功能展示的直接链接" title="✨ 新功能展示的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="代码高亮">代码高亮<a href="https://c8a118ad.bullydoss.pages.dev/example-post#%E4%BB%A3%E7%A0%81%E9%AB%98%E4%BA%AE" class="hash-link" aria-label="代码高亮的直接链接" title="代码高亮的直接链接" translate="no">​</a></h3>
<div class="language-javascript codeBlockContainer_Ckt0 theme-code-block"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-javascript codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><div class="token-line"><span class="token comment">// Worker API 示例</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain"></span><span class="token keyword">export</span><span class="token plain"> </span><span class="token keyword">default</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain">  </span><span class="token keyword">async</span><span class="token plain"> </span><span class="token function">fetch</span><span class="token punctuation">(</span><span class="token parameter">request</span><span class="token parameter punctuation">,</span><span class="token parameter"> env</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain">    </span><span class="token keyword">const</span><span class="token plain"> url </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword">new</span><span class="token plain"> </span><span class="token class-name">URL</span><span class="token punctuation">(</span><span class="token plain">request</span><span class="token punctuation">.</span><span class="token plain">url</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain">    </span><br></div><div class="token-line"><span class="token plain">    </span><span class="token keyword">if</span><span class="token plain"> </span><span class="token punctuation">(</span><span class="token plain">url</span><span class="token punctuation">.</span><span class="token plain">pathname </span><span class="token operator">===</span><span class="token plain"> </span><span class="token string">'/api/posts'</span><span class="token punctuation">)</span><span class="token plain"> </span><span class="token punctuation">{</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain">      </span><span class="token keyword">const</span><span class="token plain"> posts </span><span class="token operator">=</span><span class="token plain"> </span><span class="token keyword">await</span><span class="token plain"> env</span><span class="token punctuation">.</span><span class="token constant">DB</span><span class="token punctuation">.</span><span class="token function">prepare</span><span class="token punctuation">(</span><span class="token string">'SELECT * FROM posts'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">all</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain">      </span><span class="token keyword">return</span><span class="token plain"> Response</span><span class="token punctuation">.</span><span class="token function">json</span><span class="token punctuation">(</span><span class="token plain">posts</span><span class="token punctuation">.</span><span class="token plain">results</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain">    </span><span class="token punctuation">}</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain">    </span><br></div><div class="token-line"><span class="token plain">    </span><span class="token keyword">return</span><span class="token plain"> </span><span class="token keyword">new</span><span class="token plain"> </span><span class="token class-name">Response</span><span class="token punctuation">(</span><span class="token string">'Hello from Cloudflare Workers!'</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain">  </span><span class="token punctuation">}</span><span class="token punctuation">,</span><span class="token plain"></span><br></div><div class="token-line"><span class="token plain"></span><span class="token punctuation">}</span><span class="token punctuation">;</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="列表支持">列表支持<a href="https://c8a118ad.bullydoss.pages.dev/example-post#%E5%88%97%E8%A1%A8%E6%94%AF%E6%8C%81" class="hash-link" aria-label="列表支持的直接链接" title="列表支持的直接链接" translate="no">​</a></h3>
<p><strong>迁移后的技术栈优势：</strong></p>
<ol>
<li class="">🚀 <strong>Cloudflare Pages</strong> - 全球 CDN 部署</li>
<li class="">⚡ <strong>Workers</strong> - 无服务器 API</li>
<li class="">💾 <strong>D1 数据库</strong> - SQLite 边缘数据库</li>
<li class="">📦 <strong>R2 存储</strong> - 对象存储（无出口费）</li>
<li class="">💬 <strong>Giscus</strong> - 基于 GitHub Discussions 的评论</li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="图片上传功能">图片上传功能<a href="https://c8a118ad.bullydoss.pages.dev/example-post#%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0%E5%8A%9F%E8%83%BD" class="hash-link" aria-label="图片上传功能的直接链接" title="图片上传功能的直接链接" translate="no">​</a></h3>
<p>博客集成了 <strong>R2 对象存储</strong>，支持图片上传功能：</p>
<p><strong>使用方式：</strong></p>
<ol>
<li class="">在投稿页面或管理后台找到上传按钮</li>
<li class="">选择图片文件（JPG/PNG/GIF/WebP，最大 5MB）</li>
<li class="">图片自动上传到 Cloudflare R2 存储</li>
<li class="">系统会生成 Markdown 格式的图片链接并复制到剪贴板</li>
<li class="">直接粘贴到文章中即可</li>
</ol>
<p><strong>优势：</strong></p>
<ul>
<li class="">✅ 全球 CDN 加速，访问速度快</li>
<li class="">✅ 无出口费用（相比 AWS S3 节省成本）</li>
<li class="">✅ 自动压缩和优化</li>
<li class="">✅ 支持批量上传</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="深入了解">深入了解<a href="https://c8a118ad.bullydoss.pages.dev/example-post#%E6%B7%B1%E5%85%A5%E4%BA%86%E8%A7%A3" class="hash-link" aria-label="深入了解的直接链接" title="深入了解的直接链接" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="为什么选择这个技术栈">为什么选择这个技术栈？<a href="https://c8a118ad.bullydoss.pages.dev/example-post#%E4%B8%BA%E4%BB%80%E4%B9%88%E9%80%89%E6%8B%A9%E8%BF%99%E4%B8%AA%E6%8A%80%E6%9C%AF%E6%A0%88" class="hash-link" aria-label="为什么选择这个技术栈？的直接链接" title="为什么选择这个技术栈？的直接链接" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="成本效益">成本效益<a href="https://c8a118ad.bullydoss.pages.dev/example-post#%E6%88%90%E6%9C%AC%E6%95%88%E7%9B%8A" class="hash-link" aria-label="成本效益的直接链接" title="成本效益的直接链接" translate="no">​</a></h4>
<table><thead><tr><th>服务</th><th>免费额度</th><th>超出费用</th></tr></thead><tbody><tr><td>Pages</td><td>无限站点</td><td>$0</td></tr><tr><td>Workers</td><td>10万次请求/天</td><td>$5/百万次</td></tr><tr><td>D1</td><td>5GB + 2500万次读取/月</td><td>$0.30/GB</td></tr><tr><td>R2</td><td>10GB + A类1000万次</td><td>$0.15/GB</td></tr></tbody></table>
<p><strong>总计：个人博客完全可以免费运行！</strong> ✅</p>
<h4 class="anchor anchorTargetStickyNavbar_Vzrq" id="性能对比">性能对比<a href="https://c8a118ad.bullydoss.pages.dev/example-post#%E6%80%A7%E8%83%BD%E5%AF%B9%E6%AF%94" class="hash-link" aria-label="性能对比的直接链接" title="性能对比的直接链接" translate="no">​</a></h4>
<ul>
<li class=""><strong>旧架构</strong>：VPS 单点部署，延迟取决于服务器位置</li>
<li class=""><strong>新架构</strong>：全球边缘网络，用户访问最近的节点</li>
</ul>
<p>预计访问速度提升 <strong>300-500%</strong>！</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="下一步计划">下一步计划<a href="https://c8a118ad.bullydoss.pages.dev/example-post#%E4%B8%8B%E4%B8%80%E6%AD%A5%E8%AE%A1%E5%88%92" class="hash-link" aria-label="下一步计划的直接链接" title="下一步计划的直接链接" translate="no">​</a></h2>
<ul class="contains-task-list containsTaskList_mC6p">
<li class="task-list-item"><input type="checkbox" disabled="" checked=""> <!-- -->完成基础迁移</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->添加更多自定义主题样式</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->实现全文搜索功能</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->添加 RSS 订阅支持</li>
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->集成分析工具</li>
</ul>
<hr>
<p><em>本文由 Docusaurus 生成，部署在 Cloudflare Pages</em></p>]]></content:encoded>
            <category>教程</category>
            <category>Cloudflare</category>
            <category>Docusaurus</category>
        </item>
        <item>
            <title><![CDATA[欢迎来到 Helloworld 的笔记]]></title>
            <link>https://c8a118ad.bullydoss.pages.dev/welcome</link>
            <guid>https://c8a118ad.bullydoss.pages.dev/welcome</guid>
            <pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[欢迎来到我的个人博客！这里记录着我的：]]></description>
            <content:encoded><![CDATA[<p>欢迎来到我的个人博客！这里记录着我的：</p>
<ul>
<li class="">📚 <strong>学习笔记</strong> - 技术学习和知识整理</li>
<li class="">💡 <strong>思维风暴</strong> - 创意想法和深度思考</li>
<li class="">☀️ <strong>生活碎片</strong> - 日常生活点滴</li>
<li class="">✍️ <strong>投稿专区</strong> - 读者投稿展示</li>
</ul>
<p>本站使用 <strong>Docusaurus</strong> 构建，部署在 <strong>Cloudflare Pages</strong>，评论系统采用 <strong>Giscus</strong>。</p>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="技术栈">技术栈<a href="https://c8a118ad.bullydoss.pages.dev/welcome#%E6%8A%80%E6%9C%AF%E6%A0%88" class="hash-link" aria-label="技术栈的直接链接" title="技术栈的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>前端</strong>: Docusaurus (React)</li>
<li class=""><strong>部署</strong>: Cloudflare Pages + CDN</li>
<li class=""><strong>API</strong>: Cloudflare Workers</li>
<li class=""><strong>数据库</strong>: Cloudflare D1 (SQLite)</li>
<li class=""><strong>图片存储</strong>: Cloudflare R2</li>
<li class=""><strong>评论</strong>: Giscus (GitHub Discussions)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="开始阅读">开始阅读<a href="https://c8a118ad.bullydoss.pages.dev/welcome#%E5%BC%80%E5%A7%8B%E9%98%85%E8%AF%BB" class="hash-link" aria-label="开始阅读的直接链接" title="开始阅读的直接链接" translate="no">​</a></h3>
<p>使用顶部导航栏浏览不同分类的文章，或使用搜索功能查找感兴趣的内容。</p>]]></content:encoded>
            <category>介绍</category>
            <category>公告</category>
        </item>
        <item>
            <title><![CDATA[Helloworld的笔记]]></title>
            <link>https://c8a118ad.bullydoss.pages.dev/2024/01/01/welcome</link>
            <guid>https://c8a118ad.bullydoss.pages.dev/2024/01/01/welcome</guid>
            <pubDate>Mon, 01 Jan 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[欢迎来到我的个人博客！这里记录着我的学习笔记、思维风暴和生活碎片。]]></description>
            <content:encoded><![CDATA[<p>欢迎来到我的个人博客！这里记录着我的学习笔记、思维风暴和生活碎片。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-分类导航">📚 分类导航<a href="https://c8a118ad.bullydoss.pages.dev/2024/01/01/welcome#-%E5%88%86%E7%B1%BB%E5%AF%BC%E8%88%AA" class="hash-link" aria-label="📚 分类导航的直接链接" title="📚 分类导航的直接链接" translate="no">​</a></h2>
<ul>
<li class=""><strong>学习笔记</strong> - 技术学习和知识整理</li>
<li class=""><strong>思维风暴</strong> - 创意想法和深度思考</li>
<li class=""><strong>生活碎片</strong> - 日常生活点滴</li>
<li class=""><strong>投稿专区</strong> - 读者投稿展示</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-评论">💬 评论<a href="https://c8a118ad.bullydoss.pages.dev/2024/01/01/welcome#-%E8%AF%84%E8%AE%BA" class="hash-link" aria-label="💬 评论的直接链接" title="💬 评论的直接链接" translate="no">​</a></h2>
<p>本站使用 <a href="https://giscus.app/" target="_blank" rel="noopener noreferrer" class="">Giscus</a> 评论系统，基于 GitHub Discussions，欢迎参与讨论！</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="-投稿">📮 投稿<a href="https://c8a118ad.bullydoss.pages.dev/2024/01/01/welcome#-%E6%8A%95%E7%A8%BF" class="hash-link" aria-label="📮 投稿的直接链接" title="📮 投稿的直接链接" translate="no">​</a></h2>
<p>有想法想要分享？点击「我要投稿」提交你的文章！</p>]]></content:encoded>
        </item>
    </channel>
</rss>