-
Notifications
You must be signed in to change notification settings - Fork 18
MarkdownSpec
wxaxiaoyao edited this page Dec 28, 2016
·
22 revisions
我们的wiki页面是由模版+(自然语言+HTML+WIKI命令)组成的。
每个页面只能有一个模版,如果不添则为网站的默认全局模版, 模版可以包含其他页面(例如Github的WIKI页面,包含了bottom, side两个页面) 除了模版,整个页面是由(自然语言+HTML+WIKI命令) 类似糖葫芦一样, 是一串下来的。 通过插入WIKI命令实现其中某一截的动态显示 所有命令(模块)都提供编辑UI。
模块示例:
```/world
{“path“:1, "world":2, "name":"wikicraft"}
```
参考:
- https://github.com/ymcatar/gitbook-plugin-youtubex/blob/master/index.js
- https://github.com/markdown-it/markdown-it/blob/master/docs/development.md
[/template default]()
[/org_header]()
[/org_stats]()
[/org_recent_works]()
任意markdown文字
[/org_footer]()
注意:
- 一般每个Module会对应一个Client的JS渲染文件(渲染最终页面以及命令编辑器)。Server提供接口。 全部由Client的JS生成
- 部分模块是只有VIP才能使用的。 例如组织相关的。 保存页面时检查VIP即可。 即时VIP过期,也不影响正常查看。
- 例如组织作品提交,审核等:这些都有对应模块,不是网站基础功能。 所以有些模块有自己的数据库文件。
- 每个WIKI Mod支持0个,1个或多个Markdown指令。
- 每个WIKI Mod代码的代码需要统一放到目录
wiki/mod/[modname]
下面。 例如: mod package manager - 每个Mod有一个
./main.lua
用于在服务器启动时注册markdown指令。 - 每个Mod的markdown指令放到
./markdown/cmd_[name].js
. 每个命令一个文件。 都派生自基类cmd_base.js
- 重载:
render(text)
,renderEditor(text, mdDoc)
- 重载:
[/lesson](title:"", teacher:"", hours:1, difficulty:1, desc:"some desc", image:"", content:[{url:""}])
出现在第一行,指定页面模版。 每个页面只能有一个模版,如果不添则为网站的默认全局模版, 模版可以包含其他页面(例如Github的WIKI页面,包含了bottom, side两个页面)
显示当前组织的统计信息。
NPL和Paracraft的package管理。 WikiModPackageManager
liyu@2016.11.2
作品列表模块。
[/project_list](title:"",type:"",list:"",tag:"",number:"")
title:列表的标题
type
all:全部作品
new: 最新更新
list: 显示list中指定的作品
follow:关注的作品列表
tag:关键字模式
list:类型为list时,显示对应的内容,列表内容用唯一的作品名,使用逗号分隔
tag:匹配的关键字内容,用逗号分割
number:显示数量
示例:
[/works_list](title:"最近更新",type:"new",list:"",tag:"",number:"3")
liyu@2016.11.2
[/count](title:"",type:"")
title:计数器的标题
type
project:包含的作品数
follow:关注的内容数量
fans:收藏者数量
member:成员数量
submit:提交作品数量
liyu@2016.11.2
- 为页面添加一个留言评论的功能
- 页面作者可以删除全部
- 提交者可以删除自己的
[/comment](allow:”“)
state
all:全部人可用
mumber:会员可用
none:仅显示已有内容,关闭回复
liyu@2016.11.2
组织作品提交、比赛提交参赛,点击后打开一个窗口,内容是自己作品的目录,选择要提交的项目,然后确认。自动模式不需要审核,手动模式,组织管理员会收到提醒,需要点击确认是同意还是拒绝。
[/submit_project](user:"",verify:"")
user
all:全部人
mumber:组织成员
verify
auto:自动同意
manual:手动审核
liyu@2016.11.2
自动模式不需要审核,手动模式,组织管理员会收到提醒,需要点击确认是同意还是拒绝。
[/join_organization](verify:"")
verify
auto:自动同意
manual:手动审核