diff --git a/css/main.css b/css/main.css index 7824611..029fd7f 100644 --- a/css/main.css +++ b/css/main.css @@ -1201,7 +1201,7 @@ pre .javascript .function { } .links-of-author a::before, .links-of-author span.exturl::before { - background: #cdffff; + background: #917d1c; border-radius: 50%; content: ' '; display: inline-block; diff --git a/page/2/index.html b/page/2/index.html index 10403aa..9d70a24 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -555,7 +555,7 @@
后序遍历按照“左孩子-右孩子-根结点”的顺序进行访问。
+void postOrder1(BinTree *root) //递归后序遍历 |
第一种思路:对于任一结点P,将其入栈,然后沿其左子树一直往下搜索,直到搜索到没有左孩子的结点,此时该结点出现在栈顶,但是此时不能将其出栈并访问,因此其右孩子还为被访问。所以接下来按照相同的规则对其右子树进行相同的处理,当访问完其右孩子时,该结点又出现在栈顶,此时可以将其出栈并访问。这样就保证了正确的访问顺序。可以看出,在这个过程中,每个结点都两次出现在栈顶,只有在第二次出现在栈顶时,才能访问它。因此需要多设置一个变量标识该结点是否是第一次出现在栈顶。
+void postOrder2(BinTree *root) // postorder iteration |
第二种思路:要保证根结点在左孩子和右孩子访问之后才能访问,因此对于任一结点P,先将其入栈。如果P不存在左孩子和右孩子,则可以直接访问它;或者P存在左孩子或者右孩子,但是其左孩子和右孩子都已被访问过了,则同样可以直接访问该结点。若非上述两种情况,则将P的右孩子和左孩子依次入栈,这样就保证了每次取栈顶元素的时候,左孩子在右孩子前面被访问,左孩子和右孩子都在根结点前面被访问。
+void postOrder3(BinTree *root) // postorder iteration |
双重积分\iint<
]]>
后序遍历按照“左孩子-右孩子-根结点”的顺序进行访问。
-void postOrder1(BinTree *root) //递归后序遍历 |
第一种思路:对于任一结点P,将其入栈,然后沿其左子树一直往下搜索,直到搜索到没有左孩子的结点,此时该结点出现在栈顶,但是此时不能将其出栈并访问,因此其右孩子还为被访问。所以接下来按照相同的规则对其右子树进行相同的处理,当访问完其右孩子时,该结点又出现在栈顶,此时可以将其出栈并访问。这样就保证了正确的访问顺序。可以看出,在这个过程中,每个结点都两次出现在栈顶,只有在第二次出现在栈顶时,才能访问它。因此需要多设置一个变量标识该结点是否是第一次出现在栈顶。
-void postOrder2(BinTree *root) // postorder iteration |
第二种思路:要保证根结点在左孩子和右孩子访问之后才能访问,因此对于任一结点P,先将其入栈。如果P不存在左孩子和右孩子,则可以直接访问它;或者P存在左孩子或者右孩子,但是其左孩子和右孩子都已被访问过了,则同样可以直接访问该结点。若非上述两种情况,则将P的右孩子和左孩子依次入栈,这样就保证了每次取栈顶元素的时候,左孩子在右孩子前面被访问,左孩子和右孩子都在根结点前面被访问。
-void postOrder3(BinTree *root) // postorder iteration |
双重积分\iint<
双重积分\iint<
这种方法实用性非常强,只要坚持看完几本原著,能非常明显的提升英语阅读能力,网上能找到非常多的实践成功案例。
- -“透析英语学习法“这一概念出自《把你的英语用起来》一书。此书由透析”英语学习法”创始人伍君仪和恶魔的奶爸(刘晓光)和著,书中大量讲述“透析英语学习法”的具体内容。书中还提供了很多学习提高英语的方法和工具。
-透析法的原理就是对英文原著中的生词等语言知识进行滤膜分析——英语的所有单词都“溶解”在英文原著的巨大“海洋”中,透析法就是对“海水”持续进行淡化处理,以电子词典为滤膜,定量析出“海水”中的生词,输入大脑记忆中枢。生词遗忘相当于“回渗”,但只要持续透析,原著的单词会反复出现,结合原文背景,都将进入大脑的长期记忆,从而提升个人的词汇量。简单地说,就是通过阅读英文原著来记忆单词,提高英语水平。
-首先要了解自己的英文水平,要测试自己的单词量。你可以到相关网站去测试,这对于后来选择什么样的英文名著提供一个重要的参考。其次要准备一个电子词典或者是装有词典的手机。在此我推荐欧路词典,可以导入很多词典。
-原著的选择
-选择原著有一下几个原则:
-选择好自己感兴趣的英文原著后,开始阅读。阅读的时候遇见不认识的单词时,不要全部都查,每页只能查一到两个。不懂的话就通过上下文的意思去猜测,了解大概意思。每天读一定页数的英文原著后,复习查过的生词。复习的过程可遵循艾宾浩斯记忆曲线原理,可以建一个Excel表格,记录自己复习的过程。
-一开始为了培养阅读习惯,要大量读,每天至少读20页以上,最好能超过50页,以从阅读中获得乐趣和信息为目的,而不是以扩大词汇量为目的
有关每两页查一个单词的目的,是为了在大量阅读吸收信息语流的过程中,顺带积累下生词量,但不是主要目的,不打断阅读,不妨碍享受精彩故事
但是在不打断阅读节奏和乐趣的前提下,你想怎么查都可以——用平板电脑可以即指即译,所以我是每个词都查
第二天的复习非常重要,但是不要死背,而是应该及时删单词——第二天看生词本,如果记得生词,那么立刻删掉,只留下不认识的默看一遍(耗时20分钟以内),然后去大量读书
这样做的好处是,收词-删词-在阅读中大量遇到-忘了再收-再删-再读,这个办法是利用情景猜单词和额外的稍微记忆相结合,记忆效果远超所谓的记忆曲线背单词,学习效果?收获的绝对不仅仅是词汇量,而是整体的英文能力,对英文运用表达能力也有潜移默化的影响(输入多未必能写出好文章,但是写的好的人必然输入多)
只谈背单词?坚持1-2年,每天一个小时的阅读,词汇量过两万很轻松,过程几乎没有痛苦(不要逼自己读不喜欢的书),但还是那句话,不要以增加词汇量为首要目的,而是要以增加对英文文本的熟悉感和理解力作为首要目的
初期选材尽量选择同一个作家的作品,词汇范围比较狭窄,不同词汇经常性出现,对于词汇记忆效果比较好,不建议选择新闻类短篇作品
建议每天收录的单词最好不要超过50个——可以无限制读,但是收录单词最好不要超过50个,如果超过了,去查看下,有印象的就删掉,只留没印象的
1,选书,选择一页生词率低于10个以下的(相关书籍推荐原书都有),最简单的原文书应该是Goose bump跟Magic Tree House,每个系列都有60本以上,网上mobi epub一大堆,属于2000到3000词内可以看懂的——实在不懂,书虫之类的分级读物总听说过,600词就可以看懂
-2,拿手机词典和书 or kindle阅读,建议采用欧路词典,词库选用柯林斯双解+麦克米伦+CALD——词库在这里,自己安装帝热青读书会第一期:英文词典的分类和使用方法
-3,一开始为了培养阅读习惯,要大量读,每天至少读20页以上,最好能超过50页,以从阅读中获得乐趣和信息为目的,而不是以扩大词汇量为目的
-4,阅读的好处就不多说了,想想你为啥要读中文书就知道了。不过没有中文阅读习惯的人不适合透析法
-5,有关每两页查一个单词的目的,是为了在大量阅读吸收信息语流的过程中,顺带积累下生词量,但不是主要目的,不打断阅读,不妨碍享受精彩故事
-6,但是在不打断阅读节奏和乐趣的前提下,你想怎么查都可以——用平板电脑可以即指即译,所以我是每个词都查
-7,第二天的复习非常重要,但是不要死背,而是应该及时删单词——第二天看生词本,如果记得生词,那么立刻删掉,只留下不认识的默看一遍(耗时20分钟以内),然后去大量读书
-8,这样做的好处是,收词-删词-在阅读中大量遇到-忘了再收-再删-再读,这个办法是利用情景猜单词和额外的稍微记忆相结合,记忆效果远超所谓的记忆曲线背单词,学习效果?收获的绝对不仅仅是词汇量,而是整体的英文能力,对英文运用表达能力也有潜移默化的影响(输入多未必能写出好文章,但是写的好的人必然输入多)
-9,只谈背单词?坚持1-2年,每天一个小时的阅读,词汇量过两万很轻松,过程几乎没有痛苦(不要逼自己读不喜欢的书),但还是那句话,不要以增加词汇量为首要目的,而是要以增加对英文文本的熟悉感和理解力作为首要目的
-10,初期选材尽量选择同一个作家的作品,词汇范围比较狭窄,不同词汇经常性出现,对于词汇记忆效果比较好,不建议选择新闻类短篇作品
-11,建议每天收录的单词最好不要超过50个——可以无限制读,但是收录单词最好不要超过50个,如果超过了,去查看下,有印象的就删掉,只留没印象的
-12,小说对口语和英文能力的帮助在这里:为什么畅销小说对口语能力有帮助?(转) - 酷爱撒泼 - 知乎专栏
-13,阅读对词汇能力的帮助到底在何处:学英语尽量不要从背词汇表开始(转) - 酷爱撒泼 - 知乎专栏
-14,母语人士平均每天积累的词汇量在4.1个左右,而且还是语言能力较为不错的母语人士为什么一定要撸英文小说(转) - 酷爱撒泼 - 知乎专栏,所以对于你说看12页书才积累4个词汇,我觉得我们已经赶超母语人士了,虽然我不知道两页一个词,12页就是4个单词这个逆天结论是怎么的出来的。。。
-15,母语人士的例子是为了证明,词汇量真真不是最重要的,甚至不是重要的(认识那么多词不会用屁用没有),只有通过多读,对各种句式,搭配,用法有所了解才有可能学着使用,才有可能提高英语——因为外语人士学英语有限制,不可能靠母语人士那样靠光看就自动增长词汇量,所以透析英语法是利用科技手段夹杂一丁点的稍微记忆行为鼓捣出来的无痛苦学习法,背后的什么心理学规律什么科学理论,看五爷博客(他是心理学科班出身),我这里不赘述
-16,最好能搭配读读两本句型书:《文法俱乐部》+叶永昌的《英语阅读手册》,两者有矛盾冲突的地方,自己选择收入
-17,书单我可以看,但仅限于个人爱好(男性向多了些)
-每个级别要多看,直到你看本级别的书再也没有什么生词没什么挑战为止,这个时候越级(分级不一定准,个人能力有限,大家补充)
-L1 Goose Bumps系列和Magic Tree House以及Boxcar
每个系列都过60本,两三千词汇而已,儿童读物
L2 动物农场 Roald Dahl童话全集 Narnia
儿童读物
L3 Sidney Sheldon20本 James Hadley Chase90本 James Patternson80多本 Nicholas Sparks
L3跟L2级别差不多,都是大量对白,书很简单,偶尔会有单词,对于成人来说,看James Patterson可能比看查理巧克力工厂要有意思一点? 另外Nicholas Sparks是写纯爱小说的,用词比两个James稍微难了点(前三位都是写thriller的,好看之极),我看过一本《初恋的回忆》一本《分手信》就没怎么看了,蛮无聊的,女性向(比暮光之城好看)
L4 社科类作品 Peter Hessler的Rivertown三部曲,讲中国小镇支教的故事,Factory Girls貌似是他老婆写的,讲中国女工的,也可以看看,还有影响力,Malcolm Gladwell之类的就不多说了,去Goodreads上面搜business这个标签出现的很多书单,排名靠前的都不会太难,自己看下简介有兴趣看即可
-L5 经济学人,纽约时报,华尔街日报等相关报道,尤其是对中国的报道,可以好好精读一番(我个人最爱的是纽约客官网上的Letter from China)
-L6 万物简史,DK百科全书等各种科普类读物(如果需要备考托福,建议最好拿万物简史的文本和音频做精听和精读,里面什么核糖核酸始祖鸟夸克大爆炸之类的词都有,而且写的生动有趣),TTC各类文史哲教程,Coursera,Khan Academy等Mooc学院教程
-L7 傲慢与偏见,简爱等各种老牌名著,不限制
-注1,以上所谓级别可以不管难度,只选择你最感兴趣的读即可,只要咬牙坚持住一个月,后面就会越来越顺利
-References:
能《把英语用起来!》
双重积分\iint<
这种方法实用性非常强,只要坚持看完几本原著,能非常明显的提升英语阅读能力,网上能找到非常多的实践成功案例。
+ +“透析英语学习法“这一概念出自《把你的英语用起来》一书。此书由透析”英语学习法”创始人伍君仪和恶魔的奶爸(刘晓光)和著,书中大量讲述“透析英语学习法”的具体内容。书中还提供了很多学习提高英语的方法和工具。
+透析法的原理就是对英文原著中的生词等语言知识进行滤膜分析——英语的所有单词都“溶解”在英文原著的巨大“海洋”中,透析法就是对“海水”持续进行淡化处理,以电子词典为滤膜,定量析出“海水”中的生词,输入大脑记忆中枢。生词遗忘相当于“回渗”,但只要持续透析,原著的单词会反复出现,结合原文背景,都将进入大脑的长期记忆,从而提升个人的词汇量。简单地说,就是通过阅读英文原著来记忆单词,提高英语水平。
+首先要了解自己的英文水平,要测试自己的单词量。你可以到相关网站去测试,这对于后来选择什么样的英文名著提供一个重要的参考。其次要准备一个电子词典或者是装有词典的手机。在此我推荐欧路词典,可以导入很多词典。
+原著的选择
+选择原著有一下几个原则:
+选择好自己感兴趣的英文原著后,开始阅读。阅读的时候遇见不认识的单词时,不要全部都查,每页只能查一到两个。不懂的话就通过上下文的意思去猜测,了解大概意思。每天读一定页数的英文原著后,复习查过的生词。复习的过程可遵循艾宾浩斯记忆曲线原理,可以建一个Excel表格,记录自己复习的过程。
+一开始为了培养阅读习惯,要大量读,每天至少读20页以上,最好能超过50页,以从阅读中获得乐趣和信息为目的,而不是以扩大词汇量为目的
有关每两页查一个单词的目的,是为了在大量阅读吸收信息语流的过程中,顺带积累下生词量,但不是主要目的,不打断阅读,不妨碍享受精彩故事
但是在不打断阅读节奏和乐趣的前提下,你想怎么查都可以——用平板电脑可以即指即译,所以我是每个词都查
第二天的复习非常重要,但是不要死背,而是应该及时删单词——第二天看生词本,如果记得生词,那么立刻删掉,只留下不认识的默看一遍(耗时20分钟以内),然后去大量读书
这样做的好处是,收词-删词-在阅读中大量遇到-忘了再收-再删-再读,这个办法是利用情景猜单词和额外的稍微记忆相结合,记忆效果远超所谓的记忆曲线背单词,学习效果?收获的绝对不仅仅是词汇量,而是整体的英文能力,对英文运用表达能力也有潜移默化的影响(输入多未必能写出好文章,但是写的好的人必然输入多)
只谈背单词?坚持1-2年,每天一个小时的阅读,词汇量过两万很轻松,过程几乎没有痛苦(不要逼自己读不喜欢的书),但还是那句话,不要以增加词汇量为首要目的,而是要以增加对英文文本的熟悉感和理解力作为首要目的
初期选材尽量选择同一个作家的作品,词汇范围比较狭窄,不同词汇经常性出现,对于词汇记忆效果比较好,不建议选择新闻类短篇作品
建议每天收录的单词最好不要超过50个——可以无限制读,但是收录单词最好不要超过50个,如果超过了,去查看下,有印象的就删掉,只留没印象的
1,选书,选择一页生词率低于10个以下的(相关书籍推荐原书都有),最简单的原文书应该是Goose bump跟Magic Tree House,每个系列都有60本以上,网上mobi epub一大堆,属于2000到3000词内可以看懂的——实在不懂,书虫之类的分级读物总听说过,600词就可以看懂
+2,拿手机词典和书 or kindle阅读,建议采用欧路词典,词库选用柯林斯双解+麦克米伦+CALD——词库在这里,自己安装帝热青读书会第一期:英文词典的分类和使用方法
+3,一开始为了培养阅读习惯,要大量读,每天至少读20页以上,最好能超过50页,以从阅读中获得乐趣和信息为目的,而不是以扩大词汇量为目的
+4,阅读的好处就不多说了,想想你为啥要读中文书就知道了。不过没有中文阅读习惯的人不适合透析法
+5,有关每两页查一个单词的目的,是为了在大量阅读吸收信息语流的过程中,顺带积累下生词量,但不是主要目的,不打断阅读,不妨碍享受精彩故事
+6,但是在不打断阅读节奏和乐趣的前提下,你想怎么查都可以——用平板电脑可以即指即译,所以我是每个词都查
+7,第二天的复习非常重要,但是不要死背,而是应该及时删单词——第二天看生词本,如果记得生词,那么立刻删掉,只留下不认识的默看一遍(耗时20分钟以内),然后去大量读书
+8,这样做的好处是,收词-删词-在阅读中大量遇到-忘了再收-再删-再读,这个办法是利用情景猜单词和额外的稍微记忆相结合,记忆效果远超所谓的记忆曲线背单词,学习效果?收获的绝对不仅仅是词汇量,而是整体的英文能力,对英文运用表达能力也有潜移默化的影响(输入多未必能写出好文章,但是写的好的人必然输入多)
+9,只谈背单词?坚持1-2年,每天一个小时的阅读,词汇量过两万很轻松,过程几乎没有痛苦(不要逼自己读不喜欢的书),但还是那句话,不要以增加词汇量为首要目的,而是要以增加对英文文本的熟悉感和理解力作为首要目的
+10,初期选材尽量选择同一个作家的作品,词汇范围比较狭窄,不同词汇经常性出现,对于词汇记忆效果比较好,不建议选择新闻类短篇作品
+11,建议每天收录的单词最好不要超过50个——可以无限制读,但是收录单词最好不要超过50个,如果超过了,去查看下,有印象的就删掉,只留没印象的
+12,小说对口语和英文能力的帮助在这里:为什么畅销小说对口语能力有帮助?(转) - 酷爱撒泼 - 知乎专栏
+13,阅读对词汇能力的帮助到底在何处:学英语尽量不要从背词汇表开始(转) - 酷爱撒泼 - 知乎专栏
+14,母语人士平均每天积累的词汇量在4.1个左右,而且还是语言能力较为不错的母语人士为什么一定要撸英文小说(转) - 酷爱撒泼 - 知乎专栏,所以对于你说看12页书才积累4个词汇,我觉得我们已经赶超母语人士了,虽然我不知道两页一个词,12页就是4个单词这个逆天结论是怎么的出来的。。。
+15,母语人士的例子是为了证明,词汇量真真不是最重要的,甚至不是重要的(认识那么多词不会用屁用没有),只有通过多读,对各种句式,搭配,用法有所了解才有可能学着使用,才有可能提高英语——因为外语人士学英语有限制,不可能靠母语人士那样靠光看就自动增长词汇量,所以透析英语法是利用科技手段夹杂一丁点的稍微记忆行为鼓捣出来的无痛苦学习法,背后的什么心理学规律什么科学理论,看五爷博客(他是心理学科班出身),我这里不赘述
+16,最好能搭配读读两本句型书:《文法俱乐部》+叶永昌的《英语阅读手册》,两者有矛盾冲突的地方,自己选择收入
+17,书单我可以看,但仅限于个人爱好(男性向多了些)
+每个级别要多看,直到你看本级别的书再也没有什么生词没什么挑战为止,这个时候越级(分级不一定准,个人能力有限,大家补充)
+L1 Goose Bumps系列和Magic Tree House以及Boxcar
每个系列都过60本,两三千词汇而已,儿童读物
L2 动物农场 Roald Dahl童话全集 Narnia
儿童读物
L3 Sidney Sheldon20本 James Hadley Chase90本 James Patternson80多本 Nicholas Sparks
L3跟L2级别差不多,都是大量对白,书很简单,偶尔会有单词,对于成人来说,看James Patterson可能比看查理巧克力工厂要有意思一点? 另外Nicholas Sparks是写纯爱小说的,用词比两个James稍微难了点(前三位都是写thriller的,好看之极),我看过一本《初恋的回忆》一本《分手信》就没怎么看了,蛮无聊的,女性向(比暮光之城好看)
L4 社科类作品 Peter Hessler的Rivertown三部曲,讲中国小镇支教的故事,Factory Girls貌似是他老婆写的,讲中国女工的,也可以看看,还有影响力,Malcolm Gladwell之类的就不多说了,去Goodreads上面搜business这个标签出现的很多书单,排名靠前的都不会太难,自己看下简介有兴趣看即可
+L5 经济学人,纽约时报,华尔街日报等相关报道,尤其是对中国的报道,可以好好精读一番(我个人最爱的是纽约客官网上的Letter from China)
+L6 万物简史,DK百科全书等各种科普类读物(如果需要备考托福,建议最好拿万物简史的文本和音频做精听和精读,里面什么核糖核酸始祖鸟夸克大爆炸之类的词都有,而且写的生动有趣),TTC各类文史哲教程,Coursera,Khan Academy等Mooc学院教程
+L7 傲慢与偏见,简爱等各种老牌名著,不限制
+注1,以上所谓级别可以不管难度,只选择你最感兴趣的读即可,只要咬牙坚持住一个月,后面就会越来越顺利
+References:
能《把英语用起来!》
双重积分\iint<
serendipity
-数据结构
+不一定是火狐特有的,chrome也有
-一维
-二维
-注意:了解每个数据结构的原理和代码框架
-注意:在头脑中回忆上面每种算法的思想和代码模板
-https://www.edrawsoft.cn/viewer/public/s/05f47326887492
-https://naotu.baidu.com/file/0a53d3a5343bd86375f348b2831d3610?token=5ab1de1c90d5f3ec
-https://www.edrawsoft.cn/viewer/public/s/d2bd7352481144
-https://naotu.baidu.com/file/b832f043e2ead159d584cca4efb19703?token=7a6a56eb2630548c
-捕捉网页截图-捕捉网页截图,编辑并将它们保存为PDF,JPEG,GIF,PNG或BMP;上传,打印,在Photoshop中打开,复制到剪贴板或电子邮件
+ +沙拉查词-聚合词典划词翻译-Saladict 沙拉查词是一款专业划词翻译扩展,为交叉阅读而生。大量权威词典涵盖中英日韩法德西语,支持复杂的划词操作、网页翻译、生词本与 PDF 浏览。
+ +Gesturefy-Navigate, operate and browse faster with mouse gestures! A customizable mouse gesture add-on with a variety of different commands.
+鼠标手势
+https://github.com/Robbendebiene/Gesturefy
+Tampermonkey 油猴-The world’s most popular userscript manager!
+ +Wappalyzer-Identify web technologies
+ +Video DownloadHelper-Download Videos from the Web
+http://www.downloadhelper.net/
+Proxy SwitchyOmega-轻松快捷地管理和切换多个代理设置。
+https://github.com/FelisCatus/SwitchyOmega
+设置 Firefox 新标签页打开方式为“在当前标签页旁边打开新的标签页”
+在about:config中修改browser.tabs.insertAfterCurrent为true后,可以实现在在当前标签页右边打开新标签页的功能。不过,如果有时又需要在在标签页队列的最右边打开新标签页的话,每次都修改about:config又不方便,因此可安装open tabs next to current。需要open tabs next to current时启用,不用时禁用,方便。
+]]>环境:Intellij idea 2020。
+超详细的教程
+新建项目
+ +选择java
+ +然后next,再next
+设置项目名称,点击finish
+ +右键项目,添加框架支持
+ +选择web application,勾选create web.xml,点击ok
+ +之后会看到如图所示文件结构
+ +在 web-inf 文件夹下创建classes和lib文件夹
+ +如图打开project structure
+ +设置成这样
+ +按如下导入tomcat目录下servlet.jar包
+ + +点击add configurations
+ +选择 tomcat server,local
+ +点击fix,再点ok
+ +src右键,创建 Servlet
+ + +index.jsp 编写如下
+<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
calculator.java如下
+package com.calculator; |
启动服务可以看到
+ +随便输入几个数字即可看到成功计算
+ +可按如下设置即可实现修改jsp页面和后端数据后,刷新页面实时更新
+ +Ref:
+ +]]>serendipity
+数据结构
+ +一维
+二维
+注意:了解每个数据结构的原理和代码框架
+注意:在头脑中回忆上面每种算法的思想和代码模板
+https://www.edrawsoft.cn/viewer/public/s/05f47326887492
+https://naotu.baidu.com/file/0a53d3a5343bd86375f348b2831d3610?token=5ab1de1c90d5f3ec
+https://www.edrawsoft.cn/viewer/public/s/d2bd7352481144
+https://naotu.baidu.com/file/b832f043e2ead159d584cca4efb19703?token=7a6a56eb2630548c
+其中,T(n)表示代码执行的时间;n表示数
不一定是火狐特有的,chrome也有
+我设置了google日历提醒我的 它为什么没有提醒我 😓
+Problem
+There are N houses for sale. The i-th house costs Ai dollars to buy. You have a budget of B dollars to spend.
+What is the maximum number of houses you can buy?
-捕捉网页截图-捕捉网页截图,编辑并将它们保存为PDF,JPEG,GIF,PNG或BMP;上传,打印,在Photoshop中打开,复制到剪贴板或电子邮件
- -沙拉查词-聚合词典划词翻译-Saladict 沙拉查词是一款专业划词翻译扩展,为交叉阅读而生。大量权威词典涵盖中英日韩法德西语,支持复杂的划词操作、网页翻译、生词本与 PDF 浏览。
- -Gesturefy-Navigate, operate and browse faster with mouse gestures! A customizable mouse gesture add-on with a variety of different commands.
-鼠标手势
-https://github.com/Robbendebiene/Gesturefy
-Tampermonkey 油猴-The world’s most popular userscript manager!
- -Wappalyzer-Identify web technologies
- -Video DownloadHelper-Download Videos from the Web
-http://www.downloadhelper.net/
-Proxy SwitchyOmega-轻松快捷地管理和切换多个代理设置。
-https://github.com/FelisCatus/SwitchyOmega
-设置 Firefox 新标签页打开方式为“在当前标签页旁边打开新的标签页”
-在about:config中修改browser.tabs.insertAfterCurrent为true后,可以实现在在当前标签页右边打开新标签页的功能。不过,如果有时又需要在在标签页队列的最右边打开新标签页的话,每次都修改about:config又不方便,因此可安装open tabs next to current。需要open tabs next to current时启用,不用时禁用,方便。
+水题
+待更……
]]>学习过程中,有任何问题建议去 Google 搜索,No baidu.
-Git 是目前世界上最先进的分布式版本控制系统(Distributed Version Control System),是由 Linux 之父 林纳斯·托瓦兹 (Linus Torvalds) 创作。
-什么是版本控制,举个例子,你每天都会新增、编辑、修改许多文档,当修修改改很多次之后,你觉得不满意想回到以前的某个版本,得手动修改添加过的,非常不方便,于是,版本控制系统就可以很好的解决这个问题,Git 就像玩游戏的时候可以存储进度一样,当你修修改改发现被改乱了自己都看不懂的时候,可以回到到以前的任意版本。
-软件工程师们一般不会一次性完成一个项目,他们一般都有一个计划来安排需要完成的工作。如果你的个人项目是在数天或数周内完成的,那么记录你在某一天完成的工作就会变得很有好处,而将修改暂时或不修改的内容回滚到之前的时间点的权力是很有价值的。当与团队中的其他人合作时,这一点变得更加重要—哪些文件是由哪些合作者修改的?当多个合作者想对同一个文件进行修改时怎么办?如前所述,Git 的主要功能是 “版本控制”—组织和跟踪一个项目在一段时间内所做的修改,不管是只有你一个人在做,还是一个团队在做。
-在 Linux 下安装 Git 最简单了,只需一行命令:
-$ sudo apt-get install git |
即可安装成功
-在 Git官网 下载安装程序 按默认选项安装即可。
-安装完成后,即可看到右键菜单多了 Git Gui Here 和 Git Bash Here 这两个选项,说明 Git 已经安装成功了!
-网站:https://git-scm.com/download/mac
-只要下载、点开、执行,基本上这样就可以顺利完成安装了!
-安装成功后,随便在哪里右键选择 Git Bash Here ,输入以下命令查看 git 版本:
-$ git --version |
安装 Git 后首先要做的事情是设置你的用户名称和 Email 地址(用户标识,必要)。
-打开终端,输入以下两行命令(#右边的不用输入,# 右边的为注释,不会被执行):
-$ git config --global user.name "Your Name“ # Your Name 替换为你的名字 |
$ git config --global user.email "Your Email Address" # Your Email Address 替换为你的邮箱地址 |
完成之后,可以再检查一下目前的设定:
-$ git config --list |
Git 本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository 或 Git Directory)。如果再加上远程的 git 仓库(Remote Directory)就可以分为四个工作区域。
-Working Directory:工作目录,就是你平时存放项目代码的地方,或者是你需要进行版本控制的文件夹目录。
-Repository:资源库(或本地仓库),工作区有一个隐藏目录 .git
,这里面有你提交到所有版本的数据,这个不算工作区,而是Git的版本库。
Index/Stage:暂存区,或者叫待提交更新区,在提交进入 repo 之前,我们可以把所有的更新放在暂存区。
-Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫 index)的暂存区,还有 Git 为我们自动创建的第一个分支 master
,以及指向 master
的一个指针叫 HEAD
。
远程的 git 仓库(Remote Directory):这个就是你的 GitHub 上的仓库
-文件在这四个区域之间的转换关系如下:
- -工作流程
-git 的工作流程一般是这样的:
-1、在工作目录中添加、修改文件;
-2、将需要进行版本管理的文件放入暂存区域;
-3、将暂存区域的文件提交到 git 仓库。
-因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
-Git 工作流程图
- -平时使用只需记住下图 6 个命令:
- ---记住,你可以使用以下命令来了解关于这些命令的更多信息
--
git command --help
i.e.,git checkout --help
这里我们在本地以一个小例子演示 git 的基本使用方法。
一起动手实践吧!
Git 项目需要一个文件夹,这个文件夹就是工作目录,就叫 git_test
吧!
在桌面上右键,Git Bash Here,输入以下命令
-$ mkdir git_test # 新建文件夹 |
上面两行命令,做了以下几件事:
1.使用 mkdir
创建名为 git_test
的文件夹,这就是我们的 working directory
2.使用 cd
切换到 git_test
目录
我们已经创建了工作目录,现在,需要在这里创建我们的 Local Repository,也就是本地仓库,这样才能将本目录纳入版本控制中。
-$ git init # 初始化 Local Repository,让 git 对此目录进行版本控制 |
使用 git init
初始化此目录,这样就可以让 Git 对这个目录进行版本控制。
我们可以看到执行 git init
后,在目录下有个 .git
的隐藏文件夹,这就是 local repo,有兴趣可以看看里面的内容 。
--如果你看不到,请勾选 显示隐藏的项目 。
-
由于当前项目 git_test
只在我们自己电脑上,其他人无法访问,所以我们称这种形式的版本库为 本地仓库。
如果有一天你想让这个目录不再被 Git 控制,其实 Git 的版本控制很单纯,全部都是靠那个 .git
目录在做事而已,所以如果这个不想被版控,或是只想给客户不含版本控制记录的內容的话,只要把那个 .git
目录移除,Git 就对这个目录失去控制权了。
--也就是说,在这个目录里,你只要没有删除
-.git
文件夹,其他的随便删都可以找回来,.git
被删除了就没有办法了。
先介绍下 git status
这个命令,这个命令是用来查询当前目录的「状态」,先在刚刚建立的 git_test
目录下执行这个指令:
$ git status |
在这个目录里,现在除了 Git 帮你创建的那个 .git
隐藏目录外什么都没有,所以上面这段信息就是跟你说「现在没有东西可以提交(nothing to commit)」。
现在,我们创建一个 txt 文本,输入 Talk is cheap, show me the code.
并保存, 再使用 git status
来查看目录状态:
$ echo "Talk is cheap, show me the code."> a.txt # 如果不会用命令行创建文件,可以手动创建a.txt 并输入内容保存 |
现在就和刚才不一样了,可以看到 a.txt
文件的状态是 Untracked files
,意思是这个文件没有加入到 Git 版本控制系统中,还没有被 Git 追踪,只是刚加到了目录里面。
使用命令 git add
+ 文件名称 来追踪文件,加入到 Stage 暂存区:
$ git add a.txt |
可以看到 a.txt
文件的状态变为了 new file
状态了,此时这个文件已被存到暂存区(Staging Area),没有 add 的文件还是再工作区,add 之后才能进行 commit 等操作。
--如果有很多文件要 add,那么使用
-git add --all
即可将所有文件添加进暂存区。-
--all
跟.
参数有什么不一样?
有时候会看到別人说git add .
指令也可以把所有的文件全部加到暂存区喔!」,这样的说法其实不完全正确。区别就是 执行指令时候的目录位置:
-git add .
这个指令会把目前当下这个目录,以及它的子目录、子子目录、子子子目录…里的异动全部加到暂存区,但在这个目录的以外的就不归它管了。而git add --all
指令就没这个问题,这个指令不管在哪一层目录执行,效果都是一样的,在这个工作目录里所有的异动都会被加至暂存区。还有一种区别就不讨论了,Git 2.x 之后,就只是上面的一种区别了。
-
如果仅是通过 git add
命令把文件加到暂存区是不够的,这样还不算是完成整个流程。要让暂存区的內容永久的存下來的話,使用的是 git commit -m <message>
命令:
$ git commit -m "init commit" |
git commit
的操作就是相当于把一个文件在 git 的系统中进行存档了,这个 commit 需要一个 -m
参数并且需要传入一个 message,就是对本次 commit 的一个简述,说明「你在这次的 Commit 做了什么事情」,只要使用简单、清楚的文字说明就好,中、英文都可,重点是清楚,让不久之后的你或是你的同事能很快的明白就行了,对于 commit message 是有一定的规范的,可参看 freecodecamp。
当完成了这个动作后,对 Git 来说就是「把暂存区的东西存放到本地仓库(Local Repository)里」,换言之就是「我完成一个存档(或备份)的动作了」,此文件已经纳入到版本控制中了。
-到底 Commit 了哪写东西?
---请先记住一个很重要的概念:「Git 每次的 commit 都只会处理暂存区(Staging Area)里的內容」。也就是说,如果在执行 git commit 指令的時候,那些还没被 add 到暂存区的里的文件,是不会被 commit 到本地仓库的。
-
那个信息是什么?很重要吗?一定要有吗?
---是的,很重要!很重要!很重要!(重要的事情说三遍!!!)
-在 commit 的时候,如果没有输入这个信息,Git 预设是不会让你完成Commit 这件事的。它最主要的目的就是告诉你自己以及其它人「这次的修改做了什么」。
-
commit 之后,再次输入 git status
查看状态:
更新库:sudo apt update;
更新软件:sudo apt upgrade;
下载vim:sudo apt install vim;
下载gcc:sudo apt install gcc
下载gdb:sudo apt install gdb
为了方便写代码,在编辑器中加入行号:cd etc/wim;sudo vi vimrc什么都不要改,只在最后一行加上set nu;保存退出。
+打开terminal
+vi hello.c
按i进入输入模式
+
|
按esc推出输入模式,保存退出
+编译hello.c
+gcc -o hello hello.c -Wall
执行
+./hello
$ vi main.c |
将源文件编译成目标文件需要使用-c
选项,例如:
gcc -c hello.c
就将 hello.c 编译为 hello.o。
+一个源文件会生成一个目标文件,多个源文件会生成多个目标文件,源文件数目和目标文件数目是一样的。通常情况下,默认的目标文件名字和源文件名字是一样的。
+ 如果希望自定义目标文件的名字,那么可以使用-o
选项,例如:
gcc -c hello.c -o a.o
这样生成的目标文件的名字就是 a.o。
+在gcc
命令后面紧跟目标文件的名字,就可以将目标文件链接成为可执行文件,例如:
gcc hello.o
就将 hello.o 链接为 a.out。
+在gcc
命令后面紧跟源文件名字或者目标文件名字都是可以的,gcc
命令能够自动识别到底是源文件还是目标文件:如果是源文件,那么要经过编译和链接两个步骤才能生成可执行文件;如果是目标文件,只需要链接就可以了。
使用-o
选项仍然能够自定义可执行文件的名字,例如:
gcc hello.o -o hello.out
这样生成的可执行文件的名字就是 hello.out。
+]]>\themes\next\_config.yml
$ cd <blog-folder>/themes/next |
\themes\next\_config.yml
back2top: |
\themes\next\_config.yml
reading_progress: |
在 \source
目录下,新建 _data
文件夹
进入 _data
文件夹,创建文件 post-body-end.swig
编辑文件,添加如下内容
+<div> |
打开 \themes\next\_config.yml
搜索 custom_file_path ,将如下内容取消注释
+postBodyEnd: source/_data/post-body-end.swig |
打开 \themes\next\_config.yml
搜索 creative_commons: ,进行如下配置
+creative_commons: |
打开文件 themes/next/source/css/_common/components/post/post.styl
在文件尾添加如下样式代码
+.post-body p a { |
打开 \themes\next\_config.yml
搜索 footer ,设置如下
+footer: |
打开 \themes\next\_config.yml
搜索 busuanzi_count ,设置如下
+busuanzi_count: |
\themes\next\_config.yml
true
安装插件来生成 sitemap 文件,传统的 sitemap。
+npm install hexo-generator-sitemap --save
打开 \_config.yml
添加如下信息
+sitemap: |
安装完成后执行 hexo clean & hexo g
即会在站点 public 目录下生成 sitemap.xml
和 baidusitemap.xml
。
\source 文件夹下新建 robots.txt 文件
+文件内容如下
+User-agent: * |
++Allow 字段的值即为允许搜索引擎爬取的内容
+
这个还没搞懂怎么回事 ,待更
+默认的链接太过冗长,不利于seo,我们需要修改链接样式
+\_config.yml
permalink: posts/:abbrlink/ #:year/:month/:day/:title/
https://blog.csdn.net/wgshun616/article/details/81019687
+参考:
+https://blog.csdn.net/weixin_41024483/article/details/104801164?%3E
+Next默认的友链时在主题配置文件中links下面,链接变多后,侧栏页面的排版很不美观,这时候我们可以给友链新增一个单独的页面。
+hexo new page links |
然后再博客根目录/source 下会生成一个links文件夹,打开其中的index.md, 在其头部加上type: “links”
+主题配置文件中menu下添加Links: /links/|| link
在/themes/next/languages/zh-Hans.yml文件中menu下增加中文描述links: 友链
修改/themes/next/layout/_macro/post.swig,搜索 rel=”tag”>#,将 # 换成<i class="fa fa-tag"></i>
为了提高博客代码块的用户体验,仅仅代码高亮还不行,最好还能一键复制代码。故此文将讲述Hexo NexT主题博客的代码块复制功能配置。
+三方插件 clipboardjs ,相关介绍和兼容性我就不赘述了,去它主页或github上看。
下载地址:
clipboard.js
clipboard.min.js 推荐
保存文件clipboard.js / clipboard.min.js ,目录如下:
.\themes\next\source\js\src
也是在.\themes\next\source\js\src目录下,创建clipboard-use.js,文件内容如下: /*页面载入完成后,创建复制按钮*/
!function (e, t, a) {
/* code */
var initCopyCode = function(){
var copyHtml = '';
copyHtml += '<button class="btn-copy" data-clipboard-snippet="">';
//fa fa-globe可以去字体库替换自己想要的图标
copyHtml += ' <i class="fa fa-clipboard"></i><span>copy</span>';
copyHtml += '</button>';
$(".highlight .code pre").before(copyHtml);
new ClipboardJS('.btn-copy', {
target: function(trigger) {
return trigger.nextElementSibling;
}
});
}
initCopyCode();
}(window, document);
在.\themes\next\source\css_custom\custom.styl样式文件中添加下面代码://代码块复制按钮
.highlight{
//方便copy代码按钮(btn-copy)的定位
position: relative;
}
.btn-copy {
display: inline-block;
cursor: pointer;
background-color: #eee;
background-image: linear-gradient(#fcfcfc,#eee);
border: 1px solid #d5d5d5;
border-radius: 3px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-appearance: none;
font-size: 13px;
font-weight: 700;
line-height: 20px;
color: #333;
-webkit-transition: opacity .3s ease-in-out;
-o-transition: opacity .3s ease-in-out;
transition: opacity .3s ease-in-out;
padding: 2px 6px;
position: absolute;
right: 5px;
top: 5px;
opacity: 0;
}
.btn-copy span {
margin-left: 5px;
}
.highlight:hover .btn-copy{
opacity: 1;
}
在.\themes\next\layout_layout.swig文件中,添加引用(注:在 swig 末尾或 body 结束标签(</body>)之前添加):<!-- 代码块复制功能 -->
<script type="text/javascript" src="/js/src/clipboard.min.js"></script>
<script type="text/javascript" src="/js/src/clipboard-use.js"></script>
懂代码的也可以将clipboard.min.js和clipboard-use.js合并为一个文件,再在.\themes\next\layout_layout.swig文件中使用。当然clipboard.min.js也可以直接用三方cdn的方式引入也行。
+修改/source/css/_common/scaffolding/base.styl,注释或删除以下内容:background-image: repeating-linear-gradient(
-45deg,
white,
white 4px,
transparent 4px,
transparent 8px
);
打开主题配置文件,这里我用的next主题
搜索busuanzi_count:
将enable对应的false改为true即可
enable: true
由于busuanzi(不蒜子)的网址更新,导致了使用Hexo Next主题时统计浏览数失效.
不蒜子官网:http://ibruce.info/2015/04/04/busuanzi/
解决方法:
到hexo的themes文件夹下, 进入
\themes\next\layout_third-party\analytics
打开: busuanzi-counter.swig
将src=“https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js”
修改为src=“https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js”
即可.
修改themes\next\source\css_custom\custom.styl文件,加入自定义样式 // [Read More]按钮样式
.post-button .btn {
color: #555 !important;
background-color: rgb(255, 255, 255);
border-radius: 3px;
font-size: 15px;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 125, 0.35);
border: none !important;
transition-property: unset;
padding: 0px 15px;
}
.post-button .btn:hover {
color: rgb(255, 255, 255) !important;
border-radius: 3px;
font-size: 15px;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
background-image: linear-gradient(90deg, #a166ab 0%, #ef4e7b 25%, #f37055 50%, #ef4e7b 75%, #a166ab 100%);
}
修改themes/next/layout/page.swig文件,加入自定义样式:- {{ tagcloud({min_font: 12, max_font: 30, amount: 300, color: true, start_color: '#ccc', end_color: '#111'}) }}
+ {{ tagcloud({min_font: 13, max_font: 31, amount: 1000, color: true, start_color: '#9733EE', end_color: '#FF512F'}) }}
修改对应参数值即可,参数说明见 Hexo官方文档
打开next\layout_partials\head\head.swig文件,插入以下代码:<script>
(function(){
if('{{ page.password }}'){
if (prompt('请输入文章密码') !== '{{ page.password }}'){
alert('密码错误!');
history.back();
}
}
})();
</script>
在文章头中加入password: 123456就可以了
(发现还是有 bug 的,就是右键在新标签中打开,然后无论是否输入密码,都能看到内容)
+这里提供一种更好的办法
hexo-blog-encrypt
我的博客主题是Mist,主题的设计模版是 Muse 或 Mist,就可以直接在主题配置文件中配置:
修改主题配置themes/next/_config.yml# Enable sidebar on narrow view
onmobile: true
你也可以自己调试页面
页面调试好之后将代码复制到:themes\next\source\css_custom\custom.styl
参考custom.styl样式文件
不建议全部复制粘贴使用,最好是F12打开,根据关键ID找到对应的样式,复制到自己的文件中// Custom styles.
/*******************首页样式*****************************/
// 顶栏宽度
.container .header-inner {
width: 100%;
}
// .headband {
// height: 1.5px;
// background-image: linear-gradient(90deg, #F79533 0%, #F37055 15%, #EF4E7B 30%, #A166AB 44%, #5073B8 58%, #1098AD 72%, #07B39B 86%, #6DBA82 100%);
// }
// 页面顶部行高
.header {
line-height: 1.5;
}
// // 页面背景色
// .container {
// background-color: rgba(0, 0, 0, 0.75);
// }
// 页面留白更改
.header-inner {
padding-top: 35px;
padding-bottom: 0px;
}
.posts-expand {
padding-top: 50px;
}
.posts-expand .post-meta {
margin: 5px 0px 0px 0px;
}
.post-button {
margin-top: 0px;
}
// 顶栏宽度
.container .header-inner {
width: 100%;
}
// 渐变菜带,CSS代码copy自https://githubuniverse.com
// .site-meta {
// background-image: linear-gradient(90deg, #F79533 0%, #F37055 15%, #EF4E7B 30%, #A166AB 44%, #5073B8 58%, #1098AD 72%, #07B39B 86%, #6DBA82 100%);
// }
//缩略图指定宽度值显示。
img.img-topic {
width: 75%;
}
/*******************文章样式*****************************/
// 文章
.post {
margin-bottom: 50px;
padding: 45px 36px 36px 36px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
background-color: rgb(255, 255, 255);
}
// 文章标题字体
.posts-expand .post-title {
font-size: 26px;
font-weight: 700;
}
// 文章标题动态效果
.posts-expand .post-title-link::before {
background-image: linear-gradient(90deg, #a166ab 0%, #ef4e7b 25%, #f37055 50%, #ef4e7b 75%, #a166ab 100%);
}
// 文章元数据(meta)留白更改
.posts-expand .post-meta {
margin: 10px 0px 20px 0px;
}
// 文章的描述description
.posts-expand .post-meta .post-description {
font-style: italic;
font-size: 14px;
margin-top: 30px;
margin-bottom: 0px;
color: #666;
}
// [Read More]按钮样式
.post-button .btn {
color: #555 !important;
background-color: rgb(255, 255, 255);
border-radius: 3px;
font-size: 15px;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
border: none !important;
transition-property: unset;
padding: 0px 15px;
}
.post-button .btn:hover {
color: rgb(255, 255, 255) !important;
border-radius: 3px;
font-size: 15px;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
background-image: linear-gradient(90deg, #a166ab 0%, #ef4e7b 25%, #f37055 50%, #ef4e7b 75%, #a166ab 100%);
}
// 去除在页面文章之间的分割线
.posts-expand .post-eof {
margin: 0px;
background-color: rgba(255, 255, 255, 0);
}
// 去除页面底部页码上面的横线
.pagination {
border: none;
margin: 0px;
}
// 文章内标题样式(左边的竖线)
.post-body h2, h3, h4, h5, h6 {
border-left: 4px solid rgb(161, 102, 171);
margin-left: -36px;
padding-left: 32px;
}
// 去掉图片边框
.posts-expand .post-body img {
border: none;
padding: 0px;
}
// 文章``代码块的自定义样式
code {
margin: 0px 3px;
border: 1px solid #999;
}
// 文章```代码块顶部样式
.highlight figcaption {
margin: 0em;
padding: 0.5em;
background: #eee;
border-bottom: 1px solid #e9e9e9;
}
.highlight figcaption a {
color: rgb(80, 115, 184);
}
// 文章```代码块diff样式
pre .addition {
background: #e6ffed;
}
pre .deletion {
background: #ffeef0;
}
//文章内链接文本样式
.post-body p a{
color: #0593d3;
border-bottom: none;
border-bottom: 1px solid #0593d3;
&:hover {
color: #fc6423;
border-bottom: none;
border-bottom: 1px solid #fc6423;
}
}
// 自定义的文章摘要图片样式
img.img-topic {
width: 100%;
}
/*************************侧栏样式****************************/
// 自定义的侧栏时间样式
#days {
display: block;
color: rgb(7, 179, 155);
font-size: 13px;
margin-top: 15px;
}
// 右下角侧栏按钮样式
.sidebar-toggle {
right: 10px;
bottom: 43px;
background-color: rgba(247, 149, 51, 0.75);
border-radius: 5px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
}
.page-post-detail .sidebar-toggle-line {
background: rgb(7, 179, 155);
}
// 右下角返回顶部按钮样式
.back-to-top {
line-height: 1.5;
right: 10px;
padding-right: 5px;
padding-left: 5px;
padding-top: 2.5px;
padding-bottom: 2.5px;
background-color: rgba(247, 149, 51, 0.75);
border-radius: 5px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
}
// 侧栏
.sidebar {
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
background-color: rgba(0, 0, 0, 0.75);
}
.sidebar-inner {
margin-top: 30px;
}
// 侧栏顶部文字
.sidebar-nav li {
font-size: 15px;
font-weight: bold;
color: rgb(7, 179, 155);
}
.sidebar-nav li:hover {
color: rgb(161, 102, 171);
}
.sidebar-nav .sidebar-nav-active {
color: rgb(7, 179, 155);
border-bottom-color: rgb(161, 102, 171);
border-bottom-width: 1.5px;
}
.sidebar-nav .sidebar-nav-active:hover {
color: rgb(7, 179, 155);
}
// 侧栏站点作者名
.site-author-name {
display: none;
}
// 侧栏站点描述
.site-description {
letter-spacing: 5px;
font-size: 15px;
font-weight: bold;
margin-top: 15px;
margin-left: 13px;
color: rgb(243, 112, 85);
}
// 侧栏站点文章、分类、标签
.site-state {
line-height: 1.3;
margin-left: 12px;
}
.site-state-item {
padding: 0px 15px;
border-left: 1.5px solid rgb(161, 102, 171);
}
// 侧栏RSS按钮样式
.feed-link {
margin-top: 15px;
margin-left: 7px;
}
.feed-link a {
color: rgb(255, 255, 255);
border: 1px solid rgb(158, 158, 158) !important;
border-radius: 15px;
}
.feed-link a:hover {
background-color: rgb(161, 102, 171);
}
.feed-link a i {
color: rgb(255, 255, 255);
}
// 侧栏社交链接
.links-of-author {
margin-top: 0px;
}
// 侧栏友链标题
.links-of-blogroll-title {
margin-bottom: 10px;
margin-top: 15px;
color: rgba(7, 179, 155, 0.75);
margin-left: 6px;
font-size: 15px;
font-weight: bold;
}
// 侧栏超链接样式(友链的样式)
.sidebar a {
color: #ccc;
border-bottom: none;
}
.sidebar a:hover {
color: rgb(255, 255, 255);
}
// 自定义的侧栏时间样式
#days {
display: block;
color: rgb(7, 179, 155);
font-size: 13px;
margin-top: 15px;
}
// 侧栏目录链接样式
.post-toc ol a {
color: rgb(7, 179, 155);
border-bottom: 1px solid rgb(96, 125, 139);
}
.post-toc ol a:hover {
color: rgb(161, 102, 171);
border-bottom-color: rgb(161, 102, 171);
}
// 侧栏目录链接样式之当前目录
.post-toc .nav .active > a {
color: rgb(161, 102, 171);
border-bottom-color: rgb(161, 102, 171);
}
.post-toc .nav .active > a:hover {
color: rgb(161, 102, 171);
border-bottom-color: rgb(161, 102, 171);
}
/* 修侧栏目录bug,如果主题配置文件_config.yml的toc是wrap: true */
.post-toc ol {
padding: 0px 10px 5px 10px;
}
/* 侧栏目录默认全展开,已注释
.post-toc .nav .nav-child {
display: block;
}
*/
/************************移动端样式*******************************/
@media (max-width: 1023px) {
.container {
background-color: rgba(0, 0, 0, 0);
}
.sidebar {
// box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.feed-link {
display: none !important;
}
}
@media (max-width: 767px) {
.main {
padding-bottom: 120px;
}
.posts-expand {
margin: 0px;
padding-top: 10px;
}
.posts-expand .post-title {
font-size: 22px;
}
.posts-expand .post-meta {
font-size: 10px;
}
.post {
margin-bottom: 30px !important;
padding: 20px 15px 15px 15px !important;
}
.post-body h2, h3, h4, h5, h6 {
margin-left: -15px;
padding-left: 11px;
}
.posts-expand .post-tags {
margin-top: 10px;
}
.post-widgets {
margin-top: 10px;
}
.comments {
margin: 40px 0px 40px 0px !important;
}
.footer {
// box-shadow: 0px -5px 10px 0px rgba(0, 0, 0, 0.5);
}
}
.sidebar-active #sidebar-dimmer {
opacity: 0;
}
// 移动端左上角菜单按钮
.site-nav-toggle {
top: 35px;
left: 91px;
// background-color: #222;
}
.btn-bar {
background-color: rgb(255, 255, 255);
}
// 移动端菜单
@media (max-width: 767px) {
.menu {
text-align: center;
// box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
}
.site-nav {
top: initial;
background-color: rgba(255, 255, 255, 0.75);
border-top: none;
border-bottom: none;
position: relative;
z-index: 1024;
}
}
//移动端顶部
@media (max-width: 767px) {
.site-title {
font-size: 28px !important;
letter-spacing: 0px !important;
}
.site-subtitle{
letter-spacing: 0px !important;
padding-bottom: 0px !important;
}
.site-meta {
// box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
}
.menu .menu-item {
margin: 0px 10px !important;
}
}
学习过程中,有任何问题建议去 Google 搜索,No baidu.
+Git 是目前世界上最先进的分布式版本控制系统(Distributed Version Control System),是由 Linux 之父 林纳斯·托瓦兹 (Linus Torvalds) 创作。
+什么是版本控制,举个例子,你每天都会新增、编辑、修改许多文档,当修修改改很多次之后,你觉得不满意想回到以前的某个版本,得手动修改添加过的,非常不方便,于是,版本控制系统就可以很好的解决这个问题,Git 就像玩游戏的时候可以存储进度一样,当你修修改改发现被改乱了自己都看不懂的时候,可以回到到以前的任意版本。
+软件工程师们一般不会一次性完成一个项目,他们一般都有一个计划来安排需要完成的工作。如果你的个人项目是在数天或数周内完成的,那么记录你在某一天完成的工作就会变得很有好处,而将修改暂时或不修改的内容回滚到之前的时间点的权力是很有价值的。当与团队中的其他人合作时,这一点变得更加重要—哪些文件是由哪些合作者修改的?当多个合作者想对同一个文件进行修改时怎么办?如前所述,Git 的主要功能是 “版本控制”—组织和跟踪一个项目在一段时间内所做的修改,不管是只有你一个人在做,还是一个团队在做。
+在 Linux 下安装 Git 最简单了,只需一行命令:
+$ sudo apt-get install git |
即可安装成功
+在 Git官网 下载安装程序 按默认选项安装即可。
+安装完成后,即可看到右键菜单多了 Git Gui Here 和 Git Bash Here 这两个选项,说明 Git 已经安装成功了!
+网站:https://git-scm.com/download/mac
+只要下载、点开、执行,基本上这样就可以顺利完成安装了!
+安装成功后,随便在哪里右键选择 Git Bash Here ,输入以下命令查看 git 版本:
+$ git --version |
安装 Git 后首先要做的事情是设置你的用户名称和 Email 地址(用户标识,必要)。
+打开终端,输入以下两行命令(#右边的不用输入,# 右边的为注释,不会被执行):
+$ git config --global user.name "Your Name“ # Your Name 替换为你的名字 |
$ git config --global user.email "Your Email Address" # Your Email Address 替换为你的邮箱地址 |
完成之后,可以再检查一下目前的设定:
+$ git config --list |
Git 本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository 或 Git Directory)。如果再加上远程的 git 仓库(Remote Directory)就可以分为四个工作区域。
+Working Directory:工作目录,就是你平时存放项目代码的地方,或者是你需要进行版本控制的文件夹目录。
+Repository:资源库(或本地仓库),工作区有一个隐藏目录 .git
,这里面有你提交到所有版本的数据,这个不算工作区,而是Git的版本库。
Index/Stage:暂存区,或者叫待提交更新区,在提交进入 repo 之前,我们可以把所有的更新放在暂存区。
+Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫 index)的暂存区,还有 Git 为我们自动创建的第一个分支 master
,以及指向 master
的一个指针叫 HEAD
。
远程的 git 仓库(Remote Directory):这个就是你的 GitHub 上的仓库
+文件在这四个区域之间的转换关系如下:
+ +工作流程
+git 的工作流程一般是这样的:
+1、在工作目录中添加、修改文件;
+2、将需要进行版本管理的文件放入暂存区域;
+3、将暂存区域的文件提交到 git 仓库。
+因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
+Git 工作流程图
+ +平时使用只需记住下图 6 个命令:
+ +++记住,你可以使用以下命令来了解关于这些命令的更多信息
++
git command --help
i.e.,git checkout --help
这里我们在本地以一个小例子演示 git 的基本使用方法。
一起动手实践吧!
Git 项目需要一个文件夹,这个文件夹就是工作目录,就叫 git_test
吧!
在桌面上右键,Git Bash Here,输入以下命令
+$ mkdir git_test # 新建文件夹 |
上面两行命令,做了以下几件事:
1.使用 mkdir
创建名为 git_test
的文件夹,这就是我们的 working directory
2.使用 cd
切换到 git_test
目录
我们已经创建了工作目录,现在,需要在这里创建我们的 Local Repository,也就是本地仓库,这样才能将本目录纳入版本控制中。
+$ git init # 初始化 Local Repository,让 git 对此目录进行版本控制 |
使用 git init
初始化此目录,这样就可以让 Git 对这个目录进行版本控制。
我们可以看到执行 git init
后,在目录下有个 .git
的隐藏文件夹,这就是 local repo,有兴趣可以看看里面的内容 。
++如果你看不到,请勾选 显示隐藏的项目 。
+
由于当前项目 git_test
只在我们自己电脑上,其他人无法访问,所以我们称这种形式的版本库为 本地仓库。
如果有一天你想让这个目录不再被 Git 控制,其实 Git 的版本控制很单纯,全部都是靠那个 .git
目录在做事而已,所以如果这个不想被版控,或是只想给客户不含版本控制记录的內容的话,只要把那个 .git
目录移除,Git 就对这个目录失去控制权了。
++也就是说,在这个目录里,你只要没有删除
+.git
文件夹,其他的随便删都可以找回来,.git
被删除了就没有办法了。
先介绍下 git status
这个命令,这个命令是用来查询当前目录的「状态」,先在刚刚建立的 git_test
目录下执行这个指令:
$ git status |
在这个目录里,现在除了 Git 帮你创建的那个 .git
隐藏目录外什么都没有,所以上面这段信息就是跟你说「现在没有东西可以提交(nothing to commit)」。
现在,我们创建一个 txt 文本,输入 Talk is cheap, show me the code.
并保存, 再使用 git status
来查看目录状态:
$ echo "Talk is cheap, show me the code."> a.txt # 如果不会用命令行创建文件,可以手动创建a.txt 并输入内容保存 |
现在就和刚才不一样了,可以看到 a.txt
文件的状态是 Untracked files
,意思是这个文件没有加入到 Git 版本控制系统中,还没有被 Git 追踪,只是刚加到了目录里面。
使用命令 git add
+ 文件名称 来追踪文件,加入到 Stage 暂存区:
$ git add a.txt |
可以看到 a.txt
文件的状态变为了 new file
状态了,此时这个文件已被存到暂存区(Staging Area),没有 add 的文件还是再工作区,add 之后才能进行 commit 等操作。
++如果有很多文件要 add,那么使用
+git add --all
即可将所有文件添加进暂存区。+
--all
跟.
参数有什么不一样?
有时候会看到別人说git add .
指令也可以把所有的文件全部加到暂存区喔!」,这样的说法其实不完全正确。区别就是 执行指令时候的目录位置:
+git add .
这个指令会把目前当下这个目录,以及它的子目录、子子目录、子子子目录…里的异动全部加到暂存区,但在这个目录的以外的就不归它管了。而git add --all
指令就没这个问题,这个指令不管在哪一层目录执行,效果都是一样的,在这个工作目录里所有的异动都会被加至暂存区。还有一种区别就不讨论了,Git 2.x 之后,就只是上面的一种区别了。
+
如果仅是通过 git add
命令把文件加到暂存区是不够的,这样还不算是完成整个流程。要让暂存区的內容永久的存下來的話,使用的是 git commit -m <message>
命令:
$ git commit -m "init commit" |
git commit
的操作就是相当于把一个文件在 git 的系统中进行存档了,这个 commit 需要一个 -m
参数并且需要传入一个 message,就是对本次 commit 的一个简述,说明「你在这次的 Commit 做了什么事情」,只要使用简单、清楚的文字说明就好,中、英文都可,重点是清楚,让不久之后的你或是你的同事能很快的明白就行了,对于 commit message 是有一定的规范的,可参看 freecodecamp。
当完成了这个动作后,对 Git 来说就是「把暂存区的东西存放到本地仓库(Local Repository)里」,换言之就是「我完成一个存档(或备份)的动作了」,此文件已经纳入到版本控制中了。
+到底 Commit 了哪写东西?
+++请先记住一个很重要的概念:「Git 每次的 commit 都只会处理暂存区(Staging Area)里的內容」。也就是说,如果在执行 git commit 指令的時候,那些还没被 add 到暂存区的里的文件,是不会被 commit 到本地仓库的。
+
那个信息是什么?很重要吗?一定要有吗?
+++是的,很重要!很重要!很重要!(重要的事情说三遍!!!)
+在 commit 的时候,如果没有输入这个信息,Git 预设是不会让你完成Commit 这件事的。它最主要的目的就是告诉你自己以及其它人「这次的修改做了什么」。
+
commit 之后,再次输入 git status
查看状态:
$ git status |
一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的(working tree clean)。
我们已经成功地添加并提交了一个 a.txt
文件,现在,是时候继续工作了,于是,我们继续修改 a.txt
文件,改成如下内容:
其中,T(n)表示代码执行的时间;n表示数
$ git branch --set-upstream-to=origin/dev dev
Branch 'dev' set up to track remote branch 'dev' from 'origin'.
再次 pull:
$ git pull |
git pull
成功,提示 b.txt
在合并时发生冲突,请处理冲突然后提交。
我们查看 index.js
的内容,会发现这样的内容(在命令行中用 cat 查看):
<<<<<<< HEAD |
<<<<<<< HEAD 部分到 ======= 之间的内容是当前分支下此文件的内容(Current Change),======= 到 >>>>>>> main 之间的内容是其他人修改的内容(Incoming Change),根据需求改成你希望的样子,这里的情况肯定想保留两者,经过修正,将 index.js
改为如下:
function add(x, y) { |
然后提交我们用于处理冲突的 commit,再push:
-$ git add . |
冲突处理完成。
-“Pull Request 是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。”
-在 GitHub 上有个有趣的机制:
-其中,第 4 步的那个「通知」,就是发一个请原作来拉回去(Pull)的请求(Request),称之 Pull Request,简称 PR。
-更多请看:https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests
---Fork 这个字在这边翻译成「复制」并不是这个字的原意,Fork 的中文翻译是「分叉」、「叉子」,在技术圈来说这个词使用的情境是「原作的做的不够好,其它人觉得可以做得更好或是想加入一些个人喜好的功能而修改出另外的版本」,不过为了让大家比较容易理解,这里还是会使用「复制」做为 Fork 的翻译。
-
关于 Git 的相关知识也可以看以下的视频:
https://youtu.be/FyAAIHHClqI
猴子都能懂的 GIT 入门:https://backlog.com/git-tutorial/cn/
-StackOverflow 上整理的一个资料大合集:https://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide
-Visual and interactive way to learn Git on the web:https://git.mo.mk/
-Learn Git Branching:https://learngitbranching.js.org/index.html
-Pro Git - http://git-scm.com/book https://git-scm.com/book/zh/v2
Pro Git 简体中文版 - http://iissnan.com/progit/
Git权威指南 | 国内一位大牛写的介绍 Git 用法的开源书籍,很详实
-Git tutorial — A Beginner’s Guide to the most Frequently used Git Commands
-http://marklodato.github.io/visual-git-guide/index-zh-cn.html
-]]>我设置了google日历提醒我的 它为什么没有提醒我 😓
-Problem
-There are N houses for sale. The i-th house costs Ai dollars to buy. You have a budget of B dollars to spend.
-What is the maximum number of houses you can buy?
- -水题
-待更……
-]]>环境:Intellij idea 2020。
-超详细的教程
-新建项目
- -选择java
- -然后next,再next
-设置项目名称,点击finish
- -右键项目,添加框架支持
- -选择web application,勾选create web.xml,点击ok
- -之后会看到如图所示文件结构
- -在 web-inf 文件夹下创建classes和lib文件夹
- -如图打开project structure
- -设置成这样
- -按如下导入tomcat目录下servlet.jar包
- - -点击add configurations
- -选择 tomcat server,local
- -点击fix,再点ok
- -src右键,创建 Servlet
- - -index.jsp 编写如下
-<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
calculator.java如下
-package com.calculator; |
启动服务可以看到
- -随便输入几个数字即可看到成功计算
- -可按如下设置即可实现修改jsp页面和后端数据后,刷新页面实时更新
- -Ref:
- -]]>\themes\next\_config.yml
$ cd <blog-folder>/themes/next |
\themes\next\_config.yml
back2top: |
\themes\next\_config.yml
reading_progress: |
在 \source
目录下,新建 _data
文件夹
进入 _data
文件夹,创建文件 post-body-end.swig
编辑文件,添加如下内容
-<div> |
打开 \themes\next\_config.yml
搜索 custom_file_path ,将如下内容取消注释
-postBodyEnd: source/_data/post-body-end.swig |
打开 \themes\next\_config.yml
搜索 creative_commons: ,进行如下配置
-creative_commons: |
打开文件 themes/next/source/css/_common/components/post/post.styl
在文件尾添加如下样式代码
-.post-body p a { |
打开 \themes\next\_config.yml
搜索 footer ,设置如下
-footer: |
打开 \themes\next\_config.yml
搜索 busuanzi_count ,设置如下
-busuanzi_count: |
\themes\next\_config.yml
true
安装插件来生成 sitemap 文件,传统的 sitemap。
-npm install hexo-generator-sitemap --save
打开 \_config.yml
添加如下信息
-sitemap: |
安装完成后执行 hexo clean & hexo g
即会在站点 public 目录下生成 sitemap.xml
和 baidusitemap.xml
。
\source 文件夹下新建 robots.txt 文件
-文件内容如下
-User-agent: * |
git pull
成功,提示 b.txt
在合并时发生冲突,请处理冲突然后提交。
我们查看 index.js
的内容,会发现这样的内容(在命令行中用 cat 查看):
<<<<<<< HEAD |
<<<<<<< HEAD 部分到 ======= 之间的内容是当前分支下此文件的内容(Current Change),======= 到 >>>>>>> main 之间的内容是其他人修改的内容(Incoming Change),根据需求改成你希望的样子,这里的情况肯定想保留两者,经过修正,将 index.js
改为如下:
function add(x, y) { |
然后提交我们用于处理冲突的 commit,再push:
+$ git add . |
冲突处理完成。
+“Pull Request 是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。”
+在 GitHub 上有个有趣的机制:
+其中,第 4 步的那个「通知」,就是发一个请原作来拉回去(Pull)的请求(Request),称之 Pull Request,简称 PR。
+更多请看:https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests
--Allow 字段的值即为允许搜索引擎爬取的内容
+Fork 这个字在这边翻译成「复制」并不是这个字的原意,Fork 的中文翻译是「分叉」、「叉子」,在技术圈来说这个词使用的情境是「原作的做的不够好,其它人觉得可以做得更好或是想加入一些个人喜好的功能而修改出另外的版本」,不过为了让大家比较容易理解,这里还是会使用「复制」做为 Fork 的翻译。
这个还没搞懂怎么回事 ,待更
-默认的链接太过冗长,不利于seo,我们需要修改链接样式
-\_config.yml
permalink: posts/:abbrlink/ #:year/:month/:day/:title/
https://blog.csdn.net/wgshun616/article/details/81019687
-参考:
-https://blog.csdn.net/weixin_41024483/article/details/104801164?%3E
-Next默认的友链时在主题配置文件中links下面,链接变多后,侧栏页面的排版很不美观,这时候我们可以给友链新增一个单独的页面。
-hexo new page links |
然后再博客根目录/source 下会生成一个links文件夹,打开其中的index.md, 在其头部加上type: “links”
-主题配置文件中menu下添加Links: /links/|| link
在/themes/next/languages/zh-Hans.yml文件中menu下增加中文描述links: 友链
修改/themes/next/layout/_macro/post.swig,搜索 rel=”tag”>#,将 # 换成<i class="fa fa-tag"></i>
为了提高博客代码块的用户体验,仅仅代码高亮还不行,最好还能一键复制代码。故此文将讲述Hexo NexT主题博客的代码块复制功能配置。
-三方插件 clipboardjs ,相关介绍和兼容性我就不赘述了,去它主页或github上看。
下载地址:
clipboard.js
clipboard.min.js 推荐
保存文件clipboard.js / clipboard.min.js ,目录如下:
.\themes\next\source\js\src
也是在.\themes\next\source\js\src目录下,创建clipboard-use.js,文件内容如下: /*页面载入完成后,创建复制按钮*/
!function (e, t, a) {
/* code */
var initCopyCode = function(){
var copyHtml = '';
copyHtml += '<button class="btn-copy" data-clipboard-snippet="">';
//fa fa-globe可以去字体库替换自己想要的图标
copyHtml += ' <i class="fa fa-clipboard"></i><span>copy</span>';
copyHtml += '</button>';
$(".highlight .code pre").before(copyHtml);
new ClipboardJS('.btn-copy', {
target: function(trigger) {
return trigger.nextElementSibling;
}
});
}
initCopyCode();
}(window, document);
在.\themes\next\source\css_custom\custom.styl样式文件中添加下面代码://代码块复制按钮
.highlight{
//方便copy代码按钮(btn-copy)的定位
position: relative;
}
.btn-copy {
display: inline-block;
cursor: pointer;
background-color: #eee;
background-image: linear-gradient(#fcfcfc,#eee);
border: 1px solid #d5d5d5;
border-radius: 3px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-appearance: none;
font-size: 13px;
font-weight: 700;
line-height: 20px;
color: #333;
-webkit-transition: opacity .3s ease-in-out;
-o-transition: opacity .3s ease-in-out;
transition: opacity .3s ease-in-out;
padding: 2px 6px;
position: absolute;
right: 5px;
top: 5px;
opacity: 0;
}
.btn-copy span {
margin-left: 5px;
}
.highlight:hover .btn-copy{
opacity: 1;
}
在.\themes\next\layout_layout.swig文件中,添加引用(注:在 swig 末尾或 body 结束标签(</body>)之前添加):<!-- 代码块复制功能 -->
<script type="text/javascript" src="/js/src/clipboard.min.js"></script>
<script type="text/javascript" src="/js/src/clipboard-use.js"></script>
懂代码的也可以将clipboard.min.js和clipboard-use.js合并为一个文件,再在.\themes\next\layout_layout.swig文件中使用。当然clipboard.min.js也可以直接用三方cdn的方式引入也行。
-修改/source/css/_common/scaffolding/base.styl,注释或删除以下内容:background-image: repeating-linear-gradient(
-45deg,
white,
white 4px,
transparent 4px,
transparent 8px
);
打开主题配置文件,这里我用的next主题
搜索busuanzi_count:
将enable对应的false改为true即可
enable: true
由于busuanzi(不蒜子)的网址更新,导致了使用Hexo Next主题时统计浏览数失效.
不蒜子官网:http://ibruce.info/2015/04/04/busuanzi/
解决方法:
到hexo的themes文件夹下, 进入
\themes\next\layout_third-party\analytics
打开: busuanzi-counter.swig
将src=“https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js”
修改为src=“https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js”
即可.
修改themes\next\source\css_custom\custom.styl文件,加入自定义样式 // [Read More]按钮样式
.post-button .btn {
color: #555 !important;
background-color: rgb(255, 255, 255);
border-radius: 3px;
font-size: 15px;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 125, 0.35);
border: none !important;
transition-property: unset;
padding: 0px 15px;
}
.post-button .btn:hover {
color: rgb(255, 255, 255) !important;
border-radius: 3px;
font-size: 15px;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
background-image: linear-gradient(90deg, #a166ab 0%, #ef4e7b 25%, #f37055 50%, #ef4e7b 75%, #a166ab 100%);
}
修改themes/next/layout/page.swig文件,加入自定义样式:- {{ tagcloud({min_font: 12, max_font: 30, amount: 300, color: true, start_color: '#ccc', end_color: '#111'}) }}
+ {{ tagcloud({min_font: 13, max_font: 31, amount: 1000, color: true, start_color: '#9733EE', end_color: '#FF512F'}) }}
修改对应参数值即可,参数说明见 Hexo官方文档
打开next\layout_partials\head\head.swig文件,插入以下代码:<script>
(function(){
if('{{ page.password }}'){
if (prompt('请输入文章密码') !== '{{ page.password }}'){
alert('密码错误!');
history.back();
}
}
})();
</script>
在文章头中加入password: 123456就可以了
(发现还是有 bug 的,就是右键在新标签中打开,然后无论是否输入密码,都能看到内容)
-这里提供一种更好的办法
hexo-blog-encrypt
我的博客主题是Mist,主题的设计模版是 Muse 或 Mist,就可以直接在主题配置文件中配置:
修改主题配置themes/next/_config.yml# Enable sidebar on narrow view
onmobile: true
你也可以自己调试页面
页面调试好之后将代码复制到:themes\next\source\css_custom\custom.styl
参考custom.styl样式文件
不建议全部复制粘贴使用,最好是F12打开,根据关键ID找到对应的样式,复制到自己的文件中// Custom styles.
/*******************首页样式*****************************/
// 顶栏宽度
.container .header-inner {
width: 100%;
}
// .headband {
// height: 1.5px;
// background-image: linear-gradient(90deg, #F79533 0%, #F37055 15%, #EF4E7B 30%, #A166AB 44%, #5073B8 58%, #1098AD 72%, #07B39B 86%, #6DBA82 100%);
// }
// 页面顶部行高
.header {
line-height: 1.5;
}
// // 页面背景色
// .container {
// background-color: rgba(0, 0, 0, 0.75);
// }
// 页面留白更改
.header-inner {
padding-top: 35px;
padding-bottom: 0px;
}
.posts-expand {
padding-top: 50px;
}
.posts-expand .post-meta {
margin: 5px 0px 0px 0px;
}
.post-button {
margin-top: 0px;
}
// 顶栏宽度
.container .header-inner {
width: 100%;
}
// 渐变菜带,CSS代码copy自https://githubuniverse.com
// .site-meta {
// background-image: linear-gradient(90deg, #F79533 0%, #F37055 15%, #EF4E7B 30%, #A166AB 44%, #5073B8 58%, #1098AD 72%, #07B39B 86%, #6DBA82 100%);
// }
//缩略图指定宽度值显示。
img.img-topic {
width: 75%;
}
/*******************文章样式*****************************/
// 文章
.post {
margin-bottom: 50px;
padding: 45px 36px 36px 36px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
background-color: rgb(255, 255, 255);
}
// 文章标题字体
.posts-expand .post-title {
font-size: 26px;
font-weight: 700;
}
// 文章标题动态效果
.posts-expand .post-title-link::before {
background-image: linear-gradient(90deg, #a166ab 0%, #ef4e7b 25%, #f37055 50%, #ef4e7b 75%, #a166ab 100%);
}
// 文章元数据(meta)留白更改
.posts-expand .post-meta {
margin: 10px 0px 20px 0px;
}
// 文章的描述description
.posts-expand .post-meta .post-description {
font-style: italic;
font-size: 14px;
margin-top: 30px;
margin-bottom: 0px;
color: #666;
}
// [Read More]按钮样式
.post-button .btn {
color: #555 !important;
background-color: rgb(255, 255, 255);
border-radius: 3px;
font-size: 15px;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
border: none !important;
transition-property: unset;
padding: 0px 15px;
}
.post-button .btn:hover {
color: rgb(255, 255, 255) !important;
border-radius: 3px;
font-size: 15px;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
background-image: linear-gradient(90deg, #a166ab 0%, #ef4e7b 25%, #f37055 50%, #ef4e7b 75%, #a166ab 100%);
}
// 去除在页面文章之间的分割线
.posts-expand .post-eof {
margin: 0px;
background-color: rgba(255, 255, 255, 0);
}
// 去除页面底部页码上面的横线
.pagination {
border: none;
margin: 0px;
}
// 文章内标题样式(左边的竖线)
.post-body h2, h3, h4, h5, h6 {
border-left: 4px solid rgb(161, 102, 171);
margin-left: -36px;
padding-left: 32px;
}
// 去掉图片边框
.posts-expand .post-body img {
border: none;
padding: 0px;
}
// 文章``代码块的自定义样式
code {
margin: 0px 3px;
border: 1px solid #999;
}
// 文章```代码块顶部样式
.highlight figcaption {
margin: 0em;
padding: 0.5em;
background: #eee;
border-bottom: 1px solid #e9e9e9;
}
.highlight figcaption a {
color: rgb(80, 115, 184);
}
// 文章```代码块diff样式
pre .addition {
background: #e6ffed;
}
pre .deletion {
background: #ffeef0;
}
//文章内链接文本样式
.post-body p a{
color: #0593d3;
border-bottom: none;
border-bottom: 1px solid #0593d3;
&:hover {
color: #fc6423;
border-bottom: none;
border-bottom: 1px solid #fc6423;
}
}
// 自定义的文章摘要图片样式
img.img-topic {
width: 100%;
}
/*************************侧栏样式****************************/
// 自定义的侧栏时间样式
#days {
display: block;
color: rgb(7, 179, 155);
font-size: 13px;
margin-top: 15px;
}
// 右下角侧栏按钮样式
.sidebar-toggle {
right: 10px;
bottom: 43px;
background-color: rgba(247, 149, 51, 0.75);
border-radius: 5px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
}
.page-post-detail .sidebar-toggle-line {
background: rgb(7, 179, 155);
}
// 右下角返回顶部按钮样式
.back-to-top {
line-height: 1.5;
right: 10px;
padding-right: 5px;
padding-left: 5px;
padding-top: 2.5px;
padding-bottom: 2.5px;
background-color: rgba(247, 149, 51, 0.75);
border-radius: 5px;
box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.35);
}
// 侧栏
.sidebar {
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
background-color: rgba(0, 0, 0, 0.75);
}
.sidebar-inner {
margin-top: 30px;
}
// 侧栏顶部文字
.sidebar-nav li {
font-size: 15px;
font-weight: bold;
color: rgb(7, 179, 155);
}
.sidebar-nav li:hover {
color: rgb(161, 102, 171);
}
.sidebar-nav .sidebar-nav-active {
color: rgb(7, 179, 155);
border-bottom-color: rgb(161, 102, 171);
border-bottom-width: 1.5px;
}
.sidebar-nav .sidebar-nav-active:hover {
color: rgb(7, 179, 155);
}
// 侧栏站点作者名
.site-author-name {
display: none;
}
// 侧栏站点描述
.site-description {
letter-spacing: 5px;
font-size: 15px;
font-weight: bold;
margin-top: 15px;
margin-left: 13px;
color: rgb(243, 112, 85);
}
// 侧栏站点文章、分类、标签
.site-state {
line-height: 1.3;
margin-left: 12px;
}
.site-state-item {
padding: 0px 15px;
border-left: 1.5px solid rgb(161, 102, 171);
}
// 侧栏RSS按钮样式
.feed-link {
margin-top: 15px;
margin-left: 7px;
}
.feed-link a {
color: rgb(255, 255, 255);
border: 1px solid rgb(158, 158, 158) !important;
border-radius: 15px;
}
.feed-link a:hover {
background-color: rgb(161, 102, 171);
}
.feed-link a i {
color: rgb(255, 255, 255);
}
// 侧栏社交链接
.links-of-author {
margin-top: 0px;
}
// 侧栏友链标题
.links-of-blogroll-title {
margin-bottom: 10px;
margin-top: 15px;
color: rgba(7, 179, 155, 0.75);
margin-left: 6px;
font-size: 15px;
font-weight: bold;
}
// 侧栏超链接样式(友链的样式)
.sidebar a {
color: #ccc;
border-bottom: none;
}
.sidebar a:hover {
color: rgb(255, 255, 255);
}
// 自定义的侧栏时间样式
#days {
display: block;
color: rgb(7, 179, 155);
font-size: 13px;
margin-top: 15px;
}
// 侧栏目录链接样式
.post-toc ol a {
color: rgb(7, 179, 155);
border-bottom: 1px solid rgb(96, 125, 139);
}
.post-toc ol a:hover {
color: rgb(161, 102, 171);
border-bottom-color: rgb(161, 102, 171);
}
// 侧栏目录链接样式之当前目录
.post-toc .nav .active > a {
color: rgb(161, 102, 171);
border-bottom-color: rgb(161, 102, 171);
}
.post-toc .nav .active > a:hover {
color: rgb(161, 102, 171);
border-bottom-color: rgb(161, 102, 171);
}
/* 修侧栏目录bug,如果主题配置文件_config.yml的toc是wrap: true */
.post-toc ol {
padding: 0px 10px 5px 10px;
}
/* 侧栏目录默认全展开,已注释
.post-toc .nav .nav-child {
display: block;
}
*/
/************************移动端样式*******************************/
@media (max-width: 1023px) {
.container {
background-color: rgba(0, 0, 0, 0);
}
.sidebar {
// box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.5);
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.feed-link {
display: none !important;
}
}
@media (max-width: 767px) {
.main {
padding-bottom: 120px;
}
.posts-expand {
margin: 0px;
padding-top: 10px;
}
.posts-expand .post-title {
font-size: 22px;
}
.posts-expand .post-meta {
font-size: 10px;
}
.post {
margin-bottom: 30px !important;
padding: 20px 15px 15px 15px !important;
}
.post-body h2, h3, h4, h5, h6 {
margin-left: -15px;
padding-left: 11px;
}
.posts-expand .post-tags {
margin-top: 10px;
}
.post-widgets {
margin-top: 10px;
}
.comments {
margin: 40px 0px 40px 0px !important;
}
.footer {
// box-shadow: 0px -5px 10px 0px rgba(0, 0, 0, 0.5);
}
}
.sidebar-active #sidebar-dimmer {
opacity: 0;
}
// 移动端左上角菜单按钮
.site-nav-toggle {
top: 35px;
left: 91px;
// background-color: #222;
}
.btn-bar {
background-color: rgb(255, 255, 255);
}
// 移动端菜单
@media (max-width: 767px) {
.menu {
text-align: center;
// box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
}
.site-nav {
top: initial;
background-color: rgba(255, 255, 255, 0.75);
border-top: none;
border-bottom: none;
position: relative;
z-index: 1024;
}
}
//移动端顶部
@media (max-width: 767px) {
.site-title {
font-size: 28px !important;
letter-spacing: 0px !important;
}
.site-subtitle{
letter-spacing: 0px !important;
padding-bottom: 0px !important;
}
.site-meta {
// box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
}
.menu .menu-item {
margin: 0px 10px !important;
}
}
关于 Git 的相关知识也可以看以下的视频:
https://youtu.be/FyAAIHHClqI
猴子都能懂的 GIT 入门:https://backlog.com/git-tutorial/cn/
+StackOverflow 上整理的一个资料大合集:https://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide
+Visual and interactive way to learn Git on the web:https://git.mo.mk/
+Learn Git Branching:https://learngitbranching.js.org/index.html
+Pro Git - http://git-scm.com/book https://git-scm.com/book/zh/v2
Pro Git 简体中文版 - http://iissnan.com/progit/
Git权威指南 | 国内一位大牛写的介绍 Git 用法的开源书籍,很详实
+Git tutorial — A Beginner’s Guide to the most Frequently used Git Commands
+http://marklodato.github.io/visual-git-guide/index-zh-cn.html
]]>其中,T(n)表示代码执行的时间;n表示数
互联网之子
犯罪现场调查-网络
-暗海
-亿万
-从0到1
-《 Smart People Should Build Things 》
- - - -走进我的交易室
-富兰克林自传
-随机漫步的傻瓜
-一些必读优秀书籍清单
-蔡康永的说话之道
人性的弱点
追风筝的人
魔鬼经济学1
魔鬼经济学2
富爸爸穷爸爸
与巴菲特共进午餐
聪明的投资者
投资中最简单的事
理财达人修炼手册
从零开始稳稳赚
数字黄金
有钱人想的和你不一样
刻意练习
从优秀到卓越
学会提问
跟各国人都可以聊得来
故事思维
学习之道
创新公司:皮克斯的启示
把握现实
精进
沃顿商学院最受欢迎的谈判课
跟任何人都聊得来
沟通的艺术
高难度谈话
情商
好好说话
心动开关
乔布斯的演讲
像TED一样演讲
比从前更好
高效的秘密
人性的优点
时间管理手账
冲破黑暗
成长到死
习惯的力量
用毅力走向成功
不在乎的人生魔法
另一种选择
这么慢,那么美
怦然心动的人生整理魔法
丹麦人为什么幸福
非凡头脑的秘诀
清醒地活
安身之所
追求的快乐
花钱带来的幸福感
睡眠革命
断舍离
怎样才能吃得更健康
今天的东西为啥不好吃
完美饮食
第三个餐盘
营养补充剂真是神药?
战胜饥饿感
轻断食
食疗圣经
蓝色地带
大脑塑造者
爱情数学
爱的五种语言
亲爱的,我们别吵了
关于爱情的30堂课
随性所欲
约会心理学
亲密关系
男人来自火星 女人来自金星
止不住的单相思
爱的艺术
霍乱时期的爱情
百年孤独
情人
一九八四
洛丽塔
傲慢与偏见(上)
傲慢与偏见(下)
不能承受的生命之轻(上)
不能承受的生命之轻(下)
第二十二条军规
罪与罚(上)
罪与罚(下)
小炸弹联盟
北方海域
地下铁道
素食主义者
战争与松脂
黑金政治(上)
黑金政治(下)
在存在主义咖啡馆(上)
在存在主义咖啡馆(下)
被驱逐者
归去
在暗室中
莫斯科的绅士
乡下人的悲歌
当呼吸化为空气
双生梦魇
南瓜花
坠机之前
女孩与性
基因
实验室女孩
小而伟大的事
投资理财
-风险放在第一位
-《经济学原理》
-《金融炼金术》
-《富爸爸穷爸爸》
-《巴菲特致股东的信》
-1.入门篇
-《小狗钱钱》
-《富爸爸穷爸爸》
-《财务自由之路》
-《邻家的百万富翁》
-《巴比伦最富有的人》
-2.初级篇
-《财报就像一本故事书》
-《手把手教你读财报》
-《投资中最简单的事》
-3.进阶篇
-《投资中最重要的事》
-《巴菲特的护城河》
-《学习估值,轻松投资》
-《指数基金投资指南》
-4.高级篇
-《穷查理宝典》
-《怎样选择成长股》
-《彼得林奇的成功投资》
-5.终极篇
-《证券分析》
-《聪明的投资者》
-《估值》
-《价值评估》
-苹果编码规范
-Rework
-更新库:sudo apt update;
更新软件:sudo apt upgrade;
下载vim:sudo apt install vim;
下载gcc:sudo apt install gcc
下载gdb:sudo apt install gdb
为了方便写代码,在编辑器中加入行号:cd etc/wim;sudo vi vimrc什么都不要改,只在最后一行加上set nu;保存退出。
-打开terminal
-vi hello.c
按i进入输入模式
-
|
按esc推出输入模式,保存退出
-编译hello.c
-gcc -o hello hello.c -Wall
执行
-./hello
$ vi main.c |
将源文件编译成目标文件需要使用-c
选项,例如:
gcc -c hello.c
就将 hello.c 编译为 hello.o。
-一个源文件会生成一个目标文件,多个源文件会生成多个目标文件,源文件数目和目标文件数目是一样的。通常情况下,默认的目标文件名字和源文件名字是一样的。
- 如果希望自定义目标文件的名字,那么可以使用-o
选项,例如:
gcc -c hello.c -o a.o
这样生成的目标文件的名字就是 a.o。
-在gcc
命令后面紧跟目标文件的名字,就可以将目标文件链接成为可执行文件,例如:
gcc hello.o
就将 hello.o 链接为 a.out。
-在gcc
命令后面紧跟源文件名字或者目标文件名字都是可以的,gcc
命令能够自动识别到底是源文件还是目标文件:如果是源文件,那么要经过编译和链接两个步骤才能生成可执行文件;如果是目标文件,只需要链接就可以了。
使用-o
选项仍然能够自定义可执行文件的名字,例如:
gcc hello.o -o hello.out
这样生成的可执行文件的名字就是 hello.out。
-]]>到现在为止,我目前所使用的云服务、订阅:
-服务 | -类别 | -价格 | -备注 | -
---|---|---|---|
云服务器 | -云服务 | -17 $ / 年 | -仅用于一些自动化脚本以及网站首页 | -
YouTube Premium | -视频 | -40 ¥ / 年 | -印度区合租 | -
代理网络 | -工具 | -100 $ / 年 | -- |
ChatGPT Plus | -工具 | -20 $ / 月 | -- |
某电商平台会员 | -云服务 | -40 $ / 月 | -- |
地址服务 | -服务 | -9 $ / 月 | -- |
某 YouTube 博主会员 | -- | 350 ¥ / 年 | -- |
若干域名 | -- | 30 $ / 年 | -- |
- | - | - |
按照美元汇率为 7 算,每年花费 977*7+390=7229 人民币。
-这么一算,总价还不少😮
-多说一句,YouTube premium 最值得了,YouTube 不多说了,还可以使用 YouTube music,一个会员,两个服务,非常划算。
+暗海
+亿万
+从0到1
+《 Smart People Should Build Things 》
+ + + +走进我的交易室
+富兰克林自传
+随机漫步的傻瓜
+一些必读优秀书籍清单
+蔡康永的说话之道
人性的弱点
追风筝的人
魔鬼经济学1
魔鬼经济学2
富爸爸穷爸爸
与巴菲特共进午餐
聪明的投资者
投资中最简单的事
理财达人修炼手册
从零开始稳稳赚
数字黄金
有钱人想的和你不一样
刻意练习
从优秀到卓越
学会提问
跟各国人都可以聊得来
故事思维
学习之道
创新公司:皮克斯的启示
把握现实
精进
沃顿商学院最受欢迎的谈判课
跟任何人都聊得来
沟通的艺术
高难度谈话
情商
好好说话
心动开关
乔布斯的演讲
像TED一样演讲
比从前更好
高效的秘密
人性的优点
时间管理手账
冲破黑暗
成长到死
习惯的力量
用毅力走向成功
不在乎的人生魔法
另一种选择
这么慢,那么美
怦然心动的人生整理魔法
丹麦人为什么幸福
非凡头脑的秘诀
清醒地活
安身之所
追求的快乐
花钱带来的幸福感
睡眠革命
断舍离
怎样才能吃得更健康
今天的东西为啥不好吃
完美饮食
第三个餐盘
营养补充剂真是神药?
战胜饥饿感
轻断食
食疗圣经
蓝色地带
大脑塑造者
爱情数学
爱的五种语言
亲爱的,我们别吵了
关于爱情的30堂课
随性所欲
约会心理学
亲密关系
男人来自火星 女人来自金星
止不住的单相思
爱的艺术
霍乱时期的爱情
百年孤独
情人
一九八四
洛丽塔
傲慢与偏见(上)
傲慢与偏见(下)
不能承受的生命之轻(上)
不能承受的生命之轻(下)
第二十二条军规
罪与罚(上)
罪与罚(下)
小炸弹联盟
北方海域
地下铁道
素食主义者
战争与松脂
黑金政治(上)
黑金政治(下)
在存在主义咖啡馆(上)
在存在主义咖啡馆(下)
被驱逐者
归去
在暗室中
莫斯科的绅士
乡下人的悲歌
当呼吸化为空气
双生梦魇
南瓜花
坠机之前
女孩与性
基因
实验室女孩
小而伟大的事
投资理财
+风险放在第一位
+《经济学原理》
+《金融炼金术》
+《富爸爸穷爸爸》
+《巴菲特致股东的信》
+1.入门篇
+《小狗钱钱》
+《富爸爸穷爸爸》
+《财务自由之路》
+《邻家的百万富翁》
+《巴比伦最富有的人》
+2.初级篇
+《财报就像一本故事书》
+《手把手教你读财报》
+《投资中最简单的事》
+3.进阶篇
+《投资中最重要的事》
+《巴菲特的护城河》
+《学习估值,轻松投资》
+《指数基金投资指南》
+4.高级篇
+《穷查理宝典》
+《怎样选择成长股》
+《彼得林奇的成功投资》
+5.终极篇
+《证券分析》
+《聪明的投资者》
+《估值》
+《价值评估》
+苹果编码规范
+Rework
+其中,T(n)表示代码执行的时间;n表示数
到现在为止,我目前所使用的云服务、订阅:
+服务 | +类别 | +价格 | +备注 | +
---|---|---|---|
云服务器 | +云服务 | +17 $ / 年 | +仅用于一些自动化脚本以及网站首页 | +
YouTube Premium | +视频 | +40 ¥ / 年 | +印度区合租 | +
代理网络 | +工具 | +100 $ / 年 | ++ |
ChatGPT Plus | +工具 | +20 $ / 月 | ++ |
某电商平台会员 | +云服务 | +40 $ / 月 | ++ |
地址服务 | +服务 | +9 $ / 月 | ++ |
某 YouTube 博主会员 | ++ | 350 ¥ / 年 | ++ |
若干域名 | ++ | 30 $ / 年 | ++ |
+ | + | + |
按照美元汇率为 7 算,每年花费 977*7+390=7229 人民币。
+这么一算,总价还不少😮
+多说一句,YouTube premium 最值得了,YouTube 不多说了,还可以使用 YouTube music,一个会员,两个服务,非常划算。
+]]>zh.javascript.info
《现代 JavaScript 教程》是以最新的 JavaScript 标准为基准的教程。通过简单但详细的内容,讲解从基础到高阶的 JavaScript 相关知识,能够帮助初中级前端提升 JavaScript 等前端技术水平。在线阅读
Towards the end of the term, I took a project that requires GUI, and my data structures projects also need to use GUI. After search for common framework of C++ GUI, I choose QT finally.
+When installing QT for the first time, msvc2017 was not checked, I try to update but failed, then I reinstalled it.
+Next, follow the requirements step by step, search immediately when I don’t understand. (ps. stack overflow and stack exchange is a good website.)
+The project needs to encapsulate functions into dll, at first I wrote in on VS, but I found it diffiult to use on qt, so I give up it, finally I generated dll on QT. This is what I spend most of time.
+Everything is easy after that.
+ +]]>其中,T(n)表示代码执行的时间;n表示数
zh.javascript.info
《现代 JavaScript 教程》是以最新的 JavaScript 标准为基准的教程。通过简单但详细的内容,讲解从基础到高阶的 JavaScript 相关知识,能够帮助初中级前端提升 JavaScript 等前端技术水平。在线阅读
Towards the end of the term, I took a project that requires GUI, and my data structures projects also need to use GUI. After search for common framework of C++ GUI, I choose QT finally.
-When installing QT for the first time, msvc2017 was not checked, I try to update but failed, then I reinstalled it.
-Next, follow the requirements step by step, search immediately when I don’t understand. (ps. stack overflow and stack exchange is a good website.)
-The project needs to encapsulate functions into dll, at first I wrote in on VS, but I found it diffiult to use on qt, so I give up it, finally I generated dll on QT. This is what I spend most of time.
-Everything is easy after that.
- -]]>其中,T(n)表示代码执行的时间;n表示数
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
-制作原型或学习:
-<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> |
生产环境::
-<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script> |
开发版本(包含完整的警告和调试模式)
-生产版本(删除了警告,33.30KB min+gzip)
-在用 Vue 构建大型应用时推荐使用 NPM 安装[1]。NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用。同时 Vue 也提供配套工具来开发单文件组件。
-最新稳定版 |
其中,T(n)表示代码执行的时间;n表示数
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
+制作原型或学习:
+<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> |
生产环境::
+<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script> |
开发版本(包含完整的警告和调试模式)
+生产版本(删除了警告,33.30KB min+gzip)
+在用 Vue 构建大型应用时推荐使用 NPM 安装[1]。NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用。同时 Vue 也提供配套工具来开发单文件组件。
+最新稳定版 |