前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用simpread+hexo构建自己的在线知识库

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

原创
作者头像
叶子Tenney
发布2023-04-20 16:19:09
6560
发布2023-04-20 16:19:09
举报
文章被收录于专栏:叶子的数据科技专栏

引言

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

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

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

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

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

示例:

https://simpread.yeyeziblog.eu.org

效果展示

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

过程

代码语言:txt
复制
注: 本文全部操作使用 `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
复制
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
复制
npm config set proxy http://server:port
npm config set https-proxy http://server:port

创建 Hexo 博客

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

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

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

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

代码语言:shell
复制
hexo server

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

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

主题

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

butterfly

代码语言:shell
复制
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
复制
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
复制
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
复制
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
复制
#!/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
复制
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
复制
$ 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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 效果展示
  • 过程
    • 简阅的使用
      • 保存为离线Markdown
      • 自动化保存
    • 为MD文档添加元数据
      • 安装 Hexo 的步骤:
        • 安装 Node.js
        • 安装 Hexo 命令行工具
        • 创建 Hexo 博客
        • 运行 Hexo 本地服务器。在终端中运行以下命令:
      • 主题
        • butterfly
      • 一键部署至github
        • 1. 安装 hexo-deployer-git。
        • 2. 在  _config.yml  中添加以下配置(如果配置已经存在,请将其替换为如下):
        • 3. 执行  hexo clean && hexo deploy  。
        • 4. 浏览  <GitHub 用户名>.github.io  检查你的网站能否运作。
      • 部署到服务器
        • 服务器建立仓库
        • 本地更改配置
        • 本地运行
        • 免密上传
    • 结论
    • 篇外
      • 篇外1: 简悦的多种导出服务
        • 导出到本地
        • 导出到生产力工具支持服务
        • 简悦 · 同步助手导出服务
      • 篇外2: hexo 其他有趣的主题
        • one-paper
        • Cards | Theme for Hexo
        • Crisp-Minimal-Resume
        • Overdose
    • 引用
    相关产品与服务
    命令行工具
    腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档