Jekyll 动态地建立静态博客网站 (Get Started)

news/2024/4/26 17:02:19/文章来源:https://blog.csdn.net/weixin_33815613/article/details/88669307
提前声明:Jekyll并不简单,必须要正确的看待它。把它和PHP,JSP和Django等放在一起讨论会减少很多失落感。它的学习曲线几乎相当于Wordpress,工作流程和结构也几乎一样。

Jekyll与Wordpress最大不同的就是,没有数据库。但是体验上来说也算不上什么大差别。
彻底摒弃数据库,这算是一种Jekyll式的新思路
因为你需要的只是定期更新一些Markdown格式的文章,然后让它显示成网页,并放在一起成为网站而已。没必要大动干戈的设计数据库什么的。

简单的说,Jekyll是一个基于Ruby语言的静态博客网站制作工具,它可以把Markdown转换成HTML网页。

不过对于一个HTML网页来说,它得有标题、样式、日期什么的,甚至一些根据文章的不同而动态改变的内容等。这些就不仅是把Markdown转换成HTML而已了。很多内容需要你在Markdown文件里面就写明指定。

另注:Jekyll虽然和Github Pages搭配免费,但其实是完全独立的产品。可以在任何地方使用,像Wordpress一样。

安装Jekyll

安装Jekyll需要用Ruby的包管理器gem下载,像Python的pip一样:

$ gem install jekyll

但是如果本机的gem版本不够新,是装不了jekyll的,所以就依照官网从ruby从头开始安装:

sudo apt-get install ruby ruby-dev build-essentialecho '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc
echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc
source ~/.bashrcgem install jekyll bundler

用Jekyll创建一个网站(自动生成名为test_blog的文件夹和一个完整的Demo网站):

$ jekyll new test_blog

目录里面内容如下:
image
这里面是完整的一个网站,可以直接运行浏览。
然后你就可以根据自己的主页、其它网页什么的,在这个基础上修改了。

Jekyll new时发送错误:Bundler: ruby: No such file or directory

我的Mac机上从来没做过任何Ruby项目,也不懂gem使用方法。全部原始配置后,使用gem install jekyll没问题,但是在jekyll new ..时,就发送这个错误:

Bundler: ruby: No such file or directory -- /usr/local/lib/ruby/gems/2.5.0/gems/bundler-1.16.1/exe/bundle (LoadError)

发生错误后,项目文件夹是生成了,但是不完整,也不能执行。

问题在于本机的gem和bundler都不是很新,需要更新一下。
参考:https://github.com/rubygems/r...

更新如下:

# Install latest version of Rubygems
gem update --system# Install latest version of bundler system-wide
gem install bundler

更新时间会很长,等全部安装好后,就可以正常的使用jekyll了。

生成网站

渲染网站

$ cd test_blog
$ jekyll serve

或实时渲染网站:

$ jekyll server --watch

如果加上了--watch参数,jekyll就会实时监控你的文件,只要那个文件有变动了,比如新增了markdown文件,或修改了layout模板,它都会即时渲染生成网站,总保持更新。

运行渲染的命令后,jekyll就会把你的Markdown根据指定的模板渲染为静态网站,
同时还会把网站映射到本机的一个端口,你可以打开命令行里提示的url链接察看网站效果。

image

允许公网访问

如果jekyll部署在了公网上的服务器上,那么很轻松就可以公开给所有人访问了。
语法如下:

$ jekyll serve --detach  --host 0.0.0.0# 或
$ jekyll serve --force_polling -H 0.0.0.0 -P 4000

然后就会显示如下:
image

也就是说公网运行jekyll的话,程序就转到后台了,需要退出的话需要手动关闭进程。

然后根据网站设计时候指定的端口,相应的在服务器防火墙上开放这个端口,比如4000。
然后用http://服务器IP:4000这样的就能访问了。
如果要不带端口号访问,就在_config.yml中把端口号设计为80。(但是经常有冲突,需要解决)

Jekyll Workflow 工作流程

使用Jekyll,主要难就在一开始,需要设计网页样式,设置全站的规则等等。
但是一旦这些基本设置都完成了,以后更新就只需要专注的写Markdown文件即可。

Jekyll自定义网站

Jekyll new命令新建一个网站结构后,文件夹里面有很多文件。这些文件结构都是什么作用,是我们必须要学习的。

Jekyll文件夹结构

  • _config.yml文件:这是你第一个需要修改的东西。全网站的通用设置都保存在这里,比如网站主题,名称,介绍,域名,Github用户名等。.yml是像.ini一样的配置文件类型。
  • _site文件夹:这个存放你的完整静态网站的文件夹,但是这是不需要你去碰的文件夹,它是Jekyll根据你的设置和模板之类的内容,自动生成的静态网站。
  • _layout文件夹:是存放各种网页模板的地方,主页什么样子,列表页什么样子,博客内容页面什么样子,这些分别的页面模板都是放在这里的。
  • _includes文件夹:存放所有重复使用的、比较固定的页面模块。比如每个网页都一样的页头、页脚,导航栏,侧边栏等等。这里面的HTML文件,都不是完整的HTML网页,都只是模块,可能只是一个<div>标签。
  • _posts文件夹:存放所有的Markdown格式文件。你所有的Markdown博客内容,都放在这里。文件命名也是有规定的,比如必须是data-filename.markdown这种。

注意:

  • _site文件夹需要你在.gitignore中加入屏蔽,因为这个动态生成的东西,完全不需要在git里面进行追踪。而且放在Github Pages上的话,Github引擎也不会在你的目录里面生成这个文件夹,而是在后台直接给你生成页面。之所以会有它,主要是本地设计时候用。

Front-Matter 文件头信息

文件头信息在这里被叫做front-matter,或yml-header,它是写在每个Markdown文件头部的设置信息。主要是指明这篇文章标题、日期、使用的模板、样式、标签、分类等,这样Jekyll就可以根据这些设置把markdown文件转换成你想要的最终HTML网页了。
image

头信息的常用参数如下:

  • layout: 指明模板名称,即指定使用_layout文件夹中哪个HTML网页做为模板。
  • title: 这篇文章的标题。
  • data: 这篇文章的日期。
  • categories: 这篇文章的分类。

“真正的”拿到Jekyll生成的静态网站

Jekyll的最终目标和整个存在意义都是生成静态网站。
但是,
默认情况下,所谓生成出来的静态HTML页面,你也不能直接打开看到效果!必须要运行jekyll serve才行,或者把它放到Github的Repo里。
那还叫什么静态网站?!
真正的静态网站不是生成HTML就行了,而是让你双击打开HTML就能在浏览器看到效果。

避开这个有点矛盾的逻辑不说了,我们有比较方便的外部工具来做到这点。
那就是最常用的wget下载命令。
wget可以把网页或整个网站下载下来,并且能自动转换各种文件里的路径。
命令如下:

$ wget -r --convert-links <URL>

所以当你运行Jekyll serve成功编译生成_site目录后,就可以用wget下载本地的这个网站了。

Jekyll的体验

目前体验极其糟糕:

  • 不能真正生成静态网站,必须开着Jekyll服务才能展示出网页
  • Macbook air上运行jekyll服务器不到一会儿,CPU温度就极速增高
  • 大概几十篇文章,就需要10s+的生成时间
  • 各个主题安装极其不同,每个主题都需要单独学习其内在逻辑、变量、结构、生成方法,学习成本非常高
  • 依赖性极高,很容易导致gem或nodejs依赖过期无效或出错
  • Jekyll对配置文件的tokens(比如指定变量名)经常改变和更新,很快你写的配置文件就不管用老报错了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_746233.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一步步带你,如何网站架构

何为大型网站 大型网站特性 既然说的是大型网站架构&#xff0c;那么架构的背后自然是解决人因面对大型网站特性而带来的问题。这样可以先给大家说下大型网站的特性&#xff0c;这些特性带来的问题就是人要解决的问题&#xff1a; 高并发、大流量&#xff1a;PV 量巨大&#xf…

什么是域名?什么网站名?什么是URL?

什么是域名&#xff1f;现实中&#xff0c;域名使用的实在太多了&#xff0c;但域名的详细含义你理解么&#xff1f;你知道域名是什么吗&#xff1f;下面&#xff0c;小编将带你详解域名的含义&#xff01; 方法/步骤 域名&#xff0c;相信大家都不默认&#xff0c;也使用过无数…

《大型网站技术架构》读书笔记一:大型网站架构演化

一、大型网站系统特点 &#xff08;1&#xff09;高并发、大流量&#xff1a;PV量巨大 &#xff08;2&#xff09;高可用&#xff1a;7*24小时不间断服务 &#xff08;3&#xff09;海量数据&#xff1a;文件数目分分钟xxTB &#xff08;4&#xff09;用户分布广泛&#xff0c;…

java 大型网站架构_大型网站架构系列:电商网站架构案例(1)

大型网站架构系列&#xff1a;电商网站架构案例(1)大型网站架构是一个系列文档&#xff0c;欢迎大家关注。本次分享主题&#xff1a;电商网站架构案例。从电商网站的需求&#xff0c;到单机架构&#xff0c;逐步演变为常用的&#xff0c;可供参考的分布式架构的原型。除具备功能…

推荐的五款市面上常用的免费CMS建站系统

我做设计也有不少年头了&#xff0c;很多客户或者朋友找我做网站的时候&#xff0c;一般问我的是用什么软件系统给他们做。大部分客户希望用的软件是免费的。所以今天给大家介绍五款我自己用过还不错的&#xff0c;重点是还免费的建站系统。 MetInfo MetInfo这个系统是一个客户…

iis网站服务器端口设置,iis服务器端口设置方法

iis服务器端口设置方法 内容精选换一换获取当前系统健康状态。设置成“GET”。该接口仅支持POST和GET方法&#xff0c;不支持PUT和DELTE等方法。https://ip:port/ccbms/health.jsp其中&#xff0c;ip为CTI平台的CCBMS服务器地址&#xff0c;port为CCBMS服务器的HTTPS端口号。无…

16个时髦的扁平化设计+视觉滚差的网站模板

Persona – HTML5 Parallax Portfolio Theme 充满吸引力的一款网站模板&#xff0c;扁平化设计风格&#xff0c;动感的视差滚动效果。 在线演示 模板下载 Superb – Responsive One-Page Portfolio Superb 是一个基于 HTML5 & CSS3 的响应式单页作品集网站模板。 在线演…

两分钟学会最新的用github+便携版hexo做网站服务器教程+绑定域名

前段时间在阿里云买了一个域名&#xff0c;便想着如何利用这个域名来做自己的个人网站。网上教程特别多&#xff0c;但是大多数都不能用了&#xff0c;因为github在不断的进行更新。所以碰到了很多很多的坑。本人自己也是git小白&#xff0c;git的有些命令也是比较复杂。但是&a…

Jenkins与网站代码上线解决方案【转】

转自 Jenkins与网站代码上线解决方案 - 惨绿少年 https://www.nmtui.com/clsn/lx524.html 1.1 前言 Jenkins是一个用Java编写的开源的持续集成工具。在与Oracle发生争执后&#xff0c;项目从Hudson项目独立。 Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中&…

[源码和文档分享]基于JAVA EE和豆瓣API实现的电影评论网站

本网站通过对网上最新的热点影片的分门别类&#xff0c;采取简洁、直观的方式让观看者体验到前所未有的舒适感&#xff0c;通过对网站界面布局&#xff0c;信息采集&#xff0c;会员管理&#xff0c;观看者的互动等功能的规划来实现崭新的视听环境。 本网站提供的电影资源和内容…

5 ,emr 入门 : 网址 ,定价 ,学习网站

一 &#xff0c;相关网址 &#xff1a; 1 &#xff0c;emr 文档入口 &#xff1a; https://docs.aws.amazon.com/zh_cn/emr/index.html 2 &#xff0c;emr 开发指南 &#xff1a; https://docs.amazonaws.cn/emr/latest/ManagementGuide/emr-what-is-emr.html 3 &#xff…

1 ,spark 电影点评项目 : 简介,项目历史 ,元数据下载 ,电影数据集网站 ( 非常好的网站 )

1 &#xff0c;可以采用的技术 &#xff1a;选哪种方式都行&#xff0c;我们都用用 RDDDataFrameDataFrame RDDDataSet 2 &#xff0c;需求 &#xff1a; 某电影 &#xff1a; 男性不同年龄观看者人数某电影 &#xff1a; 女性不同年龄观看者人数所有电影 &#xff1a; 评分…

在百度里指定网站搜索:site:developer.mozilla.org 数组(后面关键字“数组”可以换成任意要搜索的关键字)...

打开百度&#xff1a; 在百度搜索框 输入&#xff1a;site:developer.mozilla.org 数组 第一个就是&#xff0c;实现效果如下&#xff1a; 转载于:https://www.cnblogs.com/lszw/p/11067159.html

借助 Lucene.Net 构建站内搜索引擎(上)

前言&#xff1a;最近翻开了之前老杨&#xff08;杨中科&#xff09;的Lucene.Net站内搜索项目的教学视频&#xff0c;于是作为老杨脑残粉的我又跟着复习了一遍&#xff0c;学习途中做了一些笔记也就成了接下来您看到的这篇博文&#xff0c;仅仅是我的个人笔记&#xff0c;大神…

github可以刷星吗_教你一招即使没有服务器,也可以免费拥有自己的专属网站

现在固定公网IP资源稀缺&#xff0c;虽然说IPv6已经开始使用&#xff0c;但是用的人并不多&#xff0c;大部分用的都是IPv4&#xff0c;想要搞一个自己网站&#xff0c;首先就是需要一个固定的公网IP&#xff0c;但是每年却需要缴纳不少的money&#xff0c;而且服务器的成本&am…

oss批量上传工具_使用阿里云OSS与github actions自动部署个人网站

OSS 即 object storage service&#xff0c;对象存储服务。我们可以通过阿里云的 OSS 来托管自己的前端应用&#xff0c;个人网站或者博客在 [使用 netlify 托管你的前端应用]( "使用 netlify 托管你的前端应用") 中我也介绍到另一种专业的网站托管服务平台 netlify。…

Java旅游网站源码+页面

旅游网站[源码前后端页面] 在线预览&#xff1a;旅游网站TourismPro 账号&#xff1a;朱利尔&#xff0c;密码&#xff1a;123 管理员账号&#xff1a;admin&#xff0c;密码&#xff1a;123456 Github开源地址&#xff1a;https://github.com/jwwam/tourismPro下载 or 部署问…

毕业设计之旅游网站

GitHub地址&#xff1a; https://github.com/jwwam/tourism.git 最新的旅游网站地址&#xff1a;旅游网站(SpringBoot版本) 本文是SpringMVC版本&#xff0c;spring boot版本请点击上面的链接下载查看&#xff01;&#xff01;&#xff01; 框架技术&#xff1a; SpringMVC Spr…

Java招聘网站源码+页面

招聘网站[源码前后端页面] 毕业设计免费开源系列&#xff1a; Java旅游网站源码页面&#xff08;景点查看、评论、酒店查看、预定&#xff0c;旅游线路推荐...&#xff09; Java招聘网站源码页面&#xff08;职位查看、评论、简历发布、投递、结果、企业管理&#xff0c;职位…

composer 完整路径才能访问_谷歌浏览器打算隐藏网站地址路径URL!

谷歌浏览器打击钓鱼网站再出新招。内测地址栏开始隐藏网站全部路径 仅显示网站域名。了解到&#xff0c;域名和URL是一个网站最基本的对外展示信息&#xff0c;可以让用户快速知道网站的内容和信息。但是&#xff0c;有时也会被部分黑产和诈骗分子利用&#xff0c;进行使用带有…