标签: MediaWiki

  • 一个用于MediaWIki使用腾讯云COS文件预览的扩展

    一个用于MediaWIki使用腾讯云COS文件预览的扩展

    一个用于MediaWIki使用腾讯云COS文件预览的扩展

    image-20241121123042728
    image-20241121123056733

    示例页面:全国社平、最低工资标准及社保比例 – null (blog.guohao.asia/)

    使用说明

    安装

    1. 上传至extensions并解压;
    2. 在本地MediaWiki中搜索MediaWiki:Common.css,将以下CSS填入页面:
       .responsive-iframe {
           width: 100%; /* 宽度自适应 */
           height: 100vh; /* 高度设置为视窗高度 */
           border: none;
       }
    1. LocalSettings.php中加入以下代码启用扩展:
    wfLoadExtension('CosPreview');

    使用

    <cospreview id="cdn-1253443493" path="picgo/202411201059195.xlsx" region="ap-beijing" />

    Usage Instructions

    Installation

    1. Upload to the extensions directory and unzip;
    2. Search for MediaWiki:Common.css in your local MediaWiki, and add the following CSS to the page:
       .responsive-iframe {
           width: 100%; /* Full width responsiveness */
           height: 100vh; /* Height set to viewport height */
           border: none;
       }
    1. Add the following code to LocalSettings.php to enable the extension:
    wfLoadExtension('CosPreview');

    用法

    <cospreview id="cdn-1253443493" path="picgo/202411201059195.xlsx" region="ap-beijing" />

    显示效果:

    Document Preview

    https://wwoi.lanzoub.com/iyJZ72gihtmf
    密码:afo8

    CC-BY-NC-SA

    一个用于MediaWIki使用腾讯云COS文件预览的扩展 is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.

  • 一个用于MediaWIki使用腾讯云COS文件预览的扩展

    一个用于MediaWIki使用腾讯云COS文件预览的扩展

    一个用于MediaWIki使用腾讯云COS文件预览的扩展

    image-20241121123042728
    image-20241121123056733

    示例页面:全国社平、最低工资标准及社保比例 – null (blog.guohao.asia/)

    使用说明

    安装

    1. 上传至extensions并解压;
    2. 在本地MediaWiki中搜索MediaWiki:Common.css,将以下CSS填入页面:
       .responsive-iframe {
           width: 100%; /* 宽度自适应 */
           height: 100vh; /* 高度设置为视窗高度 */
           border: none;
       }
    1. LocalSettings.php中加入以下代码启用扩展:
    wfLoadExtension('CosPreview');

    使用

    <cospreview id="cdn-1253443493" path="picgo/202411201059195.xlsx" region="ap-beijing" />

    Usage Instructions

    Installation

    1. Upload to the extensions directory and unzip;
    2. Search for MediaWiki:Common.css in your local MediaWiki, and add the following CSS to the page:
       .responsive-iframe {
           width: 100%; /* Full width responsiveness */
           height: 100vh; /* Height set to viewport height */
           border: none;
       }
    1. Add the following code to LocalSettings.php to enable the extension:
    wfLoadExtension('CosPreview');

    用法

    <cospreview id="cdn-1253443493" path="picgo/202411201059195.xlsx" region="ap-beijing" />

    显示效果:

    Document Preview

    https://wwoi.lanzoub.com/iyJZ72gihtmf
    密码:afo8

    CC-BY-NC-SA

    一个用于MediaWIki使用腾讯云COS文件预览的扩展 is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license.

  • MediaWiki配置文件分享

    MediaWiki配置文件分享

    MediaWiki配置文件分享

    MediaWiki的配置文件位于/path/mediawiki/LocalSettings.php

    以下是https://docs.guohao.asia/ 经脱敏的配置文件内容(修改配置前请务必做好备份)

    <?php
    # 防止直接通过网页访问
    if ( !defined( 'MEDIAWIKI' ) ) {
    	exit;
    }
    
    ## 基本设置
    $wgSitename = "null";  # 站点名称
    $wgMetaNamespace = "Null";  # 站点命名空间
    $wgScriptPath = "";  # 脚本路径
    $wgServer = "https://docs.guohao.asia";  # 服务器地址
    $wgResourceBasePath = $wgScriptPath;  # 静态资源路径
    $wgLogos = [
    	'1x' => "$wgResourceBasePath/resources/assets/logo.png",  # 站点logo
    	'icon' => "$wgResourceBasePath/resources/assets/logo.png",
    ];
    
    ## 用户和邮件设置
    $wgEnableEmail = true;  # 启用邮件功能
    $wgEnableUserEmail = true;  # 用户邮件通知
    $wgEmergencyContact = "";  # 紧急联系邮箱
    $wgPasswordSender = "x@xx.xxx";  # 密码发送者邮箱
    $wgEnotifUserTalk = false;  # 用户对话通知
    $wgEnotifWatchlist = false;  # 观察列表通知
    $wgEmailAuthentication = true;  # 启用邮件认证
    
    ## 数据库设置
    $wgDBtype = "mysql";  # 数据库类型
    $wgDBserver = "localhost";  # 数据库服务器
    $wgDBname = "xxxx";  # 数据库名称
    $wgDBuser = "xxxx";  # 数据库用户名
    $wgDBpassword = "xxxx";  # 数据库密码
    $wgDBprefix = "xxxx";  # 数据库表前缀
    $wgDBssl = false;  # 是否使用SSL
    $wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";  # 数据库表选项
    $wgSharedTables[] = "actor";  # 共享数据库表
    
    ## 缓存设置
    $wgMainCacheType = CACHE_MEMCACHED;  # 主缓存类型
    $wgParserCacheType = CACHE_MEMCACHED;  # 解析器缓存类型
    $wgMessageCacheType = CACHE_MEMCACHED;  # 消息缓存类型
    $wgMemCachedServers = array("127.0.0.1:11211");  # Memcached服务器地址
    
    ## 文件和上传设置
    $wgEnableUploads = true;  # 启用文件上传
    $wgUseImageMagick = true;  # 使用ImageMagick处理图片
    $wgImageMagickConvertCommand = "/usr/bin/convert";  # ImageMagick命令路径
    $wgUseInstantCommons = false;  # 是否使用即时共享图片
    
    ## 语言和时区设置
    $wgLanguageCode = "zh-cn";  # 语言代码
    $wgLocaltimezone = "PRC";  # 时区设置
    
    ## 安全和性能设置
    $wgSecretKey = "26abb9898bb4cb347aa8cc71bcxxxxxxxxxxxxxxxx9824f6078771c5d40b0cb44765cf8bbf";  # 安全密钥
    $wgAuthenticationTokenVersion = "1";  # 认证令牌版本
    $wgUpgradeKey = "d0ddxxxx07b2xxxx";  # 升级密钥
    
    ## 版权和皮肤设置
    $wgRightsPage = "";  # 版权页面
    $wgRightsUrl = "";  # 版权链接
    $wgRightsText = "";  # 版权文本
    $wgRightsIcon = "";  # 版权图标
    $wgDefaultSkin = "vector-2022";  # 默认皮肤
    wfLoadSkin( 'MinervaNeue' );  # 加载皮肤
    wfLoadSkin( 'MonoBook' );
    wfLoadSkin( 'Timeless' );
    wfLoadSkin( 'Vector' );
    
    ## 页脚和工具栏设置
    unset($wgFooterIcons['poweredby']);  # 去掉底部的Powered by
    $wgDefaultUserOptions['usebetatoolbar'] = 1;  # 启用测试工具栏
    
    ## 访问和内容设置
    $wgShowIPinHeader = false;  # 不在头部显示IP
    $wgAllowHttpsExternalImages = true;  # 允许外链HTTPS图片
    $wgAllowCopyUploads = true;  # 允许通过URL上传图片
    $wgAllowExternalImages = true;  # 允许外链图片
    $wgFileExtensions = array('png','gif','jpg','jpeg','doc','ppt','pptx','pdf','docx','xls','xlsx','webp','svg','mp4','mp3');  # 允许的文件扩展名
    $wgVerifyMimeType = false;  # 不验证MIME类型
    
    ## 钩子和脚本设置
    $wgHooks['BeforePageDisplay'][] = function( OutputPage &$out, Skin &$skin ) {
        // 添加Mermaid.js脚本
        $out->addScript( '<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.9.1/mermaid.min.js" integrity="sha512-6a80OTZVmEJhqYJUmYd5z8yHUCDlYnj6q9XwB/gKOEyNQV/Q8u+XeSG59a2ZKFEHGTYzgfOQKYEBtrZV7vBr+Q==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>' );
    
        // 添加Google AdSense脚本
        $out->addScript( '<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-36xxxx78343xxxx0" crossorigin="anonymous"></script>' );
    
        // 添加统计代码
        $out->addScript( '<script type="text/javascript" src="//api.tongjiniao.com/c?_=7xxxx772xxxx819968" async></script>' );
    };
    
    ## 编辑和页面创建权限设置
    $wgGroupPermissions['*']['edit'] = false;  # 禁止未登录用户编辑
    $wgGroupPermissions['*']['createpage'] = false;  # 禁止未登录用户创建页面
    $wgGroupPermissions['sysop']['edit'] = true;  # 允许管理员编辑
    $wgGroupPermissions['sysop']['createpage'] = true;  # 允许管理员创建页面
    
    ## 移动和默认皮肤设置
    wfLoadSkin( 'Citizen' );  # 加载移动皮肤
    $wgDefaultMobileSkin = 'citizen';  # 默认移动皮肤
    
    ## HTML和内容安全策略设置
    $wgContentSecurityPolicy = "
        default-src 'self';
        img-src 'self' https://*;
        media-src 'self' https://www.guohao.asia https://blog.guohao.asia/ https://docs.guohao.asia;  
        script-src 'self';
        style-src 'self';
    ";
    $wgAllowIframeTag = true;  # 允许iframe标签
    $wgHTML5Video = true;  # 启用HTML5视频
    $wgRawHtml = true;  # 允许解析HTML
    
    ## 管理员权限设置
    $wgGroupPermissions['sysop']['deleterevision'] = true;  # 允许管理员删除修订记录
    $wgGroupPermissions['sysop']['deletelogentry'] = true;  # 允许管理员删除日志条目
    
    ## 邮件服务器设置
    $wgSMTP = [
        'host'      => 'smtp-relay.brevo.com',  # SMTP服务器地址
        'IDHost'    => 'smtp-relay.brevo.com',  # 通常是网站域名
        'localhost' => 'smtp-relay.brevo.com',  # 某些邮件服务器需要此参数
        'port'      => 587,  # 连接到SMTP服务器的端口
        'auth'      => true,  # 是否使用SMTP认证
        'username'  => 'xxxx8xxxx@smtp-brevo.com',  # SMTP认证用户名
        'password'  => 'xxxxMxxxxsxxxxpO'  # SMTP认证密码
    ];
    
    ## 未登录用户的缓存设置
    $wgUseFileCache = true;  # 启用文件缓存
    $wgFileCacheDirectory = "$IP/images/cache";  # 文件缓存目录
    $wgMainCacheType = CACHE_MEMCACHED;  # 主缓存类型
    $wgParserCacheType = CACHE_MEMCACHED;  # 解析器缓存类型
    $wgMessageCacheType = CACHE_MEMCACHED;  # 消息缓存类型
    $wgMemCachedServers = [ '127.0.0.1:11211' ];  # Memcached服务器地址
    $wgSessionsInObjectCache = true;  # 启用对象缓存会话
    $wgSessionCacheType = CACHE_MEMCACHED;  # 会话缓存类型
    
    ## 扩展设置
    wfLoadExtension( 'SyntaxHighlight_GeSHi' );  # 语法高亮扩展
    wfLoadExtension( 'ImageMap' );  # 图片地图扩展
    wfLoadExtension( 'HeaderFooter' );  # 页眉页脚扩展
    wfLoadExtension( 'EmbedVideo' );  # 视频嵌入扩展
    wfLoadExtension( 'VisualEditor' );  # 可视化编辑器扩展
    wfLoadExtension( 'AdminLinks' );  # 管理链接扩展
    wfLoadExtension( 'Widgets' );  # 小部件扩展
    wfLoadExtension( 'Cite' );  # 引用扩展
    wfLoadExtension( 'ParserFunctions' );  # 解析器函数扩展
    wfLoadExtension( 'PageImages' );  # 页面图片扩展
    wfLoadExtension( 'Math' );  # 数学公式扩展
    wfLoadExtension( 'PdfHandler' );  # PDF处理扩展
    wfLoadExtension( 'ImportOfficeFiles' );  # 导入办公文件扩展
    wfLoadExtension( 'MultimediaViewer' );  # 多媒体查看器扩展
    wfLoadExtension( 'OATHAuth' );  # OATH认证扩展
    ?>
  • MediaWiki使用手记

    MediaWiki使用手记

    MediaWiki使用手记

    删除历史修订记录

    php maintenance/deleteOldRevisions.php --delete

    插入视频并控制视频尺寸

    EmbedVideo

    1. 安装==EmbedVideo==插件

    下载文件并将文件放入你的extensions/文件夹中名为EmbedVideo的目录下。
    在你的LocalSettings.php文件底部添加以下代码:

    wfLoadExtension( 'EmbedVideo' );

    完成——转到你的维基的Special:Version页面,以验证扩展是否已成功安装。

    1. 在B站上传视频(当然,服务器允许也可以直接添加到服务器)
    2. 获取视频的ID,https://www.bilibili.com/video/BV1bJUVY7EBi/ 连接中的BV1bJUVY7EBi即为视频ID.
    3. 在MediaWiki的内容中插入以下代码:
    {{#ev:bilibili|BV1bJUVY7EBi|width=800|autoresize=true}}

    即可插入来自B站的对应视频,并将视频的宽度设置为800px

    1. 为确保手机端的播放效果,可以在MediaWiki:Common.css页面加入以下代码:
    @media only screen and (max-width: 600px) {
      /* 针对手机的样式 */
      .ev-video {
        width: 100%;
        height: auto;
      }
    }
    image-20241114161813121

    启用MediaWiki缓存:

    # 以下为未登陆用户启用缓存-2024年11月18日
    $wgUseFileCache = true; // default: false
    $wgFileCacheDirectory = "$IP/images/cache"; // default: "{$wgUploadDirectory}/cache" which equals to "$IP/images/cache"
    
    # 启用EMCACHED缓存-2024年11月18日
    $wgMainCacheType = CACHE_MEMCACHED;
    $wgParserCacheType = CACHE_MEMCACHED; // optional
    $wgMessageCacheType = CACHE_MEMCACHED; // optional
    $wgMemCachedServers = [ '127.0.0.1:11211' ];
    $wgSessionsInObjectCache = true; // optional -- removed in 1.33+
    $wgSessionCacheType = CACHE_MEMCACHED; // optional

  • 曲线救国,实现在MediaWiKi中插入外链视频

    曲线救国,实现在MediaWiKi中插入外链视频

    曲线救国,实现在MediaWiKi中插入外链视频

    MediaWiKi出于安全考虑是禁止插入外链媒体的,外链图片尚可通过css配置解决,但视频反复尝试都无法实现。

    在腾讯云的对象存储中,发现了一段视频播放器的代码,想到一个曲线救国的方式。也就是将视频上传到COS中,然后在服务器上建一个HTML文件,将以下播放器代码复制进去。

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
      <meta
        name="viewport"
        content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,shrink-to-fit=no"
      >
      <title>播放器</title>
      <link
        href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.2.1/tcplayer.min.css"
        rel="stylesheet"
      >
      <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.5.2/libs/flv.min.1.6.2.js">
      </script>
      <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.2.1/libs/hls.min.0.13.2m.js">
      </script>
      <script src="https://video-public-1259789488.cos.ap-guangzhou.myqcloud.com/lib/dash.all.min.js">
      </script>
      <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.5.0/tcplayer.v4.5.0.min.js">
      </script>
      <style>
        html,body{
          margin: 0;
          padding: 0;
          overflow: hidden;
          height: 100%;
        }
        .tcplayer {
          margin: 0 auto;
          width: 100%;
          height: 100%;
        }
      </style>
    </head>
    <body>
    <video
      id="player-container-id"
      preload="auto" width="100%"
      height="100%"
      playsinline
      webkit-playsinline
    ></video>
    <script>
      var tcplayer = TCPlayer("player-container-id", {
        reportable: false,
      });
      tcplayer.src('https://www.guohao.asia/picgo/202411121424692.mp4')
    </script>
    </body>
    </html>

    在MediaWiKi编辑过程中,插入以下代码,以<iframe>方式插入外链视频。

    <html>
    <head>
        <title>播放器</title>
        <style>
            .responsive-iframe {
                width: 100%; /* 宽度自适应 */
                height: 100vh; /* 高度自适应 */
                border: none;
            }
        </style>
    </head>
    <body>
        <iframe class="responsive-iframe" src="https://docs.guohao.asia/video/shr/1.html" frameborder="0" allowfullscreen></iframe>
    </body>
    </html>
AI 助手