基于Web的Markdown编辑器HedgeDoc
什么是 HedgeDoc ?
HedgeDoc
是一个开源的、基于web
的、自托管的、协作的markdown
编辑器。您可以使用它轻松地在笔记、图形甚至演示文稿上进行实时协作。用户需要做的就是将你的笔记链接分享给同事,他们就可以开始使用了。
不想自己搭建可以试试官方的 Demo
网站:https://demo.hedgedoc.org/
安装
建数据库
HedgeDoc
还需要安装 MariaDB
或者 PostgreSQL
数据库。老苏选择了群晖自带的 MariaDB 10
数据库。
在 phpMyAdmin
中创建名为 hedgedoc
的空数据库。
为了演示方便,后面假设密码是:
123456
安装镜像
在群晖上以 Docker 方式安装。
在注册表中搜索 hedgedoc
,选择第一个 linuxserver/hedgedoc
,版本选 latest
卷
在 docker
文件夹中,创建一个新文件夹 hedgedoc
,并在其中建 1 个子文件夹 config
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/hedgedoc/config
|
/config
|
设置目录 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
3070
|
3070
|
默认容器端口为 3000
但我们要通过环境变量修改,使得 本地端口
和 容器端口
保持一直
只要本地端口不是
80
、443
和3000
,就需要设置CMD_PORT
改变容器端口
环境
可变 | 值 |
---|---|
DB_HOST
|
数据库的地址 |
DB_PORT
|
数据库的端口 |
DB_NAME
|
数据库的库名 |
DB_USER
|
数据库的用户 |
DB_PASS
|
数据库的密码 |
PGID
|
<UserID> 默认设为 1000
|
PUID
|
<GroupID > 默认设为 1000
|
TZ
|
时区设置,默认设置为 Asia/Shanghai
|
CMD_DOMAIN
|
HedgeDoc 主机地址
|
CMD_URL_ADDPORT
|
默认为 true ,只有容器端口使用 80 或者 443 时才设为 false
|
CMD_PROTOCOL_USESSL
|
如果反代后用 https 协议访问,设为 true
|
CMD_PORT
|
用于修改容器端口 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 hedgedoc 和 子目录
mkdir -p /volume2/docker/hedgedoc/config# 进入 hedgedoc 目录
cd /volume2/docker/hedgedoc# 运行容器
docker run -d \--restart unless-stopped \--name hedgedoc \-p 3070:3070 \-v $(pwd)/config:/config \-e DB_HOST=192.168.0.197 \-e DB_PORT=3307 \-e DB_USER=hedgedoc \-e DB_PASS=123456 \-e DB_NAME=hedgedoc \-e PGID=1000 \-e PUID=1000 \-e TZ=Asia/Shanghai \-e CMD_DOMAIN=192.168.0.197 \-e CMD_URL_ADDPORT=true \-e CMD_PROTOCOL_USESSL=false \-e CMD_PORT=3070 \linuxserver/hedgedoc
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: "3"services:hedgedoc:image: linuxserver/hedgedoccontainer_name: hedgedocrestart: alwaysports:- "3070:3070"volumes:- ./config:/configenvironment:- DB_HOST=192.168.0.197- DB_PORT=3307- DB_USER=hedgedoc- DB_PASS=123456- DB_NAME=hedgedoc- PGID=1000- PUID=1000- TZ=Asia/Shanghai- CMD_DOMAIN=192.168.0.197- CMD_URL_ADDPORT=true - CMD_PROTOCOL_USESSL=false- CMD_PORT=3070
然后执行下面的命令,在 portainer
中执行也是可以的
# 新建文件夹 hedgedoc 和 子目录
mkdir -p /volume2/docker/hedgedoc/config# 进入 hedgedoc 目录
cd /volume2/docker/hedgedoc# 将 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:3070
就能看到主界面
如果显示
I'm busy right now, try again later.
或者无法显示,那就稍等一下,日志中显示HTTP Server listening at 0.0.0.0:3070
才说明服务已经就绪了
第一次登录需要先注册
默认情况下
HedgeDoc
使用电子邮件注册,但它实际上也支持使用和配置各种身份验证系统,比如我们之前介绍过的Authelia
等等,有兴趣的可以自己研究;
登录成功后
新建笔记
支持实时预览
当把链接发给别人后,右上角的 在线人数
会发生变化
参考文档
hedgedoc/hedgedoc: HedgeDoc - The best platform to write and share markdown.
地址:https://github.com/hedgedoc/hedgedoc
Getting Started - HedgeDoc
地址:https://docs.hedgedoc.org/setup/getting-started/
HedgeDoc - collaborative markdown editor (via Docker on Synology NAS)
地址:https://www.blackvoid.club/hedgedoc-collaborative-markdown-editor/
基于Web的Markdown编辑器HedgeDoc相关推荐
- N个富文本编辑器/基于Web的HTML编辑器
转自:http://www.cnblogs.com/lingyuan/archive/2010/11/15/1877447.html 基于WEB的HTML 编辑器,WYSIWYG所见即所得的编辑器,或 ...
- Tridiv:基于 Web 的 CSS 编辑器,创建炫丽 3D 图形
Tridiv 是一个基于 Web 的编辑器,使用 CSS 创建 3D 形状.它提供了一个传统的四个面板的操作界面,给出了从每个平面的视图,以及一个预览窗格中示出的最终的效果.使用 Tridiv 可以创 ...
- 基于react 的markdown编辑器
一,背景 近几天工作比较轻松吧,打算把之前没有完成的博客后台管理系统的发布博客功能实现,这就需要一个基于react的markdown编辑器. 之前的博客实现是使用vue实现的,后台管理想使用react ...
- 在线富文本编辑器-基于Web的HTML编辑器大全(一)
基于WEB的HTML 编辑器,WYSIWYG所见即所得的编辑器,或是一个富文本的编辑器,是我们在开发WEB应用和内容管理系统时接收用户输入时必需要考虑的问题.下面是网上牛人收集的一些开源的WEB在线的 ...
- 基于JavaWeb的MarkDown编辑器editor.md的使用
1.简介 editor.md是国内开发的开源项目,单纯基于前端JavaScript,可以实现markdown编辑器的所有功能. 主要特性 支持通用 Markdown / CommonMark 和 GF ...
- 基于Ace的Markdown编辑器
相信开发中或多或少都会有使用md的时候.那么一个简易的md编辑器显得尤为重要,如果想要在自己的项目中添加一个md编辑器,那么不妨来看看这篇文章 我认为的编辑器分成两类,一种是分为左右两边实现即时渲染: ...
- mac markdown_适用于Mac的最佳Markdown编辑器
mac markdown Markdown provides a convenient way to add formatting to a plain text document, while le ...
- 使用 Vue 和 Electron 开发一款简单的 Markdown 编辑器
2021SC@SDUSC 本文并不涉及自己设计一套 Markdown 渲染组件的部分,Markdown 渲染组件可通过 marked 和 highlight.js 自行实现.但本文重点在于如何使用 E ...
- web可嵌入编辑器汇总
web编辑器 web编辑器 代码编辑器 Ace CodeMirror Monaco Editor 三个编辑器对比 富文本编辑器 1.UEditor 百度的. 2.kindeditor 3.simdit ...
最新文章
- RACER: Rapid and accurate correction of errors in reads 快速、准确地修正读数中的错误
- 【C/C++】“std::basic_ios _Elem,_Traits:无法访问private变量在类中的声明”错误原因与解决办法
- Linux C : Makefile 的编写和示例
- C/C++中的##用法
- 【WPF】关于XAML Parse Exception,无法创建XXX的实例异常的一点小心得
- php parse url 中文,php parse_url()函数解析URL用法总结
- 【OpenCV学习笔记】【函数学习】八(序列数据结构)
- java 定时调用api_java定时任务接口ScheduledExecutorService
- this关键字与super关键字
- Canvas绘制地图
- Linux下Qt窗口半透明,Qt实现嵌入桌面的半透明窗口 good
- 乐乎常用的html源码,点点网关闭自定义html模板代码功能,网易lofter重新映入眼帘...
- IE6,IE7和FireFox兼容处理(持续发现中)
- 【wechat】微信开发——自定义菜单
- VulnHub-01 - Empire Lupin One打靶记录
- 合成孔径雷达成像算法与实现(信号处理基础知识点)
- avc水平什么意思_AVC是什么?
- 年轻人为何总是在跳槽?
- 按现在的政策灵活就业人员,还有没有必要每年自己缴纳养老保险?
- Python通过Spleeter实现音唱人声(歌声)伴奏分离