ikkentim / wikiclone
轻松创建 GitHub wiki 镜像。
Requires
- gitonomy/gitlib: ^0.1.7
- michelf/php-markdown: ^1.5
This package is not auto-updated.
Last update: 2022-04-16 04:51:42 UTC
README
轻松镜像您的 GitHub wiki。
这个 Laravel 5 包允许您轻松镜像 GitHub wiki 上的文档。此包具有简单的配置文件和一个可定制的视图,允许您完全控制文档的展示。
安装
- 使用 composer 将包添加到您的安装中:
composer require ikkentim/wikiclone。 - 将服务提供者添加到您的
config/app.php文件中。在providers下添加
Ikkentim\WikiClone\WikiCloneServiceProvider::class,
- 使用
php artisan vendor:publish命令发布此包的资产。 - 打开
config/wikiclone.php并根据您的存储库进行配置(详细信息见下文) - 设置
wiki存储提供者(详细信息见下文) - 现在您可以按照您的喜好编辑
resources/views/vendor/wikiclone/documentation.blade.php视图。 - 运行命令
php artisan wiki:update从 GitHub wiki 重新获取文档。
存储
默认情况下,WikiClone 将使用 wiki 存储提供者。您可以在 config/filesystems.php 中的 disks 下创建此存储提供者。例如
'wiki' => [
'driver' => 'local',
'root' => storage_path('wiki'),
],
如果您想使用不同的存储提供者,请将 storage_provider 的值设置为 config/wikiclone.php 中的名称。
存储库类型
WikiClone 支持 3 种存储库类型
GitHub Wiki
为了使 WikiClone 镜像 GitHub Wiki,请按以下方式配置您的 wikiclone.php
- 将
repository设置为相关的存储库,例如:"ikkentim/wikiclone" - 将
repository_type设置为"github_wiki" - 将
tags设置为false - 如果您希望在文档页面上显示“在 GitHub 上编辑此页面”按钮,请将
edit_tag设置为"master",否则将此值设置为null
为了在每次编辑后自动更新 WikiClone 网站,您可以配置一个 webhook
- 在存储库页面上,单击
Settings>Webhooks & services>Add webhook - 在
Payload URL中输入您的 WikiClone 网站的 URL - 在
Secret中输入您在 wikiclone 配置文件中配置的 webhook 密钥。默认情况下,这设置为您的APP_KEY,来自您的.env文件 - 在“您想使用此 webhook 触发哪些事件?”下,选择
让我选择个别事件并取消选中Push并选中Gollum
GitHub 存储库
为了使 WikiClone 镜像包含 markdown 文件的整个 GitHub 存储库,请按以下方式配置您的 wikiclone.php
- 将
repository设置为相关的存储库,例如:"ikkentim/wikiclone" - 将
repository_type设置为"github_repository" - 如果您希望托管文档的多个版本,请将
tags设置为true,否则将此值设置为false - 将
default_tag设置为您希望默认显示的分支或标签名称(通常是master或特定版本) - 将
edit_tag设置为需要显示“在GitHub上编辑此页面”按钮的分支,如果不需要显示编辑按钮,则设置为null - 将
default设置为应作为WikiClone站点主页显示的Markdown文件名,例如,如果Home.md表示主页,则设置为"Home"
为了在每次编辑后自动更新 WikiClone 网站,您可以配置一个 webhook
- 在存储库页面上,单击
Settings>Webhooks & services>Add webhook - 在
Payload URL中输入您的 WikiClone 网站的 URL - 在
Secret中输入您在 wikiclone 配置文件中配置的 webhook 密钥。默认情况下,这设置为您的APP_KEY,来自您的.env文件 - 在“您想通过此webhook触发哪些事件?”下,选择“让我选择单个事件”并勾选
Pushes、分支或标签创建和分支或标签删除
任何仓库
按照“GitHub仓库”的相同步骤进行操作,除了
- 将
repository设置为完整的仓库URL,例如:https://mygitserver.com/my/repository.git - 您不能添加webhook。每次更新wiki的内容时,都必须使用
php artisan wiki:update
标签和分支
如果配置文件中将 tags 设置为 true,则可以镜像多个标签和分支,例如,以反映您产品的不同版本的文档。请注意,此功能只能用于类型为 "github_repository" 或 "repository" 的仓库。
黑名单
如果您希望某些分支或标签不进行镜像,可以将它们添加到配置文件中的 branches_blacklist 或 tags_blacklist
白名单
如果您希望仅镜像某些分支或标签,可以将数组设置为 branches_whitelist 和 tags_whitelist 的值
- 如果
tags_whitelist为null,则镜像所有标签; - 如果
tags_whitelist为空数组[],则不镜像任何标签; - 如果
tags_whitelist为["0.1"],则仅镜像标签0.1。
对于 branches_whitelist 也同样适用。
URL和路由
URL前缀
如果您在Laravel Web应用程序上托管其他内容,可以使用 url_prefix 配置值设置路由的前缀。如果设置为 /wiki,则对 https://example.com/wiki/Example-Page 的请求将返回 Example Page 的wiki页面。
手动路由
如果您希望手动设置路由,请将 url_prefix 配置值设置为 null 并将以下路由添加到您的路由文件中
Route::post("/wiki, WebhookController::class . "@trigger");
Route::get("/wiki/{path?}", DocumentationController::class . "$dc@index")->where('path', '(.*)');
中间件
如果您希望WikiClone路由使用某些中间件,请将中间件名称添加到配置文件中的 middleware 数组中。