Skip to content
Alexander Misel edited this page Jul 7, 2020 · 5 revisions

欢迎来到LuaWiki的说明页。这个小Wiki将使用MediaWiki语法。

开发目标

成为MediaWiki的一个替代,重新实现一个现代化的Wiki。

  • 基于LPeg的MediaWiki解析器,从MW解析到HTML
  • 用Lua重新实现关键模板,移植维基百科的Lua模块
  • 引入MariaDB作为数据库,设计基础表结构
  • 编辑API和基于Web的编辑器
  • (可能)与维基百科同步、允许使用维基媒体OAuth登录,并保存到维基百科

原则

  • 用Lua实现的MediaWiki解析器应当可以在不修改维基百科条目源代码的条件下,正常解析成HTML
  • MediaWiki的模板语法可以丢弃,但应支持简单的页面嵌套(transclusion),并考虑替代模板的语法
    • 关于嵌套,我认为可以支持比MediaWiki更少的层数限制,比如3层以内
    • 模板替代语法,初步构想是使用Lua实现,但未尝不可以自定义一套简洁的语法,使用Lpeg来解析

当前进度

  • MediaWiki语法解析
    • 基本完成:段落、简单内链外链、特殊block、1-7级标题、文字加粗倾斜、复杂列表(*#:;)
    • 计划:表格、模板、代码块、公式、参考文献