@mete0r/minimal-homepage 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README-en.md ADDED
@@ -0,0 +1,277 @@
1
+ # Personal Homepage Template (Vue 3 + Vite)
2
+ [中文版本](./README.md)
3
+
4
+ A personal homepage project built with Vue 3 + Vite + Tailwind CSS, supporting:
5
+
6
+ - Home / About Me route switching
7
+ - Light/Dark theme toggle (nice touch)
8
+ - Social link cards
9
+ - GitHub repository display (API mode / manual mode optional)
10
+ - RSS blog post fetching and display
11
+ - Global configuration (`main.config.js`)
12
+
13
+ ## Preview
14
+ ![Light Mode](https://gcore.jsdelivr.net/gh/mete0rxsc/minimal-homepage@master/img/%E9%A2%84%E8%A7%88%E5%9B%BE%20-%20%E7%99%BD%E5%A4%A9%E6%A8%A1%E5%BC%8F.png)
15
+ ![Dark Mode](https://gcore.jsdelivr.net/gh/mete0rxsc/minimal-homepage@master/img/%E9%A2%84%E8%A7%88%E5%9B%BE%20-%20%E9%BB%91%E5%A4%9C%E6%A8%A1%E5%BC%8F.png)
16
+
17
+ ## Table of Contents
18
+
19
+ - [Live Demo](#live-demo)
20
+ - [Features](#features)
21
+ - [Tech Stack](#tech-stack)
22
+ - [Quick Start](#quick-start)
23
+ - [Deployment Methods](#deployment-methods)
24
+ - [Configuration File Guide](#configuration-file-guide)
25
+ - [GitHub Repository Configuration (Important)](#github-repository-configuration-important)
26
+ - [RSS Configuration Guide](#rss-configuration-guide)
27
+ - [FAQ](#faq)
28
+ - [Open Source Tips](#open-source-tips)
29
+
30
+ ## Live Demo
31
+
32
+ - `https://www.xscnet.cn`
33
+
34
+ ## Features
35
+
36
+ 1. Page Structure
37
+ - Home: Avatar/Bio, Social Section, Projects Section, Articles Section
38
+ - About Me: Separate route page
39
+
40
+ 2. Animation Experience
41
+ - Route transition animations
42
+ - Article expand/collapse animations
43
+ - Theme toggle animations
44
+ - Heart effect on mouse click
45
+
46
+ 3. Configuration-Driven
47
+ - Site title, favicon, background image
48
+ - Author info, navigation, social links
49
+ - GitHub repository source mode switching
50
+ - RSS URL and article cover strategy
51
+
52
+ ## Tech Stack
53
+
54
+ - Vue 3
55
+ - Vue Router 4
56
+ - Vite 8
57
+ - Tailwind CSS 4
58
+
59
+ ## Quick Start
60
+
61
+ ### 1) Installation
62
+ #### Install via npm
63
+ 1. Install
64
+
65
+ ```bash
66
+ npm install @mete0r/minimal-homepage
67
+ ```
68
+
69
+ 2. Enter the project directory
70
+
71
+ ```bash
72
+ cd @mete0r/minimal-homepage
73
+ ```
74
+
75
+ 3. Install dependencies
76
+
77
+ ```bash
78
+ npm install
79
+ ```
80
+
81
+ #### Install via Git
82
+
83
+ 1. Clone the repository
84
+
85
+ ```bash
86
+ git clone https://github.com/mete0rxsc/minimal-homepage.git
87
+ ```
88
+
89
+ 2. Enter the project directory
90
+
91
+ ```bash
92
+ cd minimal-homepage
93
+ ```
94
+
95
+ 3. Install dependencies
96
+
97
+ ```bash
98
+ npm install
99
+ ```
100
+
101
+ ### 2) Local Development
102
+
103
+ ```bash
104
+ npm run dev
105
+ ```
106
+
107
+ ### 3) Production Build
108
+
109
+ ```bash
110
+ npm run build
111
+ ```
112
+
113
+ ### 4) Local Preview of Build Output
114
+
115
+ ```bash
116
+ npm run preview
117
+ ```
118
+
119
+ ## Deployment Methods
120
+
121
+ ### Method A: Static Hosting Platform (Recommended)
122
+
123
+ Suitable for Vercel / Netlify / Cloudflare Pages / GitHub Pages, etc.
124
+
125
+ - Build Command: `npm run build`
126
+ - Output Directory: `dist`
127
+
128
+ ### Method B: Nginx / BT Panel / Cloud Server
129
+
130
+ 1. Build locally:
131
+
132
+ ```bash
133
+ npm run build
134
+ ```
135
+
136
+ 2. Upload the `dist` directory to your server's website root
137
+ 3. Nginx Example (Required for History Mode Routing):
138
+
139
+ ```nginx
140
+ location / {
141
+ try_files $uri $uri/ /index.html;
142
+ }
143
+ ```
144
+
145
+ ## Configuration File Guide
146
+
147
+ Core configuration file: [`main.config.js`](./main.config.js)
148
+
149
+ ### `site`
150
+
151
+ ```js
152
+ site: {
153
+ title: 'Website Title',
154
+ icon: 'Website Favicon URL',
155
+ background: 'Global Background Image URL'
156
+ }
157
+ ```
158
+
159
+ ### `author`
160
+
161
+ ```js
162
+ author: {
163
+ name: 'Your Name',
164
+ avatar: 'Avatar URL',
165
+ intro: 'Homepage Bio',
166
+ aiPortrait: 'Character Image URL',
167
+ mbti: 'INTP',
168
+ aboutMeintro: 'About Me Description'
169
+ }
170
+ ```
171
+
172
+ ### `navLinks`
173
+
174
+ ```js
175
+ navLinks: [
176
+ { name: 'Home', url: '/' },
177
+ { name: 'Social', url: '#socials' },
178
+ { name: 'Projects', url: '#projects' },
179
+ { name: 'Articles', url: '#articles' },
180
+ { name: 'About Me', url: '/about' }
181
+ ]
182
+ ```
183
+
184
+ ### `socials` / `footer`
185
+
186
+ - `socials` controls social cards
187
+ - `footer` controls footer text, ICP record number, bottom links
188
+
189
+ ## GitHub Repository Configuration (Important)
190
+
191
+ `main.config.js -> github` supports two modes:
192
+
193
+ ### Mode 1: Use GitHub API
194
+
195
+ ```js
196
+ github: {
197
+ useGithubApi: true,
198
+ username: 'your-github-name',
199
+ maxRepos: 10,
200
+ excludeForks: true,
201
+ covers: {
202
+ 'repo-name': 'https://example.com/repo-cover.jpg'
203
+ },
204
+ manualRepos: []
205
+ }
206
+ ```
207
+
208
+ Description:
209
+ - Fetches repositories from `username`
210
+ - Displays star count
211
+ - `covers` allows custom cover images by repository name
212
+
213
+ Optional: Configure `.env` (to increase API rate limit)
214
+
215
+ ```env
216
+ VITE_GITHUB_TOKEN=your_github_token
217
+ ```
218
+
219
+ ### Mode 2: Manual Repository List (No API)
220
+
221
+ ```js
222
+ github: {
223
+ useGithubApi: false,
224
+ manualRepos: [
225
+ {
226
+ name: 'My Project',
227
+ url: 'https://github.com/xxx/yyy',
228
+ description: 'Project Description',
229
+ language: 'JavaScript',
230
+ visibility: 'public',
231
+ cover: 'https://example.com/cover.jpg'
232
+ }
233
+ ]
234
+ }
235
+ ```
236
+
237
+ Description:
238
+ - No requests to GitHub API
239
+ - No star count displayed
240
+ - Custom cover image for each project
241
+
242
+ ## RSS Configuration Guide
243
+
244
+ Configure in `main.config.js -> blog`:
245
+
246
+ ```js
247
+ blog: {
248
+ url: 'https://your-blog.com',
249
+ rssFeed: 'https://your-blog.com/atom.xml',
250
+ randomCoverApi: 'https://your-cover-api.com/img'
251
+ }
252
+ ```
253
+
254
+ Recommendations:
255
+ - Use full URL for `rssFeed`
256
+ - Ensure the target RSS supports CORS (Cross-Origin Resource Sharing)
257
+
258
+ ## FAQ
259
+
260
+ ### 1) Changes to `site.title` / `site.icon` not taking effect
261
+
262
+ - Favicon cache is common, hard-refresh your browser (`Ctrl + F5`)
263
+ - Check if the favicon URL is directly accessible
264
+
265
+ ### 2) Anchor links from "About Me" not scrolling to position
266
+
267
+ - Cross-route anchor retry scrolling is implemented
268
+ - If issues persist, check if the target section `id` exists
269
+
270
+ ### 3) RSS not displaying
271
+
272
+ - Check if `rssFeed` URL is accessible
273
+ - Check if blocked by CORS policy on the target site
274
+
275
+ ## Open Source Tips
276
+
277
+ If you have configured GITHUB_TOKEN in .env, **DO NOT** upload this file to GitHub
package/main.config.js ADDED
@@ -0,0 +1,75 @@
1
+ export default {
2
+ site: {
3
+ title: 'Mete0r 的个人主页', //网站标题
4
+ icon: 'https://img.xscnet.cn//i/2026/04/11/69da42c41efd5.png', //网站图标
5
+ background: 'https://img.xscnet.cn//i/2026/04/11/69da185da44e4.png' //网站背景
6
+ },
7
+ author: {
8
+ name: 'Mete0r', //你的名称
9
+ avatar: 'https://img.xscnet.cn//i/2026/04/11/69da166816afc.jpg', //你的头像
10
+ intro: '你好,我是Mete0r,一名学生 | Trust The Process.', //你的简介
11
+ aiPortrait: 'https://img.xscnet.cn//i/2026/04/11/69da42c41efd5.png', //你的画像
12
+ mbti: 'INTP', //你的MBTI人格类型(影响到关于我页面)
13
+ aboutMeintro: '一名高中生,⌈ 给时光以生命,给岁月以文明 ⌋ | 小王子说:你要对你种下的玫瑰花负责。 保护她的刺,保护她的花瓣。 是你在那朵玫瑰花上耗费的时间和经历,才使得他变得如此重要。 「因为被这朵玫瑰花驯养,所以我们彼此互相需要 。」' //关于我的介绍
14
+ },
15
+ navLinks: [ //导航栏
16
+ { name: '首页', url: '/' },
17
+ { name: '社交', url: '#socials' },
18
+ { name: '项目', url: '#projects' },
19
+ { name: '文章', url: '#articles' },
20
+ { name: '关于我', url: '/about' }
21
+ ],
22
+ blog: { //跳转博客相关配置
23
+ url: 'https://www.xscnet.cn',
24
+ rssFeed: 'https://www.xscnet.cn/atom.xml',
25
+ randomCoverApi: 'https://rand.xscnet.cn/mix' //随机封面API(可选,文章列表会使用这个接口获取随机封面图)
26
+ },
27
+ github: {
28
+ useGithubApi: true, // 是否使用 GitHub API 获取项目(如果为 false,则只显示 manualRepos 中的项目)
29
+ username: 'mete0rxsc', // GitHub 用户名
30
+ maxRepos: 10, // 最大显示仓库数量
31
+ excludeForks: true, // 是否排除 Fork 的仓库
32
+
33
+ // API 模式下:按仓库名称匹配封面
34
+ covers: {
35
+ // 'repo-name': 'https://example.com/repo-cover.jpg'
36
+ },
37
+
38
+ // 非 API 模式下:手动维护项目(不会显示 Star)
39
+ manualRepos: [
40
+ // {
41
+ // name: 'My Awesome Project',
42
+ // url: 'https://github.com/your-name/your-repo',
43
+ // description: '项目简介',
44
+ // language: 'JavaScript',
45
+ // visibility: 'public',
46
+ // cover: 'https://example.com/cover.jpg'
47
+ // }
48
+ ]
49
+ },
50
+ socials: [ //社交链接
51
+ { name: 'GitHub', label: 'Open Source', icon: 'https://res.xscnet.cn/BlogStatic/Icon/svg/github-line.svg', url: 'https://github.com/mete0rxsc/' },
52
+ { name: 'X', label: 'Daily Life', icon: 'https://res.xscnet.cn/BlogStatic/Icon/svg/twitter-x-line.svg', url: 'https://x.com/Cqmoyuan/' },
53
+ { name: 'Bilibili', label: 'Videos', icon: 'https://res.xscnet.cn/BlogStatic/Icon/svg/bilibili-line.svg', url: 'https://space.bilibili.com/482787121' },
54
+ { name: '163Music', label: 'Music', icon: 'https://res.xscnet.cn/BlogStatic/Icon/svg/MdiMusicClefTreble.svg', url: 'https://music.163.com/#/artist?id=95704903' },
55
+ { name: 'Email', label: 'Contact Me', icon: 'https://res.xscnet.cn/BlogStatic/Icon/svg/mail-line.svg', url: 'mailto:Mete0r_xsc@hotmail.com' },
56
+ { name: 'Youtube', label: 'Community', icon: 'https://res.xscnet.cn/BlogStatic/Icon/svg/LineMdYoutubeFilled.svg', url: 'https://www.youtube.com/@Mete0r7023' }
57
+ ],
58
+ footer: {
59
+ icp: '吉ICP备2025026551号-2', //ICP备案号
60
+ copyright: '© 2026 Mete0r. All rights reserved.', //版权信息
61
+ email: 'Mete0r_xsc@hotmail.com', //联系邮箱
62
+ links: [ //页脚右下角链接,可不写icon
63
+ {
64
+ name: 'Email',
65
+ icon: 'https://res.xscnet.cn/BlogStatic/Icon/svg/mail-line.svg',
66
+ url: 'mailto:Mete0r_xsc@hotmail.com'
67
+ },
68
+ {
69
+ name: 'GitHub',
70
+ icon: 'https://res.xscnet.cn/BlogStatic/Icon/svg/github-line.svg',
71
+ url: 'https://github.com/mete0rxsc/'
72
+ }
73
+ ]
74
+ }
75
+ }
package/package.json CHANGED
@@ -1,14 +1,17 @@
1
1
  {
2
2
  "name": "@mete0r/minimal-homepage",
3
3
  "private": false,
4
- "version": "2.0.1",
4
+ "version": "2.0.2",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "src",
8
8
  "public",
9
9
  "index.html",
10
10
  "vite.config.js",
11
- "README.md"
11
+ "README.md",
12
+ "main.config.js",
13
+ "index.html",
14
+ "README-en.md"
12
15
  ],
13
16
  "scripts": {
14
17
  "dev": "vite",