纯html博客需采用posts/目录存放独立文章页、index.html仅作摘要列表,并抽离公共片段配合构建脚本注入,css放/assets/css/且置于head中,js避免阻塞渲染。

直接用 HTML 从零搭博客模板,不是不行,但得先认清一件事:纯 HTML 没法动态更新文章、没路由、没数据管理——它只适合静态内容展示。如果你真想“从零开始”,又希望后续能维护、加新文章、不手动改每个页面,那必须立刻引入一个极简但关键的机制:文件结构约定 + 静态生成逻辑(哪怕手写脚本),否则很快会卡在重复改 index.html、post-1.html、post-2.html 上。
怎么组织 HTML 文件结构才不踩坑
别一上来就写 index.html 然后往里堆所有内容。静态博客的核心是复用和可维护,哪怕不用框架,也要靠目录分层和明确职责:
-
index.html只负责列出文章摘要(标题、日期、简短描述),不放正文 - 每篇文章单独一个 HTML 文件,统一放在
posts/目录下,命名如posts/my-first-post.html - 公共部分(页头、页脚、导航)抽成独立片段?HTML 原生不支持 include,硬塞会导致改一处全复制——不如用构建思维:后续用
sed或 Python 脚本批量注入,或直接接受“小项目就手写两处” - CSS 和 JS 放
assets/css/style.css和assets/js/main.js,路径写绝对(以/开头),避免子目录下相对路径错乱
<link rel="stylesheet"> 和 <script></script> 的加载顺序影响首屏
浏览器解析 HTML 是自上而下,CSS 阻塞渲染,JS 默认阻塞解析。对简约博客来说,首屏就是文章列表,别让样式等 JS:
- 把
<link rel="stylesheet" href="/assets/css/style.css">放在里,且确保style.css文件足够小( - 把
<script src="/assets/js/main.js"></script>放在前,或加defer属性(<script defer src="/assets/js/main.js"></script>) - 如果 JS 只为实现搜索或暗色模式切换,考虑用内联小脚本代替外部文件——省一次 HTTP 请求,比“代码整洁”更实在
用原生 HTML 语义标签替代 div 堆砌
很多人写“简约”反而用一堆 <div class="container"><div class="row"><div class="col">,既没语义也不简约。浏览器原生支持的语义标签,直接提升可访问性和 SEO:
<ul>
<li>文章列表用 <code><main></main> 包裹,每篇摘要用 <article></article>,标题用 <h2></h2>(不是 <h1></h1>,首页 <h1></h1> 应留给博客名)
<header></header>,导航用 <nav></nav>,页脚用 <footer></footer>,侧边栏(如有)用 <aside></aside>
<time datetime="2024-06-15">Jun 15, 2024</time>,搜索引擎和屏幕阅读器能识别margin-top: 1em 比 margin: 0 0 1rem 0 更符合 HTML 本意真正难的不是写第一个 index.html,而是决定哪些东西“必须自动化”。比如文章元信息(标题、日期、摘要)要不要统一放在 HTML 注释里,供后续脚本提取?要不要接受每次新增文章都手动更新 index.html 的链接列表?这些决策点,比选什么字体、配色更重要。











