在网上浏览时,我们经常会发现很多有意义的内容,但是保存为网页或其他格式可能会面临文件丢失、不方便分享或移动版查阅等问题。
虽然有很多服务可以帮助我们解决这些问题,例如 Notion
、 语雀
等,但是这些服务都依赖于网络,并面临着数据导出和查看权限的问题。此外,如果使用国产软件,还可能遇到应用程序频繁更新和内容无法分享的问题。因此,我仍然选择使用文件进行保存和分享,这种方式可以让我们完全掌控自己的数据。
文件以 MD
格式存储,技术流程为:
网页-->|"simpread"|md-->|"hexo"|html-->|"git"|repo"github Pages"/"VPS+ngnix"
flowchart LR
网页-->|"simpread"|md-->|"hexo"|html-->|"git"|id3["github Pages"];
html-->|"git"|i4["VPS+ngnix"]
示例:
https://simpread.yeyeziblog.eu.org
注: 本文全部操作使用 `macOS` 完成, 可能与其他平台存在差异.
简悦是一款集沉浸式阅读、标注、稍后读、导出等功能的新型一站式知识管理浏览器插件,支持 Chrome
, Edge
, 360极速
、 QQ
、 搜狗
等浏览器,主要有阅读模式、导出、标注、稍后读等实用功能。这里主要使用导出 MD
的功能,但事实上简悦同时支持多种格式和多种服务<sup>篇外1</sup>。
比如,简阅本身就提供了包括保存到 notion
, 语雀
等的功能,非常好用,甚至提供了通过坚果云 api
展示 html
的功能。
通过简悦阅读模式的动作-导出-保存为离线Markdown, 可以将网页保存到本地.
在 选项页
- 服务
- 自动化
可选择加入 稍后读
自动导出 离线 Markdown
.
如配合 简阅·同步助手
(付费)可实现自定义路径导出。
添加元数据一是标记下载时间,二是为之后 hexo
自动生成信息提供数据。
下面这段代码可以对脚本所在路径下的 /source/_posts/SimpRead
文件夹内 MD
文件依次添加元数据.
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
的步骤:因为 Hexo 是基于 Node.js 的框架。您可以从 Node.js 的官方网站(https://nodejs.org/en/download/)下载并安装最新版本的 Node.js。
您可以使用以下命令在终端中安装:
npm install hexo-cli -g
这个命令会在全局环境中安装 Hexo 命令行工具。
如果网络出现问题,可以使用 npm config set
设置代理尝试解决。
npm config set proxy http://server:port
npm config set https-proxy http://server:port
在您想要创建 Hexo 博客的目录中,打开终端并运行以下命令:
hexo init myblog
cd myblog
npm install
这个命令会在当前目录下创建一个名为 myblog
的 Hexo 博客,并安装必要的依赖。
hexo server
这个命令会启动一个本地服务器,在默认端口(4000)上提供 Hexo 博客的预览。您可以在浏览器中输入 http://localhost:4000
访问博客预览页面。
现在您已经成功地在 macOS 上安装了 Hexo,可以开始构建和发布您的博客了。
hexo
主题可以在Themes | Hexo 找到.
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly
npm install hexo-renderer-pug hexo-renderer-stylus
hexo
提供了部署到 github
等 git
仓库形式的代码托管网站的快捷方式<sup>5-6</sup>, 以下教学来自 一键部署。
https://hexo.io/zh-cn/docs/github-pages.html
_config.yml
中添加以下配置(如果配置已经存在,请将其替换为如下):deploy:
type: git
repo: https://github.com/<username>/<project>
# example, https://github.com/hexojs/hexojs.github.io
branch: gh-pages
hexo clean && hexo deploy
。<GitHub 用户名>.github.io
检查你的网站能否运作。由于 github
在国内属于时灵时不灵的状态,所以部署到服务器也是一个可选的选择。
注: 需提前建立网站并配置网站目录如 /www/wwwroot/simpread.yeyeziblog.eu.org
, 并配置SSL.
首先, 在用户有完全权限的目录内创建裸仓库, 这里选择的是用户根目录下创建 git
文件夹, 仓库名是 simpread.git
.
而后在仓库的 hooks
文件夹下创建 post-receive
文件, 文件内容包含:
git
仓库文件夹: --git-dir=/home/tenney/git/simpread.git git
分支: -f mastercd ~/
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
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
可以将加元数据和部署的操作写在一起做成脚本方便使用:
#!/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
在本文中,我们尝试着构建了一个专属于我们自己的知识库,帮助我们进行知识获取的回溯、整理、分享。同样的方法,也可以用来构建私人博客、团队信息共享、企业知识库。值得注意的是,方法是方法,目的是目的,利用其他工具达成目标是完全可接受的。甚至有许多服务可以做到更简单更有效,本文只是提供其中的一种而已。
最后,希望大家热爱知识,获得快乐。
简悦的多种导出服务
hexo
其他有趣的主题好看好用但代码显示有问题.
Installation 安装
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
是一个简历页面.
Overdose
好看的卡片式主题。
$ 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
可能是版本问题, 安装失败.
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。