Skip to content

Commit 203ff54

Browse files
committed
Update version to 1.1.0, add mobile-responsive design, localStorage settings persistence, and changelog functionality
1 parent 06368b3 commit 203ff54

8 files changed

Lines changed: 590 additions & 5 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ dist/
66
deploy/
77
temp/
88
*.zip
9+
public/changelog.json
910

1011
# Environment files
1112
.env

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.1.0] - 2026-03-13
9+
10+
### Added
11+
- Mobile-responsive design optimized for phones (tested on OnePlus Nord 4CE)
12+
- Settings persistence via localStorage (remembers your preferences)
13+
- Shake-to-generate on mobile devices (requires HTTPS)
14+
- Changelog popup when tapping version number
15+
16+
### Changed
17+
- Improved touch targets and spacing for mobile use
18+
- Reduced UI density on small screens for better usability
19+
820
## [1.0.0] - 2026-03-10
921

1022
### Added

package-lock.json

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
{
22
"name": "password-generator",
3-
"version": "1.0.0",
3+
"version": "1.1.0",
44
"description": "Simple Vue-based password generator",
55
"type": "module",
66
"config": {
77
"port": 6100
88
},
99
"scripts": {
1010
"dev": "vite",
11+
"prebuild": "node scripts/generate-changelog.js",
1112
"build": "vue-tsc && vite build",
1213
"preview": "vite preview",
1314
"server": "tsx server.ts",
@@ -23,6 +24,7 @@
2324
"devDependencies": {
2425
"@types/express": "^4.17.21",
2526
"@types/node": "^20.10.0",
27+
"@vitejs/plugin-basic-ssl": "^1.2.0",
2628
"@vitejs/plugin-vue": "^5.0.0",
2729
"@vue/test-utils": "^2.4.0",
2830
"jsdom": "^24.0.0",

scripts/generate-changelog.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import { readFileSync, writeFileSync } from 'fs'
2+
import { fileURLToPath } from 'url'
3+
import { dirname, join } from 'path'
4+
5+
const __filename = fileURLToPath(import.meta.url)
6+
const __dirname = dirname(__filename)
7+
const rootDir = join(__dirname, '..')
8+
9+
const changelogPath = join(rootDir, 'CHANGELOG.md')
10+
const outputPath = join(rootDir, 'public', 'changelog.json')
11+
12+
const markdown = readFileSync(changelogPath, 'utf-8')
13+
14+
const entries = []
15+
const versionRegex = /^## \[([^\]]+)\](?: - (\d{4}-\d{2}-\d{2}))?/
16+
const sectionRegex = /^### (.+)/
17+
const itemRegex = /^- (.+)/
18+
19+
let currentEntry = null
20+
let currentSection = null
21+
22+
for (const line of markdown.split('\n')) {
23+
const versionMatch = line.match(versionRegex)
24+
if (versionMatch) {
25+
if (currentEntry) {
26+
entries.push(currentEntry)
27+
}
28+
currentEntry = {
29+
version: versionMatch[1],
30+
date: versionMatch[2] || '',
31+
sections: []
32+
}
33+
currentSection = null
34+
continue
35+
}
36+
37+
if (!currentEntry) continue
38+
39+
const sectionMatch = line.match(sectionRegex)
40+
if (sectionMatch) {
41+
currentSection = {
42+
title: sectionMatch[1],
43+
items: []
44+
}
45+
currentEntry.sections.push(currentSection)
46+
continue
47+
}
48+
49+
const itemMatch = line.match(itemRegex)
50+
if (itemMatch && currentSection) {
51+
currentSection.items.push(itemMatch[1])
52+
}
53+
}
54+
55+
if (currentEntry) {
56+
entries.push(currentEntry)
57+
}
58+
59+
writeFileSync(outputPath, JSON.stringify(entries, null, 2))
60+
console.log(`Generated ${outputPath} with ${entries.length} entries`)

src/App.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,12 @@ body {
2222
align-items: center;
2323
padding: 20px;
2424
}
25+
26+
@media (max-width: 480px) {
27+
body {
28+
padding: 12px;
29+
align-items: flex-start;
30+
padding-top: 20px;
31+
}
32+
}
2533
</style>

0 commit comments

Comments
 (0)