Sir, times have changed! Typecho is currently the most perfect solution, because Baidu can only see the code of fixed thinking.
The actual generated html code is so clean that it is breathtaking
Complete customization, including adding class to the li element, adding class to the a element, adding class to the previous page and next page, and removing the li tags that come with typecho to represent more. I can even add some text to the content inside.
Pagination code
Without further ado, here’s the source code:
<nav class="my-5">
<?php
ob_start();
$this->pageNav('«','»', 1, '', array('wrapTag' => 'ul', 'wrapClass' => 'pagination pagination-rounded mb-0 justify-content-center', 'itemTag' => 'li', 'textTag' => 'span', 'currentClass' => 'active', 'prevClass' => 'prev', 'nextClass' => 'next'));
$content = ob_get_contents();
ob_end_clean();
$content = preg_replace("/<li><span>(.*?)<\/span><\/li>/sm", '', $content);
$content = preg_replace("/<li [class=\"active\"]+>(.*?)<\/li>/sm", '<li class="page-item active">$1</li>', $content);
$content = preg_replace("/<li [class=\"prev\"]+>(.*?)<\/li>/sm", '<li class="page-item">$1</li>', $content);
$content = preg_replace("/<li [class=\"next\"]+>(.*?)<\/li>/sm", '<li class="page-item">$1</li>', $content);
$content = preg_replace("/<li>(.*?)<\/li>/sm", '<li class="page-item">$1</li>', $content);
$content = preg_replace("/<a href=\"(.*?)\">(.*?)<\/a>/sm", '<a class="page-link" href="$1">$2</a>', $content);
echo $content;
?>
</nav>The main way is to use regular modification to change it once and for all directly from the generated content. You don't need to add and adjust the js one by one, freeing your imagination.
Commonly used regular rules
Here are some regular wildcards:
Commonly used metacharacters
Code Description
. matches any character except newline characters
w matches letters or numbers or underscores
s matches any whitespace character
d matches numbers
b matches the beginning or end of a word
^ matches the beginning of a string
$ matches the end of the string
Common qualifiers
Code/Syntax Description
- Repeat zero or more times
- Repeat one or more times
? Repeat zero or one time
{n} Repeat n times
{n,} repeated n or more times
{n,m} repeated n to m times
Commonly used antonyms
代码/语法 说明
W 匹配任意不是字母,数字,下划线,汉字的字符
S 匹配任意不是空白符的字符
D 匹配任意非数字的字符
B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
Common pattern modifiers
代码/语法 说明
i 表示在进行匹配的时候不区分大小写
m 多行识别.即将字符串视为多行,不管是那行都能匹配
s 将字符串视为单行,转义回车换行符作为普通字符
g 表示全局匹配
x 将模式中的空白忽略
A 强制从目标字符串开头匹配
D 强制尾部无任何内容.若使用$限制结尾字符,则不允许结尾有换行
U 禁止贪婪匹配,只匹配最近的一个字符串(不重复匹配)
e 配合PHP函数preg_replace()使用,可以把匹配来的字符串当作正则表达式执行
Explanation of paging output code
To understand why, you first need to understand what the code $this->pageNav() does. For details, you can go to Baidu. Many people use this for customization. Here I will give my commonly used explanation:
page翻页
wrapTag 外层包裹标签名, 默认ol
wrapClass 外层包裹类名
itemTag 内层标签名, 默认li
textTag 直接输出文字的标签名
currentClass 当前聚焦类名
prevClass 上一页类名
nextClass 下一页类名It's basically ok. As long as you have enough understanding, it should be easy to find out how to customize it from the source code.