hexo + butterfly 实现根据作者进行文章分类查询
前言由于hexo自身并未实现多作者,包括butterfly主题也没有相关方面的设置。所以一直也无法根据作者进行文章分类。
今天抽空看了看hexo的插件开发教程,简单写了一个插件,搭配任意主题都可以实现根据作者进行文章分类查询(多人博客)效果。
安装整个安装步骤分为三步:1.插件安装、2.主题文件修改、3.指定作者。
插件安装在博客根目录打开git bash,输入以下命令安装hexo-generator-author3插件。
1npm install hexo-generator-author3 --save
然后在博客的source目录下新建authors文件夹,进入authors文件,新建index.md文件并输入以下内容:
123456---title: 作者date: 2024-09-08 02:18:32type: 'authors'comments: false---
主题文件修改安装好插件以后,需要在对应的主题文件下面创建模板,便于根据模板生成对应的文件。
以butterfly主题为例:
在主题themes\butterfly\scripts\h ...
Kindle 换美区超详细教程
前言根据亚马逊官方消息,kindle中国运营在2024年6月30日将全面停止运营!
6月30日后,将无法继续从应用商店下载Kindle APP,以后kindle APP仅能阅读已经下载的电子书。
云端服务也将全面停止所有云端内容必须在6月30日之前下载,云端内容包含电子书及个人文档。
Send to Kindle也将于6月30日关闭,包含浏览器传送、邮箱传送等所有无线传输路径,以后传输只能数据线传输。
但是,这能难倒我们国人吗?既然中国区停了,那我们换个正常运营的区是不是就行了!
于是在即将停服的前3天,通过查询资料,加上自己亲自动手,Kindle换美区成功,完美迁移,继续邮箱传书!
换区教程第一步、备份当前Kindle图书数据
用数据线把kindle和电脑连接,打开我的电脑,找到Kindle磁盘(连接数据线时要解锁Kindle)。
找到documents文件夹,直接将整个文件夹复制一份到电脑桌面。(这个文件夹包含了电子书、浏览记录、摘要笔记等内容)
第二步、注册亚马逊美区账号
首先进入亚马逊美区(注意结尾是.com不是.cn)https://www.amazon.com/
...
读明朝那些事(贰)
阅读是一件一旦开始便很难停下来的事,当你沉浸其中,会发现作者笔下的那些人,那些事,会一个个的跃然纸上,为你展现出一段段精彩绝伦的故事。
前言我是一个从骨子里喜欢中国古代史的人,但我也有着所有人都具有共性:懒!唯一读过的一本历史类课外书,也仅有小时候父亲收藏的一本《三国演义》。在读明朝那些事之前,我对明朝的了解也仅限于20年前人教版教科书中那微不足道的几小段话。除了那个鞋拔子脸的朱元璋画像以外,有印象的也就是郑和的七下西洋了。
已经读完了这个系列的前两部,而我的第一篇读书随笔却选择从第二部开始,相比起开国皇帝朱元璋而言,我更喜欢朱棣的故事。
好人是做不了皇帝的家大业大之后,继承人的问题总是最容易引起争斗的,哪怕放在600多年以后的今天。
正常来说是轮不到朱允炆坐上皇位的,毕竟当时的太子是他老爹朱标,前面还有个哥哥朱雄英。按照正常的逻辑来说,他爹即位后,他也会像他的叔叔们一样,封成藩王,找块地呆着玩去。似乎上天觉得这剧情太过简单了,所以正常的逻辑它就拐了个弯:好哥哥和好爹爹先后嘎了,皇太孙落到了他的头上。
至于这是好事还是坏事,恐怕也只有朱允炆自知了。
好在朱允炆这小子聪明好学,知书达 ...
剑指Offer(06)从头到尾打印链表
今天是小呆刷题的第 21 天,今天的题目是:剑指 Offer 的第 6 题,从头到尾打印链表
题目要求
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例:
12输入:head = [1,3,2]输出:[2,3,1]
提示:
0 <= 链表长度 <= 10000
解题思路首先这道题的输入是从头到位,但是输出却是从尾到头。也就是FILO先进后出,这妥妥的就是栈结构嘛。所以我们可以遍历一遍链表,然后将每一项都存入数组中,最后反转数组即可。
栈结构12345678910111213141516171819202122232425262728/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } *//** * @param {ListNode} head * @return {number[]} */var ...
剑指Offer(05)替换空格
今天是小呆刷题的第 20 天,今天的题目是:剑指 Offer 的第 5 题,替换空格
题目要求
请实现一个函数,把字符串s中的每个空格替换成”%20”。
示例:
12输入:s = "We are happy."输出:"We%20are%20happy."
提示:
0 <= s 的长度 <= 10000
解题思路这道题其实还是蛮简单的一道题,看过题目后小呆至少能想到三种方法:正则、分割、遍历。
正则1234567/** * @param {string} s * @return {string} */var replaceSpace = function (s) { return s.replace(/\s/g, '%20')}
分割1234567/** * @param {string} s * @return {string} */var replaceSpace = function (s) ...
剑指Offer(04)二维数组中的查找
今天是小呆刷题的第 19 天,今天的题目是:剑指 Offer 的第 4 题,二维数组中的查找
题目要求
在一个n * m的二维数组中,每一行都按照从左到右非递减的顺序排序,每一列都按照从上到下非递减的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
来源:力扣(LeetCode)链接:著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
示例:
现有矩阵 matrix 如下:
1234567[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]
给定 target = 5,返回true。
给定 target = 20,返回false。
提示:
0 <= n <= 1000
0 <= m <= 1000
解题思路这道题小呆的思路是先找出题中的二维数组规律。然后进行分析:因为这个二维数组每一行从左到右 ...
剑指Offer(03)数组中重复的数字
今天是小呆刷题的第 18 天,今天的题目是:剑指 Offer 的第 3 题,数组中重复的数字
题目要求
找出数组中重复的数字。
在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例:
123输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3
提示:
2 <= n <= 100000
解题思路这道题的常规解法,就是利用哈希表,遍历数组,判断哈希表中是否包含当前值,如果包含,当前项就是重复项。这种在数组中查找重复的数字的题型,基本都可以用哈希表去解决,它的时间复杂度为O(n),空间复杂度为O(n)。
哈希表1234567891011/** * @param {number[]} nums * @return {number} */var findRepeatNumber = function (nums) { let hasMap = new Set() for (let ...
LeetCode(118)杨辉三角
今天是小呆刷题的第 17 天,今天的题目是:力扣(LeetCode)的第 118 题,杨辉三角
题目要求
给定一个非负整数*numRows,生成「杨辉三角」的前numRows*行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例:
12345输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]输入: numRows = 1输出: [[1]]
提示:
1 <= numRows <= 30
解题思路这道题其实官方已经给了非常容易理解的规律和图示:每个数是它左上方和右上方的数的和。
我们可以用一个二维数组来描述示例 1 的数据:
1let list = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]
根据上面给出的规律能够得出, 首尾的数字一定是 1, 其次从第三行开始,除去首尾,其他的数字都是它左上方和右上方的数的和,所以我们可以做出以下公式:(用i表示行,用j表示列)
list[i][0] = 1 每行的第一个数字是 ...
LeetCode(169)多数元素
今天是小呆刷题的第 16 天,今天的题目是:力扣(LeetCode)的第 169 题,多数元素
题目要求
给定一个大小为n的数组nums,返回其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例:
12345输入:nums = [3,2,3]输出:3输入:nums = [2,2,1,1,1,2,2]输出:2
提示:
n == nums.length
1 <= n <= 5 * 104
-109 <= nums[i] <= 109
解题思路这道题小呆的第一思路就是用哈希表来解决,因为跟返回数组中出现次数最多的题的思路是一样的,只不过这道题是返回次数大于n/2的那个元素。
12345678910111213141516171819/** * @param {number[]} nums * @return {number} */var majorityElement = function (nums) { let has ...
LeetCode(141)环形链表
今天是小呆刷题的第 15 天,今天的题目是:力扣(LeetCode)的第 141 题,环形链表
题目要求
给你一个链表的头节点head,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos不作为参数进行传递 。仅仅是为了标识链表的实际情况。
如果链表中存在环 ,则返回true。 否则,返回false。
示例:
123输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。
提示:
链表中节点的数目范围是[0, 10^4]
-10^5 <= Node.val <= 10^5
pos为-1 或者链表中的一个有效索引。
解题思路遇到数组,链表类的题目,首先考虑的就是双指针算法。在这道题中,由于存在一个环,实际上在遍历的时候,如果进入环中,就会无限循环。那其实只要两个指针的步频不一样,就会相交。上图辅助理解:
123456789101112131 ...