BookStack或者称BookStackApp本身是不带生成网站地图的功能的,但幸好作者创建了几个API脚本放到github上可供使用。
脚本包括:

  • 导出给定书籍中的所有章节和页面到一个基本的HTML和图像文件的文件夹中,该文件夹中包含index.html文件作为一个静态站点访问入口。
  • 生成网站地图 XML 文件
  • 导出所有图书,格式为(PDF,HTML 或 TXT)

以下简单介绍操作步骤。

创建API令牌

用管理员身份登录网站,然后点中头像,选择“编辑个人资料”,页面拉到最下面,点击创建API令牌。
BookStack-API.jpg
在创建API令牌界面,输入API名称及日期,如果日期空白的话则默认设定为100年。
BookStack-Create_API.jpg
点击保存后,系统会自动生成API令牌,这个密码只显示一次,所以一定记得先把它复制出来,否则你只能重新建立一次。
BookStack-API_token.jpg
再次点击保存后就表示系统已经建立完毕,只需点击返回即可。
BookStack-API_token-overview.jpg

如何生成网站地图sitemap

github页面上虽然有操作步骤和设定,只不过在实际操作过程中还是有点区别。

# Downloading the script
# ALTERNATIVELY: Clone the project from GitHub and run locally.
curl https://raw.githubusercontent.com/BookStackApp/api-scripts/main/php-generate-sitemap/generate-sitemap.php > generate-sitemap.php

以上代码我实测无法下载,所以还是采用手动的方式。

  • 先在github页面上下载该脚本Generate Sitemap
  • 再将下载的文件直接上传到网站根目录下。
  • 修改文件generate-sitemap.php

修改前的代码如下:

// API Credentials
// You can either provide them as environment variables
// or hard-code them in the empty strings below.
$baseUrl = getenv('BS_URL') ?: '';
$clientId = getenv('BS_TOKEN_ID') ?: '';
$clientSecret = getenv('BS_TOKEN_SECRET') ?: '';

此处可以采取直接硬编码的方式,修改如下:

$baseUrl = 'https://你的网站地址';
$clientId = '输入你刚刚创建的API ID';
$clientSecret = '输入你刚刚创建的API密码';

保存后,在控制台中运行如下代码:

php generate-sitemap.php public/sitemap.xml

注意:生成的sitemap.xml文件必须放在public目录下,放在根目录下是没有用的。
打开浏览器测试一下是否能够浏览到网站地图的内容。

参考资料

BookStack 生成 Sitemap 網站地圖

最后修改:2023 年 05 月 12 日
如果觉得我的文章对你有用,请随意赞赏