0

Image Description

荆文征

Zhidu Inc.


你好,再见

一直都想给自己的也看增加一个目录,默认的hexo是有默认的目录登记的

官方示例 - toc

解析内容中的标题标签 (h1~h6) 并插入目录。

Hexo博客系统的核心支持生成目录(Table of Contents),生成目录之后,由于没有配置的时候,如果文章目录结构很大的话会出现问题。所以我希望增加一个滑动的时候,展开和隐藏目录结构的方法。这样也会显的非常酷炫=

接下来的代码多半都是在 NEXT HEXO THEME中获得的,在这里非常感谢作者,毕竟我第一个博客主题就是用的NEXT,只是又一次作者的某个版本修改的非常多,导致我的博客挂掉了… 我就决定要自己写一个模版,至少不要因为主题升级版本博客死掉了。

以前写过一篇文章,但是那个时候感觉是很茫然,不知道为什么garde配置文件为什么这样子,不明白为什么这样设置,虽然最后也连接到了数据库,完成了增删改查,但是和没学的区别也不会很大。今天我打算好好端正我的态度,一步一步的来学习。

创建一个SpringBoot 项目

接下来我们要开始开发Springboot项目了。

创建一个 Java 项目

本项目使用的第三方包依赖管理插件是 maven,为什么不使用 grade,emmm… 随便吧。这次就想用maven。

赞很多的教程中,我能看到的都是使用maven来创建项目,比如idea,和eclipse都有相关的步骤,选择这个选择那个的….我真的是….如果放在以前,我真的就按照这些步骤来了,现在有可能真的开发时间久了,并且开发IOS的时候 Cocoapods第三方管理,所有的项目最开始都是一清二白的,什么都没有,一步步填充的,所以下意识的我想就一个单纯的文件夹开始完成接下来的教程。

今天是上班的第一天,来到公司之后学习了RSA算法之后,就想好好的写一篇关于rsa的文章,但是遇到的第一个问题就是数据公式展示的问题。

在展示问题上无非就是MathJax和LaTex两种数学公式方法。

我们现在来说说如何在Hexo中展示数学公式吧。我们使用的Hexo的第三方框架 Hexo-Math.除了引入这个框架之外还需要引入

extern与static用法

c/c++ 中的 Static

在C语言中,static可以用来修饰局部变量,全局变量以及函数。在不同的情况下static的作用不尽相同。

在C++中static还具有其它功能,如果在C++中对类中的某个函数用static进行修饰,则表示该函数属于一个类而不是属于此类的任何特定对象;如果对类中的某个变量进行static修饰,表示该变量为类以及其所有的对象所有。它们在存储空间中都只存在一个副本。可以通过类和对象去调用。对于静态成员函数,只能访问静态成员函数和静态成员变量,不能访问非静态成员函数或者变量。

c/c++ 中的 extern

在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。

在上面的例子中可以看出,在file2中如果想调用file1中的变量a,只须用extern进行声明即可调用a,这就是extern的作用。在这里要注意extern声明的位置对其作用域也有关系,如果是在main函数中进行声明的,则只能在main函数中调用,在其它函数中不能调用。其实要调用其它文件中的函数和变量,只需把该文件用#include包含进来即可,为啥要用extern?因为用extern会加速程序的编译过程,这样能节省时间。

在C++中extern还有另外一种作用,用于指示C或者C++函数的调用规范。比如在C++中调用C库函数,就需要在C++程序中用extern “C”声明要引用的函数。这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是C++和C程序编译完成后在目标代码中命名规则不同,用此来解决名字匹配的问题。

在学习oc 之前,c的基础非常的不好所以今天我学习以下 inline的意思,要不然每次看到的时候心里都觉的有东西没理解。以下的文章转载自C++中的inline用法

从今天开始修改以前的学习模式,以前的模式是说,没有学习完成之前不会写博客,从现在开始每次学习到了一些新的小知识也会记录下来

inline的作用

之前在学习递归函数的时候,就知道了,在大量的递归的时候,会创建很多个函数的对象,导致函数对象所占用的空间增大,让我们在使用的时候,看情况的使用,循环和递归两种方法来做事情。
而inline就是为了解决一些频繁使用的小函数大量消耗空间(斩内存)的问题,特别引入的修饰符,表示该函数为 内联函数。
占空间就是指放置程式的局部数据也就是函数内数据的内存空间,在系统下,栈内存是有限的,假如频繁大量的使用就会造成因栈空间不足所引起的程式错误,函数的死循环循环递归的最终结果就是导致栈内存空间枯竭。
下面我们来使用一段代码来解释什么事 内联函数。

好吧,程序员学习真的是没有尽头的,,这段时间都是在调整我的博客,在调整博客的过程中其中的一件事儿,我觉的引发了好多事儿,特此记录一下的。
写完了博客之后,发觉自己的博客没有绿色的小锁,所以想搞https 证书认证,可以查看我的另一篇博客 Hexo本地搜索,在搜索栏直接查看就好了的(搜索 “HEXO 本地搜索 或者本地搜索”)。
使用了Https之后导致,我的七牛云的资源,引入的时候因为七牛的图片都是http的,全部都加载失败了。我自然而然的觉的开启了七牛云的https就好了的,我就开始尝试去开启七牛云的https
两种方式,一种是在他们上面申请一个SSL证书,要不然就是上传自己的证书。(唉,知识真的非常浅薄,只知道https,但是不知道到底是怎么回事儿。
这个问题会专门写一篇文章去记录我学习https的过程。),虽然现在市面上的https证书都是需要收费的并且价格不菲,但是我还是找到了免费的证书。接下来就是上传了,,,,日! 我TM甚至不知道怎么上传。。。。

在做模块的时候,一般情况下我们都可以直接使用提供的变量以及一些方法完成整个博客的开发,当时当我们真的遇到比如我们需要修改我们的Table的样式的时候怎么办呢?

难道每次都等到页面加载完成之后,使用 js/Jquery 方式修改Class,接下来我们来整理几个我在项目中使用到的几个辅助类

修改TABLE && IMG样式

hexo.extend.filter.register('after_post_render', function(data){

    data.content = data.content.replace(/<table>/, '<table class = "table table-bordered">');
    data.content = data.content.replace(/<img/, '<img class = "g-pl-90" ');

    return data;
});

在上篇文章中,我们提到了SEO,其中还有一个是在url中尽量不存在中文。这里我们就来完成这个操作。

中文转换

在这里,我们可以根据时间,或者直接将标题生成为 散列值。随便的hash算法都可以实现,但是默写时候还是希望可以标题可以某些方面反映出来我们的内容。所以有两种方式,转换为英文,或者转换为拼音。当然为了防止重复的问题,我们可以增加一个时间戳或者时间的格式字符串来进行区分

转换为英文

首先,尝试转换标题为英文,毕竟显得高大上很多。 我们在 Hexo Plugins,搜索到了一个插件 hexo-translate-title. 哎呀,这多好啊,直接省略了所有的步骤,也不用开发轮子了。

当然机智的你,也发现了,要是这样就停止了,我们就不会有这么长的博文了。

好吧,毕竟现在的翻译不能保证都可以成功…所以还是放弃了,最终

我们写了博客,当然希望搜索引擎将我们收录更好了。在我朋友的建议下,我来看看这个关于Hexo的优化吧

关于 Https

好吧,我真的特别喜欢那些绿色的小锁,以及前面的一些字 比如 ‘Apple Inc.[US]’ 日日! 好帅啊!
好吧,最后实现了,虽然没有那些字,毕竟是免费的不计较的了。

CloudFlare 好吧 就是他,他其实也没有给你证书,只是给你做了一层 DNS 代理,这样子的话,你访问的时候会带上人家的 https 证书,当然你要是愿意支付每个月 5 美元的钱的话,是可以加小字的。。。没钱。。。