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
数组中。