模板文件存放在以下目录结构中:
/templates/ ├─biquge/ (模板名称)
每个模板目录下包含:
header.html 公共头部 footer.html 公共底部 index.html 首页模板 booklist.html 书籍详情/目录模板 chapter.html 章节内容模板 login.html 登录模板 register.html 注册模板 user.html 用户模板 sort.html 分类模板 search.html 搜索模板 passeditw.html 修改密码页模板 paihangbang.html 排行榜模板 full.html 全本模板 author.html 作者模板 history.html 临时书架模板 bookcase.html 收藏夹模板
使用 Pongo2 的 include:
{% include "header.html" %}
页面内容
{% include "footer.html" %}
模板中可以直接使用变量:
{{ site_title }} {{ template_dir }}
{{ Applang }}
支持点语法访问对象属性:
{{ bookLang.shouye }}
{{ bookLang.shujia }}
{% if Applang=="tw" %}
繁体中文
{% elif Applang=="cn" %}
简体中文
{% else %}
其他
{% endif %}
其他详细使用可查询官方地址https://github.com/flosch/pongo2/blob/master/template_tests/if.tpl
常用示例:
{{ intro|safe }} 输出HTML不转义
{{intro|slice:":20"}} 从左边截取20个字符
{{ item.lastupdateT|slice:"5:"}} 从第5个字符开始截取后面所有字符
{{ intro|slice:"5:20"}} 从第5个字符开始截取20个字符
{{ intro | trim }} 去空格
{{ intro | escape }} HTML 转义
{{words/1000}}K 支持的运算符:+(加)、-(减)、*(乘)、/(除)、%(求模)、>(大于)、<(小于)、=(等于)
{{ intro | safe }}
用于小说简介、章节内容等富文本。
不同页面会提供不同变量,本系统固定提供以下核心变量:
Tiaozhuan 跳转 类型 bool
Isadweb 受众站 类型 bool
Encode10 是否10进制 类型 bool
Tznum 跳转页面计数 类型 int
htmllang 网页语言 类型 string (zh/tw/en->简体中文/繁体中文/英文)
Applang 程序语言 类型 string (zh/tw/cn/en/auto->简繁中文/繁体中文/简体中文/英文/自动)
logodir 电脑站logo地址 类型 string
logowapdir 手机站logo地址 类型 string
sortList 分类集合 类型 []map[string]interface{} 需for取值包含name,pinyin,sortid,sorturl
template_dir 模板路径 类型 string
template 模板名称 类型 string
homesorturl 分类默认URL 类型 string
homepaihangurl 排行榜默认URL 类型 string
homefullurl 完本默认URL 类型 string
current_lang 用户语言 类型 string (cn/tw/en->简体中文/繁体中文/英文)
sitename 网站简介 类型 string
date 当前年份 类型 string
bookLang 语言字典集合 类型 map[string]interface{} etc/lang.json里面 比如bookLang.denglu取值,可以自行添加
tongji 统计代码 类型 string 后台设置后全页面可以直接取值{{ tongji | safe }}
webname 网站名称 类型 string
weburl 电脑站域名 类型 string
wapurl 手机站域名 类型 string
模块公共变量全是string类型:
articleid 小说id articlename 小说名称 author 作者名字 intro 小说介绍 sortid 小说分类id sortname 小说分类名字 sortpy 小说分类拼音 allvisit 小说点击数 fullflag 小说状态 连载/完结 fullflagid 小说状态 0/1 lastchapter 小说最新章节名称 chapters 小说章节列表排序最大序号 lastupdate 小说最近更新时间 时间戳 lastupdateT 小说最近更新时间 年-月-日 postdate 小说入库时间 时间戳 postdateT 小说入库时间 年-月-日 imgurl 小说封面URL words 小说字数 listurl 小说信息目录页URL lastupdateurl 小说最新章节URL authorurl 小说作者URL sorturl 小说分类URL fullurl 完本URL paihangurl 排行榜URL
index.html首页模板变量:
site_title 首页title 类型 string
keywords 首页keywords 类型 string
description 首页description 类型 string
BOOK_AD_INDEX_TOP 首页顶部广告 类型 string 后台设置首页广告可以直接取值{{ BOOK_AD_INDEX_TOP | safe }}
BOOK_AD_INDEX_BOTTOM 首页底部广告 类型 string 后台设置首页广告可以直接取值{{ BOOK_AD_INDEX_BOTTOM | safe }}
BOOK_AD_INDEX_SUSPENDED 首页悬浮广告 类型 string 后台设置首页广告可以直接取值{{ BOOK_AD_INDEX_SUSPENDED | safe }}
BookSiteName 网站名称 类型 string 和核心变量webname重叠了
yl 站群内首页互连 类型 []map[string]string 需for取值包含url,name
sorttj 分类推荐集合 类型 []map[string]interface{} 需for取值包含sortid,sortname,sortpy,sorturl,sortbooks类型是[]map[string]string也需要嵌套for取值,内容是模块公共变量
postdate 最新入库集合 类型 []map[string]string for取值,内容是模块公共变量
tj 最近访问集合 类型 []map[string]string for取值,内容是模块公共变量
zjgx 最近更新集合 类型 []map[string]string for取值,内容是模块公共变量
allvisit 热门小说集合 类型 []map[string]string for取值,内容是模块公共变量
full 完结小说集合 类型 []map[string]string for取值,内容是模块公共变量
size 字数排行集合 类型 []map[string]string for取值,内容是模块公共变量
goodnum 收藏排行集合 类型 []map[string]string for取值,内容是模块公共变量
allvote 推荐排行集合 类型 []map[string]string for取值,内容是模块公共变量
booklist.html信息列表页模板变量:
chapter 章节列表集合 类型 []map[string]interface{} for取值包含章节名称 chaptername,章节URL chapterurl
last9 最新九章集合 类型 []map[string]interface{} for取值包含章节名称 chaptername,章节URL chapterurl
lastchapter 最新章节名称 类型 string
firsturl 第一章URL 类型 string
lastupdateurl 最新章节URL 类型 string
uptime 最近更新时间 类型 string 年-月-日 时:分
BOOK_AD_INDEX_TOP 顶部广告 类型 string 后台设置信息目录页广告可以直接取值{{ BOOK_AD_INDEX_TOP | safe }}
BOOK_AD_INDEX_BOTTOM 底部广告 类型 string 后台设置信息目录页广告可以直接取值{{ BOOK_AD_INDEX_BOTTOM | safe }}
BOOK_AD_INDEX_SUSPENDED 悬浮广告 类型 string 后台设置信息目录页广告可以直接取值{{ BOOK_AD_INDEX_SUSPENDED | safe }}
sorturl 分类URL 类型 string
authorurl 作者URL 类型 string
booklisturl 信息目录页URL 类型 string
articleid 小说原始ID 类型 int 原始ID用于推荐,收藏传递参数
articlename 小说名字 类型 string
author 作者名字 类型 string
intro 小说简介 类型 string
sortid 小说ID 类型 int
fullflag 小说状态 类型 string 连载/完结
flags 小说状态 类型 string b/a
imgurl 小说封面URL 类型 string
sortname 分类名称 类型 string
jiandu 最新章节简读 类型 string 最新章节内容截取三行
rmxs 热门小说集合 类型 []map[string]string for取值,内容是模块公共变量
bltj 本类推荐集合 类型 []map[string]string for取值,内容是模块公共变量
tag 当前小说TAG 类型 string 当前小说的TAG关键词
booklist_title title 类型 string 列表页Title
booklist_key keywords 类型 string 列表页关键字
booklist_description description 类型 string 列表页描述
youzhan 内页互连集合 类型 []map[string]string 需for取值包含URL,Name
chapter.html阅读页模板变量:
chapterid txt真实cid 类型 int 这个其实是数据库中的chapterid,也就是txt文件的id
lastrows 最新九章集合 类型 []map[string]interface{} for取值包含章节名称 chaptername,章节URL chapterurl,当前章节标记isCurrent
chaptername 当前章节名称 类型 string
articlename 小说名字 类型 string
articleid 当前小说真实ID 类型 int
nextchapterid 下一页txt真实cid 类型 int
BOOK_AD_INDEX_TOP 顶部广告 类型 string 后台设置阅读页广告可以直接取值{{ BOOK_AD_INDEX_TOP | safe }}
BOOK_AD_INDEX_BOTTOM 底部广告 类型 string 后台设置阅读页广告可以直接取值{{ BOOK_AD_INDEX_BOTTOM | safe }}
BOOK_AD_INDEX_SUSPENDED 悬浮广告 类型 string 后台设置阅读页广告可以直接取值{{ BOOK_AD_INDEX_SUSPENDED | safe }}
content 当前章节内容 类型 string 模板需{{ content|safe }}取值
sorturl 分类URL 类型 string
pagename 分页标记 类型 string 模板里<h2>{{ chaptername }}{{ pagename }}</h2>配合使用
preurl 上一章/页URL 类型 string 上一章/上一页URL地址,无需拼接{{ preurl }}直接使用
nexturl 下一章/页URL 类型 string 下一章/下一页URL地址,无需拼接{{ nexturl }}直接使用
nextpalyurl 下一个听书URL 类型 string 下一章/页 听书URL地址,用于提前缓存下一个音频
palyurl 当前章听书URL 类型 string <audio id="ttsAudio" preload="auto" src="{{ palyurl }}"></audio>可以直接播放本章内容
PreChaptername 上一章/页 类型 string 上一章/上一页/回首页。多语言会自动转换
NextChaptername 下一章/页 类型 string 下一章/下一页/回首页。多语言会自动转换
sortid 小说分类ID 类型 int
cid 小说CID 类型 int 这个其实是数据库中的chapterorder
sortname 分类名称 类型 string
jiandu 当前章节简读 类型 string 当前章节内容截取三行
uptime 最近更新时间 类型 string 年-月-日 时:分
author 作者名字 类型 string
booklist_title title 类型 string 章节页Title
booklist_key keywords 类型 string 章节页关键字
booklist_description description 类型 string 章节页描述
youzhan 内页互连集合 类型 []map[string]string 需for取值包含URL,Name
author.html小说作者模板变量:
author 作者名字 类型 string articlerows 作者查询集合 类型 []map[string]string for取值,内容是模块公共变量
bookcase.html收藏夹模板变量:
uid 当前用户UID 类型 int
uname 当前用户用户名 类型 string
_book_pagetitle 我的书架 类型 string 回首页。多语言会自动转换
num 书架书籍数量 类型 int
articlerows 书架查询集合 类型 []map[string]interface{} for 取值,标签如下
-> ArticleID 书架书籍id 类型 int
-> ArticleName 书籍书籍书名 类型 string
-> ListURL 收藏书籍列表URL 类型 string
-> LastChapter 收藏书籍最新章节名称 类型 string
-> LastUpdateURL 收藏书籍最新章节URL 类型 string
-> BookmarkID 收藏书籍章节CID 类型 int
-> BookmarkURL 收藏书籍章节URL 类型 string
-> Bookmark 收藏书籍章节名称 类型 string
-> LastUpdate 收藏书籍更新时间 类型 string 年-月-日
full.html完本小说模板变量:
BookSiteName Title 类型 string
jumppage 翻页标签 类型 string {{ jumppage |safe}}取值
articlerows 完本集合 类型 []map[string]string for取值,内容是模块公共变量
sort.html小说分类模板变量:
BookSiteName Title 类型 string
sortid 分类ID 类型 int
sortpy 分类拼音 类型 string
sortname 分类名称 类型 string
articlerows 分类书籍集合 类型 []map[string]string for取值,内容是模块公共变量
articlerowsrk 入库集合 类型 []map[string]string for取值,内容是模块公共变量
articlerowsdj 点击排行集合 类型 []map[string]string for取值,内容是模块公共变量
jumppage 翻页标签 类型 string {{ jumppage |safe}}取值
paihangbang.html排行榜模板变量:
site_title Title 类型 string
jumppage 翻页标签 类型 string {{ jumppage |safe}}取值
articlerows 排行集合 类型 []map[string]string for取值,内容是模块公共变量
paihangsorttj 分类排行推荐集合 类型 []map[string]interface{} 需for取值包含sortid,sortname,sortpy,sorturl,sortbooks类型是[]map[string]string也需要嵌套for取值,内容是模块公共变量
allvisittj 热门小说集合 类型 []map[string]string for取值,内容是模块公共变量
fulltj 完本小说集合 类型 []map[string]string for取值,内容是模块公共变量
goodnumtj 字数排行榜集合 类型 []map[string]string for取值,内容是模块公共变量
allvotetj 点击排行推荐 类型 []map[string]string for取值,内容是模块公共变量
orderBy 推荐方法 类型 string dayvisit/weekvisit/monthvisit/allvisit/dayvote等等,自己查询数据库
typename 推荐方式名称 类型 string
search.html搜索模板变量:
_book_pagetitle Title 类型 string search_key 搜索内容 类型 string articlerows 搜索集合 类型 []map[string]string for取值,内容是模块公共变量 search_num 搜索是否有内容 类型 string 1是有内容 ""是没有内容
login.html登录模板变量:
_book_pagetitle Title 类型 string referer 来路URL 类型 string chname 用户名 类型 string post 提交 chpass 密码 类型 string post 提交 data 提交方式 类型 string post 提交 html会自动跳转不提交这个参数会返回nodata/nologin/yeslogin,可以在js里面处理
register.html注册模板变量:
_book_pagetitle Title 类型 string referer 来路URL 类型 string chname 用户名 类型 string post 提交 chpass 密码 类型 string post 提交 uemail 邮箱 类型 string post 提交 data 提交方式 类型 string post 提交 html会自动跳转不提交这个参数会返回bigname/bigpass/bigemail/emailerror/havename/haveemail/noregister/noregister/yesregister,可以在js里面处理
user.html用户信息模板变量:
_book_pagetitle Title 类型 string _book_uid 用户uid 类型 int _book_uname 用户名 类型 string _book_email 用户邮箱 类型 string _book_avatar 用户等级 类型 int _book_regdate 用户注册时间 类型 string 年-月-日 时:分
passeditw.html修改密码模板变量:
_book_pagetitle Title 类型 string _book_uid 用户uid 类型 int _book_uname 用户名 类型 string tips 修改后返回信息 类型 string 修改密码成功或者失败返回的信息,多语言 isxg 修改密码状态 类型 int 0->失败 1->成功
history.html临时书架模板变量:
无
页面实际可用变量以程序最终传入为准。