博客布局更新总结
更新概述
根据 r12f.com 的 SONiC 文档样式 参考,将博客从居中布局改为全网页分散显示布局。
主要修改
1. 容器宽度调整
文件: style.scss
// 修改前
.container {
margin: 0 auto;
max-width: 740px;
padding: 0 10px;
width: 100%;
}
// 修改后
.container {
margin: 0 auto;
max-width: 100%;
padding: 0 20px;
width: 100%;
}
2. 头部样式优化
文件: style.scss
- 添加了浅灰色背景 (
#f8f9fa
) - 优化了边框和间距
- 改进了视觉层次
.wrapper-masthead {
margin-bottom: 30px;
background: #f8f9fa;
border-bottom: 1px solid #e9ecef;
}
3. 导航样式现代化
文件: style.scss
- 添加了悬停效果
- 改进了字体大小和间距
- 添加了过渡动画
nav a {
padding: 8px 12px;
border-radius: 4px;
transition: background-color 0.2s ease;
&:hover {
background-color: #e9ecef;
color: $blue;
}
&::after {
content: '';
position: absolute;
bottom: -5px;
left: 50%;
width: 0;
height: 2px;
background-color: $blue;
transition: all 0.3s ease;
transform: translateX(-50%);
}
&:hover::after {
width: 80%;
}
}
4. 布局结构优化
文件: _layouts/default.html
<!-- 修改前 -->
<div id="main" role="main" class="container">
<article class="page">
<h1>首页布局修复完成</h1>
<div class="entry">
<h1 id="首页布局修复完成">首页布局修复完成</h1>
<h2 id="问题描述">问题描述</h2>
<p>用户反馈”SONiC与SDNoS架构深度解析:网络操作系统的未来”这篇文章显示在首页引言前面,位置不对。</p>
<h2 id="问题分析">问题分析</h2>
<h3 id="根本原因">根本原因</h3>
<p><code class="language-plaintext highlighter-rouge">jekyll-readme-index</code> 插件会自动在首页显示 README.md 的内容,导致首页结构混乱:</p>
<p><strong>实际显示顺序</strong>:</p>
<ol>
<li>README.md 内容(包括文章)</li>
<li>引言部分</li>
<li>博客文章部分</li>
</ol>
<p><strong>期望显示顺序</strong>:</p>
<ol>
<li>引言部分</li>
<li>博客文章部分</li>
</ol>
<h3 id="技术原因">技术原因</h3>
<ul>
<li><code class="language-plaintext highlighter-rouge">jekyll-readme-index</code> 插件会自动将 README.md 的内容插入到首页</li>
<li>README.md 中包含了博客文章的引用和链接</li>
<li>这导致文章内容显示在自定义的引言前面</li>
</ul>
<h2 id="修复方案">修复方案</h2>
<h3 id="1-禁用-jekyll-readme-index-插件">1. 禁用 jekyll-readme-index 插件</h3>
<p><strong>文件</strong>: <code class="language-plaintext highlighter-rouge">_config.yml</code></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># 修复前</span>
<span class="na">plugins</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">jekyll-readme-index</span>
<span class="c1"># 修复后</span>
<span class="na">plugins</span><span class="pi">:</span>
<span class="c1"># - jekyll-readme-index # 已禁用</span>
</code></pre></div></div>
<h3 id="2-保持自定义首页布局">2. 保持自定义首页布局</h3>
<p><strong>文件</strong>: <code class="language-plaintext highlighter-rouge">index.html</code></p>
<p>继续使用自定义的 <code class="language-plaintext highlighter-rouge">index.html</code> 文件来控制首页内容,确保:</p>
<ul>
<li>引言部分在最前面</li>
<li>博客文章部分在引言后面</li>
<li>布局顺序正确</li>
</ul>
<h2 id="修复效果">修复效果</h2>
<h3 id="修复后的首页结构">修复后的首页结构</h3>
<ol>
<li><strong>引言部分</strong>
<ul>
<li>欢迎来到 i1to 的博客</li>
<li>个人介绍和关注领域</li>
<li>联系方式</li>
</ul>
</li>
<li><strong>博客文章部分</strong>
<ul>
<li>技术文章(包括SONiC文章)</li>
<li>网络协议文档</li>
</ul>
</li>
</ol>
<h3 id="技术优势">技术优势</h3>
<ul>
<li>✅ 完全控制首页布局</li>
<li>✅ 引言部分在最前面</li>
<li>✅ 文章按预期顺序显示</li>
<li>✅ 保持自定义设计</li>
</ul>
<h2 id="插件影响分析">插件影响分析</h2>
<h3 id="jekyll-readme-index-插件">jekyll-readme-index 插件</h3>
<ul>
<li><strong>原始目的</strong>: 自动显示 README.md 内容</li>
<li><strong>实际效果</strong>: 干扰自定义首页布局</li>
<li><strong>解决方案</strong>: 禁用插件,使用自定义布局</li>
</ul>
<h3 id="其他插件保持正常">其他插件保持正常</h3>
<ul>
<li><code class="language-plaintext highlighter-rouge">jekyll-sitemap</code>: 生成站点地图</li>
<li><code class="language-plaintext highlighter-rouge">jekyll-feed</code>: 生成 RSS 订阅</li>
<li><code class="language-plaintext highlighter-rouge">jekyll-paginate</code>: 分页功能</li>
<li><code class="language-plaintext highlighter-rouge">jekyll-seo-tag</code>: SEO 优化</li>
<li>其他插件功能不受影响</li>
</ul>
<h2 id="验证方法">验证方法</h2>
<h3 id="1-检查首页布局">1. 检查首页布局</h3>
<p>访问 https://i1to.github.io/ 确认:</p>
<ul>
<li>引言在最前面</li>
<li>文章在引言后面</li>
<li>布局顺序正确</li>
</ul>
<h3 id="2-检查文章显示">2. 检查文章显示</h3>
<p>确认 SONiC 文章正确显示在”技术文章”部分</p>
<h3 id="3-检查功能完整性">3. 检查功能完整性</h3>
<p>确认其他功能(导航、链接等)正常工作</p>
<h2 id="测试页面">测试页面</h2>
<p>创建了测试页面 <code class="language-plaintext highlighter-rouge">homepage-layout-test.md</code> 用于验证修复效果:</p>
<ul>
<li><strong>访问地址</strong>: https://i1to.github.io/homepage-layout-test/</li>
<li><strong>功能</strong>: 说明修复过程和验证方法</li>
</ul>
<h2 id="文件修改清单">文件修改清单</h2>
<ol>
<li><strong><code class="language-plaintext highlighter-rouge">_config.yml</code></strong>
<ul>
<li>禁用 <code class="language-plaintext highlighter-rouge">jekyll-readme-index</code> 插件</li>
</ul>
</li>
<li><strong><code class="language-plaintext highlighter-rouge">homepage-layout-test.md</code></strong> (新增)
<ul>
<li>创建测试页面验证修复效果</li>
</ul>
</li>
</ol>
<h2 id="总结">总结</h2>
<p>✅ <strong>问题识别</strong>: 找到了 <code class="language-plaintext highlighter-rouge">jekyll-readme-index</code> 插件干扰布局的原因<br />
✅ <strong>修复实施</strong>: 禁用了干扰插件<br />
✅ <strong>布局恢复</strong>: 首页现在按正确顺序显示<br />
✅ <strong>功能保持</strong>: 其他功能正常工作</p>
<p>现在首页应该按正确的顺序显示:引言部分在最前面,然后是博客文章部分,SONiC文章会正确显示在”技术文章”部分。</p>
<hr />
<p><em>修复完成时间: 2024年1月</em></p>
</div>
</article>
</div>
<!-- 修改后 -->
<div id="main" role="main">
<div class="content-wrapper">
<article class="page">
<h1>首页布局修复完成</h1>
<div class="entry">
<h1 id="首页布局修复完成">首页布局修复完成</h1>
<h2 id="问题描述">问题描述</h2>
<p>用户反馈”SONiC与SDNoS架构深度解析:网络操作系统的未来”这篇文章显示在首页引言前面,位置不对。</p>
<h2 id="问题分析">问题分析</h2>
<h3 id="根本原因">根本原因</h3>
<p><code class="language-plaintext highlighter-rouge">jekyll-readme-index</code> 插件会自动在首页显示 README.md 的内容,导致首页结构混乱:</p>
<p><strong>实际显示顺序</strong>:</p>
<ol>
<li>README.md 内容(包括文章)</li>
<li>引言部分</li>
<li>博客文章部分</li>
</ol>
<p><strong>期望显示顺序</strong>:</p>
<ol>
<li>引言部分</li>
<li>博客文章部分</li>
</ol>
<h3 id="技术原因">技术原因</h3>
<ul>
<li><code class="language-plaintext highlighter-rouge">jekyll-readme-index</code> 插件会自动将 README.md 的内容插入到首页</li>
<li>README.md 中包含了博客文章的引用和链接</li>
<li>这导致文章内容显示在自定义的引言前面</li>
</ul>
<h2 id="修复方案">修复方案</h2>
<h3 id="1-禁用-jekyll-readme-index-插件">1. 禁用 jekyll-readme-index 插件</h3>
<p><strong>文件</strong>: <code class="language-plaintext highlighter-rouge">_config.yml</code></p>
<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1"># 修复前</span>
<span class="na">plugins</span><span class="pi">:</span>
<span class="pi">-</span> <span class="s">jekyll-readme-index</span>
<span class="c1"># 修复后</span>
<span class="na">plugins</span><span class="pi">:</span>
<span class="c1"># - jekyll-readme-index # 已禁用</span>
</code></pre></div></div>
<h3 id="2-保持自定义首页布局">2. 保持自定义首页布局</h3>
<p><strong>文件</strong>: <code class="language-plaintext highlighter-rouge">index.html</code></p>
<p>继续使用自定义的 <code class="language-plaintext highlighter-rouge">index.html</code> 文件来控制首页内容,确保:</p>
<ul>
<li>引言部分在最前面</li>
<li>博客文章部分在引言后面</li>
<li>布局顺序正确</li>
</ul>
<h2 id="修复效果">修复效果</h2>
<h3 id="修复后的首页结构">修复后的首页结构</h3>
<ol>
<li><strong>引言部分</strong>
<ul>
<li>欢迎来到 i1to 的博客</li>
<li>个人介绍和关注领域</li>
<li>联系方式</li>
</ul>
</li>
<li><strong>博客文章部分</strong>
<ul>
<li>技术文章(包括SONiC文章)</li>
<li>网络协议文档</li>
</ul>
</li>
</ol>
<h3 id="技术优势">技术优势</h3>
<ul>
<li>✅ 完全控制首页布局</li>
<li>✅ 引言部分在最前面</li>
<li>✅ 文章按预期顺序显示</li>
<li>✅ 保持自定义设计</li>
</ul>
<h2 id="插件影响分析">插件影响分析</h2>
<h3 id="jekyll-readme-index-插件">jekyll-readme-index 插件</h3>
<ul>
<li><strong>原始目的</strong>: 自动显示 README.md 内容</li>
<li><strong>实际效果</strong>: 干扰自定义首页布局</li>
<li><strong>解决方案</strong>: 禁用插件,使用自定义布局</li>
</ul>
<h3 id="其他插件保持正常">其他插件保持正常</h3>
<ul>
<li><code class="language-plaintext highlighter-rouge">jekyll-sitemap</code>: 生成站点地图</li>
<li><code class="language-plaintext highlighter-rouge">jekyll-feed</code>: 生成 RSS 订阅</li>
<li><code class="language-plaintext highlighter-rouge">jekyll-paginate</code>: 分页功能</li>
<li><code class="language-plaintext highlighter-rouge">jekyll-seo-tag</code>: SEO 优化</li>
<li>其他插件功能不受影响</li>
</ul>
<h2 id="验证方法">验证方法</h2>
<h3 id="1-检查首页布局">1. 检查首页布局</h3>
<p>访问 https://i1to.github.io/ 确认:</p>
<ul>
<li>引言在最前面</li>
<li>文章在引言后面</li>
<li>布局顺序正确</li>
</ul>
<h3 id="2-检查文章显示">2. 检查文章显示</h3>
<p>确认 SONiC 文章正确显示在”技术文章”部分</p>
<h3 id="3-检查功能完整性">3. 检查功能完整性</h3>
<p>确认其他功能(导航、链接等)正常工作</p>
<h2 id="测试页面">测试页面</h2>
<p>创建了测试页面 <code class="language-plaintext highlighter-rouge">homepage-layout-test.md</code> 用于验证修复效果:</p>
<ul>
<li><strong>访问地址</strong>: https://i1to.github.io/homepage-layout-test/</li>
<li><strong>功能</strong>: 说明修复过程和验证方法</li>
</ul>
<h2 id="文件修改清单">文件修改清单</h2>
<ol>
<li><strong><code class="language-plaintext highlighter-rouge">_config.yml</code></strong>
<ul>
<li>禁用 <code class="language-plaintext highlighter-rouge">jekyll-readme-index</code> 插件</li>
</ul>
</li>
<li><strong><code class="language-plaintext highlighter-rouge">homepage-layout-test.md</code></strong> (新增)
<ul>
<li>创建测试页面验证修复效果</li>
</ul>
</li>
</ol>
<h2 id="总结">总结</h2>
<p>✅ <strong>问题识别</strong>: 找到了 <code class="language-plaintext highlighter-rouge">jekyll-readme-index</code> 插件干扰布局的原因<br />
✅ <strong>修复实施</strong>: 禁用了干扰插件<br />
✅ <strong>布局恢复</strong>: 首页现在按正确顺序显示<br />
✅ <strong>功能保持</strong>: 其他功能正常工作</p>
<p>现在首页应该按正确的顺序显示:引言部分在最前面,然后是博客文章部分,SONiC文章会正确显示在”技术文章”部分。</p>
<hr />
<p><em>修复完成时间: 2024年1月</em></p>
</div>
</article>
</div>
</div>
5. 响应式字体优化
文件: style.scss
@media (min-width: 768px) {
body {
font-size: 16px;
line-height: 1.6;
}
h1 {
font-size: 2.5rem;
}
h2 {
font-size: 2rem;
}
h3 {
font-size: 1.5rem;
}
}
新增功能
1. 内容包装器
- 添加了
.content-wrapper
类来保持内容可读性 - 最大宽度 1200px,居中显示
- 在保持全宽布局的同时确保内容不会过宽
2. 全宽区域支持
- 添加了
.full-width
类用于需要全宽显示的内容 - 可以突破内容包装器的限制
3. 测试页面
- 创建了
/layout-test/
页面用于展示布局效果 - 包含代码示例、表格和列表展示
视觉效果对比
修改前
- 内容居中显示,最大宽度 740px
- 简单的导航样式
- 基础的响应式设计
- 白色背景,简单边框
修改后
- 全宽显示,充分利用屏幕空间
- 现代化的导航设计,带悬停效果
- 优化的响应式体验
- 浅灰色头部背景,更清晰的视觉层次
- 更好的字体大小和行高
技术特性
1. 全宽布局
- 移除了容器的最大宽度限制
- 内容现在可以充分利用整个屏幕宽度
- 保持了良好的可读性
2. 现代化设计
- 更清爽的头部设计
- 悬停效果和过渡动画
- 响应式移动端适配
3. 改进的排版
- 更好的字体大小和行高
- 优化的间距和边距
- 更清晰的视觉层次
浏览器兼容性
- 支持现代浏览器(Chrome, Firefox, Safari, Edge)
- 响应式设计,支持移动设备
- 使用 CSS3 特性,需要现代浏览器支持
测试页面
访问 /layout-test/
页面可以查看布局效果,包括:
- 全宽显示效果
- 现代化导航
- 代码示例展示
- 表格和列表样式
总结
本次布局更新成功将博客从传统的居中布局改为现代化的全宽布局,参考了 r12f.com 的设计风格,提供了更好的用户体验和视觉效果。布局现在可以充分利用屏幕空间,同时保持了良好的可读性和现代化的设计感。
布局更新完成时间: 2024年1月 参考样式: r12f.com SONiC 文档