我有这个需求之后便搜了一下,看到已经有插件实现了 Swipebox 图片灯箱插件 其开源在 https://github.com/wuxiaocong/Swipebox/

但是看了一下评论和 issues,担心会有一些奇奇怪怪的 bug,或者和其他已有插件冲突,便放弃了这个插件。

然后有了新的思路,FancyBox。我们可以直接使用 FancyBox 来完成我们的需求,FancyBox 是一款优秀的弹出框 Jquery 插件

  1. 允许我们用鼠标和键盘上的四个方向键切换图片
  2. 可以根据当前窗口大小自动调整弹出框的大小,当我们改变浏览器窗口大小时,将会看到弹出框自动缩放
  3. 支持缩略图列表、放大、全屏等功能
  4. 弹出框支持显示多种类型的内容:图片、html、视频…
  5. 支持触控、缩放手势操作图片

具体步骤:

在主题的 header.php<head></head> 标签之间添加如下 css 引用

<!--在 header.php 里添加这个-->
<link href="https://cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.css" rel="stylesheet">

footer.php 合适的位置添加如下脚本引用

<!--加载jquery依赖,一般主题都会引用 jquery.min.js 可以看情况注释这行。如果你的主题已引用此 js,请注释这行。-->
<script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
<!--fancybox的js,还是bootcdn,因为 jsdelivr 已变慢了,之前还被墙了-->
<script src="//cdn.bootcss.com/fancybox/3.5.7/jquery.fancybox.min.js"></script>

找到主题的 page.phppost.php 等文件,这些文件都有一个共同特征,一般有文章正文,在正文的 div 中具有 <?php $this->content(); ?> 的 php 代码。这行代码是将正文内容塞入正文的 div 容器中渲染网页。要想实现图片灯箱功能,需要将正文中的 <img></img> 替换成一个被 a 标签包裹的 img 标签。我们使用正则表达式替换。

找到你主题下的各个文件里的 <?php $this->content(); ?> 然后替换为如下代码

<?php
    $pattern = '/\<img.*?src\=\"(.*?)\".*?alt\=\"(.*?)\".*[^>]*>/i';
    $replacement = '<a href="$1" data-fancybox="gallery" /><img src="$1" alt="$2" title="$2"></a>';
    $content = preg_replace($pattern, $replacement, $this->content);

    //需要支持截断的添加下面两行
    $array=explode('<!--more-->', $content);
    $content=$array[0];

    echo $content;
?>

如果不生效,有可能是 regex 的 pattern 不对,浏览器打开 F12 审查元素,检查你的文章原文中的图片 img 标签,检查具有哪些属性?如果只有 srcalt,那么使用上面的 php 代码是可以生效的,如果还有 title 属性,就要改一下正则表达式,请使用如下代码

<?php
    $pattern = '/\<img.*?src\=\"(.*?)\".*?alt\=\"(.*?)\".*?title\=\"(.*?)\"[^>]*>/i';
    $replacement = '<a href="$1" data-fancybox="gallery" /><img src="$1" alt="$2" title="$3"></a>';
    $content = preg_replace($pattern, $replacement, $this->content);

    //需要支持截断的添加下面两行
    $array=explode('<!--more-->', $content);
    $content=$array[0];

    echo $content;
?>

保存即可生效,打开一篇具有图片的文章就能预览 FancyBox 的图片灯箱效果。

试用一下?

typecho图片灯箱效果预览.jpg

引用

https://www.idzd.top/archives/762/

阅读全文 »

有些 Typecho 主题没有适配网页标签🏷️小图标,那么我们手动添加上吧。


看主题的 header.php 文件, 把 ico 文件下载到 usr/themes/{theme_name}/favicon.ico 比如本博客的 ico 文件我托管到了 https://image.940304.xyz/i/2022/07/25/62ddf90272176.ico

在 header.php 的 <head></head> 标签之间添加上

<link rel="shortcut icon" href="<?php $this->options->themeUrl('favicon.ico'); ?>" type="image/x-icon" />

如果有下面这一行就删掉

<link data-n-head="true" rel="icon" type="image/x-icon" href="/favicon.ico">

保存然后刷新页面即可,无需清浏览器缓存。

科技偏执狂中文版.jpg

我爱用 Debian 做服务器,Android 上爱用 lineageOS(以前玩机的时候还是叫CM CyanogenMod),Android 应用市场也很倾向于 F-Droid。平时使用 Element 加密聊天,也用 Mattermost 聊天。

上面这个图真是绝了,我看过很多次了,今天又注意到。很巧的是,前些日子我刚部署了自己的 matrix 服务器,后端使用了 rust 写的 conduit(目前实现了 matrix 大部分功能)。也搭建了自己的 STUN/TURN 服务器 coturn 现在可以在 Element 上实现 VoIP 语音通话,也能实现基于 WebRTC 的视频通话 / 视频会议。

看到通常会拒绝网页 cookies真是有点崩不住,哈哈哈,我还真的是……

我的定位大概是【科技偏执狂】,但这个 level,图中我依然有不少不认识的事物。

我找到了一份比较 professional 的说明。还有英文原文。

科技偏执狂-英文原版.jpg

从左至右,从上至下,依次是:

iOS/macOS(苹果)、Windows 10(微软视窗) Chrome(谷歌)、Opera GX(欧朋游戏版)、Edge(Windows 10和11的默认浏览器) Facebook(脸书)、Whatsapp(免费短信应用)、Instgram(朋友圈应用)、Twitter(推特)、Tiktok(抖音)

Zorin OS(适合初学者的Linux)、Manjaro(新手版Arch Linux)、Ubuntu(流行的Linux发行版)、Fedora(Linux开发者Linus使用的Linux发行版) Brave(隐私友好的浏览器)、Firefox(火狐) Telegram(电报)、Signal(注重隐私的即时消息应用)

Debian(有广泛影响力的Linux发行版)、Arch Linux(流行的滚动发行版)、Void Linux(混合Unix衍生系统的滚动发行版)、LineageOS(基于安卓开源代码的移动操作系统) qutebrowser(具有编辑器Vim风格的浏览器)、LibreWolf(没有火狐账户的火狐浏览器复刻) Jami(加密即时消息和影音通话)、Briar(可通过多种信号的加密即时消息应用)、F-droid(开源安卓app商店)、Element(基于Matrix协议的通信应用)

Tails(通过Tor代理的U盘Linux系统)、Gentoo(提供大量源码的Linux发行版) Tor(通过多次网络节点跳转的匿名网络) #irc chat(因特网中继聊天,实际上这个图标是一个非常小众的irc聊天软件Mirc Sohbet)、XMPP(可扩展通信和表示协议)、Self-Hosted(服务自托管聊天节目)

Trisquel(基于Ubuntu的自由发行版)、Parabola(自由版的Arch Linux)、GNU Guix(拥有特有包和软件库的自由发行版) GNU IceCat(自由版火狐)、Lynx(纯文本网页浏览器)、W3M(开源的文字网页浏览器) GNU Emacs(为程序员设计的文本编辑器)

智慧城市:路口装摄像头 人工智能:自动回复 大数据分析:收集用户隐私 社区团购:网上买菜,明天小卖部自提 下半场:快不行了 共享经济:分时租赁 连续创业:多次创业失败 联合创始人:老员工 颠覆式创新:捣乱 赋能:拉你一把 发力:烧钱 闭环:自产自销 孵化器:办公室是租的

币圈“黑话”合集: 牛来了!(就涨了5%) 熊来了!(跌了可能不到20%) 我准备拿长线!(48-72小时) 这是一个价值币!(我被套牢了) 我被套住了!(已经腰斩了) 这是热门板块!(风口已过,我给人抬轿了) 赚了不少!(可能有200u) 重仓了!(仅有的200u都扔里了) 撤了,退圈(刚涨2%就又回来了)

新零售:网上卖货 物联网:有蓝牙的产品 全链路营销:到处打广告 底层逻辑:原因 顶层思考:动脑子 布局:画大饼 商业模式:怎么赚钱 矩阵:啥都要有