更新网站内容(HTML网页来说的设计数据库什么大差别?(上))
优采云 发布时间: 2022-04-09 10:14更新网站内容(HTML网页来说的设计数据库什么大差别?(上))
提前免责声明: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-essential
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc
echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
gem install jekyll bundler
用 Jekyll 创建一个网站(自动生成一个名为 test_blog 的文件夹和一个完整的Demo网站):
$ jekyll new test_blog
目录内容如下:
这里有一个完整的网站,可以直接运行浏览。
然后可以在此基础上根据自己的主页、其他网页等进行修改。
Jekyll new 时发送错误:Bundler: ruby: No such file or directory
我从来没有在我的 Mac 上做过任何 Ruby 项目,而且我不知道如何使用 gems。全部原配置后,使用 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不是很新,需要更新。
参考:
更新如下:
# 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文件或者修改布局模板,就会实时渲染生成网站。不断更新。
运行渲染命令后,jekyll 会根据指定的模板将你的 Markdown 渲染为静态 网站,
同时,它也会将网站映射到本机的一个端口。可以打开命令行提示的url链接查看网站的效果。
允许公共网络访问
如果 jekyll 部署在公网的服务器上,很容易暴露给所有人。
语法如下:
$ jekyll serve --detach --host 0.0.0.0
# 或
$ jekyll serve --force_polling -H 0.0.0.0 -P 4000
然后会显示如下:
也就是说,如果公网运行jekyll,程序就会去后台。如果需要退出,需要手动关闭进程。
然后根据网站设计时指定的端口,在服务器防火墙上相应打开该端口,如4000。
然后使用服务器IP:4000访问它。
如果要不带端口号访问,在_config.yml中将端口号设计为80。(但经常有需要解决的冲突)
Jekyll 工作流程 工作流程
使用 Jekyll,主要难点在开始,需要设计网页样式,设置整个网站的规则等等。
但是一旦完成了这些基本设置,以后的更新只需要专注于编写 Markdown 文件即可。
杰基尔自定义网站
Jekyll new 命令新建网站 结构后,文件夹中有很多文件。这些文件结构的作用是什么,我们必须学习。
Jekyll 文件夹结构
注意:
Front-Matter 文件头信息
文件头信息在这里称为front-matter,或者yml-header,是写在每个Markdown文件头中的设置信息。主要是表示这个文章的标题、日期、使用的模板、样式、标签、类别等,以便Jekyll根据这些设置将markdown文件转换成你想要的最终HTML页面。
头信息常用参数如下:
"Real" 获取 Jekyll 生成的静态网站
Jekyll 存在的最终目标和重点是生成静态 网站。
但,
默认情况下,不能直接打开所谓生成的静态HTML页面查看效果!你必须运行 jekyll serve,或者把它放在 Github Repo 中。
静态 网站 还叫什么?!
真正的静态网站不是生成HTML,而是让你双击打开HTML,在浏览器中看到效果。
为了避免这种有点矛盾的逻辑,我们有更方便的外部工具来做到这一点。
那是最常用的 wget 下载命令。
wget可以下载网页或者整个网站,并且可以自动转换各种文件中的路径。
命令如下:
$ wget -r --convert-links
所以当你运行 Jekyll serve 成功编译生成 _site 目录后,就可以使用 wget 下载本地的网站了。
杰基尔的经历
目前的体验极差: