`
duhuilin01
  • 浏览: 884696 次
  • 性别: Icon_minigender_1
  • 来自: 湖南省
社区版块
存档分类
最新评论

wiki配置管理

阅读更多
# -*- coding: iso-8859-1 -*-
"""
    MoinMoin - Multiple configuration handler and Configuration defaults class

    @copyright: 2000-2004 Juergen Hermann <jh@web.de>,
                2005-2008 MoinMoin:ThomasWaldmann.
                2008      MoinMoin:JohannesBerg
    @license: GNU GPL, see COPYING for details.
"""

import re
import os
import sys
import time

from MoinMoin import log
logging = log.getLogger(__name__)

from MoinMoin import config, error, util, wikiutil
from MoinMoin.auth import MoinAuth
import MoinMoin.events as events
from MoinMoin.events import PageChangedEvent, PageRenamedEvent
from MoinMoin.events import PageDeletedEvent, PageCopiedEvent
from MoinMoin.events import PageRevertedEvent, FileAttachedEvent
from MoinMoin import session
from MoinMoin.packages import packLine
from MoinMoin.security import AccessControlList
from MoinMoin.support.python_compatibility import set

_url_re_cache = None
_farmconfig_mtime = None
_config_cache = {}


def _importConfigModule(name):
    """ Import and return configuration module and its modification time

    Handle all errors except ImportError, because missing file is not
    always an error.

    @param name: module name
    @rtype: tuple
    @return: module, modification time
    """
    try:
        module = __import__(name, globals(), {})
        mtime = os.path.getmtime(module.__file__)
    except ImportError:
        raise
    except IndentationError, err:
        logging.exception('Your source code / config file is not correctly indented!')
        msg = """IndentationError: %(err)s

The configuration files are Python modules. Therefore, whitespace is
important. Make sure that you use only spaces, no tabs are allowed here!
You have to use four spaces at the beginning of the line mostly.
""" % {
    'err': err,
}
        raise error.ConfigurationError(msg)
    except Exception, err:
        logging.exception('An exception happened.')
        msg = '%s: %s' % (err.__class__.__name__, str(err))
        raise error.ConfigurationError(msg)
    return module, mtime


def _url_re_list():
    """ Return url matching regular expression

    Import wikis list from farmconfig on the first call and compile the
    regexes. Later just return the cached regex list.

    @rtype: list of tuples of (name, compiled re object)
    @return: url to wiki config name matching list
    """
    global _url_re_cache, _farmconfig_mtime
    if _url_re_cache is None:
        try:
            farmconfig, _farmconfig_mtime = _importConfigModule('farmconfig')
        except ImportError, err:
            if 'farmconfig' in str(err):
                # we failed importing farmconfig
                logging.debug("could not import farmconfig, mapping all URLs to wikiconfig")
                _farmconfig_mtime = 0
                _url_re_cache = [('wikiconfig', re.compile(r'.')), ] # matches everything
            else:
                # maybe there was a failing import statement inside farmconfig
                raise
        else:
            logging.info("using farm config: %s" % os.path.abspath(farmconfig.__file__))
            try:
                cache = []
                for name, regex in farmconfig.wikis:
                    cache.append((name, re.compile(regex)))
                _url_re_cache = cache
            except AttributeError:
                logging.error("required 'wikis' list missing in farmconfig")
                msg = """
Missing required 'wikis' list in 'farmconfig.py'.

If you run a single wiki you do not need farmconfig.py. Delete it and
use wikiconfig.py.
"""
                raise error.ConfigurationError(msg)
    return _url_re_cache
分享到:
评论

相关推荐

    SpringBoot2.0+Vue3.0前后端分离wiki文件管理系统源码.zip

    《SpringBoot2.0+Vue3.0前后端分离wiki文件管理系统源码解析》 在当前的互联网开发环境中,前后端分离已经成为了一种常见的架构模式,它可以提高开发效率,优化用户体验,同时也使得前后端职责更加明确。本系统采用...

    文档管理Markdown文件自动实时同步转换到dokuwiki的一种方法

    本篇文章探讨了一种将Markdown文件自动实时同步到DokuWiki的方法,旨在结合两种工具的优势,提高文档管理的效率和便利性。 Markdown是一种轻量级的标记语言,因其简洁易读的格式而受到广泛欢迎,特别是在编写技术...

    dokuwiki安装与配置[归纳].pdf

    dokuwiki安装与配置 dokuwiki是一个功能强大且灵活的Wiki软件,能够帮助用户快速创建和管理知识库。下面是关于dokuwiki的安装和配置的知识点: 1. 安装dokuwiki 在Ubuntu系统上安装dokuwiki,首先需要下载doku...

    dokuwiki知识库管理

    **DokuWiki知识库管理** DokuWiki是一款开源的、专为团队协作设计的轻量级wiki系统。它不需要数据库,可以直接在纯文本文件中存储内容,这使得它易于备份、恢复和版本控制。这款软件特别适合小型团队用于文档共享、...

    wiki资源管理系统

    - “wiki安装文档.doc”提供了详细的安装流程,对于首次部署Wiki系统的用户非常有用,涵盖了服务器配置、数据库连接等关键步骤。 - “upgrade21utf8.zip”是针对某个旧版本(可能是2.1)的升级包,通常包含升级...

    Wiki架设手册

    它的强大功能和灵活性使得用户可以创建和管理复杂的知识库。Mediawiki 支持多语言,包括中文,这使得中文用户能够轻松地搭建自己的Wiki站点。 ### Mediawiki的优势 1. **易用性**:Mediawiki 提供直观的用户界面,...

    widows下wiki详细安装配置文档

    【Windows下Wiki安装配置详解】 在Windows环境下搭建Wiki平台,特别是对初学者而言,可能会遇到不少挑战。本文将详细介绍如何在Windows 2003服务器上安装和配置MediaWiki(MW),一个基于PHP开发的开源Wiki软件。MW...

    wiki(非常不错的wiki源码)

    【标题】"wiki(非常不错的wiki源码)"指的是一个用于创建和管理知识库的开源软件,可能是指HDWiki,这是一个广泛应用于构建企业或个人知识分享平台的系统。它提供了便捷的方式来组织、编辑和检索信息,使得知识的共享...

    wiki部署文档

    wiki 部署文档是关于在 CentOS 操作系统上安装和配置 Docker 环境的文档。该文档涵盖了从升级内核版本到安装 Docker 的整个过程。下面是该文档中所涉及到的知识点: 1. 查看内核版本:使用 uname -r 命令可以查看...

    dokuwiki稳定版,可以在windows或者linux上面搭建,个人用或者公司用都可以,轻量、易安装、免费、便于管理

    对于那些希望避免复杂数据库配置的用户来说,DokuWiki是一个理想的选择。 在安全性方面,DokuWiki表现出色,具备良好的权限管理系统,可以精细控制不同用户对内容的访问和编辑权限。这对于企业内部知识库的构建尤其...

    dokuwiki 插件.zip

    AddNewPage简化了页面创建,XHEditor提供了高级的编辑体验,而SimpleNavi则优化了导航流程,使得DokuWiki成为一个更加高效的知识管理和协作平台。在实际应用中,可以根据团队的需求和工作流程,灵活选择和配置这些...

    Wiki.js 开源项目-windows版

    `Wiki.js` 是一个基于 `JavaScript` 开发的开源 Wiki 系统,专为个人和小企业设计,用于知识管理和信息共享。"windows版" 表明这个项目不仅支持常见的跨平台环境,还特别优化了在 Windows 操作系统上的部署和运行。 ...

    集成editor.md的dokuwiki(支持markdown)

    在IT领域,DokuWiki是一个流行的开源wiki软件,主要用于创建和管理文档。它以其简洁的界面、易于编辑和强大的文本格式化能力而受到喜爱。然而,原生的DokuWiki支持的是其自有的wikitext语法,而不是更通用的Markdown...

    dokuwiki.zip

    DokuWiki是一个强大的开源wiki引擎,专为那些寻求简洁、高效知识管理解决方案的个人和团队设计。这个系统基于PHP开发,无需数据库支持,这使得它易于安装和维护,尤其适用于那些资源有限或对数据库操作不熟悉的小型...

    基于Spring Boot的WIKI知识库管理系统.zip

    基于Spring Boot的WIKI知识库管理系统 项目概述 本项目是一个基于Spring Boot框架开发的WIKI知识库管理系统,旨在提供一个高效、易用的平台来管理和分享知识。系统集成了多种功能,包括用户管理、文档管理、分类...

    TRIRIGA Wiki 设施管理软件

    ### TRIRIGA Wiki 设施管理软件:关键知识点解析 #### 一、设施管理与TRIRIGA Wiki - **设施管理(Facilities Management, FM)**:这是一门涉及建筑及其环境的综合管理学科,旨在确保组织的核心业务能够顺利进行...

    wiki建站系统

    10. **部署与维护**: 部署wiki建站系统需要考虑服务器环境配置、数据库安装、域名绑定等步骤,而后期维护则包括软件更新、数据备份、性能优化等。 综上所述,"wiki建站系统"是一个采用PHP开发的、仿照互动百科的...

    dokuwiki.tgz

    2. **配置文件**:修改conf/dokuwiki.ini配置文件,根据实际需求调整各项参数,如语言、主题、权限等。 3. **初始化**:运行install.php脚本,按照提示完成初始化设置,包括创建管理员账号、设置站点信息等。 4. *...

    puppet开源自动化配置管理平台介绍

    ### Puppet开源自动化配置管理平台详解 #### 一、Puppet简介与实现原理 Puppet是一款由Puppet Labs公司开发的开源自动化配置管理平台,旨在帮助系统管理员自动化IT基础设施的配置和管理过程。Puppet的核心设计理念...

Global site tag (gtag.js) - Google Analytics