一直以来我都想创建一个单独的r-finance网站来向国内的人推广R语言在金融领域的知识和实践。之前苦于没有精力和时间以及缺乏建设网站的经验没能去做。毕竟作为财务管理出身的人,虽然一直以来也会跟R、Python、SQL等编程语言打交道,但从未与搭建网站单刀相对。
转机就在最近。我在学习Hugo搭建网站的过程中,发现github和netlify结合可以很便捷地搭建网站。加之Hugo提供的主题非常丰富,完全可以满足我的网站需求。无需再等,我决定尝试一下。
这次搭建网站我使用的基础工具是Rstudio以及R包bolgdown。有了工具之后,我开始在脑海中构思网站的结构,并在茫茫模板之海中打捞自己中意的模板。终于天不负我,我找到一个叫 mainroad的主题,简介大方,十分贴合我的想象。
以下是我的建站步骤,十分丝滑。
创建和克隆github库
我先在github上建立一个名为r-finance的库。创建库时选择自动生成readme文件、gitignore文件和license文件,同时选择master作为默认分支。之后,在Rstudio中操作克隆项目到本地。具体操作为:
Rstudio ->> tools ->> Terminal ->> New Terminal
输入以下命令将r-finance库克隆到本地。
git clone https://github.com/dengyishuo/r-finance.git
进入r-finance目录,设置.gitignore文件。这个文件作用极大,可以帮助我们忽略一些不必要的文件,避免提交到github上。以下是我设置的.gitignore文件内容:
public/
resources/
.hugo_build.lock
# History files
.Rhistory
.Rapp.history
*.Rproj
.Rprofile
# Session Data files
.RData
.RDataTmp
# User-specific files
.Ruserdata
# Output files from R CMD check
/*.Rcheck/
# RStudio files
.Rproj.user/
# knitr and R markdown default cache directories
*_cache/
/cache/
# R Environment Variables
.Renviron
如果未安装blogdown包的话,先在Rstudio中安装blogdown包,命令如下:
install.packages("blogdown")
接下来在Rstudio中,将r-finance文件夹设定为当前工作目录,再使用blogdown包创建一个网站。命令如下:
blogdown::new_site()
在bash中使用以下命令更新主题为mainroad:
cd r-finance
# 更新主题为子模块
git submodule add https://github.com/vimux/mainroad.git themes/mainroad
# 查看子模块状态
git submodule status
# 查看子模块内容
git cat .gitsubmodules
# 如果有异常,重新初始化
# git submodule update --init --recursive
# 删除旧主题
rm -rf themes/hugo-lithium
#删除mainroad主题内部的 .git 文件夹
rm -rf themes/mainroad/.git
# 将主题添加到git中
git add themes/mainroad
# commit 更改
git commit -m "fix:include theme direct"
# 将更改推送到github
git push origin master
配置config.toml
在r-finance目录下创建一个config.toml文件,内容如下:
baseurl = "https://rfinance.org.cn"
title = "R-Finance中国"
languageCode = "zh-CN"
theme = "mainroad"
disqusShortname = "" # Enable comments by entering your Disqus shortname
googleAnalytics = "" # Enable Google Analytics by entering your tracking id
[pagination]
pagerSize = 10 # Number of posts per page
[params]
description = "rfinance's Personal blog about everything" # Description of your site
opengraph = true
twitter_cards = false
readmore = false # Show "Read more" button in list if true
authorbox = true
pager = true
post_meta = ["date", "categories"] # Order of post meta information
mainSections = ["post", "docs"]
ignoreLogs = ["warning-goldmark-raw-html"]
[params.logo]
subtitle = "Just another site" # Logo subtitle
[params.sidebar]
home = "right" # Configure layout for home page
list = "right" # Configure layout for list pages
single = "right" # Configure layout for single pages
# Enable widgets in given order
widgets = ["search", "recent", "categories", "taglist"]
[params.widgets]
recent_num = 5 # Set the number of articles in the "Recent articles" widget
tags_counter = false # Enable counter for each tag in "Tags" widget (disabled by default)
[params.author]
name = "rfinance"
bio = "rfinnace's true identity is unknown. Maybe he is a successful blogger or writer. Nobody knows it."
avatar = "img/avatar.png"
验证网站
下面来验证hugo是否可以正确生成网站,命令如下:
rm -rf public
git submodule update --init --recursive
hugo --gc --minify
如果一切顺利,就可以将文件推送至github了。
推送到github
推送至github之前,先将r-finance目录下的所有文件添加到git中,命令如下:
git add .
git commit -m "build website"
git push origin master
配置netlify
在r-finance目录下配置netlify.toml,内容如下:
[build]
command = 'git submodule update --init --recursive && hugo --gc --minify'
publish = 'public'
[build.environment]
HUGO_VERSION = '0.147.7'
HUGO_ENV = 'production'
接下来在netlify上创建一个新的站点。具体步骤:
- 登陆自己的账号
- 选择Add new project
- 选择Import an existing project
- 选择github作为代码源
- 选择r-finance库
- 给项目取一个名字:r-finance(这个名字将决定网站在在netlify上的默认网址:https://r-finance.netlify.app)
- 选择master分支。发布目录为
public。
接下来在netlify上配置构建命令和发布目录,构建命令为:
git submodule update --init --recursive && hugo --gc --minify
配置环境变量,添加变量:
HUGO_VERSION = '0.147.7'
HUGO_ENV = 'production'
选择 deploy 即可。此时已经可以用https://r-finance.netlify.app 访问网站了。
设置个性化域名
去阿里云购买一个自己中意的域名,我购买的域名是rfinance.org.cn。接下来在阿里云控制台中进入域名解析设置:
选择快速添加解析:
- 您的业务需求是:网站域名解析到另外的目标域名
- 请选择网站域名:
- x-quant.com.cn(对应设置“@”主机记录)
- www.x-quant.com.cn(对应设置“www”主机记录)
- 请选择目标域名:r-finance.netlify.app
确定即可。
接下来在netlify上配置自定义域名。步骤为:
- 登录netlify,进入r-finance项目
- 点击Set up your project
- 点击Set up a custom domain
- 点击domain you already own
- 输入你的域名(如rfinance.org.cn)
- 点击Verify domain,将域名添加到netlify的域名列表中。
接下来在netlify上配置SSL证书,选择Let’s Encrypt证书即可。
等待一些时间,网站就可以正常访问了。