【项目推荐】搭建自己的个人主页

news/2024/12/25 22:14:06/文章来源:https://www.cnblogs.com/spcodhu/p/18631533

你是否想过将自己的简历做成一个单页面的网站?在这个网站上可以自定义你想展示的内容,不只求职信息,求偶信息也可以!试试下面的代码吧。
本文首发于微信公众号 呼哧好大枫,原作者与本文作者系同一人。

项目地址:http://hlt.cab/

代码开源地址:

  • 中文:https://gitee.com/kkacdbdk/personal-homepage
  • 英文:https://github.com/spcodhu/personal-homepage.git

技术栈:

  • Nuxt(https://nuxtjs.org.cn/docs/getting-started/introduction)
  • Nuxt UI(https://ui.nuxt.com/)
  • TailWind(https://www.tailwindcss.cn/)
  • PM2 部署(https://pm2.io/docs/plus/overview/)

页面实际效果

PC 端

手机端

项目背景以及为什么使用 Nuxt

作为一个日常充实、生活丰富的程序员,在 BOSS 等网站上上传的简历只能展示我们的技能和求职信息,生活中还有很多有趣的内容也可以展示在自己的简历上(如读书笔记、旅游日记、游戏段位等),方便其他人进一步地了解我们自己。因此,在我看来,有一个专属于自己的站点,能完全自定义的展示自己的内容,不管是对于我们找工作、还是论坛冲浪,亦或是交友求偶,都是很有帮助的。

综上具体地,需求分析如下:

  • 网站需要同时支持 PC 端和移动端,以方便更多人访问;
  • 这个网站只有一个页面,只需要展示我们设置好了的信息,提供文字、图片等给用户阅读,除了少数的超链接跳转外没有其它的和用户交互,最好使用纯前端实现;
  • 因为只有一个页面的缘故,我希望这个页面在客户端加载得越快越好,最好是不要有首屏加载的时间(很多用 Vue 实现的网站进入首屏时都得加载一会,有的甚至需要先下载近 100KB 的 js 文件);
  • 由于是个人主页网站,网站成本都是自己掏腰包,因此成本不能太高;
  • 对于我自己来说,我还希望网站使用的技术栈不能太老,最好借此尝试一下比较新的技术栈。

调研了一圈,网上的个人主页模板在我看来主要有两个缺点:

  1. 页面大多充满了动画和背景图片,实际的内容有点空,而且动画和背景也有点花哨。我希望做的页面应该和简历很像,也可以看作电子简历;
  2. 技术栈有点老了,很多使用的是 bootstrap 或者原生 HTML,技术不新奇,不够吸引我。

最终选择使用 Nuxt 实现。Nuxt 是一个基于 Vue 的开源 Web 框架,它继承了 Vue 的很多优点,而且由于使用服务端渲染的原因,基于 Nuxt 的网站首屏加载通常很快,相比传统 Vue 的客户端渲染,更符合个人主页的需求。此外,Nuxt 对于搜索引擎 SEO 也很友好,可以帮助我们的页面更快地被搜索引擎收录,从而被更多人访问到。

成本分析:

  1. 阿里云 2核2G 服务器 99 元一年(99计划);
  2. 阿里云个人域名 36 元一年;

一年不超过 150 元,约等于两个“Hua西子”,还是很划算的。

开源食用

项目的实现非常简单,笔者从一个不懂 Nuxt 和服务端渲染的小白到实现完成总共花了 3 天。代码也主要是实现样式和布局,其中用 Flex 和 TailWind 做样式比较多,参阅这俩的官方文档很容易很懂。

但是还是建议有一定 Vue 基础的开发者,阅读 Nuxt 的官方文档之后再上手更改。

项目遵循 Apache-2.0 开源协议,且无商用限制。

更详细的内容,请阅读代码仓库中的 REDEME 文档。

项目当前状态

项目并未完全实现完成。 因为我自己还是希望把这个做全一点的,具体来讲,还有几个点尚未完成:

  • 需要加一个中英文切换的功能,使页面内容可用中英文展示;
  • 页面内容尚未补充完整,比如旅游日记,后续准备加一个地图组件;
  • 尝试给页面加上监控,考虑用第三方还是自己做。

欢迎 star,关注后续动态!


微信公众号:呼哧好大枫

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858873.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 vite使用postcss-px-to-viewport 实现页面自适应

三、如何在 Vue3 中使用 postcss-px-to-viewport? 首先,我们需要安装相关的插件: npm install postcss-px-to-viewport -D 在vite.config.js文件中进行配置 import vue from @vitejs/plugin-vue // vite.config.ts import { defineConfig } from vite import AutoImport fro…

基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): 仿真操作步骤可参考程序配套的操作视频。2.算法涉及理论知识概要低密度奇偶校验码(Low-Density Parity-Check Codes,LDPC)是一种具有逼近香农限性能的信道编码技术。在现代通信系统中,LDPC 码因其优异的…

PTA 两次大作业总结:详细分析与实践经验

PTA 两次大作业总结:详细分析与实践经验 前言 回顾这次的家居强电电路模拟程序大作业,它无疑是一段充满挑战与收获的编程与设计旅程。从最初的基础电路组件建模,到后期复杂的多设备互联与控制反馈,每一步都考验着我的技术能力和解决问题的智慧。这不仅让我深入掌握了诸多编…

Go init()使用详解

持续创作,加速成长!这是我参与「掘金日新计划 10 月更文挑战」的第1天,点击查看活动详情 1. init()的使用 见名知意,init()是Go中的初始化函数。我们都知道,main()函数是Go程序启动的入口,而init()函数就是在main()之前,起到一个初始化的作用。 Go代码解读 复制代码pa…

LangGraph:基于图结构的大模型智能体开发框架

LangGraph 是LangChainAI开发的一个工具库,用于创建代理和多代理智能体工作流。它提供了以下核心优势:周期、可控性和持久性,对于Agent智能体开发者来说无疑减少了许多工作量。以下篇幅仅从本人角度阐述LangGraph在开发过程中的亮点以及使用方法。 基本介绍 LangGraph的Stat…

P7302 [NOI1998] 免费的馅饼

P7302 [NOI1998] 免费的馅饼 题目描述 SERKOI 最新推出了一种叫做“免费馅饼”的游戏:游戏在一个舞台上进行。舞台的宽度为 \(w\) 格(从左到右依次用 \(1\) 到 \(w\) 编号),游戏者占一格。开始时游戏者可以站在舞台的任意位置,手里拿着一个托盘。下图为天幕的高度为 \(4\)…

CSRF跨站请求伪造攻击详解

本文为《白帽子Web讲安全(第2版)》——跨站请求伪造(CSRF)章节的阅读总结及摘录,详述了CSRF攻击的定义及防御方法等。一、CSRF攻击概述 1.1 CSRF攻击定义用户浏览器加载恶意网站时,浏览器中的恶意网站页面向另一目标网站自主发起一个恶意HTTP请求,该攻击方式即为CSRF攻击。…

R数据分析:工具变量回归的做法和解释,实例解析

前几天看了个视频,是2024年诺贝尔经济学奖得主在分享自己的研究,研究问题是“制度如何形成并影响经济繁荣”,在研究这个问题的时候他的PPT中提到研究的统计过程中用到了工具变量,想着再次大家介绍一下这个方法。说不定利用这个方法,哪天我的读者里面也出个诺贝尔奖得主呢,…

昆工25考研复试时间预测(信自院)

昆工昆明理工大学、计算机技术、人工智能、软件工程、网络空间安全、891计算机专业核心综合、计算机系统结构、计算机软件与理论、计算机应用技术、通信工程、817信号与系统、信号与信息处理、通信与信息系统、通信工程(含宽带网络、移动通信等)

WebP图片格式

WebP WebP 是一种图片文件格式,由 Google 开发,用于提供更好的图像压缩性能。支持有损压缩和无损压缩,同时支持透明度(类似 PNG 格式的 alpha 通道)和动画(类似 GIF 格式)。 WebP特点高效压缩 •有损压缩:与 JPEG 相比,WebP 的文件体积更小,同时保持类似的图像质量。…

谁让你创建两个对象的?

如果CLASSPATH下有两个不同版本的jar包,一个版本的jar包有@Component注解,另外一个版本没有,Spring到底会不会创建Bean?问题现象 之前遇到过一个问题,在一个微服务的目录下有相同功能 jar 包的两个不同的版本,其中一个版本里面的类有 @Component 注解,另外一个版本的类里…

打印三角形金字塔 、debug、java的方法、命令行传参、可变参数20241225

打印三角形金字塔 debug20241225package com.pangHuHuStudyJava.struct; public class Print_Tran {public static void main(String[] args) {for (int j = 0; j < 5; j++) {for (int r = 5; r > j; r--) {System.out.print( );}for (int s = 0; s < ((2*j)+1); s++…