zoukankan      html  css  js  c++  java
  • MediaWiKi简明安装与配置笔记

          一.安装篇

          1.下载并安装Xampp

          下载地址

          注意,如果MySql不能成功启动,则应检查My.ini配置文件中basedir与datadir是否配置为相对路径.如果是,请改为绝对路径后再次启动.

          也谈关于绿色版my.ini相对路径设置的问题

          2.下载MediaWiKi

          下载地址

          3.将MediaWiKi解压到Xampp安装目录的htdocs目录下

          4.安装Php缓存组件

          从MediaWiKi的安装向导来看,其起码支持Apc,XCache,WinCache.但是WinCache只有非线程安全版本,而Xampp包含的Php是线程安全版本.所以就只能从前两者中选择.我选择的是Apc.下载后解压到Php的Ext目录下,然后在Php.ini中加入extension=php_apc.dll即可

          PHP提供的下载地址

          微软提供的下载地址

          5.进入Http://localhost/mediawiki,进行软件安装

          二.配置篇

          1.MediaWiki

          a.在LocalSettings.php中加入$wgExternalLinkTarget = '_blank';,使所有链接都从新窗口打开

          参考

          Manual:$wgExternalLinkTarget

          b.修改$wgLogo使其指向特定Logo图片

          c.新增$wgNamespacesWithSubpages[NS_MAIN] = true;,使其在主命名空间支持子页面.

          参考

          Manual:$wgNamespacesWithSubpages/zh

          d.从官方下载插件并配置,使其支持多文件上传

          下载

          e.新增$wgFileExtensions变量,如$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'wmv', 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx' );,使其可上传指定文件类型

          参考

          Mediawiki允许多种文件类型(格式)文件上传设置

          f.新增$wgMaxUploadSize变量,如$wgMaxUploadSize = 1024*1024*1000;

          修改php.ini文件内post_max_size变量值,如post_max_size=1000M

          修改php.ini文件内upload_max_filesize变量值,如upload_max_filesize=1000M

          使其可以上传最大为指定大小的文件

          注意,修改后需重启Apache

          参考

          改变mediawiki上传文件大小的设置

          g.默认情况下是无法上传office相关文件,系统会报两种错误:

          该文件是已损坏或以其它方式无法读取的 ZIP 文件。 不能正确检查安全。

          The file is a corrupt or otherwise unreadable ZIP file. It cannot be properly checked for security.

          文件扩展名“.ppt”与检测到的文件MIME类型(application/zip)不匹配。

          File extension ".ppt" does not match the detected MIME type of the file (application/zip)

          对于前一个错误,需增加$wgAllowJavaUploads变量并设置为true

          对于后一个错误,需打开includes/mime.types文件,找到application/zip行并在后面加上doc docx xls xlsx ppt pptx

          参考

          Manual:MIME type detection

          Manual:Configuring file uploads

          h.默认情况下,文件名中如果包含中文或特殊字符,是无法上传的,其会提示

          本wiki不支持在文件名中使用特殊字符。

          This wiki doesn't support filenames with special characters.

          这种情况只会在服务端是windows环境下才会发生.官方也发布了对应的解决办法.不过由于不太懂这里面的语法,且看上去要改很多地址,我还是决定来适应这个Bug吧.

          参考

          upload files with special characters onto mediawiki on wampserver

          i.修改skins\vector\screen.css文件中#bodyContent的字体大小样式,使之与编辑器中默认字体大小一样.我在两个地方都设置为16pt.

          j.在地址栏输入mediawiki/index.php/MediaWiki:Print.css,在编辑框内加入如下内容,可让页面打印版本减少无关内容,如来自于...,页面修改次数等.

    .firstHeading { margin-top: 0; padding-top: 0; }
    #siteSub { display: none; }
    .printfooter { display: none; }
    #catlinks, .catlinks { display: none; }
    #footer { display: none; }

          参考

          Help:Printable

          k.从官网下载CustomNavBlocks插件可以让侧边导航栏有更大的自定义自由度.

          参考

          Extension:CustomNavBlocks

          l. 从官网下载ReplaceText插件可以文章标题或内容的批量替换.

          参考

          Extension:Replace Text

          m. 默认情况下,只能同时移动100个页面,如果需要移动更多,请在LocalSettings.php中增加名为$wgMaximumMovedPages的变量并将其设定为想要的值

          Wikipedia:Moving a page

          2.TinyMce

          a.从官方插件页下载此插件,并按说明替换自带编辑器

          下载地址

          b.在上一步配置的文件LocalSettings.php中,在$wgExt_valid_elements 变量后加入,nowiki来支持Wiki转义

          参考:

          TinyMCE - Insert HTML Code

          c.从官方下载中文语言包并覆盖进对应目录

          下载地址

          d.在TinyMce_MW.php文件的msword处后的配置中,加入language : \"cn\",使上面下载的语言包生效.由于在大部份情况下使用msword主题,后文所有涉及TinyMce初始化的配置都是针对msword.

          参考:

          TinyMCE中文语言包安装

          e.在刚才加入语言配置的下方再加一行:font_size_style_values : \"16pt,24pt,32pt,40pt,48pt,56pt,64pt\",.相应,在其jscripts/tiny_mce/themes/advanced的editor_template.js文件中,将tinymce.themes.AdvancedTheme处后面的sizes修改为[16,24,32,40,48,56,64]

          f.仍然在editor_template.js文件中,在theme_advanced_fonts处加入:宋体=宋体;黑体=黑体;仿宋=仿宋;楷体=楷体;隶书=隶书;幼圆=幼圆;

          参考:

          给WordPress的TinyMCE编辑器加上中文字体

          g.在jscripts/tiny_mce/themes/advanced/skins/default/中的content.css中,第一行,将字号修改为16pt

          参考:

          tiny_mce的使用,如何修改默认字体

          3.语法高亮

          a.从官方插件页下载此插件,并按说明进行配置

          下载地址

          b.从下面提供的地址下载插件,并按主页上的方式进行配置.

          下载地址

          使中用,弹出的输入框不需要那么多选项,我只保留了装订线(行号),是否可折叠与语言选择.且各控件标题名可能显示有误.需要对此控件作二次修改.

          在dialog.htm页面中去除多余选项,并将C#作为默认语言.修改后的关键代码如下

    <fieldset id="syntaxhl_options">
      <legend>{#syntaxhl_dlg.highlight_options}</legend>
      <input type="checkbox" name="syntaxhl_nogutter" id="syntaxhl_nogutter" value="1" checked="checked" /><label for="syntaxhl_nogutter" >{#syntaxhl_dlg.nogutter}</label>    
      <input type="checkbox" name="syntaxhl_collapse" id="syntaxhl_collapse" value="1" /><label for="syntaxhl_collapse">{#syntaxhl_dlg.collapse}</label><br />
      <label for="syntaxhl_language">{#syntaxhl_dlg.choose_lang}:</label>
      <select name="syntaxhl_language" id="syntaxhl_language">
        <option value="applescript">AppleScript</option>
        <option value="as3">ActionScript3</option>
        <option value="bash">Bash(Shell)</option>
        <option value="coldfusion">Cold Fusion</option>
        <option value="csharp" selected="selected">C#</option>
        <option value="cpp">C++</option>
        <option value="css">CSS</option>
        <option value="delphi">Delphi</option>
        <option value="diff">Diff</option>
        <option value="erlang">Erlang</option>
        <option value="groovy">Groovy</option>
        <option value="java">Java</option>
        <option value="javafx">JavaFX</option>
        <option value="jscript">Jscript</option>
        <option value="perl">Perl</option>
        <option value="php">PHP</option>
        <option value="plain">Plain(Text)</option>
        <option value="powershell">PowerShell</option>
        <option value="python">Python</option>
        <option value="ruby">Ruby</option>
        <option value="sass">SASS</option>
        <option value="scala">Scala</option>
        <option value="sql">SQL</option>
        <option value="vb">VB</option>
        <option value="xml">XML/XHTML</option>
      </select>
    </fieldset>

          相对的,dialog.js文件也需要修改

    init : function() {
      // get arguments passed from plugin to window.
      var editor_content = tinyMCEPopup.getWindowArg('editor_content');
      var editor_options = tinyMCEPopup.getWindowArg('editor_options');
      
      // check to see if any content was passed to window
      if(editor_content != undefined) {
        // select form and place snippet code into editor window
        var f = document.forms[0];
        tinyMCEPopup.editor.dom.setHTML(f.syntaxhl_code, editor_content);
    
        // check for each option and update form elements accordingly
        if(editor_options['brush']) {
          for(var i = 0; i < f.syntaxhl_language.options.length; i++) {
            if(f.syntaxhl_language.options[i].value == editor_options['brush']) {
              f.syntaxhl_language.selectedIndex = i;
              break;
            }
          }
        }
        if(editor_options['gutter'] && editor_options['gutter'] == 'false') {
          f.syntaxhl_nogutter.checked = 'true';
        }
        if(editor_options['collapse'] && editor_options['collapse'] == 'true') {
          f.syntaxhl_collapse.checked = 'true';
        }
      }
    },
    
    insert : function() {
      var f = document.forms[0], textarea_output, options = '', replace_element;
    
      //If no code just return.
      if(f.syntaxhl_code.value == '') {
        tinyMCEPopup.close();
        return false;
      }
    
      // get replacement argument to determine return type
      replace_element = tinyMCEPopup.getWindowArg('replace_content');
    
      if(!f.syntaxhl_nogutter.checked) {
        options += 'gutter: false; ';
      }
      if(f.syntaxhl_collapse.checked) {
        options += 'collapse: true; ';
      }
    
      options += "toolbar: false;"
    
      textarea_output = '<pre class=" ';
      textarea_output += f.syntaxhl_language.value + '; ' + options + '">';
      textarea_output +=  tinyMCEPopup.editor.dom.encode(f.syntaxhl_code.value);
      textarea_output += '</pre> '; /* note space at the end, had a bug it was inserting twice? */
      
      // check for replace_element option value and return output accordingly
      if(replace_element == false) {
        tinyMCEPopup.editor.execCommand('mceInsertContent', false, textarea_output);
      } else {
        tinyMCEPopup.editor.execCommand('mceReplaceContent', false, textarea_output);
      }
      tinyMCEPopup.close();
    }

          最后,将语言包文件zh.js重命名为cn.js,zh_dlg.js重命名为cn_dlg.js.如果还有乱码,则将其内容强行Html编码

          cn.js

    tinyMCE.addI18n('cn.syntaxhl',{
        desc : '\u63d2\u5165\u4ee3\u7801'
    });

          cn_dlg.js

    tinyMCE.addI18n('cn.syntaxhl_dlg',{
        title : '\u63d2\u5165\u4ee3\u7801',
        highlight_options : '\u9ad8\u4eae\u9009\u9879',
        paste : '\u7c98\u8d34\u4ee3\u7801',
        choose_lang : '\u6298\u53e0\u4ee3\u7801',
        nogutter : '\u884c\u53f7',
        //light : '精简模式',
        collapse : '\u6298\u53e0\u4ee3\u7801'
        //fontsize : '字体大小',
        //first_line : '起始行的值',
        //highlight : '高亮行'
    });

          以上两者配置好后,在编辑器中通过弹出框输入代码.编辑器内不会着色.保存后浏览时着色.

          另一个基本可用的插件

          三.使用篇

          1.加入超链接时不能使用TinyMce自带的方式,而要使用MediaWiKi自带的方式

          2.当你要直接显示某些被MediaWiKi特殊定义的字符,比如大中扩号时,切换到Html编辑界面,将需要转义的字符嵌入<nowiki>标签即可.

          3.使用TinyMce自带的表格功能时,MediaWiKi因不识别会显示时会出现一对TBody标签.解决方法是在mediawiki/includes/sanitizer.php中找到removeHTMLtags函数,在$htmlnest变量后新增'tbody'元素.

          参考

          embed flash into mediawiki

          How to enable HTML tags in MediaWiki?

          4.编辑导航栏时,使用的地址是mediawiki/index.php/MediaWiki:Sidebar,而不是mediawiki/MediaWiki:Sidebar,否则会出现 403 access forbidden

          参考:

          MediaWiki官方文档

          11款开源Wiki管理系统

          WIKI系统开源软件

          MediaWiki使用手册

  • 相关阅读:
    Medium | LeetCode 347. 前 K 个高频元素 | 快速排序
    Medium | LeetCode 215. 数组中的第K个最大元素 | 快速排序
    Easy | LeetCode 75. 颜色分类 | 快速排序
    lib和dll
    windows使用cmd打印出当前路径下的所有文件名称
    windows中的sleep和Ubuntu中的sleep
    ‘mutex’ in namespace ‘std’ does not name a type
    gcc命令参数
    ubuntu18.04 使用pthread库
    vs2019 c语言配置pthreads多线程
  • 原文地址:https://www.cnblogs.com/ljzforever/p/3047956.html
Copyright © 2011-2022 走看看