BookStack或者称BookStackApp本身是不带生成网站地图的功能的,但幸好作者创建了几个API脚本放到github上可供使用。
脚本包括:
- 导出给定书籍中的所有章节和页面到一个基本的HTML和图像文件的文件夹中,该文件夹中包含index.html文件作为一个静态站点访问入口。
- 生成网站地图 XML 文件
- 导出所有图书,格式为(PDF,HTML 或 TXT)
以下简单介绍操作步骤。
创建API令牌
用管理员身份登录网站,然后点中头像,选择“编辑个人资料”,页面拉到最下面,点击创建API令牌。
在创建API令牌界面,输入API名称及日期,如果日期空白的话则默认设定为100年。
点击保存后,系统会自动生成API令牌,这个密码只显示一次,所以一定记得先把它复制出来,否则你只能重新建立一次。
再次点击保存后就表示系统已经建立完毕,只需点击返回即可。
如何生成网站地图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目录下,放在根目录下是没有用的。
打开浏览器测试一下是否能够浏览到网站地图的内容。