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。
- content 目录放 markdown 文章,data 目录放数据,layouts 目录放网站模板文件,static 目录放图片、css、js 等静态资源,themes 命令放下载的主题。
- tree命令一定要运行,否则hugo new about.md命令建立的about.md将不在正确位置。
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 //初始化仓库
git add .(文件name) //添加文件到本地仓库
git commit -m "first commit" //添加文件描述信息
git remote add origin + 远程仓库地址 //链接远程仓库,创建主分支
git pull origin master // 把本地仓库的变化连接到远程仓库主分支
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 关于挂载图片
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