From 65806c1b27e9f321d59a55449bc4cac6ab1478f7 Mon Sep 17 00:00:00 2001 From: TRHX Date: Fri, 19 Oct 2018 22:21:41 +0800 Subject: [PATCH] Site updated: 2018-10-19 22:21:25 --- .../index.html" | 7 +- .../index.html" | 7 +- .../index.html" | 7 +- .../index.html" | 7 +- .../index.html" | 7 +- .../index.html" | 7 +- .../index.html" | 7 +- .../index.html" | 7 +- .../index.html" | 7 +- About TRHX/index.html | 5 +- Message Board/index.html | 12 +-- archives/2018/08/index.html | 5 +- archives/2018/09/index.html | 5 +- archives/2018/10/index.html | 5 +- archives/2018/index.html | 5 +- archives/index.html | 5 +- categories/Python/index.html | 5 +- categories/index.html | 5 +- .../index.html" | 5 +- .../index.html" | 5 +- content.json | 2 +- css/style.css | 79 +++++-------------- index.html | 5 +- js/FunnyTitle.js | 17 ++++ tags/Github-Pages/index.html | 5 +- tags/Hexo/index.html | 5 +- tags/Markdown/index.html | 5 +- tags/Ubuntu/index.html | 5 +- tags/VMware/index.html | 5 +- tags/index.html | 5 +- .../index.html" | 5 +- "tags/\344\272\272\347\224\237/index.html" | 5 +- "tags/\345\210\227\350\241\250/index.html" | 5 +- "tags/\345\217\230\351\207\217/index.html" | 5 +- "tags/\346\212\200\345\267\247/index.html" | 5 +- .../index.html" | 5 +- .../index.html" | 5 +- "tags/\346\242\246\346\203\263/index.html" | 5 +- .../index.html" | 5 +- 39 files changed, 192 insertions(+), 111 deletions(-) create mode 100644 js/FunnyTitle.js diff --git "a/2018/08/10/\345\215\232\345\256\242\351\225\207\347\253\231\344\271\213\345\256\235/index.html" "b/2018/08/10/\345\215\232\345\256\242\351\225\207\347\253\231\344\271\213\345\256\235/index.html" index edfd90d42..55b5f5167 100644 --- "a/2018/08/10/\345\215\232\345\256\242\351\225\207\347\253\231\344\271\213\345\256\235/index.html" +++ "b/2018/08/10/\345\215\232\345\256\242\351\225\207\347\253\231\344\271\213\345\256\235/index.html" @@ -336,7 +336,7 @@

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -660,4 +660,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/2018/08/15/\345\246\202\344\275\225\344\275\277\347\224\250Github Pages\345\222\214Hexo\346\220\255\345\273\272\350\207\252\345\267\261\347\213\254\347\253\213\345\215\232\345\256\242/index.html" "b/2018/08/15/\345\246\202\344\275\225\344\275\277\347\224\250Github Pages\345\222\214Hexo\346\220\255\345\273\272\350\207\252\345\267\261\347\213\254\347\253\213\345\215\232\345\256\242/index.html" index f8b7de22f..272a85da6 100644 --- "a/2018/08/15/\345\246\202\344\275\225\344\275\277\347\224\250Github Pages\345\222\214Hexo\346\220\255\345\273\272\350\207\252\345\267\261\347\213\254\347\253\213\345\215\232\345\256\242/index.html" +++ "b/2018/08/15/\345\246\202\344\275\225\344\275\277\347\224\250Github Pages\345\222\214Hexo\346\220\255\345\273\272\350\207\252\345\267\261\347\213\254\347\253\213\345\215\232\345\256\242/index.html" @@ -525,7 +525,7 @@ $ hexo g -d

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -856,4 +856,7 @@ $ hexo g -d - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/2018/08/25/Markdown \350\257\255\346\263\225&\346\212\200\345\267\247\346\200\273\347\273\223/index.html" "b/2018/08/25/Markdown \350\257\255\346\263\225&\346\212\200\345\267\247\346\200\273\347\273\223/index.html" index 0e69340a2..c892a0498 100644 --- "a/2018/08/25/Markdown \350\257\255\346\263\225&\346\212\200\345\267\247\346\200\273\347\273\223/index.html" +++ "b/2018/08/25/Markdown \350\257\255\346\263\225&\346\212\200\345\267\247\346\200\273\347\273\223/index.html" @@ -355,7 +355,7 @@

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -686,4 +686,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/2018/08/27/Hexo \345\215\232\345\256\242\344\270\273\351\242\230\344\270\252\346\200\247\345\214\226/index.html" "b/2018/08/27/Hexo \345\215\232\345\256\242\344\270\273\351\242\230\344\270\252\346\200\247\345\214\226/index.html" index 41ee9dd22..1e1095a66 100644 --- "a/2018/08/27/Hexo \345\215\232\345\256\242\344\270\273\351\242\230\344\270\252\346\200\247\345\214\226/index.html" +++ "b/2018/08/27/Hexo \345\215\232\345\256\242\344\270\273\351\242\230\344\270\252\346\200\247\345\214\226/index.html" @@ -426,7 +426,7 @@

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -757,4 +757,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/2018/08/29/\344\270\273\346\265\201 Markdown \347\274\226\350\276\221\345\231\250\346\216\250\350\215\220/index.html" "b/2018/08/29/\344\270\273\346\265\201 Markdown \347\274\226\350\276\221\345\231\250\346\216\250\350\215\220/index.html" index 6246f8aeb..82cee7200 100644 --- "a/2018/08/29/\344\270\273\346\265\201 Markdown \347\274\226\350\276\221\345\231\250\346\216\250\350\215\220/index.html" +++ "b/2018/08/29/\344\270\273\346\265\201 Markdown \347\274\226\350\276\221\345\231\250\346\216\250\350\215\220/index.html" @@ -429,7 +429,7 @@

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -760,4 +760,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/2018/09/09/VMware Pro 14 \345\256\211\350\243\205 Ubuntu 18.04 \350\257\246\347\273\206\346\225\231\347\250\213/index.html" "b/2018/09/09/VMware Pro 14 \345\256\211\350\243\205 Ubuntu 18.04 \350\257\246\347\273\206\346\225\231\347\250\213/index.html" index c0adc5822..d3ca46995 100644 --- "a/2018/09/09/VMware Pro 14 \345\256\211\350\243\205 Ubuntu 18.04 \350\257\246\347\273\206\346\225\231\347\250\213/index.html" +++ "b/2018/09/09/VMware Pro 14 \345\256\211\350\243\205 Ubuntu 18.04 \350\257\246\347\273\206\346\225\231\347\250\213/index.html" @@ -398,7 +398,7 @@

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -729,4 +729,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/2018/09/10/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C01/index.html" "b/2018/09/10/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C01/index.html" index f608125c3..704dce482 100644 --- "a/2018/09/10/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C01/index.html" +++ "b/2018/09/10/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C01/index.html" @@ -389,7 +389,7 @@

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -720,4 +720,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/2018/09/15/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C02/index.html" "b/2018/09/15/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C02/index.html" index 3002c353c..e6ed45b05 100644 --- "a/2018/09/15/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C02/index.html" +++ "b/2018/09/15/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C02/index.html" @@ -407,7 +407,7 @@

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -738,4 +738,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/2018/10/11/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C03/index.html" "b/2018/10/11/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C03/index.html" index 4d56e268d..e0015f646 100644 --- "a/2018/10/11/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C03/index.html" +++ "b/2018/10/11/Python3 \350\207\252\345\255\246\347\254\224\350\256\260C03/index.html" @@ -412,7 +412,7 @@

- 许可协议: "署名-非商用-相同方式共享 3.0" 转载请保留原文链接及作者。 + 许可协议:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

@@ -732,4 +732,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/About TRHX/index.html b/About TRHX/index.html index 60fe6b423..ccb25b2dd 100644 --- a/About TRHX/index.html +++ b/About TRHX/index.html @@ -600,4 +600,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/Message Board/index.html b/Message Board/index.html index 234eb5cac..3773adfae 100644 --- a/Message Board/index.html +++ b/Message Board/index.html @@ -13,8 +13,7 @@ - - + @@ -226,7 +225,7 @@
@@ -306,7 +305,7 @@

天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣!

山河不足重,重在遇知已!欢迎在下方留言,好好学习天天向上!


-


+
@@ -604,4 +603,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/archives/2018/08/index.html b/archives/2018/08/index.html index 079a8a531..02e792d34 100644 --- a/archives/2018/08/index.html +++ b/archives/2018/08/index.html @@ -571,4 +571,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/archives/2018/09/index.html b/archives/2018/09/index.html index 00749c713..eaa87faaa 100644 --- a/archives/2018/09/index.html +++ b/archives/2018/09/index.html @@ -501,4 +501,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/archives/2018/10/index.html b/archives/2018/10/index.html index 8fc320d1c..af57f8ed6 100644 --- a/archives/2018/10/index.html +++ b/archives/2018/10/index.html @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/archives/2018/index.html b/archives/2018/index.html index 57c11f900..bc4499c47 100644 --- a/archives/2018/index.html +++ b/archives/2018/index.html @@ -711,4 +711,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/archives/index.html b/archives/index.html index 355dd7857..3daef2e27 100644 --- a/archives/index.html +++ b/archives/index.html @@ -711,4 +711,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/categories/Python/index.html b/categories/Python/index.html index bb7f143ad..ba5dce0e5 100644 --- a/categories/Python/index.html +++ b/categories/Python/index.html @@ -501,4 +501,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 362c3bef9..9ac07d3ed 100644 --- a/categories/index.html +++ b/categories/index.html @@ -586,4 +586,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/categories/\345\212\261\345\277\227\350\247\206\351\242\221/index.html" "b/categories/\345\212\261\345\277\227\350\247\206\351\242\221/index.html" index 4fc5f468a..7036b5ba3 100644 --- "a/categories/\345\212\261\345\277\227\350\247\206\351\242\221/index.html" +++ "b/categories/\345\212\261\345\277\227\350\247\206\351\242\221/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/categories/\345\256\236\347\224\250\346\225\231\347\250\213/index.html" "b/categories/\345\256\236\347\224\250\346\225\231\347\250\213/index.html" index 7169601d1..9de7df9b3 100644 --- "a/categories/\345\256\236\347\224\250\346\225\231\347\250\213/index.html" +++ "b/categories/\345\256\236\347\224\250\346\225\231\347\250\213/index.html" @@ -571,4 +571,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/content.json b/content.json index 697eae674..32f5e4150 100644 --- a/content.json +++ b/content.json @@ -1 +1 @@ -{"meta":{"title":"TRHX's Blog - Live for code!","subtitle":"路漫漫其修远兮,吾将上下而求索!","description":"一个大学生用于自学的个人博客","author":"TRHX","url":"http://yoursite.com"},"pages":[{"title":"Tags","date":"2018-09-07T13:45:26.000Z","updated":"2018-09-07T13:45:26.400Z","comments":true,"path":"tags/index.html","permalink":"http://yoursite.com/tags/index.html","excerpt":"","text":""},{"title":"Categories","date":"2018-09-15T17:17:23.000Z","updated":"2018-09-15T17:17:23.204Z","comments":true,"path":"categories/index.html","permalink":"http://yoursite.com/categories/index.html","excerpt":"","text":""},{"title":"About TRHX","date":"2018-08-19T13:50:37.000Z","updated":"2018-09-10T16:26:43.558Z","comments":true,"path":"About TRHX/index.html","permalink":"http://yoursite.com/About TRHX/index.html","excerpt":"","text":"About TRHX ▲ TRHX 武汉某二本院校大二学生,软件工程专业,平时爱捣鼓一切与IT有关的东西,对一切高科技产品非常感兴趣;▲ 爱编程,但又没技术,渴望成为技术大佬,但暂时看起来还是天方夜谭,在校学习C、C++、Java,准备自学Python;▲ 爱骑行,混迹于骑行界超过五年,走遍许多城市,梦想能去一次西藏▲ 爱嗨歌、爱说唱,尤其喜欢一边听歌一边搞学(che)习(dan),一边放低音炮一边骑车飞(zhuang)奔(bi);▲ 性格正直,看不惯一切恶势力;▲ 爱吃辣,无辣不欢;不知道写什么,以后慢慢写吧,反正写着玩儿,也没人看。 近期计划 ▲ 学好Python▲ 坚持写博客▲ 大二学好Java"},{"title":"友情链接 & 留言板","date":"2018-10-18T08:40:12.285Z","updated":"2018-10-18T08:40:12.285Z","comments":true,"path":"Message Board/index.html","permalink":"http://yoursite.com/Message Board/index.html","excerpt":"","text":"hojun’s Blog: https://www.hojun.cnNice’s Blog: https://luotaocheng.github.ioFangzh’s Blog: http://fangzh.top/Terry’s Blog: http://terrylovessmiles.cn/SimonKing’s Blog: http://nicooo.ooo/欧阳博客:https://5658.pw 天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣! 山河不足重,重在遇知已!欢迎在下方留言,好好学习天天向上!"}],"posts":[{"title":"Python3 自学笔记 C03","slug":"Python3 自学笔记C03","date":"2018-10-11T14:49:52.286Z","updated":"2018-10-11T14:49:52.314Z","comments":true,"path":"2018/10/11/Python3 自学笔记C03/","link":"","permalink":"http://yoursite.com/2018/10/11/Python3 自学笔记C03/","excerpt":"","text":"Python3 自学笔记第三章【操作列表】 - 3.1遍历整个列表 使用 for 循环来遍历整个列表: 123names = ['alice' , 'david' , 'liwei']for name in names:print(name) 输出结果如下: 123alicedavidliwei for循环让Python从列表names中取出一个名字,并将其储存在变量name中,最后 让Python打印前面储存到变量name中的名字,对于列表中的每个名字,Python都将 重复执行后两行代码,将列表names中的每个名字都打印出来 - 3.1.1在for循环中执行更多的操作 在for循环中,可对每个元素执行任何操作,下面对前面的示例进行扩展: 例一:123names = ['alice' , 'david' , 'liwei']for name in names: print(name.title() + \", that was a good man!\") 输出结果如下: 123Alice, that was a good man!David, that was a good man!Liwei, that was a good man! 例二: 12345names = ['alice' , 'david' , 'liwei']for name in names: print(name.title() + \", that was a good man!\") print(\"I can't wait to see you again,\" + name.title() + \".\\n\")print(\"Nice to meet you!\") 输出结果如下: 12345678910Alice, that was a good man!I can't wait to see you again,Alice.David, that was a good man!I can't wait to see you again,David.Liwei, that was a good man!I can't wait to see you again,Liwei.Nice to meet you! - 3.2 range()函数 Python使用range()函数能够轻松地生成一系列的数字 Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表; Python3 list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表; Python2 range() 函数返回的是列表 例一:12for i in range(1,5): print(i) 输出结果如下: 12341234 例二:12for i in range(5): print(i) 输出结果如下:1234501234 例三:123456789101112>>> list(range(5))[0, 1, 2, 3, 4]>>> list(range(0))[]>>>list(range(0, 30, 5))[0, 5, 10, 15, 20, 25]>>> list(range(0, 10, 2))[0, 2, 4, 6, 8]>>> list(range(0, -10, -1))[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]>>> list(range(1, 0))[] 例四: 12345squares = []for value in range(1,11): square = value ** 2 squares.append(square)print(squares) 输出结果如下: 1[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] - 3.2.1 对数字列表执行简单的统计计算 1234567>>> digits = [1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0]>>> min(digits)0>>>max(digits)9>>>sum(digits)45 - 3.2.2 列表解析 列表解析能够让比如3.2中的例四更加简化,只需要一行代码就能生成这样的列表,列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素: 12squares = [value ** 2 for value in range(1,11)]print(squares) 在这个示例中,for循环为for value in range(1,11),它将值1~10提供给表达式value ** 2输出结果如下: 1[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] - 3.3 使用列表的一部分 处理列表的部分元素——Python称之为切片 - 3.3.1 切片 1234567891011list = ['a','b','c','d','e','f']print(list[:]) #省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表print(list[:3]) #省略起始位置的索引,默认起始位置从头开始,结束位置索引为2print(list[3:]) #省略结束位置的索引,默认结束位置为最后一个,开始位置索引为3print(list[1:4]) #开始位置索引为1,结束位置索引为3,顾头不顾尾print(list[4:1]) #从左到右索引,因此为空值print(list[-1:-3]) #从左到右索引,因此为空值print(list[-3:-1]) #开始位置索引为倒数第三个,结束位置索引为倒数第二个print(list[1:5:2]) #开始位置索引为1,结束位置索引为4,间隔2print(list[5:1:-1]) #反向取值,开始位置索引为5,结束位置索引为2print(list[::-1]) #反向取值,反向输出列表 - 3.3.2 遍历列表 1234players = ['charles' , 'martina' , 'michael' , 'florence' , 'eli']print(\"Here are the first three players on my team:\")for player in players[:3]: print(player.title()) 输出结果如下: 1234Here are the first three players on my team:CharlesMartinaMichael - 3.3.3 复制列表 要复制列表,可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:]),这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表: 123456my_foods = ['pizza' , 'falafel' , 'carrot cake']friend_foods = my_foods[:]print(\"My favorite foods are:\")print(my_foods)print(\"\\nMy friend's favorite foods are:\")print(friend_foods) 输出结果如下: 12345My favorite foods are:['pizza', 'falafel', 'carrot cake']My friend's favorite foods are:['pizza', 'falafel', 'carrot cake'] 为核实我们的确有两个列表,下面在每个列表中都添加一种食品,并核实每个列表都记录了相应人员喜欢的食品:12345678910my_foods = ['pizza' , 'falafel' , 'carrot cake']friend_foods = my_foods[:]my_foods.append('cannoli')friend_foods.append('ice cream')print(\"My favorite foods are:\")print(my_foods)print(\"\\nMy friend's favorite foods are:\")print(friend_foods) 输出结果如下: 12345My favorite foods are:['pizza', 'falafel', 'carrot cake', 'cannoli']My friend's favorite foods are:['pizza', 'falafel', 'carrot cake', 'ice cream'] 输出结果表明,’cannoli’包含在我喜欢的食品列表中,而’ice cream’没有;’ice cream’包含在我朋友喜欢的食品中,而’cannoli’没有,假如我们只是简单的将my_foods赋给friend_foods,就不能得到两个列表。下面是错误示例: 12345678910my_foods = ['pizza' , 'falafel' , 'carrot cake']friend_foods = my_foods #错误写法my_foods.append('cannoli')friend_foods.append('ice cream')print(\"My favorite foods are:\")print(my_foods)print(\"\\nMy friend's favorite foods are:\")print(friend_foods) 错误示例输出结果如下: 12345My favorite foods are:['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']My friend's favorite foods are:['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream'] - 3.4 元组 Python将不能修改的值称为不可变的,而不可变的列表被称为元组 - 3.4.1 定义元组 元组看起来就像是列表,但元组使用圆括号而不是方括号来标识,定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样: 123dimensions = (200,50)print(dimensions[0])print(dimensions[1]) 输出结果如下: 1220050 如果尝试修改元组中元素的值,将会导致Python返回类型错误消息,由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值: 12dimensions = (200,50)dimensions[0] = 300 将会报错: 1234Traceback (most recent call last): File \"dimensions.py\", line 2, in <module> dimensions[0] = 300TypeError: 'tuple' object does not support item assignment - 3.4.2 遍历元组中所有的值 像列表一样,元组也可以使用for循环来遍历元组中的所有值: 例一:123dimensions = (200,100,50,6)for dimension in dimensions: print(dimension) 输出结果如下: 1234200100506 例二: 123dimensions = (200,100,50,6)for dimension in dimensions[:3]: print(dimension) 输出结果如下: 12320010050 - 3.4.3 修改元组变量 虽然不能修改元组元素,但是可以给储存元组的变量赋值: 123456789dimensions = (200,50)print(\"Original dimensions:\")for dimension in dimensions: print(dimension) dimensions = (400,100)print(\"\\nModified dimensions:\")for dimension in dimensions: print(dimension) 输出结果如下: 1234567Original dimensions:20050Modified dimensions:400100 我们首先定义了一个元组,并将其储存的尺寸打印了出来;然后将一个新元组储存到变量dimensions中,打印新的尺寸;相比于列表,元组是更简单的数据结构。如果需要储存的一组值在程序的整个生命周期内都不变,可使用元组","categories":[{"name":"Python","slug":"Python","permalink":"http://yoursite.com/categories/Python/"}],"tags":[{"name":"操作列表","slug":"操作列表","permalink":"http://yoursite.com/tags/操作列表/"}]},{"title":"Python3 自学笔记 C02","slug":"Python3 自学笔记C02","date":"2018-09-14T17:41:46.929Z","updated":"2018-09-15T17:09:42.760Z","comments":true,"path":"2018/09/15/Python3 自学笔记C02/","link":"","permalink":"http://yoursite.com/2018/09/15/Python3 自学笔记C02/","excerpt":"","text":"Python3 自学笔记第二章【列表】 - 2.1列表是什么 列表由一系列按特定顺序的元素组成,在 Python 中用方括号( [ ] )来表示列表,并用逗号来分隔其中的元素,例: 12345list1 = ['a','b','c','d','e','f']list2 = ['abc', 'xyz', 2018, 2020]list3 = [1, 2, 3, 4, 5 ,6]list4 = [\"a\", \"b\", \"c\", \"d\"]print(list1, list2, list3 ,list4) 输出结果如下: 1['a', 'b', 'c', 'd', 'e', 'f'] ['abc', 'xyz', 2018, 2020] [1, 2, 3, 4, 5, 6] ['a', 'b', 'c', 'd'] - 2.1.1访问列表元素 列表是有序集合,因此要访问列表的元素,只需要将该元素的位置或索引告诉Python即可,注意:在Python中的第一个列表元素的索引为0,而不是1 12345list = ['a','b','c','d','e','f']print(list[0])print(list[3])print(list[-1]) #Python为访问最后一个列表元素提供了一种特殊语法,通过将索引指定为-1,可以让Python返回最后一个列表元素print(list[-3]) 输出结果如下: 1234adfd - 2.1.2列表切片 1234567891011list = ['a','b','c','d','e','f']print(list[:]) #省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表print(list[:3]) #省略起始位置的索引,默认起始位置从头开始,结束位置索引为2print(list[3:]) #省略结束位置的索引,默认结束位置为最后一个,开始位置索引为3print(list[1:4]) #开始位置索引为1,结束位置索引为3,顾头不顾尾print(list[4:1]) #从左到右索引,因此为空值print(list[-1:-3]) #从左到右索引,因此为空值print(list[-3:-1]) #开始位置索引为倒数第三个,结束位置索引为倒数第二个print(list[1:5:2]) #开始位置索引为1,结束位置索引为4,间隔2print(list[5:1:-1]) #反向取值,开始位置索引为5,结束位置索引为2print(list[::-1]) #反向取值,反向输出列表 输出结果如下: 12345678910['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'c']['d', 'e', 'f']['b', 'c', 'd'][][]['d', 'e']['b', 'd']['f', 'e', 'd', 'c']['f', 'e', 'd', 'c', 'b', 'a'] - 2.1.3使用列表中的各个值 可像使用其他变量一样使用列表中的各个值,例如,我们可以使用拼接根据列表中的值来创建消息: 123list = ['python', 'c', 'c++', 'java', 'php']message = \"My favorite language is \" + list[0].title() + \"!\"print(message) 输出结果如下: 1My favorite language is Python! - 2.1.4修改元素 修改列表元素的语法与访问列表元素的语法类似,要修改列表元素,可指定列表名和要修改的元素的索引,再次指定该元素的新值: 1234names = ['zhangsan', 'lishi', 'wanger', 'liming', 'xiaowang']print(names)names[1] = 'lifang'print(names) 输出结果如下: 12['zhangsan', 'lishi', 'wanger', 'liming', 'xiaowang']['zhangsan', 'lifang', 'wanger', 'liming', 'xiaowang'] - 2.1.5添加元素 - 使用方法 append() 在列表末尾添加元素 1234list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)list.append('g')print(list)输出结果如下:12['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'c', 'd', 'e', 'f', 'g'] - 使用方法 insert() 在列表指定位置添加元素 1234list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)list.insert(2,\"h\") #其中括号里的数字表示要插入的位置,此后面的元素将右移一个位置print(list) 输出结果如下: 12['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'h', 'c', 'd', 'e', 'f', 'g'] - 2.1.6删除元素 - 使用 del 语句删除元素 1234list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)del list[3]print(list) 输出结果如下: 12list = ['a', 'b', 'c', 'd', 'e', 'f']list = ['a', 'b', 'c', 'e', 'f'] - 使用方法 pop() 删除最后一个元素方法 pop() 可以删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像是一个栈,而删除列表末尾的元素就相当于弹出栈顶元素:12345list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)new_list = list.pop()print(list)print(new_list)输出结果如下:123['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'c', 'd', 'e']f - 使用方法 pop() 删除任意位置元素可以使用 pop() 来删除列表中任何位置的元素,只需要在括号中指定要删除的元素的索引即可:12345list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)new_list = list.pop(1)print(list)print(new_list)输出结果如下:123['a', 'b', 'c', 'd', 'e', 'f']['a', 'c', 'd', 'e', 'f']b - 使用方法 remove() 删除未知位置元素当我们不知道元素的位置,只知道元素的值的时候,就可以使用方法 remove()1234list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)list.remove('d')print(list)输出结果如下:12['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'c', 'e', 'f'] # - 2.1.7使用方法 index() 查找指定元素位置 12list = [\"a\", \"b\", \"c\", \"d\", \"e\", \"a\"]print(list.index('c')) 输出结果如下: 12 - 2.1.8使用方法 count() 统计指定元素数量 12list = [\"a\", \"b\", \"c\", \"d\", \"e\", \"a\"]print(list.count('a')) 输出结果如下: 12 - 2.1.9清空列表 123list = [\"a\", \"b\", \"c\", \"d\", \"e\", \"a\"]list.clear()print(list) 输出结果如下: 1[] - 2.2组织列表 在创建的列表中,元素的排列顺序常常是无法预测的,因为我们并非总能控制用户提供数据的顺序。有时候,我们希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用 - 2.2.1使用方法 sort() 对列表进行永久排序 使用方法 sort() 可以对列表按照特殊符号,数字,大写字母,小写字母顺序进行永久排序: 123cars = ['bmw', 'audi', 'toyota', 'subaru']cars.sort()print(cars) 输出结果如下: 1['audi', 'bmw', 'subaru', 'toyota'] 还可以按与字母顺序相反的顺序排列列表元素,只需要向 sort() 方法传递参数 reverse = True 就可以了: 123cars = ['bmw', 'audi', 'toyota', 'subaru']cars.sort(reverse = True)print(cars) 输出结果如下: 1['toyota', 'subaru', 'bmw', 'audi'] - 2.2.2使用函数 sorted() 对列表进行临时排序 要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序: 123456789cars = ['bmw', 'audi', 'toyota', 'subaru']print(\"Here is the original list:\")print(cars)print(\"\\nHere is the sorted list:\")print(sorted(cars))print(\"\\nHere is the sorted reverse list:\")print(sorted(cars, reverse=True))print(\"\\nHere is the original list again:\")print(cars) 输出结果如下: 1234567891011Here is the original list:['bmw', 'audi', 'toyota', 'subaru']Here is the sorted list:['audi', 'bmw', 'subaru', 'toyota']Here is the sorted reverse list:['toyota', 'subaru', 'bmw', 'audi']Here is the original list again:['bmw', 'audi', 'toyota', 'subaru'] - 2.2.3使用方法 reverse() 对列表进行反向排序 要反转列表元素的排列顺序,可使用方法 reverse() 123cars = ['bmw', 'audi', 'toyota', 'subaru']cars.reverse()print(cars) 输出结果如下: 1['subaru', 'toyota', 'audi', 'bmw'] - 2.2.4确定列表的长度 使用函数 len() 可以快速获悉列表的长度: 123>>>cars = ['bmw', 'audi', 'toyota', 'subaru']>>>len(cars)4 - 2.2.5合并列表 - 使用方法 extend() 合并列表 12345list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']list1.extend(list2) #将列表list2添加到list1当中去print(list1)print(list2) 输出结果如下: 12[1, 2, 3, 4, 'a', 'b', 'c', 'd']['a', 'b', 'c', 'd'] - 使用 “+” 号合并列表 1234list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']print(list1 + list2)print(list2 + list1) 输出结果如下: 12[1, 2, 3, 4, 'a', 'b', 'c', 'd']['a', 'b', 'c', 'd', 1, 2, 3, 4] - 使用切片合并列表 1234567891011121314list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']list1[len(list1) : len(list1)] = list2 #len(list1)代表要将list2插入list1中的位置print(list1)list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']list1[0 :0] = list2print(list1)list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']list1[1:1] = list2print(list1) 输出结果如下: 123[1, 2, 3, 4, 'a', 'b', 'c', 'd']['a', 'b', 'c', 'd', 1, 2, 3, 4][1, 'a', 'b', 'c', 'd', 2, 3, 4]","categories":[{"name":"Python","slug":"Python","permalink":"http://yoursite.com/categories/Python/"}],"tags":[{"name":"列表","slug":"列表","permalink":"http://yoursite.com/tags/列表/"}]},{"title":"Python3 自学笔记 C01","slug":"Python3 自学笔记C01","date":"2018-09-10T15:55:00.947Z","updated":"2018-09-15T17:09:09.035Z","comments":true,"path":"2018/09/10/Python3 自学笔记C01/","link":"","permalink":"http://yoursite.com/2018/09/10/Python3 自学笔记C01/","excerpt":"","text":"Python3 自学笔记第一章【变量和简单数据类型】 - 1.1变量的命名和使用 变量名只能包含字母、数字和下划线。变量名可以字母或者下划线打头,但不能以数字开头,例如,可以将变量命名为message_1,但不能将其命名为1_message 变量名不能包含空格,但可使用下划线来分割其中的单词,例如,变量名greeting_message可行,但变量名greeting message会引发错误 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print 变量名应既简短又具有描述性,例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好 慎用小写字母l和大写字母O,因为它们可能被人看错成数字1和0 - 1.2字符串 字符串就是一系列字符,在Python中,用引号括起来的都是字符串,其中的引号可以是单引号也可以双引号: 12\"This is a string.\"'This is also a string.' 这种灵活性让我们能够在字符串中包含引号和撇号: 123'I told my friend,\"Python is my favorite language!\"'\"The language 'Python' is named er Monty Python,not the snake.\"\"One of Python's strengths is i diverse and supportive community.\" - 1.2.1使用方法修改字符串的大小写三种处理方法如下:123title() #将字符串每个单词的首字母都改为大写upper() #将字符串的每个字母都改为大写lower() #将字符串的每个字母都改为小写 例如:1234message = \"I love you!\"print(name.title())print(name.upper())print(name.lower()) 输出结果如下:123I Love You!I LOVE YOU!i love you! - 1.2.2合并(拼接)字符串Python使用加号(+)来合并字符串,举例说明: 12345first_name = \"I\"second_name = \"love\"third_name = \"python\"full_name = first_name + \" \" + second_name + \" \" + third_timeprint(full_name.title() + \"!\") 输出结果如下: 1I Love Python! - 1.2.3使用制表符或换行符来添加空白添加横向制表符: 12>>>print(\"\\tPython\") Python 添加换行符: 12345>>>print(\"C\\nC++\\nPython\\nJavaScript\")CC++PythonJavaScript 附表:Python转义符 - 1.2.4删除空白在Python中可用 lstrip()、rstrip()、strip() 分别删除字符串开头、结尾、全部的空白,举例说明: 123456789>>>message = ' python '>>>message' python '>>>message.lstrip()'python '>>>message.rstrip()' python'>>>message.strip()'python' 如果要永久删除字符串中的空白,必须将删除操作的结果存回到变量中: 1234>>>message = ' python '>>>message = message.strip()>>>message'python' - 1.3数字在编程中,经常使用数字来记录游戏得分、表示可视化数据、储存Web应用信息等。Python根据数字的用法以不同的方式处理它们 - 1.3.1整数在Python中,可对整数执行加(+)减(-)乘(*)除(/)乘方(**)运算,同时也支持运算次序: 12345678910111213141516>>>3 + 25>>>3 - 21>>>3 * 26>>>3 \\ 21.5>>>3 ** 29>>>3 ** 327>>>2 + 3 * 414>>>(2 + 3) * 420 - 1.3.2浮点数Python将带小数点的数字都称为浮点数: 1234>>>0.1 + 0.10.2>>>2 * 0.20.4 需要注意的是,结果包含的小数位可能是不确定的,就现在而言,暂时忽略多余的小数位即可: 1234>>>0.2 + 0.10.30000000000000004>>>3 * 0.10.30000000000000004 - 1.3.3使用函数 str() 避免错误错误例子: 123age = 23message = \"Happy \" + age + \"rd Birthday!\"print(message) 运行时会报错: 1234Traceback (most recent call last): File \"birthday.py\", line 2, in <module> message = \"Happy \" + age + \"rd Birthday!\"TypeError: must be str, not int 这是一个类型错误,意味着Python无法识别我们使用的信息。在这个例子中,Python发现我们使用了一个值为整数(int)的变量,但它不知道该如何解读这个值,这个变量表示的可能是数值23,也可能是字符2和3。像上面这样的字符串中使用整数时,需要显式地指出我们希望Python将这个整数用作字符串。为此,可调用函数 str(),它让Python将非字符串值表示为字符串: 123age = 23message = \"Happy \" + str(age) + \"rd Birthday!\"print(message) 输出结果如下: 1Happy 23rd Birthday! - 1.4注释注释让我们能够使用自然语言在程序中添加说明,Python中注释有三种方法: 123456789print(\"Hello Python!\")#这是单行注释'''这是多行注释这是多行注释'''\"\"\"这也是多行注释这也是多行注释\"\"\"","categories":[{"name":"Python","slug":"Python","permalink":"http://yoursite.com/categories/Python/"}],"tags":[{"name":"数据类型","slug":"数据类型","permalink":"http://yoursite.com/tags/数据类型/"},{"name":"变量","slug":"变量","permalink":"http://yoursite.com/tags/变量/"}]},{"title":"VMware Pro 14 安装 Ubuntu 18.04 详细教程","slug":"VMware Pro 14 安装 Ubuntu 18.04 详细教程","date":"2018-09-09T13:14:29.532Z","updated":"2018-09-09T13:23:38.708Z","comments":true,"path":"2018/09/09/VMware Pro 14 安装 Ubuntu 18.04 详细教程/","link":"","permalink":"http://yoursite.com/2018/09/09/VMware Pro 14 安装 Ubuntu 18.04 详细教程/","excerpt":"","text":"1.下载安装 VMware Workstation Pro 14 进入 VMware 官网或者在软件商店下载最新版VMware虚拟机并安装 2.下载 Ubuntu 18.04 系统 进入 Ubuntu 官网,下载最新版 Ubuntu 系统镜像 3.在 VMware 中创建虚拟机打开安装好的 VMware Workstation Pro 14,选择创建新的虚拟机 在新建虚拟机向导中选择自定义(高级) 默认直接下一步,直到出现下图,再选择稍后安装操作系统 选择客户机操作系统为 Linux ,如果你电脑是32位就选择 Ubuntu 版本,64位就选择 Ubuntu 64 位版本 更改虚拟机名称及存放位置 为虚拟机指定处理器数量,默认即可 为虚拟机分配内存,太大了可能会导致卡顿,太小了也不好,推荐内存大小即可 以下均选择默认即可 选择创建新虚拟磁盘 选择将虚拟磁盘储存为单个文件 默认下一步 点击完成 此时我们就可以在虚拟机左侧“我的计算机”下面看到刚刚创建的虚拟机 Ubuntu 64 位,单击 Ubuntu 64 位,选择“编辑虚拟机设置”, 再选择“CD/DVD(SATA)”,选择“使用ISO映像文件”,点击“浏览”,找到先前我们下载好的 Ubuntu 64 位镜像文件,点击“确定” 4.在虚拟机上安装 Ubuntu 系统单击 Ubuntu 64 位,选择“开启此虚拟机” 来到欢迎界面,选择好语言,点击“安装 Ubuntu” 选择键盘布局为“汉语” 更新和其他软件默认选择即可 安装类型选择“清除整个磁盘并安装 Ubuntu”,PS: 因为我们是新安装的系统,且在虚拟机中,所以可以选择清除整个磁盘,这个操作不会清除你原来电脑里面的东西 地区随便,在中国就行,默认即可 之后设置计算机名,密码 点击继续稍等一会就安装完成啦 安装过程中可能会出现的一些问题 1.在虚拟机上安装 Ubuntu 系统的过程中卡死不动 解决方法:关闭网络,重新安装即可 2.Ubuntu 不能全屏显示解决方法:方法①:安装 open-vm-tools: 1sudo apt-get install open-vm-tools 然后执行: 1sudo apt-get install open-vm* 重启即可全屏显示 方法②:在终端输入xrandr,并回车,我们就可以看到很多可以修改的分辨率,选择好分辨率后,比如我们要修改分辨率为 1920x1440 ,则在终端输入 xrandr -s 1920x1440,回车即可,注意 1920x1440 中间是小写字母 x,本人亲测此方法并不是很完美,不能完全适应屏幕 方法③:安装 VMware Tools:1、进入 Ubuntu 系统后,点击虚拟机上的【虚拟机】—>【安装 VMware Tools】,回到桌面即可看到一个 VMware Tools 的 图标2、复制 VMwareTools-10.0.10-4301679.tar.gz(版本根据自己的实际情况而定)到 home 目录下, 用命令 tar -xzvf VMwareTools-10.0.10-4301679.tar.gz 进行解压3、解压后 cd vmware_tools_distrib,打开终端4、输入“sudo ./vmware-install.pl”,输入用户密码后开始安装5、接下来会有很多地方需要你按 Enter或者 Yes6、当你看到出现 —the vmware team 的字样后就可以关闭窗口了,此时窗口就会自动全屏了,如果没有全屏,重启过后就可以了7、若还没有全屏显示,则将虚拟机的【查看】—>【自动调整大小】—>【自适应客户机】,都选上,即可实现全屏","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"VMware","slug":"VMware","permalink":"http://yoursite.com/tags/VMware/"},{"name":"Ubuntu","slug":"Ubuntu","permalink":"http://yoursite.com/tags/Ubuntu/"}]},{"title":"主流 Markdown 编辑器推荐","slug":"主流 Markdown 编辑器推荐","date":"2018-08-29T15:02:46.857Z","updated":"2018-08-30T15:05:11.494Z","comments":true,"path":"2018/08/29/主流 Markdown 编辑器推荐/","link":"","permalink":"http://yoursite.com/2018/08/29/主流 Markdown 编辑器推荐/","excerpt":"","text":"Markdown ,2004年由 John Gruberis 设计和开发,是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式,以下将介绍目前比较流行的一些 Markdown 编辑器(排名不分先后) - MarkdownPad 目前分为 MarkdownPad2 和 MarkdownPad Pro 版本,后者收费,我们使用前者足矣,用户可以通过键盘快捷键和工具栏按钮来使用或者移除 Markdown 各种语法格式,支持自定义配色方案、字体、大小和布局 、即时HTML预览、HTML和PDF导出,被很多人称赞为 Windows 平台最好用的 Markdown 编辑器,实用性强,仅支持 Windows 系统,个人觉得在 Windows 10 系统上界面并不是很好看,有时候添加音乐什么的,资源多了,实时预览会显示资源加载失败,点击此处访问 MarkdownPad 官网 - BookPad 无意间在 Microsoft Store 上发现的,完美搭配 Win10 系统,界面非常简洁漂亮,2017年9月份发布,大小30.82 MB,官方网站:https://sosfos.wordpress.com/ ,收费13人民币,可免费使用7天,各种功能应有尽有,和其他编辑器不相上下,本来想着百度百度看看有没有破解版,结果全网看不见 BookPad 的影子,估计是新出来的还不为人所知吧,可以直接在 Microsoft Store 搜索下载,或者点击链接获取:https://www.microsoft.com/store/apps/9N6P5ZH2SJSX - 小书匠 分为免费版和收费版,收费版¥20/年,其实免费版的功能已经足够强大了,多种编辑模式、多种主题选择、多种编辑器实现、丰富的语法支持、第三方同步、强大的文件管理功能,让人使用一次就爱上了它,支持 Windows 和 Web,推荐使用,点击此处访问小书匠官网 - Sublime Text 3Sublime Text 3 是基于 Vim 开发的跨平台代码编辑器,收费80美元,好像可以免费试用,支持 OS X、Windows、Ubuntu 等 UNIX 及 Linux 操作系统,由于其功能的多样性而广受好评,界面简约大方,定位专业,原生支持的编程语言就多达十几种,通过第三方插件,还能实现更多语法的支持,其中就包括 Markdown ,但也有个缺点,就是不能实时预览,但是用户可以通过 Markdown Preview 的插件实现对 Markdown 的预览,具体教程请点击此处查看,点击此处访问 Sublime Text 官网 - Mou Mou 是一款由国人独立开发者罗晨开发的实时预览型 Markdown 编辑器,仅支持 OS X操作系统,是目前同类应用中对汉字兼容性最好的作品,也是目前最好用的免费 Markdown 编辑器,提供语法高亮、在线预览、同步滚动、全屏模式,支持自定保存、自动匹配,允许自定义主题,支持 CSS,HTML 和 PDF 导出等功能,点击此处访问 Mou 官网 - AtomAtom 是 Github 专门为程序员推出的一个跨平台文本编辑器,具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言,当然也支持 Markdown ,支持宏,自动完成分屏功能,集成了文件管理器,点击此处访问 Atom 官网 - Smark国人编写的开源软件,Windows / Linux 等主流系统跨平台支持,完美支持 LaTex 数学公式、脚注、尾注等,支持使用本地 MathJax 调用,不需要在线访问 MathJax CDN,用户可配置的 Markdown 语法高亮显示,美观整洁,多种格式文件导出支持,简洁友好的界面布局,完备的各类快捷键,能极大地提高工作效率,点击此处访问 Smark 官网 - HaroopadHaroopad 覆盖三大主流桌面系统,支持 Windows、OS X 和 Linux,多种主题样式供你选择,语法标亮支持 54 种编程语言,该工具重点推荐 Ubuntu/Linux 用户使用,点击此处访问 Haroopad 官网 - TyporaTypora 同样支持 Windows、OS X 和 Linux,Typora 支持即时渲染技术,这也是与其他 Markdown 编辑器最显著的区别,支持数学编辑,可与 Word 直接格式转换,在 Pandoc 的支持下进行多种文档格式转换,Typora 适合那些对码字手速和排版顺畅度有要求的人群,譬如码农、网站小编等,点击此处访问 Typora 官网 - CuteMarkEdCuteMarkEd 是一个基于qt5的跨平台的 Markdown 编辑器,开源的, 提供实时 HTML 预览、数学表达式、源码高亮和PDF导出,点击此处 访问 CuteMarkEd 官网 - MarkPadMarkPad 是款开源的 Markdown 编辑器,与 Window 8 风格和谐友好的界面,可以直接在你的博客或者 GitHub 中打开、保存文档,直接将图片粘贴到 Markdown 文档中,点击此处访问 MarkPad 官网 - Cmd Markdown作业部落出品,是一款不错的工具和博客平台兼顾的产品,同时支持 Linux、Mac 和 Windows 操作系统,此外还提供 Web 在线创作,社交化批注、智能云同步,最简单的方法,满足多种写作需要,点击此处访问 Cmd Markdown 官网 - FarBox同样是一款不错的 Markdown 编辑器和博客平台兼顾的产品,让用户通过Dropbox(现在默认是自己的同步服务器)直接建立个人网站。FarBox编辑器免费,同时支持 Linux、Mac 和 Windows 操作系统,Farbox服务可以免费试用,在本地编辑器内写作自动同步发布在个人博客,对于希望有个人博客但却不愿折腾的小白来说,是个不错的选择,点击此处访问 FarBox 官网 - MiuMiu 是一款 Windows 下的 Markdown 编辑器,支持 Markdown 高亮、代码高亮、即时预览,以及可以快速发布到 Github Gist,小众软件,界面美观,已经找不到官网了,小众软件网有提供百度云下载,Miu 下载地址 - MacDownMacDown 引用了许多 Mou 的设计方式,仅支持 Mac ,开源免费,点击此处访问 MacDown 官网 - Ulysses一款由国外开发商 The Soulmen 制作的 Markdown 编辑器。与其它同类应用相比,Ulysses 最大的不同在于,它能根据内置的文件管理器,以及与 iCloud 云服务器的实时同步方案,达到最快捷的文章整理效率,支持OS X , iPad,26人民币每月,14天免费试用,点击此处访问 Ulysses 官网 - Byword一款轻量级的 Markdown 编辑器,支持Mac,iPhone和iPad,界面极简,功能强大,貌似要付费使用,点击此处 访问 Byword 官网 - Visual Studio CodeVisual Studio Code 是微软推出一款轻量级的文本编辑工具,类似于 Sublime,它已经默认集成 Markdown 文档编辑插件,原生就支持高亮 Markdown 的语法,但想要实时预览还需要选择 Markdown: Open Preview to the Side 命令实现,相关教程请点击此处,点击此处 访问 Visual Studio Code 官网 - MarxicoMarxico 中文名马克飞象,提供桌面客户端以及离线 Chrome App,支持移动端 Web,可以直接把文本存到印象笔记,点击此处访问 Marxico,点击此处访问 马克飞象 - MaHua一个在线编辑 Markdown 文档的编辑器,小众软件,VIM 快捷键支持,完美兼容 Github 的 Markdown 语法,界面稍许简陋,点击此处访问 MaHua - Dillinger来自国外的 Markdown 编辑器,漂亮强大,支持md、 html、pdf 文件导出,支持Dropbox、Github、Google Drive、Onedrive 一键保存,点击此处访问 Dillinger - 简书简书是一个优质的创作社区,你可以在线创作并发表到社区,是国内优质原创内容输出平台,简书从一开始就已经支持 Markdown 和富文本编辑,是一个为专门为作者打造的平台,点击此处访问简书官网 要细数 Markdown 编辑器的话,可能永远也数不尽,但最有质量的也就那么几个,而且每个人的看法也不同,正所谓萝卜白菜各有所爱,什么编辑器不是最重要的,重要的是我们能写出优质的文章,不断学习进步!不断提升自我! 参考资料:《好用的Markdown编辑器一览》(By:月光)《10款流行的Markdown编辑器,总有一款适合你》(By:xiaoxiao_engineer)《解决作者们的焦虑:7 款优秀 Markdown 编辑工具推荐》(By:JailJT)","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"Markdown","slug":"Markdown","permalink":"http://yoursite.com/tags/Markdown/"},{"name":"编辑器","slug":"编辑器","permalink":"http://yoursite.com/tags/编辑器/"}]},{"title":"Hexo 博客主题个性化","slug":"Hexo 博客主题个性化","date":"2018-08-27T13:25:24.452Z","updated":"2018-10-18T16:33:07.527Z","comments":true,"path":"2018/08/27/Hexo 博客主题个性化/","link":"","permalink":"http://yoursite.com/2018/08/27/Hexo 博客主题个性化/","excerpt":"","text":"本文将讲述一些博客主题的美化、实用功能的添加,不同主题可能方法有些不同(本文以作者 luuman 的 spfk 主题为例) – 添加评论系统 主流的评论系统有很多,比如:网易云跟帖、多说、友言、畅言、来必力(LiveRe)、Disqus、Valine、Gitment等等,目前网易云跟帖、多说、友言都已经关闭了,还有些可能需要翻墙,比较麻烦,百度了一下,最后还是选择了来必力评论系统 进入来必力官网,注册一个账号(注册时可能需要翻墙) 注册完毕之后,登录,进入安装页面,选择 City 免费版安装,安装之后你会得到一段代码 我们打开主题文件下的 _config.yml 文件,添加如下代码: 在 \\themes\\hexo-theme-spfk\\layout\\_partial\\comments 文件夹下新建一个 livere.ejs 的文件,在里面填写来必力提供的代码: 123456789101112131415161718<!-- 来必力City版安装代码 --><div id=\"lv-container\" data-id=\"city\" data-uid=\"这里是你的uid\"> <script type=\"text/javascript\"> (function(d, s) { var j, e = d.getElementsByTagName(s)[0]; if (typeof LivereTower === 'function') { return; } j = d.createElement(s); j.src = 'https://cdn-city.livere.com/js/embed.dist.js'; j.async = true; e.parentNode.insertBefore(j, e); })(document, 'script'); </script> <noscript>为正常使用来必力评论功能请激活JavaScript</noscript></div><!-- City版安装代码已完成 --> 打开 \\themes\\hexo-theme-spfk\\layout\\_partial\\article.ejs 文件,在适当位置添加如下红框中的代码: 完成以上操作之后,我们就可以使用来必力评论系统了 – 添加卡通人物 我在逛别人博客的时候偶然发现右下角居然有一个萌萌的卡通人物,还能根据你鼠标位置摇头,瞬间被吸引到了,赶紧也给自己博客添加一个吧!点击此处进入该项目地址 输入如下命令获取 live2d : 1$ npm install --save hexo-helper-live2d 输入以下命令,下载相应的模型,将 packagename 更换成模型名称即可,更多模型选择请点击此处,各个模型的预览请访问原作者的博客 1$ npm install packagename 打开站点目录下的 _config.yml 文件,添加如下代码: 1234567891011live2d: enable: true scriptFrom: local model: use: live2d-widget-model-haruto #模型选择 display: position: right #模型位置 width: 150 #模型宽度 height: 300 #模型高度 mobile: show: false #是否在手机端显示 设置好过后我们就拥有了一个卡通人物 – 添加鼠标点击爱心效果 在 /themes/hexo-theme-spfk/source/js 下新建文件 love.js,在 love.js 文件中添加以下代码: 1!function(e,t,a){function n(){c(\".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 500%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}\"),o(),r()}function r(){for(var e=0;e<d.length;e++)d[e].alpha<=0?(t.body.removeChild(d[e].el),d.splice(e,1)):(d[e].y--,d[e].scale+=.004,d[e].alpha-=.013,d[e].el.style.cssText=\"left:\"+d[e].x+\"px;top:\"+d[e].y+\"px;opacity:\"+d[e].alpha+\";transform:scale(\"+d[e].scale+\",\"+d[e].scale+\") rotate(45deg);background:\"+d[e].color+\";z-index:99999\");requestAnimationFrame(r)}function o(){var t=\"function\"==typeof e.onclick&&e.onclick;e.onclick=function(e){t&&t(),i(e)}}function i(e){var a=t.createElement(\"div\");a.className=\"heart\",d.push({el:a,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:s()}),t.body.appendChild(a)}function c(e){var a=t.createElement(\"style\");a.type=\"text/css\";try{a.appendChild(t.createTextNode(e))}catch(t){a.styleSheet.cssText=e}t.getElementsByTagName(\"head\")[0].appendChild(a)}function s(){return\"rgb(\"+~~(255*Math.random())+\",\"+~~(255*Math.random())+\",\"+~~(255*Math.random())+\")\"}var d=[];e.requestAnimationFrame=function(){return e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)}}(),n()}(window,document); 在 \\themes\\hexo-theme-spfk-x\\layout\\layout.ejs 文件末尾添加以下代码: 12<!-- 页面点击小红心 --><script type=\"text/javascript\" src=\"/js/love.js\"></script> 完成以上操作后,当我们点击鼠标的时候就可以看见爱心的特效了 – 添加字数统计和阅读时长 先在博客目录下执行以下命令安装 hexo-wordcount 插件: 1$ npm i --save hexo-wordcount 之后在 \\themes\\hexo-theme-spfk-x\\layout\\_partial\\post 目录下创建 word.ejs 文件,在 word.ejs 文件中写入以下代码: 123456789101112131415161718<div style=\"margin-top:10px;\"> <span class=\"post-time\"> <span class=\"post-meta-item-icon\"> <i class=\"fa fa-keyboard-o\"></i> <span class=\"post-meta-item-text\"> 字数统计: </span> <span class=\"post-count\"><%= wordcount(post.content) %>字</span> </span> </span> <span class=\"post-time\"> &nbsp; | &nbsp; <span class=\"post-meta-item-icon\"> <i class=\"fa fa-hourglass-half\"></i> <span class=\"post-meta-item-text\"> 阅读时长: </span> <span class=\"post-count\"><%= min2read(post.content) %>分</span> </span> </span></div> 然后在 \\themes\\hexo-theme-spfk-x\\layout\\_partial\\article.ejs 中适当位置添加以下代码: 最后在主题目录下的 _config.yml 添加以下配置 1word_count: true 如果显示的位置不好,可以自行更改其位置,成功配置后的效果如下: – 添加背景音乐 打开网页版网易云音乐,选择你准备添加的背景音乐,点击生成外链播放器,前提是要有版权,不然是无法生成外链播放器的,复制底下的HTML代码 然后将此代码放到你想要放的地方,比如放在博客的左侧,则打开 \\themes\\hexo-theme-spfk-x\\layout\\_partial\\left-col.ejs 文件,将复制的HTML代码粘贴进去,再进行适当的位置设置让播放器更美观,其中 auto=1 表示打开网页自动播放音乐,auto=0 表示关闭自动播放音乐 最后效果如下: – 添加网站运行时间 一个比较好的小功能,可以看见自己的博客运行多久了,时间一天天的增加,成就感也会一天天增加的在 \\themes\\hexo-theme-spfk-x\\layout\\_partial\\footer.ejs 文件下添加以下代码: 1234567891011121314151617<span id=\"timeDate\">载入天数...</span><span id=\"times\">载入时分秒...</span><script> var now = new Date(); function createtime() { var grt= new Date(\"08/10/2018 17:38:00\");//在此处修改你的建站时间 now.setTime(now.getTime()+250); days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); if(String(hnum).length ==1 ){hnum = \"0\" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = \"0\" + mnum;} seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); snum = Math.round(seconds); if(String(snum).length ==1 ){snum = \"0\" + snum;} document.getElementById(\"timeDate\").innerHTML = \"本站已安全运行 \"+dnum+\" 天 \"; document.getElementById(\"times\").innerHTML = hnum + \" 小时 \" + mnum + \" 分 \" + snum + \" 秒\"; } setInterval(\"createtime()\",250);</script> 最后效果如下: – 添加百度统计 百度统计是百度推出的一款免费的专业网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么,非常有趣,接下来我们把百度统计添加到自己博客当中 访问百度统计首页,注册一个账号后登陆,添加你的博客网站 接着点击代码获取,复制该代码 然后到目录 \\Hexo\\themes\\hexo-theme-spfk\\layout\\_partial 下新建一个 baidu-analytics.ejs 文件,里面粘贴你刚刚复制的代码 修改主题文件夹下的 _config.yml 文件,将你的key(图中涂掉部分)填写进去: 所有操作完成后可以在百度统计管理页面检查代码是否安装成功,如果代码安装正确,一般20分钟后,可以查看网站分析数据 # 未完待续……","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"主题个性化","slug":"主题个性化","permalink":"http://yoursite.com/tags/主题个性化/"},{"name":"Hexo","slug":"Hexo","permalink":"http://yoursite.com/tags/Hexo/"}]},{"title":"Markdown 语法&技巧总结","slug":"Markdown 语法&技巧总结","date":"2018-08-25T09:57:16.879Z","updated":"2018-10-18T16:31:02.153Z","comments":true,"path":"2018/08/25/Markdown 语法&技巧总结/","link":"","permalink":"http://yoursite.com/2018/08/25/Markdown 语法&技巧总结/","excerpt":"","text":"在写博客的时候,我们不希望都是千篇一律的没有色彩,多了解一些 Markdown 语法技巧有利于丰富我们的博客,看起来更有 feel ! – 插入图片 如果你使用 MarkdownPad 的话就比较方便,可以直接选择插入本地图片或者是网络图片,实质是通过以下代码实现的,小括号里面就是你的图片地址,中括号里面是图片的替代文字,比如上面的图片代码如下: 1![车](https://i.imgur.com/UyEXrBi.jpg) – 插入音乐 打开网页版网易云音乐,选择你准备插入的音乐,点击生成外链播放器,前提是要有版权,不然是无法生成外链播放器的,复制底下的HTML代码 然后将此HTML代码粘贴到你想要放的地方,可自行调节播放器的大小,其中 auto=1 表示打开网页自动播放音乐,auto=0 表示关闭自动播放音乐,比如See You Again (中英文版) - 罗艺恒这首歌曲代码如下: 1<iframe frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" width=330 height=86 src=\"//music.163.com/outchain/player?type=2&id=32405683&auto=1&height=66\"></iframe> – 插入视频 高考毕业了我们为下一届的学弟学妹们录制高考加油视频,我担任后期制作,在这里就以该视频为例٩(๑❛ᴗ❛๑)۶,在腾讯视频播放页面找到分享按钮,复制该视频的通用代码(其他视频播放平台也一样),粘贴到文章中对应位置即可,可根据情况调整视频播放器的大小 1<iframe frameborder=\"0\" width=\"1040\" height=\"700\" src=\"https://v.qq.com/txp/iframe/player.html?vid=x0643zvgtf7\" allowFullScreen=\"true\"></iframe> # 未完待续……","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"Markdown","slug":"Markdown","permalink":"http://yoursite.com/tags/Markdown/"},{"name":"技巧","slug":"技巧","permalink":"http://yoursite.com/tags/技巧/"}]},{"title":"如何使用 Github Pages 和 Hexo 搭建自己的独立博客","slug":"如何使用Github Pages和Hexo搭建自己独立博客","date":"2018-08-15T13:34:58.325Z","updated":"2018-08-29T15:17:51.644Z","comments":true,"path":"2018/08/15/如何使用Github Pages和Hexo搭建自己独立博客/","link":"","permalink":"http://yoursite.com/2018/08/15/如何使用Github Pages和Hexo搭建自己独立博客/","excerpt":"","text":"– 前言首先感谢您能访问我的博客:TRHX’Blog 这是一篇有关如何使用 Github Pages 和 Hexo 搭建属于自己独立博客的详尽教程,本人是软件工程专业本科生,目前只学习了C和C++编程语言,对网站开发的有关知识几乎为零,这也是我搭建好自己的博客之后写的第一篇博客,刚开始搭建博客的时候自己也是网上各种百度,由于自己属于小白那种,历经了千辛万苦才弄好,所以借这个机会写一篇小白真正能看懂的博客搭建教程,教你一步一步走向成功的彼岸! 推荐文章: 《我为什么写博客》 (By 知明所以) 《为什么你应该(从现在开始就)写博客》 (By 刘未鹏 | Mind Hacks) – 入门 Github Pages Github Pages可以被认为是用户编写的、托管在github上的静态网页。使用Github Pages可以为你提供一个免费的服务器,免去了自己搭建服务器和写数据库的麻烦。此外还可以绑定自己的域名。 Hexo Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 – 安装 Node.js点击此处访问官网,按需下载相应版本,默认安装可以了 注:本人在安装过程中出现了Warning 1909,无法创建快捷方式,这种情况很少出现,如果在安装过程中也有这种情况请参考百度文库(win10系统实测可行):《Win7安装程序警告1909无法创建快捷方式》 – 安装 Git点击此处访问官网,按需下载相应版本,默认安装即可 参考资料:《如何在windows下安装GIT》 (By 俊雨廷休) 《Pro Git(中文版)》 – 检验软件是否安装成功同时按下 Win 键和 R 键打开运行窗口,输入 cmd ,然后输入以下命令,有相应版本信息显示则安装成功,若不正确可以卸载软件重新安装,此外若安装成功,在桌面右键鼠标,可以看到菜单里多了 Git GUI Here 和 Git Bash Here两个选项,第一个是图形界面的Git操作,另一个是命令行 $ git --version $ node -v $ npm -v – Hexo 安装选择一个磁盘,新建一个文件夹,自己重命名文件夹(如:我的文件夹为:E\\TRHX_Blog),博客相关文件将储存在此文件夹下,在该文件夹下右键鼠标,点击 Git Bash Here,输入以下 npm 命令即可安装,第一个命令表示安装 hexo,第二个命令表示安装 hexo 部署到 git page 的 deployer,如图所示即为安装成功 $ npm install hexo-cli -g $ npm install hexo-deployer-git --save – Hexo 初始化配置在刚才新建的文件夹里面再次新建一个 Hexo 文件夹(如:我的文件夹为:E\\TRHX_Blog\\Hexo),进入该 Hexo 文件夹右键鼠标,点击 Git Bash Here,输入以下命令,如图所示则安装成功 $ hexo init Hexo 安装完成后,将会在指定文件夹中新建所需要的文件,Hexo 文件夹下的目录如下: – 本地查看效果执行以下命令,执行完即可登录 http://localhost:4000/ 查看效果 $ hexo generate $ hexo server 显示以下信息说明操作成功: INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop. 登录 http://localhost:4000/ 查看效果: – 将博客部署到 Github Pages 上到目前为止,我们的本地博客就成功搭建了,但是现在我们只能通过本地连接查看博客,我们要做的是让其他人也能够访问我们的博客,这就需要我们将博客部署到Github Pages上 一、注册 Github 账户:点击此处访问 Github 官网,点击 Sign Up 注册账户 二、创建项目代码库:点击 New repository 开始创建,步骤及注意事项见图: 三、配置 SSH 密钥:只有配置好 SSH 密钥后,我们才可以通过 git 操作实现本地代码库与 Github 代码库同步,在你第一次新建的文件夹里面(如:我的文件夹为:E\\TRHX_Blog) Git Bash Here 输入以下命令: $ ssh-keygen -t rsa -C "your email@example.com" //引号里面填写你的邮箱地址,比如我的是tanrenhou@126.com 之后会出现: Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): //到这里可以直接回车将密钥按默认文件进行存储 然后会出现: Enter passphrase (empty for no passphrase): //这里是要你输入密码,其实不需要输什么密码,直接回车就行 Enter same passphrase again: 接下来屏幕会显示: Your identification has been saved in /c/Users/you/.ssh/id_rsa. Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. The key fingerprint is: 这里是各种字母数字组成的字符串,结尾是你的邮箱 The key's randomart image is: 这里也是各种字母数字符号组成的字符串 运行以下命令,将公钥的内容复制到系统粘贴板上 $ clip < ~/.ssh/id_rsa.pub 四、在 GitHub 账户中添加你的公钥 1.登陆 GitHub,进入 Settings: 2.点击 SSH and GPG Keys: 3.选择 New SSH key: 4.粘贴密钥: 五、测试 输入以下命令:注意:git@github.com不要做任何更改! $ ssh -T git@github.com 之后会显示: 输入 yes 后会显示: 此时表示设置正确 六、配置 Git 个人信息 Git 会根据用户的名字和邮箱来记录提交,GitHub 也是用这些信息来做权限的处理,输入以下命令进行个人信息的设置,把名称和邮箱替换成你自己的,名字可以不是 GitHub 的昵称,但为了方便记忆,建议与 GitHub 一致 $ git config --global user.name "此处填你的用户名" $ git config --global user.email "此处填你的邮箱" 到此为止 SSH Key 配置成功,本机已成功连接到 Github – 将本地的 Hexo 文件更新到 Github 的库中一、登录 Github 打开自己的项目 your name.github.io 二、鼠标移到 Clone or download 按钮,选择 Use SSH 三、一键复制地址 四、打开你创建的 Hexo 文件夹(如:E:\\TRHX_Blog\\Hexo),右键用记事本(或者Notepad++)打开该文件夹下的 _config.yml 文件 五、按下图修改 _config.yml 文件并保存 六、在 Hexo 文件夹下分别执行以下命令 $ hexo g $ hexo d 或者直接执行 $ hexo g -d 执行完之后会让你输入你的 Github 的账号和密码,如果此时报以下错误,说明你的 deployer 没有安装成功 ERROR Deployer not found: git 需要执行以下命令再安装一次: npm install hexo-deployer-git --save 再执行 hexo g -d,你的博客就会部署到 Github 上了 七、访问博客 你的博客地址:https://你的用户名.github.io,比如我的是:https://trhx.github.io ,现在每个人都可以通过此链接访问你的博客了 – 如何在博客上发表文章博客已经成功搭建了,但是我们该怎么写博客呢? 一、新建一个空文章,输入以下命令,会在项目 \\Hexo\\source\\_posts 中生成 文章标题.md 文件,文章标题根据需要命名 $ hexo n "文章标题" 也可以直接在 \\Hexo\\source\\_posts 目录下右键鼠标新建文本文档,改后缀为 .md 即可,这种方法比较方便 二、用编辑器编写文章 md 全称 Markdown, Markdown 是 2004 年由 John Gruberis 设计和开发的纯文本格式的语法,非常的简单实用,常用的标记符号屈指可数,几分钟即可学会, .md 文件可以使用支持 Markdown 语法的编辑器编辑,然后保存文件到 \\Hexo\\source\\_posts 文件夹下即可推荐 Windows 上使用 MarkdownPad2 编辑器,macOS 上使用 Mou 编辑器,Linux 上使用 Remarkable编辑器,Web 端上使用简书 当我们用编辑器写好文章后,可以使用以下命令将其推送到服务器上 $ hexo g $ hexo d 或者将两个命令合二为一输入以下命令: $ hexo d -g 现在访问你的博客就可以看见写好的文章啦! 参考资料:《10款流行的Markdown编辑器》 (By xiaoxiao_engineer) 《献给写作者的 Markdown 新手指南》 (By 简书) 《认识与入门 Markdown》 (By Te_Lee) 《markdown简明语法》 (By 不如) 《markdown基本语法》 (By 高鸿祥) 《Markdown 公式指导手册》 (By Harries) – 如何为博客更换自己喜欢的主题博客也搭建好了,文章也会写了,但是!!!默认的主题并不喜欢怎么办?现在,我们就来为自己的博客更换自己喜欢的主题 点击此处进入 Hexo 官网的主题专栏,我们可以看见有许多的主题供我们选择 我们要做的就是把主题克隆过来,在此我们以主题 Aero-Dual 为例,点进去我们就可以看见该主题作者的博客,鼠标滑到底,我们可以看见 Theme By Levblanc 的字样(其他主题类似),点击作者 Levblanc ,页面就会跳转到该主题所有的相关文件在 Github 上的地址,复制该地址 再打开 Hexo 文件夹下的 themes 目录(如:E:\\TRHX_Blog\\Hexo\\themes),右键 Git Bash Here,输入以下命令: $ git clone 此处填写你刚才复制的主题地址 比如要安装 Aero-Dual 主题,则输入命令: $ git clone https://github.com/levblanc/hexo-theme-aero-dual 等待下载完成后即可在 themes 目录下生成 hexo-theme-aero-dual 文件夹,然后打开 Hexo 文件夹下的配置文件 _config.yml ,找到关键字 theme,修改参数为:theme:hexo-theme-aero-dual (其他主题修改成相应名称即可),再次注意冒号后面有一个空格! 返回 Hexo 目录,右键 Git Bash Here ,输入以下命令开始部署主题: $ hexo g $ hexo s 此时打开浏览器,访问 http://localhost:4000/ 就可看见我们的主题已经更换了,如果感觉效果满意,我们就可以把它部署到Github上了 打开 Hexo 文件夹,右键 Git Bash Here ,输入以下命令: $ hexo clean //该命令的作用是清除缓存,若不输入此命令,服务器有可能更新不了主题 $ hexo g -d 此时访问自己的博客即可看见更换后的主题,但我们仍然需要对主题的相关配置进行修改,比如网站标题,图标等等,Hexo 中有两份主要的配置文件,名称都是 _config.yml ,它们均是用于站点配置使用的。其中,一份位于站点根目录下(比如我的:E:\\TRHX_Blog\\Hexo\\_config.yml),主要包含 Hexo 本身整站的配置;另一份位于主题目录下(比如我的:E:\\TRHX_Blog\\Hexo\\themes\\hexo-theme-aero-dual\\_config.yml),这份配置由主题作者提供,主要用于配置主题相关的选项,一般 _config.yml 文件里都有相关注释,按需修改即可 参考资料:《有哪些好看的 Hexo 主题?》 (知乎) 《Hexo | 配置》 (Hexo官方文档) 《hexo常用命令笔记》 (By 小弟调调) – 为你的 Hexo 博客配置个性域名本人在配置域名的时候问题百出,百度的各种方法都不管用,打开网站总是 404,可能是我太笨了 o(╥﹏╥)o ,不过好在后来终于解决了这个问题 首先我们要购买域名,阿里云,腾讯云都可以,也不贵,一年几十块钱,最便宜几块钱也能买到,以阿里云为例,我购买的域名是 trhx.top,购买过程就不赘述了,选择阿里云的解析平台,来到阿里云的管理控制台,点击进入域名解析列表或者直接点击域名后面的解析 点击添加记录,需要添加两个记录,两个记录类型都是 CNAME ,记录值都是填你自己的博客地址(比如我的是:trhx.github.io),第一个主机记录为 @ ,第二个主机记录为 www ,保存之后域名解析就完成了! 【注:百度大多数方法是这样的:两个记录类型为 A ,记录值都为博客的 IP 地址,IP 地址可以 cmd 中输入 ping 你的博客地址 获得(比如我的:ping trhx.github.io),但我尝试这种方法并没有成功,目前也不知道具体原因,强调一下,我还是这方面小白!小白!小白!所以不太懂,欢迎大佬来指点!】 为了使 GitHub 接收我们的域名,还需要在博客的根目录下添加一个名为 CNAME 的文件(注意不要加.txt,没有任何后缀名!),这个文件放到 Hexo 文件夹的 source 里面,(比如我的是:E:\\TRHX_Blog\\Hexo\\source),文件里面填写你的域名(去掉www),比如要填写我的域名,文件里面就放一句话:trhx.top,经过以上操作,别人就可以通过 www.trhx.top 、trhx.top 、trhx.github.io 三个当中任意一个访问我的博客了!你的也一样! 如果你在其他平台购买域名,或者选择 DNSPod 等其他域名解析,操作方法大同小异,遇到问题可自行百度解决! 参考资料:《推荐几家域名注册服务商》 (By Jelly Bool) 《盘点十大免费DNS域名解析服务:稳定、可靠》 – 结语一顿操作下来虽然有点儿累,但看见拥有了自己的博客还是非常有成就感的,人生就是需要折腾,那么现在就开始你的创作之旅吧!文章的不断积累,你会从中受益很多的!另外,这是一篇小白写的适用于小白的博客搭建教程,比较详细,有这方面基础的可以百度有简略一点儿的教程,文中如有错误还请大佬指出改正!文中涉及参考资料如有侵权请联系我删除!","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"Hexo","slug":"Hexo","permalink":"http://yoursite.com/tags/Hexo/"},{"name":"Github Pages","slug":"Github-Pages","permalink":"http://yoursite.com/tags/Github-Pages/"}]},{"title":"本站镇站之宝","slug":"博客镇站之宝","date":"2018-08-10T09:38:00.000Z","updated":"2018-08-29T15:17:59.198Z","comments":true,"path":"2018/08/10/博客镇站之宝/","link":"","permalink":"http://yoursite.com/2018/08/10/博客镇站之宝/","excerpt":"","text":"人类的幸福和欢乐在于奋斗,而最有价值的是为理想而奋斗! ———— 苏格拉底Human happiness and joy lie in struggle, and what is most valuable is striving for ideals! ———— Socrates","categories":[{"name":"励志视频","slug":"励志视频","permalink":"http://yoursite.com/categories/励志视频/"}],"tags":[{"name":"梦想","slug":"梦想","permalink":"http://yoursite.com/tags/梦想/"},{"name":"人生","slug":"人生","permalink":"http://yoursite.com/tags/人生/"}]}]} \ No newline at end of file +{"meta":{"title":"TRHX's Blog - Live for code!","subtitle":"路漫漫其修远兮,吾将上下而求索!","description":"一个大学生用于自学的个人博客","author":"TRHX","url":"http://yoursite.com"},"pages":[{"title":"Categories","date":"2018-09-15T17:17:23.000Z","updated":"2018-09-15T17:17:23.204Z","comments":true,"path":"categories/index.html","permalink":"http://yoursite.com/categories/index.html","excerpt":"","text":""},{"title":"友情链接 & 留言板","date":"2018-10-19T13:57:08.140Z","updated":"2018-10-19T13:57:08.140Z","comments":true,"path":"Message Board/index.html","permalink":"http://yoursite.com/Message Board/index.html","excerpt":"","text":"hojun’s Blog: https://www.hojun.cnNice’s Blog: https://luotaocheng.github.ioFangzh’s Blog: http://fangzh.top/Terry’s Blog: http://terrylovessmiles.cn/SimonKing’s Blog: http://nicooo.ooo/欧阳博客:https://5658.pw 天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣! 山河不足重,重在遇知已!欢迎在下方留言,好好学习天天向上!"},{"title":"About TRHX","date":"2018-08-19T13:50:37.000Z","updated":"2018-09-10T16:26:43.558Z","comments":true,"path":"About TRHX/index.html","permalink":"http://yoursite.com/About TRHX/index.html","excerpt":"","text":"About TRHX ▲ TRHX 武汉某二本院校大二学生,软件工程专业,平时爱捣鼓一切与IT有关的东西,对一切高科技产品非常感兴趣;▲ 爱编程,但又没技术,渴望成为技术大佬,但暂时看起来还是天方夜谭,在校学习C、C++、Java,准备自学Python;▲ 爱骑行,混迹于骑行界超过五年,走遍许多城市,梦想能去一次西藏▲ 爱嗨歌、爱说唱,尤其喜欢一边听歌一边搞学(che)习(dan),一边放低音炮一边骑车飞(zhuang)奔(bi);▲ 性格正直,看不惯一切恶势力;▲ 爱吃辣,无辣不欢;不知道写什么,以后慢慢写吧,反正写着玩儿,也没人看。 近期计划 ▲ 学好Python▲ 坚持写博客▲ 大二学好Java"},{"title":"Tags","date":"2018-09-07T13:45:26.000Z","updated":"2018-09-07T13:45:26.400Z","comments":true,"path":"tags/index.html","permalink":"http://yoursite.com/tags/index.html","excerpt":"","text":""}],"posts":[{"title":"Python3 自学笔记 C03","slug":"Python3 自学笔记C03","date":"2018-10-11T14:49:52.286Z","updated":"2018-10-11T14:49:52.314Z","comments":true,"path":"2018/10/11/Python3 自学笔记C03/","link":"","permalink":"http://yoursite.com/2018/10/11/Python3 自学笔记C03/","excerpt":"","text":"Python3 自学笔记第三章【操作列表】 - 3.1遍历整个列表 使用 for 循环来遍历整个列表: 123names = ['alice' , 'david' , 'liwei']for name in names:print(name) 输出结果如下: 123alicedavidliwei for循环让Python从列表names中取出一个名字,并将其储存在变量name中,最后 让Python打印前面储存到变量name中的名字,对于列表中的每个名字,Python都将 重复执行后两行代码,将列表names中的每个名字都打印出来 - 3.1.1在for循环中执行更多的操作 在for循环中,可对每个元素执行任何操作,下面对前面的示例进行扩展: 例一:123names = ['alice' , 'david' , 'liwei']for name in names: print(name.title() + \", that was a good man!\") 输出结果如下: 123Alice, that was a good man!David, that was a good man!Liwei, that was a good man! 例二: 12345names = ['alice' , 'david' , 'liwei']for name in names: print(name.title() + \", that was a good man!\") print(\"I can't wait to see you again,\" + name.title() + \".\\n\")print(\"Nice to meet you!\") 输出结果如下: 12345678910Alice, that was a good man!I can't wait to see you again,Alice.David, that was a good man!I can't wait to see you again,David.Liwei, that was a good man!I can't wait to see you again,Liwei.Nice to meet you! - 3.2 range()函数 Python使用range()函数能够轻松地生成一系列的数字 Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表; Python3 list() 函数是对象迭代器,可以把range()返回的可迭代对象转为一个列表,返回的变量类型为列表; Python2 range() 函数返回的是列表 例一:12for i in range(1,5): print(i) 输出结果如下: 12341234 例二:12for i in range(5): print(i) 输出结果如下:1234501234 例三:123456789101112>>> list(range(5))[0, 1, 2, 3, 4]>>> list(range(0))[]>>>list(range(0, 30, 5))[0, 5, 10, 15, 20, 25]>>> list(range(0, 10, 2))[0, 2, 4, 6, 8]>>> list(range(0, -10, -1))[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]>>> list(range(1, 0))[] 例四: 12345squares = []for value in range(1,11): square = value ** 2 squares.append(square)print(squares) 输出结果如下: 1[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] - 3.2.1 对数字列表执行简单的统计计算 1234567>>> digits = [1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0]>>> min(digits)0>>>max(digits)9>>>sum(digits)45 - 3.2.2 列表解析 列表解析能够让比如3.2中的例四更加简化,只需要一行代码就能生成这样的列表,列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素: 12squares = [value ** 2 for value in range(1,11)]print(squares) 在这个示例中,for循环为for value in range(1,11),它将值1~10提供给表达式value ** 2输出结果如下: 1[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] - 3.3 使用列表的一部分 处理列表的部分元素——Python称之为切片 - 3.3.1 切片 1234567891011list = ['a','b','c','d','e','f']print(list[:]) #省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表print(list[:3]) #省略起始位置的索引,默认起始位置从头开始,结束位置索引为2print(list[3:]) #省略结束位置的索引,默认结束位置为最后一个,开始位置索引为3print(list[1:4]) #开始位置索引为1,结束位置索引为3,顾头不顾尾print(list[4:1]) #从左到右索引,因此为空值print(list[-1:-3]) #从左到右索引,因此为空值print(list[-3:-1]) #开始位置索引为倒数第三个,结束位置索引为倒数第二个print(list[1:5:2]) #开始位置索引为1,结束位置索引为4,间隔2print(list[5:1:-1]) #反向取值,开始位置索引为5,结束位置索引为2print(list[::-1]) #反向取值,反向输出列表 - 3.3.2 遍历列表 1234players = ['charles' , 'martina' , 'michael' , 'florence' , 'eli']print(\"Here are the first three players on my team:\")for player in players[:3]: print(player.title()) 输出结果如下: 1234Here are the first three players on my team:CharlesMartinaMichael - 3.3.3 复制列表 要复制列表,可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:]),这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表: 123456my_foods = ['pizza' , 'falafel' , 'carrot cake']friend_foods = my_foods[:]print(\"My favorite foods are:\")print(my_foods)print(\"\\nMy friend's favorite foods are:\")print(friend_foods) 输出结果如下: 12345My favorite foods are:['pizza', 'falafel', 'carrot cake']My friend's favorite foods are:['pizza', 'falafel', 'carrot cake'] 为核实我们的确有两个列表,下面在每个列表中都添加一种食品,并核实每个列表都记录了相应人员喜欢的食品:12345678910my_foods = ['pizza' , 'falafel' , 'carrot cake']friend_foods = my_foods[:]my_foods.append('cannoli')friend_foods.append('ice cream')print(\"My favorite foods are:\")print(my_foods)print(\"\\nMy friend's favorite foods are:\")print(friend_foods) 输出结果如下: 12345My favorite foods are:['pizza', 'falafel', 'carrot cake', 'cannoli']My friend's favorite foods are:['pizza', 'falafel', 'carrot cake', 'ice cream'] 输出结果表明,’cannoli’包含在我喜欢的食品列表中,而’ice cream’没有;’ice cream’包含在我朋友喜欢的食品中,而’cannoli’没有,假如我们只是简单的将my_foods赋给friend_foods,就不能得到两个列表。下面是错误示例: 12345678910my_foods = ['pizza' , 'falafel' , 'carrot cake']friend_foods = my_foods #错误写法my_foods.append('cannoli')friend_foods.append('ice cream')print(\"My favorite foods are:\")print(my_foods)print(\"\\nMy friend's favorite foods are:\")print(friend_foods) 错误示例输出结果如下: 12345My favorite foods are:['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']My friend's favorite foods are:['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream'] - 3.4 元组 Python将不能修改的值称为不可变的,而不可变的列表被称为元组 - 3.4.1 定义元组 元组看起来就像是列表,但元组使用圆括号而不是方括号来标识,定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样: 123dimensions = (200,50)print(dimensions[0])print(dimensions[1]) 输出结果如下: 1220050 如果尝试修改元组中元素的值,将会导致Python返回类型错误消息,由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值: 12dimensions = (200,50)dimensions[0] = 300 将会报错: 1234Traceback (most recent call last): File \"dimensions.py\", line 2, in <module> dimensions[0] = 300TypeError: 'tuple' object does not support item assignment - 3.4.2 遍历元组中所有的值 像列表一样,元组也可以使用for循环来遍历元组中的所有值: 例一:123dimensions = (200,100,50,6)for dimension in dimensions: print(dimension) 输出结果如下: 1234200100506 例二: 123dimensions = (200,100,50,6)for dimension in dimensions[:3]: print(dimension) 输出结果如下: 12320010050 - 3.4.3 修改元组变量 虽然不能修改元组元素,但是可以给储存元组的变量赋值: 123456789dimensions = (200,50)print(\"Original dimensions:\")for dimension in dimensions: print(dimension) dimensions = (400,100)print(\"\\nModified dimensions:\")for dimension in dimensions: print(dimension) 输出结果如下: 1234567Original dimensions:20050Modified dimensions:400100 我们首先定义了一个元组,并将其储存的尺寸打印了出来;然后将一个新元组储存到变量dimensions中,打印新的尺寸;相比于列表,元组是更简单的数据结构。如果需要储存的一组值在程序的整个生命周期内都不变,可使用元组","categories":[{"name":"Python","slug":"Python","permalink":"http://yoursite.com/categories/Python/"}],"tags":[{"name":"操作列表","slug":"操作列表","permalink":"http://yoursite.com/tags/操作列表/"}]},{"title":"Python3 自学笔记 C02","slug":"Python3 自学笔记C02","date":"2018-09-14T17:41:46.929Z","updated":"2018-09-15T17:09:42.760Z","comments":true,"path":"2018/09/15/Python3 自学笔记C02/","link":"","permalink":"http://yoursite.com/2018/09/15/Python3 自学笔记C02/","excerpt":"","text":"Python3 自学笔记第二章【列表】 - 2.1列表是什么 列表由一系列按特定顺序的元素组成,在 Python 中用方括号( [ ] )来表示列表,并用逗号来分隔其中的元素,例: 12345list1 = ['a','b','c','d','e','f']list2 = ['abc', 'xyz', 2018, 2020]list3 = [1, 2, 3, 4, 5 ,6]list4 = [\"a\", \"b\", \"c\", \"d\"]print(list1, list2, list3 ,list4) 输出结果如下: 1['a', 'b', 'c', 'd', 'e', 'f'] ['abc', 'xyz', 2018, 2020] [1, 2, 3, 4, 5, 6] ['a', 'b', 'c', 'd'] - 2.1.1访问列表元素 列表是有序集合,因此要访问列表的元素,只需要将该元素的位置或索引告诉Python即可,注意:在Python中的第一个列表元素的索引为0,而不是1 12345list = ['a','b','c','d','e','f']print(list[0])print(list[3])print(list[-1]) #Python为访问最后一个列表元素提供了一种特殊语法,通过将索引指定为-1,可以让Python返回最后一个列表元素print(list[-3]) 输出结果如下: 1234adfd - 2.1.2列表切片 1234567891011list = ['a','b','c','d','e','f']print(list[:]) #省略全部,代表截取全部内容,可以用来将一个列表拷给另一个列表print(list[:3]) #省略起始位置的索引,默认起始位置从头开始,结束位置索引为2print(list[3:]) #省略结束位置的索引,默认结束位置为最后一个,开始位置索引为3print(list[1:4]) #开始位置索引为1,结束位置索引为3,顾头不顾尾print(list[4:1]) #从左到右索引,因此为空值print(list[-1:-3]) #从左到右索引,因此为空值print(list[-3:-1]) #开始位置索引为倒数第三个,结束位置索引为倒数第二个print(list[1:5:2]) #开始位置索引为1,结束位置索引为4,间隔2print(list[5:1:-1]) #反向取值,开始位置索引为5,结束位置索引为2print(list[::-1]) #反向取值,反向输出列表 输出结果如下: 12345678910['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'c']['d', 'e', 'f']['b', 'c', 'd'][][]['d', 'e']['b', 'd']['f', 'e', 'd', 'c']['f', 'e', 'd', 'c', 'b', 'a'] - 2.1.3使用列表中的各个值 可像使用其他变量一样使用列表中的各个值,例如,我们可以使用拼接根据列表中的值来创建消息: 123list = ['python', 'c', 'c++', 'java', 'php']message = \"My favorite language is \" + list[0].title() + \"!\"print(message) 输出结果如下: 1My favorite language is Python! - 2.1.4修改元素 修改列表元素的语法与访问列表元素的语法类似,要修改列表元素,可指定列表名和要修改的元素的索引,再次指定该元素的新值: 1234names = ['zhangsan', 'lishi', 'wanger', 'liming', 'xiaowang']print(names)names[1] = 'lifang'print(names) 输出结果如下: 12['zhangsan', 'lishi', 'wanger', 'liming', 'xiaowang']['zhangsan', 'lifang', 'wanger', 'liming', 'xiaowang'] - 2.1.5添加元素 - 使用方法 append() 在列表末尾添加元素 1234list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)list.append('g')print(list)输出结果如下:12['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'c', 'd', 'e', 'f', 'g'] - 使用方法 insert() 在列表指定位置添加元素 1234list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)list.insert(2,\"h\") #其中括号里的数字表示要插入的位置,此后面的元素将右移一个位置print(list) 输出结果如下: 12['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'h', 'c', 'd', 'e', 'f', 'g'] - 2.1.6删除元素 - 使用 del 语句删除元素 1234list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)del list[3]print(list) 输出结果如下: 12list = ['a', 'b', 'c', 'd', 'e', 'f']list = ['a', 'b', 'c', 'e', 'f'] - 使用方法 pop() 删除最后一个元素方法 pop() 可以删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像是一个栈,而删除列表末尾的元素就相当于弹出栈顶元素:12345list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)new_list = list.pop()print(list)print(new_list)输出结果如下:123['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'c', 'd', 'e']f - 使用方法 pop() 删除任意位置元素可以使用 pop() 来删除列表中任何位置的元素,只需要在括号中指定要删除的元素的索引即可:12345list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)new_list = list.pop(1)print(list)print(new_list)输出结果如下:123['a', 'b', 'c', 'd', 'e', 'f']['a', 'c', 'd', 'e', 'f']b - 使用方法 remove() 删除未知位置元素当我们不知道元素的位置,只知道元素的值的时候,就可以使用方法 remove()1234list = ['a', 'b', 'c', 'd', 'e', 'f']print(list)list.remove('d')print(list)输出结果如下:12['a', 'b', 'c', 'd', 'e', 'f']['a', 'b', 'c', 'e', 'f'] # - 2.1.7使用方法 index() 查找指定元素位置 12list = [\"a\", \"b\", \"c\", \"d\", \"e\", \"a\"]print(list.index('c')) 输出结果如下: 12 - 2.1.8使用方法 count() 统计指定元素数量 12list = [\"a\", \"b\", \"c\", \"d\", \"e\", \"a\"]print(list.count('a')) 输出结果如下: 12 - 2.1.9清空列表 123list = [\"a\", \"b\", \"c\", \"d\", \"e\", \"a\"]list.clear()print(list) 输出结果如下: 1[] - 2.2组织列表 在创建的列表中,元素的排列顺序常常是无法预测的,因为我们并非总能控制用户提供数据的顺序。有时候,我们希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用 - 2.2.1使用方法 sort() 对列表进行永久排序 使用方法 sort() 可以对列表按照特殊符号,数字,大写字母,小写字母顺序进行永久排序: 123cars = ['bmw', 'audi', 'toyota', 'subaru']cars.sort()print(cars) 输出结果如下: 1['audi', 'bmw', 'subaru', 'toyota'] 还可以按与字母顺序相反的顺序排列列表元素,只需要向 sort() 方法传递参数 reverse = True 就可以了: 123cars = ['bmw', 'audi', 'toyota', 'subaru']cars.sort(reverse = True)print(cars) 输出结果如下: 1['toyota', 'subaru', 'bmw', 'audi'] - 2.2.2使用函数 sorted() 对列表进行临时排序 要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序: 123456789cars = ['bmw', 'audi', 'toyota', 'subaru']print(\"Here is the original list:\")print(cars)print(\"\\nHere is the sorted list:\")print(sorted(cars))print(\"\\nHere is the sorted reverse list:\")print(sorted(cars, reverse=True))print(\"\\nHere is the original list again:\")print(cars) 输出结果如下: 1234567891011Here is the original list:['bmw', 'audi', 'toyota', 'subaru']Here is the sorted list:['audi', 'bmw', 'subaru', 'toyota']Here is the sorted reverse list:['toyota', 'subaru', 'bmw', 'audi']Here is the original list again:['bmw', 'audi', 'toyota', 'subaru'] - 2.2.3使用方法 reverse() 对列表进行反向排序 要反转列表元素的排列顺序,可使用方法 reverse() 123cars = ['bmw', 'audi', 'toyota', 'subaru']cars.reverse()print(cars) 输出结果如下: 1['subaru', 'toyota', 'audi', 'bmw'] - 2.2.4确定列表的长度 使用函数 len() 可以快速获悉列表的长度: 123>>>cars = ['bmw', 'audi', 'toyota', 'subaru']>>>len(cars)4 - 2.2.5合并列表 - 使用方法 extend() 合并列表 12345list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']list1.extend(list2) #将列表list2添加到list1当中去print(list1)print(list2) 输出结果如下: 12[1, 2, 3, 4, 'a', 'b', 'c', 'd']['a', 'b', 'c', 'd'] - 使用 “+” 号合并列表 1234list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']print(list1 + list2)print(list2 + list1) 输出结果如下: 12[1, 2, 3, 4, 'a', 'b', 'c', 'd']['a', 'b', 'c', 'd', 1, 2, 3, 4] - 使用切片合并列表 1234567891011121314list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']list1[len(list1) : len(list1)] = list2 #len(list1)代表要将list2插入list1中的位置print(list1)list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']list1[0 :0] = list2print(list1)list1 = [1, 2, 3, 4]list2 = ['a', 'b', 'c', 'd']list1[1:1] = list2print(list1) 输出结果如下: 123[1, 2, 3, 4, 'a', 'b', 'c', 'd']['a', 'b', 'c', 'd', 1, 2, 3, 4][1, 'a', 'b', 'c', 'd', 2, 3, 4]","categories":[{"name":"Python","slug":"Python","permalink":"http://yoursite.com/categories/Python/"}],"tags":[{"name":"列表","slug":"列表","permalink":"http://yoursite.com/tags/列表/"}]},{"title":"Python3 自学笔记 C01","slug":"Python3 自学笔记C01","date":"2018-09-10T15:55:00.947Z","updated":"2018-09-15T17:09:09.035Z","comments":true,"path":"2018/09/10/Python3 自学笔记C01/","link":"","permalink":"http://yoursite.com/2018/09/10/Python3 自学笔记C01/","excerpt":"","text":"Python3 自学笔记第一章【变量和简单数据类型】 - 1.1变量的命名和使用 变量名只能包含字母、数字和下划线。变量名可以字母或者下划线打头,但不能以数字开头,例如,可以将变量命名为message_1,但不能将其命名为1_message 变量名不能包含空格,但可使用下划线来分割其中的单词,例如,变量名greeting_message可行,但变量名greeting message会引发错误 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print 变量名应既简短又具有描述性,例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好 慎用小写字母l和大写字母O,因为它们可能被人看错成数字1和0 - 1.2字符串 字符串就是一系列字符,在Python中,用引号括起来的都是字符串,其中的引号可以是单引号也可以双引号: 12\"This is a string.\"'This is also a string.' 这种灵活性让我们能够在字符串中包含引号和撇号: 123'I told my friend,\"Python is my favorite language!\"'\"The language 'Python' is named er Monty Python,not the snake.\"\"One of Python's strengths is i diverse and supportive community.\" - 1.2.1使用方法修改字符串的大小写三种处理方法如下:123title() #将字符串每个单词的首字母都改为大写upper() #将字符串的每个字母都改为大写lower() #将字符串的每个字母都改为小写 例如:1234message = \"I love you!\"print(name.title())print(name.upper())print(name.lower()) 输出结果如下:123I Love You!I LOVE YOU!i love you! - 1.2.2合并(拼接)字符串Python使用加号(+)来合并字符串,举例说明: 12345first_name = \"I\"second_name = \"love\"third_name = \"python\"full_name = first_name + \" \" + second_name + \" \" + third_timeprint(full_name.title() + \"!\") 输出结果如下: 1I Love Python! - 1.2.3使用制表符或换行符来添加空白添加横向制表符: 12>>>print(\"\\tPython\") Python 添加换行符: 12345>>>print(\"C\\nC++\\nPython\\nJavaScript\")CC++PythonJavaScript 附表:Python转义符 - 1.2.4删除空白在Python中可用 lstrip()、rstrip()、strip() 分别删除字符串开头、结尾、全部的空白,举例说明: 123456789>>>message = ' python '>>>message' python '>>>message.lstrip()'python '>>>message.rstrip()' python'>>>message.strip()'python' 如果要永久删除字符串中的空白,必须将删除操作的结果存回到变量中: 1234>>>message = ' python '>>>message = message.strip()>>>message'python' - 1.3数字在编程中,经常使用数字来记录游戏得分、表示可视化数据、储存Web应用信息等。Python根据数字的用法以不同的方式处理它们 - 1.3.1整数在Python中,可对整数执行加(+)减(-)乘(*)除(/)乘方(**)运算,同时也支持运算次序: 12345678910111213141516>>>3 + 25>>>3 - 21>>>3 * 26>>>3 \\ 21.5>>>3 ** 29>>>3 ** 327>>>2 + 3 * 414>>>(2 + 3) * 420 - 1.3.2浮点数Python将带小数点的数字都称为浮点数: 1234>>>0.1 + 0.10.2>>>2 * 0.20.4 需要注意的是,结果包含的小数位可能是不确定的,就现在而言,暂时忽略多余的小数位即可: 1234>>>0.2 + 0.10.30000000000000004>>>3 * 0.10.30000000000000004 - 1.3.3使用函数 str() 避免错误错误例子: 123age = 23message = \"Happy \" + age + \"rd Birthday!\"print(message) 运行时会报错: 1234Traceback (most recent call last): File \"birthday.py\", line 2, in <module> message = \"Happy \" + age + \"rd Birthday!\"TypeError: must be str, not int 这是一个类型错误,意味着Python无法识别我们使用的信息。在这个例子中,Python发现我们使用了一个值为整数(int)的变量,但它不知道该如何解读这个值,这个变量表示的可能是数值23,也可能是字符2和3。像上面这样的字符串中使用整数时,需要显式地指出我们希望Python将这个整数用作字符串。为此,可调用函数 str(),它让Python将非字符串值表示为字符串: 123age = 23message = \"Happy \" + str(age) + \"rd Birthday!\"print(message) 输出结果如下: 1Happy 23rd Birthday! - 1.4注释注释让我们能够使用自然语言在程序中添加说明,Python中注释有三种方法: 123456789print(\"Hello Python!\")#这是单行注释'''这是多行注释这是多行注释'''\"\"\"这也是多行注释这也是多行注释\"\"\"","categories":[{"name":"Python","slug":"Python","permalink":"http://yoursite.com/categories/Python/"}],"tags":[{"name":"数据类型","slug":"数据类型","permalink":"http://yoursite.com/tags/数据类型/"},{"name":"变量","slug":"变量","permalink":"http://yoursite.com/tags/变量/"}]},{"title":"VMware Pro 14 安装 Ubuntu 18.04 详细教程","slug":"VMware Pro 14 安装 Ubuntu 18.04 详细教程","date":"2018-09-09T13:14:29.532Z","updated":"2018-09-09T13:23:38.708Z","comments":true,"path":"2018/09/09/VMware Pro 14 安装 Ubuntu 18.04 详细教程/","link":"","permalink":"http://yoursite.com/2018/09/09/VMware Pro 14 安装 Ubuntu 18.04 详细教程/","excerpt":"","text":"1.下载安装 VMware Workstation Pro 14 进入 VMware 官网或者在软件商店下载最新版VMware虚拟机并安装 2.下载 Ubuntu 18.04 系统 进入 Ubuntu 官网,下载最新版 Ubuntu 系统镜像 3.在 VMware 中创建虚拟机打开安装好的 VMware Workstation Pro 14,选择创建新的虚拟机 在新建虚拟机向导中选择自定义(高级) 默认直接下一步,直到出现下图,再选择稍后安装操作系统 选择客户机操作系统为 Linux ,如果你电脑是32位就选择 Ubuntu 版本,64位就选择 Ubuntu 64 位版本 更改虚拟机名称及存放位置 为虚拟机指定处理器数量,默认即可 为虚拟机分配内存,太大了可能会导致卡顿,太小了也不好,推荐内存大小即可 以下均选择默认即可 选择创建新虚拟磁盘 选择将虚拟磁盘储存为单个文件 默认下一步 点击完成 此时我们就可以在虚拟机左侧“我的计算机”下面看到刚刚创建的虚拟机 Ubuntu 64 位,单击 Ubuntu 64 位,选择“编辑虚拟机设置”, 再选择“CD/DVD(SATA)”,选择“使用ISO映像文件”,点击“浏览”,找到先前我们下载好的 Ubuntu 64 位镜像文件,点击“确定” 4.在虚拟机上安装 Ubuntu 系统单击 Ubuntu 64 位,选择“开启此虚拟机” 来到欢迎界面,选择好语言,点击“安装 Ubuntu” 选择键盘布局为“汉语” 更新和其他软件默认选择即可 安装类型选择“清除整个磁盘并安装 Ubuntu”,PS: 因为我们是新安装的系统,且在虚拟机中,所以可以选择清除整个磁盘,这个操作不会清除你原来电脑里面的东西 地区随便,在中国就行,默认即可 之后设置计算机名,密码 点击继续稍等一会就安装完成啦 安装过程中可能会出现的一些问题 1.在虚拟机上安装 Ubuntu 系统的过程中卡死不动 解决方法:关闭网络,重新安装即可 2.Ubuntu 不能全屏显示解决方法:方法①:安装 open-vm-tools: 1sudo apt-get install open-vm-tools 然后执行: 1sudo apt-get install open-vm* 重启即可全屏显示 方法②:在终端输入xrandr,并回车,我们就可以看到很多可以修改的分辨率,选择好分辨率后,比如我们要修改分辨率为 1920x1440 ,则在终端输入 xrandr -s 1920x1440,回车即可,注意 1920x1440 中间是小写字母 x,本人亲测此方法并不是很完美,不能完全适应屏幕 方法③:安装 VMware Tools:1、进入 Ubuntu 系统后,点击虚拟机上的【虚拟机】—>【安装 VMware Tools】,回到桌面即可看到一个 VMware Tools 的 图标2、复制 VMwareTools-10.0.10-4301679.tar.gz(版本根据自己的实际情况而定)到 home 目录下, 用命令 tar -xzvf VMwareTools-10.0.10-4301679.tar.gz 进行解压3、解压后 cd vmware_tools_distrib,打开终端4、输入“sudo ./vmware-install.pl”,输入用户密码后开始安装5、接下来会有很多地方需要你按 Enter或者 Yes6、当你看到出现 —the vmware team 的字样后就可以关闭窗口了,此时窗口就会自动全屏了,如果没有全屏,重启过后就可以了7、若还没有全屏显示,则将虚拟机的【查看】—>【自动调整大小】—>【自适应客户机】,都选上,即可实现全屏","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"VMware","slug":"VMware","permalink":"http://yoursite.com/tags/VMware/"},{"name":"Ubuntu","slug":"Ubuntu","permalink":"http://yoursite.com/tags/Ubuntu/"}]},{"title":"主流 Markdown 编辑器推荐","slug":"主流 Markdown 编辑器推荐","date":"2018-08-29T15:02:46.857Z","updated":"2018-08-30T15:05:11.494Z","comments":true,"path":"2018/08/29/主流 Markdown 编辑器推荐/","link":"","permalink":"http://yoursite.com/2018/08/29/主流 Markdown 编辑器推荐/","excerpt":"","text":"Markdown ,2004年由 John Gruberis 设计和开发,是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式,以下将介绍目前比较流行的一些 Markdown 编辑器(排名不分先后) - MarkdownPad 目前分为 MarkdownPad2 和 MarkdownPad Pro 版本,后者收费,我们使用前者足矣,用户可以通过键盘快捷键和工具栏按钮来使用或者移除 Markdown 各种语法格式,支持自定义配色方案、字体、大小和布局 、即时HTML预览、HTML和PDF导出,被很多人称赞为 Windows 平台最好用的 Markdown 编辑器,实用性强,仅支持 Windows 系统,个人觉得在 Windows 10 系统上界面并不是很好看,有时候添加音乐什么的,资源多了,实时预览会显示资源加载失败,点击此处访问 MarkdownPad 官网 - BookPad 无意间在 Microsoft Store 上发现的,完美搭配 Win10 系统,界面非常简洁漂亮,2017年9月份发布,大小30.82 MB,官方网站:https://sosfos.wordpress.com/ ,收费13人民币,可免费使用7天,各种功能应有尽有,和其他编辑器不相上下,本来想着百度百度看看有没有破解版,结果全网看不见 BookPad 的影子,估计是新出来的还不为人所知吧,可以直接在 Microsoft Store 搜索下载,或者点击链接获取:https://www.microsoft.com/store/apps/9N6P5ZH2SJSX - 小书匠 分为免费版和收费版,收费版¥20/年,其实免费版的功能已经足够强大了,多种编辑模式、多种主题选择、多种编辑器实现、丰富的语法支持、第三方同步、强大的文件管理功能,让人使用一次就爱上了它,支持 Windows 和 Web,推荐使用,点击此处访问小书匠官网 - Sublime Text 3Sublime Text 3 是基于 Vim 开发的跨平台代码编辑器,收费80美元,好像可以免费试用,支持 OS X、Windows、Ubuntu 等 UNIX 及 Linux 操作系统,由于其功能的多样性而广受好评,界面简约大方,定位专业,原生支持的编程语言就多达十几种,通过第三方插件,还能实现更多语法的支持,其中就包括 Markdown ,但也有个缺点,就是不能实时预览,但是用户可以通过 Markdown Preview 的插件实现对 Markdown 的预览,具体教程请点击此处查看,点击此处访问 Sublime Text 官网 - Mou Mou 是一款由国人独立开发者罗晨开发的实时预览型 Markdown 编辑器,仅支持 OS X操作系统,是目前同类应用中对汉字兼容性最好的作品,也是目前最好用的免费 Markdown 编辑器,提供语法高亮、在线预览、同步滚动、全屏模式,支持自定保存、自动匹配,允许自定义主题,支持 CSS,HTML 和 PDF 导出等功能,点击此处访问 Mou 官网 - AtomAtom 是 Github 专门为程序员推出的一个跨平台文本编辑器,具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言,当然也支持 Markdown ,支持宏,自动完成分屏功能,集成了文件管理器,点击此处访问 Atom 官网 - Smark国人编写的开源软件,Windows / Linux 等主流系统跨平台支持,完美支持 LaTex 数学公式、脚注、尾注等,支持使用本地 MathJax 调用,不需要在线访问 MathJax CDN,用户可配置的 Markdown 语法高亮显示,美观整洁,多种格式文件导出支持,简洁友好的界面布局,完备的各类快捷键,能极大地提高工作效率,点击此处访问 Smark 官网 - HaroopadHaroopad 覆盖三大主流桌面系统,支持 Windows、OS X 和 Linux,多种主题样式供你选择,语法标亮支持 54 种编程语言,该工具重点推荐 Ubuntu/Linux 用户使用,点击此处访问 Haroopad 官网 - TyporaTypora 同样支持 Windows、OS X 和 Linux,Typora 支持即时渲染技术,这也是与其他 Markdown 编辑器最显著的区别,支持数学编辑,可与 Word 直接格式转换,在 Pandoc 的支持下进行多种文档格式转换,Typora 适合那些对码字手速和排版顺畅度有要求的人群,譬如码农、网站小编等,点击此处访问 Typora 官网 - CuteMarkEdCuteMarkEd 是一个基于qt5的跨平台的 Markdown 编辑器,开源的, 提供实时 HTML 预览、数学表达式、源码高亮和PDF导出,点击此处 访问 CuteMarkEd 官网 - MarkPadMarkPad 是款开源的 Markdown 编辑器,与 Window 8 风格和谐友好的界面,可以直接在你的博客或者 GitHub 中打开、保存文档,直接将图片粘贴到 Markdown 文档中,点击此处访问 MarkPad 官网 - Cmd Markdown作业部落出品,是一款不错的工具和博客平台兼顾的产品,同时支持 Linux、Mac 和 Windows 操作系统,此外还提供 Web 在线创作,社交化批注、智能云同步,最简单的方法,满足多种写作需要,点击此处访问 Cmd Markdown 官网 - FarBox同样是一款不错的 Markdown 编辑器和博客平台兼顾的产品,让用户通过Dropbox(现在默认是自己的同步服务器)直接建立个人网站。FarBox编辑器免费,同时支持 Linux、Mac 和 Windows 操作系统,Farbox服务可以免费试用,在本地编辑器内写作自动同步发布在个人博客,对于希望有个人博客但却不愿折腾的小白来说,是个不错的选择,点击此处访问 FarBox 官网 - MiuMiu 是一款 Windows 下的 Markdown 编辑器,支持 Markdown 高亮、代码高亮、即时预览,以及可以快速发布到 Github Gist,小众软件,界面美观,已经找不到官网了,小众软件网有提供百度云下载,Miu 下载地址 - MacDownMacDown 引用了许多 Mou 的设计方式,仅支持 Mac ,开源免费,点击此处访问 MacDown 官网 - Ulysses一款由国外开发商 The Soulmen 制作的 Markdown 编辑器。与其它同类应用相比,Ulysses 最大的不同在于,它能根据内置的文件管理器,以及与 iCloud 云服务器的实时同步方案,达到最快捷的文章整理效率,支持OS X , iPad,26人民币每月,14天免费试用,点击此处访问 Ulysses 官网 - Byword一款轻量级的 Markdown 编辑器,支持Mac,iPhone和iPad,界面极简,功能强大,貌似要付费使用,点击此处 访问 Byword 官网 - Visual Studio CodeVisual Studio Code 是微软推出一款轻量级的文本编辑工具,类似于 Sublime,它已经默认集成 Markdown 文档编辑插件,原生就支持高亮 Markdown 的语法,但想要实时预览还需要选择 Markdown: Open Preview to the Side 命令实现,相关教程请点击此处,点击此处 访问 Visual Studio Code 官网 - MarxicoMarxico 中文名马克飞象,提供桌面客户端以及离线 Chrome App,支持移动端 Web,可以直接把文本存到印象笔记,点击此处访问 Marxico,点击此处访问 马克飞象 - MaHua一个在线编辑 Markdown 文档的编辑器,小众软件,VIM 快捷键支持,完美兼容 Github 的 Markdown 语法,界面稍许简陋,点击此处访问 MaHua - Dillinger来自国外的 Markdown 编辑器,漂亮强大,支持md、 html、pdf 文件导出,支持Dropbox、Github、Google Drive、Onedrive 一键保存,点击此处访问 Dillinger - 简书简书是一个优质的创作社区,你可以在线创作并发表到社区,是国内优质原创内容输出平台,简书从一开始就已经支持 Markdown 和富文本编辑,是一个为专门为作者打造的平台,点击此处访问简书官网 要细数 Markdown 编辑器的话,可能永远也数不尽,但最有质量的也就那么几个,而且每个人的看法也不同,正所谓萝卜白菜各有所爱,什么编辑器不是最重要的,重要的是我们能写出优质的文章,不断学习进步!不断提升自我! 参考资料:《好用的Markdown编辑器一览》(By:月光)《10款流行的Markdown编辑器,总有一款适合你》(By:xiaoxiao_engineer)《解决作者们的焦虑:7 款优秀 Markdown 编辑工具推荐》(By:JailJT)","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"Markdown","slug":"Markdown","permalink":"http://yoursite.com/tags/Markdown/"},{"name":"编辑器","slug":"编辑器","permalink":"http://yoursite.com/tags/编辑器/"}]},{"title":"Hexo 博客主题个性化","slug":"Hexo 博客主题个性化","date":"2018-08-27T13:25:24.452Z","updated":"2018-10-18T16:33:07.527Z","comments":true,"path":"2018/08/27/Hexo 博客主题个性化/","link":"","permalink":"http://yoursite.com/2018/08/27/Hexo 博客主题个性化/","excerpt":"","text":"本文将讲述一些博客主题的美化、实用功能的添加,不同主题可能方法有些不同(本文以作者 luuman 的 spfk 主题为例) – 添加评论系统 主流的评论系统有很多,比如:网易云跟帖、多说、友言、畅言、来必力(LiveRe)、Disqus、Valine、Gitment等等,目前网易云跟帖、多说、友言都已经关闭了,还有些可能需要翻墙,比较麻烦,百度了一下,最后还是选择了来必力评论系统 进入来必力官网,注册一个账号(注册时可能需要翻墙) 注册完毕之后,登录,进入安装页面,选择 City 免费版安装,安装之后你会得到一段代码 我们打开主题文件下的 _config.yml 文件,添加如下代码: 在 \\themes\\hexo-theme-spfk\\layout\\_partial\\comments 文件夹下新建一个 livere.ejs 的文件,在里面填写来必力提供的代码: 123456789101112131415161718<!-- 来必力City版安装代码 --><div id=\"lv-container\" data-id=\"city\" data-uid=\"这里是你的uid\"> <script type=\"text/javascript\"> (function(d, s) { var j, e = d.getElementsByTagName(s)[0]; if (typeof LivereTower === 'function') { return; } j = d.createElement(s); j.src = 'https://cdn-city.livere.com/js/embed.dist.js'; j.async = true; e.parentNode.insertBefore(j, e); })(document, 'script'); </script> <noscript>为正常使用来必力评论功能请激活JavaScript</noscript></div><!-- City版安装代码已完成 --> 打开 \\themes\\hexo-theme-spfk\\layout\\_partial\\article.ejs 文件,在适当位置添加如下红框中的代码: 完成以上操作之后,我们就可以使用来必力评论系统了 – 添加卡通人物 我在逛别人博客的时候偶然发现右下角居然有一个萌萌的卡通人物,还能根据你鼠标位置摇头,瞬间被吸引到了,赶紧也给自己博客添加一个吧!点击此处进入该项目地址 输入如下命令获取 live2d : 1$ npm install --save hexo-helper-live2d 输入以下命令,下载相应的模型,将 packagename 更换成模型名称即可,更多模型选择请点击此处,各个模型的预览请访问原作者的博客 1$ npm install packagename 打开站点目录下的 _config.yml 文件,添加如下代码: 1234567891011live2d: enable: true scriptFrom: local model: use: live2d-widget-model-haruto #模型选择 display: position: right #模型位置 width: 150 #模型宽度 height: 300 #模型高度 mobile: show: false #是否在手机端显示 设置好过后我们就拥有了一个卡通人物 – 添加鼠标点击爱心效果 在 /themes/hexo-theme-spfk/source/js 下新建文件 love.js,在 love.js 文件中添加以下代码: 1!function(e,t,a){function n(){c(\".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 500%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}\"),o(),r()}function r(){for(var e=0;e<d.length;e++)d[e].alpha<=0?(t.body.removeChild(d[e].el),d.splice(e,1)):(d[e].y--,d[e].scale+=.004,d[e].alpha-=.013,d[e].el.style.cssText=\"left:\"+d[e].x+\"px;top:\"+d[e].y+\"px;opacity:\"+d[e].alpha+\";transform:scale(\"+d[e].scale+\",\"+d[e].scale+\") rotate(45deg);background:\"+d[e].color+\";z-index:99999\");requestAnimationFrame(r)}function o(){var t=\"function\"==typeof e.onclick&&e.onclick;e.onclick=function(e){t&&t(),i(e)}}function i(e){var a=t.createElement(\"div\");a.className=\"heart\",d.push({el:a,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:s()}),t.body.appendChild(a)}function c(e){var a=t.createElement(\"style\");a.type=\"text/css\";try{a.appendChild(t.createTextNode(e))}catch(t){a.styleSheet.cssText=e}t.getElementsByTagName(\"head\")[0].appendChild(a)}function s(){return\"rgb(\"+~~(255*Math.random())+\",\"+~~(255*Math.random())+\",\"+~~(255*Math.random())+\")\"}var d=[];e.requestAnimationFrame=function(){return e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)}}(),n()}(window,document); 在 \\themes\\hexo-theme-spfk-x\\layout\\layout.ejs 文件末尾添加以下代码: 12<!-- 页面点击小红心 --><script type=\"text/javascript\" src=\"/js/love.js\"></script> 完成以上操作后,当我们点击鼠标的时候就可以看见爱心的特效了 – 添加字数统计和阅读时长 先在博客目录下执行以下命令安装 hexo-wordcount 插件: 1$ npm i --save hexo-wordcount 之后在 \\themes\\hexo-theme-spfk-x\\layout\\_partial\\post 目录下创建 word.ejs 文件,在 word.ejs 文件中写入以下代码: 123456789101112131415161718<div style=\"margin-top:10px;\"> <span class=\"post-time\"> <span class=\"post-meta-item-icon\"> <i class=\"fa fa-keyboard-o\"></i> <span class=\"post-meta-item-text\"> 字数统计: </span> <span class=\"post-count\"><%= wordcount(post.content) %>字</span> </span> </span> <span class=\"post-time\"> &nbsp; | &nbsp; <span class=\"post-meta-item-icon\"> <i class=\"fa fa-hourglass-half\"></i> <span class=\"post-meta-item-text\"> 阅读时长: </span> <span class=\"post-count\"><%= min2read(post.content) %>分</span> </span> </span></div> 然后在 \\themes\\hexo-theme-spfk-x\\layout\\_partial\\article.ejs 中适当位置添加以下代码: 最后在主题目录下的 _config.yml 添加以下配置 1word_count: true 如果显示的位置不好,可以自行更改其位置,成功配置后的效果如下: – 添加背景音乐 打开网页版网易云音乐,选择你准备添加的背景音乐,点击生成外链播放器,前提是要有版权,不然是无法生成外链播放器的,复制底下的HTML代码 然后将此代码放到你想要放的地方,比如放在博客的左侧,则打开 \\themes\\hexo-theme-spfk-x\\layout\\_partial\\left-col.ejs 文件,将复制的HTML代码粘贴进去,再进行适当的位置设置让播放器更美观,其中 auto=1 表示打开网页自动播放音乐,auto=0 表示关闭自动播放音乐 最后效果如下: – 添加网站运行时间 一个比较好的小功能,可以看见自己的博客运行多久了,时间一天天的增加,成就感也会一天天增加的在 \\themes\\hexo-theme-spfk-x\\layout\\_partial\\footer.ejs 文件下添加以下代码: 1234567891011121314151617<span id=\"timeDate\">载入天数...</span><span id=\"times\">载入时分秒...</span><script> var now = new Date(); function createtime() { var grt= new Date(\"08/10/2018 17:38:00\");//在此处修改你的建站时间 now.setTime(now.getTime()+250); days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); if(String(hnum).length ==1 ){hnum = \"0\" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = \"0\" + mnum;} seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); snum = Math.round(seconds); if(String(snum).length ==1 ){snum = \"0\" + snum;} document.getElementById(\"timeDate\").innerHTML = \"本站已安全运行 \"+dnum+\" 天 \"; document.getElementById(\"times\").innerHTML = hnum + \" 小时 \" + mnum + \" 分 \" + snum + \" 秒\"; } setInterval(\"createtime()\",250);</script> 最后效果如下: – 添加百度统计 百度统计是百度推出的一款免费的专业网站流量分析工具,能够告诉用户访客是如何找到并浏览用户的网站,在网站上做了些什么,非常有趣,接下来我们把百度统计添加到自己博客当中 访问百度统计首页,注册一个账号后登陆,添加你的博客网站 接着点击代码获取,复制该代码 然后到目录 \\Hexo\\themes\\hexo-theme-spfk\\layout\\_partial 下新建一个 baidu-analytics.ejs 文件,里面粘贴你刚刚复制的代码 修改主题文件夹下的 _config.yml 文件,将你的key(图中涂掉部分)填写进去: 所有操作完成后可以在百度统计管理页面检查代码是否安装成功,如果代码安装正确,一般20分钟后,可以查看网站分析数据 # 未完待续……","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"主题个性化","slug":"主题个性化","permalink":"http://yoursite.com/tags/主题个性化/"},{"name":"Hexo","slug":"Hexo","permalink":"http://yoursite.com/tags/Hexo/"}]},{"title":"Markdown 语法&技巧总结","slug":"Markdown 语法&技巧总结","date":"2018-08-25T09:57:16.879Z","updated":"2018-10-18T16:31:02.153Z","comments":true,"path":"2018/08/25/Markdown 语法&技巧总结/","link":"","permalink":"http://yoursite.com/2018/08/25/Markdown 语法&技巧总结/","excerpt":"","text":"在写博客的时候,我们不希望都是千篇一律的没有色彩,多了解一些 Markdown 语法技巧有利于丰富我们的博客,看起来更有 feel ! – 插入图片 如果你使用 MarkdownPad 的话就比较方便,可以直接选择插入本地图片或者是网络图片,实质是通过以下代码实现的,小括号里面就是你的图片地址,中括号里面是图片的替代文字,比如上面的图片代码如下: 1![车](https://i.imgur.com/UyEXrBi.jpg) – 插入音乐 打开网页版网易云音乐,选择你准备插入的音乐,点击生成外链播放器,前提是要有版权,不然是无法生成外链播放器的,复制底下的HTML代码 然后将此HTML代码粘贴到你想要放的地方,可自行调节播放器的大小,其中 auto=1 表示打开网页自动播放音乐,auto=0 表示关闭自动播放音乐,比如See You Again (中英文版) - 罗艺恒这首歌曲代码如下: 1<iframe frameborder=\"no\" border=\"0\" marginwidth=\"0\" marginheight=\"0\" width=330 height=86 src=\"//music.163.com/outchain/player?type=2&id=32405683&auto=1&height=66\"></iframe> – 插入视频 高考毕业了我们为下一届的学弟学妹们录制高考加油视频,我担任后期制作,在这里就以该视频为例٩(๑❛ᴗ❛๑)۶,在腾讯视频播放页面找到分享按钮,复制该视频的通用代码(其他视频播放平台也一样),粘贴到文章中对应位置即可,可根据情况调整视频播放器的大小 1<iframe frameborder=\"0\" width=\"1040\" height=\"700\" src=\"https://v.qq.com/txp/iframe/player.html?vid=x0643zvgtf7\" allowFullScreen=\"true\"></iframe> # 未完待续……","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"Markdown","slug":"Markdown","permalink":"http://yoursite.com/tags/Markdown/"},{"name":"技巧","slug":"技巧","permalink":"http://yoursite.com/tags/技巧/"}]},{"title":"如何使用 Github Pages 和 Hexo 搭建自己的独立博客","slug":"如何使用Github Pages和Hexo搭建自己独立博客","date":"2018-08-15T13:34:58.325Z","updated":"2018-08-29T15:17:51.644Z","comments":true,"path":"2018/08/15/如何使用Github Pages和Hexo搭建自己独立博客/","link":"","permalink":"http://yoursite.com/2018/08/15/如何使用Github Pages和Hexo搭建自己独立博客/","excerpt":"","text":"– 前言首先感谢您能访问我的博客:TRHX’Blog 这是一篇有关如何使用 Github Pages 和 Hexo 搭建属于自己独立博客的详尽教程,本人是软件工程专业本科生,目前只学习了C和C++编程语言,对网站开发的有关知识几乎为零,这也是我搭建好自己的博客之后写的第一篇博客,刚开始搭建博客的时候自己也是网上各种百度,由于自己属于小白那种,历经了千辛万苦才弄好,所以借这个机会写一篇小白真正能看懂的博客搭建教程,教你一步一步走向成功的彼岸! 推荐文章: 《我为什么写博客》 (By 知明所以) 《为什么你应该(从现在开始就)写博客》 (By 刘未鹏 | Mind Hacks) – 入门 Github Pages Github Pages可以被认为是用户编写的、托管在github上的静态网页。使用Github Pages可以为你提供一个免费的服务器,免去了自己搭建服务器和写数据库的麻烦。此外还可以绑定自己的域名。 Hexo Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 – 安装 Node.js点击此处访问官网,按需下载相应版本,默认安装可以了 注:本人在安装过程中出现了Warning 1909,无法创建快捷方式,这种情况很少出现,如果在安装过程中也有这种情况请参考百度文库(win10系统实测可行):《Win7安装程序警告1909无法创建快捷方式》 – 安装 Git点击此处访问官网,按需下载相应版本,默认安装即可 参考资料:《如何在windows下安装GIT》 (By 俊雨廷休) 《Pro Git(中文版)》 – 检验软件是否安装成功同时按下 Win 键和 R 键打开运行窗口,输入 cmd ,然后输入以下命令,有相应版本信息显示则安装成功,若不正确可以卸载软件重新安装,此外若安装成功,在桌面右键鼠标,可以看到菜单里多了 Git GUI Here 和 Git Bash Here两个选项,第一个是图形界面的Git操作,另一个是命令行 $ git --version $ node -v $ npm -v – Hexo 安装选择一个磁盘,新建一个文件夹,自己重命名文件夹(如:我的文件夹为:E\\TRHX_Blog),博客相关文件将储存在此文件夹下,在该文件夹下右键鼠标,点击 Git Bash Here,输入以下 npm 命令即可安装,第一个命令表示安装 hexo,第二个命令表示安装 hexo 部署到 git page 的 deployer,如图所示即为安装成功 $ npm install hexo-cli -g $ npm install hexo-deployer-git --save – Hexo 初始化配置在刚才新建的文件夹里面再次新建一个 Hexo 文件夹(如:我的文件夹为:E\\TRHX_Blog\\Hexo),进入该 Hexo 文件夹右键鼠标,点击 Git Bash Here,输入以下命令,如图所示则安装成功 $ hexo init Hexo 安装完成后,将会在指定文件夹中新建所需要的文件,Hexo 文件夹下的目录如下: – 本地查看效果执行以下命令,执行完即可登录 http://localhost:4000/ 查看效果 $ hexo generate $ hexo server 显示以下信息说明操作成功: INFO Hexo is running at http://0.0.0.0:4000/. Press Ctrl+C to stop. 登录 http://localhost:4000/ 查看效果: – 将博客部署到 Github Pages 上到目前为止,我们的本地博客就成功搭建了,但是现在我们只能通过本地连接查看博客,我们要做的是让其他人也能够访问我们的博客,这就需要我们将博客部署到Github Pages上 一、注册 Github 账户:点击此处访问 Github 官网,点击 Sign Up 注册账户 二、创建项目代码库:点击 New repository 开始创建,步骤及注意事项见图: 三、配置 SSH 密钥:只有配置好 SSH 密钥后,我们才可以通过 git 操作实现本地代码库与 Github 代码库同步,在你第一次新建的文件夹里面(如:我的文件夹为:E\\TRHX_Blog) Git Bash Here 输入以下命令: $ ssh-keygen -t rsa -C "your email@example.com" //引号里面填写你的邮箱地址,比如我的是tanrenhou@126.com 之后会出现: Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): //到这里可以直接回车将密钥按默认文件进行存储 然后会出现: Enter passphrase (empty for no passphrase): //这里是要你输入密码,其实不需要输什么密码,直接回车就行 Enter same passphrase again: 接下来屏幕会显示: Your identification has been saved in /c/Users/you/.ssh/id_rsa. Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub. The key fingerprint is: 这里是各种字母数字组成的字符串,结尾是你的邮箱 The key's randomart image is: 这里也是各种字母数字符号组成的字符串 运行以下命令,将公钥的内容复制到系统粘贴板上 $ clip < ~/.ssh/id_rsa.pub 四、在 GitHub 账户中添加你的公钥 1.登陆 GitHub,进入 Settings: 2.点击 SSH and GPG Keys: 3.选择 New SSH key: 4.粘贴密钥: 五、测试 输入以下命令:注意:git@github.com不要做任何更改! $ ssh -T git@github.com 之后会显示: 输入 yes 后会显示: 此时表示设置正确 六、配置 Git 个人信息 Git 会根据用户的名字和邮箱来记录提交,GitHub 也是用这些信息来做权限的处理,输入以下命令进行个人信息的设置,把名称和邮箱替换成你自己的,名字可以不是 GitHub 的昵称,但为了方便记忆,建议与 GitHub 一致 $ git config --global user.name "此处填你的用户名" $ git config --global user.email "此处填你的邮箱" 到此为止 SSH Key 配置成功,本机已成功连接到 Github – 将本地的 Hexo 文件更新到 Github 的库中一、登录 Github 打开自己的项目 your name.github.io 二、鼠标移到 Clone or download 按钮,选择 Use SSH 三、一键复制地址 四、打开你创建的 Hexo 文件夹(如:E:\\TRHX_Blog\\Hexo),右键用记事本(或者Notepad++)打开该文件夹下的 _config.yml 文件 五、按下图修改 _config.yml 文件并保存 六、在 Hexo 文件夹下分别执行以下命令 $ hexo g $ hexo d 或者直接执行 $ hexo g -d 执行完之后会让你输入你的 Github 的账号和密码,如果此时报以下错误,说明你的 deployer 没有安装成功 ERROR Deployer not found: git 需要执行以下命令再安装一次: npm install hexo-deployer-git --save 再执行 hexo g -d,你的博客就会部署到 Github 上了 七、访问博客 你的博客地址:https://你的用户名.github.io,比如我的是:https://trhx.github.io ,现在每个人都可以通过此链接访问你的博客了 – 如何在博客上发表文章博客已经成功搭建了,但是我们该怎么写博客呢? 一、新建一个空文章,输入以下命令,会在项目 \\Hexo\\source\\_posts 中生成 文章标题.md 文件,文章标题根据需要命名 $ hexo n "文章标题" 也可以直接在 \\Hexo\\source\\_posts 目录下右键鼠标新建文本文档,改后缀为 .md 即可,这种方法比较方便 二、用编辑器编写文章 md 全称 Markdown, Markdown 是 2004 年由 John Gruberis 设计和开发的纯文本格式的语法,非常的简单实用,常用的标记符号屈指可数,几分钟即可学会, .md 文件可以使用支持 Markdown 语法的编辑器编辑,然后保存文件到 \\Hexo\\source\\_posts 文件夹下即可推荐 Windows 上使用 MarkdownPad2 编辑器,macOS 上使用 Mou 编辑器,Linux 上使用 Remarkable编辑器,Web 端上使用简书 当我们用编辑器写好文章后,可以使用以下命令将其推送到服务器上 $ hexo g $ hexo d 或者将两个命令合二为一输入以下命令: $ hexo d -g 现在访问你的博客就可以看见写好的文章啦! 参考资料:《10款流行的Markdown编辑器》 (By xiaoxiao_engineer) 《献给写作者的 Markdown 新手指南》 (By 简书) 《认识与入门 Markdown》 (By Te_Lee) 《markdown简明语法》 (By 不如) 《markdown基本语法》 (By 高鸿祥) 《Markdown 公式指导手册》 (By Harries) – 如何为博客更换自己喜欢的主题博客也搭建好了,文章也会写了,但是!!!默认的主题并不喜欢怎么办?现在,我们就来为自己的博客更换自己喜欢的主题 点击此处进入 Hexo 官网的主题专栏,我们可以看见有许多的主题供我们选择 我们要做的就是把主题克隆过来,在此我们以主题 Aero-Dual 为例,点进去我们就可以看见该主题作者的博客,鼠标滑到底,我们可以看见 Theme By Levblanc 的字样(其他主题类似),点击作者 Levblanc ,页面就会跳转到该主题所有的相关文件在 Github 上的地址,复制该地址 再打开 Hexo 文件夹下的 themes 目录(如:E:\\TRHX_Blog\\Hexo\\themes),右键 Git Bash Here,输入以下命令: $ git clone 此处填写你刚才复制的主题地址 比如要安装 Aero-Dual 主题,则输入命令: $ git clone https://github.com/levblanc/hexo-theme-aero-dual 等待下载完成后即可在 themes 目录下生成 hexo-theme-aero-dual 文件夹,然后打开 Hexo 文件夹下的配置文件 _config.yml ,找到关键字 theme,修改参数为:theme:hexo-theme-aero-dual (其他主题修改成相应名称即可),再次注意冒号后面有一个空格! 返回 Hexo 目录,右键 Git Bash Here ,输入以下命令开始部署主题: $ hexo g $ hexo s 此时打开浏览器,访问 http://localhost:4000/ 就可看见我们的主题已经更换了,如果感觉效果满意,我们就可以把它部署到Github上了 打开 Hexo 文件夹,右键 Git Bash Here ,输入以下命令: $ hexo clean //该命令的作用是清除缓存,若不输入此命令,服务器有可能更新不了主题 $ hexo g -d 此时访问自己的博客即可看见更换后的主题,但我们仍然需要对主题的相关配置进行修改,比如网站标题,图标等等,Hexo 中有两份主要的配置文件,名称都是 _config.yml ,它们均是用于站点配置使用的。其中,一份位于站点根目录下(比如我的:E:\\TRHX_Blog\\Hexo\\_config.yml),主要包含 Hexo 本身整站的配置;另一份位于主题目录下(比如我的:E:\\TRHX_Blog\\Hexo\\themes\\hexo-theme-aero-dual\\_config.yml),这份配置由主题作者提供,主要用于配置主题相关的选项,一般 _config.yml 文件里都有相关注释,按需修改即可 参考资料:《有哪些好看的 Hexo 主题?》 (知乎) 《Hexo | 配置》 (Hexo官方文档) 《hexo常用命令笔记》 (By 小弟调调) – 为你的 Hexo 博客配置个性域名本人在配置域名的时候问题百出,百度的各种方法都不管用,打开网站总是 404,可能是我太笨了 o(╥﹏╥)o ,不过好在后来终于解决了这个问题 首先我们要购买域名,阿里云,腾讯云都可以,也不贵,一年几十块钱,最便宜几块钱也能买到,以阿里云为例,我购买的域名是 trhx.top,购买过程就不赘述了,选择阿里云的解析平台,来到阿里云的管理控制台,点击进入域名解析列表或者直接点击域名后面的解析 点击添加记录,需要添加两个记录,两个记录类型都是 CNAME ,记录值都是填你自己的博客地址(比如我的是:trhx.github.io),第一个主机记录为 @ ,第二个主机记录为 www ,保存之后域名解析就完成了! 【注:百度大多数方法是这样的:两个记录类型为 A ,记录值都为博客的 IP 地址,IP 地址可以 cmd 中输入 ping 你的博客地址 获得(比如我的:ping trhx.github.io),但我尝试这种方法并没有成功,目前也不知道具体原因,强调一下,我还是这方面小白!小白!小白!所以不太懂,欢迎大佬来指点!】 为了使 GitHub 接收我们的域名,还需要在博客的根目录下添加一个名为 CNAME 的文件(注意不要加.txt,没有任何后缀名!),这个文件放到 Hexo 文件夹的 source 里面,(比如我的是:E:\\TRHX_Blog\\Hexo\\source),文件里面填写你的域名(去掉www),比如要填写我的域名,文件里面就放一句话:trhx.top,经过以上操作,别人就可以通过 www.trhx.top 、trhx.top 、trhx.github.io 三个当中任意一个访问我的博客了!你的也一样! 如果你在其他平台购买域名,或者选择 DNSPod 等其他域名解析,操作方法大同小异,遇到问题可自行百度解决! 参考资料:《推荐几家域名注册服务商》 (By Jelly Bool) 《盘点十大免费DNS域名解析服务:稳定、可靠》 – 结语一顿操作下来虽然有点儿累,但看见拥有了自己的博客还是非常有成就感的,人生就是需要折腾,那么现在就开始你的创作之旅吧!文章的不断积累,你会从中受益很多的!另外,这是一篇小白写的适用于小白的博客搭建教程,比较详细,有这方面基础的可以百度有简略一点儿的教程,文中如有错误还请大佬指出改正!文中涉及参考资料如有侵权请联系我删除!","categories":[{"name":"实用教程","slug":"实用教程","permalink":"http://yoursite.com/categories/实用教程/"}],"tags":[{"name":"Hexo","slug":"Hexo","permalink":"http://yoursite.com/tags/Hexo/"},{"name":"Github Pages","slug":"Github-Pages","permalink":"http://yoursite.com/tags/Github-Pages/"}]},{"title":"本站镇站之宝","slug":"博客镇站之宝","date":"2018-08-10T09:38:00.000Z","updated":"2018-08-29T15:17:59.198Z","comments":true,"path":"2018/08/10/博客镇站之宝/","link":"","permalink":"http://yoursite.com/2018/08/10/博客镇站之宝/","excerpt":"","text":"人类的幸福和欢乐在于奋斗,而最有价值的是为理想而奋斗! ———— 苏格拉底Human happiness and joy lie in struggle, and what is most valuable is striving for ideals! ———— Socrates","categories":[{"name":"励志视频","slug":"励志视频","permalink":"http://yoursite.com/categories/励志视频/"}],"tags":[{"name":"梦想","slug":"梦想","permalink":"http://yoursite.com/tags/梦想/"},{"name":"人生","slug":"人生","permalink":"http://yoursite.com/tags/人生/"}]}]} \ No newline at end of file diff --git a/css/style.css b/css/style.css index 9580ebea5..97fd36e6d 100644 --- a/css/style.css +++ b/css/style.css @@ -518,7 +518,7 @@ a { border: none; padding: 0.2em 0.4em; border-radius: 6px; - background-color: #ee6252; + background-color: #f00; font-size: 14px; text-align: center; color: #fff; @@ -554,7 +554,7 @@ a { padding-left: 1.2em; } #container .toc-article a { - color: #767676; + color: #4094c7; } #container .scroll { bottom: 0; @@ -566,7 +566,7 @@ a { position: fixed; left: 42px; top: 78px; - color: #999; + color: #4094c7; opacity: 0.6; } #container .hide-labels:hover { @@ -576,12 +576,6 @@ a { #container #post-nav-button { display: none; } - #container .ua { - display: none !important; - } - #container #header .social li:nth-child(5n) { - margin-right: 3px; - } #container .bdshare-button-style2-24 { width: 289px; margin: auto; @@ -608,7 +602,7 @@ a { margin: 0.67em 0; font-family: Roboto, "Roboto", serif; font-size: 30px; - color: #fff; + color: #00c5cd; -webkit-transition: 0.3s; -moz-transition: 0.3s; -ms-transition: 0.3s; @@ -618,10 +612,10 @@ a { width: 100%; } #header a { - color: #fff; + color: #00c5cd; } #header a:hover { - color: #4d4d4d; + color: #fff; } #header .profilepic { text-align: center; @@ -2053,7 +2047,7 @@ a { } #header .header-menu li a:hover { color: #fff; - background: #258fb8; + background: #0083a0; border-radius: 2px; padding: 3px; margin: 2px; @@ -2062,7 +2056,7 @@ a { position: relative; width: 100%; overflow: hidden; - color: #fff; + color: #00b2ee; min-height: 300px; font-size: 14px; } @@ -2249,10 +2243,10 @@ a { border-bottom: none; } .scroll a .fa { - color: rgba(255,255,255,0.8); + color: #00b2ee; } .scroll a:hover { - background: rgba(147,181,224,0.3) !important; + background: #00b2ee !important; } .scroll a:hover .fa { color: #fff; @@ -2269,13 +2263,13 @@ a { font-family: inherit; font-size: 0.9em; font-weight: bold; - color: #999; + color: #fff; background: none; opacity: 0.32; -webkit-appearance: none; } .hide-labels:hover { - color: #fff; + color: #00b2ee; opacity: 1; } #post-nav-button { @@ -2300,7 +2294,7 @@ a { margin: 0.4em 0 0.1em 0.7em; } .post-list li a { - color: #808080; + color: #0083a0; } .post-list li a:hover { color @@ -2309,52 +2303,15 @@ color .post-list li:hover a { color: #88acdb; } -.duoshuo { - padding: 0 40px; -} -#busuanzi_value_site_uv, -#busuanzi_value_page_pv { - color: #fff; -} -#busuanzi_value_site_uv:hover, -#busuanzi_value_page_pv:hover { - color: #999; -} -.duoshuo { - padding: 0 40px; -} -#disqus_thread { - padding: 0 40px; -} -#search { - width: 68%; - height: 18px; - margin-top: 1px; - color: #fff; - padding: 0; - font-family: inherit; - border: 2px solid transparent; - border-bottom: 2px solid #d3d3d3; - border-radius: 2px; - opacity: 0.7; - background: none; - outline: medium; -} -#search:hover { -/* border: 2px solid lightgray; */ - opacity: 1; - -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.3); - box-shadow: 0 0 10px rgba(0,0,0,0.3); -} .search { width: 68%; height: 18px; margin-top: 1px; - color: #fff; + color: #00b2ee; padding: 0; font-family: inherit; border: 2px solid transparent; - border-bottom: 2px solid #d3d3d3; + border-bottom: 2px solid #00b2ee; border-radius: 2px; opacity: 0.7; background: none; @@ -4630,11 +4587,11 @@ pre .link_url { } ::-webkit-scrollbar-thumb { border-radius: 8px; - background-color: rgba(0,0,0,0.2); + background-color: #00b2ee; } ::-webkit-scrollbar-thumb:hover { border-radius: 8px; - background-color: rgba(0,0,0,0.5); + background-color: #00b2ee; } ::-webkit-scrollbar-track, ::-webkit-scrollbar-thumb { @@ -4642,7 +4599,7 @@ pre .link_url { border-left: 1px solid transparent; } ::-webkit-scrollbar-track:hover { - background-color: rgba(0,0,0,0.15); + background-color: #00b2ee; } ::-webkit-scrollbar-button:start { width: 10px; diff --git a/index.html b/index.html index 19cda236a..4b667ff2f 100644 --- a/index.html +++ b/index.html @@ -1004,4 +1004,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/js/FunnyTitle.js b/js/FunnyTitle.js new file mode 100644 index 000000000..78e000335 --- /dev/null +++ b/js/FunnyTitle.js @@ -0,0 +1,17 @@ + + var OriginTitle = document.title; + var titleTime; + document.addEventListener('visibilitychange', function () { + if (document.hidden) { + $('[rel="icon"]').attr('href', "/img/TEP.ico"); + document.title = 'ヽ(●-`Д´-)ノ你丑你就走!'; + clearTimeout(titleTime); + } + else { + $('[rel="icon"]').attr('href', "/favicon.ico"); + document.title = 'ヾ(Ő∀Ő3)ノ你帅就回来!' + OriginTitle; + titleTime = setTimeout(function () { + document.title = OriginTitle; + }, 2000); + } + }); \ No newline at end of file diff --git a/tags/Github-Pages/index.html b/tags/Github-Pages/index.html index d649c96e8..04f853ddc 100644 --- a/tags/Github-Pages/index.html +++ b/tags/Github-Pages/index.html @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/tags/Hexo/index.html b/tags/Hexo/index.html index ad124eefc..609116fa9 100644 --- a/tags/Hexo/index.html +++ b/tags/Hexo/index.html @@ -466,4 +466,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/tags/Markdown/index.html b/tags/Markdown/index.html index 5fc1aeef1..22100aaa2 100644 --- a/tags/Markdown/index.html +++ b/tags/Markdown/index.html @@ -466,4 +466,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/tags/Ubuntu/index.html b/tags/Ubuntu/index.html index 989dcffec..412ef107e 100644 --- a/tags/Ubuntu/index.html +++ b/tags/Ubuntu/index.html @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/tags/VMware/index.html b/tags/VMware/index.html index c0a177ad3..195bcd17e 100644 --- a/tags/VMware/index.html +++ b/tags/VMware/index.html @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 32e398114..b1db0db94 100644 --- a/tags/index.html +++ b/tags/index.html @@ -654,4 +654,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\344\270\273\351\242\230\344\270\252\346\200\247\345\214\226/index.html" "b/tags/\344\270\273\351\242\230\344\270\252\346\200\247\345\214\226/index.html" index 41da3b69d..d7c745be1 100644 --- "a/tags/\344\270\273\351\242\230\344\270\252\346\200\247\345\214\226/index.html" +++ "b/tags/\344\270\273\351\242\230\344\270\252\346\200\247\345\214\226/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\344\272\272\347\224\237/index.html" "b/tags/\344\272\272\347\224\237/index.html" index f63a42712..b98a04234 100644 --- "a/tags/\344\272\272\347\224\237/index.html" +++ "b/tags/\344\272\272\347\224\237/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\345\210\227\350\241\250/index.html" "b/tags/\345\210\227\350\241\250/index.html" index 7524b6702..8644f6bd6 100644 --- "a/tags/\345\210\227\350\241\250/index.html" +++ "b/tags/\345\210\227\350\241\250/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\345\217\230\351\207\217/index.html" "b/tags/\345\217\230\351\207\217/index.html" index b73ac337d..b76a7fd45 100644 --- "a/tags/\345\217\230\351\207\217/index.html" +++ "b/tags/\345\217\230\351\207\217/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\346\212\200\345\267\247/index.html" "b/tags/\346\212\200\345\267\247/index.html" index 0cfd00c80..0eb8ccf73 100644 --- "a/tags/\346\212\200\345\267\247/index.html" +++ "b/tags/\346\212\200\345\267\247/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\346\223\215\344\275\234\345\210\227\350\241\250/index.html" "b/tags/\346\223\215\344\275\234\345\210\227\350\241\250/index.html" index 2f4a127c5..c3453946d 100644 --- "a/tags/\346\223\215\344\275\234\345\210\227\350\241\250/index.html" +++ "b/tags/\346\223\215\344\275\234\345\210\227\350\241\250/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\346\225\260\346\215\256\347\261\273\345\236\213/index.html" "b/tags/\346\225\260\346\215\256\347\261\273\345\236\213/index.html" index 30542f18a..e263a2141 100644 --- "a/tags/\346\225\260\346\215\256\347\261\273\345\236\213/index.html" +++ "b/tags/\346\225\260\346\215\256\347\261\273\345\236\213/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\346\242\246\346\203\263/index.html" "b/tags/\346\242\246\346\203\263/index.html" index 4b251fc20..320743738 100644 --- "a/tags/\346\242\246\346\203\263/index.html" +++ "b/tags/\346\242\246\346\203\263/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file diff --git "a/tags/\347\274\226\350\276\221\345\231\250/index.html" "b/tags/\347\274\226\350\276\221\345\231\250/index.html" index 99ec6b777..f1774313d 100644 --- "a/tags/\347\274\226\350\276\221\345\231\250/index.html" +++ "b/tags/\347\274\226\350\276\221\345\231\250/index.html" @@ -431,4 +431,7 @@ - \ No newline at end of file + + + + \ No newline at end of file -- GitLab