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

wiki配置管理

阅读更多
        for name in decode_names:
            attr = getattr(self, name, None)
            if attr:
                # Try to decode strings
                if isinstance(attr, str):
                    try:
                        setattr(self, name, unicode(attr, charset))
                    except UnicodeError:
                        raise error.ConfigurationError(message %
                                                       {'name': name})
                # Look into lists and try to decode strings inside them
                elif isinstance(attr, list):
                    for i in xrange(len(attr)):
                        item = attr[i]
                        if isinstance(item, str):
                            try:
                                attr[i] = unicode(item, charset)
                            except UnicodeError:
                                raise error.ConfigurationError(message %
                                                               {'name': name})

    def _check_directories(self):
        """ Make sure directories are accessible

        Both data and underlay should exists and allow read, write and
        execute.
        """
        mode = os.F_OK | os.R_OK | os.W_OK | os.X_OK
        for attr in ('data_dir', 'data_underlay_dir'):
            path = getattr(self, attr)

            # allow an empty underlay path or None
            if attr == 'data_underlay_dir' and not path:
                continue

            path_pages = os.path.join(path, "pages")
            if not (os.path.isdir(path_pages) and os.access(path_pages, mode)):
                msg = """
%(attr)s "%(path)s" does not exist, or has incorrect ownership or
permissions.

Make sure the directory and the subdirectory "pages" are owned by the web
server and are readable, writable and executable by the web server user
and group.

It is recommended to use absolute paths and not relative paths. Check
also the spelling of the directory name.
""" % {'attr': attr, 'path': path, }
                raise error.ConfigurationError(msg)

    def _loadPluginModule(self):
        """
        import all plugin modules

        To be able to import plugin from arbitrary path, we have to load
        the base package once using imp.load_module. Later, we can use
        standard __import__ call to load plugins in this package.

        Since each configured plugin path has unique plugins, we load the
        plugin packages as "moin_plugin_<sha1(path)>.plugin".
        """
        import imp
        from MoinMoin.support.python_compatibility import hash_new

        plugin_dirs = [self.plugin_dir] + self.plugin_dirs
        self._plugin_modules = []

        try:
            # Lock other threads while we check and import
            imp.acquire_lock()
            try:
                for pdir in plugin_dirs:
                    csum = 'p_%s' % hash_new('sha1', pdir).hexdigest()
                    modname = '%s.%s' % (self.siteid, csum)
                    # If the module is not loaded, try to load it
                    if not modname in sys.modules:
                        # Find module on disk and try to load - slow!
                        abspath = os.path.abspath(pdir)
                        parent_dir, pname = os.path.split(abspath)
                        fp, path, info = imp.find_module(pname, [parent_dir])
                        try:
                            # Load the module and set in sys.modules
                            module = imp.load_module(modname, fp, path, info)
                            setattr(sys.modules[self.siteid], 'csum', module)
                        finally:
                            # Make sure fp is closed properly
                            if fp:
                                fp.close()
                    if modname not in self._plugin_modules:
                        self._plugin_modules.append(modname)
            finally:
                imp.release_lock()
        except ImportError, err:
            msg = """
Could not import plugin package "%(path)s" because of ImportError:
%(err)s.
分享到:
评论

相关推荐

    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