跳到主要内容

2 篇博文 含有标签「技术分享」

编程踩坑、技术探索、学习笔记

查看所有标签

使用Docusaurus 重构博客

· 阅读需 4 分钟
Embrace
荔影智能-技术负责人

为什么重构博客?

旧的博客架构使用 WordPress 后续经过第一个版本重构更换为了 Hugo。

Hugo 框架在博客方面表现不俗,但是对于技术文档来说,Hugo 的功能有限。

我想把我的技术知识分享给社区,所以决定使用 Docusaurus 构建一个博客。

Docusaurus 可以兼容博客和文档,构建速度快,不依赖于Go 语言。

创建一个博客,使用 Docusaurus 构建一个静态网站。

Docusaurus 是什么?

⚡️ Docusaurus 将帮助您在短时间内构建一个美观的文档网站。

💸 构建自定义技术栈成本高昂。相反,您可以专注于您的内容,只需编写 Markdown 文件。

💥 准备好探索更多了吗?使用高级功能,如版本控制、国际化、搜索和主题定制。

💅 查看最棒的 Docusaurus 网站以获取灵感。

🧐 Docusaurus 是一个静态网站生成器。它构建了一个单页应用,具有快速的客户端导航,充分利用 React 的强大功能使您的网站具有交互性。它提供开箱即用的文档功能,但也可用于创建任何类型的网站(个人网站、产品、博客、营销着陆页等)。

Docusaurus 的优势

⚛️ 采用 💚 和 React 构建
使用 React 进行扩展和定制
通过提供您自己的 React 组件,完全控制您站点的浏览体验
🔌 可插拔
使用基本模板启动您的站点,然后使用高级功能和插件
开源您的插件以与社区共享

✂️ 开发者体验
立即开始编写您的文档
统一的配置入口点,使其更易于贡献者维护
热重载,在更改时实现闪电般的增量构建
基于路由的代码和数据分割
轻松发布到 GitHub Pages、Netlify、Vercel 和其他部署服务
我们的共同目标——帮助您的用户快速找到他们需要的东西,并更好地了解您的产品。我们分享最佳实践,帮助您正确而良好地构建您的文档网站。

🎯 SEO 友好
HTML 文件为每个可能的路径静态生成。
页面特定 SEO,帮助您的用户直接访问与他们当前问题相关的官方文档。

📝 由 MDX 提供支持
通过嵌入在 Markdown 中的 JSX 和 React 编写交互式组件。
在实时编辑器中分享您的代码,让您的用户立即爱上您的产品。

🔍 搜索:您的整个站点都可搜索。
💾 文档版本控制:帮助您使文档与项目发布保持同步。

🌍 国际化 (i18n):将您的站点翻译成多种语言环境。

Docusaurus v2+ 天生就对所有用户具有无障碍访问性,并且速度极快。

⚡️ 闪电般快速。Docusaurus v2+ 遵循 PRPL 模式,确保您的内容加载速度惊人。
🦖 无障碍。注重无障碍性,使您的网站对所有用户都同样可访问。

快速开始

创建一个新的 Docusaurus 站点并按照非常简短的嵌入式教程进行操作。

安装 Node.js 并创建一个新的 Docusaurus 站点

npx create-docusaurus@latest my-website classic

启动站点

cd my-website
npx docusaurus start

默认启动在端口3000

打包部署

npm run build

构建站点并生成静态文件 build 目录

我所使用的部署方式是服务器部署

1.打包静态文件为 build 包

2.使用Docker File 创建Nginx 基础镜像

3.复制build 文件夹和Nginx 配置文件到镜像中

4.启动镜像部署站点

拜入师门

· 阅读需 6 分钟
Embrace
荔影智能-技术负责人

前言

我于这天开启了我作为程序员的副本,从此在 Java 路上一去不回头。所有的事情都是命运在推动,所有的决定都刚刚好。

回头看看自己走过的路,有时候真的觉得挺神奇的。如果那天舍友的电脑没有卡住,如果我没有耐着性子听完那场宣讲,如果我随手写的那道题没过关——可能现在的我,完全是另一个人了吧。

但命运就是这样,它不会提前告诉你剧本,只是在某个路口轻轻推你一把,然后你就走上了一条完全不同的路。


浑浑噩噩的大一时光

我就读于软件工程专业,19 年的时候刚大二。说实话,那时候的我跟"上进"两个字完全不沾边。

每天的生活轨迹极其固定:早上挣扎着去教室签到,上课的时候脑子不知道飘到哪里去了,计算机原理、数据结构这些课听得云里雾里。下课铃一响,整个人就像被按了开关一样,立马冲回宿舍,和舍友们一起开黑吃鸡。

那时候的快乐很简单,一局游戏赢了能高兴半天,输了就再来一局。至于未来?职业规划?那些东西太遥远了,大二的人谁想那些。

不过话说回来,我也不是完全对编程没感觉。C 语言课上跟着翁凯的视频学,其实还挺有意思的。尤其后来自己瞎琢磨,居然写出了一个 WebSocket 服务,当时激动得不行,一度觉得 QQ、微信也不过如此嘛——当然,现在想想也就是吹吹牛逼,但那种"我能创造东西"的感觉,确实让人上瘾。

只是那时候的我还不知道,这种感觉会在未来变成我真正的职业。


改变命运的那场宣讲

大二某天,一节计算机网络课结束后,老师说有几个其他学院的老师要来做宣讲。我当时满脑子想的都是赶紧回宿舍开黑,于是催舍友们快点收拾东西走人。

偏偏这时候,有个舍友的电脑卡住了,死活关不了机。

我们几个人围着他折腾了好一会儿,就是搞不定。就这么一耽搁,宣讲开始了。

既来之则安之,那就听听吧。

老师们讲的东西一股脑涌进来:Java Web、安卓、iOS、测试开发、前端、后端……对于当时只知道打游戏的我来说,简直是打开了新世界的大门。原来编程的世界这么大,原来我不用只会写 C 语言的小程序,原来我可以做出真正能用的东西。

最关键的是,他们组织了一个学校的培训班,不用交钱,只需要通过一次简单的筛选——考几道编程题就行。

兴趣一下子就上来了。


随手一写,命运就此改写

筛选题其实不难,我现在还记得,其中一道是二分查找。

对于当时的我来说,这题不算简单,但也谈不上多难。写完之后我也没太当回事,觉得就是个普通的测试而已。

结果——我入选了。

就这样,稀里糊涂地选了 Java Web 后端开发方向,正式进入了培训班。从此以后,我不再是那个只知道打游戏的大学生了。


疫情下的远程学习

刚进入培训班没多久,新冠疫情就爆发了。原本的线下课程全部转成了远程授课,我们一个个都窝在家里对着电脑屏幕学。

说实话,远程学习的体验并不好。没有教室的氛围,没有同学之间的交流,遇到问题也不能直接找老师问。但好在老师们都很负责,都是从某个大厂来的,技术实力没得说。

他们从最基础的东西开始教:Java 基础语法、Spring 框架、MySQL 数据库……一步步地带我们入门。

我到现在都记得第一次成功跑通一个 Spring Boot 项目时的感觉——那种成就感,比吃鸡赢十把都爽。我突然意识到,我选对了。

我对前端那些花里胡哨的界面根本不感兴趣,反而对服务端的 API 有浓厚的兴趣。数据怎么流转、接口怎么设计、系统怎么架构——这些东西让我着迷。


我的编程引路人

在培训班里,我遇到了我编程路上的第一个贵人——丁老师。

丁老师是个特别实在的人,不会跟你讲那些虚头巴脑的大道理,就是踏踏实实地教你技术。Git、Java、Spring、MySQL、微服务……他把自己能传授的知识,毫无保留地都给了我们。

更重要的是,他不只教技术,还教我们怎么思考。遇到问题不要慌,先分析日志;代码写完了要 review;需求不清楚就先沟通——这些习惯,我到现在还在用。

每次回想起那段跟着丁老师学习的日子,我都觉得特别庆幸。如果不是他,我可能还在宿舍里打游戏呢。


第一个副本:碧桂园

培训班结课那天,丁老师找到我,说有个实习机会推荐我去试试。

地点是碧桂园,岗位是物业部的实习后端开发。

说实话,当时我挺紧张的。培训班里学的那些东西,够不够用?能不能胜任真正的开发工作?但丁老师鼓励我去试试,说实战才是最好的学习。

于是,我怀着忐忑的心情,踏入了碧桂园的大门。

那是我第一次真正坐在工位上,面对真实的业务需求,写真实的代码。虽然只是实习,虽然只是物业部的一个小项目,但那种感觉完全不一样——我写的每一行代码,都会被真正的人使用。

这种责任感,是培训班里体会不到的。


后记

回头看 2019 年的自己,真的觉得挺感慨的。一个整天只知道打游戏的大学生,因为一场意外的宣讲、一个靠谱的老师、一次随缘的实习,就这样走上了程序员这条路。

有时候我会想,如果那天舍友的电脑没有卡住,我现在会在做什么?

但转念一想,也许命运就是这样安排的吧。它在对的时间,给了我一个对的机会,让我遇到了对的人。

所有的事情,都刚刚好。