在线API文档管理工具Simple doc

Simple doc是一个简易的文档发布管理工具,为何要写Simple doc呢?主要缘由仍是githubwiki并很差用;没有目录结构,文章没有Hx标签索引,最悲剧的是文章编辑的时候不能直接图片粘贴和文件上传;为了知足本身的需求也顺带帮Beetlex写个完整的web示例因此花了些时间写了Simple doc.虽然Simple doc功能简单但在文档展示上仍是要比githubwiki好上很多,因此在完成后也把githubwiki迁到这上面来了(毕竟都是基于markdown因此迁过来也简单)。javascript

功能

  • 基于markdownhtml

    (若是不会markdown那这个工具就无法用了)vue

  • 支持图片和附件上传java

    默认实现只支持jpa,png,ziprar文件上传(最大2MB,这个限制能够自行修改),上传方式支持:拖放,粘贴等.linux

  • 支持各类代码主题git

    支持数十种代码主题,由浏览者选择本身喜欢的主题github

  • 支持两层目录列表web

    大部分状况下两层目录可以知足大部分需求,因此在实现上没有支持更多层次的目录结构json

  • 支持文章结构标签windows

    只要文章超过3个h2,h3,h4的标签则会对应生成文件的目录列表,方便文章内容定位

运行环境

支持linux,windows等装有.net core 2.2或更高版的服务环境。

编译项目

从https://github.com/IKende/SimpleDoc下载最新的源码,用vs2017或更高版本打开而后发布便可;发布完成后目录下有run.batrun.sh两运行文件运行便可。若是想运行windows service须要自行封装,想在linux下后台运行能够在用nohup &指令来运行。

HTTP配置

项中的HttpConfig.json是配置相关服务,主要用于配置服务端口,地址和HTTPs等。详细能够查看http://doc.ikende.com/#c6d82c8e677f43cfa1127f32c308caa1

运行效果

能够经过查看http://doc.ikende.com实际部署效果,这是beetlex的官方文档地址。

选择代码主题

Simple doc的代码主题是浏览者本身来选择,选择后查看其余文章里的代码都是这一主题来展示。

管理

既然是简易版,那在功能管理固然也是直接粗暴,功能和界面都至关简陋!功能主要有三个:分类管理,文章管理和配置(注意:登录的用户名是 admin,密码是123456).

不过度类仍是文章都有内容,若是分类有内容的状况在浏览时会把内容展示出来,若是没有则会拿分类下的第一篇文章来展示。除了基础信息外还提供是否发布和排序的顺序设置,若是没有发布的分类或文章是不会被展示出来。

文章编辑

接下来让你看一下什么是最简陋的文档编辑页面了……

能够根据须要切换编辑预览模式

不要惊讶你看到http://doc.ikende.com上的全部文档就是这样编辑出来的;其实markdown还真不须要什么多功能的文本编辑器, 有一个文档输入框就足够了。但上面的输入框还有一个很重要的功能,就是支持图片粘贴和拖放,再结合下面的上传按钮就足能够完成附件添加功能.编辑旁边有一个预览按钮,能够切换过去看当前编辑内容的完整展示。

管理配置

主要用于修改网站标题,管理密码和JWT对应的Key

实现技术

Simple doc是基于BeetleX.FastHttpApivuejs来实现,对于我这样一个后端人员来vuejs的切入仍是比较容易的,说实话用起还真是爽!在这个项目除了了解到BeetleX.FastHttpApivuejs的结合外还能了解到一些js处理粘贴文件上传和图片大小切割的一些实现功能。其实为了更好地和vuejs还封装了一个对应的client类,如下简单地展示一下Simple doc的登录代码:

  • html


<form> <div class="form-group"> <label>用户名</label> <input type="text" v-model="login.data.name" class="form-control input-sm"> </div> <div class="form-group"> <label>密码</label> <input type="password" v-model="login.data.pwd" class="form-control input-sm"> </div> <button type="button" @click="login.post()" class="btn btn-default btn-sm">登录</button></form>


  • javascript


var login = new beetlexAction("/admin/Login", { name: '', pwd: '' });login.requesting = function (d) { if (!d.name || !d.pwd) { alert('输入登录用户名和密码!'); return false; } return true;};login.requested = function (r) { if (r) { window.location.href = "/admin/"; } else { alert('用户名或密码不正确!'); }};var page = new Vue({ el: '#page', data: { info: webSiteInfo, login: login, }});


  • server api


[SkipFilter(typeof(AdminFilter))] public object Login(string name, string pwd, IHttpContext context) { if (name == Webconfig.Default.Data.Usename && pwd == Webconfig.Default.Data.Password) { JWTHelper.Default.CreateToken(context.Response, name, "admin"); return true; } return false; }



若是你对这种应用技术感兴趣能够关注Simple doc的源码和BeetleX

声明:发布此文是出于传递更多知识以供交流学习之目的。如有来源标注错误或侵犯了您的合法权益,请做者持权属证实与咱们联系,咱们将及时更正、删除,谢谢。

做者:开源微服务(BeetleX)

来源:https://www.cnblogs.com/smark/p/11811965.html

More:【微信公众号】 u3dnotes

本文分享自微信公众号 - Unity3D游戏开发精华教程干货(u3dnotes)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索