当前位置: 首页 > news >正文

一款强大的实时协作Markdown工具 | CodiMD 9.6K ⭐

CodiMD 介绍

一款强大的实时协作Markdown笔记工具

CodiMD 是一个开源的实时协作 Markdown 笔记工具,它允许用户在任何平台上共同编辑 Markdown 文档。核心功能是实时协作,它允许多个用户同时编辑同一个文档,并实时看到彼此的更改。支持实时渲染预览,支持超多的富文本格式,比如常用的图片、表格、emoji 表情和代码段,此外还有各种图表和数学公式。

🚢 项目地址

  • Github:https://github.com/hackmdio/codimd
  • 官网: https://hackmd.io/

🚀CodiMD 特征

  • 🚀 开源且自由:CodiMD 完全开源,您可以自由地在私有服务器上部署,完全掌控您的数据。

  • ⏰ 强大的 Markdown 支持:它对 Markdown 语法有出色的支持,各种流程图,并且可以实时预览编辑的效果。

  • 🔌 高度自定义:除了基本的编辑功能,CodiMD 还提供了 API 和插件支持,允许开发者进行进一步的扩展和定制。

  • 👤 实时协作:多人可以在同一份文档上进行实时编辑,且每个人的编辑都会有不同的颜色标记,方便追踪。

  • 🌐良好的兼容性:兼容主要浏览器,包括 Chrome、Safari 和 Firefox 等,使用户在不同的设备和操作系统上均可获得流畅体验

  • 🔑独立自主的存储解决方案: 与大多数依赖于云端存储的工具不同,CodiMD 允许用户自主管控所有数据。通过选择适合的托管解决方案,用户可根据需求设计专属的安全性与隐私策略。

🛠️ 部署 CodiMD

👻 先决条件/要求

  • 最低 512MB RAM(推荐 1GB+)
  • 具备docker,docker-compose 环境

🐳 使用Docker Compose部署

version: "3"
services:database:#image: postgres:11.6-alpineimage: docker.cnb.cool/srebro/pidin/postgres:11.6-alpine ##CNB镜像加速地址environment:- POSTGRES_USER=codimd- POSTGRES_PASSWORD=pidin.srebro.cn  ##自定义密码- POSTGRES_DB=codimdvolumes:- "database-data:/var/lib/postgresql/data"restart: alwayscodimd:#image: nabo.codimd.dev/hackmdio/hackmd:2.5.4image: docker.cnb.cool/srebro/pidin/hackmd:2.5.4 ##CNB镜像加速地址environment:- CMD_DB_URL=postgres://codimd:pidin.srebro.cn@database/codimd- CMD_USECDN=falsedepends_on:- databaseports:- "3000:3000"volumes:- upload-data:/home/hackmd/app/public/uploadsrestart: always
volumes:database-data: {}upload-data: {}

浏览器访问CodiMD 地址:http://ip:3000/

🧭 使用Nginx反向代理

#CodiMDserver {listen       443 ssl;server_name  codimp.srebro.cn;  ##替换成自己的域名error_page  404              /404/404.html;charset utf-8;ssl_certificate /home/application/nginx/cert/srebro.cn.pem; ssl_certificate_key /home/application/nginx/cert/srebro.cn.key;ssl_session_cache    shared:SSL:1m;ssl_ciphers  HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers  on;location / {proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-Real-IP $remote_addr;proxy_set_header x-wiz-real-ip $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-Forwarded-Proto $scheme;proxy_pass http://localhost:3000;}
}

image-20250419180227228

  • 注册账户

    ⚠ 注意: 这里注册 和 登录都是同一个输入框,需要先填入邮箱和密码,然后点击注册,即可

image-20250419182005183

  • 登录后界面

image-20250419182304953

  • 新建笔记

image-20250419182343649

  • 导入一个Markdown 文件
    • 可以实时看到markdown源代码和渲染后的界面
    • 右上角显示 一个用户 在线,也就是当前用户;

image-20250419182426128

  • 实时协作
    • 新打开一个无痕的浏览器窗口,复制上面的URL地址,可以看到右上角多了一个参与者,在线人数变成了2人
    • ⚠ 如果需要一起协助编译,需要再创建一个用户并且登录上,默认显示是Guest访客

image-20250419182645813

image-20250419182932224

image-20250419182955459

image-20250419183318114

🎁 获取CodiMD

  • CNB 仓库地址:CodiMD

相关文章:

  • 小小矩阵设计
  • C++学习之类与对象
  • 一款丰富的工作流自动化平台 | N8N 83.6K ⭐
  • C++23 中 static_assert 和 if constexpr 的窄化布尔转换
  • 【锂电池剩余寿命预测】BiLSTM双向长短期记忆神经网络锂电池剩余寿命预测(Matlab源码)
  • Python基于语音识别的智能垃圾分类系统【附源码、文档说明】
  • 前端之勇闯DOM关
  • Nginx常用命令,及常见错误
  • PR网表出现assign该如何解决
  • 音视频小白系统入门课-3
  • 第十五讲、Isaaclab中在机器人上添加传感器
  • # 利用迁移学习优化食物分类模型:基于ResNet18的实践
  • 【Java面试笔记:基础】6.动态代理是基于什么原理?
  • pip的源管理和包管理
  • 黑马点评之Feed流技术实现关注推送与滚动分页查询
  • 光谱相机在肤质检测中的应用
  • strings.ToUpperSpecial 使用详解
  • Java中链表的深入了解及实现
  • Linux信号的产生
  • 安卓投屏软件QtScrcpy
  • 远香湖畔“戏”味浓,“吾嘉有戏”探索戏剧与图书跨界融合
  • 宁德时代校友红利!副董事长给母校复旦豪捐10亿,曾毓群给交大捐近14亿
  • 生态环境部:我国正在开展商用乏燃料后处理厂的论证
  • 《国语汇校集注》:以1900余条注解,揭示隐微,提供思考
  • 国产手术机器人+5G技术,上海医生同一天远程为五地患者开刀
  • 印尼塔劳群岛附近发生6.3级左右地震