一个Tampermonkey脚本的诞生

一. 前言

以下是Kyouichirou/BiliBili_Optimizer: enjoy and control bilibili (github.com), 这个脚本的写作的一些想法和总结.

吸取了这个项目Kyouichirou/Zhihu_Optimizer: 知乎优化器 (github.com)的教训, 由于在写这个脚本的时候并没有确定需要实现什么功能, 前期的代码规划并不明确, 随着大量功能不断地被添加上去, 导致代码变得极度臃肿和难以阅读(由于当时对元编程的理解不够深刻), 难以维护.

由于在tampermonkey上, 无法将直接将代码相对整合成相对独立的模块, 为了避免后期代码的增长导致难以维护的问题, 预先对代码进行严格的管控,

img

遵循以上的基本逻辑.

阅读全文 »

VBA的未来

img

"Visual" 指的是开发图形用户界面 (GUI) 的方法- - 不需编写大量代码去描述界面元素的外观和位置, 而只要把预先建立的对象add到屏幕上的一点即可. "Basic"指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言, 是一种在计算技术发展历史上应用得最为广泛的语言.

Visual Basic源自于BASIC编程语言. VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统, 可以轻易的使用DAO, RDO, ADO连接数据库, 或者轻松的创建Active X控件, 用于高效生成类型安全和面向对象的应用程序 . 程序员可以轻松的使用VB提供的组件快速建立一个应用程序.

借用现在流行术语, VBA的这些特性是否可以叫: 低代码?

阅读全文 »

WPS JavaScript宏简单体验

一. 前言

使用的是wps专业版本:

百度盘链接: https://pan.baidu.com/s/1gfZjIe1WUmWin1tQ52wMrQ ; 提取码: avqg

激活码: (仅作测试使用, 请勿用于商业用途)

694BF-YUDBG-EAR69-BPRGB-ATQXH

1.1 关于JavaScript宏

相关详细内容见: WPS 开放平台.

简单来说就是wps在参照vba的基础之上, 使用JavaScript实现的wps独有的宏语言(注意这一点).

WPS宏编辑器集成了一个V8 引擎的 JavaScript 运行时, 支持大部分ES6语法, 因此宏编辑器支持JavaScript 标准内置对象

  • 集成V8引擎
  • 支持ES6 (不支持的内容, 如setTimeout(), fetch等(因为是异步的操作, 都会受到限制)).
阅读全文 »

Tampermonkey进阶指南

一. 前言

img

img

Tampermonkey is one of the most popular browser extension with over 10 million users. It's available for Chrome, Microsoft Edge, Safari, Opera Next, and Firefox.

It allows its users to customize and enhance the functionality of your favorite web pages. Userscripts are small JavaScript programs that can be used to add new features or modify existing ones on web pages. With Tampermonkey, you can easily create, manage, and run these userscripts on any website you visit.

本文以Documentation | Tampermonkey内容展开, 将对其中内容进行翻译和注释, 以及实际的使用例子.

阅读全文 »

VBA高阶系列4: 类

一. 前言

类(class), 这个话题在各种语言中的入门知识中, 是很多懂哥喜欢装神弄鬼的话题, 假如检索类相关的信息, 很容找到以下相关的内容:

  • 多态
  • 继承
  • 封装
  • 抽象
  • 对象
  • 实例
  • 方法
  • 重载
  • 对象: 对象是类的一个实例, 有状态和行为. 例如, 一条狗是一个对象, 它的状态有: 颜色, 名字, 品种; 行为有: 摇尾巴, 叫, 吃等.
  • : 类是一个模板, 它描述一类对象的行为和状态.
阅读全文 »

VBA高阶系列1: 数组漫谈

一. 前言

数组(列表), 字典(集合), 类, 这三者不会因为语言的差异而其重要性会发生变化.

数组, 字典, 操作数据的基础容器.

类, 清晰代码结构的基础.

需要注意的是, 在vba中只有数组的概念, 没有列表的概念(当然也可以自定义封装一个类来实现列表的功能).

在看vba的数组前, 先来看看pythonJavaScript中的数组.

>>> from array import array
>>> a = array('i', [1,2,3,4])
>>> print(a[0])
1

# 不允许混合存储数据
>>> a = array('i', ['a',2,3,4])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required (got type str)
>>>
阅读全文 »

Markdown文档嵌入base64图片

一. 前言

独立博客最麻烦就是图片存储, 第三方的免费图床, 国内的基本没法用(乱删图片, 服务高度不稳定, 随时关站...), 国外的有几个相对稳定的, 但是访问是个问题. Gitee封禁了外链, GitHub访问又是高度不稳定的....

由于路过图床 - 免费图片上传, 专业图片外链, 免费公共图床 (imgse.com)收紧了免费上传图片, 只能将图片转为base64嵌入markdown文档, 但是由于截图不希望过度压缩, 希望保存一份截图的高清版本, 这导致图片文件非常大, 直接嵌入markdown文档, 虽然这种方式可以摆脱网络的依赖, 但是会导致文档非常臃肿.

直接嵌入base64图片没办法直接使用这种方式实现.

![image](img_url)
# 在typora上, img_url直接使用base64替换没办法直接显示图片
<img src=""></img>

直接使用img标签, 也无法显示图片.

阅读全文 »

Markdown进阶

一. 前言

John Gruber在2004年创造了Markdown语言 在语法上有很大一部分是跟[亚伦- 斯沃茨](https://baike.baidu.com/item/亚伦- 斯沃茨/4027108?fromModule=lemma_inlink)( Aaron Swartz) 共同合作的. 这个语言的目的是希望大家使用" 易于阅读 易于撰写的纯文字格式 并选择性的转换成有效的XHTML( 或是HTML) " . 其中最重要的设计是可读性 也就是说这个语言应该要能直接在字面上的被阅读 而不用被一些格式化指令标记( 像是RTF与HTML) . 因此 它是现行电子邮件标记格式的惯例 虽然它也借鉴了很多早期的标记语言 如: Setext Texile reStructuredText.

阅读全文 »

VBA高阶系列2: 字符串处理-语言层级bug

一. 前言

最近碰到一个比较有趣的vba编写的错误, 处理该问题时, 突然想起很早之前的一个vba语言层的bug.

相关内容见本人在这个帖子上的描述, @liucqa你的问题暂时解决了_VBA字符串/字符编码/字符集谜题-Excel VBA程序开发-ExcelHome技术论坛 -.

二. 问题

该问题为语言层级的bug所导致.

该问题在百度上能够检索到的相关页面最早见于可能是在2010版本的office上出现.

问题很简单, 当使用instr, split函数处理字符串时, 部分的字符串上会出现异常错误.

阅读全文 »