当前位置: 首页 > news >正文

GitHub Pages + Jekyll 博客搭建指南(静态网站)

目录

  • 🚀 静态网站及其生成工具指南
    • 🌍 什么是静态网站?
      • 📌 静态网站的优势
      • ⚖️ 静态网站 VS 动态网站
    • 🚀 常见的静态网站生成器对比
    • 🛠️ 使用 GitHub Pages + Jekyll 搭建个人博客
      • 📌 1. 创建 GitHub 仓库
      • 📌 2. 安装 Jekyll(本地环境搭建)
        • 📌 安装 Ruby 和 Bundler
      • 📌 3. 创建 Jekyll 博客
      • 📌 4. 上传博客到 GitHub
      • 📌 5. 启用 GitHub Pages
    • 🎯 总结

🚀 静态网站及其生成工具指南

🌍 什么是静态网站?

静态网站(Static Website)指 所有网页内容(HTML、CSS、JavaScript、图片等)在服务器上是固定的,不需要服务器动态处理或数据库支持,用户访问时,服务器直接返回这些文件给浏览器进行展示。

📌 静态网站的优势

  1. 加载速度快:服务器直接返回静态文件,无需动态渲染。
  2. 安全性高:无数据库或后台逻辑,减少攻击风险。
  3. 部署简便:可托管在 GitHub Pages、Vercel、Netlify 等平台。
  4. 低维护成本:不需要服务器管理,适合长期运行。

⚖️ 静态网站 VS 动态网站

特点静态网站动态网站
内容更新需手动修改代码由数据库或后端代码动态生成
交互能力仅支持前端交互支持后端处理和数据库交互
访问速度快(直接返回页面)慢(服务器计算请求)
安全性高(无服务器端漏洞)低(可能有 SQL 注入、XSS 攻击)
适用场景博客、文档、企业官网论坛、电商、社交平台

🚀 常见的静态网站生成器对比

生成器语言适用场景特点
JekyllRuby博客、GitHub PagesGitHub Pages 官方支持,适合个人博客
HugoGo文档、博客、官网速度极快,单个二进制文件,无需安装依赖
HexoNode.js技术博客适合程序员,支持丰富插件和主题
GatsbyReact现代网站、数据驱动基于 React,支持 GraphQL,适用于动态内容
VuePressVue.js文档网站Vue 驱动,可作为技术文档平台

🛠️ 使用 GitHub Pages + Jekyll 搭建个人博客

📌 1. 创建 GitHub 仓库

  1. 访问 GitHub 并 登录

  2. 创建一个新的仓库,命名格式:

    yourusername.github.io
    

    (替换 yourusername 为你的 GitHub 用户名)

  3. 选择 Public(公开),点击 Create repository 创建仓库。


📌 2. 安装 Jekyll(本地环境搭建)

Jekyll 需要 Ruby 运行环境,建议使用最新版本的 Ruby。

📌 安装 Ruby 和 Bundler
  • Windows

    1. 安装 RubyInstaller

    2. Windows + R 输入 cmd ,运行以下命令检查安装:

      ruby -v
      gem -v
      

      若看到 Ruby 和 Gem 的版本号,则说明安装成功。

      在这里插入图片描述

  • macOS

    # 1. 在 Mac 上,推荐使用 Homebrew 安装 Ruby:
    brew install ruby# 2. 安装后,更新环境变量:
    echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc# 3. 验证安装:
    ruby -v
    gem -v
    
  • Linux

    • Ubuntu/Debian 系统

      sudo apt update
      sudo apt install ruby-full build-essential zlib1g-dev
      ruby -v
      gem -v
      
    • CentOS 系统

      sudo yum install ruby
      ruby -v
      gem -v
      
  • 安装 Bundler(Ruby 依赖管理器)

    # 安装命令
    gem install bundler# 安装验证
    bundler -v
    

    在这里插入图片描述

    [!NOTE]

    注: gem install jekyll bundler 这条命令用于全局安装 Jekyll 和 Bundler,它不依赖于当前所在的目录。这意味着你可以在任何目录下打开 命令提示符(cmd) 后执行该命令,只需满足以下条件:

    1. Ruby 已安装:确保你已经在 Windows 系统上正确安装了 Ruby(推荐使用 RubyInstaller)

    2. PATH 环境变量已配置:安装 Ruby 后,请确认 Ruby 的 bin 目录已添加到系统的 PATH 环境变量中,这样你就可以在任意目录下使用 gem 命令。


📌 3. 创建 Jekyll 博客

cmd终端运行:

# 1.安装 Jekyll 和必要依赖:
gem install jekyll bundler# 2.初始化一个新的 Jekyll 项目:
jekyll new my-blog# 3.进入博客目录并安装依赖:
cd my-blog
bundle install# 4.启动本地服务器
bundle exec jekyll serve# 5.打开浏览器访问 http://127.0.0.1:4000 预览博客

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


📌 4. 上传博客到 GitHub

  1. 进入博客目录:

    cd my-blog
    
  2. 初始化 Git 仓库: 在终端中,确保进入你的博客目录并执行以下命令:

    # 在当前目录下初始化一个本地 Git 仓库
    git init# 将 “当前目录及其子目录中的所有文件” 添加到 Git 的暂存区(Staging Area)
    git add .# 将暂存区中的文件提交到本地的 Git 仓库,并附加一条提交说明(commit message)
    git commit -m "Initial commit"
    
  3. 关联 GitHub 远程仓库并推送:

    git remote add origin https://github.com/yourusername/yourusername.github.io.git
    git branch -M main
    
  4. 将代码推送到 GitHub:

    git push -u origin main
    

📌 5. 启用 GitHub Pages

  1. 进入 GitHub 仓库 SettingsPages

  2. Branch 选择 main 分支→ Folder: / (root),点击 Save

  3. 访问:

    https://yourusername.github.io
    

    你的博客已上线!🎉


🎯 总结

  • Jekyll:适合 GitHub Pages,简洁稳定。
  • Hugo:最快,适合大规模博客/文档。
  • Hexo:Node.js + 主题丰富,适合技术博客。
  • Gatsby:React + GraphQL,适合现代网站。
  • VuePress:Vue.js + 文档站点最佳。

相关文章:

GitHub Pages + Jekyll 博客搭建指南(静态网站)

目录 🚀 静态网站及其生成工具指南🌍 什么是静态网站?📌 静态网站的优势⚖️ 静态网站 VS 动态网站 🚀 常见的静态网站生成器对比🛠️ 使用 GitHub Pages Jekyll 搭建个人博客📌 1. 创建 GitHu…...

21.[前端开发]Day21-HTML5新增内容-CSS函数-BFC-媒体查询

王者荣耀-网页缩小的问题处理 为什么会产生这个问题?怎么去解决 可以给body设置最小宽度 1 HTML5新增元素 HTML5语义化元素 HTML5其他新增元素 2 Video、Audio元素 HTML5新增元素 - video video支持的视频格式 video的兼容性写法 HTML5新增元素 - audio audio…...

C++SLT(五)——list

目录 一、list的介绍二、list的使用list的定义方式 三、list的插入和删除push_back和pop_backpush_front和pop_frontinserterase 四、list的迭代器使用五、list的元素获取六、list的大小控制七、list的操作函数sort和reversemergeremoveremove_ifuniqueassignswap 一、list的介…...

网络安全ITP是什么 网络安全产品ips

DS/IPS都是专门针对计算机病毒和黑客入侵而设计的网络安全设备 1、含义不同 IDS :入侵检测系统(发现非法入侵只能报警不能自己过滤) 做一个形象的比喻:假如防火墙是一幢大楼的门锁,那么IDS就是这幢大楼里的监视系统…...

评估大模型(LLM)摘要生成能力:方法、挑战与策略

大语言模型(LLMs)有着强大的摘要生成能力,为信息快速提取和处理提供了便利。从新闻文章的快速概览到学术文献的要点提炼,LLMs 生成的摘要广泛应用于各个场景。然而,准确评估这些摘要的质量却颇具挑战。如何确定一个摘要…...

《PYTHON语言程序设计》(2018版)1.20修改这道题,利用类的方式(二) 接近成功....(上)

在类的外面建立4个顶点 turtle.speed(20)ran1_x1 random.randint(-69, -60) ran1_y1 random.randint(-5, 10) ran1_x2 random.randint(-69, -60) ran1_y2 random.randint(75, 80) ran1_x3 random.randint(79, 90) ran1_y3 random.randint(70, 85) ran1_x4 random.randin…...

USB子系统学习(四)使用libusb读取鼠标数据

文章目录 1、声明2、HID协议2.1、描述符2.2、鼠标数据格式 3、应用程序4、编译应用程序5、测试 1、声明 本文是在学习韦东山《驱动大全》USB子系统时,为梳理知识点和自己回看而记录,全部内容高度复制粘贴。 韦老师的《驱动大全》:商品详情 …...

【产品小白】用户调研的需求是否都采纳?

在用户调研中,并非所有需求都应被直接采纳,而应通过系统分析转化为符合产品战略的有效决策。以下是关键思考框架: 1. 用户需求 ≠ 产品需求 矛盾性:用户个体需求可能相互冲突(如A功能的去留),需…...

软件测试就业

文章目录 2.6 初识一、软件测试理论二、软件的生产过程三、软件测试概述四、软件测试目的五、软件开发与软件测试的区别?六、学习内容 2.7 理解一、软件测试的定义二、软件测试的生命周期三、软件测试的原则四、软件测试分类五、软件的开发与测试模型1.软件开发模型…...

qt部分核心机制

作业 1> 手动将登录项目实现,不要使用拖拽编程 并且,当点击登录按钮时,后台会判断账号和密码是否相等,如果相等给出登录成功的提示,并且关闭当前界面,发射一个跳转信号,如果登录失败&#…...

【RocketMQ】RocketMq之ConsumeQueue深入研究

目录 一:RocketMq 整体文件存储介绍 二:ConsumeQueue 的文件结构 三:ConsumeQueue 写入和查询流程 一:RocketMq 整体文件存储介绍 存储⽂件主要分为三个部分: CommitLog:存储消息的元数据。所有消息都会…...

如今物联网的快速发展对hmi的更新有哪些积极影响

一、功能更加丰富 物联网的快速发展使得 HMI(人机界面)能够连接更多的设备和系统,从而实现更加丰富的功能。例如,通过与传感器网络的连接,HMI 可以实时显示设备的运行状态、环境参数等信息,为用户提供更加…...

linux 性能60秒分析

linux 60秒分析 需要运行的工具是 1、uptime 2、dmesg | tail 3、vmstat 1 4、mpstat -P ALL 1 5、pidstat 1 6、iostat -xz 1 7、free -m 8、sar -n DEV 1 9、sar -n TCP,ETCP 1 10、topuptime 快速检查平均负载 [rootaaaaaa ~]# uptime15:17:20 up 3 days, 14 min, 7 us…...

Redisson全面解析:从使用方法到工作原理的深度探索

文章目录 写在文章开头详解Redisson基本数据类型基础配置字符串操作列表操作映射集阻塞队列延迟队列更多关于Redisson详解Redisson 中的原子类详解redisson中的发布订阅模型小结参考写在文章开头 Redisson是基于原生redis操作指令上进一步的封装,屏蔽了redis数据结构的实现细…...

neo4j-解决导入数据后出现:Database ‘xxxx‘ is unavailable. Run :sysinfo for more info.

目录 问题描述 解决方法 重新导入 问题描述 最近在linux上部署了neo4j,参照之前写的博客:neo4j-数据的导出和导入_neo4j数据导入导出-CSDN博客 进行了数据导出、导入操作。但是在进行导入后,重新登录网页版neo4j,发现对应的数据库状态变…...

51单片机之引脚图(详解)

8051单片机引脚分类与功能笔记 1. 电源引脚 VCC(第40脚):接入5V电源,为单片机提供工作电压。GND(第20脚):接地端,确保电路的电位参考点。 2.时钟引脚 XTAL1(第19脚&a…...

Hangfire.NET:.NET任务调度

引言:为何选择 Hangfire? 在开发.NET 应用程序时,我们常常会遇到这样的场景:应用程序需要定期发送报告,像财务报表,每日业务数据汇总报告等,这些报告需要定时生成并发送给相关人员;…...

深入解析:React 事件处理的秘密与高效实践

在 React 中,事件处理是构建交互式应用的核心。本文将带你深入探索 React 事件处理的机制、最佳实践以及如何避免常见陷阱,助你写出更高效、更健壮的代码。 1. React 事件处理的独特之处 合成事件(SyntheticEvent) React 使用合…...

开源像素字体,可用于独立游戏开发

方舟像素字体 / Ark Pixel Font 开源的泛中日韩像素字体,使用 SIL 开放字体许可证 第1.1版(SIL Open Font License 1.1)授权。 支持 10、12 和 16 像素尺寸。 支持语言特殊字形:中文-中国大陆、中文-香港特别行政区、中文-台湾…...

【论文阅读】Comment on the Security of “VOSA“

Comment on the Security of Verifiable and Oblivious Secure Aggregation for Privacy-Preserving Federated Learning -- 关于隐私保护联邦中可验证与遗忘的安全聚合的安全性 论文来源摘要Introduction回顾 VOSA 方案对VOSA不可伪造性的攻击对于类型 I 的攻击对于类型 II 的…...

Qwerty Learner 终极指南:通过打字训练快速掌握英语词汇的免费工具

Qwerty Learner 终极指南:通过打字训练快速掌握英语词汇的免费工具 【免费下载链接】qwerty-learner 项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner 想要在敲击键盘的同时轻松记忆英语单词吗?Qwerty Learner 正是为你设计的…...

影墨·今颜小红书模型与Claude Code的协同编程应用设想

影墨今颜小红书模型与Claude Code的协同编程应用设想 最近在琢磨一个挺有意思的组合:让擅长生成代码的Claude Code和专门为小红书内容优化的影墨今颜模型一起干活。听起来有点跨界,但仔细想想,这俩搭档起来,说不定能解决不少实际…...

Audio Pixel Studio效果惊艳集锦:10类垂直场景语音生成+分离真实案例

Audio Pixel Studio效果惊艳集锦:10类垂直场景语音生成分离真实案例 1. 引言:当声音创作变得触手可及 想象一下,你正在为一个短视频项目寻找合适的旁白配音,但预算有限,专业配音师的价格让你望而却步。或者&#xff…...

如何用PPI网络community分析发现潜在药物靶点?微生信可视化保姆教程

从PPI网络到药物靶点:基于Community分析的生物标记物发现全流程 在生物医学研究的浩瀚海洋中,蛋白质-蛋白质相互作用(PPI)网络犹如一张精密的城市交通图,而community分析则帮助我们识别出其中的"功能街区"。想象一下,当…...

vLLM-v0.17.1在专利分析系统中的应用:权利要求生成与比对

vLLM-v0.17.1在专利分析系统中的应用:权利要求生成与比对 1. 技术背景与需求分析 专利分析是知识产权领域的重要工作,其中权利要求书的生成与比对是核心环节。传统方法依赖人工撰写和比对,效率低下且一致性难以保证。随着大语言模型技术的发…...

GIS小白必看!Global Mapper处理正射影像的5个高频问题解答(含奥维地图导入避坑指南)

GIS新手实战指南:Global Mapper正射影像处理全解析 第一次打开Global Mapper时,那些密密麻麻的工具栏和复杂的参数设置确实让人望而生畏。去年我刚接触GIS时,处理无人机航拍的正射影像就踩了不少坑——坐标系选错导致影像偏移几百米、导出分幅…...

AI 自动获客系统正在重构企业线索获取方式

在数字化营销持续深化的当下,企业获客成本逐年攀升,传统 “广撒网” 的线索获取模式早已难以为继。销售团队大量时间耗费在无效线索筛选上,真正用于精准跟进、成交的时间不足两成,人力与投入的失衡让企业陷入增长内耗。而 AI 自动…...

别再混淆了!FFmpeg提取AAC/H264流时常见的3个容器格式误区

别再混淆了!FFmpeg提取AAC/H264流时常见的3个容器格式误区 第一次用FFmpeg提取音频时,我把.m4a文件直接重命名为.aac,结果播放器报错——这个看似简单的操作背后,隐藏着容器格式与编码格式的深层差异。本文将用真实踩坑案例&#…...

对抗训练新玩法:用AdverIN攻击自己反而提升医学分割模型20%泛化性

医学影像分割的对抗训练革命:AdverIN如何让模型在新设备上表现更优 医学影像分析领域正面临一个尴尬的现实:实验室里表现优异的深度学习模型,在真实临床环境中常常"水土不服"。不同医院使用的扫描设备、成像协议差异导致的域偏移&a…...

缺失的第一个正数(力扣100)

最朴素的想法就是从1开始查找,看看谁不在,时间复杂度为On但是需要把原数组变成集合,空间复杂度为On不符合题目的常数级空间开销我们要找的是“第一个缺失的正数”。如果数组长度是 $N$,那么这个答案一定落在 [1, N1] 这个区间里。…...