一款强大的实时协作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

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

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

相关文章

若依如何切换 tab 不刷新

方法 如上图配置 菜单中选是否缓存:缓存 资料 前端手册 |RuoYi:

【浙江大学DeepSeek公开课】回望AI三大主义与加强通识教育

回望AI三大主义与加强通识教育 一、人工智能三大主义二、人工智能发展历程三、从 ChatGPT 到 DeepSeek四、人工智能通识教育五、人工智能的挑战与未来 一、人工智能三大主义 符号主义 :逻辑推理,将推理视为计算过程。如苏格拉底三段论,通过前…

边缘计算全透视:架构、应用与未来图景

边缘计算全透视:架构、应用与未来图景 一、产生背景二、本质三、特点(一)位置靠近数据源(二)分布式架构(三)实时性要求高 四、关键技术(一)硬件技术(二&#…

C++——多态、抽象类和接口

目录 多态的基本概念 如何实现多态 在C中,派生类对象可以被当作基类对象使用 编程示例 关键概念总结 抽象类 一、抽象类的定义 基本语法 二、抽象类的核心特性 1. 不能直接实例化 2. 派生类必须实现所有纯虚函数才能成为具体类 3. 可以包含普通成员函数和…

初级达梦dba的技能水准

在x86环境(windows、linux)安装单机软件,安装客户端创建过至少20套数据库,优化参数并更新过正式许可会用逻辑导出导入以及dmrman备份了解manager工具的使用配置sqllog日志,并能解释输出内容能够分析因磁盘空间不足、内…

监控页面卡顿PerformanceObserver

监控页面卡顿PerformanceObserver 性能观察器掘金 const observer new PerformanceObserver((list) > {}); observer.observe({entryTypes: [longtask], })

智能座舱测试内容与步骤

智能座舱的测试步骤通常包括以下环节: 1.测试环境搭建与准备 • 硬件需求分析:准备测试车辆、服务器与工作站、网络设备以及传感器和执行器模拟器等硬件设备。 • 软件需求分析:选择测试管理软件、自动化测试工具、模拟软件和开发调试工具等。…

Redis——网络模型

目录 前言 1.用户空间和内核空间 1.2用户空间和内核空间的切换 1.3切换过程 2.阻塞IO 3.非阻塞IO 4.IO多路复用 4.1.IO多路复用过程 4.2.IO多路复用监听方式 4.3.IO多路复用-select 4.4.IO多路复用-poll 4.5.IO多路复用-epoll 4.6.select poll epoll总结 4.7.IO多…

电力系统中为什么采用三相交流电?

电力系统中为什么采用三相交流电 电力系统中采用三相交流电,主要是因为它在输电效率、设备使用、能量传输平稳性等方面相比单相交流或直流电具有显著优势。下面我详细解释一下原因: 🌟 1. 提高输电效率(节省电缆材料)…

python简介与入门

目录 python初始 python的优势 python的特性 python的应用领域 Linux环境中安装python 下载python3.11.6 安装依赖包 解压python压缩包 安装python 编译及安装 建立软连接 测试python3运行 设置国内pip更新源 更新pip版本(必须更新) wind…

Web内网渗透知识大全

内网渗透 端口转发 需要三个主机,Windows7、Windows2016、kali Windows7为内网主机 Windows2016为跳板机 kali为攻击机 使用到的工具 netsh、MSF 我们先在Windows7上开启一个80服务,而这个80服务只能由Windows2016访问,kali不能访问 我们…

ffmpeg av_buffer_unref的逻辑实现; av_freep 和 av_freep函数的区别

av_buffer_unref 是 FFmpeg 中用于管理引用计数和内存释放的核心函数,其内部实现机制如下: ‌一、核心流程‌ ‌引用计数递减‌ 函数首先对 AVBufferRef 的 buffer->refcount 进行原子递减操作(通过 atomic_fetch_add_explicit 等机制保证…

从 GPS 数据中捕捉城市休闲热点:空间异质性视角下的新框架

从 GPS 数据中捕捉城市休闲热点:空间异质性视角下的新框架 原文:Capturing urban recreational hotspots from GPS data: A new framework in the lens of spatial heterogeneity 1. 背景与意义 城市娱乐活动的重要性: 娱乐活动是城市生活…

rk3568main.cc解析

rk3568main.cc解析 前言解析前言 正点原子rk3568学习,rk官方RKNN_MODEL_ZOO文件中 rknn_model_zoo-main/examples/mobilenet/cpp/main.cc 从执行命令:./build-linux.sh -t rk3568 -a aarch64 -d mobilenet 到: cmake ../../examples/mobilenet/cpp \-DTARGET_SOC=rk356x\…

【实验数据处理matlab程序】程序1:绘制figure文件中曲线的RMS值

立意 在本课题所涉及的实验中,需要将2个拉线式位移传感器中的数据收集并处理,在此基础上求解相应的速度 主要功能 针对一个figure文件中仅包含一个plot,且该plot中包含指定数目的曲线,求这些曲线的RMS值;针对一个fi…

kotlin的kmp编程中遇到Unresolved reference ‘java‘问题

解决办法 打开 File → Project Structure → Project 确保 Project SDK 是 与你的 jvmToolchain 保持一致 如果没有,点击右上角 Add SDK 添加 JDK 路径 同步Sync 然后就正常了。 package org.example.projectimport androidx.compose.animation.AnimatedVi…

静电放电测试中垂直和水平耦合板的作用

在静电放电(ESD,Electrostatic Discharge)测试中,垂直耦合板(Vertical Coupling Plane, VCP)和水平耦合板(Horizontal Coupling Plane, HCP)是模拟设备在实际环境中因静电放电产生的…

Web开发-JavaEE应用JNDI注入RMI服务LDAP服务DNS服务高版本限制绕过

知识点: 1、安全开发-JavaEE-JNDI注入-LADP&RMI&DNS等 2、安全开发-JavaEE-JNDI注入-项目工具&手工原理等 演示案例-WEB开发-JavaEE-JNDI注入&LDAP&RMI服务&DNS服务&高版本限制绕过 JNDI全称为 Java Naming and DirectoryInterface&am…

基于Transformer与随机森林的多变量时间序列预测

哈喽,我不是小upper,今天和大家聊聊基于Transformer与随机森林的多变量时间序列预测。 不懂Transformer的小伙伴可以看我上篇文章:一文带你彻底搞懂!Transformer !!https://blog.csdn.net/qq_70350287/article/detail…

初识网络原理

文章目录 1.IP地址2.端口号3.网络中的五元组4.协议分层5.封装和分用6.客户端与服务器 1.IP地址 IP地址 (IP Address): 用于在网络中唯一标识一台设备(主机、路由器等)。IP地址分为IPv4和IPv6两种版本。IPv4是32位地址,通常表示为四个用点分隔…