传送门:在GitHub上创建和托管个人网站(上)
github pages会自动识别 Jekyll文件,所以如果你添加文件夹和文件遵循特定的命名约定,当你将相关Jekyll文件提交给GitHub,Jekyll就会神奇地建立你的网站。
虽然我建议在自己的计算机上设置Jekyll,以便您可以在本地编辑和预览您的网站,并准备好后,将这些更改推送到您的GitHub,但是,为了快速掌握Jekyll的工作方式,我们将使用GitHub Web界面将Jekyll构建到我们的GitHub仓库中。
Jekyll是一个非常强大的静态站点生成器。 对于没有复杂架构的简单网站,如个人网站, 当与GitHub一起使用时,Jekyll会在您每次提交文件时自动为您的网站重新生成所有的HTML页面。
Jekyll使管理您的网站更容易,因为它取决于模板。 在使用静态站点生成器时,模板(或者Jekyll术语中的布局)是您最好的朋友。 我不必在每个创建的页面上重复相同的导航标记,如果我添加,删除或更改导航项目的位置,则必须在每个页面上编辑这些导航标记,我可以创建Jekyll所称的布局,以便在所有页面上使用 我的网页。 在本教程中,我们将创建两个Jekyll模板来构建您的网站。
为了让Jekyll和您的网站一起工作,您需要遵循Jekyll的目录结构。 要了解这个结构,我们将把它构建到我们的GitHub仓库中。
_site/
name: Hank Quinlan, Horrible Cop
markdown: kramdown
在这一点上,我希望你已经使用GitHub网页界面创建好了文件和目录,所以我将停止使用截图来说明这些操作。
这是我们的主要布局,将包含像和
这样的重复元素。 现在我们不必在我们创建的每一个页面上重复这些标记,使得我们的网站的维护更容易。 因此,让我们将这些元素从index.html移动到default.html中,最后得到如下所示的内容:
<html>
<head>
<title>{{ page.title }}title>
<link rel="stylesheet" type="text/css" href="/css/main.css">
head>
<body>
<nav>
<ul>
<li><a href="/">Homea>li>
<li><a href="/about">Abouta>li>
<li><a href="/cv">CVa>li>
<li><a href="/blog">Bloga>li>
ul>
nav>
<div class="container">
{{ content }}
div>
<footer>
<ul>
<li><a href="mailto:[email protected]">emaila>li>
<li><a href="https://github.com/hankquinlan">github.com/hankquinlana>li>
ul>
footer>
body>
html>
记请记住{{page.title}}
和{{content}}
标签。 他们就是jekyll中的liquid标签
,这些标签用于将内容注入最终的网页。
---
layout: default
title: Hank Quinlan, Horrible Cop
---
<div class="blurb">
<h1>Hi there, I'm Hank Quinlan!h1>
<p>I'm best known as the horrible cop from <em>A Touch of Evilem> Don't trust me. <a href="/about">Read more about my life...a>p>
div>
注意文件顶部的纯文本。 Jekyll把这称为Front-matter。 您网站上的任何文件都将由Jekyll进行处理。 每次提交指定layout:default的文件时,Jekyll都会通过将_layouts / default.html中的{{content}替换为已提交文件的内容来神奇地生成完整的HTML文档。真棒!
Jekyll非常灵活,可以根据需要扩展您的网站,但在本指南中,我们只会介绍基础知识:
- 创建一篇博客
- 创建一个列出所有博客的页面
- 为博客创建超链接
- 为博客创建RSS feed
我们希望为我们的博客帖子创建一个新的布局,名为post.html,并为每个帖子存储一个名为_posts /的文件夹。
liquid标签
来打印帖子和日期的标题:---
layout: default
---
<h1>{{ page.title }}h1>
<p class="meta">{{ page.date | date_to_string }}p>
<div class="post">
{{ content }}
div>
---
layout: post
title: "Hank Quinlan, Horrible Cop, Launches Site"
date: 2014-04-30
---
Well. Finally got around to putting this old website together. Neat thing about it - powered by [Jekyll](http://jekyllrb.com) and I can use Markdown to author my posts. It actually is a lot easier than I thought it was going to be.
请注意,文件扩展名.md代表Markdown,文件内部使用的Markdown语法由Jekyll转换为HTML。 和Wikitext一样,Markdown是一种标记语言,语法更接近纯文本。 Markdown的想法是摆脱作者的方式,以便他们可以快速编写HTML内容,使Markdown非常适合作为博客创作语法。
提交新帖子后,导航到http://username.github.io/YYYY/MM/DD/name-of-your-post来查看它。
所有这一切都很棒,但是您的读者并不总是知道您帖子的确切网址。 接下来,我们需要在我们的网站上创建一个页面,列出每个帖子的标题和超链接。 您可以在您的主页上创建此列表,或者创建一个收集您所有帖子的博客子页面。 我们打算做后者。
---
layout: default
title: Hank Quinlan's Blog
---
<h1>{{ page.title }}h1>
<ul class="posts">
{% for post in site.posts %}
<li><span>{{ post.date | date_to_string }}span> » <a href="{{ post.url }}" title="{{ post.title }}">{{ post.title }}a>li>
{% endfor %}
ul>
现在查看http://username.github.io/blog/。 你应该看到你的第一篇文章列出并链接在那里。
您可能已经注意到您的博客文章的网址不包含其中的博客目录。 在Jekyll中,我们可以通过编辑_config.yml文件
来控制我们固定链接的结构。因此,让我们改变我们的固定链接结构以包含博客目录。
复制下面的内容到_config.yml文件
permalink: /blog/:year/:month/:day/:title
现在你的博客文章将会在http://username.github.io/blog/YYYY/MM/DD/name-of-your-post上面。
为您的博客设置RSS提要也非常简单。 每当你发布一个新的帖子,它将被添加到这个RSS文件。
---
layout: feed
---
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Hank Quinlan's Blogtitle>
<link href="http://hankquinlan.github.io/blog/atom.xml" rel="self"/>
<link href="http://hankquinlan.github.io/blog"/>
<updated>{{ site.time | date_to_xmlschema }}updated>
<id>http://hankquinlan.github.io/blogid>
<author>
<name>Hank Quinlanname>
<email>[email protected]email>
author>
{% for post in site.posts %}
<entry>
<title>{{ post.title }}title>
<link href="http://hankquinlan.github.io{{ post.url }}"/>
<updated>{{ post.date | date_to_xmlschema }}updated>
<id>http://hankquinlan.github.io{{ post.id }}id>
<content type="html">{{ post.content | xml_escape }}content>
entry>
{% endfor %}
feed>
现在,您可以在自己的网站上的某个位置添加一个RSS提要链接 转到http://username.github.io/blog/atom.xml查看您的Feed。
注意:在Chrome中,您的Feed可能看起来像是一个错误,但事实并非如此。 Chrome不知道如何显示XML。
希望本指南能够让您有信心使用Git,GitHub,Jekyll以及您的网站或博客来做其他许多事情。 在这一点上,你可以走很多不同的方向,因为我相信你已经开始思考了,但是这里还有一些我认为值得你花费的时间:
创建_includes。 他们很像_layouts,只有更小的标记片段,可以注入到_layouts和页面。
尝试创建一个将Google Analytics(分析)跟踪代码插入到中的_include文件,以便您可以获取网站访问者的统计信息。 这是一个例子。
想要评论您的博客? 创建一个DISQUS
_include并在你的post.html布局中调用它。
不想用github.io作为你的网址? 设置一个自定义域。
给博客列表添加分页
-创建一个sitemap.xml文件更好的搜索引擎优化。 你可以由GitHub Pages自动生成。
也可以自己写
-需要更多的灵感? 查看Jekyll开发者的网站是如何设置的,或者使用Jekyll浏览这个庞大的网站列表。
我会尽力保持这份名单目前和最新。 如果你知道更好的资源,你想分享或注意到资源有问题,请联系。