如何免费搭建一个酷炫的blog
如何免费搭建一个酷炫的blog
Hexo



Hexo是什么?
Hexo 快速、简洁且高效的博客框架
使用Hexo搭建博客的优势
- 超快速度
- Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。
- 支持 Markdown
- Hexo 支持 GitHub Flavored Markdown 的所有功能。
- 一键部署
- 只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台。
- 插件和可扩展性
- 强大的 API 带来无限的可能,与数种模板引擎(EJS,Pug,Nunjucks)和工具(Babel,PostCSS,Less/Sass)轻易集成
- 大量的主题
- 300多种主题套用,也可以自己diy
准备环境
//安装hexo
npm install -g hexo-cli
- 初始化
//初始化hexo
hexo init <folder> //hexo init woonsan
cd <folder> //cd woonsan
npm install
新建完成后,在路径下,会产生这些文件和文件夹:
├── _config.yml //配置文件
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts //帖子
└── themes
//启动hexo
hexo server
hexo本地博客搭建完成
然后我们就可以通过浏览器访问网址: 一般是 http://localhost:4000/
部署到远程
一:github
- 创建Github账号
- 新建一个仓库, 仓库名为:<Github账号名称>.github.io
woon5an.github.io - 将本地Hexo博客推送到GithubPages
- 安装hexo-deployer-git插件。
//安装插件 npm install hexo-deployer-git --save- 添加SSH key。
- 打开根目录下
_config.yml
# Deployment ## Docs: https://hexo.io/docs/deployment.html deploy: type: git repo: git@github.com:<Github账号名称>/<Github账号名称>.github.io.git branch: master- 推送到GithubPages。返回INFO Deploy done: git即成功推送
等待几分钟访问hexo g // hexo generate 生成静态文件 hexo d // hexo deploy 推送到远程<Github账号名称>.github.io.gitwoon5an.github.io ,到这里我们的个人博客本地和远程端都搭建完毕,后续可以根据自己的喜好去更改主题、引入一些古灵精怪的插件和定制化一些功能。Hexo博客搭建+主题优化+插件配置+常用操作+错误分析
一:gitlab(公司内网)
部署到github托管和部署到gitlab步骤大同小异,但是也有一些区别:
在github上部署博客需要我们在本地先生成好各种页面的静态文件hexo d,hexo g推送到远程github上就可以直接访问了。
而如果使用gitlab则需要在服务器端完成生成和部署两个阶段,所以需要在项目的根目录下添加一个gitlab-ci.yml脚本文件用来指示服务器怎么处理你提交的源文件也就是通过CI持续集成构建你的项目,可以参考hexo文档
- 创建Gitlab账号
- 新建一个project, project名为:<Gitlab账号名称>.gitlab.io
260404.gitlab.io - 在根目录目录下新建添加
.gitlab-ci.yml文件 - 启用
GitLabSettings -> CI / CD 中的 Shared Runners - 打开根目录下
_config.yml# Deployment ## Docs: https://hexo.io/docs/deployment.html deploy: type: git repo: git@10.2.7.13:<Gitlab账号名称>/<Gitlab账号名称>.gitlab.io.git branch: master - 根目录下添加文件
.gitlab-ci.ymlimage: node:10-alpine # use nodejs v10 LTS cache: paths: - node_modules/ before_script: - npm install hexo-cli -g - test -e package.json && npm install - hexo generate pages: script: - hexo generate artifacts: paths: - public only: - master - 初始化git和推送本地代码到仓库
git init // 如果想在内网部署把改成如下 git remote add origin git@10.2.7.13:260404/260404.gitlab.io.git git remote add origin git@gitlab.com:<Gitlab账号名称>/<Gitlab账号名称>.gitlab.io.git git add . git commit -m "init blog" git push -u origin master
将代码推送完成后我们到gitlab我们创建的project里CI/CD查看,显示已通过即可以在浏览器输入<Gitlab账号名称>.gitlab.io来访问你的博客。
两者最大的不同就是后者需要添加.gitlab-ci.yml文件,由于添加了ci持续集成的配置文件,gitlab帮我们去执行了hexo d、 hexo g,乍看一下好像是省略了两条指令。
但是需要我们自己去执行git add *、git commit -m 'sth'、git push 三条指令,简化了但又没有完全简化,不过好的一点是可以在commit的时候加上一些提交信息作为记录。
坑
我尝试在内网部署hexo到gitlab的时候,发现CI/CD的pipeline里的job一直处于pending状态提示Job is stuck.Check runners查看错误日志会提示job被卡住了,没有能用的runner去完成这个job ,补了一下gitlab的CI/CD相关知识,简单介绍一下CI/CD中的CI。
-
Gitlab-CI (Continuous Integration)持续集成
每次推送的代码到gitlab的时候触发一个配置好的脚本去构建和测试应用,从gitlab 8.0版本开始只要在项目仓库的根目录添加.gitlab-ci.yml文件,并且配置了Runner(运行器),那么每一次合并请求或者push都会触发CI的pipeline。 -
Gitlab-runner 运行器
runner是.gitlab-ci.yml脚本的运行器。GitLab Runner不需要也不建议和Gitlab安装在同一台机器上,考虑到GitLab Runner的资源消耗问题和安全问题,最好还是分开安装在两台机器上。 -
Pipelines 管道(流水线)
是持续集成、交付和部署的顶级组件,pipeline里会有很多stages阶段比如test、build,每个阶段里有一个或者多个任务jobs比如compile、test1,.gitlab-ci.yml定义了这个管道里有哪些阶段,每个阶段里做哪些任务
了解完以上的一些基础概念(文档指路)之后,大概明白知道为什么job一直被stuck,原因就是我们并没有去安装注册一个可用的runner提供给gitlba理所当然的没有active runner去执行这个job。
解决方案:安装gitlab-ci-multi-runner参考
简单来说就是需要一台资源充足且可用的服务器,添加Gitlab的官方源,安装,注册Runner,更新Runner。
总结
结论:从尝试到弃坑,我放弃了在内网部署,如果想部署到git就到外网部署到github吧
如何免费搭建免费使用一个酷炫的blog
notion
notion是一个款功能强大的个人笔记软件也有出色,又不仅仅是一个笔记软件,在用的过程中有点面向对象编程的感觉,“万物皆对象”,在页面里我们可以随意的去创造、拖拽、连接、套娃。
block
block是notion里最基本的对象,一个block可以是任何东西,可以是一个表格、一段文字、一段代码块、一张谷歌地图、一段视频甚至可以是一个页面。并且notion给用户的自由度很高,允许我们进行各种嵌套,所以我们可以进行各种套娃操作。
丰富的模板
notion提供了海量的模板,并且做了比较细的分类和介绍,你可以用notion写博客、写日记、强大的表格功能可以进行记账、日常todolist、旅行计划等等
多端使用
提供了mac & windows端的桌面应用、web端、ios & Android 端的手机app,非常便捷
个人免费
之前notion的免费版本只能使用1000个block和少量的模板,但是现在notion的个人免费版本已经不限block了
劣势
有些功能比如做旅行攻略时插入地图做标记,只能查Google map,而国内是有墙的会受到一些限制,免费版本虽然也可以进行团队协作共享操作文档,但是只允许五个人,如果想用来作为一款团队合作的共享软件需要去官方的pricing里斟酌,有提供企业版本(花费不详)。



浙公网安备 33010602011771号