多年来我一直想写这个博客,想着看看我是否会写一篇关于这个或那个的文章,时间流逝了,当我回顾它时,我发现自己已经八年没写过一篇文章了。
在当今人工智能盛行的时代,维持博客可能不太合理,但我希望保持写作能力,并传达我个人的项目。
这个博客创建于19年前,最初名为“Mis Cosas Geek”,最初用“Geek”这个词来形容对科技充满兴趣的人,然而近年来,这个词越来越多地与流行文化、电子游戏、漫画、电影和邪典音乐,以及科幻和奇幻作品联系在一起,这并不是本博客的目的。因此,亲爱的硅片爱好者们,从今以后,这个网站将被称为“管理员的工作坊”,我们将继续讨论电子故障、开发以及一些新话题,如家庭自动化和3D打印。
新堆栈#
这次名称的更改可能不是唯一的新颖之处,因此它也在技术层面被迁移到生成静态 HTML,原因包括避免维护数据库和用 Markdown 写入,以及 SEO、性能、可访问性和安全性的提升(基本上因为它是静态 HTML :D)。
- WP2Hugo 作为迁移工具。
- Hugo 静态站点的生成器。
- 河豚 主题
- GitHub 动作
- Microsoft翻译 ,免费版(Azure F0),支持其他语言翻译,每月包含200万字符。
- Cloudflare 工人
- [Brevo](Para Newsletter)
- 请我喝杯咖啡
- Pholo 为像我这样的RSS怀旧爱好者提供网站验证,但已经过AI更新
选择静态站点生成器#
选择是Hugo,在这个新阶段,我想专注于写作,而不是维护插件、更新、SEO等,同时保持最佳性能。Hugo相比Astro、Jekyll或Next.js等类似技术带来了以下优势。
- 它没有任何依赖关系
- 学习曲线很低。
- 速度非常快。
- 它很现代,尤其是与杰基尔相比
- 简洁性
接下来要选择一个功能强大、设计良好、内置功能且不会过载的主题,这要比较多个现有主题 选择了《Blowfish 》。
出口#
迁移时,首先是从旧Wordpress中提取内容和文件,使用Github上的库之一。比较了多个工具,如 WordPress导出转Markdown、markdown-exporter-for-wordpress 和 wp2hugo,后者明显获胜,原因包括以下优势:
- 摘录评论
- 它不仅允许你下载引用的图片和文件,还能下载WordPress中所有现有的
- 通过包含代码块正确转换 Wordpress HTML
- 允许你调整新博客中文件和文件夹的结构
- 维护WordPress和GUIDss。
部署流程#
在部署方面,虽然我职业生涯中使用过Jenkins、Gitlab的CI/CD模板和Azure Devops,但我从未用过Github Actions,体验非常棒。
网站的“托管”使用了](https://www.cloudflare.com/products/workers/)[Cloudflare Workers,允许在私有仓库中免费部署,允许无限请求,20,000个文件,每个文件25Mb,真实301重定向(以维护旧Wordpress RSS订阅的重定向),每语言404个页面,等等。
这一切都在代码里: .github/workflows/publish.yml (动作“发布”)和Cloudflare wrangler.jsonc (工作者)。
每推一次主武器都会启动行动,连续执行两个任务:
1. 翻译#
我希望博客能触及更多人,为此我选择了世界上使用最多的语言,文章将自动翻译成这些语言:
- 西班牙语
- 英语
- 普通话
- 印地语
- 西班牙语
- 法语
- 阿拉伯语
- 孟加拉语
- 葡萄牙语
- 俄语
为此,我使用translate.py,免费使用Microsoft翻译器翻译新帖或修改帖](https://azure.microsoft.com/es-es/pricing/details/translator/)[,并将翻译上传到仓库。如果没有翻译,脚本几秒钟内完成,无需支付任何费用。- 如果翻译失败或配额用尽:脚本仍会显示,因此西班牙语帖子依然会发布。- 你可以恢复待处理的翻译或手动重新部署:操作 → 发布 → 运行流程。- GitHub 秘密:AZURE_TRANSLATOR_KEY、AZURE_TRANSLATOR_REGION、CLOUDFLARE_API_TOKEN(“编辑 Cloudflare Workers”模板,区域 talleradmin.com)和 CLOUDFLARE_ACCOUNT_ID。
2. 部署#
用 Hugo(支持吹鱼的最新版本)构建,并在 Cloudflare 的 Worker 中用 wrangler.jsonc 部署。
通讯#
我不确定新闻通讯是否还在运营,还是正在消亡,所以我用 [Brevo](Para Newsletter) 做了一个来测试。让我惊讶的是,20年前为网站管理员免费提供数百个网站的功能,现在却变成了极其有限的付费服务。不过,根据我查到的资料,Claude和我Brevo似乎提供了带RSS自动化的最佳免费方案。
其他已审查和迁移的主题#
交通便利性
Adsense
谷歌搜索控制台:迁移博客,因为域名也 rubeninfante.com 变成了 talleradmin.com
速卖通和亚马逊联盟链接
优化图像
sudo apt install optipng jpegoptim find static/wp-content -iname '_.png' -print0 | xargs -0 -P"$(nproc)" -n4 optipng -o2 -strip all -quiet find static/wp-content -iname '_.jp\*g' -print0 | xargs -0 jpegoptim --strip-all --all-progressive -q评论 robots.txt
类别和标签中重音的回顾
我用
static/_redirects文件清理了标签和分类清理未使用的文件
我在每页都添加了图片,还有一张通用图片,方便没有
static/img/social-default.jpg时用assets/img/background.jpg迁移前检查 WordPress 插件,禁用除必要插件外的所有插件。
修改并创建从 rubeninfante.com 到 talleradmin.com 的重定向
日常工作#
指挥#
创建新物品
hugo new posts/mi-nuevo-articulo/index.md- 如果
mi-nuevo-articulo文件夹中的图片被调用feature.[jpg,png,webp],它将作为主图片、头部和社交媒体使用。
- 如果
检查是否有断链
在网站根创建包含内容的
lychee.toml文件# lychee.toml — enlaces que no se comprueban (expresiones regulares) exclude = [ "#nolychee$", # la marca de evitar enlaces "https://web.archive.org/web/*", "reddit.com/submit", "facebook.com/sharer", "linkedin.com/shareArticle" ] exclude_path = ["^public/(en|zh-cn|hi|fr|ar|bn|pt-br|ru)/"]执行以下命令:
hugo --gc --cleanDestinationDir lychee --root-dir "$PWD/public" 'public/**/*.html' --format markdown --output informe.md评论
informe.md- 如果链接已不存在,请在网址开头添加
https://web.archive.org/web/ - 如果因反机器人或其他原因检测错误,请在链接末尾或
lychee.toml文件中添加#nolychee
- 如果链接已不存在,请在网址开头添加
更新主题#
更新主题
cd themes/blowfish OLD=$(git rev-parse HEAD) # para comparar después git fetch --depth 1 origin main && git checkout -B main origin/main复查你覆盖的相关文件
cd ../.. for f in $(cd layouts && find . -type f); do git -C themes/blowfish diff --quiet $OLD HEAD -- "layouts/${f#./}" 2>/dev/null || echo "Revisar: layouts/${f#./}"; done
图片#
了解博客图片的存储路径非常重要:
assets主题使用且可优化的图片:背景(defaultBackgroundImage)、默认精选图片(defaultFeaturedImage)和作者照片。background.jpg这就是为什么主题会缩小它,3.4 MB的图片不会被提供。static需要固定且不变的URL:传记记录、ads.txt、PDF、下载文件或从外部链接的图片。举个例子,我social-default.jpg放那里,因为Whatsapp和X要求稳定的URL。Imágenes de un post concreto:在帖子本身的文件夹里(页面包)。注意 在 hugo.toml 里,我也把
static设置成了资源。这就是为什么当主题用静态/图像作为封面时也会得到优化。这是针对 WordPress 迁移的修复方法。[[module.mounts]] source = "static" target = "assets"
添加一种语言#
需要修改/添加的文件
config/_default/languages.xx.toml config/_default/menus.xx.toml i18n/xx.toml (Sólo en el caso del que el tema no incluya el idioma)修改
/config/_default/params.tomlnewsletter.formAction] es = "https://..." xx = "https://..."
