latex实现及hugo

最近在学机器学习算法,其中涉及到大量数学公式。而我之前用的博客工具是hexo portable无法用latex编辑公式,很不方便。就好像古代研究语音的没有方便的工具表示语音,只能用反切,切来切去就是搞不清楚是什么音,不能忍。 粗略一看hugo是能实现latex的。

关于hugo的使用,许多博客,但官方的安装使用指导其实见于HUGO-Quick Start等。

博客内容的网页 推送博客本地文件至互联网等需要git,可从git官网下载,但由于需翻墙等,也可从waylau贡献的国内源-Git for Windows 国内下载站下载。 git安装参考田闯-Git安装教程 (windows)

评论需用到leancloud的服务,已注册,注册邮箱为我outlook邮箱,密码为常用密码尾位改为大写。 评论功能就不能按hugo官网,或可按Hugo加入评论的功能。 评论需要leancloud或disqus的服务(均已成功注册),其中disqus为hugo推荐并有设置指导,奈何需要翻墙。leancloud暂不知道如何设置。 评论功能咱作罢。

1 步骤

1.1 安装hugo

HUGO-Install Hugo,各系统平台均可于Hugo Releases下载系统对应的hugo二进制文件, 其是免安装的,只需将hugo二进制文件所在目录加入path系统变量(如我系统是windows64位系统,下载对应文件并放在d:\hugo,则将d:\hugo放入系统变量path)。

hugo version能正常显示信息说明hugo已安装成功。

1.2 静态网址存放处(site后,比如我准备存放在d盘software文件夹下建立chen-feiyang.github.io文件夹作为静态网址存放处。)

d:

cd software

hugo new site chen-feiyang.github.io

cd chen-feiyang.github.io

tree

注: * 1. config.toml 是网站的配置文件,hugo 同时还支持 YAML 格式的 config.yaml 或 JSON 格式的 config.json。

1.3 建立md文件,未来应将md文件置于post文件夹下

hugo new about.md

hugo new post/first.md

确保draft: false,这样才能正确显示。

1.4 设置主题

###git submodule add https://github.com/damiencaselli/hugo-journal.git themes/journal

cd themes

git clone https://github.com/vjeantet/hugo-theme-casper casper

配置config.toml文件中务必theme = "casper",这样本地浏览器方能正确显示。

BaseUrl= "https://chen-feiyang.github.io/"

1.5 本地测试

cd..

hugo server -w casper

服务器启动后访问http://localhost:1313/ 访问网站,发现问题可以及时修改。

1.6 发布到github

hugo -t casper

Hugo将编译所有文件并输出到public目录,你需要在github上创建repository,名字就是<你的用户名>.github.io, 创建完后,返回你本地命令行,进入public目录,执行以下命令:

cd public

git init

git add .

git commit -m "Initial commit."

git remote add origin git@github.com:chen-feiyang/chen-feiyang.github.io.git

git pull origin master

git push -u origin master

稍等片刻后,打开<你的用户名>.github.io网址,就可以看到你的个人网站了。

【 正确步骤: 1. git init //初始化仓库

  1. git add .(文件name) //添加文件到本地仓库

  2. git commit -m "first commit" //添加文件描述信息

  3. git remote add origin + 远程仓库地址 //链接远程仓库,创建主分支

  4. git pull origin master // 把本地仓库的变化连接到远程仓库主分支

  5. git push -u origin master //把本地仓库的文件推送到远程仓库

OK 搞定,回家吃饭!! 】

2 问题排查

2.1 最后一步,若出现如下提示的解决办法。

D:\software\chen-feiyang.github.io\public>git push -u origin master To github.com:chen-feiyang/chen-feiyang.github.io.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:chen-feiyang/chen-feiyang.github.io.git' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.

最后一步,若出现上面提示可强推,即使用如下语句。 git push -f origin master 】

2.2 关于挂载图片

Figure 1-1. classic machine mla位于static文件夹之下。

2.3 关于latex

发现要实现latex还是需要设置的。

参考在Hugo中使用MathJax,将如下代码:

<script type="text/javascript"
        async
        src="https://cdn.bootcss.com/mathjax/2.7.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
MathJax.Hub.Config({
  tex2jax: {
    inlineMath: [['$','$'], ['\\(','\\)']],
    displayMath: [['$$','$$'], ['\[\[','\]\]']],
    processEscapes: true,
    processEnvironments: true,
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
    TeX: { equationNumbers: { autoNumber: "AMS" },
         extensions: ["AMSmath.js", "AMSsymbols.js"] }
  }
});

MathJax.Hub.Queue(function() {
    // Fix <code> tags after MathJax finishes running. This is a
    // hack to overcome a shortcoming of Markdown. Discussion at
    // https://github.com/mojombo/jekyll/issues/199
    var all = MathJax.Hub.getAllJax(), i;
    for(i = 0; i < all.length; i += 1) {
        all[i].SourceElement().parentNode.className += ' has-jax';
    }
});
</script>

<style>
code.has-jax {
    font: inherit;
    font-size: 100%;
    background: inherit;
    border: inherit;
    color: #515151;
}
</style>

放入新建的layouts/partials/mathjax.html中,同时,在正在\chen-feiyang.github.io\themes\casper\layouts\partials\header.html(如,此刻我正在使用themes为casper)的最后一行后加上如下语句:

{{ partial "mathjax.html" . }}

(c)(r)等转义问题 要禁用全局的这种转义,也可以在config.toml中添加以下配置,禁用该功能。

[blackfriday]
smartypants = false