jeroen-de-dauw / mediawiki-github
一个简单的 MediaWiki 扩展,用于在维基页面上嵌入 GitHub 托管的 内容。支持 Markdown 渲染和语法高亮。
Requires
- php: >=7.1
- ezyang/htmlpurifier: ~4.9
- jeroen/file-fetcher: ~6.0
- jeroen/file-fetcher-cache: ~1.0
- jeroen/simple-cache: ~2.0
- mediawiki/parser-hooks: ~1.5
- michelf/php-markdown: ~1.7
Replaces
README
如果您只需要 Markdown 渲染,请使用 External Content 扩展。
一个简单的 MediaWiki 扩展,用于嵌入存储在 GitHub git 仓库中的文件内容。它支持 Markdown 渲染、语法高亮和缓存。
专业的支持和定制开发可通过 Professional.Wiki 提供。
要求
安装
安装 GitHub 扩展的推荐方式是使用 Composer,利用 MediaWiki 1.22 内置的 Composer 支持。
在您的 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。如果列出了,则表示您已成功安装!
配置
默认GitHub仓库可以通过$egGitHubDefaultRepo
设置来配置。将默认仓库的名称分配给此设置,在包含此扩展之后修改LocalSettings文件,例如,对于Semantic MediaWiki,如下所示
$egGitHubDefaultRepo = 'SemanticMediaWiki/SemanticMediaWiki';
要限制可以从哪些仓库获取文件,请使用egGitHubRepositoryWhitelist
设置。如果此列表为空(默认为空),则用户可以从他们指定的任何维基获取文件。这意味着他们可以包含可能有害的内容。扩展应该转义有害内容;此设置添加了一个额外的安全层。
仅允许来自单个仓库的文件
$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'
- 使用MediaWikis 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
设置,允许完全禁用缓存 - 添加了失败的HTTP请求到GitHub的错误日志记录
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)
- 修复了“特殊:版本”上的版本号。
- 从 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 创建并维护。