普通视图

发现新文章,点击刷新页面。
昨天以前老朱独立开发

上线了第一个正儿八经的多语言工具站

2025年3月25日 19:35

前言

其实在去年7月份,我就筹划搞了一个 一起学笛子 的双语网站,在它还是一个简单雏形的时候,就写了一篇名叫 又一个不务正业的作品 的文章简单介绍过一次。

前段时间终于把这个网站的基本功能都开发得差不多了,也实现了中英双语,想着随后不断地填充内容就可以了。当时的想法很简单,一方面是个人兴趣使然,另一方面是当时想着,出海最合适的就是类似工具、游戏这种语言相关性小的产品,而像技术博客这样的可能就不太行了。

那为什么第一个双语网站还没彻底搞完,就又来第二个多语言站呢?

[...]

终于收到 Google Adsense 漂洋过海邮寄过来的 PIN 码了

2025年3月13日 22:22

前言

很久很久以前,久到我都已经快忘记了,只记得那是一个夏天,我刚搭建完个人网站并尝试接入 Google AdSense ,当时还写过一篇关于 个人网站接入 Google AdSense 心得 的文章 ,今天终于收到 Google 邮寄过来的 PIN 码了。

就一张对折密封起来的纸,皱皱巴巴的很简陋,感觉还没普通信封靠谱,难怪很多过来人会说容易寄丢呢?

好在我是顺利收到了,这篇文章就简单记录一下 PIN 码的认证过程吧!

[...]

为博客网站增加一个简单的算术验证码,防止机器人垃圾评论轰炸

2025年3月12日 20:09

前言

你们的博客网站有隔三岔五就收到这么多的垃圾评论吗?

这里所说的垃圾评论专指机器人通过自动化脚本或直接调用接口发起的评论,由于评论不经过前端页面,因此并不会给网站带来任何流量。说到垃圾评论,真的是非常恶心,如果仅仅是偶尔来一两条我都所谓,大不了隔段时间集中删一次,但实在架不住它短时间内狂轰乱炸,尤其是像我这样接入了邮件通知的,一旦开始,手机就响个不停,烦得要死。

[...]

记一次Nginx Proxy Manager部署网站,访问静态资源报502的问题

2025年3月11日 15:05

前段时间想着把 一起学笛子 这个网站中的几个工具提取出来,单独开发并部署一个工具网站,这样一方面可以实现真正意义上的多语言(毕竟是纯工具),另一方面也可以扩大受众范围(工具和具体的乐曲无关)。

但在测试通过 Nginx Proxy Manager(我一直在用这个,部署管理网站很丝滑) 部署的时候,发现了一个问题:htmlphptxt甚至json文件都可以正常访问,但访问jscsspngsvg等这种静态资源文件时,却始终报 502 的错误,如下图所示:

[...]

记一次修改Typecho永久链接地址重写规则,导致网站降权的坑

2025年3月11日 13:38

众所周知,为了让网站有更好的 SEO 表现,通常情况下我们都会对网站进行伪静态处理,也就是将类似于https://example.com/index.php?p1=a&p2=b这样的网址重写成https://example.com/a/b.html的形式,让访问者使用起来感觉就像访问静态网站一样优雅。

为此,我的所有网站也都启用了地址重写功能。不仅如此,为了让文章显示出分类管理的效果,我对 一起学笛子 这个网站的配置还做了一些自以为是的调整,如下图所示:

[...]

如何基于 Typecho 实现中英双语网站(下)

2025年2月20日 16:33

前言

通过上一篇文章 如何基于 Typecho 实现中英双语网站(上),我们已经把 中英双语网站 的基本框架搭建好了。实际上很多支持多语言的网站,也就这样了,例如著名的 YouTube 就是如此,至于具体的内容显示什么语言,则完全是由内容的创作者决定的。

上一篇文章也提到了,Typecho 其实并不是很适合做多语言网站,因为,一方面需要修改源码,另一方面,开发一个不同国家的人都来发布创作内容的网站,想想也不是个人应该考虑的。 Typecho 还是更适合作者自己创作,然后向用户展示的场景,这时如果要实现多语言,就不得不将文章的内容也进行翻译了。

[...]

如何基于 Typecho 实现中英双语网站(上)

2025年2月9日 14:34

前言

我在前面谈 Google Adsense 的文章(如 一组数据让大家直观感受一下出海的重要性)中多次提到过,要想让网站中的 Google Adsense 有更高的收益,就一定要考虑出海,而出海就离不开多语言这个话题。理论上网站应该支持尽可能多的语言,但每增加一种语言,网站的复杂度和维护难度都会成倍增加,因此,对我们而言,性价比最高、最常用的无疑还是 中英双语网站

比较遗憾的是,我查过一些资料,也读过 Typecho 的源码,并没有找到一种简单直接的多语言方案(直接部署并维护多个站点除外)。虽然 Typecho 本身就提供了多语言翻译功能,但需要管理员在后台切换,并且切换后会全局生效。也就是说, Typecho 并不能满足 内地显示中文,海外显示英文 这种看似简单的需求,其本质还是仅支持单一语言。换句话说,要想实现常规意义上的多语言网站,就必须修改 Typecho 源码,至少我暂时还没有找到仅扩展 插件主题 就能同时支持多语言的方案。

[...]

如何让网站在微信端打开时不显示谷歌广告?

2025年1月18日 12:26

问题的起因是我写文章通常会在公众号和网站同步发布,并且顺便把公众号的 阅读原文 填上自己的网址原文链接,但比较坑的是,今天已经是第二次被微信禁用网址了,虽然这次被禁的网站和上次不同,但总归还是很烦人的。而且用户点击链接看到下图的提示,不免让人觉得很不靠谱。

上一次被禁的是 老朱工具箱,我确定网站里面没有任何违规的内容,后来一想应该是谷歌广告的问题,随后就把广告去掉了,然后申请解禁,果然就通过了,解禁后又重新启用广告,这么长时间好像也相安无事,没有再出什么问题。

而按理说,我的博客网站从微信过来的流量要远大于工具箱网站,但至今也没有被禁过,也不知道微信内部的检测规则是什么样的。今天被禁的是 一起学笛子 这个网站,本来也想着用老办法解决的,但想来后续不知道啥时候又会被禁,这样反反复复就没完没了了。

[...]

为个人网站接入支付功能 - 支付宝开发篇

2025年1月9日 12:15

前言

通过前面三篇文章,我们已经把个人网站接入支付宝支付时需要做的准备工作全部准备就绪了,如果还不清楚,可以先行了解一下:

  1. 独立开发如何接入支付宝和微信支付
  2. 独立开发者应该如何注册个体工商户
  3. 为个人网站接入支付功能 - 支付宝准备篇

接下来就该正式写代码实现了,但考虑再三之后,我还是决定不过多介绍开发细节,因为这涉及到 沙箱环境SDK 的使用,感觉解释起来会比较墨迹,而且想来有开发需求的人看了上面的文章之后,再自行参考官方API开发文档,思路可能会更清晰,毕竟官方文档支持在线调试,效果也更直观。
看过我往期文章的应该知道,我的网站都是基于 PHPTypecho 二次开发的,因此,我这里就以 PHP 为例,简单梳理一下 电脑网站支付 的接入要点吧。

[...]

为个人网站接入支付功能 - 支付宝准备篇

2025年1月5日 15:53

前言

通过前面两篇文章:独立开发如何接入支付宝和微信支付独立开发者应该如何注册个体工商户,我们知道,个人开发者也是可以比较简单、且体面的为自己的产品接入支付功能的。

众所周知,对接支付相对而言还是比较麻烦且敏感的,但无论是开发网站还是APP,只要涉及到支付,就很难绕开这个话题。而且不同的业务场景、产品形态,需要对接的支付方式也不太一样。不仅如此,在国内,支付至少要支持支付宝和微信两种方式,其复杂性就再一次翻倍了。

因此,接下来我将以我自己的网站为例,分两篇文章介绍一下我是如何以尽可能简单的方式接入支付宝支付的,微信支付后面再说。

当然,思路仅作参考,正式对接起来,还是应该多多查阅官方文档,官方文档才是最靠谱的。

[...]

独立开发者应该如何注册个体工商户

2025年1月1日 16:11

前言

在上一篇文章 独立开发如何接入支付宝和微信支付 中讲到了为什么独立开发者应该注册一个个体工商户。总结来说,最主要的目的就是 为了以最简单直接、且正规的手段,解决个人开发线上支付的问题

考虑到注册个体户流程比较简单,而且不同地区注册方式又都略有差异,本来不打算写这篇文章的,但为了确保内容的完整性,并且也考虑到很多个人开发者可能跟我之前一样,并没有了解过个体工商户的注册流程,所以,最后还是决定以自己为例,简单介绍一下吧!

[...]

独立开发如何接入支付宝和微信支付

2024年12月31日 21:15

前言

无论是开发网站、APP、小程序、游戏,还是一些其它类型的应用,支付都是一个十分重要的环节,但众所周知,对于个人开发者而言,这个环节却并不怎么友好,甚至可以说是一只拦路虎。这次我也花了不少时间查阅资料,并且也阅读了大量支付宝和微信的官方文档,最终确定了一条相对而言比较靠谱的方案 --- 个体工商户

[...]

PHP如何基于Docker安装OpenSSL扩展

2024年12月30日 10:54

OpenSSL 是一个强大的、开源的加密库,在网络安全和数据加密领域扮演着至关重要的角色。

在很多安全加密、数字签名等场合都可能都会用到它,例如,我在 一起学笛子 中对接支付宝和微信支付时,就必须依赖 OpenSSL 了,主要用于处理基于 RSARSA2等的签名加密问题。

不过,这里不介绍 LinuxWindows 如何安装使用 OpenSSL,因为网上文章和教程都很多。这里简单介绍一下如何基于 优雅的在一台服务器上部署多个 Typecho 网站 这篇文章部署带有 OpenSSL 扩展的 PHP 环境。

[...]

Typecho中添加外链跳转的过渡页

2024年12月18日 14:32

前面有朋友问,我博客评论中的外链跳转过渡页是如何实现的?其实,在 本博客的源码 中就可以很容易找到具体的实现代码。不过,为了方便理解,我还是简单梳理一下实现思路。

实际效果

先看看效果图:

上图是点击评论者头像后跳转的页面,然后点击“继续访问”就可以打开目标网站了,当然,这需要评论者在评论时填写网址才行。

该页面比较简单,是模仿“知乎”实现的,网址路径中也用到了一个 target 参数,这个比较关键,后面会多次用到,接下来看一下详细的实现过程。

[...]

Web 音频空间化基础(译)

2024年11月27日 14:23

就仿佛它丰富多样的声音处理(和其他)功能还不够一样,Web Audio API 还包含了一些功能,能让你模拟出收听者在声源周围移动时声音上的差异,例如在玩 3D 游戏时,当你围绕着一个声源移动时产生的声像定位效果。它的官方术语叫 “空间化”,本文将介绍如何实现这样一个系统的基础知识。

[...]

使用 Web Audio API 进行可视化(译)

2024年11月26日 17:40

Web Audio API 最有意思的特性之一,就是能够从音频源中提取频率、波形以及其他数据,随后这些数据可被用于创建可视化内容。本文将阐释具体的操作方法,并提供几个基本的用例。

注:
你可以在 Voice-change-O-matic 示例中找到所有代码片段的实际运行示例。

基本概念

要从音频源中提取数据,你需要一个分析器节点(AnalyserNode),它可通过 BaseAudioContext.createAnalyser 方法来创建,例如:

[...]

使用IIR滤波器(译)

2024年11月26日 15:19

Web Audio APIIIRFilterNode 接口是实现通用无限脉冲响应(IIR)滤波器的音频节点处理器,这种类型的滤波器可用于实现音调控制设备和图形均衡器,并且可以指定滤波器的响应参数,以便根据需要进行调节。本文将探讨如何实现一个滤波器,并在一个简单示例中加以运用。

示例

本指南中的简单示例提供了一个播放 / 暂停按钮,用于启动和暂停音频播放,还提供了一个切换开关,用于打开和关闭无限脉冲响应(IIR)滤波器,以此改变声音的音调。此外,示例中还提供了一个画布,在上面会绘制音频的频率响应,这样就能直观的看到无限脉冲响应滤波器产生的效果。

[...]

示例和教程:简单的合成器键盘(译)

2024年11月19日 16:45

本文将展示一个可用鼠标弹奏的虚拟键盘的代码以及可运行的演示示例。该键盘允许你在标准波形以及一种自定义波形之间进行切换,而且你可以使用键盘下方的音量滑块来控制主增益。这个示例使用了以下 Web API 接口:AudioContextOscillatorNodePeriodicWave 以及 GainNode

由于 OscillatorNode 继承自 AudioScheduledSourceNode,所以从某种程度上来说,这也是关于音频调度源节点的一个示例。

[...]

使用 ConstantSourceNode 控制多个参数(译)

2024年11月19日 15:15

本文将演示如何通过 ConstantSourceNode(恒定源节点)将多个参数关联在一起,以便它们共享同一个值,并且这个值可以通过设置ConstantSourceNode.offset 的值来进行更改。

有时候,你可能希望将多个音频参数关联起来,以便共享同一个值,同时还能以某种方式进行更改。例如,你可能有一组振荡器,其中两个需要共享相同的可配置的音量,也可能对某些特定输入应用了一个滤波器,但不是所有输入都应用了该滤波器。你可以使用循环,逐个更改每个受影响的音频参数(AudioParam)的值。不过,这样做有两个缺点:第一,正如你即将看到的,这是额外的代码,你本不必编写;其次,该循环会占用你所在线程(很可能是主线程)中宝贵的 CPU 时间。现在有一种方法可以将所有这些工作转移到音频渲染线程,音频渲染线程针对这类工作进行了优化,而且其运行的优先级级别可能比你的代码更合适。

解决方案很简单,它用到了一种乍一看似乎没那么有用的音频节点类型:ConstantSourceNode

[...]

使用 AudioWorklet 进行后台音频处理(译)

2024年11月18日 17:04

本文将介绍如何创建一个音频工作线程处理器,并在 Web 音频应用程序中使用它。

Web Audio API 首次引入浏览器时,它就包含了使用 JavaScript 代码创建自定义音频处理器的能力,这些处理器会被调用以执行实时音频操作。ScriptProcessorNode 的缺点在于它在主线程上运行,因此会阻塞其他正在进行的操作,直至它执行完毕。这尤其是对于像音频处理这种可能会非常耗费计算资源的任务来说,非常不理想。

[...]

Web Audio API 最佳实践(译)

2024年11月15日 20:10

在编写创意代码时,并没有严格意义上的对错。只要你考虑到了安全性、性能和可访问性,就可以采用适合自己的风格。在本文中,我们将分享一些最佳实践 —— 使用 Web Audio API 的指导原则和知识技巧。

加载音频 / 音频文件

使用 Web Audio API 加载声音主要有四种方式,但具体应该选用哪种,可能会让人有些困惑。

在处理文件时,你可以从 HTMLMediaElement(即 <audio><video> 元素)中获取,也可以加载文件并将其解码到缓冲区。这两种处理方式都是可行的,不过,在处理完整的长音轨时,常用前者;而在处理较短、类似样本的音轨时,则更常用后者。

[...]

高级技术:创建并编排音频(译)

2024年11月14日 22:39

在本教程中,我们将介绍声音的创建和修改,以及定时和调度。我们将介绍样本加载、包络、滤波器、波表和调频。如果你熟悉这些术语,并且正在寻找 Web Audio API 应用程序的介绍,那么你就来对地方了。

注意:
你可以在 GitHubwebaudio-examples 仓库的 step sequencer 子目录中找到下面演示的源代码。你也可以查看 在线示例

[...]

Web Audio API 的基本概念(译)

2024年11月13日 21:31

本文解释了 Web Audio API 功能背后的一些音频理论,以帮助你在设计应用程序的音频路由时做出明智的决策。如果你还不是一名音响工程师,本文将为你提供足够的背景知识,让你理解 Web Audio API 为何会如此运作。

音频图(Audio graphs)

Web Audio API 涉及在音频上下文(AudioContext)中处理音频操作,其设计旨在实现模块化的音频路由。每个音频节点执行一项基本的音频操作,并与一个或多个其他音频节点相连接,从而形成一个音频路由图。它支持具有不同声道布局的多个音频源,即便在单一的上下文中也是如此。这种模块化设计为创建带有动态效果的复杂音频功能提供了灵活性。

[...]

用导航主题快速搭建一个导航网站,能否蹭到大A的这波流量呢?

2024年10月5日 23:39

前言

首先,祝大家国庆节快乐!

但我想,A股有仓位的朋友应该会双倍快乐,而持有港股或中概股的朋友,估计会是三倍快乐吧!

当然,如果不知道我在说什么的,那么我希望未来一段时间最好也不要知道,否则,很可能会沦为韭菜,而能懂的大概已经是老韭菜,被割习惯了,应该早已感觉不到疼痛了吧!

[...]

使用Web Audio API(译)

2024年9月24日 23:34

这篇文章将让我们了解如何开始使用 Web Audio API。本文会先简要介绍一些概念,然后研究一个简单的便携式音响示例,这个示例允许我们加载一个音频轨道,播放和暂停它,并改变它的音量和立体声像。

Web Audio API 并不能取代 <audio> 媒体元素,而是对其进行补充,就像 <canvas><img> 元素并存一样。你的用例将决定你使用什么工具来实现音频。如果你想控制音频轨道的播放,<audio> 媒体元素提供了比 Web Audio API 更好、更快的解决方案,而如果你想进行更复杂的音频处理以及播放,Web Audio API 就提供了更丰富的功能和控制。

[...]

Web Audio API(译)

2024年9月24日 17:38

由于在开发 一起学笛子 这个网站的时候多处用到了 Web Audio API,因此,最近也阅读了不少的相关资料。奈何可能太小众了,相关博文比较少,哪怕是著名的 MDN 也没有健全的中文文档,为数不多的几篇也是貌似机译的,晦涩难懂,因此,不得不借助翻译工具,阅读英文文档,啃得着实有点头疼。

本来想着针对前面的学习和使用心得写几篇笔记的,但考虑到后续还会对 Web Audio API 有更深入的使用,而且,MDN 上面的英文文档写的也比较详细,还有丰富的案例,因此,就想着还不如直接把这个系列翻译过来,一方面,通过翻译,可以倒逼自己硬啃一遍,同时也能加深理解,另一方面,留个笔记,后面再用的时候,就不用再啃一次英文文档了。

基于上述原因,接下来我会基于自己的理解,翻译这个系列的文章,试图让知识点能够稍微通俗易懂一点,不过,个人理解难免会有所偏差,英语水平还不错的朋友,还是建议直接 阅读原文

[...]

typecho注册实现邮箱验证

2024年9月23日 11:45

前言

前面的文章说过,我在开发 一起学笛子 网站的时候,用的是邮箱验证的方式,这篇文章将详细介绍一下具体的实现过程。

实际上,在 一起学笛子 这个网站中,有两处用到了邮箱验证,一个是注册,另一个是重置密码(忘记密码),而且这两个地方的用法是一模一样的,所以,我接下来还是以熟悉的注册场景举例说明。

[...]

typecho前台注册核心代码

2024年9月22日 11:18

前言

前面我在 typecho如何实现前台登录/注册 一文中详细介绍了一下 前台登录/注册 的实现原理与细节,当时是以登录为例说明的,因为登录比较简单,代码量也比较少,但考虑再三之后,还是决定单独写一篇关于注册的文章,毕竟注册还是要复杂一些,而且还涉及到邮箱验证。不过,这篇文章就不再解释原理了,而是直接贴出核心代码,然后对部分要点做一些简单的解释,方便后续有需要的人可以直接复用。

[...]

一组数据让大家直观感受一下出海的重要性

2024年9月20日 11:28

前言

前面我已经写过好几篇关于 Google Adsense 的文章了,虽然收益甚微,但记录的都是亲身探索的过程,可能贵在真实吧,因此,也吸引了很多朋友的关注,其中也包括一些做的比较出色的先行者。他们无一例外,都极为重视项目出海,而我也多次提到过出海的问题,并且也一直在构思出海障碍小的项目,一起学笛子 就是这样一个项目。

[...]

typecho如何实现前台登录/注册

2024年9月20日 09:08

前言

Typecho是一款很好的博客系统,通过 主题插件 开发几乎可以随心所欲的定制自己的博客网站。但也仅限于博主编辑文章,读者阅读+评论这样的类博客网站,如果希望做更复杂的扩展,就未必能很好的实现了。

本文即将介绍的前台登录/注册功能就是一个这样的功能,虽然通过 主题插件 也能实现,但二者必然紧耦合,撇脚不说,插件的通用性也是个问题。

[...]

第一个正式作品的阶段性进展与后续构想

2024年9月19日 13:22

前言

前段时间一直在构思并完善 一起学笛子 这个网站,现在总算完成了一个阶段性的最小MVP,于是,就想着写篇文章简单总结一下,顺便分享一下自己后续的推进思路,让大家帮忙参谋参谋,看看可行性如何?

如果可行,大家可以参考参考思路,如果不可行,也能引以为戒。毕竟,最近“延迟法定退休年龄”相关的话题热度居高不下,怕是势在必行的了。与其抱怨,不如趁早探索一条脱离苦海的路,直接干到100岁又何妨,比如巴菲特巴老爷子就没想过退休的事!

[...]

主题及插件更新公告

2024年8月27日 17:16

前言

前面一段时间,陆陆续续有一些朋友给我提了一些主题中存在的 BUG 和优化建议,在此表示一下感谢。抛开一些风格改动较大的,或者偏个性化的需求,其它的我都记录下来了,但一直没动手改,这次集中处理了一下。由于攒的时间有点长,改的东西有点多,而且涉及到插件的依赖问题,所以干脆公告一下,顺便也能水一篇文章。

[...]

后续计划与Google Adsense数据展示

2024年8月25日 16:41

前言

其实这段时间以来,我的想法好像一直在变,不过好在并没有一直停留在想的阶段,虽然进度缓慢,但还算是在朝着好的方向在推进,对于创业失败过两次的我来说,我太知道”稳“字的重要性了,也太知道”多思少动“(这可能有点违背常理)的重要性了。

1. 最初的想法

我之前很多年都是从事的低代码开发相关的工作,这在当时还是个风口,相关的公司着实割了一波韭菜。由于工作的原因,所以我对模板引擎、工作流、编译原理等比较了解,就想着自己做一个低代码的工具产品,当时想的是开发一个在线设计简历的网站,让用户可以轻松地通过拖拽加编辑的方式设计一个自己的简历,用户可以直接开放在线访问,就相当于一个简单的个人主页,也可以选择付费打印PDF,为此,我还专门注册了一个域名。

[...]

关于Google AdSense广告屏蔽的问题

2024年8月16日 15:20

前言

首先需要说明一下的是,这是一篇询问贴,但在询问之前,我要先说明一下我的情况,然后分享一下我采取过的措施,也算是经验分享,只不过是不完整的踩坑经验。

其实 Google AdSense 的屏蔽问题,我在 个人网站接入Google AdSense的一点心得 一文中有过简单的介绍,但由于那时我也才刚上线,搜集整理了一些资料,然后根据搜集结果操作的。

[...]

《逆行人生》中的算法囚笼

2024年8月13日 16:30

前言

徐峥主演的《逆行人生》大家都看了吗?

最近刷到太多了,可能是我的标签很符合吧---大龄码农失业,所以大数据疯狂的推送,以为我会感兴趣,但其实我一点兴趣都没有,因为在我看来每一种生活方式都是当下个人价值观评估后的最优选择,事后无论发现是对是错都没什么可说的。但我最终还是在昨天去看了,事实证明,推荐算法太厉害了,大数据赢了!

[...]

Typecho主题开发 | 实现RSS订阅,顺便推荐一个RSS阅读器

2024年8月11日 23:54

前言

前段时间,在我博客的评论区中,有几位大佬讨论到了博客要不要加 RSS 的问题,因为我自己平时是不使用 RSS 订阅的,所以就先入为主的认为 RSS 过时了,应该没什么人用了,但看他们的讨论发现似乎用的人还挺多的。

今天突然想起来这个事,因此就也试了一下,发现确实还挺方便、挺好用的,于是乎,今天就赶紧在主题中把这个功能给加上了,顺便也发了一个版本。

本来这是一个很小的功能,加就加了,但由于这里面有个小坑,所以感觉还是需要说明一下,不然估计很多人都不一定会用。

[...]

Typecho主题开发 | 一些常用的扩展点

2024年8月10日 14:10

前言

前面我们已经通过两篇文章,简单的介绍了如何为开发一个自己的 Typecho 主题。我本来还想着再简单剖析一下源码,介绍一下 Typecho 有哪些扩展形式,以及预留了哪些扩展点的。但考虑到可能正如一些朋友所说的,会的人不需要看,不会的人又未必能看懂。我自己一想也对,真到了需要开发的时候,大部分情况还是会面向搜索引擎开发,遇到了问题再解决问题,反而会更容易一些。

考虑到前面的几篇文章已经基本把 Typecho 主题的开发思路说的差不多了,剩下的都是一些细节。因此,这篇文章我想干脆把我开发过程中遇到的最常见问题,进行一下梳理,方便大家需要时查询。毕竟,实话实说,Typecho 的官方文档做的确实太差了,很多东西需要翻源码才能了解。

[...]

Typecho主题开发 | CV大法实现一个仿百度主题

2024年8月8日 17:27

前言

前面我们已经通过一个简单的 Hello World 主题简单了解了一下 Typecho 的主题开发过程。这次我们也不讲太多理论,而是直接还原一个相对真实的开发场景。

1. 寻找目标网站

既然是开发主题,那一定是看到了心仪的网站或者网站局部功能,希望自己也能实现一个类似的。最好不要完全凭想象实现,这样难度比较大不说,还不一定能达到预期的效果,除非你是懂设计的。技术好一点的可以直接通过浏览器开发者工具分析目标网站的源码,仿照实现。而更粗暴的方式是直接复制目标网站的源码,然后本地修改。

当然,你还可以到一些前端的模板网站下载源码,这样会比CV目标网站更简单一些,只不过这种操作往往要么收费,要么需要一些非常规手段,这里就不介绍了。

我这里就以仿百度为例,因为这个网站界面相对比较简单。

[...]

Typecho主题开发 | 永远的Hello World

2024年8月7日 15:34

前言

Typecho 主题开发首先需要搭建PHP开发环境,可以参考 通过VS Code搭建轻量级PHP开发环境 一文,但实际上,如果你只是微调一下别人的主题,不打算自己开发,那么直接跳过这个也是可以的,因为PHP程序完全可以通过记事本编写,然后直接放到服务器上运行就可以了,不需打包、编译等一系列预处理的工作,但为了普适性,我还是得从开发者的角度来阐述这个问题。

[...]

再谈一下我的广告之路

2024年8月5日 14:02

前言

可能有的人会好奇,赚钱的路子那么多,比如卖课、付费社群、卖软件、充会员、甚至接单之类的,为什么我一直把精力花在不挣钱、还遭人嫌的广告上?

其实,我并没有把心思花在广告上,而是想把心思放在自己想做的事情上,比如我希望研究更多我想研究的技术,开发更多我想开发的工具,我希望等我老了,我的个人博客中会有成千上万的原创文章、我的开源项目能够Star破万,我还希望在多个领域都能有所建树,而不是只会写几行代码。

我不希望花太多的时间去搞社群、推广和售后等,最后又进入没日没夜工作的轮回,所以,我做的所有东西都是免费开源的,因为大家对开源的容忍度会比较高,我可以按照我自己的节奏去推进。

[...]

在线节拍器(源代码)

2024年8月3日 15:08

前言

昨天写了一篇 纯 JS + CSS 手搓一个在线节拍器 的文章,主要阐述了一下实现思路,后面又想了一下,感觉好像说了很多,但又好像什么也没说,因为,高手不需要,而新手看了好像也很难因此而直接上手,毕竟 ,咱们自己也常说“Talk is cheep. Show me the code.”。

因此,这篇文章,我干脆直接把源代码从项目中抠出来,然后简化一下贴上来,这样有需要的人直接复制代码本地运行就可以了。简单、直接,不搞弯弯绕让大家自己去悟了!

[...]

❌
❌