jeroen/mediawiki-github

一个简单的 MediaWiki 扩展,用于在维基页面上嵌入 GitHub 托管的文件内容。支持 Markdown 渲染和语法高亮。

资助包维护!
JeroenDeDauw

安装次数: 4,339

依赖者: 0

建议者: 0

安全: 0

星标: 32

关注者: 8

分支: 20

开放问题: 10

类型:mediawiki-extension

1.6.0 2020-02-21 00:58 UTC

This package is auto-updated.

Last update: 2024-08-30 01:07:56 UTC


README

如果您只需要 Markdown 渲染,请使用 External Content 扩展

一个简单的 MediaWiki 扩展,用于嵌入 GitHub git 仓库中存储的文件内容。它支持 Markdown 渲染、语法高亮和缓存。

构建状态:Build Status Code Coverage Scrutinizer Quality Score

在 Packagist 上:Latest Stable Version Latest Stable Version

通过 Professional.Wiki 提供专业支持和定制开发。

要求

安装

推荐使用 Composer 并利用 MediaWiki 1.22 内置的 Composer 支持 安装 GitHub 扩展。

在 MediaWiki 根目录中,您可以执行以下两个命令

COMPOSER=composer.local.json composer require --no-update jeroen/mediawiki-github "~1.4"
composer update jeroen/mediawiki-github --no-dev -o

有关通过 Composer 安装扩展的更多详细信息,请参阅 MediaWiki.org 上的文档。

验证安装成功

转到 Special:Version 并查看 GitHub 是否列在那里。如果是,您已成功安装它!

配置

可以使用 $egGitHubDefaultRepo 设置来设置默认的 GitHub 仓库。将此设置分配给 LocalSettings 文件中的默认仓库名称,在包含此扩展之后,例如对于 Semantic MediaWiki,如下所示

$egGitHubDefaultRepo = 'SemanticMediaWiki/SemanticMediaWiki';

要限制可以从哪些仓库获取文件,请使用 egGitHubRepositoryWhitelist 设置。如果此列表为空,默认情况下它是空的,用户可以从他们指定的任何 wiki 获取文件。这意味着他们可以包含可能有害的内容。该扩展应转义有害内容;此设置添加了一个额外的安全层。

仅允许来自单个仓库的文件

$egGitHubRepositoryWhitelist = [
    'SemanticMediaWiki/SemanticMediaWiki',
];

允许来自多个仓库的文件

$egGitHubRepositoryWhitelist = [
    'SemanticMediaWiki/SemanticMediaWiki',
    'JeroenDeDauw/GitHub',
    'JeroenDeDauw/Maps',
];

语法高亮

如果您想要代码语法高亮,您需要启用并配置 SyntaxHighlight 扩展。

缓存

在PHP请求过程中,文件内容将被缓存在内存中。主MediaWiki缓存用作二级缓存,默认TTL为600秒。您可以使用 $egGitHubCacheTime 设置来更改TTL。

$egGitHubCacheTime = 900;

您可以修改使用的缓存方法。支持的方法有

  • 'full' - 使用内存和MediaWiki缓存
  • 'none' - 不进行任何缓存

默认为 'full'。您可以通过以下方式更改此设置

$egGitHubCache = 'none';

网络

您可以修改用于获取文件的GitHub原始内容URL。默认为 https://rawcdn.githack.com,因为 https://raw.githubusercontent.com 在所有系统上都无法工作。您可以通过以下方式更改此设置

$egGitHubUrl = 'https://raw.githubusercontent.com';

您可以修改用于获取文件的方法。支持的方法有

  • 'mediawiki' - 使用MediaWiki的HTTP类
  • 'simple' - 使用PHP的file_get_contents

默认为 'mediawiki'。您可以通过以下方式更改此设置

$egGitHubFetcher = 'simple';

用法

{{#github:FileName}} 添加到您的维基页面中,其中FileName是要嵌入的文件名称。这可以包括路径,例如 {{#github:docs/INSTALL.md}}

您还可以指定仓库名和分支名称: {{#github:FileName|user/repo|branchName}}

对于语法高亮,此扩展使用与 SyntaxHighlight 扩展相同的属性:lang, line, start, highlight, inline。这些可以根据属性名称以任何顺序指定。

{{#github:FileName|user/repo|branchName|lang=bash|line=1|start=1|highlight=1,5,4|inline=0}}

可以将 lang 参数指定为第四个位置参数。

{{#github:FileName|user/repo|branchName|bash}}

当此功能激活时,默认为 line=0,start=1,和 inline=0。

发行说明

1.6.0 (2020-02-21)

  • 将默认GitHub原始内容URL更改为 https://rawcdn.githack.com(感谢@lmn8)

1.5.0 (2019-04-09)

  • 将最低PHP版本更改为7.1
  • 更新依赖项以提高兼容性

1.4.2 (2017-09-28)

  • 修复了MediaWiki文件获取代码中的错误,并再次将其作为默认方法

1.4.1 (2017-07-01)

  • <pre> HTML标签不再从内容中移除

1.4.0 (2017-06-30)

  • 将扩展安装位置从vendor更改为MediaWiki扩展文件夹
  • 添加了 $egGitHubCache 设置,允许完全禁用缓存
  • 添加了对GitHub失败的HTTP请求的错误记录

1.3.0 (2017-06-09)

  • 删除了对PHP < 7.0的支持
  • 添加了 egGitHubRepositoryWhitelist 设置
  • 在失败情况下使代码更加健壮

1.2.0 (2017-04-17)

  • 添加了对使用MediaWiki包含的SyntaxHighlight扩展进行语法高亮的支持(由Shay Harding提供)

1.1.1 (2016-11-06)

  • 修复了由MediaWiki最新版本中失败的i18n注册引起的关键问题

1.1.0 (2016-07-11)

  • 删除了对PHP < 5.5的支持
  • 修复了文件未找到的错误。在这种情况下,解析函数现在将返回一个空字符串。

1.0.3 (2016-07-10)

  • 修复了Special:Version上的版本号
  • 从FileFetcher ~2.0切换到~3.1

1.0.2 (2015-01-20)

  • 添加了 $egGitHubFetcher 设置
  • 现在默认使用 file_get_contents 获取文件,而不是MediaWiki的 HTTP

1.0.1 (2015-01-19)

  • 删除了对MediaWiki < 1.24的支持
  • 添加了 $egGitHubUrl 设置
  • 将默认GitHub原始内容URL从 https://raw.githubusercontent.com 更改为 https://cdn.rawgit.com(感谢Mike Cariaso)

1.0.0 (2015-01-19)

新功能

  • 添加了对Markdown的支持。以.md或.markdown结尾的文件现在将被适当渲染
  • 添加了 $egGitHubCacheTime 设置

兼容性更改

  • 现在需要通过Composer安装此扩展
  • 包名已从 jeroen-de-dauw/mediawiki-github 更改为 jeroen/mediawiki-github

增强功能

  • 增加了与 GitHub API 最新版本的兼容性
  • 现在使用基于 PSR-4 的自动加载
  • 现在使用 ParserHooks 库进行 github 解析器钩子
  • 增加了额外的测试

0.1.0 (2013-07-15)

  • 首次发布

运行测试

要使用 MediaWiki Vagrant,请参阅 此 gist,其中包含安装 PHP7 和使用 PHPUnit 6+ 运行 MediaWiki 测试运行器的步骤。

要运行代码风格检查和不需要 MediaWiki 的测试,请在基本目录中执行此操作

composer ci

作者

GitHub 扩展由 Jeroen De Dauw 创建并维护。

链接