最近一阵子老丈人染病求医入院,就诊当天遇到一个多次入院的病友家庭,作为过来人,他们对我们做了认真翔实的指导。病房里患者间会相互打听病情,交流中无不透露着同情、怜悯、支持和关心的情感,甚至连自己带饭都要问一下隔壁患者需不需要帮忙带饭。
老丈人入院前情绪有些低落,进入病房这个小团体后意识到原来这么多人跟自己一样受病痛困扰、跟病痛斗争,在相互间的倾诉、关心、支持和鼓励中很快乐观开朗起来了,可能这就是同病相怜吧。
—-2021-12-22—-
早上开始手术,排第一位,希望顺利。
最近一阵子老丈人染病求医入院,就诊当天遇到一个多次入院的病友家庭,作为过来人,他们对我们做了认真翔实的指导。病房里患者间会相互打听病情,交流中无不透露着同情、怜悯、支持和关心的情感,甚至连自己带饭都要问一下隔壁患者需不需要帮忙带饭。
老丈人入院前情绪有些低落,进入病房这个小团体后意识到原来这么多人跟自己一样受病痛困扰、跟病痛斗争,在相互间的倾诉、关心、支持和鼓励中很快乐观开朗起来了,可能这就是同病相怜吧。
—-2021-12-22—-
早上开始手术,排第一位,希望顺利。
今天上午将网站的 PHP 版本升级到了 PHP 8.1.0,遇到了几个问题,前前后后倒腾了两三个小时,这里记录下以备不时之需。
好久没登 vps 更新系统了,更新时出现 2 not upgraded 的提示,执行以下命令解决:
apt-get dist-upgrade
复制这里的代码保存名为 php-fpm 的文件到 /etc/init.d 目录,cd 进入 /etc/init.d 执行 chmod 777 php-fpm 加权限。
起初猜测是系统依赖跟新版本存在兼容性问题,切回 8.0.12 尝试更新到 8.0.13 发现还是过不去,仍然报 Please reinstall the iconv library. 百度上能搜的结果倒是很多,多是相互复制,其实方法就一种即重新编译,照着试了两个版本都不管用,后来发现问题是这些方法给的 configure 的配置不适用。最后,执行下列命令解决。
LIBICONV_VERSION=1.15
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${LIBICONV_VERSION}.tar.gz
tar xvzf libiconv-${LIBICONV_VERSION}.tar.gz
cd libiconv-${LIBICONV_VERSION}
./configure --enable-static
make install
睡前下载闲鱼打算翻订单找购买商品的参数,见一条11月7日的未读消息,正是今春购买兰花宋梅的卖家大哥发我的,一位扬州的养花大佬,问我宋梅养的怎么样,原来他那盆分苗惠让我的宋梅今夏因天气原因意外死亡。对此颇感惋惜,那花引自杭州,去年上花5杆,竟有4杆双花。
同时,大哥表示希望来年春天能从我这引回宋梅,我也希望促成好事,成人之美。受惠于近几年兰花价格的大幅下降,传统兰花名品得以广泛传播,我这种普通人也能不较锱铢轻易拥有这些经典品种,跟同好分享何乐不为。
宋梅,又名宋锦旋梅,于清乾隆年间由绍兴宋氏选出,自发现至今的200多年里春兰梅瓣者无出其右。
用了一段时间 iOS 的 dark mode 感觉良好,特别是夜间看手机不会很刺眼。周末给网站加了暗黑模式功能,检测用户设备对用户切换到暗黑模式,不需要插件,只要一小段 js 和 css 代码即可。
提醒:这里有更好的方法。
darkif (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches{
document.querySelector("body").classList.add("dark")
};
其中,prefers-color-scheme CSS 媒体特性用于检测用户是否有将系统的主题色设置为亮色或者暗色,详情请见 prefers-color-scheme 。
/* 这里定义暗黑模式下的样式 */
.dark{
--dark-background:#333;
--dark-color:#333;
}
/* root 伪类定义正常模式下的样式 */
:root{
--light-background:1px solid #e5e5e5;
--light-color:1px solid #555;
}
这里需要用到 var() 函数的备用值功能来处理正常模式下的样式,否则在正常模式下获取不到样式。
.wrapper{
background:var(--dark-background,var(--light-background));
color:var(--dark-color,#666);
color:#666; /* 此处属性的目的是兼容不支持 css 自定义属性的浏览器 */
}
自定义属性(有时候也被称作 CSS 变量或者级联变量)是由 CSS 作者定义的,它包含的值可以在整个文档中重复使用。
css 自定义属性使用起来非常简单和方便,如下:
由自定义属性标记设定值,如: --dark-color: #000;
由 var() 函数来获取值,如: color: var(--dark-color); 。
以上效果等同于 color:#000;
var() 函数可以定义多个备用值 (fallback value),当给定值未定义时将会用备用值替换,语法为:
var( <custom-property-name> [, <declaration-value> ]? )
例如:
.dark {--dark-color: #333}
.light {-—light-color: #eee}
body {
color: var(--dark-color, —light-color)
}
当 --dark-color 未定义或是无效值时,取 —light-color 。
为了实现暗黑模式的切换,我们可以这样处理:
.dark {—-background-color: #333}
.light {—-background-color: #eee}
body {
background: var(--background-color)
}
如此,就可以在系统切换到深色模式时给 body 加上 dark 类:<body class=“dark”>;当切回浅色模式时用 light 替换掉 dark:<body class=“dark”>
灵活使用 css 自定义属性会来带意想不到的效果。
更多请见:使用 CSS 自定义属性(变量)
本文用到的 CSS 自定义属性和 prefers-color-scheme 可能需要考虑浏览器的兼容性问题,关于浏览器兼容性详情请见各自的文档说明:
单独制作了一个日记本来记录关于孩子的一些事情,为方便浏览需要将 post 发布日期改成类似 QQ 亲子相册那样,根据孩子出生日期和照片拍摄日期计算出来年龄,形如:生出、7天、1个月、 3岁5个月、12岁生日。如:5岁3个月
这个功能实现起来需要指定出生日期、获取Post的发布日期,剩下的就是日期判断,代码大概如下,放置于主题的 function.php 文件中:
// get_brave_year_of_age
function get_brave_year_of_age($birth_date) {
$post_date = date_create(get_the_time('Y-m-d'));
$interval = date_diff($birth_date, $post_date);
$prefix = '';
if ($interval->format('%R') === '-') {
$prefix = '出生前';
}
$result = '';
if ($interval->format('%y') === '0') {
if ($interval->format('%m') === '0') {
if ($interval->format('%d') === '0') {
$result = '出生';
} else if ($interval->format('%d') > 0) {
$result = $interval->format('%d天');
}
} else if ($interval->format('%m') > 0) {
$result = $interval->format('%m个月');
}
} else if ($interval->format('%y') > 0) {
if ($interval->format('%m') === '0') {
if ($interval->format('%d') === '0') {
$result = $interval->format('%y岁生日');
} else if ($interval->format('%d') > 0) {
$result = $interval->format('%y岁');
}
} else if ($interval->format('%m') > 0) {
$result = $interval->format('%y岁%m个月');
}
}
echo $prefix . $result;
}
在需要显示的地方加上下面这段输出即可:
<?php get_brave_year_of_age(); ?>