功能配置

配置文件路径 /_h5ai/private/conf/options.json

初始化的配置在搭建的时候已经简单介绍过了,这里再丰富一些说明。

演示站:https://api.clotliu.com/

一、view功能

"view": {
        "binaryPrefix": false,
        "disableSidebar": true, //是否显示左侧边栏(功能栏)
        "fallbackMode": false,  
        "fastBrowsing": true,
        "fonts": ["Ubuntu", "Roboto", "Helvetica", "Arial", "sans-serif"],
        "fontsMono": ["Ubuntu Mono", "Monaco", "Lucida Sans Typewriter", "monospace"],
        "hidden": ["^.", "^_h5ai"],  //此参数可以指定文件夹列表里隐藏哪些文件,可以使用正则来匹配文件名称。
        "hideFolders": false,
        "hideIf403": true,
        "hideParentFolder": false,
        "maxIconSize": 40,
        "modes": ["details", "grid", "icons"],
        "modeToggle": false,
        "setParentFolderLabels": true,
        "sizes": [20, 40, 60, 80, 100, 140, 180, 220, 260, 300],
        "theme": "comity",  //图标选择有default和comity两种
        "unmanaged": ["index.html", "index.htm", "index.php"],  //如果某个文件夹里包含数组里的文件,则将拒绝显示此文件夹里的所有内容。
        "unmanagedInNewWindow": false
    },
  • hidden详细说明:
  • ^.:隐藏名称以 . 开头的文件,如 .htaccess,.gitignor 等等。
  • ^_h5ai:隐藏名称以 _h5ai 开头的文件或文件夹,如 _h5ai,_h5ai.header.html 等等。
  • ^:隐藏名称以开头的文件或文件夹,如 tmp,__aaa 等等。
  • .sh$:隐藏名称以.sh结尾的文件或文件夹,如 bash.sh,scripts.sh 等等。
  • ^robots.txt:隐藏名称以 robots.txt 开头的文件或文件夹,如 robots.txt, robots.txt.bak 等等。
  • hideFolders:是否在文件列表中只显示文件而隐藏文件夹。
  • theme:默认的文件类型图标,_h5ai/public/images/theme 里的每个文件夹都是一种图标,默认带了 2 套,另一套图标名为 comity。

二、文件信息功能

"info": {
        "enabled": false,  //是否显示右侧边栏(详情栏)。
        "show": false,  //是否一直显示右侧边栏。
        "qrcode": true,  //是否在右侧边栏生成下载链接的二维码以方便移动端下载。
        "qrFill": "#999",
        "qrBack": "#fff"
    },

三、文件下载和选择功能

"download": {
        "enabled": false,  //是否允许下载文件
        "type": "php-tar",  //选择压缩方式。php-tar使用php内置功能来下载文件,多线程,可以同时下载多个文件。shell-tar使用外部tar程序来下载文件,单线程,同一时间只能下载一个文件。shell-zip使用外部zip程序来下载文件,单线程,同一时间只能下载一个文件。
        "packageName": null,  //默认压缩包名称,为 null 时压缩包名称当前文件夹的名称,
        "alwaysVisible": false  //下载按钮是否动态显示(只能选中文件后显示)。
    },
    "select": {
        "enabled": true,  //是否允许文件选择,如果禁止文件选择,那么文件就无法下载。
        "clickndrag": true,  //是否允许左键拖动来进行文件多选。
        "checkboxes": false  //当鼠标悬浮在文件名上时是否显示选择框。
    },

四、语言设置

"l10n": {
        "enabled": true,  //是否允许更改界面语言
        "lang": "en",  //默认界面语言,en 为英文,zh-cn 为中文简体,zh-tw 为中文繁体。
        "useBrowserLang": true  //是否根据浏览器的语言来自动调整界面语言。
    },

五、字体加速

"resources": {
        "scripts": [],
        "styles": [
            "//fonts.lug.ustc.edu.cn/css?family=Ubuntu:300,400,700%7CUbuntu+Mono:400,700"
        ]
    },

在这里添加的第三方脚本与 CSS 会自动生成 <link> 标签插入所有页面的 <head> 中。

默认_h5ai/public/ext/ 里加载不以http://、https://、/ 」开头的脚本与 CSS 文件。

由于google国内访问很慢,解决字体加速的方式有三种:改为常用字体宋体等、用国内镜像源或者下载到本地加载。

1、用国内镜像源,以中科大为🌰。

中科大源对应google字体源
fonts.lug.ustc.edu.cnfonts.googleapis.com
ajax.lug.ustc.edu.cnajax.googleapis.com
google-themes.lug.ustc.edu.cnthemes.googleusercontent.com
fonts-gstatic.lug.ustc.edu.cnfonts.gstatic.com

修改fonts.googleapis.comfonts.lug.ustc.edu.cn即可

"resources": {
        "scripts": [],
        "styles": [
            "//fonts.lug.ustc.edu.cn/css?family=Ubuntu:300,400,700%7CUbuntu+Mono:400,700"
        ]
    },

2、将google字体下载到本地加载

1)在 _h5ai/public/ext/ 目录下新建shell脚本 fonts.sh

#!/bin/bash
ext_dir="/www/wwwroot/域名根目录/_h5ai/public/ext"
# 将谷歌字体的 css 下载到 _h5ai/public/ext 下
curl -sL -H "User-Agent:Mozilla/5.0 (X11; Linux x86_64; rv:69.1) Gecko/20100101 Firefox/69.1" 
         -o "$ext_dir/fonts.google.css" 
         "https://fonts.lug.ustc.edu.cn/css?family=Ubuntu:300,400,700%7CUbuntu+Mono:400,700"
# 将 css 文件里的所需的字体下载至 _h5ai/public/ext/fonts 下
# 并将 css 文件里字体的路径更改为 _h5ai/public/ext/fonts
mkdir -p "$ext_dir/fonts"
if [ -d "$ext_dir/fonts" ]; then
    cd "$ext_dir/fonts"
    wget $(grep "https" "$ext_dir/fonts.google.css" | awk -F '[()]' '{print $6}')
    sed -i 's|https://.*/|/_h5ai/public/ext/fonts/|' "$ext_dir/fonts.google.css"
fi

2)赋予 fonts.sh 文件可执行权限,并运行。运行之后,google字体被下载到fonts.sh脚本所在的目录下。

$ pwd
/www/wwwroot/域名根目录/_h5ai/public/ext
$ chmod +x  fonts.sh
$ ./fonts.sh
$ ls -ltr 
total 24
-rw-r--r-- 1 root root  170 Mar 22  2019 README.md
-rwxr-xr-x 1 root root  777 Aug 17 10:34 fonts.sh
drwxr-xr-x 2 root root 4096 Aug 17 10:35 fonts
-rw-r--r-- 1 root root 9595 Aug 17 10:35 fonts.google.css 

3)修改配置文件 options.json 将谷歌字体换成本地字体

"resources": {
        "scripts": [],
        "styles": [
            "fonts.google.css"
        ]
    },

六、页眉和页脚

/*
  Allow customized header and footer files.
  First checks for files "_h5ai.header.html" and "_h5ai.footer.html" in the current directory.
  If not successful it checks all parent directories (starting in the current directory) for
  files "_h5ai.headers.html" and "_h5ai.footers.html".
  Note the different filenames: "header" (only current) - "headers" (current and sub directories)!
  The file's content will be placed inside a <div/> tag above/below the main content.
  If a file's extension is ".md" instead of ".html" its content will be interpreted as markdown.
*/
"custom": {
"enabled": true
},

根据注释说明,为 h5ai 添加页眉和页脚,只需要在对应目录下放置好 _h5ai.header(s).html(页眉) 或 _h5ai.footer(s).html(页脚)即可,设置将应用于该目录或该目录的所有子目录。

同时H5ai支持Markdown格式页面,可以放置 _h5ai.header(s).md_h5ai.footer(s).md

不同文件名称以及不同的存放位置会呈现不同的效果。

  • 只在当前目录显示
    • 页眉:_h5ai.header.html
    • 页脚:_h5ai.footer.html
  • 在当前及子目录显示
    • 页眉:_h5ai.headers.html
    • 页脚:_h5ai.footers.html

1、页眉

在文件夹下新建 _h5ai.header.html,并粘贴进以下代码。

<h1 style="text-align:center">标题</h1>
<p style="text-align:center">
正文内容
</p>

2、页脚

在文件夹下新建 _h5ai.footer.html,并粘贴进以下代码。

<p style="text-align:center">正文内容</p>
<iframe frameborder="0" scrolling="no" style="width: 100%" srcdoc="
<!DOCTYPE html>
<html>
<head>
    <!--Import CSS library .CSS file-->
    <link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/css/materialize.min.css'>
</head>
<body>
    <!--Demo Content-->
    <div class='row'>
        <div class='col s12'>
            <div class='card'>
                <div class='card-content'>
                    <div class='card-title' style='text-align: center;'>
                        Demo
                    </div>
                    <p>This is a demo.</p>
                </div>
            </div>
        </div>
    </div>
    <!--Import CSS library JavaScript files-->
    <script src='https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0-beta/js/materialize.min.js'></script>
    <!--Initialise CSS library-->‎
    <script type='text/javascript'>
        M.AutoInit();
    </script>
    <!--Import Iframe resizer library-->
    <script src='https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/3.6.0/iframeResizer.contentWindow.min.js'></script>
</body>
</html>
">

效果图

七、修改网站标题

1、先修改配置文件options.json中的title部分内容为 false

/*
 Replace window title with current breadcrumb.
*/
"title": {
    "enabled": false //默认是true,改为false
},

2、修改<strong>_h5ai/private/php/pages/index.php</strong> 文件

<title>index - powered by h5ai v0.29.2 (https://larsjung.de/h5ai/)</title>

先找到上面👆找到这部分内容,再替换title中间部分内容,例如科技玩家,修改后浏览器标签页就变了。

八、修改首页默认的域名显示

修改 _h5ai/public/js/scripts.js 文件,Ctrl+F搜索🔍下面内容

"/"===t?p.getDomain():n.name //修改替换 p.getDomain() 为'你想显示的内容'
"/"===t?'你想显示的内容':n.name //示例"/"===t?'科技玩家':n.name

九、修改右上角版权信息

建议保留这部分版权信息,只是作为学习参考资料。

示例修改如下:

<a id="backlink" href="https://larsjung.de/h5ai/" title="powered by h5ai - https://larsjung.de/h5ai/">n                <div>powered</div>n                <div>by h5ai</div>n            </a>n