创建个人网站

news/2024/5/10 6:14:51/文章来源:https://blog.csdn.net/u011198764/article/details/106148392

微信公众号:Android部落格

个人网站:chengang.plus

1、方案

采用Github Pages + Jekyll的方式。

2、安装Jekyll环境

2.1 安装Ruby

因为网络的原因,Ruby installer安装文件难得下载,下载网址是:
https://rubyinstaller.org/downloads/或https://github.com/oneclick/rubyinstaller2/releases

2.2 下载RubyGems

下载地址是:https://rubygems.org/pages/download

下载完成之后解压到本地,假设解压目录是E:\RubyGems。进入该目录执行:ruby setup.rb

2.3 安装Jekyll

完成之后安装Jekyll:gem install jekyll。如果安装失败按照RubyGems中国镜像网站调整下载源:

https://gems.ruby-china.com/

切换方法是:gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

到这里就安装成功了。

3、Github Pages

注册一个github账号,起一个id,假设名称是lily。然后新建一个repository,名字必须是 lily.github.io。在当前repository的Settings选项中,可以设置主题,强制https访问等。另外这个repository必须是public。

到这里Github默认为我们创建了一个_config.yml文件,这个文件可以做网站的一些配置。

4、定制自己的静态网站

4.1 新建

在PC上某个文件夹下,用cmd命令行新建一个Jekyll静态网站,命令是:jekyll new yourblogname。

再执行jekyll server,成功之后就可以在本地生成一个网站相关的页面了,在浏览器输入http://127.0.0.1:4000/,即可访问。

4.2 定制

_config.yml文件可以做一些网站的详细配置,基础的配置项如下:

title: your website title
SEOTitle: seo title
header-img: header in explorer
description: your description
locale: zh
email: "email number"
url: "your own domain address"
baseurl: ""
social:github: "github number"# Build settings
#theme: minima
markdown: kramdown
highlighter: rouge
remote_theme: we can use remote theme in github by formatter:githubname/themename
permalink: /blog/:title:output_ext
timezone: Asia/Shanghai
defaults:-scope:path: ""type: "pages" //layout typevalues:layout: "page" //correspond to layoutkeywords: keywords descriptiondescription: description-scope:path: ""type: "posts" //layout typevalues:layout: "post" //correspond to layout
plugins:- jekyll-feed# Theme Settings
logo: /assets/logo.svg
rss: "/feed.xml" // subscribe
theme_setting:blog_page: "index.markdown" //detail fileabout_page: "about.markdown" //detail filearchive_page: "archive.markdown" //detail filenav_pages:- "about.markdown" //detail file- "archive.markdown" //detail file# Gitalk
gitalk:enable: true    #is open Gitalk commentclientID:         #clientID from GitalkclientSecret:     #clientSecret from Gitalkrepo: github repo name,such as "lily.github.io"    #github repo nameowner: github name    #lilyadmin: github name    #lilydistractionFreeMode: true #shadow# Analytics settings
# Baidu Analytics
ba_track_id: id from baidu# Google Analytics
ga_track_id: 'id from google'            # Format: UA-xxxxxx-xx
ga_domain: your domain name

本人引用的主题是erlzhang/jekyll-theme-persephone,主题的github地址是:https://github.com/erlzhang/jekyll-theme-persephone。

按照主题的要求,分别在我本机网站目录下新建了index.markdown,about.markdown,archive.markdown。分别表示首页,关于页,归档页。

而在_config.yml的theme_setting配置中,必须按照上述文件布置排列,否则相关页面不能正确导航。

这里一些参数涉及到Jekyll的相关配置知识,可以参考:http://jekyllcn.com/docs/usage/

4.2.2 博客样式

在index.markdown文件中,可以设置当前主页的形式,本人这边引用的是博客样式,如下:

---
# Feel free to add content and custom Front Matter to this file.
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults#layout: homelayout: "blog"
---

4.2.3 创建博客文件夹

博客目录是_post,直接在网站文件夹目录下创建这个文件夹。以后要写的博客就在这里了。

4.2.4 写博客

博客以markdown的形式撰写,文件名称必须按照:yyyy-MM-dd-博客标题。例如:2020-4-27-博客测试文章.markdown

写完之后,内容还有些不一样,内容必须按照如下规范:

---
layout: post
title:  "博客测试文章"
date:   2020-4-27 16:48:22 +0800
categories: your category
---博客正文

这里的layout表示文章是post文件类型;title就是后续网站要显示的标题;还有subtitle可以设置;categories就是网站上要展示的分类了;博客正文用markdown写就行了。

4.2.5 为博客添加评论

这里评论以Gitalk为例,其github地址是https://github.com/gitalk/gitalk。这里的评论其实是给你博客所在github的repo提issue。

先为网站(lily.github.io)注册一个Application,地址是:https://github.com/settings/applications/new。

注册完成之后就会有一个clientID,和clientSecret,填到_config_yml的# Gitalk对应的位置就可以了。另外注册时,如果是使用lily.github.io,就填全称:https://lily.github.io;如果是自己的域名,就使用域名的网址,也要填全称。

接下来就是将博客控件添加到博客模板文件中,这个模板文件在远程主题中。这里就要fork一下远程主题到自己的github中了。

fork之后,clone到本地,然后进入到jekyll-theme-persephone\_layouts文件夹下,找到post.html文件,这个就是我们博客的模板,在article节点的最后添加:

<!--Gitalk start  -->
{% if site.gitalk.enable %}
<!-- 引入Gitalk评论插件  -->
<link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
<script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
<div id="gitalk-container"></div>
<!-- 引入一个生产md5的js,用于对id值进行处理,防止其过长 -->
<!-- Thank DF:https://github.com/NSDingFan/NSDingFan.github.io/issues/3#issuecomment-407496538 -->
<script src="{{ site.baseurl }}/js/md5.min.js"></script>
<script type="text/javascript">var gitalk = new Gitalk({clientID: '{{site.gitalk.clientID}}',clientSecret: '{{site.gitalk.clientSecret}}',repo: '{{site.gitalk.repo}}',owner: '{{site.gitalk.owner}}',admin: ['{{site.gitalk.admin}}'],distractionFreeMode: {{site.gitalk.distractionFreeMode}},id: md5(location.pathname),});gitalk.render('gitalk-container');
</script>
{% endif %}
<!-- Gitalk end -->

site.后面的那些变量就是我们在_config.yml中配置的变量,而这个模板会在每篇博客的底部生成一个评论视图,评论之前要用github登录,也就缩小了评论人群。

这个md5.min.js文件,放在网站所在文件目录下的js文件夹中。

4.2.6 为博客添加访问统计

基本就是百度统计和google统计了。

注册百度统计账号,https://tongji.baidu.com/,填入要统计的域名,得到一段代码。

注册google统计账号,https://analytics.google.com/,填入要统计的域名,得到一段代码。

将上述得到的两段代码填写到jekyll-theme-persephone\_includes\footer.html文件中:

<!-- Baidu Tongji -->
{% if site.ba_track_id %}
<script>//var _baId = '{{ site.ba_track_id }}';// Originialvar _hmt = _hmt || [];(function() {var hm = document.createElement("script");hm.src = "//hm.baidu.com/hm.js?" + _baId;var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();
</script>
{% endif %}<!-- Google Analytics -->
{% if site.ga_track_id %}
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=your id"></script>
<script>var _gaId = '{{ site.ga_track_id }}';var _gaDomain = '{{ site.ga_domain }}';window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'your id');ga('create', _gaId, _gaDomain);ga('send', 'pageview');
</script>
{% endif %}

可以看到这里的ba_track_id和google统计的id也是可以定义在_config.yml文件中,然后通过site引用的。

4.2.7 为博客添加目录

在博客标题之下,正文之上创建目录,可以方便定位到需要阅读的位置。方法参考:https://gist.github.com/cloudsben/6059930。

打开这个网址,将md-menu.html文件内容保存到toc.html,然后copy到jekyll-theme-persephone\_includes下,这里我们对原文做一点小改动,添加h1到目录:

原内容

<link rel="stylesheet" href="http://yandex.st/highlightjs/6.2/styles/googlecode.min.css"><script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="http://yandex.st/highlightjs/6.2/highlight.min.js"></script><script>hljs.initHighlightingOnLoad();</script>
<script type="text/javascript">$(document).ready(function(){$("h2,h3,h4,h5,h6").each(function(i,item){var tag = $(item).get(0).localName;$(item).attr("id","wow"+i);$("#category").append('<a class="new'+tag+'" href="#wow'+i+'">'+$(this).text()+'</a></br>');$(".newh2").css("margin-left",0);$(".newh3").css("margin-left",20);$(".newh4").css("margin-left",40);$(".newh5").css("margin-left",60);$(".newh6").css("margin-left",80);});});
</script>
<div id="category"></div>

修改后

<link rel="stylesheet" href="{{ site.baseurl }}/js/googlecode.min.css"><script src="{{ site.baseurl }}/js/jquery-1.7.2.min.js"></script>
<script src="{{ site.baseurl }}/js/highlight.min.js"></script><script>hljs.initHighlightingOnLoad();</script>
<script type="text/javascript">$(document).ready(function(){$("h1,h2,h3,h4,h5,h6").each(function(i,item){var tag = $(item).get(0).localName;$(item).attr("id","wow"+i);$("#category").append('<a class="new'+tag+'" href="#wow'+i+'">'+$(this).text()+'</a></br>');$(".newh1").css("margin-left",0);$(".newh2").css("margin-left",20);$(".newh3").css("margin-left",40);$(".newh4").css("margin-left",60);$(".newh5").css("margin-left",80);$(".newh6").css("margin-left",100);});});
</script>
<div id="category"></div>

可以看到我这里把两个js文件和一个css文件下载到本地了,也就是我们自己网站的js文件夹下。这里需要提醒下,远程引用主题时,有两个repo,一个是网站的repo(your blog repo name),一个是主题的repo(jekyll-theme-persephone)。这里的三个文件被我下到本地放到网站的repo下了。这样做的目的是为了加快目录展示速度。

接下来引用这个toc.html,在jekyll-theme-persephone\_layouts\post.html文件中的<div class="post__content content">节点下添加{% include toc.html html=content %},添加后如下:

<div class="post__content content">{% include toc.html html=content %}{{ content | img_prefix }}
</div>

到这里就ok了。

这里所有对主题的修改要记得push到自己github下的主题repo里面去,我这里是jekyll-theme-persephone。

到这里基本上就完成个人网站了,将个人网站下的所有文件push到yourname.github.io(比如:lily.github.io)下,然后在浏览器输入yourname.github.io就可以访问自己的网站了。

5、为网站设置个人域名

5.1 购买域名

在腾讯云或阿里云都可以购买,你中意的那个域名在两个云上可能价格不一样,我是捡便宜的买。最终购买了chengang.plus。

购买完成,审核通过,备案通过,添加解析,可以添加www和@方式解析,意味着www.yourdomain和yourdomain都可以解析到yourdomain。解析ip,就是你yourname.github.io的ip,在PC的cmd命令行里面ping一下得到域名对应的IP,直接把IP填到两个解析方式的IP字段里面去,就ok了。

另外腾讯云有一个一年免费的https SSL证书,先申请,审核通过之后就可以在自己域名前面加https了。

5.2 将域名应用到个人网站

在个人网站的repo下,选择Settings,有一个domain选项,直接设置自己的域名,不用加http或https。然后如果申请了SSL证书,可以Enforce Https。

6、网站本地调试

Jekyll支持本地调试,在网站相关文件都准备完毕之后,可以在网站文件目录下,cmd执行:bundle exec jekyll serve。执行完成之后,在浏览器输入:http://127.0.0.1:4000/ 即可访问。

问题1

Error: Permission denied - bind(2) for 127.0.0.1:4000

127.0.0.1:4000被占用了,在cmd输入:netstat -aon | findstr “4000”,找到被占用的进程,在PC的任务管理器中找到该进程号,然后结束任务即可,再执行bundle exec jekyll serve即可。

问题2

网站突然打不开了

如果是自己的域名,先ping一下yourname.github.io,看看输出的IP跟自己域名解析的IP是否一致,不一致,更换再访问;如果是yourname.github.io,检查下自己能不能访问github。

在这里插入图片描述

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

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

相关文章

播放rtmp在线网站及播放器

2019独角兽企业重金招聘Python工程师标准>>> 网站地址 http://www.cutv.com/demo/live_test.swf 推流地址 rtmp://ip:8005/live/32010020160918113426717107expxqe 或者采用flash player 也可以 -----------------------------------------------------------------…

跟着百度学PHP[14]-COOKIE的应用/网站登陆案例完整案例

先在数据库当中创建以下数据&#xff1a; mysql> create table user(-> id int not null auto_increment,-> username varchar(50) not null default ,-> password char(32) not null default ,-> email varchar(80) not null default ,-> allow_1 smallint …

网站加速哪家强?四大免费CDN服务评测大PK

之前我把市场上主流的、适合站长用的CDN都介绍了一遍&#xff0c;但随着加速乐与百度分家&#xff0c;百度自家推出云加速后&#xff0c;市场格局再度发生变化。本文&#xff0c;将结合卢松松的亲身体验&#xff0c;来对比360网站卫士、百度云加速、加速乐、安全宝&#xff0c;…

阿里云系列——3.网站备案初步核审(详细步骤)---2015-11.12

网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 流程图&#xff1a; 1.注册账号 进&#xff1a;https://beian.gein.cn/account/login.htm 注册一个账号&#xff0c;然后会收到邮件 立即备案 如何办理首次备案&#xff1f;如果您从未办理过备案&am…

WordPress 多站点建站教程(七):多站点函数

1、get_blog_details&#xff08;获取子站点信息&#xff09; 返回多站点博客信息即wp_blogs表。 //显示站点名称 $blog_details get_blog_details(1); echo Blog .$blog_details->blog_id. is called .$blog_details->blogname..;//显示站点总文章数 $blog_details ge…

百度蝶变SEO获奖诊断书分享

导读&#xff1a;这篇诊断书是百度蝶变行动SEO诊断中获奖的14篇中的一篇&#xff0c;诊断的站点本来就是高质量站点&#xff0c;所以可以称此诊断书是SEO进阶版&#xff0c;希望里面的一些SEO建议可以为站长带来帮助&#xff01;百度专家团点评&#xff1a;本届蝶变行动百度着重…

****一步步构建大型网站架构

之前我简单向大家介绍了各个知名大型网站的架构&#xff0c;MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典型&#xff0c;我们可以从中获取很多有关网站架构方面的知识&#xff0c;看了之后你会发现你原来的想法很可能…

zabbix实战监控WEB网站性

我们怎么用zabbix监控web性能和可用性呢&#xff1f;我们这边分为几个步骤&#xff1a;打开网站、登陆、登陆验证、退出&#xff0c;一共4个小step。检测流程1. 打开网站&#xff1a;如果http code为200&#xff0c;并且响应的html中包含Zabbix SIA表示打开成功&#xff08;zab…

SEO深度解读之HITS链接分析算法

HITS(Hyperlink - Induced Topic Search)链接分析算法诞生在1997年&#xff0c;该算法是由康奈尔大学中的一位博士提出&#xff0c;并且该算法沿用于全球多个搜索引擎当中。当然&#xff0c;不同的搜索引擎针对于该算法的侧重点和内部公式都有不一的算法结构调整&#xff0c;并…

由 12306.cn 谈谈网站性能技术

http://www.oschina.net/news/24838/website-performance 原文出处&#xff1a;爱范儿 oschina 配图 12306.cn网站挂了&#xff0c;被全国人民骂了。我这两天也在思考这个事&#xff0c;我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促&#xff0c;而且完全基于 本…

PMI网站中pdu查询

1、PMI官网&#xff1a;http://www.pmi.org/ 2、登录--->点击“myPMI”-->右侧“CERTIFICATION STATUS”&#xff08;国外网站常常加载慢 会加载不出来就不显示pdu信息&#xff0c;多加载几遍就出来了&#xff09; 转载于:https://www.cnblogs.com/wangcp-2014/p/600702…

大型网站技术架构(2):架构要素和高性能架构

为了使网站的能够应对高并发访问&#xff0c;海量数据处理&#xff0c;高可靠运行等一系列问题&#xff0c;我们可以选择横向或纵向两个方向来入手 基本思路 首先可以对整个架构进行分层&#xff0c;一般可以分为 应用层&#xff0c;服务层&#xff0c;数据层&#xff1b;实践中…

大型网站技术架构-入门梳理

罗列了大型网站架构涉及到的概念&#xff0c;附上了简单说明前言本文是对《大型网站架构设计》(李智慧 著)一书的梳理&#xff0c;类似文字版的“思维导图”全文主要围绕“性能&#xff0c;可用性&#xff0c;伸缩性&#xff0c;扩展性&#xff0c;安全”这五个要素性能&#x…

电商技术解密:电商网站会存在哪些安全隐患

2019独角兽企业重金招聘Python工程师标准>>> 在电商的研发体系中有一个叫做“风控”的部门&#xff0c;整个部门负责保障整个网站的安全、可靠。是一个比较神秘的组织&#xff0c;每天需要与形形色色的黑客、黄牛斗智斗勇。 那么一个电商网站会存在哪些安全隐患呢&a…

《Axure RP7网站和APP原型制作从入门到精通(60小时案例版)》一导读

前 言 Axure RP7网站和APP原型制作从入门到精通&#xff08;60小时案例版&#xff09;原型制作是在正式开始视觉设计或编码之前最具成本效益的可用性跟踪手段。Axure RP7是行业中最知名的原型设计工具之一。随着专业工具的出现&#xff0c;设计用户体验从未如此令人兴奋&#x…

c++多久能精通_新手入门学习SEO优化需要多久?

关于新手学习SEO入门需要多久的问题&#xff0c;这个就需要具体的规划一下了。何为SEO优化入门&#xff1f;客绪方网络SEO小方是这样理解的&#xff1a;那就是我们拿到一个网站以后&#xff0c;知道SEO优化是怎么回事&#xff0c;也知道优化网站需要做哪些事情&#xff0c;如果…

CA安全会提出伦敦协议 旨在减少“安全”的钓鱼网站

2019独角兽企业重金招聘Python工程师标准>>> 证书颁发机构们搞了个伦敦协议试图改进OV和EV证书&#xff0c;但浏览器厂商会支持吗&#xff1f; 伦敦协议是SSL行业如此独特的一个很好的例子。 很少有行业中的五家顶级公司聚集在一起&#xff0c;试图解决他们销售的产…

python 验证码识别示例(一) 某个网站验证码识别

某个招聘网站的验证码识别&#xff0c;过程如下 一&#xff1a; 原始验证码&#xff1a; 二&#xff1a; 首先对验证码进行分析&#xff0c;该验证码的数字颜色有变化&#xff0c;这个就是识别这个验证码遇到的比较难的问题&#xff0c;解决方法是使用PIL 中的 getpixel 方法…

服务器上安装两个织梦网站,云服务器安装多个织梦

云服务器安装多个织梦 内容精选换一换您可以选择在云服务器上安装一个或多个应用。如需在云服务器上安装其他应用&#xff0c;请参考如下操作进行添加。暂时仅允许支持VR应用的云服务器安装VR应用。暂时仅允许支持3D应用的云服务器安装3D应用。暂时仅允许支持VR应用的云服务器有…