Hexo 添加站内静态搜索(全站搜索)功能
前言
网上各种 Hexo 站内静态搜索(全文搜索)方案,原理基本都是通过 Hexo 插件动态生成 JSON 数据文件,然后基于 JSON 数据文件,使用 JS 开发简单的搜索引擎,以此达到搜索目的。目前主流的方案是使用 NexT 主题集成的 hexo-generator-searchdb 插件,可惜该方案的 UI 代码和 JS 代码都严重耦合了 NexT 主题,对其他 Hexo 主题并不友好。由于笔者的博客使用的是 Yilia 主题,因此只能尝试其他替代方案,最终发现 Tipue Search 配合 hexo-tipue-search-db 实现的搜索效果挺不错。Tipue Search 是一款 JQuery 搜索插件,提供了基础的 UI 界面 和 JS 搜索引擎,只要浏览器支持 JQuery 就可以开箱即用,而且 UI 样式支持高度定制,非常适合对搜索界面有强自定义需求的使用场景。这里值得注意的是,上面介绍的站内静态搜索方案都存在共同的致命弱点,那就是当文章数量比较多的时候,Hexo 插件动态生成的数据文件的体积会很大(单位:MB),导致用户首次加载搜索界面时非常慢;而且由于浏览器缓存的缘故,不一定能够实时搜索到最新的文章内容。此时若想从根本上解决上述痛点,只能引入后端的搜索引擎技术,例如 Elasticsearch、Solr、Lucene 等,可这又违背了 Hexo 打造静态博客的初衷。附上本站 Tipue Search 的演示案例。
Hexo 安装插件
插件安装
hexo-tipue-search-db 插件主要用来生成搜索引擎需要的 JS 数据文件(tipuesearch_content.js),默认存放的文件路径为: ${blog_root}/public/tipuesearch/tipuesearch_content.js,该插件兼容 Tipue Search 7.1 +。
1 | # 进入博客的根目录 |
CrossOver 安装微信(WeChat)
前言
笔者曾在文章”CentOS 7 安装常用桌面软件 “中,推荐使用 electronic-wechat 作为 Linux 微信客户端,可惜在 CentOS 7 环境下的长期使用体验比较一般,例如接收到消息时无声音提示,且微信的托盘图标不会闪烁,同时由于 electronic-wechat 是在 Web 版微信的基础上开发的,这就导致新注册的微信账号登录受限,最终无法使用。经过一番尝试,发现 CrossOver 可以近乎完美地安装微信,而且运行的是微信官方原生的二进制执行文件。本教程适用于 Debian/Ubuntu/CentOS 系的 Linux 发行版,文章末尾附有微信运行的最终效果图。
软件版本说明
- CrossOver: 19.0.0
- 微信 PC 客户端: 2.7.1.88
- CrossOver 容器: WinXp-64-bit
- Linux 系统的输入法:搜狗输入法 For Linux 2.2.0.0108
CrossOver 安装运行微信遇到的坑
CrossOver 安装微信的过程中可能遇到了以下问题,本文后面会详细一一给出对应的解决方法:
- 微信启动时偶尔崩溃
- 启动微信提示
WeChatWin.dll文件缺失 - 微信的输入框无法显示光标与文字,只能复制黏贴
- 微信屏幕截图后,无法直接发送图片
- 微信的输入框无法使用搜狗输入法(Linux 版)输入中文
12306 抢票软件的安装与使用
前言
本教程主要介绍如何通过 Docker 安装和使用 TesterSunshine/12306 抢票软件,并配合使用本地的打码服务。
TesterSunshine/12306 抢票软件的功能
- 自动打码
- 自动登录
- 准点预售和捡漏
- 智能候补
- 邮件通知
- Server 酱通知
一款带 Web 管理界面的 12306 抢票软件
前言
本文主要介绍 Py12306 抢票软件的手动安装和 Docker 安装过程,适用于 Centos/Debian/Ubuntu,目前主流开源的 12306 抢票软件有:testerSunshine/12306、pjialin/py12306。
Py12306 抢票功能介绍
- 多日期查询余票
- 自动打码下单
- 用户状态恢复
- 电话语音通知
- 多账号、多任务、多线程支持
- 单个任务多站点查询
- 分布式运行
- Docker 支持
- 动态修改配置文件
- 邮件通知
- Web 管理页面
- 微信消息通知
代理池支持 (pyproxy-async)
Atom 插件管理
Atom 解决在线安装或更新插件慢的问题
1 | # 方法一(配置代理,推荐使用) |
百度站长链接提交 - 主动推送(Python 版)
前言
在加速百度搜索引擎收录站点方面,百度站长目前提供自动提交链接和手动提交链接两种方式,其中自动提交又分为主动推送、自动推送和 sitemap 三种形式。按百度的说法,主动推送的效果最好,百度站长平台后台提供了 Curl、PHP、Ruby 的推送示例代码,但唯独没有提供 Python 示例代码。本文会给出现成的 Python 版本主动推送代码,系统环境依赖 Linux,软件环境依赖 Python3、Curl。
Python3 代码
以下代码会读取特定域名下的 sitemap 站点地图文件,然后通过 Curl 命令将站点地图文件中合法 (结尾为 .html)的 URL 批量提交给百度站长平台,请自行替换代码中的 domain、token、site_map_url 变量值。
Centos8 新特性介绍
前言
CentOS 7 将在 2024 年 6 月 30 日停止支持。
发布时间
CentOS 8 在 2019.9.25 正式发布,提供了两个版本,分别是 CentOS 和 CentOS Streams,Linux 内核版本为 4.18。其中 CentOS Stream 是一个滚动发布的 Linux 发行版,它介于 Fedora Linux 的上游开发和 RHEL 的下游开发之间而存在。可以把 CentOS Streams 当成是用来体验最新红帽系 Linux 特性的一个版本,而无需等太久。CentOS 8 不支持 在 CentOS 7 的基础上进行大版本升级,因此 CentOS 8 只支持全新安装。截止 2020 年 12 月 9 日,CentOS 官方团队正式宣布 2021 年后将停止更新 CentOS 8,转而将更多的精力放在 CentOS Stream 上,也就是说以后不会再有 CentOS 9、CentOS 10,但 CentOS 7 的长期技术支持时间将不会改变,依旧会延续到 2024 年。
软件仓库
引入了两个新的软件仓库,分别是 BaseOS 和 AppStream,其中 BaseOS 包含所有底层 OS 包,AppStream 包含与应用程序相关的包、开发工具、数据库和其他包。换句话说,BaseOS 仓库拥有组成操作系统核心的传统 RPM 包。一旦你更新了系统,它会自动下载并安装这些包的任何新版本。然而有时候你可能不想批量升级软件,因为它可能会在你希望保持稳定的环境中导致兼容性问题(例如在测试代码时)。AppStream 是对传统 rpm 格式的全新扩展,为一个组件同时提供多个主要版本,这就是为什么新的 CentOS 8 新增了 AppStream 仓库。
软件更新
使用 YUM 包管理器 4.0.4 版本,该版本现在使用 DNF (Dandified YUM) 技术作为后端。DNF 是新一代的 YUM,且 CentOS 8 允许同时使用这 dnf 和 yum 两种工具来管理包。与 DNF 技术集成后,提高了性能,具有定义良好的 API,并支持模块化内容、云应用程序流、容器工作负载和 CI/CD。
Fedora30 构建 Flatpak 应用
系统环境
1 | Fedora release 30 (Thirty) |
Flatpak 安装
1 | # 安装flatpak |
Centos7 下 Flatpak 的安装与使用
Flatpak 介绍
Flatpak(前世为 xdg-app)是一种用于构建、分发、安装和运行应用程序的技术,类似的应用程序容器技术还有大名鼎鼎的 Snap、AppImage。它主要针对的是 Linux 桌面,通过在沙箱中隔离应用程序来提高 Linux 桌面的安全性,允许应用程序安装在任何 Linux 发行版上,而且支持用户在同一个系统中安装同一应用程序的多个版本。如果需要更多的 Flatpak 应用,可以从 Flathub 应用商店直接获取。
Flatpak 安装
1 | # 安装flatpak |

