分类目录归档:折腾

wordpress折腾

1、主题

Astra:https://cn.wordpress.org/themes/astra/

Astra主题搜索会报错(参考:https://www.sidney.wiki/website/1070.html),在主题的functions.php后面添加如下代码:

add_filter( 'astra_theme_defaults', 'fix_search_title' ); 
function fix_search_title($defaults) {
    $defaults['section-search-page-title-custom-title'] = '搜索:';
   return $defaults;
}

2、插件

性能分析:Query Monitor

代码高亮:Code Block Pro

3、其它

3.1 gravatar修改镜像

找到正在使用的主题的functions.php,末尾添加如下代码:

if (!function_exists('replace_to_loli_avatar')) {
    function replace_to_loli_avatar($avatarUrl) {
    return preg_replace(["/[0-9]\.gravatar\.com\/avatar/", "/secure.gravatar\.com\/avatar/"], "gravatar.loli.net/avatar/", $avatarUrl);
    }
}
add_filter('get_avatar', 'replace_to_loli_avatar');

3.2 fonts.googleapis.com

找到正在使用的主题,搜索所有文件,把fonts.googleapis.com替换成fonts.loli.net

使用chatGPT写jquery插件,实现正文自动生成目录

1. 前言

想给我的博客网站中的正文内容,增加一个自动生成目录的功能,当页面中有标题元素(h1\h2\h3)时,自动创建目录,然后固定在网页的左侧,方便导航和阅读。

2. 生成插件

2.1 js代码

我想基于jquery写一个插件,在web网页的正文中,读取h1、h2、h3标签的标题内容,自动生成目录,固定呈现于网页的左侧,点击目录中的节点,可以跳转到对应的标题

chatGPT:

(function($) {
  $.fn.generateTableOfContents = function() {
    var $this = $(this);
    var $tocContainer = $('<div class="toc-container"></div>');
    var $tocList = $('<ul class="toc-list"></ul>');

    $this.find('h1, h2, h3').each(function() {
      var $heading = $(this);
      var tagName = $heading.prop('tagName').toLowerCase();
      var title = $heading.text();
      var $tocItem = $('<li></li>');
      var $tocLink = $('<a></a>');

      $tocLink.text(title);
      $tocLink.attr('href', '#' + $heading.attr('id'));
      $tocLink.on('click', function(event) {
        event.preventDefault();
        $('html, body').animate({ scrollTop: $heading.offset().top }, 'slow');
      });

      $tocItem.addClass('toc-' + tagName);
      $tocItem.append($tocLink);
      $tocList.append($tocItem);
    });

    $tocContainer.append($tocList);
    $this.prepend($tocContainer);
  };
})(jQuery);
$(document).ready(function() {
  $('.content').generateTableOfContents();
});
继续阅读

新华三NX54路由器:局域网无法访问公网IP

问题

家里是电信宽带,有公网IP。之前一直用的是华为路由器,通过端口映射,可以实现在外使用公网IP访问家里设备。同时,在家里局域网也能使用公网IP访问家里设备。双11换了新华三NX54路由器,5G频段信号非常好,做了端口映射后也可以实现在外使用公网IP访问家里设备,但是在局域网内无法正常使用公网IP。

外网PC通过公网IP可以正常访问内网的PC_A,然而内网的PC_B却不能通过公网IP访问PC_A!

原因

NX54不支持Nat回流!参考:https://zhiliao.h3c.com/questions/dispcont/170630

绑定固定IP的操作很糟糕

界面丑就不说了,如果要给内网的某台电脑或设置绑定固定IP,只能绑定已分配的IP,而不能指定IP!这操作很让人困惑!

解决KBxxxxxx引起的电脑黑屏

最新自己的笔记本和台式机由于win11系统自动更新,重启后电脑黑屏,在任务管理器里重启资源管理器(explorer)也不行,所以只能想办法卸载更新。

在黑屏页面打开任务管理器(ctrl+shift+esc),然后打开cmd(文件-运行新任务-输入cmd,并勾选以系统管理权限创建此任务)

在cmd中,运行wmic qfe list命令,查看最近的更新,找到相关的kb。然后用wusa /uninstall /kb:xxxxxxx来卸载最近的更新

最后发现,把KBxxxxxxx卸载了就可以正常进入桌面了。

油猴读取国开形考回顾答案

现在在国家开放大学上学习,面对形考任务的时候,一是要靠对教材的认真学习,二要靠搜索引擎。但是我发现在搜索引擎上绝大部分的参考答案的文档都要付费,感觉有点不开心。于是在自己完成部分考试后,对开考回顾的页面进行脚本采集,在控制台直接打到markdown格式的文本,然后进行分享。

分享的目的不是为了抄答案,而是在以答题的形式的过程中,提供相对正确的参考,帮助学习。

// ==UserScript==
// @name         国开回顾
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://chengdu.ouchn.cn/mod/quiz/review.php?attempt=*&cmid=*
// @icon         https://www.google.com/s2/favicons?domain=ouchn.cn
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var res = "";

    $(".que").each(function(){
        var que = $(this);
        var bt = que.find(".info .no").text();
        res += "\n";
        res += "\n";
        if(bt.indexOf("信息")<0){
            res += bt+" ";
        } else {
         res += "## ";
        }
        que.find(".formulation").each(function(){
            var _this = $(this);
            var qtext = _this.find(".qtext");
            var prompt = _this.find(".prompt");
            var answer = _this.find(".answer");

            if(qtext.length>0) {
                res += qtext.text();
                res += "\n";
            }
            if(prompt.length>0) {
               // res += prompt.text();
               // res += "\n";
            }

            if(answer.length>0){
                answer.children().each(function(){
                    var cc = $(this);
                    if(cc.hasClass("correct")){
                        res += "<span style='color:red'>"+cc.text()+"</span>";
                        res += "\n";
                    } else {
                        res += cc.text();
                        res += "\n";
                    }
                });
            }

        });
    });


    console.log(res);
})();

postman发送时间戳和MD5加密

主要是在Pre-request Script中预处理一下

var ak = "2f567a1b";
var sk = "4a134596";
var time = Math.round(new Date().getTime());
var pageindex = 1;
var pagesize = 10;

//待加密明文
var str = ak+";"+sk+";"+time+";?pageindex="+pageindex+"&pagesize="+pagesize+";"
//MD5加密
var token = CryptoJS.MD5(str).toString();

// 设置全局变量
pm.environment.set("ak",ak);
pm.environment.set("sk", sk);
pm.environment.set("time", time);
pm.environment.set("pageindex", pageindex);
pm.environment.set("pagesize", pagesize);
pm.environment.set("token", token);