jeroen / 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 提供专业支持和定制开发。
要求
安装
推荐使用 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 创建并维护。