Relative Content

K4NZDROID

category

「CMS and DMS」- 杂记

协作编辑器(Collaborative Editor)
Etherpad – A real-time collaborative editor for the web
ether/etherpad-lite: Etherpad: A modern really-real-time collaborative document editor.
真正的实时协作文档编辑
ProseMirror – In-browser semantic rich text editing
ProseMirror – A toolkit for building rich-text editors on the web
在浏览器内的语义丰富的文本编辑
Decentralizing your Website (IPFS + ENS)
Decentralizing your Website. IPFS + ENS | by Lucas Kohorst | Towards Data Science[……]

READ MORE

「Note-taking, Wiki, Blog」- 笔记、维基、博客

问题描述
我们需要记录工作笔记,以及工作中遇到的问题。
该笔记将记录:笔记记录软件、博客发布系统,以及相关工具的使用方法。
解决方案
Zim(A Desktop Wiki Editor) 1)Zim – a desktop wiki 2)桌面维基编辑器。我们目前正在使用的笔记软件。
WordPress(Blog Tool, Publishing Platform, and CMS) 1)Blog Tool, Publishing Platform, and CMS 2)博客发布平台,博客系统,CMS 系统;
Hexo(A fast, simple & powerful blog framework, powered by Node.js.) 1)hexojs/hexo: A fast, simple & powerful blog framework, powered by Node.js.
Gollum — A git-based Wiki 1)gollum/gollum: A simple, Git-powered wiki with a sweet API and local frontend. 2)在 GitLab 中,默认的 Wiki 编辑工具。带有图形化界面,方便我们编辑 Markdown 文件。
Hugo 1)http://www.gohugo.org
蚂蚁笔记(Leanote) 1)访问GitHub仓库;访问官方主页;
Jekyll • Simple, blog-aware, static sites 1)Jekyll • Simple, blog-aware, static sites | Transform your plain text into static websites and blogs 2)博客软件,利用我们编写的 Markdown Liquid HTML CSS 来生成站点。
我们的博客发布方式
我们一直使用Zim进行日常笔记。后来,笔记渐渐有了博客般的内容形式,我们也打算将它发布出来。
02/14/2017 ZIM DESKTOP WIKI
最开始,我们发现Zim一个神奇的工具。它支持自定义模板,可以将博客根据模板页面导出到指定的格式。神一样的存在!!!我们的博客就是用Zim写的,然后导出HTML页面的,然后发布到线上。
07/26/2018 ZIM DESKTOP WIKI
导出HTML存在一些问题: 1)笔记较多,导出时间很长,消耗资源。 2)如果笔记发生了移动或重命名,之前导出的某些HTML页面就需要删除修改,所以每次更新都是发布整个笔记。
现在我们的博客已经不用导出HTML了。因[……]

READ MORE

「GitBook」- 安装

问题描述
GitBook,是一个命令行工具(和Node.js库),用于使用GitHub/Git和Markdown(或AsciiDoc)构建精美的电子书。本文主要介绍如何安装Gitbook工具,以及对应的客户端程序。
该笔记将记录:GitBook 的使用方法,以及相关问题的解决方案。
工具与客户端
GitBook
它一个命令行工具。用于初始化目录,生成文档目录结构,作为Web站点访问文档,导出其他格式等等。
Gitbook Editor
GitBook Editor – Simple writing from your desktop
它是一个桌面编辑器。虽然Gitbook是基于Markdown的,但是编写Markdown还是比较繁琐的。因此可以通过GitBook Editor来编辑笔记。
安装应用
GitBook

# 安装
npm install gitbook-cli -g

# 在当前目录初始化,并创建一个样板
gitbook init

Gitbook Editor

# 下载
# https://legacy.gitbook.com/editor

# 安装:Debian
dpkg -i gitbook-editor-7.0.12-linux-x64.deb

# 启动
gitbook-editor

# 其他方面:
#(1)可以修改「库」(相当于工作目录,是文档的保存目录,新建文档都位于该目录中)的路径:
# 「Menu Bar」-「GitBook Editor」->「Change Library Path…」

参考文献
Setup and Installation of GitBook Libraries.io/gitbook GitBook/What is GitBook gitbook安装中installing gitbook xxx 时间过长的问题[……]

READ MORE

「GitHub Pages and Gitee Pages」- 搭建免费的个人博客

GitHub Pages
简单说:创建仓库 => 提交页面(HTML、Markdown)=> 简单设置 => 访问 http://<username>.github.io 地址 => 将显示提交到仓库中的页面
Gitee Pages
与 GitHub Pages 相似
通过 GitHub Pages 搭建免费的个人博客
该笔记将记录:使用 GitHub Pages 功能,搭建免费的个人博客
注意事项
1)我们的 GitHub 用户名为 k4nzdroid,后面将使用该用户名。读者需要根据自己的情况进行替换; 2)这里仅提供最简单的演示,详细及特定设置在其他部分说明;
第一步、创建仓库
在 GitHub 中,创建仓库。仓库名必须使用 <username>.github.io 格式,因此我们使用 k4nzdroid.github.io 作为仓库名。
第二步、提交页面
创建如下 HTML 页面,并提交到仓库中:

<!– index.html –>
<h1>Hello GitHub Pages!</h1>

第三步、启用 GitHub Pages 功能
在 Settings / GitHub Pages 中,设置分支及目录,Save
第四步、访问地址
查看 https://k4nzdroid.github.io 地址
参考文献
How To Publish Your HTML With Github Pages | by Anil Emrah | Medium Gitee Pages – Gitee GitHub Pages | Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live. Configuring a custom domain for your GitHub Pages site – GitHub Docs Managing a custom domain for your GitHub Pages site – GitHub Docs[……]

READ MORE

「Hexo」- 博客框架,快速、简单、强大

安装命令

# Ubuntu 20.04 TLS
sudo npm install -g hexo-cli

常用工具
vscode-hexo – Visual Studio Marketplace
使用示例
http://visugar.com/2017/05/04/20170504SetUpHexoBlog

# 创建博客
# 该命令在 source/_posts/ 目录下创建 new_post_title 目录和 new_post_title.md 文件;
# new_post_title.md:编辑新文章的内容;
# new_post_title:用于保存图片;
hexo new new_post_title

# 预览访问
hexo clean
hexo g
hexo s[……]

READ MORE

「MediaWiki」

version 1.28.2
相关教程
如何使用表格:http://blog.sina.com.cn/s/blog_622134fd01019s97.html 如何修改MediaWiki的左侧栏的项目:http://dreamfromars.blog.sohu.com/246299854.html 侧栏操作手册:https://www.mediawiki.org/wiki/Manual:Interface/Sidebar MeidaWiki中的维护脚本:https://www.mediawiki.org/wiki/Manual:Maintenance_scripts 文本格式化:https://www.mediawiki.org/wiki/Help:Formatting
插件下载
左侧菜单折叠插件:https://www.mediawiki.org/wiki/Extension:CollapsibleVector 语法高亮插件:https://www.mediawiki.org/wiki/Extension:SyntaxHighlight 富文本编辑器:https://www.mediawiki.org/wiki/Extension:VisualEditor 执行维护SHELL:https://www.mediawiki.org/wiki/Extension%3aMaintenanceShell 删除多个页面:https://www.mediawiki.org/wiki/Extension:DeleteBatch
参考文献
Homepage:https://www.mediawiki.org/wiki/MediaWiki MediaWiki插件:http://blog.csdn.net/sstm888/article/details/8915197[……]

READ MORE

「WORDPRESS」- 杂记

解决方案
WordPress 是一个开源的内容管理系统(CMS),用于创建和管理网站和博客。
原理简述
它由PHP编写,基于MySQL数据库,并在GNU通用公共许可证下发布。
特性特征
WordPress提供了一个易于使用的界面,允许用户通过添加和编辑内容,更改主题和插件来定制其网站外观和功能。
应用场景
它被广泛用于博客、新闻、商业和电子商务网站等各种类型的网站。[……]

READ MORE

「WordPress」- 安装与升级

通过 Docker Compose 部署
Quickstart: Compose and WordPress | Docker Documentation
我们通过 Docker Compose 部署 WordPress 的原因是为了站点的便捷迁移,鉴于如下原因: 1)配置及数据”集中“存储,在迁移站点时,能够快速完成迁移; 2)在迁移站点时,新主机仅需 Docker 服务;而传统的部署方式,需要预先搭建运行环境;

version: “3.9”

services:
db:
image: mysql:5.7
volumes:
– ./data-mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
– db
image: wordpress:latest
volumes:
– ./data-wordpress:/var/www/html
ports:
– “8000:80”
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress[……]

READ MORE

「WordPress」- 升级 5.1.8 到 5.6 版本

问题描述
我们需要将 WordPress 升级到最新版本(01/10/2021,WordPress 5.6)。
但是,通过后台升级会失败,经过排查是由于无法访问 wordpress.org 而导致失败。
该笔记将记录:在国内,如何升级 WordPress 站点。
解决方案
第一步、数据备份(重要)
1)停止站点,防止数据写入,进行数据库备份; 2)备份站点:rsync -a /path/to/website/ /path/to/website.backup/
第二步、更新文件
1)下载新版(WordPress 5.6) 2)更新文件:rsync -a /path/to/wordpress-5.6/ /path/to/website/
第三步、访问站点
访问站点,将会提示「升级 WordPress 数据」,进行升级即可。
注意事项
在部分文章中,提到升级 wp-admin/ 与 wp-include/ 即可,但是我们升级失败了。然后,我们直接使用 rsync 升级全部文件(因为已经备份,所以不再担心升级失败的问题(其实我们没有进行数据库的备份,也算是在冒险))。
参考文献
WordPress国内更新方法详解! Updating WordPress | WordPress.org[……]

READ MORE

「WordPress」- 常用设置及常见问题处理

查看 WordPress 版本
How to Check Your WordPress Version (4 Methods)
wp-includes/version.php/$wp_version
多语言支持
How to Easily Create a Multilingual WordPress Site https://www.wpbeginner.com/beginners-guide/how-to-easily-create-a-multilingual-wordpress-site/
显示文章数
How to Change the Number of Posts Displayed On Your WordPress Blog Page Dashboard -> Settings -> Reading -> Blog pages show at most
添加统计代码
Wordpress网站中添加百度统计代码 – callor – 博客园
1)Appearance / Theme Editor / footer.php 2)将统计代码添加到该页面底部(在 </body> 内)
Documentation Site
weDocs – Knowledgebase and Documentation Plugin for WordPress – WordPress plugin | WordPress.org DocsPress – Online Documentation – WordPress plugin | WordPress.org BetterDocs – Best Documentation & Knowledge Base Solution for WordPress – No# 1[……]

READ MORE

「WordPress」- 插件汇总

# WP Reset – 重置,用于重新初始化Wordpress数据。 https://wordpress.org/plugins/wp-reset/
# WP Mail SMTP – 设置站点发送邮箱。 https://wordpress.org/plugins/wp-mail-smtp/
# UpdraftPlus – Backup/Restore – 数据库备份 https://wordpress.org/plugins/updraftplus/
# Safe PHP Code Widget – 使用代码作为空间,某些小插件不支持作为控件 https://wordpress.org/plugins/safe-php-code-widget/
# One Click Demo Import – 导入演示数据 https://wordpress.org/plugins/one-click-demo-import/
# Contact Form 7 – 联系我们 https://wordpress.org/plugins/contact-form-7

<?php echo do_shortcode( ‘[contact-form-7 id=”1234″ title=”Contact form 1″]’ ); ?>

# Akismet Anti-Spam – 屏蔽垃圾邮件 https://wordpress.org/plugins/akismet
# Max upload size – 上传文件大小 https://wordpress.org/plugins/max-upload-size
# Disable Comments – By Samir Shah – 彻底禁用评论 https://wordpress.org/plugins/disable-comments
# WP-UTF8-Excerpt – 使文章摘要支持多字节语言 https://wordpress.org/plugins/wp-utf8-excerpt
# WPS Hide Login – 隐藏后台登录地址 https://wordpress.org/plugins/wps-hide-login
# Change wp-admin login – 隐藏后台登录地址 https://wordpress.org/plugins/change-wp-admin-login
# WP Statistics – 数据统计插件 强大的 WordPress 统计分析插件 WP Statistics
# WP Optimize – 性能优化 WP-Optimize – C[……]

READ MORE

「WordPress」- 修改文章摘要

# What is an Excerpt ?
Excerpt,摘要,文章摘要。在文章列表中,每篇文章都有一个摘要。
# 题外话:首先要做的一件事情
首先,先安装一个插件「WP-UTF8-Excerpt」。因为在多字节字符(比如,中文)场景中,文章摘要的最后是乱码,这是由于多字节字符被截断了。
添加该插件后,可以在Settings -> Excerpt Options中进行一些额外设置。
# 如何自定义它的内容?
每个文章都有「文章摘要」设置的文本框,你找找。如果你没有自定义文章摘要,则默认显示文章的前55个字符。
另外WordPress的REST API也支持「excerpt」参数。(这正是我需要的,因为我的文章是批量导入的。)
# 如何修改它的长度等等?
那如何修改这摘要呢?比如说,修改显示长度、只显示文章第一行、或者只显示第一个段落。
(1)除了可以自定义内容外,还可以使用「MORE标签」进行分离,「MORE标签」之前的内容会显示在「文章摘要」部分。
(2)或者使用「Advanced Excerpt」插件,进行一些其他自定义的设置。
(3)如果这还不能满足,那就只能通过修改程序进行解决了。
话说回来,除非你文章太多,想一劳永逸,不然通过「自定义文章摘要」的方法已经很好了,毕竟这个办法足够解决我的问题了。
相关链接
Limit the_excerpt in the first point (.) of the sentence Excerpt with linebreaks
参考文献
WordPress/Plugins/WP-UTF8-Excerpt WordPress/Support/Excerpt How to Customize WordPress Excerpts (No Coding Required) WordPress/REST API Handbook/Posts[……]

READ MORE

「WordPress」- 美化 URL 地址

问题描述
该笔记将记录:在 WordPress 中,与 URL 地址处理有关的设置,及相关问题处理。
解决方案
设置 url 格式
如果需要对 URL 美化,需要在 Settings / Permalinks 中进行配置。
默认的格式是:http://example.com/?p=123
我们使用格式:http://example.com/%category%/%postname%.html
但是这需要进行 URL 重写,否则只会返回 404 页面。因为使用 Nginx 服务:

location / {
try_files $uri $uri/ /index.php?$args;
}

然后重启 Nginx 服务。
处理 404 页面
我们使用 Redirection 来对 404 页面进行重定向。
也能够使用 URL rewriting 对页面进行重写,但是这需要编程: 1)URL Rewriting: How To Rewrite URLs In WordPress – Regur Technology Solutions 2)Rewriting URLs in WordPress: Tips and Plugins – Hongkiat
参考文献
Using Permalinks zh-cn:使用固定链接[……]

READ MORE

「WordPress」- Posts, Pages

删除重复文章
How to Bulk Delete WordPress Posts (2 Easy Solutions)
我们的文章是是批量导入的,但是由于原始文章删除失败,导致页面存在大量重复的文章。
我们需要删除这些重复的文章(他们的 Title 是相同的)。
补充说明
在我们的场景中,由于文章 Title 相同,所以我们能够识别出重复的文章。但是,如果能确定重复的依据,则依旧可以套用该方法。
解决方案
第一步、安装 WP Bulk 插件,我们需要使用其 By URL(根据 URL 删除)功能。
第二步、查找相同的文章,使用如下 SQL 语句并生成链接:

— 注意事项:该 SQL 并非适用于所有场景,仅适用于“创建重复文章并希望删除旧文章的场景”的场景

SELECT
— a.id,
— b.id,
— a.post_title,
CONCAT(‘http://blog.example.com/?p=’, a.id)
FROM
wp_posts a
LEFT JOIN (
SELECT
id,
post_title ,
MAX(id) AS pd,
COUNT(id) AS m
FROM
wp_posts wp
GROUP BY
post_title
ORDER BY
id ASC) AS b ON
b.pd = a.id
WHERE
b.id IS NULL;

第三步、删除文章 将如上 SQL 语句生成的链接复制到 Bulk WP / Bulk Delete Posts / By URL 中,然后点击 Bulk Delete 进行删除。
清理 Reversion 文章
How to Disable and Remove Old Post Revisions in WordPress
1)通过 WP Optimiztions 插件 2)或直接从数据库删除(DELETE FROM wp_posts WHERE post_type = “revision”;);
在 wp-config.php 中,定义如下变量,以抑制 Reversion 功能:

define( ‘WP_POST_REVISIONS’, false );
define( ‘WP_POST_REVISIONS’, true );

显示树形结构(Pages)
How to Display a List of Child Pages For a Parent Page in WordPress wp_list_pages() | Function | WordPress Developer Resou[……]

READ MORE

「WordPress」- 自定义 CSS 样式

问题描述
在 WordPress 中,我们能够访问 WordPress Themes 站点获取并安装自己喜欢的主题插件。
但是,这些主题终究不是我们自己开发的,因此我们依旧希望按照自身需求修改主题的某些内容。
该笔记将记录:在 WordPress 中,如果添加自定义 CSS 样式来修改主题,以及相关问题处理。
解决方案
在 WordPress 中,虽然能够直接编辑主题,但是当升级主题时,原始的主题文件会被覆盖,而此时我们的修改也会被覆盖。鉴于此,直接修改主题文件这并不是个好主意。
此次之外,我们能够通过 Additional CSS 来添加自定义 CSS 样式。在管理后台中,访问 Appearance / Customize / Additional CSS 来添加自定义样式。(我们还能够使用 Insert Headers and Footers 插件来添加自定义代码,参考 4.Plugins and Customization:Additional Code 笔记)
下面是我们针对 MyWiki 主题的自定义样式:

/* Header */
#inner-header {
display: none;
}

.search-main {
padding-left: 0px;
padding-right: 0px;
}

/* Content */
#main {
border-left: 1px solid #E7E7E7;
}

#main #home-main article header a {
text-indent: -0.6em;
}

#main #home-main article header h4{
text-indent: -0.6em;
border-bottom: 2px solid;
font-size: 28px;
padding-bottom: 7px;
}

#main #home-main article article h2{
border-bottom: 2px solid;
font-size: 25px;
padding-bottom: 7px;
padding-top: 10px;
font-weight: bold;
}

#main #home-main article article h3{
font-size: 20px;
padding-bottom: 7px;
padding-top: 10px;
font-weight: bold;
}

#content-wrap p + p {
margin-top: 20px;
}

#content-wrap div + p {
margin[……]

READ MORE

「WordPress」- 添加自定义代码

问题描述
在 WordPress 中,我们能够添加自定义代码,这能够通过修改主题文件实现。但是如果主题升级,那么我们的修改将会丢失。因此,通过修改主题文件来添加自定义代码并不是个好主意。
好在有相关的插件解决类似问题,比如 Insert Headers and Footers 插件,这也是我们将要介绍的插件(类似的插件有很多,我们选择当前下载量和排名比较靠前的同类插件)。
该笔记将记录:在 WorkPress 中,如何使用 Insert Headers and Footers 插件来添加自定义代码,以及相关问题处理。
解决方案
第一步、安装插件
安装插件的方法不再赘述,直接在管理后台搜索并安装 Insert Headers and Footers 插件即可。
第二步、添加自定义代码
在管理后台中,访问 Settings » Insert Headers and Footers 页面,然后添加自定义代码。
在添加完成后,点击 Save 保存,并刷新页面查看效果。
参考文献
How to Add Header and Footer Code in WordPress (the Easy Way)[……]

READ MORE

「WordPress」- 增加单页返回数据量

问题描述
在 REST API 中,请求参数 per_page 用于指定单次 HTTP 请求返回的数据量。默认值 10,最大值 100。
我们希望可以调整最大值,比如设置最大值为 1000(因为我们清楚自身情况,所以数量调整到 1000,并不会导致服务器压力过大)。
那该如何调整这个最大值呢?
解决办法
在 Appearance => Theme Editor => function.php 中,将如下程序添加到文件最开始:

add_filter( “rest_post_collection_params”, ‘big_json_change_post_per_page’, 10, 1 );
function big_json_change_post_per_page( $params ) {
if ( isset( $params[‘per_page’] ) ) {
$params[‘per_page’][‘maximum’] = 1000;
}
return $params;
}

点击 Update File 按钮以保存。
这样在调用 /wp-json/wp/v2/posts?per_page=1000 接口时,可以传入更大的 per_page 值。
附加说明
如上示例只能调整返回的文章数,如果想要调整返回的分类数,需要使用 rest_category_collection_params 参数才行。
从道理上说应该可以动态获取。在官方文档中,使用 rest_{$this->post_type}_collection_params 作参数。但是我们在 fucntion.php 中,是没有 $this 参数的。
由于精力时间有限,并且这也不是什么大问题,所以我们不再深入研究,如果日后遇到再行补充。
参考文献
Increase per_page limit in REST API WP_REST_Posts_Controller::get_collection_params / rest$this->post_type_collection_params How to increase per_page limit to 200 ? #2914[……]

READ MORE

「WordPress」- 文章搜索接口

问题描述
该笔记将记录:在 WordPress 中,与搜索接口相关的问题。
解决方案
接口地址:Posts/List Posts
问题:搜索特定字段(搜索 Title 字段)
默认情况,当调用 Serach API 时,将在“所有字段”(比如 Title Content Excerpt 等等)中搜索关键字。
但是我们仅希望搜索 Title 字段,而不是所有的字段。(这是因为 WordPress 搜索功能有限,返回文章并非按照相关读排序)
我们的解决方法如下: 1)安装 WP Extended Search 插件 2)通过前端的 example.com/?s=<keywords> 搜索 3)通过函数库来解析 HTML 文档。
参考文献
Posts | REST API Handbook | WordPress Developer Resources[……]

READ MORE

「WordPress」- 扩展搜索功能、增强搜索

问题描述
WordPress 的原有搜索功能无法满足我们的需求,因此我们需要增强 WordPress 的搜索功能。
该笔记将记录:在 Linux 中,如何增强 WordPress 的搜索功能,以及相关问题的处理方法。
解决方案
注意事项,这些插件仅能增加 WordPress 的前端搜索功能,但是无法增强 REST API 的搜索功能。
WP Extended Search
地址:WP Extended Search – WordPress plugin | WordPress.org 功能:搜索功能扩展,增强**原有**搜索功能
ElasticPress
地址:ElasticPress – WordPress plugin | WordPress.org 功能:集成 Elasticsearch 搜索,扩展原有搜索功能,即无需修改搜索。
安装插件: 1)安装:到插件中心直接安装即可。 2)验证:当安装成功后,搜索请求的 HTTP 响应头中将包含 x-elasticpress-search: true 字段。
调试工具: 1)安装:Debug Bar ElasticPress(依赖 Debug Bar 插件),能够显示所执行的 DSL 语句。 2)使用:在安装调试工具后,管理栏的右上角将显示 Debug 按钮,点击查看相关调试信息。
参考文献
Elasticsearch for WordPress – an ElasticPress tutorial – Savvii 10up/ElasticPress: A fast and flexible search and query engine for WordPress. Home – 10up ElasticPress Hook Docs How to Improve WordPress Search (and Speed It Up)[……]

READ MORE

「WordPress」- 修改主题

问题描述
在 WordPress 中,我们能够访问 WordPress Themes 站点获取并安装自己喜欢的主题插件。
但是,这些主题终究不是我们自己开发的,因此我们依旧希望按照自身需求修改主题的某些内容,进行主题的二次开发。
该笔记将记录:在 WordPress 中,如果添加自定义 CSS 样式来修改主题,以及相关问题处理。
解决方案
注意事项
关于主题备份: 1)如果修改主题文件,在主题文件升级前,我们需要进行手动备份,否则我们修改的文件将会被覆盖。 2)此外,必须禁用主题的 自动更新 功能,否则也会出现已修改主题被覆盖的问题。
场景一、自定义搜索框
如果希望给页面添加搜索框,有如下若干方法: 1)控件:Appearance > Widgets > Available Widgets/Search,我们能够将其添加到我们希望的位置; 2)插件:通过插件来添加搜索框,比如 Add Search To Menu 插件 3)代码:我们还能够通过修改主题文件,在页面中添加 <?php get_search_form(); ?> 函数,以显示搜索框;
我们使用 3)方案,这对我们来说更加灵活。但是我们能够自行编写搜索框,如下代码为简单示例:

<form id=”searchform” method=”get” action=”<?php echo esc_url( home_url( ‘/’ ) ); ?>”>
<input type=”text” class=”search-field” name=”s” placeholder=”Search”
value=”<?php echo get_search_query(); ?>”>
<input type=”hidden” name=”post_type[]” value=”book” />
<input type=”hidden” name=”post_type[]” value=”magazine” />
<input type=”hidden” name=”post_type[]” value=”ebook” />
<input type=”hidden” name=”post_type[]” value=”pdf” />
<input type=”submit” value=”Search”>
</form>

如果需要修改 placeholder 属性,并不是每一个方法都好用,这个问题与模板的实现有关。多数情况,[……]

READ MORE

「WordPress」- 完善插件语言包

问题背景
在 WordPress 中,经常会出现语言包不完整的情况。比如我设置语言为简体中文(zh-CN),但是有些内容还是显示为中文,这主要的因为主题或者插件中的语言包不完整。
本文介绍了处理这种问题的办法。但是在开始介绍处理办法之前,要先介绍以下.pot、.po、.mo文件。
关于 .pot / .po / .mo 文件
.pot
模板文件,其实质与 .po 文件类似,其中包含从源代码中提取所有的翻译字符串的列表,主要提供给翻译人员使用。
.po – Portable Object
1)用程序 msginit 来分析 pot 文件,生成各语言对应的 po 文件。比如,中文就是 zh_CN.po 文件,法语就是 fr.po 文件 2)PO是Portable Object(可移植对象)的缩写形式,它是面向翻译人员的、提取于源代码的一种资源文件。 3).po文件可以用任何编辑器如poEdit,vi,Emacs,editplus打开,交给翻译人员来将其中的文字翻译成本国语言。
.mo – Machine Object
1)使用 msgfmt 将 .po 文件编译成 .mo 文件。注意 .mo 是二进制文件,不能直接编辑。 2)是面向计算机的、由 .po 文件通过gettext工具包编译而成的二进制文件,应用程序通过读取.mo文件使自身的界面转换成用户使用的语言,如简体中文。
提示
可以用工具如msgunfmt命令将.mo文件反编译为.po文件。
回到WordPress中
在WordPress中的语言包也是使用的po、mo文件。这里以我正在使用的主题weblog为例。
主题插件weblog的主目录为wp-content/themes/weblog,你需要使用wp-content/themes/weblog/languages/weblog.pot文件生成weblog-zh_CN.mo文件,并将weblog-zh_CN.mo文件放在wp-content/languages/themes目录中。接下来,我们就开始操作了。
首先,你需要编辑wp-content/themes/weblog/languages/weblog.pot文件进行汉化处理。.pot文件的结构类似于:

#: template-parts/content-page.php:20 template-parts/content-single.php:53
#: template-parts/content.php:66
msgid “Pages:”
msgstr “”

其中,msgid对应程序中的字符串;井号(#)开始的行是注释,记录了程序中使用字符串的地[……]

READ MORE

「WordPress」- 常见错误汇总

Briefly unavailable for scheduled maintenance. Check back in a minute.
How to Fix “Briefly Unavailable for Scheduled Maintenance. Check Back in a Minute” in WordPress
问题描述:在安装插件、主题升级时,如果刷新页面或者操作失败,会显示如下提示:

Briefly unavailable for scheduled maintenance. Check back in a minute.

解决方案:移除 ./.maintenance 文件。[……]

READ MORE

「ZIM」- 桌面维基编辑器

Zim,是维基文档的图形编辑器,以图形的方式直接编写维基文档。简单地看,它就是款笔记软件,但是功能及其强大;
ZIM-DESKTOP-WIKI
相关链接
官方站点:Zim – A Desktop Wiki 仓库地址:GitHub/zim-desktop-wiki/zim-desktop-wiki 使用技巧:jaap-karssenberg/zim-wiki
使用日志
# 12/17/2018 今天到 GitHub 上看了一下,它的 MASTER 分支已经是 Python 3 的实现了,原本的 Python 2 版本已经移动 python2-gtk2 分支了;
# 09/02/2019 仓库标签 0.69.1 是最后一个 GTK 2 的版本,从 0.70 开始使用 Python 3 实现,并使用 GTK 3 库。或者可以使用 python2-gtk2 分支;
# 12/15/2020 今天,我们升级,直接使用 master 分支,因为我们要参与 zim 的开发 🙂
# 04/19/2023 现在,我们使用 develop 分支(其为当前的开发分支),新版本的变更特别多;
参考文献
Zim – a desktop wiki Zim (software) – Wikipedia Zim User Manual 在 GitHub 上的手册 Zim – 普通人的 Org-mode[……]

READ MORE

「Zim」- 从 0.69 升 0.70 后,侧栏消失

问题描述
升级 Zim 版本,0.69 to 0.72,侧栏无法显示(或者 Index 消失)。
问题原因
我们进行一番排查(PyCharm debug),发现侧栏 Index 是插件,而 .config/zim/preferences.conf 没有该插件。
在新版本中,侧栏的 Index 是以插件形式出现的。
解决方法
在 Plugins 中,启用 Page Index 插件。
参考文献
upgrade 0.69 to 0.72.1 causes loss of side pane · Issue #1167 · zim-desktop-wiki/zim-desktop-wiki · GitHub[……]

READ MORE

「Zim」- 滚动条覆盖末行文本

问题描述
在 SourceView 中,水平滚动条会覆盖末行文本。
问题原因
该问题这与 GTK 3 实现相关。
解决方法
1)通过修改代码,永远显示水平滚动条(Eclipse 也是这样处理的,在 2020-12 中,水平与垂直滚动条默认是显示的) 正如 SourceView: the horizontal scrollbar covers the last line. · Issue #1342 所述
2)使用环境变量 GTK_OVERLAY_SCROLLING=1 来启动应用(当鼠标悬浮于滚动条时,才显示,但效果不好):

GTK_OVERLAY_SCROLLING=1 zim

参考文献
SourceView: the horizontal scrollbar covers the last line. · Issue #1342 Bug Report – sql editor scrollbars hides last row · Issue #4839 Horizontal scroll bar thickness · Issue #1570 add empty space bottom in table view. because there are horizontal scrollbar · Issue #8484[……]

READ MORE

「ZIM」- 搭建开发环境

操作系统
Ubuntu 22.04 LTS
安装依赖

# ——————————————————— # inside ubuntu

apt-get install python-is-python3 gir1.2-gtk-3.0 python3-gi python3-xdg python3-pillow

apt-get install pkg-config libcairo2-dev

# https://stackoverflow.com/questions/18025730/pygobject-2-28-6-wont-configure-no-package-gobject-introspection-1-0-found
# No package ‘gobject-introspection-1.0’ found
apt-get install libgirepository1.0-dev

# ——————————————————— # inside virtualenv

pip install gobject-introspection-1.0 pygobject[……]

READ MORE

「Zim」- 安装(CentOS、Ubuntu、Debian、源码)

问题描述
该笔记将记录:在 Linux 中,安装 Zim 的方法,以及常见问题的解决方案;
解决方案
下面的部分将针对不同 Zim 版本与 Linux 发行版组合进行记录,也都是我们安装过的版本;
Zim 0.74.3 on Ubuntu 22.04

apt-get install python-is-python3 gir1.2-gtk-3.0 python3-gi python3-xdg python3-pillow pkg-config libcairo2-dev
apt-get install zim

Zim 0.68 on Debian 10
时间:02/14/2020
安装常见依赖包:

apt-get install python-gobject python-gtk2 python-xdg xdg-utils

为使用 Source View 插件,需要安装 libgtksourceview2 与 python-gtksourceview2 包。在 Debian 10 中,包含 libgtksourceview2.0-0 包,但不再包含 python-gtksourceview2 包,且使用 pip 也无法检索到后者。因此我们使用在 Debian 9 中的 python-gtksourceview2 包:

apt-get install libgtksourceview2.0-0
wget http://ftp.tw.debian.org/debian/pool/main/p/pygtksourceview/python-gtksourceview2_2.10.1-3_amd64.deb
dpkg -i python-gtksourceview2_2.10.1-3_amd64.deb # 可能需要安装该包的其他依赖

安装应用包

apt-get install -y zim

Zim python2-gtk2 on CentOS 7.5
版本:Zim (git branch: python2-gtk2) 时间:06/22/2019

#!/bin/sh

# !!!由于需要在命令行中使用,在服务器上执行导出功能。所以在终端先进行安装,没有桌面;
# !!!但是安装失败了,提示「RuntimeError: could not open display」错误。这是没有启动桌面导致的;
# !!!虽然安装失败了,但是源码包里的 zim.py 可以直接运行;

# 检出源码
git clone -b python2-gtk2 https://github.com/jaap-karssenberg/z[……]

READ MORE

「ZIM-DESKTOP-WIKI」- zim:桌面维基Zim的主程序文件

命令行语法格式
zim [OPTIONS] [NOTEBOOK [PAGE]]
zim –server [OPTIONS] [NOTEBOOK] zim –export [OPTIONS] NOTEBOOK [PAGE] zim –search NOTEBOOK QUERY zim –index NOTEBOOK zim –plugin PLUGIN [ARGUMENTS] zim –manual [OPTIONS] [PAGE]
zim –help
命令描述
Zim是一个图形文本编辑器,用于维护一组wiki页面。每个页面可以包含指向其他页面的链接、简单的格式、图像。页面是存储在文件夹结构中,就像在大纲中一样,并且可以有附件。创建新页面就像链接到不存在的页面一样简单。所有数据 存储在具有维基格式的纯文本文件中。各种插件提供额外的功能,如任务列表管理器、公式编辑器、托盘图标、支持版本控制。
Zim可用于:

保存笔记存档
在会议期间记笔记或讲座
组织任务列表
草稿博客条目和电子邮件
进行头脑风暴

命令支持的选项及含义
总选项
–gui 运行编辑器,这是默认的。
–server 运行一个Web服务器。
–export 以不同的格式导出笔记。
–search 在指定的笔记上执行搜索。
–index 为一个笔记创建索引。
–plugin 调用一个地址插件的功能。
–manual 打开手册。
-V, –verbose 在终端中显示详细的信息。
-D, –debug 打印调试信息。
–help 显示帮助信息并退出。
–version 显示版本信息并退出。
与GUI相关(–gui)
–list 显示笔记列表,而不是打开默认笔记
–geometry 指定启动时的窗口大小、位置。参数格式为:WidthxHeight+X+Y
–fullscreen 全屏模式显示。F11可以切换到全屏
–standalone 启动单个实例,没有后台进程。
与Web服务相关(–server)
Zim可以作为一个Web服务运行,监听一个端口号,通过浏览器来查看笔记。
–port 监听的端口号。默认为8080。
–template 要使用的模板的名称。
–gui 显示一个GUI面板。这面板用于控制服务的启动与停止。
如下示例:

# zim –server –port 8080 –template K4NZ blog

上述命令会启动一个Web服[……]

READ MORE

「Zim」- 常见问题处理

# 为 macOS 创建图标
Create a Mac App for Zim Wiki
# PYTHONPATH
PYTHONPATH: http://zim-wiki.org/install.html
# BUG
Text view freeze with a page including a sourceview object Code Block using Syntax Default crash Zim TODO Zim CodeBlock Defaults 崩溃问题
#3 设置默认应用
http://zim-wiki.org/manual/Help/Default_Applications.html
#2 设置默认的编辑器
修改 Tools > Edit Source 功能打开的默认编辑器。
Edit > Preference > Applications > Set default text editor,选择新的编辑器:
#1 在Code Block中的字体
在Code Block中,默认为Monospace字体。如果要修改,可以使用系统中Fontcofig中来配置Monospace字体。
# 10/27/2017 目前,貌似没有提供直接配置字体的方法。
配置的保存位置
用户层面的ZIM全局配置文件位于:$HOME/.config/zim
有关于插件的「状态数据」及「目录索引」位于:$HOME/.cache/zim[……]

READ MORE