首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用simpread+hexo构建自己的在线知识库

利用simpread+hexo构建自己的在线知识库

原创
作者头像
叶子Tenney
发布于 2023-04-20 08:19:09
发布于 2023-04-20 08:19:09
84300
代码可运行
举报
运行总次数:0
代码可运行

引言

在网上浏览时,我们经常会发现很多有意义的内容,但是保存为网页或其他格式可能会面临文件丢失、不方便分享或移动版查阅等问题。

虽然有很多服务可以帮助我们解决这些问题,例如 Notion语雀 等,但是这些服务都依赖于网络,并面临着数据导出和查看权限的问题。此外,如果使用国产软件,还可能遇到应用程序频繁更新和内容无法分享的问题。因此,我仍然选择使用文件进行保存和分享,这种方式可以让我们完全掌控自己的数据。

文件以 MD 格式存储,技术流程为:

网页-->|"simpread"|md-->|"hexo"|html-->|"git"|repo"github Pages"/"VPS+ngnix"

代码语言:text
AI代码解释
复制
flowchart LR
	网页-->|"simpread"|md-->|"hexo"|html-->|"git"|id3["github Pages"];
	html-->|"git"|i4["VPS+ngnix"]
	

示例:

https://simpread.yeyeziblog.eu.org

效果展示

文章展示
文章展示
代码文章展示
代码文章展示

过程

代码语言:txt
AI代码解释
复制
注: 本文全部操作使用 `macOS` 完成, 可能与其他平台存在差异.

简阅的使用

简悦是一款集沉浸式阅读、标注、稍后读、导出等功能的新型一站式知识管理浏览器插件,支持 ChromeEdge360极速QQ搜狗 等浏览器,主要有阅读模式、导出、标注、稍后读等实用功能。这里主要使用导出 MD 的功能,但事实上简悦同时支持多种格式和多种服务<sup>篇外1</sup>。

比如,简阅本身就提供了包括保存到 notion语雀 等的功能,非常好用,甚至提供了通过坚果云 api 展示 html 的功能。

坚果云 `api` 构建简阅阅读列表
坚果云 `api` 构建简阅阅读列表

保存为离线Markdown

通过简悦阅读模式的动作-导出-保存为离线Markdown, 可以将网页保存到本地.

阅读模式保存MD文档
阅读模式保存MD文档

自动化保存

选项页 - 服务 - 自动化 可选择加入 稍后读 自动导出 离线 Markdown .

自动化保存MD文档
自动化保存MD文档

如配合 简阅·同步助手 (付费)可实现自定义路径导出。

简阅·同步助手导出选项卡
简阅·同步助手导出选项卡

为MD文档添加元数据

添加元数据一是标记下载时间,二是为之后 hexo 自动生成信息提供数据。

下面这段代码可以对脚本所在路径下的 /source/_posts/SimpRead 文件夹内 MD 文件依次添加元数据.

未添加元数据的MD文档
未添加元数据的MD文档
添加元数据的MD文档
添加元数据的MD文档
代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import os
import time
script_dir = os.path.dirname(os.path.abspath(__file__))
os.chdir(script_dir)
# 将 "your/folder/path" 替换为您的文件夹路径
folder_path = script_dir + "/source/_posts/SimpRead"
for root, dirs, files in os.walk(folder_path):
    for filename in files:
        if filename.endswith(".md"):  # 仅对以 .md 结尾的文件进行操作
            file_path = os.path.join(root, filename)
            with open(file_path, "r") as f:
                lines = f.readlines()
            # 检查文件头是否已经存在
            if not lines[0].startswith("---"):
                creation_time = os.stat(file_path).st_birthtime
                title_line = "title: {} \n".format(filename.replace(".md", ""))
                date_line = "date: {} \n".format(time.strftime(
                    "%Y/%m/%d %H:%M:%S", time.localtime(creation_time)))
                new_lines = ["---\n",title_line, date_line, "categories:\n",
                             "- SimpRead\n", "tags:\n", "- SimpRead\n", "---\n"]
                lines = new_lines + lines
                with open(file_path, "w") as f:
                    f.writelines(lines)

安装 Hexo 的步骤:

安装 Node.js

因为 Hexo 是基于 Node.js 的框架。您可以从 Node.js 的官方网站(https://nodejs.org/en/download/)下载并安装最新版本的 Node.js。

安装 Hexo 命令行工具

您可以使用以下命令在终端中安装:

npm install hexo-cli -g

这个命令会在全局环境中安装 Hexo 命令行工具

如果网络出现问题,可以使用 npm config set 设置代理尝试解决。

代码语言:txt
AI代码解释
复制
npm config set proxy http://server:port
npm config set https-proxy http://server:port

创建 Hexo 博客

在您想要创建 Hexo 博客的目录中,打开终端并运行以下命令:

代码语言:shell
AI代码解释
复制
hexo init myblog
cd myblog
npm install

这个命令会在当前目录下创建一个名为 myblog 的 Hexo 博客,并安装必要的依赖。

运行 Hexo 本地服务器。在终端中运行以下命令:

代码语言:shell
AI代码解释
复制
hexo server

这个命令会启动一个本地服务器,在默认端口(4000)上提供 Hexo 博客的预览。您可以在浏览器中输入 http://localhost:4000 访问博客预览页面。

现在您已经成功地在 macOS 上安装了 Hexo,可以开始构建和发布您的博客了。

主题

hexo 主题可以在Themes | Hexo 找到.

butterfly

代码语言:shell
AI代码解释
复制
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
npm install hexo-renderer-pug hexo-renderer-stylus

一键部署至github

hexo 提供了部署到 githubgit 仓库形式的代码托管网站的快捷方式<sup>5-6</sup>, 以下教学来自 一键部署

https://hexo.io/zh-cn/docs/github-pages.html

1. 安装 hexo-deployer-git

2. 在  _config.yml  中添加以下配置(如果配置已经存在,请将其替换为如下):

代码语言:txt
AI代码解释
复制
deploy:  
  type: git  
  repo: https://github.com/<username>/<project>  
  # example, https://github.com/hexojs/hexojs.github.io  
  branch: gh-pages  

3. 执行  hexo clean && hexo deploy  。

4. 浏览  <GitHub 用户名>.github.io  检查你的网站能否运作。

部署到服务器

由于 github 在国内属于时灵时不灵的状态,所以部署到服务器也是一个可选的选择。

注: 需提前建立网站并配置网站目录如 /www/wwwroot/simpread.yeyeziblog.eu.org , 并配置SSL.

服务器建立仓库

首先, 在用户有完全权限的目录内创建裸仓库, 这里选择的是用户根目录下创建 git 文件夹, 仓库名是 simpread.git .

而后在仓库的 hooks 文件夹下创建 post-receive 文件, 文件内容包含:

  • 输出/工作文件夹: --work-tree=/www/wwwroot/simpread.yeyeziblog.eu.org
  • git仓库文件夹: --git-dir=/home/tenney/git/simpread.git
  • git分支: -f master
代码语言:shell
AI代码解释
复制
cd ~/
mkdir git
cd git/
git init simpread.git --bare --shared
# Initialized empty shared Git repository in /home/tenney/git/simpread.git/
cd /home/tenney/git/simpread.git/
cat > hooks/post-receive
git --work-tree=/www/wwwroot/simpread.yeyeziblog.eu.org --git-dir=/home/tenney/git/simpread.git checkout -f master
chmod +x hooks/post-receive

本地更改配置

代码语言:yaml
AI代码解释
复制
deploy:
  type: 'git'
  repo: ssh://user@ip:22/path/to/simpread.git
  # example, ssh://tenney@10.175.142.2:22/home/tenney/git/simpread.git
  branch: master

本地运行

可在终端内直接运行:

hexo g && hexo d

可以将加元数据和部署的操作写在一起做成脚本方便使用:

代码语言:shell
AI代码解释
复制
#!/bin/bash
cd /path/to/simpread_hexo/
python add_title.py
hexo clean
hexo g && hexo d

这样只要在终端使用 bash /path/to/script.sh 就可以了.

免密上传

可生成并上传本地密钥到服务器, 完成免密上传.

ssh-copy-id -i ~/.ssh/id_rsa.pub tenney@10.175.142.2

结论

在本文中,我们尝试着构建了一个专属于我们自己的知识库,帮助我们进行知识获取的回溯、整理、分享。同样的方法,也可以用来构建私人博客、团队信息共享、企业知识库。值得注意的是,方法是方法,目的是目的,利用其他工具达成目标是完全可接受的。甚至有许多服务可以做到更简单更有效,本文只是提供其中的一种而已。

最后,希望大家热爱知识,获得快乐。

篇外

篇外1: 简悦的多种导出服务

简悦的多种导出服务

导出到本地

  • Markdown · 离线 Markdown
  • PDF(使用浏览器打印)
  • PNG
  • HTML · 离线HTML
  • 复制 Markdown 到剪切板
  • 临时页面

导出到生产力工具支持服务

  • 笔记类: Github 有道云笔记 为知笔记 语雀 印象笔记/Evernote Onenote Notion Joplin 专注笔记 flomo 以及 任意笔记
  • 网盘类: 坚果云 Dropbox Google 云端硬盘 WebDAV
  • 稍后读: Pocket Instapaper
  • 应用类:**Bear** Ulysses

简悦 · 同步助手导出服务

  • 可导出到任意目录
  • 原生 PDF 原生 Epub
  • TextBundle md + assets
  • Markdeep
  • 发送到邮件 直接发送到 Kindle
  • 支持任意格式导出 e.g. .docs

篇外2: hexo 其他有趣的主题

one-paper

好看好用但代码显示有问题.

Cards | Theme for Hexo

Cards
Cards

Installation 安装

代码语言:shell
AI代码解释
复制
cd hexo
git clone https://github.com/ChrAlpha/hexo-theme-cards.git themes/cards

vi _config.yml
-theme: landscape
+theme: cards

hexo s --debug

你也可以参照主题文档详细了解相关配置。

Crisp-Minimal-Resume

Crisp-Minimal-Resume 是一个简历页面.

Crisp-Minimal-Resume
Crisp-Minimal-Resume

Overdose

好看的卡片式主题。

代码语言:shell
AI代码解释
复制
$ cd your/hexo/directory
$ git clone https://github.com/HyunSeob/hexo-theme-overdose.git themes/overdose
$ cd ./themes/overdose
$ npm install --save hexo-renderer-jade # Don't use hexo-renderer-pug. It doesn't work.
# --no-audit
$ cp _config.yml.example _config.yml
$ cd your/hexo/directory
$ hexo server

可能是版本问题, 安装失败.

引用

  1. Hexo
  2. Themes | Hexo
  3. GitHub - ChrAlpha/hexo-theme-cards: Another Simple & Swift theme for Hexo
  4. GitHub - HyunSeob/hexo-theme-overdose: ⚠ Caution: you could be overdosed with this theme.
  5. Hexo搭建个人博客-并部署到Github上托管(Windows) - 知乎
  6. 在 GitHub Pages 上部署 Hexo | Hexo
  7. Butterfly 安裝文檔(三) 主題配置-1 | Butterfly
  8. 简悦 SimpRead - 如杂志般沉浸式阅读体验的扩展
  9. 简悦新用户建议(看这一篇就足够了)2022 最新修订版 - 知乎

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hexo+云服务器构建简易不失效图床
目前我的公众号发布流程都是把图片通过 PicGo 上传到 腾讯云COS 上面,再通过链接的方式方式转存到腾讯云开发者社区和公众号上。
叶子Tenney
2023/04/29
8140
Hexo+云服务器构建简易不失效图床
Hexo 笔记
新增一行 categories:,这样 每次 hexo n postname 时就会有 categories:
yiyun
2022/04/01
9080
Hexo 笔记
使用Hexo+Github+腾讯云+Netlify搭建个人博客
要使用Hexo必须先安装Git和Node.js。本文是在Ubuntu20环境下进行操作的。使用其它系统也可以将下面的操作作为参考。
首飞
2022/06/19
1K0
使用Hexo+Github+腾讯云+Netlify搭建个人博客
利用 GitHub 从零开始搭建一个博客
趁着周末,搭建了一下 NightTeam 的官方博客和官方主页,耗时数个小时,两个站点终于完工了。这里写一篇文章顺手记录了下来。不过这篇原创我发在了 NightTeam 上面了,这边我就作为转载了。
崔庆才
2019/09/30
1.1K0
利用 GitHub 从零开始搭建一个博客
【Hexo基本使用】零基础,快速搭建属于自己的个人博客!
Hexo⭐零基础搭建Hexo个人博客!⭐本文主题以Butterfly为例!⭐Hexo官网:HexoHexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。安装安装Node.jsHexo基于Node.js运行npm安装Hexo全局安装 hexo-clinpm install -g hexo-cli使用快速使用# 进入项目目录cd <项目名># 安装项目依赖npm install --registry=https://re
LonelySnowman
2022/12/15
7490
建站神器:Hexo+Kaze+Gitee Pages 搭建静态博客网站
建网站本身是一个很大的工程,涉及前端页面的搭建,网站数据的存储,还要购置服务器资源,甚至是后期的维护,过程相当繁琐。
蜗牛互联网
2021/02/26
1.7K0
建站神器:Hexo+Kaze+Gitee Pages 搭建静态博客网站
搭建 Hexo
由于 Hexo 这款博客程序是基于 Node.js 所构建的,所以我们需要下载 Node.js
FloatSheep
2022/04/25
5930
搭建 Hexo
基于hexo的博客项目基本操作
​ 在指定博客项目中的themes文件夹中设定指定名称的文件夹(主题名称),随后在_config.yml文件中修改theme设定(默认是landscape)
hahah
2022/06/14
8820
博客搭建之Hexo
快速建站工具(主要适用:博客、文档等静态站点),可以将Markdown编写的文章解析成html页面。生成的站点可以无需服务器一键部署到github、gitlab或者gitee上。
前端小书童
2022/01/04
5500
博客搭建之Hexo
基于Github&Hexo的个人博客搭建过程
在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!
Daotin
2018/12/04
9150
基于Github&Hexo的个人博客搭建过程
WebMaster 123 - 如何简单地搭建 Hexo 博客
因为惶心的 Wordpress 博客数据库崩掉了,但是有有些东西实在很想写下来,于是就搭建了个临时博客。然而不能重蹈覆辙,所以就选择了不依赖数据库,文章全部以 Markdown 形式存储并且可以依赖 Git 的博客系统 - Hexo。
惶心
2019/01/27
1K0
使用 Hexo + Gitee 快速搭建属于自己的博客
程序员总会有一些技术文章的输出总结,很多人会选择各大第三方博客平台,但某些第三方博客平台的 UI 简直惨不忍睹,广告巨多,且对 md 格式支持得不够好等等,基于这些原因,我们有足够的理由搭建一套属于我们自己的博客。
张乘辉
2020/12/29
9030
使用 Hexo + Gitee 快速搭建属于自己的博客
Linux下使用 github+hexo 搭建个人博客01-hexo搭建
原因有好几个吧,归类如下: 1、自己搭建博客系统很有成就感,可以自己选定页面风格和页面排版;
踏歌行
2020/10/15
2.5K0
Linux下使用 github+hexo 搭建个人博客01-hexo搭建
如何用 GitHub 从零开始搭建一个博客?
作为目前全球最大的程序员社区,GitHub 能做的可不仅仅是托管源码这一操作,你还可以使用 GitHub 的 Pages 功能来搭建一个属于自己的博客,在上面写文章,开评论,跟读者互动,随意更换博客主题,只要你想折腾,这些都能轻松做到。
GitHubDaily
2019/10/29
1.8K0
如何用 GitHub 从零开始搭建一个博客?
使用Vercel+GitHub快速构建Hexo博客
很多玩博客的大佬都在使用Hexo静态博客作为自己的系统而不是WordPress或者Typecho,这是因为Hexo这一类的静态博客,可以部署在很多稳定且免费的环境中,对于大佬来说,这是个最好不过的选择了,其一是环境稳定且免费,可以省出维护服务器的精力和开支,其二是大佬们一般对服务器有很高的要求,一个服务器通常会专门做一件事情,如果挂博客太低的配置没法有很好的访问性能,太高的配置又是资源浪费,中规中矩的配置却又比上不足比下有余,这时候 静态博客 就是个很好的解决方案。
Magneto
2022/09/14
8720
使用Vercel+GitHub快速构建Hexo博客
Hexo + Github Pages博客搭建教程
一直以来自己都有书写文章的习惯,不管是收集资料还是表达自己的个人见解。最开始把资料都放在印象笔记里,但是印象笔记有个不好的点就是书写不方便,而且多设备登录不友好,需要升级账户。后来就搭建了一个WordPress站点,记录自己的点滴。慢慢的接触到了CSDN,也计划着在那里写博客。CSDN的编辑器有markdown版本,接触到了markdown就对其产生了好感。与此同时,我也将我的WordPress站点的编辑器换成了markdown编辑器,一处书写多处同步。 慢慢的,我感受到了WordPress站点的臃肿,由于我的站点原因,做的并不是单独的博客站点,所有的文章展示方面不友好。所以萌生了搭建一个单独的博客的想法。
慕白
2020/01/02
1.1K0
Hexo + Github Pages博客搭建教程
Hexo 建站教程
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
Qwe7
2022/03/29
1.3K0
Hexo安装并使用Butterfly主题
本片文章为本人想要换hexo的主题时所写。因此省略node和hexo的安装,直接在初始化博客开始
Dreamy.TZK
2020/04/09
5.4K0
Hexo 搭建静态博客
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章(经常玩CSDN上的人都知道),在几秒内,即可利用靓丽的主题生成静态网页。通过Hexo我们可以快速创建自己的博客,仅需要几条命令就可以完成。发布时,Hexo可以部署在自己的Node服务器上面,也可以部署github上面。对于个人用户来说,部署在github上好处颇多,不仅可以省去服务器的成本,还可以减少各种系统运维的麻烦事(系统管理、备份、网络)。所以,在这里我是基于github搭建的个人博客站点。
smartsi
2019/08/07
9310
【目录】Hexo+NexT+Gemini 搭建博客拥抱舒爽
首先在配置Hexo+NexT之前,最好阅读一下 Hexo官方文档 和 NexT使用文档
零式的天空
2022/03/27
2.4K0
【目录】Hexo+NexT+Gemini 搭建博客拥抱舒爽
相关推荐
Hexo+云服务器构建简易不失效图床
更多 >
交个朋友
加入腾讯云官网粉丝站
双11活动抢先看 更有社群专属礼券掉落
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档