介绍

电脑中存了很多markdown文档,为了管理这些文档,特写了这个md管理工具。

我的想法是,把现有的markdown文件复制到指定文件夹中,自动生成markdown的网页,不仅可以在自己电脑上运行,而且还能把它上传到网站上,供其它人在线使用;多个markdown文档项目可同进行管理,以后只需增删改查markdown文件。

最近花了点时间,完成了这个小巧便㑺的md文档管理应用RsCode.Doc.Web

功能

  1. markdown文档自动生成url,可以通过浏览器访问,方便管理

  2. 自动生成文档目录,并且自定义文档url名称

  3. 可在电脑上直接运行

  4. SEO友好,可部署为网站运行

特点

  1. 不使用任何数据库

  2. 同时管理多个项目文档

  3. 可自定义url,服务端生成html,在线上运行(支持windows和linux),更有利于seo

  4. 可直接在PC端运行,也可以在部署在服务器上运行

下载

下载地址 https://pan.rs888.net/detail/32

下载密码 rscode

使用

  1. 打开Document文件夹

    解压后,先打开项目文件夹,有个名称为Document的文件夹,如果没有就新建一个;

  2. 复制md文件

    把你的md文件或文件夹复制到Document文件夹下,例子中的可以参考,或删除

  3. 双击运行Rswl.Doc.Web.exe

    打开cmd窗口不要关闭,在浏览器中打开 http://localhsot:5000即可访问

以后新增或修改md文件,直接丢到这个文件夹里就行了

提示:如果电脑上没有安装.net ,请打开https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0

windows系统 下载 HostingBundle 和 下载Asp.net Core

macOs系统 下载相安装包

rscode的文档就是用它来运行的,可供参考rscode.cn

配置

项目文件夹下,有个doc.json的文件,节点conig保存的是配置

name 表示真实存在的文件夹名称或文件名(不含扩展名)

tag 表示这个文件夹或文件的别名,值为英文字母或数字,url将显示tag

profile 定义文档简称

title 定义网页标题

description 定义网页描述

keywords 定义网页关键词

cacheTime 缓存时间,以分钟为单位

如果部署为网站,建议对中文的文件夹或文件名设置tag,设置网页的keywords 和 description

如果不对文件或文件夹配置,文件访问地址将变为 http://xx.xx/文件夹名/文件名.html的形式

技术实现

使用asp.net core mvc开发这个应用,用到markdown转html,动态控制器,缓存等技术

一. markdown转html

引用Markdig,对md文件的内容进行html转码

var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
var result = Markdown.ToHtml(txt,pipeline);

二. 动态Controller

使用方法MapDynamicControllerRoute()

实现思路

1.定义路由规则

app.UseEndpoints(endpoints =>
{endpoints.MapControllerRoute(name: "default",pattern: "{controller=Home}/{action=Index}/{id?}");endpoints.MapDynamicControllerRoute<TranslationTransformer>("{project}/{action}.html");endpoints.MapDynamicControllerRoute<TranslationTransformer>("{project}/{controller}/{action}.html");
});

2.将符合规则的url,交给指定的Controller/Action进行管理

2.1 注册符合规则的路由数据

​ 将文件夹和文件的tag数据保存,以供url验证

2.2 处理符合规则的路由,接管理请求

​ 自定义TranslationTransformer类继承DynamicRouteValueTransformer,重写TransformAsync()

 //请求将由/doc/detail接管
public override async ValueTask<RouteValueDictionary> TransformAsync(HttpContext httpContext, RouteValueDictionary values)
{if (!values.ContainsKey("project")  || !values.ContainsKey("action")) return values;var project = (string)values["project"];string controller = "";if(values["controller"]!=null){controller = await _translationDatabase.ResolveController(project, (string)values["controller"]);if (controller == null) return values;}var action = await _translationDatabase.ResolveAction(project, (string)values["action"]);if (action == null) return values;values["controller"] = "doc";values["action"] = "detail";values["projectTag"] = project;values["dirTag"] = controller;values["docTag"]= action;return values;
}

values 保存的是符合规则的路由参数,把己注册过的 url 交给doc/detail处理数据

3.指定的Controller/Action负责读取md,转成html

​ doc/detail 得到参数 projectTag,dirTag,docTag

​ 查找/projectTag/dirTag/docTag.md文件内容

三 缓存

使用RsCode中的缓存,使用内存缓存

使用内存缓存服务

builder.Services.AddMemoryCaches();

注入缓存

ICacheProvider cache;
public DocService(IEnumerable<ICacheProvider>caches)
{env = hostEnvironment;cache = caches.FirstOrDefault(c => c.CacheName== "memory");
}public void test()
{//cache.Get("key")//cache.Set("key","value")
}

简单的逻辑,解决了我md文档管理的大问题,如果你有疑问,可进群交流

好了, 以上是本文所有内容,希望对大家有所帮助,也希望大家对码农之家多多支持,你们的支持是我创作的动力!祝大家生活愉快!

markdown文档管理工具相关推荐

  1. php编写文件管理工具,php之markdown文档管理工具的实现代码

    本文主要和大家分享php之markdown文档管理工具的实现代码,希望能帮助到大家. 主要目标: 1.可以多人编辑 2.可以在浏览器中查看 3.有一个可以折叠的目录 4.支持多级目录 5.支持mark ...

  2. 文档管理工具(支持http、websocket、富文本、markdown)

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 文档管理工具(支持http.websocket.富文本.markdown) 二.实现功能 支持markdown语法 支持JSON测试 支持TXT测试 ...

  3. 接口文档管理工具showDoc

    随着互联网的发展,前后端分离已成为互联网项目开发的业界标准使用方式. 由此而产生的前端开发工程师和后端开发工程师的沟通效率问题. 推荐一个应此而生的文档管理工具---showdoc showdoc官网 ...

  4. 云效知识库 Thoughts,企业文档管理工具

    云效知识库 Thoughts,企业文档管理工具,云效知识库是一款企业 知识管理 工具,通过独立的知识库空间,结构化地组织在线协作文档,实现企业知识的积累和沉淀,促进知识的高度复用和流通. 云效知识库是 ...

  5. 基于WPF重复造轮子,写一款数据库文档管理工具(一)

    项目背景 公司业务历史悠久且复杂,数据库的表更是多而繁杂,每次基于老业务做功能开发都需要去翻以前的表和业务代码.需要理解旧的表的用途以及包含的字段的含义,表少还好说,但是表一多这就很浪费时间,而且留下 ...

  6. 你还在用收费的文档管理工具?我这有更牛逼的选择!完全免费

    点关注公众号,回复"1024"获取2TB学习资源! 今天给大家分享一款免费开源的在线文档管理工具 MinDoc ,提升 IT 部门的文档管理效率. 概述 MinDoc 是一款针对 ...

  7. 一个让我欲罢不能的开源文档管理工具

      大家好,我是小编南风吹,每天推荐一个小工具/源码,装满你的收藏夹,让你轻松节省开发效率,实现不加班不熬夜不掉头发!   今天小编推荐一款在线文档工具,现有swagger 文档.dubbo文档.数据 ...

  8. 在线文档管理工具都有什么值得推荐的?

    在线文档管理工具是现代企业和个人必备的工具之一,它们可以帮助用户方便地创建.编辑.共享和管理文档. 几个值得推荐的在线文档管理工具: Google 文档:Google 文档是一款免费的在线文档工具,它 ...

  9. Yep for Mac:专为Mac用户所设计的文档管理工具

    Yep for mac是一款实用的文件管理工具,相当于各种文件(PDF.DOC.Excel.PPT等)的一个iPhoto.Yep for mac能自动组织整理PDF.iWork.office等文件,归 ...

最新文章

  1. mysql遇到your password does not satisfy the current policy requirements
  2. php两个按钮左右怎么做,css布局两个button在同父标签中左右两侧分布的方法
  3. ArrayList、LinkedList、 Vector、Map 用法比较
  4. [结构型] -- 外观模式
  5. 抓取页面图片元素并保存到本机电脑
  6. Spring Data JPA - 参考文档 地址
  7. mysql5.7 innodb myisam 区别_InnoDB与MyISAM的区别(高性能MySQL笔记)
  8. 《TCP/IP Sockets编程(C语言实现) (第2版)》 代码下载(链接以及文件打包)
  9. 图样图森破 设置虚拟机优先级真的很容易?
  10. 【seeprettyface.com】开源源码:Video-Auto-Wipe
  11. vue中json数据格式化
  12. 2.自动加载(phalapi框架总结)
  13. 解决Keystore was tampered with, or password was incorrect
  14. 错过“复联4”在所不惜,迅雷链技术沙龙北京站有哪些更精彩的地方?
  15. 洛奇服务器维护,《洛奇Mabinogi》官方网站
  16. yunos6 是android几,成功脱离安卓?阿里首款国产操作系统YunOS6或将发布!
  17. matlab对稀疏矩阵求特征值,使用ARPACK查找稀疏矩阵的特征向量和特征值(称为PYTHON,MATLAB或FORTRAN子例程)...
  18. 记录一下自己写的小工具:shell 调度 SQL 批处理,递归查找调度路径
  19. ChatGPT真的像媒体宣传的那样“四平八稳”吗?
  20. 小米 Redmi airDots 2耳机一只一直在亮白光怎么办

热门文章

  1. [七夕节]——一款基于canvas绘制五颜六色线条合成一个爱心发光动画特效
  2. fluent p1模型_FLUENT中的辐射模型
  3. This Python interpreter is in a conda environment
  4. 北京注册的公司如何缴纳公积金
  5. 笔记本电脑屏幕颜色变浅
  6. OpenCV中HSV与PS中HSB对应关系
  7. 【檀越剑指大厂--redis】redis基础篇
  8. C#DGV选择shift多选
  9. 免费在线pdf转word
  10. Linux内存管理:HighMemory