Total Pageviews

Thursday, 19 March 2020

一个基于rust的静态博客程序-zola

登陆linux vps.首先安装rust环境,然后,
git clone https://github.com/getzola/zola
cd zola
cargo build --release
完成后,可执行文件zola会出现在当前目录下的target/release目录。
target/release/zola -h

root@racknerd-626f077:~/zola# ls target/release/
build  deps  examples  incremental  zola  zola.d
root@racknerd-626f077:~/zola# export PATH=$PATH:/root/zola/target/release
root@racknerd-626f077:~/zola# which zola
/root/zola/target/release/zola
root@racknerd-626f077:~/zola# echo 'export PATH=$PATH:/root/zola/target/release' >> /etc/profile && source /etc/profile
root@racknerd-626f077:~/zola# cd
root@racknerd-626f077:~# zola init zola-site
(此命令会在当前目录下,生成zola-site目录
Welcome to Zola!
Please answer a few questions to get started quickly.
Any choices made can be changed by modifying the `config.toml` file later.
> What is the URL of your site? (https://example.com): http://vps-public-ip:2155
> Do you want to enable Sass compilation? [Y/n]: y
> Do you want to enable syntax highlighting? [y/N]: n
> Do you want to build a search index of the content? [y/N]: y

Done! Your site was created in /root/zola-site

Get started by moving into the directory and using the built-in server: `zola serve`
Visit https://www.getzola.org for the full documentation.
root@racknerd-626f077:~# cd zola-site
root@racknerd-626f077:~/zola-site# ls
config.toml  content  sass  static  templates  themes
root@racknerd-626f077:~/zola-site# ls
config.toml  content  sass  static  templates  themes
root@racknerd-626f077:~/zola-site# nano config.toml
(base_url 的值设为"/"
theme的值设为"even" )
root@racknerd-626f077:~/zola-site# zola build
(此即生成/更新静态网站的根目录的命令)
Building site...
Checking all internal links with anchors.
> Successfully checked 0 internal link(s) with anchors.
-> Creating 0 pages (0 orphan) and 0 sections
Done in 29ms.
root@racknerd-626f077:~/zola-site# ls
config.toml  content  public  sass  static  templates  themes
root@racknerd-626f077:~/zola-site# ls public
404.html            index.html  search_index.en.js
elasticlunr.min.js  robots.txt  sitemap.xml
root@racknerd-626f077:~/zola-site# cd public
root@racknerd-626f077:~/zola-site/public# python3 -m http.server 2155

访问http://vps-public-ip:2155 , 即可看到网站效果。不过因为没有设置theme,网站十分简陋。下面来设置theme:
root@racknerd-626f077:~/zola-site/public# cd ..
root@racknerd-626f077:~/zola-site# ls
config.toml  content  public  sass  static  templates  themes
root@racknerd-626f077:~/zola-site# cd themes
root@racknerd-626f077:~/zola-site/themes# git clone https://github.com/getzola/even
root@racknerd-626f077:~/zola-site/themes# cd ..
root@racknerd-626f077:~/zola-site# nano config.toml
root@racknerd-626f077:~/zola-site# cat config.toml
# The URL the site will be built for
base_url = "http://zl.briten.top"

# Whether to automatically compile all Sass files in the sass directory
compile_sass = true

# Whether to build a search index to be used later on by a JavaScript library
build_search_index = true

theme = "even"

[markdown]
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = false

[extra]
# Put all your custom variables here
even_menu = [
    {url = "$BASE_URL", name = "Home"},
    {url = "$BASE_URL/categories", name = "Categories"},
    {url = "$BASE_URL/tags", name = "Tags"},
    {url = "$BASE_URL/about", name = "About"},
]

taxonomies = [
    # You can enable/disable RSS
    {name = "categories", feed = true},
    {name = "tags", feed = true},
]
root@racknerd-626f077:~/zola-site#

新建源帖:
root@racknerd-626f077:~/zola-site# cd content
root@racknerd-626f077:~/zola-site/content# nano _index.md
root@racknerd-626f077:~/zola-site/content# cat _index.md
显示:
+++
paginate_by = 5
sort_by = "date"
+++
(这个_index.md文件起到分页的作用)
root@racknerd-626f077:~/zola-site/content# nano test.md
root@racknerd-626f077:~/zola-site/content# cat test.md
显示:
---
title: 测试
date: 2025-02-15 15:39:00
---

这是测试,

看看如何?
root@racknerd-626f077:~/zola-site/content# cd ..
root@racknerd-626f077:~/zola-site# zola build
root@racknerd-626f077:~/zola-site# cd ~
root@racknerd-626f077:~# mv ~/zola-site/ /usr/local/
root@racknerd-626f077:~# cd /usr/local/zola-site/
root@racknerd-626f077:/usr/local/zola-site# 
root@racknerd-626f077:/usr/local/zola-site# ls
config.toml  content  public  sass  static  templates  themes
root@racknerd-626f077:/usr/local/zola-site# zola build
Building site...
Checking all internal links with anchors.
> Successfully checked 0 internal link(s) with anchors.
-> Creating 8 pages (0 orphan) and 0 sections
Done in 214ms.

root@racknerd-626f077:/usr/local/zola-site# ls
config.toml  content  public  sass  static  templates  themes
root@racknerd-626f077:/usr/local/zola-site# cd public
root@racknerd-626f077:/usr/local/zola-site/public# ls
404.html  early-spring-of-linling  index.html  pg                  site.css     you-ji
a-stone   elasticlunr.min.js       mexico      robots.txt          sitemap.xml  yz
ce        even.js                  page        search_index.en.js  test
root@racknerd-626f077:/usr/local/zola-site/public#
可见/usr/local/zola-site/public目录就是静态网站的根目录,你可以在nginx.conf中,绑定域名到该目录。
之所以在nginx.conf中,绑定域名到该目录而非~/zola-site/public,是因为nginx认为serve root目录下的子目录是
不安全的,到时候,访问域名,访问不了网站,显示Forbidden. 所以只好移动~/zola-site目录到/usr/local/下。

访问http://zl.briten.top,即可看到网站效果:

root@racknerd-626f077:/usr/local/zola-site/public# tar cvf zola-site.tar.gz .
( 会在当前目录下,生成zola-site.tar.gz文件)
root@racknerd-626f077:/usr/local/zola-site/public# python3 -m http.server 2315
在本地机器的浏览器里。访问vps-public-ip:2315/zola-site.tar.gz ,下载该zola-site.tar.gz,下载下来后,解压,
得到zola-site目录。然后访问app.netlify.com/drop ,把zola-site目录拖放到app.netlify.com/drop页面所显示的圆圈
里面,进行上传,然后我得到网址https://bucolic-starlight-4fd9ff.netlify.app/

推送public 目录的内容到github pages:
root@racknerd-626f077:~/zola-site/public# git init
root@racknerd-626f077:~/zola-site/public# git add .
root@racknerd-626f077:~/zola-site/public# git commit -m 'xx'
root@racknerd-626f077:~/zola-site/public# git remote add xyza git@github.com:briteming/zola-even
root@racknerd-626f077:~/zola-site/public# git push xyza master
显示:
git@github.com: Permission denied (publickey).
fatal: 无法读取远程仓库。
请确认您有正确的访问权限并且仓库存在。
(解决办法:运行ssh-keygen -t rsa -C "你的email地址"
复制所生成的id_rsa.pub的内容,添加到这里:https://github.com/settings/ssh/new ) 
root@racknerd-626f077:~/zola-site/public# git push xyza master 
枚举对象中: 29, 完成. 
对象计数中: 100% (29/29), 完成. 
使用 2 个线程进行压缩 
压缩对象中: 100% (20/20), 完成. 
写入对象中: 100% (29/29), 175.69 KiB | 3.82 MiB/s, 完成. 
总共 29(差异 7),复用 0(差异 0),包复用 0 
remote: Resolving deltas: 100% (7/7), done. 
To github.com:briteming/zola-even 
 * [new branch]      master -> master 
(这次运行成功)
root@racknerd-626f077:~/zola-site/public# 
root@racknerd-626f077:~/zola-site/public# rm ~/.ssh/id_rsa.pub

项目地址:
https://github.com/getzola/even
(另外2个 theme:

1. https://github.com/evjrob/zola-folio

Live Demo: https://zola-folio.pages.dev/ ,支持分页。

from https://www.getzola.org/themes/zola-folio/

2, https://github.com/cydave/zola-theme-papermod

Live Demo: https://cydave.github.io/zola-theme-papermod/, 支持分页。

from https://www.getzola.org/themes/papermod/ )


https://www.getzola.org/documentation/getting-started/installation/
----------------------------------------------------------------------------------------