--[[ plugindef = { regex = "^/foo/bar/.*", description = "My Awesome Plugin", load_page = func(entry, player), ^ Must return text, allow_save save_page = func(entry, player), ^ Must return bool } ]] local plugin_defs = { } function wikilib.register_plugin(def) plugin_defs[#plugin_defs + 1] = def end local function do_handle(what, entry, player, text) for _,pi in ipairs(plugin_defs) do if entry:match(pi.regex) then return pi[what](entry, player, text) end end end function wikilib.plugin_handle_load(entry, player) return do_handle("load_page", entry, player) end function wikilib.plugin_handle_save(entry, player, text) return do_handle("save_page", entry, player, text) end