X-Git-Url: http://nitlanguage.org diff --git a/contrib/nitiwiki/src/wiki_base.nit b/contrib/nitiwiki/src/wiki_base.nit index d53a758..70cf35f 100644 --- a/contrib/nitiwiki/src/wiki_base.nit +++ b/contrib/nitiwiki/src/wiki_base.nit @@ -50,12 +50,17 @@ class Nitiwiki # Synchronize local output with the distant `WikiConfig::rsync_dir`. fun sync do var root = expand_path(config.root_dir, config.out_dir) - sys.system "rsync -vr --delete {root}/ {config.rsync_dir}" + var rsync_dir = config.rsync_dir + if rsync_dir == "" then + message("Error: configure `wiki.rsync_dir` to use rsync.", 0) + return + end + sys.system "rsync -vr --delete -- {root.escape_to_sh}/ {rsync_dir.escape_to_sh}" end # Pull data from git repository. fun fetch do - sys.system "git pull {config.git_origin} {config.git_branch}" + sys.system "git pull {config.git_origin.escape_to_sh} {config.git_branch.escape_to_sh}" end # Analyze wiki files from `dir` to build wiki entries. @@ -79,7 +84,6 @@ class Nitiwiki print "nitiWiki" print "name: {config.wiki_name}" print "config: {config.ini_file}" - print "url: {config.root_url}" print "" if root_section.is_dirty then print "There is modified files:" @@ -147,7 +151,7 @@ class Nitiwiki path = path.simplify_path if entries.has_key(path) then return entries[path].as(WikiSection) var root = expand_path(config.root_dir, config.source_dir) - var name = path.basename("") + var name = path.basename var section = new WikiSection(self, name) entries[path] = section if path == root then return section @@ -194,9 +198,6 @@ class Nitiwiki end var file = expand_path(config.root_dir, config.templates_dir, name) var tpl = new TemplateString.from_file(file) - if tpl.has_macro("ROOT_URL") then - tpl.replace("ROOT_URL", config.root_url) - end if tpl.has_macro("TITLE") then tpl.replace("TITLE", config.wiki_name) end @@ -476,7 +477,7 @@ class WikiSection private fun try_load_config do var cfile = wiki.expand_path(wiki.config.root_dir, src_path, wiki.config_filename) if not cfile.file_exists then return - wiki.message("Custom config for section {name}", 1) + wiki.message("Custom config for section {name}", 2) config = new SectionConfig(cfile) end @@ -553,8 +554,10 @@ class WikiArticle redef var src_full_path: nullable String = null redef fun src_path do + var src_full_path = self.src_full_path if src_full_path == null then return null - return src_full_path.substring_from(wiki.config.root_dir.length) + var res = wiki.config.root_dir.relpath(src_full_path) + return res end # The page markdown source content. @@ -612,9 +615,8 @@ class WikiConfig super ConfigTree # Returns the config value at `key` or return `default` if no key was found. - private fun value_or_default(key: String, default: String): String do - if not has_key(key) then return default - return self[key] + protected fun value_or_default(key: String, default: String): String do + return self[key] or else default end # Site name displayed. @@ -641,12 +643,6 @@ class WikiConfig # * default: `` var wiki_logo: String is lazy do return value_or_default("wiki.logo", "") - # Root url of the wiki. - # - # * key: `wiki.root_url` - # * default: `http://localhost/` - var root_url: String is lazy do return value_or_default("wiki.root_url", "http://localhost/") - # Markdown extension recognized by this wiki. # # We allow only one kind of extension per wiki. @@ -755,6 +751,14 @@ class WikiConfig return value_or_default("wiki.auto_summary", "true") == "true" end + # Automatically add breadcrumbs. + # + # * key: `wiki.auto_breadcrumbs` + # * default: `true` + var auto_breadcrumbs: Bool is lazy do + return value_or_default("wiki.auto_breadcrumbs", "true") == "true" + end + # Sidebar position. # # Position of the sidebar between `left`, `right` and `none`. Any other value @@ -811,6 +815,18 @@ class WikiConfig # * key: `wiki.git_branch` # * default: `master` var git_branch: String is lazy do return value_or_default("wiki.git_branch", "master") + + # URL to source versionning used to display last changes + # + # * key: `wiki.last_changes` + # * default: `` + var last_changes: String is lazy do return value_or_default("wiki.last_changes", "") + + # URL to source edition. + # + # * key: `wiki.edit` + # * default: `` + var edit: String is lazy do return value_or_default("wiki.edit", "") end # WikiSection custom configuration.