基于Markdown文件的个人wiki

news2024/9/24 17:17:56

在这里插入图片描述

节后第一更,老苏祝您兔年大吉,幸福安康,事事顺心!
在这里插入图片描述


什么是 wikmd ?

wikmd 是一个基于文件的 wiki,旨在简化。这些文档完全用 Markdown 编写,使用 pandocMarkdown 文件转换为 html5

👇官方的动图演示了软件的基本功能

在这里插入图片描述

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wikmd ,选择第一个 wikmd,版本选择 latest

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 wikmd,并在其中建一个子文件夹wiki,需要给 wiki 目录新增 Everyone 的读写权限

文件夹装载路径说明
docker/wikmd/wiki/wiki存放设置

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
51515000

环境

主要的几个变量说明见下表👇

可变
PUID<uid> 设为 1000
PGID<gid> 设为 1000
TZ系统时区设置,设置为 Asia/Shanghai
HOMEPAGE指定用作主页的文件
HOMEPAGE_TITLE指定主页的标题
WIKMD_LOGGING启用/禁用文件记录
WIKI_DIRECTORYwiki 数据存储的路径
IMAGES_ROUTE自定义图片上传路径

更多的环境变量:https://linbreux.github.io/wikmd/environment%20variables.html

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 wikmd 和 子目录
mkdir -p /volume2/docker/wikmd/wiki

# 进入 wikmd 目录
cd /volume2/docker/wikmd

# 修改目录权限
chmod 777 wiki

# 运行容器
docker run -d \
  --name wikmd \
  --restart unless-stopped \
  -p 5151:5000 \
  -v $(pwd)/wiki:/wiki \
  -e TZ=Asia/Shanghai \
  -e PUID=1000 \
  -e PGID=1000 \
  -e HOMEPAGE=homepage.md \
  -e HOMEPAGE_TITLE=homepage.md \
  -e WIKMD_LOGGING=1 \
  -e WIKI_DIRECTORY=/wiki \
  linbreux/wikmd:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: "2.1"

services:
    wikmd:
        image: linbreux/wikmd:latest
        container_name: wikmd
        restart: unless-stopped
        volumes:
            - ./wiki:/wiki
        ports:
            - 5151:5000
        environment:
            - PUID=1000
            - PGID=1000
            - TZ=Asia/Shanghai
            - HOMEPAGE=homepage.md
            - HOMEPAGE_TITLE=homepage.md
            - WIKMD_LOGGING=1
            - WIKI_DIRECTORY=/wiki

然后执行下面的命令

# 新建文件夹 wikmd 和 子目录
mkdir -p /volume2/docker/wikmd/wiki

# 进入 wikmd 目录
cd /volume2/docker/wikmd

# 修改目录权限
chmod 777 wiki

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5151 ,太快了会显示错误

在这里插入图片描述

要稍等一会儿才能看到主界面

New 新建一篇

保存后直接显示渲染的页面

在这里插入图片描述

新建的文件保存在 wiki 目录中

在这里插入图片描述

老苏上传了一些之前写的 Markdown 文档,目录也是支持的

在这里插入图片描述

打开一篇

尝试搜索 heimdall

虽然支持知识图谱,但是因为没有符合双链的文档,所以看起来都是孤立的

参考文档

Linbreux/wikmd: A file based wiki that uses markdown
地址:https://github.com/Linbreux/wikmd

Docker installation - wikmd
地址:https://linbreux.github.io/wikmd/installation/docker.html

markdown wiki - wikmd : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/t0m0bz/markdown_wiki_wikmd/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF__Viewport3D 学习记录

1、相机的摆放位置和姿态 Position 是指定照相机的位置&#xff0c;注意Z轴的坐标&#xff0c;如果Z轴值大于模型的Z轴值&#xff0c;那么镜头就在物体前面&#xff0c;反之在物体后面。因此&#xff0c;你可以设置 LookDirection 来调整相机的方向&#xff0c;Position是相机的…

NodeJS 之模块化

NodeJS 之模块化参考描述模块化优点分类加载模块作用域优点自定义模块modulemodule.exportsexports 与 module.exports示例示例一示例二示例三建议CommonJS规范CommonJS参考 项目参考搜索引擎Bing哔哩哔哩黑马程序员 描述 项目描述操作系统Windows 10 专业版NodeJS18.13.0 模…

MU-MIMO是什么

欢迎来到东用知识小课堂&#xff01;1.什么是MIMOMIMO&#xff1a;Multiple-Intput Multiple-Output,即多入多出系统&#xff0c;这里的入和出是相对于发射天线和接受天线构成的天线系统来讲。通常的通信系统是单发单收&#xff0c;也就是SISO&#xff1a;Single-Input Single-…

【Bp2Lua】蓝图定义 Struct 和 Enum

【Bp2Lua】蓝图定义 Struct 和 Enum 背景 Enum Struct 结论 enum 可以保持不动&#xff0c;使用枚举值注释&#xff1b;如果C特别需要访问 enum&#xff0c;可以 C 化struct 必须 C 化 坑 首先&#xff0c;从字段访问都有字段名的坑&#xff0c;名字可以有空格&#xff0c…

maven-3-java调用python程序

【Java】使用Java调用Python的四种方法 fastjson的使用——JSON字符串、JSON对象、Java对象的互转 使用idea给Java程序打jar包&#xff08;超简单 超详细&#xff09; 1 环境准备 (1)新建Maven类型的项目&#xff0c;D:\processPython。 右键src/main/java&#xff0c;创建ja…

基于深度学习的文本分类6大算法-原理、结构、论文、源码打包分享

导读&#xff1a;文本分类是NLP领域一项基础工作&#xff0c;在工业界拥有大量且丰富的应用场景。传统的文本分类需要依赖很多词法、句法相关的human-extracted feature&#xff0c;自2012年深度学习技术快速发展之后&#xff0c;尤其是循环神经网络RNN、卷积神经网络CNN在NLP领…

【Leetcode面试常见题目题解】8. 合并两个有序链表

前言 本文是LC第21题&#xff1a;合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 提示&#xff1a; 两个链表的节点数目范围是 [0, 50] -100 < Node.val < 100 l1 和 l2 均按 非递减顺…

产品设计-基础控件-信息反馈控件

产品设计-基础控件-信息反馈控件1.1 吐司提示1.2 对话框1.3 气泡卡片1.4 动作面板和弹出层1.4.1 动作面板1.4.2 弹出层1.5 进度条和加载状态1.5.1进度条1.5.2 加载状态1.1 吐司提示 用户输入信息后&#xff0c;一个好的产品设计会给予用户明确的信息反馈&#xff0c;例如&…

五、pyhon-地图可视化篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频&#xff1a;https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. 基础地图 2. 设置分段 1. 基础地图 from pyecharts.charts import Map # 准备地图对象 map Map() # 准备数据 data[ ("北京",99), ("上海",199), ("…

【2023.01.23】定时执行专家 V6.6 兔年春节版 - 更新日志

目录 ◆ 最新版下载链接 ◆ 软件更新日志 – TimingExecutor Full Change Log ▼ 2023-01-23 V6.6 ▼ 2023-01-20 V6.5 ▼ 2022-12-25 V6.4 ▼ 2022-11-15 V6.3 ▼ 2022-10-01 V6.2 ▼ 2022-07-30 V6.1&#xff08;Build 769.30072022&#xff09; ▼ 2022-0…

[前端笔记——CSS] 10.层叠与继承+选择器

[前端笔记——CSS] 10.层叠与继承选择器1.层叠与继承1.1 冲突规则1.2 继承1.3 层叠1.4 CSS位置的影响2.选择器2.1 选择器是什么&#xff1f;2.2 选择器列表2.3 选择器的种类类型、类和 ID 选择器标签属性选择器伪类与伪元素运算符选择器参考表1.层叠与继承 1.1 冲突规则 CSS …

动态规划(基础)

目录 一、算法思想 二、解题步骤 三、神奇的兔子序列 &#xff08;一&#xff09;问题 &#xff08;二&#xff09;递归公式 &#xff08;三&#xff09;以求解F(6)为例 &#xff08;四&#xff09;代码 四、01背包问题 &#xff08;一&#xff09;算法思想 &…

深入跨域问题(4) - 利用代理解决跨域

在上面的文章中&#xff0c;我们依此了解到&#xff0c;CORS &#xff0c;JSONP 两种方式实现跨域请求。 这两种方法&#xff0c;都需要 前后端进行配合 才能够正确地处理跨域问题。 今天介绍一种方法&#xff0c;不需要前后端配合&#xff0c;前端可独立完成。 众所周知&…

Java的基本语法格式

在编写JavaJavaJava代码过程中&#xff0c;必须先声明一个类&#xff0c;类使用class字眼定义&#xff0c;在class前面可以有一些修饰符&#xff1a; class的修饰符有&#xff1a; public&#xff0c;final(默认是default&#xff0c;只允许在同一包中进行访问) public&#xf…

C++STL-priority_queue的实现

大家好&#xff01;这篇文章&#xff0c;主要讲解一下这个优先级队列&#xff0c;还包含了仿函数等等的知识。希望大家能够一起加油&#xff01;&#xff01;&#xff01; 文章目录1. priority_queue的实现1.1 push函数1.2 pop函数1.3 top函数和empty函数2. 仿函数2.1 仿函数的…

【C进阶】模拟实现atoi函数

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;C语言进阶 ⭐代码仓库&#xff1a;C Advanced 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff0c;你们…

day21-多线程

1.实现多线程 1.1简单了解多线程【理解】 是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程&#xff0c;提升性能。 1.2并发和并行【理解】 并行&#xff1a;在同一时刻&#xff0c;有多个指令在多个CP…

【数据结构】双链表实现

双链表实现双链表LinkedList的使用ArrayList 和 LinkedList的区别双链表 双链表的结点其实就是在单链表结点的基础上多了一个存储前一个节点地址的域&#xff0c;例如&#xff1a; 接下来就实现双链表的各种操作&#xff0c;首先定义好双链表的结构&#xff1a; public class…

【经典算法】双指针(尺取法):爱,是双向奔赴,还是你追我赶?

&#x1f451;专栏内容&#xff1a;算法学习随笔⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;日拱一卒&#xff0c;功不唐捐 目录一、前言二、左右指针&#xff08;双向奔赴&#xff09;1、定义2、回文检查三、快慢指针&#xff08;你追我赶&#xff…

将字符串代码编译为字节代码对象 compile()

【小白从小学Python、C、Java】【计算机等级考试500强双证书】【Python-数据分析】将字符串代码编译为字节代码对象compile()[太阳]选择题关于以下python代码表述错误的一项是?sx1y2print("xy",xy)print("【显示】s&#xff1a;")print(s)print("【执…