ikkentim/wikiclone

此包已被废弃且不再维护。没有建议的替代包。

轻松创建 GitHub wiki 镜像。

0.8 2018-05-22 14:54 UTC

This package is not auto-updated.

Last update: 2022-04-16 04:51:42 UTC


README

Packagist Packagist

轻松镜像您的 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_blacklisttags_blacklist

白名单

如果您希望仅镜像某些分支或标签,可以将数组设置为 branches_whitelisttags_whitelist 的值

  • 如果 tags_whitelistnull,则镜像所有标签;
  • 如果 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 数组中。