“生命不息,折腾不止”
用BlogTNG插件在DokuWiki上写博客
DokuWiki可以用来搭建百科网站,构建个人的知识库,也可以用来写笔记。如果你想扩展DokuWiki的功能,用它来写博客,官方提供了两个思路:
下载各个功能的插件,配置成一个完整的博客网站。
或者下载 BlogTNG plugin插件。
这篇博客的主题就是使用BlogTNG plugin插件将DokuWiki打造成博客网站。
准备
- 安装BlogTNG Plugin插件,有自动安装和手动安装两种方式:
- 在“管理”——“扩展管理器”——“搜索安装”中搜索BlogTNG,找到Next Generation Blog Plugin进行安装。
- 手动下载安装官方插件,解压至/lib/plugins,并将文件夹名重命名为blogtng。
- 必要依赖:
- 在服务器上安装Sqlite扩展
- 安装Sqlite插件。
- 其他可选:
- 安装支持navbar的模板(例如:Bootstrap3)
- 评论验证码插件Captcha
修改页面布局
主页
在你的start页面添加以下代码:
<blog list> blog default cache 0 sortby created limit 6 </blog> <blog pagination></blog>
主要参数介绍:
- blog default:选择相应分类的文章(插件只有自带的一个default分类,路径为/lib/plugins/blogtng/tpl/default,你可以复制重命名为其他名字,例如life,在写博客的时候就可以在编辑选项中选择它)。
- cache 0:关闭缓存。
- limit 6:最多显示6篇文章。
如果你的博文中带有内容目录(TOC),在开始页面上也会显示出来,影响美观,可以在start页面再加上关闭内容目录(TOC)的代码:
~~NOTOC~~
来关闭内容目录。
顶部导航
新建一个名为navbar的页面,请用普通列表项目形式添加你需要展示的页面,例如:
*[[menu1|文章分类一]] *[[menu2|导航菜单二]] *[[about|关于]]
具体规则请参考命名空间
如果你想在菜单menu1(文章分类一)中展示分类为life,样式为small的所有文章,可以在menu1页面添加以下代码:
<blog list> blog life tpl small cache 0 </blog> <blog pagination></blog>
- tpl small:如果不填入此行,将默认选择/lib/plugins/blogtng/tpl/life 下的list.php作为样式模板,即完整文章样式。你也可以将lib/plugins/blogtng/tpl下的small_list.php重命名并编辑为新的文件如nano_list.php,
tpl nano
即表示以nano_list.php样式来展示文章内容。
注意:small_list.php的样式中,文章标题不带超链接,而且附加显示评论数量,影响美观,你可以将small_list.php:
<?php ?> <h1> <?php $entry->tpl_title()?> · <?php $entry->tpl_commentcount('(%d Comments)','(%d Comment)', '(%d Comments)')?> </h1> <p> <?php $entry->tpl_abstract(200)?><br /> <?php $entry->tpl_permalink('read more…')?> </p>
改为
<?php ?> <h1><a href="<?php $entry->tpl_link()?>"><?php $entry->tpl_title()?></a></h1> <p> <?php $entry->tpl_abstract(200)?><br /> <?php $entry->tpl_permalink('read more…')?> </p>
这样点击文章标题即可跳转到文章的详细页面。
也可以添加文章日期,稍微修改下布局:
<h1><a href="<?php $entry->tpl_link()?>"><?php $entry->tpl_title()?></a></h1> <p> <?php $entry->tpl_created($conf['dformat'])?><br /><br /> <?php $entry->tpl_abstract(200)?><br /> <?php $entry->tpl_permalink('阅读全文')?> <p> </p> </p>
最新文章列表
将/lib/plugins/blogtng/tpl下新建nano_list.php文件,写入代码:
<?php ?> <p><a href="<?php $entry->tpl_link()?>"><?php $entry->tpl_title()?></a></p>
如果需要添加日期,可以加上调用创作日期的函数:
<p><a href="<?php $entry->tpl_link()?>"> <?php $entry->tpl_title() ?></a> <?php $entry->tpl_created($conf['dformat'])?> </p>
在sidebar页面添加以下代码:
<blog list> blog default,life tpl nano cache 0 sortby created limit 10 </blog>
这样就可以在侧边栏看到最新文章的标题链接了。
文章分类
如果你想在侧边栏(sidebar)展示上述例子中menu1里的分类名称,直接添加menu1的链接即可:
[[menu1|文章分类一]]
标签云
在侧边栏sidebar页面添加以下代码:
<blog tagcloud> blog default,life target page:tag </blog>
新建page:tage页面,添加以下代码:
<blog list> blog default,life tags </blog> <blog pagination></blog>
blog参数中需要包含你所有的博客文章分类,不然标签会显示不全。
评论
为防止垃圾评论,建议安装插件CAPTCHA
“生命不息,折腾不止”
用DokuWiki在华为云服务器上搭建网站的折腾记录
引子
2024年龙年新年,在朋友Adman Turner的介绍下了解到了DokuWiki这个工具,DokuWiki页面简洁,有详细的文档支持,且无需数据库,网站目录和页面以文件夹和TXT文档储存,方便保存和管理,是搭建知识库网站很好的选择。
方式一 一键整合包
如果你只是想简单地在本地运行DokuWiki,或者想研究网站服务器知识,最简单的办法是下载一个包含DokuWiki,PHP和一个微型服务器的整合包,只需要勾选 “Include Web-Server”下面的选项。 这个版本可以在便携设备上使用,比如U盘。
方式二 用xampp进行本地部署
同样你也可以自己部署一个本地环境:
- 下载安装 XAMPP,建议选择包含7版本PHP的整合包。(软件会提示不建议安装在系统盘,你可以选择其他安装路径,例如D:\xampp\)
- 下载DokuWiki
- 解压文件包
- 将解压后的文件复制到D:\xampp\htdocs\下,例如D:\xampp\htdocs\dokuwiki\
- 在Xampp控制面板打开Apache服务
你所创建的网站内容都会保存在如下路径D:\xampp\htdocs\dokuwiki\data\pages\
方式三 ngrok内网穿透
如果不想局限于局域网访问,你可以在方式二的基础上,利用ngrok将本地部署的DokuWiki映射到公网上,这样你就可以随时随地访问你的DokuWiki网站。
穿透教程
- 登陆ngrokdashboard控制面板后,在Setup&Installtion里下载适合你平台的软件包。
- 在本地终端运行以下代码,把你的authtoken添加到配置文件中:
ngrok config add-authtoken xxxx你的authtoken xxxx
- 根据你设置的DokuWiki的端口,在终端运行以下代码开始映射:
ngrok http http://localhost:你的端口
- 开始映射后,你可以在Endponts中看到公网域名。
固定域名
每进行一次映射,你都会得到一个不同的公网地址域名,这很不方便。ngrok对免费用户提供了一个固定域名。
方式四 服务器搭建
选择服务器
目前市面上可供选择的云服务器有很多,如需个人学习使用,配置选择1核CPU2G内存就已足够(后期可在控制台选择降级为1核CPU1G内存)。
购买域名(可选)
你可以通过IP地址访问你的服务器,也可以购买一个域名,解析到服务器IP,通过域名进行访问。
获取备案号(可选)
在国内平台购买的域名可能无法直接解析你的服务器,你会看到一个阻拦页面。此时你需要先在服务器提供商/域名提供商申请备案,提供商初审通过后,再交由工信部审核,前后大约10-20天左右。
环境部署
如果你是新手,可以用宝塔进行环境部署。 以Centos7系统为例,
- 用SSH连接你的服务器,输入以下脚本代码:
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
- 宝塔安装完成后,会显示面板地址和用户名/用户密码等信息,注意复制保存。
- 在浏览器中输入上一步面板地址,登陆后面板会自动向你推送环境部署的对话框。注意:如果需要安装DokuWiki,请选择PHP7的版本,而不是更高版本,否则一些插件会报错。
创建网站
以宝塔为例,在面板选择“网站”——“添加站点”,填入你网站的信息。此时网站地址,可能无法正常访问,需要你在“高级设置”——“默认站点”下选择你的网站目录,重新打开网址就可以访问了。
安装SSL证书
你可以在云服务器提供商/域名提供商购买SSL证书。如果你是个人网站,建议申请Digicert DV(Basic) 单域名证书,有效期三个月,费用免费,并且签发过程很快。以华为云服务为例,申请SSL证书后进行DNS验证后即可签发。
以宝塔面板为例,在创建网站之后,点击SSL证书下的“未部署”,粘贴你证书的*.key以及*.pem/*.crt内容,然后保存即可。
常见问题
如果你在安装SSL证书过程中,打开了强制HTTPS访问,结果无法打开网页或者宝塔面板,可以清除你浏览器的HSTS设置来进行临时访问:
- Chrome浏览器:在地址栏输入
chrome://net-internals/#hsts
在“Delete domain”的输入框中输入域名,点击“Delete”按钮。
- Edge浏览器:在地址栏输入
edge://net-internals/#hsts
在“Delete domain”的输入框中输入域名,点击“Delete”按钮。
DokuWiki站点设置
站点安全
初次安装DokuWiki之后,你在管理页面可能会看到如下警告: 看起来你的数据集不太安全。 请参考以下链接Web Access Security in DokuWiki。
解决办法:通过修改Apache/IIS/Nginx的配置文件,更改网站目录/文件的读取权限。 以宝塔为例,本站使用的是Nginx,配置文件在/www/server/panel/vhost/nginx下的*.conf,将*.conf中原来的
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md) { return 404; }
更改为
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md|data|conf|bin|inc|vendor) { return 404; }
即可
插件
IndexMenu Plugin
使用方法
- 安装插件IndexMenu Plugin。
- 编辑sidebar页面:在编辑页面工具栏最右侧点击Insert the Indexmenu tree。
- 如需自定义文件夹样式,需要在DokuWiki设置-功能标志中,取消defer_js勾选。
- 如果你希望可以自定义命名空间和页面的排序,在上述第二步中务必选择msort和nsort。然后在你想要排序的页面/或者目录的headpage中插入如下代码
{{indexmenu_n>1}}
1表示排在序列第一位,你可以根据需要进行更改。
- 隐藏不需要显示的命名空间(playground和wiki)和页面(sidebar和start):
- 在配置设置——Indexmenu——plugin»indexmenu»skip_index设置中填入:
/(playground|wiki)/
- 在配置设置——Indexmenu——plugin»indexmenu»skip_file设置中填入:
/(sidebar|start)/
BlogTNG Plugin
url设置
Dokuwiki默认的URl格式看起来杂乱,你可以通过重写来获得更简洁的URL。