Skip to content
Go back

我如何开发我的作品集网站和博客

Edit page

本文原文来自我的博客文章。我放置这篇文章是为了演示如何使用 AstroPaper 主题编写博客文章/文章。

我使用 NextJS 和 headless CMS 开发我的第一个作品集网站和博客的经验。

构建作品集

动机

自从我的大学生活以来,我一直在考虑使用我的自定义域名(satnaing.dev)启动我自己的网站。但直到这个项目之前,这从未发生过。我已经完成了几个关于 Web 应用程序开发的项目和工作,但我没有努力做这件事。

那么,“博客呢?“你可能会问。是的,博客也已经在我的项目列表中一段时间了。我一直想使用一些最新技术制作博客项目。但是,我一直忙于我的工作和其他项目,所以那个博客项目从未开始。

这些天,我倾向于开发我自己的项目,注重质量而不是数量。项目完成后,我通常会在 GitHub 存储库中放置一个适当的自述文件。但 GitHub 存储库自述文件只适合技术方面(这只是我的想法)。我想写下我的经验和挑战。因此,我决定制作我自己的博客。另外,此时,我有足够的经验和信心来开发这个项目。

技术栈

对于前端,我想使用 React。但 React 本身对 SEO 不够好;我确实必须考虑许多因素,如路由、图像优化等。因此,我选择 NextJS 作为我的主要前端栈。当然还有 TypeScript 用于类型检查。(据说当你习惯了 TypeScript 时,你会爱上它 😉)

对于样式,我使用 TailwindCSS。这是因为我喜欢 Tailwind 提供的开发体验,与其他组件 UI 库(如 MUI 或 React Bootstrap)相比,它具有很大的灵活性。

此项目的所有内容都位于 GitHub 存储库中。我的所有博客文章(包括这篇)都以 Markdown 文件格式编写,因为我非常习惯这个。但是为了轻松地编写 Markdown 及其 frontmatter,我使用 Forestry headless CMS。它是一个基于 git 的 CMS,可以提供 Markdown 和其他内容。因此,我可以使用 Markdown 或所见即所得编辑器编写我的内容。此外,使用它编写 frontmatters 是一件轻而易举的事。

图像和资源上传并存储在 Cloudinary 中。我通过 Forestry 连接 Cloudinary,并直接在仪表板中管理它们。

总之,这些是我为这个项目使用的技术栈。

功能

以下是我的作品集和博客的某些功能

SEO 友好

整个项目都是以 SEO 为重点开发的。我使用了适当的元标签、描述和标题对齐。这个网站现在已被 Google 索引。

您可以使用关键字(如 ‘sat naing dev’)在 google 上搜索此网站

在 google 上搜索 satnaing.dev

此外,由于正确使用元标签,此网站在分享到社交媒体时将显示良好。

分享到 Facebook 时 satnaing.dev 的卡片布局

动态站点地图

站点地图在 SEO 中起着重要作用。因此,此站点的每一个页面都应包含在 sitemap.xml 中。每当我创建新内容或标签或类别时,我都会在我的网站中自动生成站点地图。

浅色和深色主题

由于近年来的深色主题趋势,现在许多网站都开箱即用地包含深色主题。当然,我的网站也支持浅色和深色主题。

完全可访问

此网站完全可访问。您只能使用键盘导航。我实施了所有 a11y 增强最佳实践,例如在所有图像中包含 alt 文本、不跳过标题、使用语义 HTML 标签、正确使用 aria 属性。

搜索框、类别和标签

所有博客内容都可以通过搜索框搜索。此外,内容可以按类别和标签过滤。通过这种方式,博客读者可以搜索和阅读他们真正想要的内容。

性能和 Lighthouse 分数

由于适当的开发和最佳实践,此网站获得了非常好的性能和 lighthouse 分数。这是此网站的 lighthouse 分数。

satnaing.dev Lighthouse 分数

动画

最初,我使用 Framer Motion 为此网站添加动画和微交互。但是,当我尝试使用一些复杂的动画和视差效果时,我发现与 Framer Motion 集成不方便(也许我不太擅长并且习惯于使用它)。因此,我决定对所有动画使用 GSAP。它是最流行的动画库之一,能够执行复杂和高级的动画。您可以在此网站的几乎每个页面上看到动画和微交互。

satnaing.dev 上的动画

结尾

总之,这个项目给了我很多关于开发博客网站(SSG)的经验和信心。现在,我获得了有关基于 git 的 CMS 以及它如何与 NextJS 交互的知识。我还了解了 SEO、动态站点地图生成和索引 Google 程序。我将来会做更好的项目。所以,敬请期待!✌🏻

还有…最后但同样重要的是,我要对我的朋友 Swann Fevian Kyaw (@ToonHa) 说声”谢谢”,他为我网站的主页部分绘制了一幅美丽的插图。

项目链接


Edit page
Share this post on:

Previous Post
我如何使用 React 开发我的终端作品集网站