Obsidian Publish的开源替代品Perlite

在这里插入图片描述

前几天就有网友跟我说,freenom 的免费域名不可用了,10 号的时候老苏进后台看了一下,还有一半的域名显示为 ACTIVE,似乎是以 2024年6月 为限。但到 11 号,老苏发现博客 (https://laosu.cf) 已经访问不了了,这时候再进 freenom 后台,所有域名的状态都已经全部变成 PENDING 了。

截至目前,freenom 尚未就回收免费域名的具体理由向公众作出官方解释,但可以肯定的是, 不管什么原因,freenom 的免费域名以后肯定是用不了了

即日起,博客正式启用域名:https://laosu.tech


本文软件由朋友 Eduna 推荐;

什么是 Perlite ?

Perlite 是针对 Obsidian 优化的基于 WebMarkdown 查看器。可以在网络上显示您的黑曜石笔记,只需将整个 Obsidian VaultMarkdown 文件夹/文件结构放入您的 Web 目录中即可。该页面会自行构建。

软件特点:

  • 自动构建,基于您的文件夹(保险库)结构
  • 支持 Obsidian 主题
  • 完全响应式
  • 无需手动解析或转换
  • 完整的交互式图表
  • 支持 LaTeXMermaid
  • 链接至 Obsidian Vault
  • 搜索功能
  • 支持 Obsidian 标签、链接、图像和预览
  • 暗黑模式和明亮模式

简单的说,Perlite 就是付费的 Obsidian Publish 的开源替代品

在这里插入图片描述

安装

在群晖上以 Docker 方式安装。

如果在注册表中搜索 perlite ,选择第一个 sec77/perlite,版本选择 latest

本文写作时, latest 版本对应为 1.5.8

在这里插入图片描述

因为这个镜像是基于 php:fpm 构建的,因此还需要有 web 服务器的配合,所以采用 docker-compose 安装会更简单

docker-compose.yml

将下面的内容保存为 docker-compose.yml 文件

version: "3.9"services:perlite:image: sec77/perlite:latestcontainer_name: perliterestart: unless-stoppedenvironment:- NOTES_PATH=Demo- HIDE_FOLDERS=docs,private,trash- LINE_BREAKS=true- ABSOLUTE_PATHES=false- ALLOWED_FILE_LINK_TYPES=pdf,mp4- DISABLE_POP_HOVER=false- SHOW_TOC=true- SHOW_LOCAL_GRAPH=true- HOME_FILE=README- FONT_SIZE=15- HTML_SAFE_MODE=true- TEMP_PATH=/tmp- SITE_TITLE=Demo- SITE_TYPE=article- SITE_URL=- SITE_IMAGE=- SITE_DESC=- SITE_NAME=- SITE_TWITTER=- SITE_LOGO=- SITE_HOMEPAGE=- SITE_GITHUB=volumes:- ./data:/var/www/perlite/Demo:roweb:image: nginx:latestcontainer_name: perlite_webrestart: unless-stoppedports:- 4980:80volumes:- ./nginx.conf:/etc/nginx/conf.d/default.conf:rovolumes_from: - perlite       depends_on:- perlite

容器 perlite 的主要环境变量:

  • NOTES_PATH:设置 NOTES_PATH=Demo,用于定义您笔记的 Obsidian 保险库文件夹(根路径/文件夹),该文件夹必须是 Perlite/perlite 的子文件夹。
  • HIDE_FOLDERS:设置 HIDE_FOLDERS=docs,private,trash,以排除要在左侧导航面板中可见的(数组中的)文件夹。以 “.”(点)开头的文件夹和文件默认排除。
  • LINE_BREAKS:设置 LINE_BREAKS=true,如果您想使用 “简单” 的换行符而不是 Markdown 换行符。
  • ABSOLUTE_PATHES:设置 ABSOLUTE_PATHES=true,以使用绝对文件路径而不是相对路径进行内部链接。
  • ALLOWED_FILE_LINK_TYPES:设置 ALLOWED_FILE_LINK_TYPES=pdf,doc,以允许将(数组中的)文件类型显示为笔记中的直接链接。
  • DISABLE_POP_HOVER:设置 ·DISABLE_POP_HOVER=true,以设置悬停在内部链接上时的默认弹出行为。
  • SHOW_TOC:设置 SHOW_TOC=true,如果您想默认显示目录(大纲)。
  • SHOW_LOCAL_GRAPH:设置 SHOW_LOCAL_GRAPH=true,如果您想默认显示图形视图。
  • HOME_FILE:设置 HOME_FILE=README,如果您想将主页设置为保险库根目录中的 README.md。这必须是一个 .md 文件,所以您只需要定义文件名(不包括扩展名)。
  • FONT_SIZE:设置 FONT_SIZE=15,以设置默认的字体大小。
  • HTML_SAFE_MODE:设置 HTML_SAFE_MODE=false,以允许在您的 Markdown 中使用 HTML
  • TEMP_PATH:设置 TEMP_PATH=/tmp,以定义图形临时文件的存储位置。
  • SITE_:站点及社交媒体设置,对应下图左上角位置。

在这里插入图片描述

更完整的介绍,请参考官方文档:https://github.com/secure-77/Perlite/wiki/03—Perlite-Settings#optional-perlite-settings

nginx.conf

将下面的内容保存为 nginx.conf 文件。因为 mdjson 等文件里面可能包含敏感信息,所以我们要阻止从网络上直接访问或者下载这些扩展名的文件,而只有 php 引擎需要访问此文件。

server {listen 80;server_name localhost;root /var/www/perlite;index index.php index.html index.htm;access_log /var/log/nginx/php-access.log;error_log /var/log/nginx/php-error.log;# PHP-FPM Configuration Nginxlocation ~ \.php$ {try_files $uri = 404;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass perlite:9000;fastcgi_index index.php;include fastcgi_params;fastcgi_param REQUEST_URI $request_uri;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;}location ~ /\.ht {deny all;}location ~* ^/(.*)/.obsidian/appearance.json$ {allow all;}location ~* ^/(.*)/.obsidian/(.*)/theme.css$ {allow all;}location ~ \.(git|github|obsidian|trash) {deny all;}location ~ \.(md|json)$ {deny all;}
}

然后执行下面的命令

# 新建文件夹 perlite 和 子目录
mkdir -p /volume1/docker/perlite/data# 进入 perlite 目录
cd /volume1/docker/perlite# 将 docker-compose.yml 和 nginx.conf 放入当前目录# 一键启动
docker-compose up -d

在这里插入图片描述

运行

在浏览器中输入 http://群晖IP:4980 就能看到主界面

在这里插入图片描述

因为现在 /data 目录中还是空的,老苏找了几篇之前发布的 markdown 文档

在这里插入图片描述

回到主界面刷新一下

在这里插入图片描述

左下角是设置,因为文章相对独立,所以没有双链的图像效果

在这里插入图片描述

参考文档

secure-77/Perlite: A web-based markdown viewer optimized for Obsidian
地址:https://github.com/secure-77/Perlite

Perlite - Secure77
地址:https://secure77.de/perlite/

README - Demo - Perlite
地址:https://perlite.secure77.de/

perlite Setup
地址:https://blog.nihilism.network/servers/perlite/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/465891.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenMVG(EXIF、畸变、仿射特征、特征匹配)

本人之前也研究过OpenMVS但是对于OpenMVG只是原理层次的了解,因此乘着过年期间对这个库进行详细的学习。 目录 1 OpenMVG编译与简单测试 1.1 sfm_data.json获取 1.2 计算特征 2 OpenMVG整个流程的运行测试 3 OpenMVG实战 3.1 SVG绘制 3.2 解析图片的EXIF信息…

前沿重器[42] | self-RAG-大模型决策的典型案例探究

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享,从中抽取关键精华的部分和大家分享,和大家一起把握前沿技术。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。(算起来,专项启动已经…

WordPress修改所有用户名并发送邮件通知的插件Easy Username Updater

前面跟大家介绍了『如何修改WordPress后台管理员用户名?推荐2种简单方法』一文,但是对于有很多用户的站长来说,操作有点复杂,而且无法发邮件通知对方,所以今天boke112百科向大家推荐一款可以直接在WordPress后台修改所…

关于Navicat导入sql文件后er图乱序问题

关于Navicat导入sql文件后er图乱序问题 具体操作如下: 点击左下角刷新旁边的小三角

Bootstrap学习三

Bootstrap学习三 文章目录 前言四、Bootstrap插件4.1. 插件概览4.1.1. data属性4.1.2. 编程方式的API4.1.3. 避免命名空间冲突4.1.4. 事件 4.2. 模态框4.2.1. 引入4.2.2. 基本结构4.2.3. 基本使用4.2.4. 触发模态框的方法 4.3. 下拉菜单和滚动监听4.3.1. 下拉菜单4.3.2. 滚动监…

第三节课[LangChain]作业

文章目录 前言实践搭建向量知识库 前言 本次作业虽然是第三节课作业,但是在第四次作业之后才完成,所以用的是经过自我认知微调的小助手权重。 使用**诡秘之主和宿命之环小说(仅用于学习和研究)**以及设定集、百度百科&#xff0c…

C++ //练习 5.21 修改5.5.1节(第171页)练习题的程序,使其找到的重复单词必须以大写字母开头。

C Primer(第5版) 练习 5.21 练习 5.21 修改5.5.1节(第171页)练习题的程序,使其找到的重复单词必须以大写字母开头。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /…

第六篇【传奇开心果系列】Vant of Vue 开发移动应用示例:深度解析响应式布局支持

传奇开心果系列 系列博文目录Vant开发移动应用示例系列 博文目录前言一、Vant响应式布局介绍二、媒体查询实现响应式布局示例代码三、短点设置实现响应式布局示例代码四、响应式工具类实现响应式布局示例代码五、栅格系统实现响应式布局示例代码六、响应式组件实现响应式布局示…

前端vue 数字 字符串 丢失精度问题

1.问题 后端返回的数据 是这样的 一个字符串类型的数据 前端要想显示这个 肯定需要使用Json.parse() 转换一下 但是 目前有一个问题 转换的确可以 showId:1206381711026823172 有一个这样的字段 转换了以后 发现 字段成了1206381711026823200 精度直接丢了 原本的数据…

揭秘:15条黄金法则,让你的GPT聊天提示效率翻倍!(一)

你的 ChatGPT 响应的好坏完全取决于你使用的ChatGPT 提示。 事实是,ChatgPT对于潜在客户开发、内容创建甚至外展都非常有效。 但大多数人只是使用人工智能来创建内容。 当然,它有时可以产生一些纯文本。也就是说,如果你只使用正确的提示。…

【开源】SpringBoot框架开发天沐瑜伽馆管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课程预约模块2.4 系统公告模块2.5 课程评价模块2.6 瑜伽器械模块 三、系统设计3.1 实体类设计3.1.1 瑜伽课程3.1.2 瑜伽课程预约3.1.3 系统公告3.1.4 瑜伽课程评价 3.2 数据库设计3.2.…

AMD FPGA设计优化宝典笔记(1)触发器

高亚军老师的这本书《AMD FPGA设计优化宝典》,他主要讲了两个东西: 第一个东西是代码的良好风格; 第二个是设计收敛等的本质。 这个书的结构是一个总论,加上另外的9个优化,包含的有:时钟网络、组合逻辑、触…