Compare commits

...

42 Commits

Author SHA1 Message Date
semantic-release-bot
505f8d6a36 chore(release): 3.7.0 [skip ci]
# [3.7.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.6.0...3.7.0) (2026-03-12)

### Bug Fixes

* incorrect name of step ([db79f91](db79f912ee))
* use semantic release outputs ([578e166](578e1661cd))

### Features

* add automation to release using release-please in workflows ([99032f7](99032f7a62))
* add if to ignore harbor release result ([ce75e7c](ce75e7ca5e))
* add outputs of semantic release ([36eaa0c](36eaa0c132))
* add release branch, update and merge release workflow ([68f2080](68f2080bda))
* add semantic release ([620b496](620b496957))
* add token ([e0a3d39](e0a3d391b3))
* change release format ([24c837c](24c837cf84))
* ignore on docs updates ([4b58117](4b58117454))
* install deps ([f32b75e](f32b75e31d))
* remove old release workflows ([7882c3e](7882c3ecc7))
* remove release-please ([07fa86b](07fa86b17c))
* setup node for semantic release ([bf3a7ef](bf3a7ef261))
* use different workflow for gitea ([1577ee4](1577ee4c27))
2026-03-12 20:09:59 +00:00
26a2a9dc96 Merge pull request 'fix: use semantic release outputs' (#382) from main into release
All checks were successful
release-image / semantic-release (push) Successful in 1m47s
release-image / guarddog (push) Successful in 1m21s
release-image / build (push) Successful in 3m47s
release-image / release-harbor (push) Successful in 12m42s
release-image / release-gitea (push) Successful in 6m52s
Reviewed-on: #382
2026-03-12 20:08:51 +00:00
578e1661cd fix: use semantic release outputs
All checks were successful
renovate / renovate (push) Successful in 1m11s
2026-03-12 15:07:38 -05:00
semantic-release-bot
3e2e9196a2 chore(release): 3.7.0 [skip ci]
# [3.7.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.6.0...3.7.0) (2026-03-12)

### Bug Fixes

* incorrect name of step ([db79f91](db79f912ee))

### Features

* add automation to release using release-please in workflows ([99032f7](99032f7a62))
* add if to ignore harbor release result ([ce75e7c](ce75e7ca5e))
* add outputs of semantic release ([36eaa0c](36eaa0c132))
* add release branch, update and merge release workflow ([68f2080](68f2080bda))
* add semantic release ([620b496](620b496957))
* add token ([e0a3d39](e0a3d391b3))
* change release format ([24c837c](24c837cf84))
* ignore on docs updates ([4b58117](4b58117454))
* install deps ([f32b75e](f32b75e31d))
* remove old release workflows ([7882c3e](7882c3ecc7))
* remove release-please ([07fa86b](07fa86b17c))
* setup node for semantic release ([bf3a7ef](bf3a7ef261))
* use different workflow for gitea ([1577ee4](1577ee4c27))
2026-03-12 19:45:09 +00:00
338accdd22 Merge pull request 'Release' (#381) from main into release
All checks were successful
release-image / semantic-release (push) Successful in 1m24s
release-image / guarddog (push) Successful in 16s
release-image / build (push) Successful in 2m5s
release-image / release-harbor (push) Successful in 6m15s
release-image / release-gitea (push) Successful in 4m56s
Reviewed-on: #381
2026-03-12 19:44:08 +00:00
7882c3ecc7 feat: remove old release workflows
All checks were successful
renovate / renovate (push) Successful in 1m8s
2026-03-12 14:41:45 -05:00
db79f912ee fix: incorrect name of step 2026-03-12 14:41:25 -05:00
semantic-release-bot
e165c5fea0 chore(release): 3.7.0 [skip ci]
# [3.7.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.6.0...3.7.0) (2026-03-12)

### Features

* add automation to release using release-please in workflows ([99032f7](99032f7a62))
* add if to ignore harbor release result ([ce75e7c](ce75e7ca5e))
* add outputs of semantic release ([36eaa0c](36eaa0c132))
* add release branch, update and merge release workflow ([68f2080](68f2080bda))
* add semantic release ([620b496](620b496957))
* add token ([e0a3d39](e0a3d391b3))
* change release format ([24c837c](24c837cf84))
* ignore on docs updates ([4b58117](4b58117454))
* install deps ([f32b75e](f32b75e31d))
* remove release-please ([07fa86b](07fa86b17c))
* setup node for semantic release ([bf3a7ef](bf3a7ef261))
* use different workflow for gitea ([1577ee4](1577ee4c27))
2026-03-12 19:36:52 +00:00
8e32c5aaff Merge pull request 'Release' (#380) from main into release
All checks were successful
release-image / semantic-release (push) Successful in 1m38s
release-image / build (push) Has been skipped
release-image / guarddog (push) Has been skipped
release-image / release-harbor (push) Has been skipped
release-image / release-gitea (push) Has been skipped
Reviewed-on: #380
2026-03-12 19:35:47 +00:00
36eaa0c132 feat: add outputs of semantic release
All checks were successful
test-build / guarddog (push) Successful in 20s
renovate / renovate (push) Successful in 1m25s
test-build / build (push) Successful in 3m17s
2026-03-12 14:30:23 -05:00
24c837cf84 feat: change release format 2026-03-12 14:25:28 -05:00
semantic-release-bot
420b971044 chore(release): 1.0.0 [skip ci]
# 1.0.0 (2026-03-12)

### Bug Fixes

* add comments ([a0f83c8](a0f83c874c))
* add env ([ea9ae01](ea9ae016d7))
* add paths ([976bc0c](976bc0c413))
* add remote patterns for images ([ba73c1b](ba73c1b24f))
* change selected count ([fe38992](fe3899242a))
* clean up comments ([4d7886b](4d7886b93c))
* command order ([0a2979e](0a2979ecfe))
* correct credentials ([1a34b93](1a34b932b0))
* correct matchhost ([882063e](882063ea43))
* create new Date to compare posts ([01ee8fa](01ee8fac98))
* debug logs ([8d5c02e](8d5c02e2d1))
* **deps:** update astro monorepo ([ef810ef](ef810efd24))
* **deps:** update dependency shiki to v4 ([da28e5b](da28e5b50e))
* downgrade python ([7a77f0d](7a77f0d2d2))
* fix footer accent color ([9eb0f37](9eb0f37cb2))
* fix lint error ([4c4421c](4c4421c8a8))
* force 3d scaling for button transform ([959d3bd](959d3bd71d))
* hidden button background color on light mode, darken ([0d87af3](0d87af3aca))
* info logs ([c927235](c927235a5a))
* install and run ([e29631c](e29631c4af))
* move host rules to workflow ([ba2477e](ba2477e7af))
* only binary ([31aad55](31aad5511f))
* padding, margin, and width issues ([6d3f3a4](6d3f3a49ab))
* path ([d9833e1](d9833e1c27))
* remove argument ([093e1e2](093e1e2ccb))
* remove border from blog cards ([875b8a7](875b8a7f47))
* remove description ([c2bf64c](c2bf64c6cc))
* remove errant semicolon ([1ddc76a](1ddc76ae69))
* remove unused property ([3d9120c](3d9120c570))
* run theme on page swap ([c4be465](c4be4653be))
* update lock ([fb8f642](fb8f642c52))
* use uvx ([c3e4519](c3e4519682))

### Features

* add additional layout for small screens ([890dbdf](890dbdf313))
* add an all page with cards to link to it ([7327795](7327795d39))
* add applications page ([9678b3c](9678b3c718))
* add automation to release using release-please in workflows ([99032f7](99032f7a62))
* add background shimmer effect, use mask for content scroll fade ([5e37e2b](5e37e2bb53))
* add category logo to blog page ([5b94283](5b94283498))
* add client:load ([ceb70c7](ceb70c7049))
* add creds for dhi ([8797864](879786484d))
* add dark mode logo ([f984a1f](f984a1f759))
* add dark mode swap to logo ([97b1fa0](97b1fa0316))
* add dates to selected ([091af90](091af909d4))
* add docker login ([a8d6446](a8d6446674))
* add docs link to footer ([22860c4](22860c4714))
* add gap to distinguish ([f030da5](f030da549e))
* add gap to header above md ([d3b2b40](d3b2b40ccb))
* add guarddog scan to workflow ([14f7bdc](14f7bdc024))
* add if to ignore harbor release result ([ce75e7c](ce75e7ca5e))
* add logos to category cards ([4c1da43](4c1da43c68))
* add logos to category header pages ([d7d4336](d7d43369dc))
* add margin to bring in the content ([fa618b0](fa618b0524))
* add photoswipe to view images embeded in posts ([ae57c60](ae57c60935))
* add release branch, update and merge release workflow ([68f2080](68f2080bda))
* add rounded option to hero component and use it for about page ([95432d9](95432d9059))
* add rybbit tracking ([efad6c3](efad6c30d1))
* add scroll reset on navigation ([07c7ede](07c7edeb0f))
* add security feature ([a7e7e5b](a7e7e5b0e8))
* add semantic release ([620b496](620b496957))
* add shiki to markdown rendering for code highlighting ([b7f76c5](b7f76c5847))
* add thanks for Icons8 ([6cddae6](6cddae61ed))
* add token ([e0a3d39](e0a3d391b3))
* add weather widget ([b6dfc73](b6dfc738f1))
* adjust height of fade effect ([7498870](7498870d92))
* adjust layout of recent posts ([568220d](568220d39c))
* adjustment pass on spacing between sections ([b3c377f](b3c377f62d))
* better reactive layout for small screen sizes ([56d841a](56d841a335))
* change cache path ([30b2e98](30b2e980c0))
* change responsive height of image ([e25a3d0](e25a3d0189))
* change selected blogs to switch to card form on small screens ([44bd1e4](44bd1e4810))
* consistent gaps and margins ([05d7ad6](05d7ad6557))
* convert hero section to use randomly selected images stored in directus ([c9cb15f](c9cb15f201))
* convert to bun ([1f2820e](1f2820e4b4))
* disable ([1573331](1573331f87))
* disable security feature ([04dfecc](04dfecc099))
* enable cache ([16e14f6](16e14f63ef))
* enable guarddog ([19e8080](19e80809c1))
* enable security feature ([0434480](04344808bd))
* final refactor of sections ([a74cc77](a74cc775d0))
* hide cards on small screens ([e2f5bbb](e2f5bbbe9c))
* ignore on docs updates ([4b58117](4b58117454))
* imporve theme toggle button ([a09a4ee](a09a4ee240))
* imporvement pass over sections ([8a649b7](8a649b7647))
* improve behavior of showmore, fix alignment ([7f2a272](7f2a27248a))
* improve layout for single and two images ([e6d4e34](e6d4e34a0a))
* improve logos and clickability of cards on about and apps ([63cbcdf](63cbcdf39b))
* improve navbar, add opacity fade beneath, layout, and refactor ([5ac23f0](5ac23f08a4))
* install deps ([f32b75e](f32b75e31d))
* major refactor of cards to standardize styles ([104fe35](104fe35ee8))
* make cards fixed height ([9dfcf6f](9dfcf6f006))
* make weather fetching dynamic ([7f7f710](7f7f710fe8))
* markdown support for rss ([6156012](6156012c00))
* minor tweaks ([d42ba08](d42ba08041))
* move all categories card to bottom of category section ([2fbc9a7](2fbc9a764f))
* move all posts to bottom of recent section ([940342c](940342cc3f))
* move categories to directus ([93bf44f](93bf44f89a))
* move directus to local endpoint ([197ad63](197ad63ada))
* move improved components out of ui folder ([47a6373](47a637353c))
* move post metadata to snippet component ([cc8bade](cc8bade886))
* move url configuration to support file ([6f1728a](6f1728a909))
* organize footer to consistency ([c6f3179](c6f3179efb))
* organize layout to consistency ([8270728](8270728e8f))
* organize to consistency ([21085a1](21085a1620))
* organize to consistency ([62dd636](62dd636d4e))
* organize to consistency ([0497731](0497731c45))
* organize to consistency ([6c2c6da](6c2c6da91d))
* organize to consistency pass on sections ([429cf94](429cf94023))
* redo how images, icons, and logos are handled ([76dfef4](76dfef4177))
* redo layout, smaller and with logo ([3414535](341453510f))
* reduce scale effect ([b8379bb](b8379bbc38))
* refactor blog components ([6423ffb](6423ffba63))
* refactor buttons, except for theme ([342ae89](342ae8900a))
* refactor how blog cards layout, add metadata, better responsiveness ([265fd4f](265fd4f2cb))
* refactor pass along pages ([e52d85f](e52d85f931))
* release 2.10.0 ([fcd3057](fcd3057f40))
* release 2.10.1 ([2cdef1a](2cdef1a553))
* release 2.11.0 ([440c952](440c95224d))
* release 2.12.0 ([1a8473b](1a8473b964))
* release 2.13.0 ([2c9486f](2c9486f687))
* release 2.13.1 ([db2711d](db2711d878))
* release 2.14.0 ([0416ab7](0416ab7f9e))
* release 2.14.1 ([d415dda](d415dda661))
* release 2.15.0 ([f3b8d10](f3b8d10106))
* release 2.15.1 ([c5cda00](c5cda006bb))
* release 2.16.0 ([c69eb58](c69eb58a49))
* release 2.17.0 ([d19433a](d19433ae4e))
* release 2.17.1 ([cc5e975](cc5e975ea6))
* release 2.17.2 ([469d9ba](469d9ba3f7))
* release 2.18.0 ([ddbcb33](ddbcb33812))
* release 2.18.1 ([62066c6](62066c6f3b))
* release 2.19.0 ([6ddc382](6ddc382dac))
* release 2.19.1 ([f4676d1](f4676d151f))
* release 2.20.0 ([2c20770](2c2077053b))
* release 2.20.1 ([95ea235](95ea235f9f))
* release 2.21.0 ([89fd0eb](89fd0eb7ce))
* release 2.22.0 ([8b07837](8b07837c0d))
* release 2.23.0 ([50f050c](50f050c0b6))
* release 2.24.0 ([ce9c9c3](ce9c9c3857))
* release 2.25.0 ([e91ffd8](e91ffd8686))
* release 2.3.0 ([bf73905](bf73905658))
* release 2.3.2 ([49969e2](49969e27b0))
* release 2.4.0 ([d0ff16c](d0ff16c8dc))
* release 2.5.0 ([880bafd](880bafd41e))
* release 2.6.0 ([3f5682f](3f5682f80c))
* release 2.7.0 ([00ef91b](00ef91b644))
* release 2.8.0 ([a57f43e](a57f43e082))
* release 2.9.0 ([0f403fa](0f403fa274))
* release 3.0.0, major astro update to 6.0 ([962f354](962f354208))
* release 3.2.0 ([ec10d45](ec10d45fd0))
* release 3.3.0 ([8184d42](8184d42942))
* release 3.5.0 ([6ec2734](6ec27345c3))
* release 3.6.0 ([03f74a8](03f74a8181))
* remove emoji ([734e9ca](734e9cacae))
* remove extra spacing ([5877086](5877086cc3))
* remove hardcoded descriptions ([754f6a2](754f6a22f0))
* remove hardcoded descriptions ([c7d3ca7](c7d3ca7252))
* remove mdx ([4203b63](4203b63893))
* remove option ([19e17ea](19e17ea947))
* remove partytown int ([b55c3a0](b55c3a0e31))
* remove partytown int ([e63abf0](e63abf03ef))
* remove release-please ([07fa86b](07fa86b17c))
* remove security feature ([5e02443](5e02443409))
* remove static robots ([4dbc5d1](4dbc5d12a3))
* remove text-justify from content ([a45a4d7](a45a4d7dd7))
* remove unused files ([00a86b1](00a86b1206))
* remove unused packages ([505670d](505670dbf8))
* remove unused properties ([0a17e3b](0a17e3b8af))
* rename button components to include button in name for consistency ([5271be5](5271be52a2))
* reorganize blog layout ([1f3fed9](1f3fed93a1))
* replace timeago with dayjs ([405fdf2](405fdf297c))
* responsive for small screen ([5b6b6e4](5b6b6e479f))
* reword titles and descriptions ([68f1794](68f179456a))
* scale logos ([0fc359a](0fc359a973))
* setup node ([113f42c](113f42ca21))
* setup node for semantic release ([bf3a7ef](bf3a7ef261))
* shorten transition time ([3eae720](3eae720221))
* simplify layout of the features cards ([31621e4](31621e4f7e))
* slight optimization ([fe6604a](fe6604a5d9))
* tweak to gradient ([20d8c73](20d8c7323f))
* tweaks to background to be more pastel ([ea15224](ea15224eae))
* update BaseHead ([18211ad](18211ad485))
* update features ([7fafa5c](7fafa5c4cf))
* update layout's width ([6fca640](6fca640fd8))
* update robots.txt ([744e72e](744e72efc9))
* update workflow to major version ([dc08830](dc088306ce))
* use different workflow for gitea ([1577ee4](1577ee4c27))
* use hardened image ([d464f0f](d464f0fe43))
* use latest alpine ([e476efb](e476efb96b))
* use many to one relationship for categories in directus ([e7c660c](e7c660c142))
* use mask to blend content to background ([0c63c6b](0c63c6bef4))
* use masonary style layout ([8a7b6b9](8a7b6b97b7))
* use metadata snippet for blog cards ([18c2b54](18c2b54f65))
* use slate for accent ([8c5488f](8c5488fad5))

### Reverts

* release 2.2.2 ([f34f4b2](f34f4b2532))
* release 2.2.3 ([b3bb769](b3bb769c47))
* release 2.2.4 ([fde3973](fde397386c))
* release 2.2.5 ([00b63a5](00b63a5bea))
2026-03-12 19:22:30 +00:00
2c86390c7f Merge pull request 'Release' (#379) from main into release
All checks were successful
release-image / semantic-release (push) Successful in 1m26s
release-image / guarddog (push) Has been skipped
release-image / build (push) Has been skipped
release-image / release-harbor (push) Has been skipped
release-image / release-gitea (push) Has been skipped
Reviewed-on: #379
2026-03-12 19:21:33 +00:00
f32b75e31d feat: install deps
All checks were successful
renovate / renovate (push) Successful in 1m10s
2026-03-12 14:20:25 -05:00
4bcd542e7b Merge pull request 'Release' (#378) from main into release
Some checks failed
release-image / semantic-release (push) Failing after 27s
release-image / guarddog (push) Has been skipped
release-image / build (push) Has been skipped
release-image / release-harbor (push) Has been skipped
release-image / release-gitea (push) Has been skipped
Reviewed-on: #378
2026-03-12 19:16:18 +00:00
ce75e7ca5e feat: add if to ignore harbor release result
All checks were successful
renovate / renovate (push) Successful in 58s
2026-03-12 14:13:19 -05:00
bf3a7ef261 feat: setup node for semantic release
All checks were successful
renovate / renovate (push) Successful in 1m41s
2026-03-12 14:08:57 -05:00
b09e2dc849 Merge pull request 'Generate New Release' (#377) from main into release
Some checks failed
release-image / semantic-release (push) Failing after 16s
release-image / guarddog (push) Has been skipped
release-image / build (push) Has been skipped
release-image / release-harbor (push) Has been skipped
release-image / release-gitea (push) Successful in 7m15s
Reviewed-on: #377
2026-03-12 19:07:16 +00:00
cae8cd3a39 chore(deps): update deps
All checks were successful
test-build / guarddog (push) Successful in 27s
renovate / renovate (push) Successful in 1m21s
test-build / build (push) Successful in 2m40s
2026-03-12 14:02:50 -05:00
620b496957 feat: add semantic release 2026-03-12 14:01:14 -05:00
4b58117454 feat: ignore on docs updates
All checks were successful
renovate / renovate (push) Successful in 28s
2026-03-12 13:55:39 -05:00
68f2080bda feat: add release branch, update and merge release workflow
All checks were successful
test-build / guarddog (push) Successful in 50s
renovate / renovate (push) Successful in 58s
test-build / build (push) Successful in 4m4s
2026-03-12 13:54:11 -05:00
07fa86b17c feat: remove release-please
All checks were successful
renovate / renovate (push) Successful in 58s
test-build / guarddog (push) Successful in 1m16s
test-build / build (push) Successful in 3m22s
2026-03-12 13:26:28 -05:00
1577ee4c27 feat: use different workflow for gitea
Some checks failed
test-build / guarddog (push) Successful in 21s
renovate / renovate (push) Successful in 39s
test-build / build (push) Successful in 3m2s
release-image-harbor / release-please (push) Failing after 2m39s
release-image-gitea / release-please (push) Failing after 2m41s
release-image-harbor / build (push) Has been skipped
release-image-harbor / guarddog (push) Has been skipped
release-image-gitea / build (push) Has been skipped
release-image-gitea / guarddog (push) Has been skipped
release-image-harbor / release (push) Has been skipped
release-image-gitea / release (push) Has been skipped
2026-03-12 13:05:12 -05:00
e0a3d391b3 feat: add token
Some checks failed
release-image-harbor / release-please (push) Failing after 6s
release-image-harbor / build (push) Has been skipped
release-image-harbor / guarddog (push) Has been skipped
release-image-harbor / release (push) Has been skipped
renovate / renovate (push) Successful in 30s
release-image-gitea / release-please (push) Failing after 38s
release-image-gitea / build (push) Has been skipped
release-image-gitea / guarddog (push) Has been skipped
release-image-gitea / release (push) Has been skipped
test-build / guarddog (push) Successful in 58s
test-build / build (push) Successful in 1m49s
2026-03-12 13:03:26 -05:00
99032f7a62 feat: add automation to release using release-please in workflows
Some checks failed
renovate / renovate (push) Successful in 38s
release-image-harbor / release-please (push) Failing after 42s
release-image-harbor / build (push) Has been skipped
release-image-harbor / guarddog (push) Has been skipped
release-image-harbor / release (push) Has been skipped
release-image-gitea / release-please (push) Failing after 1m44s
release-image-gitea / build (push) Has been skipped
release-image-gitea / guarddog (push) Has been skipped
release-image-gitea / release (push) Has been skipped
test-build / guarddog (push) Successful in 59s
test-build / build (push) Has been cancelled
2026-03-12 12:59:16 -05:00
03f74a8181 feat: release 3.6.0
Some checks failed
renovate / renovate (push) Successful in 30s
test-build / guarddog (push) Successful in 1m3s
test-build / build (push) Failing after 1m10s
release-image-harbor / build (push) Failing after 1m30s
release-image-harbor / release (push) Has been skipped
release-image-gitea / build (push) Failing after 2m10s
release-image-gitea / release (push) Has been skipped
2026-03-12 12:42:45 -05:00
405fdf297c feat: replace timeago with dayjs
All checks were successful
renovate / renovate (push) Successful in 49s
test-build / guarddog (push) Successful in 1m8s
test-build / build (push) Successful in 3m24s
2026-03-12 12:35:23 -05:00
5b6b6e479f feat: responsive for small screen 2026-03-11 22:44:11 -05:00
04344808bd feat: enable security feature
All checks were successful
test-build / guarddog (push) Successful in 20s
renovate / renovate (push) Successful in 35s
test-build / build (push) Successful in 2m13s
release-image-gitea / build (push) Successful in 2m27s
release-image-gitea / release (push) Successful in 5m2s
release-image-harbor / build (push) Successful in 1m17s
release-image-harbor / release (push) Successful in 2m35s
2026-03-11 21:50:38 -05:00
6ec27345c3 feat: release 3.5.0 2026-03-11 19:44:49 -05:00
5e02443409 feat: remove security feature 2026-03-11 19:44:30 -05:00
8184d42942 feat: release 3.3.0
All checks were successful
test-build / guarddog (push) Successful in 45s
renovate / renovate (push) Successful in 51s
test-build / build (push) Successful in 5m44s
release-image-gitea / build (push) Successful in 1m7s
release-image-harbor / build (push) Successful in 1m45s
release-image-gitea / release (push) Successful in 3m14s
release-image-harbor / release (push) Successful in 3m11s
2026-03-11 19:31:54 -05:00
04dfecc099 feat: disable security feature 2026-03-11 19:31:35 -05:00
ec10d45fd0 feat: release 3.2.0
All checks were successful
test-build / guarddog (push) Successful in 43s
test-build / build (push) Successful in 1m28s
release-image-gitea / build (push) Successful in 1m29s
release-image-harbor / build (push) Successful in 1m44s
release-image-gitea / release (push) Successful in 4m38s
renovate / renovate (push) Successful in 1m3s
release-image-harbor / release (push) Successful in 6m0s
2026-03-11 18:54:42 -05:00
ceb70c7049 feat: add client:load
Some checks failed
renovate / renovate (push) Successful in 29s
test-build / build (push) Has been cancelled
test-build / guarddog (push) Has been cancelled
2026-03-11 18:54:07 -05:00
4dbc5d12a3 feat: remove static robots 2026-03-11 18:53:56 -05:00
b55c3a0e31 feat: remove partytown int
All checks were successful
test-build / guarddog (push) Successful in 17s
renovate / renovate (push) Successful in 23s
test-build / build (push) Successful in 1m25s
2026-03-11 02:04:32 -05:00
e63abf03ef feat: remove partytown int
Some checks failed
renovate / renovate (push) Successful in 25s
test-build / build (push) Failing after 29s
test-build / guarddog (push) Successful in 42s
2026-03-11 02:01:40 -05:00
a7e7e5b0e8 feat: add security feature
Some checks failed
test-build / guarddog (push) Successful in 23s
renovate / renovate (push) Successful in 43s
test-build / build (push) Failing after 1m50s
2026-03-11 01:49:07 -05:00
96724d0016 chore(deps): update deps 2026-03-11 01:47:26 -05:00
30b2e980c0 feat: change cache path
All checks were successful
test-build / guarddog (push) Successful in 20s
renovate / renovate (push) Successful in 34s
test-build / build (push) Successful in 1m9s
2026-03-11 01:25:58 -05:00
15 changed files with 1812 additions and 477 deletions

View File

@@ -1,155 +0,0 @@
name: release-image-gitea
on:
push:
tags:
- 3.*
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.10
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 24.14.0
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Cache Astro Build Cache
uses: actions/cache@v5
with:
path: |
node_modules/.cache
.astro/cache
key: ${{ runner.os }}-astro-cache-${{ hashFiles('**/bun.lockb') }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-astro-cache-${{ hashFiles('**/bun.lockb') }}-
${{ runner.os }}-astro-cache-
- name: Lint Code
run: bun run lint
- name: Build Project
run: bun run build
release:
runs-on: ubuntu-js
needs: build
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Login to Registry
uses: docker/login-action@v4
with:
registry: ${{ vars.REPOSITORY_HOST }}
username: ${{ gitea.actor }}
password: ${{ secrets.REPOSITORY_TOKEN }}
- name: Login to Docker
uses: docker/login-action@v4
with:
registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }}
password: ${{ secrets.DH_TOKEN }}
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBECONFIG_BUILDX }}" > $HOME/.kube/config
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
with:
driver: kubernetes
driver-opts: |
namespace=gitea
qemu.install=true
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["harbor.alexlebens.net/proxy-hub.docker/"]
- name: Available Platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v6
with:
tags: |
type=ref,event=branch
type=ref,event=tag
type=sha,format=long
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
images: |
${{ vars.REPOSITORY_HOST }}/${{ gitea.repository }}
- name: Get Version Info
id: version
run: |
echo "version=$(git describe --tags --always)" >> $GITHUB_OUTPUT
echo "commit=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
if git describe --tags --exact-match HEAD 2>/dev/null; then
echo "is_release=true" >> $GITHUB_OUTPUT
else
echo "is_release=false" >> $GITHUB_OUTPUT
fi
- name: Build and Push Image
uses: docker/build-push-action@v7
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
VERSION=${{ steps.version.outputs.version }}
COMMIT_SHA=${{ steps.version.outputs.commit }}
IS_RELEASE=${{ steps.version.outputs.is_release }}
file: ./Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
- name: ntfy Success
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Success - Site Profile'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Image for Site Profile has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Failure - Site Profile'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Image for Site Profile has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yml", "clear": true}]'
image: true

View File

@@ -1,155 +0,0 @@
name: release-image-harbor
on:
push:
tags:
- 3.*
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.10
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 24.14.0
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Cache Astro Build Cache
uses: actions/cache@v5
with:
path: |
node_modules/.cache
.astro/cache
key: ${{ runner.os }}-astro-cache-${{ hashFiles('**/bun.lockb') }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-astro-cache-${{ hashFiles('**/bun.lockb') }}-
${{ runner.os }}-astro-cache-
- name: Lint Code
run: bun run lint
- name: Build Project
run: bun run build
release:
runs-on: ubuntu-js
needs: build
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Login to Registry
uses: docker/login-action@v4
with:
registry: ${{ vars.REGISTRY_HOST }}
username: ${{ vars.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_SECRET }}
- name: Login to Docker
uses: docker/login-action@v4
with:
registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }}
password: ${{ secrets.DH_TOKEN }}
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBECONFIG_BUILDX }}" > $HOME/.kube/config
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
with:
driver: kubernetes
driver-opts: |
namespace=gitea
qemu.install=true
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["harbor.alexlebens.net/proxy-hub.docker/"]
- name: Available Platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v6
with:
tags: |
type=ref,event=branch
type=ref,event=tag
type=sha,format=long
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
images: |
${{ vars.REGISTRY_HOST }}/images/site-profile
- name: Get Version Info
id: version
run: |
echo "version=$(git describe --tags --always)" >> $GITHUB_OUTPUT
echo "commit=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
if git describe --tags --exact-match HEAD 2>/dev/null; then
echo "is_release=true" >> $GITHUB_OUTPUT
else
echo "is_release=false" >> $GITHUB_OUTPUT
fi
- name: Build and Push Image
uses: docker/build-push-action@v7
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
VERSION=${{ steps.version.outputs.version }}
COMMIT_SHA=${{ steps.version.outputs.commit }}
IS_RELEASE=${{ steps.version.outputs.is_release }}
file: ./Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
- name: ntfy Success
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Success - Site Profile'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Image for Site Profile has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Failure - Site Profile'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Image for Site Profile has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yml", "clear": true}]'
image: true

View File

@@ -0,0 +1,346 @@
name: release-image
on:
push:
branches:
- release
workflow_dispatch:
jobs:
semantic-release:
runs-on: ubuntu-js
outputs:
new-release-published: ${{ steps.semantic.outputs.new-release-published }}
new-release-version: ${{ steps.semantic.outputs.new-release-version }}
new-release-git-tag: ${{ steps.semantic.outputs.new-release-git-tag }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.BOT_TOKEN }}
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 24.14.0
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.10
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Run Semantic Release
id: semantic
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
NODE_PATH: ${{ github.workspace }}/node_modules
run: |
bun run semantic-release
build:
needs: semantic-release
if: ${{ needs.semantic-release.outputs.new-release-published == 'true' }}
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: release
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 24.14.0
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.10
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Cache Astro Build Cache
uses: actions/cache@v5
with:
path: |
.astro
node_modules/.vite
key: ${{ runner.os }}-astro-${{ hashFiles('**/*.astro', 'astro.config.mjs') }}
restore-keys: |
${{ runner.os }}-astro-
- name: Lint Code
run: bun run lint
- name: Build Project
run: bun run build
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Test Failure - Site Profile'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'During release tests failed for building Site Profile'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yaml", "clear": true}]'
image: true
guarddog:
needs: semantic-release
if: ${{ needs.semantic-release.outputs.new-release-published == 'true' }}
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: release
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Install GuardDog
run: |
python3 -m pip install --upgrade pip
python3 -m pip install guarddog
- name: Run GuardDog
run: |
guarddog npm scan ./
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Security Failure - Site Profile'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'During release guarddog scan failed for Site Profile'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yaml", "clear": true}]'
image: true
release-harbor:
runs-on: ubuntu-js
needs: [semantic-release, build, guarddog, ]
if: ${{ needs.semantic-release.outputs.new-release-published == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: release
- name: Login to Harbor Registry
uses: docker/login-action@v4
with:
registry: ${{ vars.REGISTRY_HOST }}
username: ${{ vars.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_SECRET }}
- name: Login to Docker
uses: docker/login-action@v4
with:
registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }}
password: ${{ secrets.DH_TOKEN }}
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBECONFIG_BUILDX }}" > $HOME/.kube/config
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
with:
driver: kubernetes
driver-opts: |
namespace=gitea
qemu.install=true
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["harbor.alexlebens.net/proxy-hub.docker/"]
- name: Available Platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v6
with:
images: |
${{ vars.REGISTRY_HOST }}/images/site-profile
tags: |
type=ref,event=branch
type=sha,format=long
type=raw,value=latest,enable=${{ needs.semantic-release.outputs.new-release-published == 'true' }}
type=semver,pattern={{version}},value=${{ needs.semantic-release.outputs.new-release-version }}
type=semver,pattern={{major}}.{{minor}},value=${{ needs.semantic-release.outputs.new-release-version }}
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
- name: Build and Push Image
uses: docker/build-push-action@v7
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
APP_VERSION=${{ needs.semantic-release.outputs.new-release-version }}
COMMIT_SHA=${{ github.sha }}
IS_RELEASE=true
file: ./Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
- name: ntfy Success
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Success - Site Profile'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Harbor Image for Site Profile has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Failure - Site Profile'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Harbor Image for Site Profile has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yml", "clear": true}]'
image: true
release-gitea:
runs-on: ubuntu-js
needs: [ semantic-release, build, guarddog, release-harbor ]
if: |
always() &&
needs.semantic-release.result == 'success' &&
needs.semantic-release.outputs.new-release-published == 'true' &&
needs.build.result == 'success' &&
needs.guarddog.result == 'success'
steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: release
- name: Login to Gitea Registry
uses: docker/login-action@v4
with:
registry: ${{ vars.REPOSITORY_HOST }}
username: ${{ gitea.actor }}
password: ${{ secrets.REPOSITORY_TOKEN }}
- name: Login to Docker
uses: docker/login-action@v4
with:
registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }}
password: ${{ secrets.DH_TOKEN }}
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBECONFIG_BUILDX }}" > $HOME/.kube/config
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
with:
driver: kubernetes
driver-opts: |
namespace=gitea
qemu.install=true
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["harbor.alexlebens.net/proxy-hub.docker/"]
- name: Available Platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v6
with:
images: |
${{ vars.REPOSITORY_HOST }}/${{ gitea.repository }}
tags: |
type=ref,event=branch
type=sha,format=long
type=raw,value=latest,enable=${{ needs.semantic-release.outputs.new-release-published == 'true' }}
type=semver,pattern={{version}},value=${{ needs.semantic-release.outputs.new-release-version }}
type=semver,pattern={{major}}.{{minor}},value=${{ needs.semantic-release.outputs.new-release-version }}
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
- name: Build and Push Image
uses: docker/build-push-action@v7
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
APP_VERSION=${{ needs.semantic-release.outputs.new-release-version }}
COMMIT_SHA=${{ github.sha }}
IS_RELEASE=true
file: ./Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
- name: ntfy Success
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Success - Site Profile'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Gitea Image for Site Profile has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Failure - Site Profile'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Gitea Image for Site Profile has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-profile/actions?workflow=release-image.yaml", "clear": true}]'
image: true

View File

@@ -4,6 +4,9 @@ on:
push:
branches:
- main
paths-ignore:
- '.gitea/workflows/**'
- '**.md'
pull_request:
branches:
@@ -16,16 +19,16 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.10
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 24.14.0
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.10
- name: Install Dependencies
run: bun install --frozen-lockfile
@@ -33,12 +36,11 @@ jobs:
uses: actions/cache@v5
with:
path: |
node_modules/.cache
.astro/cache
key: ${{ runner.os }}-astro-cache-${{ hashFiles('**/bun.lockb') }}-${{ github.sha }}
.astro
node_modules/.vite
key: ${{ runner.os }}-astro-${{ hashFiles('**/*.astro', 'astro.config.mjs') }}
restore-keys: |
${{ runner.os }}-astro-cache-${{ hashFiles('**/bun.lockb') }}-
${{ runner.os }}-astro-cache-
${{ runner.os }}-astro-
- name: Lint Code
run: bun run lint

18
.releaserc.json Normal file
View File

@@ -0,0 +1,18 @@
{
"branches": ["release"],
"tagFormat": "${version}",
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
"semantic-release-export-data",
["@semantic-release/npm", { "npmPublish": false }],
["@semantic-release/git", {
"assets": ["package.json", "CHANGELOG.md"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}],
["@saithodev/semantic-release-gitea", {
"giteaUrl": "https://gitea.alexlebens.dev"
}]
]
}

277
CHANGELOG.md Normal file
View File

@@ -0,0 +1,277 @@
# [3.7.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.6.0...3.7.0) (2026-03-12)
### Bug Fixes
* incorrect name of step ([db79f91](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/db79f912eeb4f3741945c95d42508451e9558c1e))
* use semantic release outputs ([578e166](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/578e1661cd3966b9886c952dbb564d1a2290f5dc))
### Features
* add automation to release using release-please in workflows ([99032f7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/99032f7a62a88bd8310a0eacfa2ab03c17ed9685))
* add if to ignore harbor release result ([ce75e7c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ce75e7ca5ec723c6a30f760f930d027012da6de9))
* add outputs of semantic release ([36eaa0c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/36eaa0c13264cfc9acfb311d4e9fba35ced95d39))
* add release branch, update and merge release workflow ([68f2080](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/68f2080bdaa4b5a10a0d72657d511d287288e68c))
* add semantic release ([620b496](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/620b496957e49aa5615c043dbebb31367df38aaf))
* add token ([e0a3d39](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e0a3d391b314717402b9577899c37c131a73c71d))
* change release format ([24c837c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/24c837cf84a2bffb2a9b44a6905f2cbdb58facc6))
* ignore on docs updates ([4b58117](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4b58117454109cbc3f40df0d1edc5185ca6415f0))
* install deps ([f32b75e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f32b75e31d8ac4a3e55f86812bfa0790bfaede57))
* remove old release workflows ([7882c3e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7882c3ecc763b2fe396e412d2ba81d7a0629bb11))
* remove release-please ([07fa86b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/07fa86b17cab585088e299aab081b122db386ade))
* setup node for semantic release ([bf3a7ef](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/bf3a7ef261b437e877fd7c9d1a477dfac1ee0400))
* use different workflow for gitea ([1577ee4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1577ee4c2791cb40d2af4b891e37c6c3f4db459a))
# [3.7.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.6.0...3.7.0) (2026-03-12)
### Bug Fixes
* incorrect name of step ([db79f91](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/db79f912eeb4f3741945c95d42508451e9558c1e))
### Features
* add automation to release using release-please in workflows ([99032f7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/99032f7a62a88bd8310a0eacfa2ab03c17ed9685))
* add if to ignore harbor release result ([ce75e7c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ce75e7ca5ec723c6a30f760f930d027012da6de9))
* add outputs of semantic release ([36eaa0c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/36eaa0c13264cfc9acfb311d4e9fba35ced95d39))
* add release branch, update and merge release workflow ([68f2080](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/68f2080bdaa4b5a10a0d72657d511d287288e68c))
* add semantic release ([620b496](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/620b496957e49aa5615c043dbebb31367df38aaf))
* add token ([e0a3d39](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e0a3d391b314717402b9577899c37c131a73c71d))
* change release format ([24c837c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/24c837cf84a2bffb2a9b44a6905f2cbdb58facc6))
* ignore on docs updates ([4b58117](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4b58117454109cbc3f40df0d1edc5185ca6415f0))
* install deps ([f32b75e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f32b75e31d8ac4a3e55f86812bfa0790bfaede57))
* remove old release workflows ([7882c3e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7882c3ecc763b2fe396e412d2ba81d7a0629bb11))
* remove release-please ([07fa86b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/07fa86b17cab585088e299aab081b122db386ade))
* setup node for semantic release ([bf3a7ef](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/bf3a7ef261b437e877fd7c9d1a477dfac1ee0400))
* use different workflow for gitea ([1577ee4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1577ee4c2791cb40d2af4b891e37c6c3f4db459a))
# [3.7.0](https://gitea.alexlebens.dev/alexlebens/site-profile/compare/3.6.0...3.7.0) (2026-03-12)
### Features
* add automation to release using release-please in workflows ([99032f7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/99032f7a62a88bd8310a0eacfa2ab03c17ed9685))
* add if to ignore harbor release result ([ce75e7c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ce75e7ca5ec723c6a30f760f930d027012da6de9))
* add outputs of semantic release ([36eaa0c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/36eaa0c13264cfc9acfb311d4e9fba35ced95d39))
* add release branch, update and merge release workflow ([68f2080](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/68f2080bdaa4b5a10a0d72657d511d287288e68c))
* add semantic release ([620b496](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/620b496957e49aa5615c043dbebb31367df38aaf))
* add token ([e0a3d39](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e0a3d391b314717402b9577899c37c131a73c71d))
* change release format ([24c837c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/24c837cf84a2bffb2a9b44a6905f2cbdb58facc6))
* ignore on docs updates ([4b58117](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4b58117454109cbc3f40df0d1edc5185ca6415f0))
* install deps ([f32b75e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f32b75e31d8ac4a3e55f86812bfa0790bfaede57))
* remove release-please ([07fa86b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/07fa86b17cab585088e299aab081b122db386ade))
* setup node for semantic release ([bf3a7ef](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/bf3a7ef261b437e877fd7c9d1a477dfac1ee0400))
* use different workflow for gitea ([1577ee4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1577ee4c2791cb40d2af4b891e37c6c3f4db459a))
# 1.0.0 (2026-03-12)
### Bug Fixes
* add comments ([a0f83c8](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a0f83c874c8b4d66168ed54f93919ffaafe2250b))
* add env ([ea9ae01](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ea9ae016d706b03793a1f4218c9d407ed45e26a4))
* add paths ([976bc0c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/976bc0c413904bc5b8772a8e5674c1c92ae09eb4))
* add remote patterns for images ([ba73c1b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ba73c1b24ff48acc2589b3e7ad1a104a9c813a9d))
* change selected count ([fe38992](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fe3899242a0e2c951371f42561705ec8d2fa1093))
* clean up comments ([4d7886b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4d7886b93c78e89e3fa49d122573fc1a2d4feb39))
* command order ([0a2979e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0a2979ecfef952826138c0095ff917ac8926aedb))
* correct credentials ([1a34b93](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1a34b932b06b410e47653eb98e03cca06385bd14))
* correct matchhost ([882063e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/882063ea43004d26ccb6b6ccc706d99e4ef7f4be))
* create new Date to compare posts ([01ee8fa](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/01ee8fac98b5bb110670860cf87b1aa3e1b52a9a))
* debug logs ([8d5c02e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8d5c02e2d124d7b9c82e03f01b93ac5f8074335d))
* **deps:** update astro monorepo ([ef810ef](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ef810efd24a3bfb09ab0dd82fdd144ff92e9e7ef))
* **deps:** update dependency shiki to v4 ([da28e5b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/da28e5b50e60b4e01a7c9ec98297d272945cb1ce))
* downgrade python ([7a77f0d](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7a77f0d2d2489707bbf5cc815a531282393fa5eb))
* fix footer accent color ([9eb0f37](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/9eb0f37cb2c8dce3602616e490a6214adb6f2f10))
* fix lint error ([4c4421c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4c4421c8a897ea54472c3dd1696bcf0dc0ec4e3b))
* force 3d scaling for button transform ([959d3bd](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/959d3bd71d3c6ed3fc34196ff2edaee0441a36c5))
* hidden button background color on light mode, darken ([0d87af3](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0d87af3aca5e10f13358e480aa56f860ff0ae211))
* info logs ([c927235](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c927235a5aeb6e6d600eb4de78d4144dd7853d21))
* install and run ([e29631c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e29631c4af2d87d0e3518751d0e6327006d4e38d))
* move host rules to workflow ([ba2477e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ba2477e7af9ab97045c836634de57384e199f881))
* only binary ([31aad55](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/31aad5511fbf288991e5eab1551204fc9513e253))
* padding, margin, and width issues ([6d3f3a4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6d3f3a49ab80c7c49c0552fc18c09cff2a34be57))
* path ([d9833e1](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d9833e1c27c5b60d4dd1e180e4108623639d6681))
* remove argument ([093e1e2](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/093e1e2ccb55085f34595ffccecf322f9bba4199))
* remove border from blog cards ([875b8a7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/875b8a7f47698cb397992dbedf48b1d1a35c0cfa))
* remove description ([c2bf64c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c2bf64c6ccdf52345f3eecf52b59d472fde372da))
* remove errant semicolon ([1ddc76a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1ddc76ae693d6903226ae6ffef635d9ed3adad4f))
* remove unused property ([3d9120c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/3d9120c5700244137427b929c360920e7227ad6d))
* run theme on page swap ([c4be465](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c4be4653bea0b4101cfbe20c082b3268c01ddba8))
* update lock ([fb8f642](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fb8f642c52fe82469e4bc3b41f8b62ca5ca80e46))
* use uvx ([c3e4519](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c3e4519682599bafe0c9857be90937542be31fd8))
### Features
* add additional layout for small screens ([890dbdf](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/890dbdf313c4596e73734fdca5376c86d4cdc852))
* add an all page with cards to link to it ([7327795](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7327795d394f05039a3e0fe0e6615453138bcd6a))
* add applications page ([9678b3c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/9678b3c7185b166d710ab7e0a83cdbdc89cc0ff6))
* add automation to release using release-please in workflows ([99032f7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/99032f7a62a88bd8310a0eacfa2ab03c17ed9685))
* add background shimmer effect, use mask for content scroll fade ([5e37e2b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5e37e2bb539a8d35bd3de3c47f0b2c5d227197c5))
* add category logo to blog page ([5b94283](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5b94283498131c4265b7f5bb364d81e8ff642a88))
* add client:load ([ceb70c7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ceb70c70491d7075cd744a12158bf6a9bf7da367))
* add creds for dhi ([8797864](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/879786484d10a6be14e1cb7a5a6d28ebb6b1a95f))
* add dark mode logo ([f984a1f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f984a1f759b14e11c9d9ccd3d389ee3b4cd94d67))
* add dark mode swap to logo ([97b1fa0](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/97b1fa0316dff19bbfc8e34041826fb95b71f2d8))
* add dates to selected ([091af90](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/091af909d49c31568edd00b195c10f4b45c843db))
* add docker login ([a8d6446](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a8d6446674d872456952146f0b31562f41a873f8))
* add docs link to footer ([22860c4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/22860c4714c353f407ad0e2383976819a059c232))
* add gap to distinguish ([f030da5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f030da549ead68a2334ed70ae32b6c19ef686a93))
* add gap to header above md ([d3b2b40](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d3b2b40ccbbac494a02cddc1944d698627abcc6f))
* add guarddog scan to workflow ([14f7bdc](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/14f7bdc024868a02566b00bf2a3b52c74a210788))
* add if to ignore harbor release result ([ce75e7c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ce75e7ca5ec723c6a30f760f930d027012da6de9))
* add logos to category cards ([4c1da43](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4c1da43c6833a5e36e52a39fcbe93d2a2422418e))
* add logos to category header pages ([d7d4336](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d7d43369dc239af1775d99b631fb86368bcac102))
* add margin to bring in the content ([fa618b0](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fa618b0524912eab62a670b926d70c1d29968780))
* add photoswipe to view images embeded in posts ([ae57c60](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ae57c6093599f3bb0b6bc6b0856a96fab997e1f6))
* add release branch, update and merge release workflow ([68f2080](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/68f2080bdaa4b5a10a0d72657d511d287288e68c))
* add rounded option to hero component and use it for about page ([95432d9](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/95432d9059cc05afc1a97033e42d7a4322c27a54))
* add rybbit tracking ([efad6c3](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/efad6c30d1387d97b74286d1dec158998b90c047))
* add scroll reset on navigation ([07c7ede](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/07c7edeb0f49fd082d109f85f3407c41ee1924ca))
* add security feature ([a7e7e5b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a7e7e5b0e803b604801ed7aee0bdcd81781c612f))
* add semantic release ([620b496](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/620b496957e49aa5615c043dbebb31367df38aaf))
* add shiki to markdown rendering for code highlighting ([b7f76c5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b7f76c584752942d0beaec5f8d815dbe139dd1c1))
* add thanks for Icons8 ([6cddae6](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6cddae61ed40a4f30d121d8f054749c09ee4be59))
* add token ([e0a3d39](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e0a3d391b314717402b9577899c37c131a73c71d))
* add weather widget ([b6dfc73](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b6dfc738f15737937fbc6dd438d173c0f4b1e526))
* adjust height of fade effect ([7498870](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7498870d9221e8f2e403596cfdcb916a59e6bd4f))
* adjust layout of recent posts ([568220d](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/568220d39c4ede230b512b18eb28dc46d941dcca))
* adjustment pass on spacing between sections ([b3c377f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b3c377f62dbaf2f6f5e38dc5f023023db42e8baf))
* better reactive layout for small screen sizes ([56d841a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/56d841a3358df55b59b310247a4b862827ca116c))
* change cache path ([30b2e98](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/30b2e980c0c6d13e8b66de99ee7f811110999360))
* change responsive height of image ([e25a3d0](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e25a3d0189941cb640c18d423d2b168975a7fd38))
* change selected blogs to switch to card form on small screens ([44bd1e4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/44bd1e48100dbeecdeecad1c2111cfdb3fd144e7))
* consistent gaps and margins ([05d7ad6](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/05d7ad6557da8aa190396361c57e6534bf02cc2d))
* convert hero section to use randomly selected images stored in directus ([c9cb15f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c9cb15f201136c0579bf44106e70efafbda2e0a6))
* convert to bun ([1f2820e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1f2820e4b49f827018a2cc1624cc9921a0a48241))
* disable ([1573331](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1573331f8775aebff7aa9fee896bdc0dd468c16b))
* disable security feature ([04dfecc](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/04dfecc099f4e319e6a673bcb1e774bdd07bc73e))
* enable cache ([16e14f6](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/16e14f63efdfabbca6a31e66495761eb53bb755d))
* enable guarddog ([19e8080](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/19e80809c16f6d30653d1e181fffa84bf4a4ffa1))
* enable security feature ([0434480](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/04344808bdd9a22f3c8ac4c21dec16e71b398b59))
* final refactor of sections ([a74cc77](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a74cc775d027c95dd989355126d74a3bc2502ef5))
* hide cards on small screens ([e2f5bbb](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e2f5bbbe9cefd893a40cbd9f14ce819da8ab1c0e))
* ignore on docs updates ([4b58117](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4b58117454109cbc3f40df0d1edc5185ca6415f0))
* imporve theme toggle button ([a09a4ee](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a09a4ee2404a5621568e141d32929353a78e750c))
* imporvement pass over sections ([8a649b7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8a649b7647804a63013bc9a44485f36e60dfdb7f))
* improve behavior of showmore, fix alignment ([7f2a272](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7f2a27248a986a1e8921269862220d82d75f89cf))
* improve layout for single and two images ([e6d4e34](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e6d4e34a0a55260c0f2ee1d166cb6eabcf8f1f61))
* improve logos and clickability of cards on about and apps ([63cbcdf](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/63cbcdf39b1e07a6307c6ab27d75f8edd4902e5b))
* improve navbar, add opacity fade beneath, layout, and refactor ([5ac23f0](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5ac23f08a4e4519ac7179ec916fdc91abca5883a))
* install deps ([f32b75e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f32b75e31d8ac4a3e55f86812bfa0790bfaede57))
* major refactor of cards to standardize styles ([104fe35](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/104fe35ee8d6801d4cf1e6cfe4ad5bb9ff42d2a0))
* make cards fixed height ([9dfcf6f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/9dfcf6f00698b472753b96117c59a5f8e1c536ea))
* make weather fetching dynamic ([7f7f710](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7f7f710fe84eca8fbcadc9566f56942f63224d36))
* markdown support for rss ([6156012](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6156012c0068cb26ee5aad1045b7f8da04412092))
* minor tweaks ([d42ba08](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d42ba0804197e0f1813aff9178e001a4c5deded1))
* move all categories card to bottom of category section ([2fbc9a7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/2fbc9a764f6b93a088c46b88d6cbd9a0ad9a1152))
* move all posts to bottom of recent section ([940342c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/940342cc3f07a0002da4596d7f7047010faf0f96))
* move categories to directus ([93bf44f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/93bf44f89ab093563c58c5ce1f9bec530c852a87))
* move directus to local endpoint ([197ad63](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/197ad63ada2e5a2335b4e0984bbdf8ee96d07b2f))
* move improved components out of ui folder ([47a6373](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/47a637353cfe34d95558490474968e40c9d779c3))
* move post metadata to snippet component ([cc8bade](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/cc8bade886fee861f9ab7ad1d54fd5415ab2ec7b))
* move url configuration to support file ([6f1728a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6f1728a909c4b33a52a31677aeff29c9b5a83261))
* organize footer to consistency ([c6f3179](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c6f3179efba8920efed80e03eca09a3016d2ac16))
* organize layout to consistency ([8270728](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8270728e8fbf51b429617fbb6f14369791f58de5))
* organize to consistency ([21085a1](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/21085a1620687f60006cabcb9eef233768e286ea))
* organize to consistency ([62dd636](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/62dd636d4ee0b4a4fb0d4e8f10b50171aa694f15))
* organize to consistency ([0497731](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0497731c455158e09e7bd876fb8237910ce47826))
* organize to consistency ([6c2c6da](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6c2c6da91d94b04448f2b744414adeabdd6bec1c))
* organize to consistency pass on sections ([429cf94](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/429cf9402313d97feb486a91729fbf33f10160ca))
* redo how images, icons, and logos are handled ([76dfef4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/76dfef41774182ca4a3ec8ae36542c786a2a08b2))
* redo layout, smaller and with logo ([3414535](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/341453510fe707ecd2892a34e3af1eb295630d4d))
* reduce scale effect ([b8379bb](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b8379bbc38dae300e25caab2c1e77b993744cc20))
* refactor blog components ([6423ffb](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6423ffba639130cafd9d7d526588a6b707f81687))
* refactor buttons, except for theme ([342ae89](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/342ae8900af878b9ae77f82cf95eca62ad67a1d5))
* refactor how blog cards layout, add metadata, better responsiveness ([265fd4f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/265fd4f2cbe064c2d4a4f7b063b65b1ec623fa95))
* refactor pass along pages ([e52d85f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e52d85f9314fbb8b6aeb0667bcec8e475c1b2c5d))
* release 2.10.0 ([fcd3057](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fcd3057f40d1198012fba2754d95fb2109b2bcd4))
* release 2.10.1 ([2cdef1a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/2cdef1a5533da355daf4934d3e2a383ae65bfa4a))
* release 2.11.0 ([440c952](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/440c95224d9f5c6e9fdaff7e7d663ca87aa358fc))
* release 2.12.0 ([1a8473b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1a8473b96483bbac6ad26904916ecb2226e8243c))
* release 2.13.0 ([2c9486f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/2c9486f6872a1b2126661a0c5a44c1f1e68bf6c2))
* release 2.13.1 ([db2711d](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/db2711d8782977c639f031ac24213c356d05de57))
* release 2.14.0 ([0416ab7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0416ab7f9e299cbcaede6372f396a3f25bde12aa))
* release 2.14.1 ([d415dda](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d415dda6615cfc6b79e27212846e9b176a016ed9))
* release 2.15.0 ([f3b8d10](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f3b8d101064ebe4b6cf1adb17145156dbe2a209b))
* release 2.15.1 ([c5cda00](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c5cda006bb24b326e1d18a650689ba0590afd5db))
* release 2.16.0 ([c69eb58](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c69eb58a49bf99a8063b8d33118ac2a77febf9dc))
* release 2.17.0 ([d19433a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d19433ae4eedaa2fec3dcc0e839e6b08035d6f5d))
* release 2.17.1 ([cc5e975](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/cc5e975ea6adaa8acb8625de91091eb914ec67ce))
* release 2.17.2 ([469d9ba](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/469d9ba3f723c2d085dd3bda829291ef59c5a879))
* release 2.18.0 ([ddbcb33](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ddbcb338123ada672c90610ad40f9df578acbab6))
* release 2.18.1 ([62066c6](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/62066c6f3bdc7c0d9fa9cf9bf636310a60b6f045))
* release 2.19.0 ([6ddc382](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6ddc382dac0647231a60a976d351563368d0ffdc))
* release 2.19.1 ([f4676d1](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f4676d151fa288175db792288bbdb86bc044a822))
* release 2.20.0 ([2c20770](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/2c2077053bb6bff438d312c4e9df1a9764e30c90))
* release 2.20.1 ([95ea235](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/95ea235f9f4dd1bbdcb0c6b95c437c4703c77726))
* release 2.21.0 ([89fd0eb](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/89fd0eb7ce5cfc3b433c9a6ef11299976c94640c))
* release 2.22.0 ([8b07837](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8b07837c0d2ce15cf0243564dc51e863faa6cb9c))
* release 2.23.0 ([50f050c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/50f050c0b6db2affc331178b1a5e84fb74346635))
* release 2.24.0 ([ce9c9c3](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ce9c9c38574d907ea4c72f90e68d705c1f2f507f))
* release 2.25.0 ([e91ffd8](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e91ffd8686381c4e0ea39c13b4d05b3644f90799))
* release 2.3.0 ([bf73905](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/bf7390565846c3629edf4dc3a2daa00509478d15))
* release 2.3.2 ([49969e2](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/49969e27b0884b166f521e1b44d461551eebcdfd))
* release 2.4.0 ([d0ff16c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d0ff16c8dc13aaa4ca390684bea495f95914de04))
* release 2.5.0 ([880bafd](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/880bafd41ec25223c770148cb32e4b651c3997d2))
* release 2.6.0 ([3f5682f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/3f5682f80ca4ee0c857bc335d8729f7c28d4c038))
* release 2.7.0 ([00ef91b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/00ef91b644fbc96a0fc76ab7460c3619c5db76ae))
* release 2.8.0 ([a57f43e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a57f43e082fb43d438c058990bd245b62cd11bba))
* release 2.9.0 ([0f403fa](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0f403fa274566ad0e08b04d6566f2f922134e92a))
* release 3.0.0, major astro update to 6.0 ([962f354](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/962f3542089a96ffaf583c716d21ca9ccc0e26e4))
* release 3.2.0 ([ec10d45](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ec10d45fd0d73affd240eaea8b87c74c5e262bb6))
* release 3.3.0 ([8184d42](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8184d429421462d9e991129874293ed86e30a49a))
* release 3.5.0 ([6ec2734](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6ec27345c3e920be11e055e2eb370cecd4a6e651))
* release 3.6.0 ([03f74a8](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/03f74a8181c429eeb69ebdcec6bc23ad11c6bd00))
* remove emoji ([734e9ca](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/734e9cacaefad037c059decc41a7576315096a61))
* remove extra spacing ([5877086](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5877086cc3935378681035920138a708a919d374))
* remove hardcoded descriptions ([754f6a2](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/754f6a22f00a9e19cfdc5ace2632977530be8a57))
* remove hardcoded descriptions ([c7d3ca7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/c7d3ca725248cf5faf9c3f2b8c92816b892e02e9))
* remove mdx ([4203b63](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4203b638930daa3fce44de0d81c8e01bea601c01))
* remove option ([19e17ea](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/19e17ea94713b017f392eab90a982c29debf2eae))
* remove partytown int ([b55c3a0](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b55c3a0e3151614cd400194922f1ac506202377d))
* remove partytown int ([e63abf0](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e63abf03ef1d8dbc2f81fade07bd7058bd8777dd))
* remove release-please ([07fa86b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/07fa86b17cab585088e299aab081b122db386ade))
* remove security feature ([5e02443](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5e02443409996b763f8dd4bc5c4e96ed38cc9083))
* remove static robots ([4dbc5d1](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/4dbc5d12a3c5bf60e4efe4d33ab9d9c8baa62b87))
* remove text-justify from content ([a45a4d7](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/a45a4d7dd7535ea67e738b028d87d7854165b8b3))
* remove unused files ([00a86b1](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/00a86b120624f81d4f4b4cff9aa89510f7fa90eb))
* remove unused packages ([505670d](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/505670dbf81bbf4b8306520e0df0683cfaea44db))
* remove unused properties ([0a17e3b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0a17e3b8af679df1624118bf7dea95e5fd877123))
* rename button components to include button in name for consistency ([5271be5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5271be52a22d536f7b6662d4ebab98413f9e4dcd))
* reorganize blog layout ([1f3fed9](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1f3fed93a15101e26e766b34d906ddb7853b2a90))
* replace timeago with dayjs ([405fdf2](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/405fdf297cf5d57e499a600253741bfdd891cdd2))
* responsive for small screen ([5b6b6e4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/5b6b6e479f0c164ccc365587c669ea02850743a8))
* reword titles and descriptions ([68f1794](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/68f179456a6c677f5a900db984a58c6b0422ea3e))
* scale logos ([0fc359a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0fc359a973e0d7b2de191b76d828f89f3e6fe694))
* setup node ([113f42c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/113f42ca21d2a917b527e65d61934e34d5628b1a))
* setup node for semantic release ([bf3a7ef](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/bf3a7ef261b437e877fd7c9d1a477dfac1ee0400))
* shorten transition time ([3eae720](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/3eae720221fb5b895942589e3ac5b1cd9825b426))
* simplify layout of the features cards ([31621e4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/31621e4f7efe5f0bfe394453f24d8120ff6f2ade))
* slight optimization ([fe6604a](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fe6604a5d993c516d542a5988b78f78e123241ea))
* tweak to gradient ([20d8c73](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/20d8c7323f81a6801b7fc77b10351d3f4a24d8de))
* tweaks to background to be more pastel ([ea15224](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/ea15224eae8b3771f8d5cd5eb68809b12336d016))
* update BaseHead ([18211ad](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/18211ad4852ac0a0cb25d82309f91746f27ba0a1))
* update features ([7fafa5c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/7fafa5c4cf0d708dd750a46f207ac13c92cba0f3))
* update layout's width ([6fca640](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/6fca640fd8bca269e9295618175f62639b31053f))
* update robots.txt ([744e72e](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/744e72efc9e405ee86ab962fdfa5a8a99a5cb162))
* update workflow to major version ([dc08830](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/dc088306ceee7fc8ddbe0279e836511541350a90))
* use different workflow for gitea ([1577ee4](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/1577ee4c2791cb40d2af4b891e37c6c3f4db459a))
* use hardened image ([d464f0f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/d464f0fe43417e0965158ef5a99d3fb912fe0382))
* use latest alpine ([e476efb](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e476efb96b14b5bdd1a10e31a676e55f4222ffab))
* use many to one relationship for categories in directus ([e7c660c](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/e7c660c142010fd45d8fcf4027aad9f191ea394e))
* use mask to blend content to background ([0c63c6b](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/0c63c6bef4472dc078323c937ca516d42ff0b91e))
* use masonary style layout ([8a7b6b9](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8a7b6b97b79a1eafc525bd25e0132af0d36a551b))
* use metadata snippet for blog cards ([18c2b54](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/18c2b54f658e029f99e608fdfe5eb15d61fbe04a))
* use slate for accent ([8c5488f](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/8c5488fad58710074669d1ef7618110dd724447d))
### Reverts
* release 2.2.2 ([f34f4b2](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/f34f4b25324c2effae642ae96a8a88aed0028435))
* release 2.2.3 ([b3bb769](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/b3bb769c477fbc5b07256a8e16b376672633228b))
* release 2.2.4 ([fde3973](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/fde397386ce5eacc347812c8a1c6620ef387dd08))
* release 2.2.5 ([00b63a5](https://gitea.alexlebens.dev/alexlebens/site-profile/commit/00b63a5bea3969b5c587b330a4125e876093dcd8))

View File

@@ -20,11 +20,14 @@ WORKDIR /app
COPY --from=prod-deps /app/node_modules /app/node_modules
COPY --from=build /app/dist /app/dist
LABEL version="3.1.0"
LABEL description="Astro based personal website"
ARG APP_VERSION=latest
ARG APP_VERSION
ENV HOST=0.0.0.0
ENV PORT=4321
LABEL version=$APP_VERSION
LABEL description="Astro based personal website"
EXPOSE $PORT
CMD ["bun", "run", "./dist/server/entry.mjs"]

View File

@@ -1,7 +1,6 @@
import { defineConfig } from 'astro/config';
import node from '@astrojs/node';
import partytown from '@astrojs/partytown';
import react from '@astrojs/react';
import sitemap from '@astrojs/sitemap';
@@ -14,6 +13,8 @@ import { getSiteURL } from './src/support/url';
export default defineConfig({
site: getSiteURL(),
security: { csp: true },
image: {
remotePatterns: [
{ protocol: 'https', hostname: '*.alexlebens.net' },
@@ -28,7 +29,6 @@ export default defineConfig({
prefetch: true,
integrations: [
partytown(),
react(),
sitemap(),
icon({

1142
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "site-profile",
"type": "module",
"version": "3.0.0",
"version": "3.7.0",
"homepage": "https://www.alexlebens.dev",
"bugs": {
"url": "https://gitea.alexlebens.dev/alexlebens/site-profile/issues",
@@ -27,57 +27,63 @@
"lint:fix": "eslint --fix \"src/**/*.{js,ts,jsx,tsx,astro}\""
},
"dependencies": {
"@astrojs/check": "0.9.7",
"@astrojs/node": "10.0.0",
"@astrojs/partytown": "2.1.5",
"@astrojs/react": "5.0.0",
"@astrojs/rss": "4.0.17",
"@astrojs/sitemap": "3.7.1",
"@directus/sdk": "21.2.0",
"@giscus/react": "3.1.0",
"@iconify-json/mdi": "1.2.3",
"@iconify-json/pajamas": "1.2.15",
"@iconify-json/simple-icons": "1.2.73",
"@playform/compress": "0.2.1",
"@swup/astro": "1.8.0",
"@tailwindcss/postcss": "4.2.1",
"@tailwindcss/vite": "4.2.1",
"@types/react": "19.2.14",
"@types/unist": "3.0.3",
"astro": "6.0.2",
"astro-icon": "1.1.5",
"markdown-it": "14.1.1",
"marked": "17.0.4",
"marked-shiki": "1.2.1",
"mdast-util-to-string": "4.0.0",
"photoswipe": "5.4.4",
"preline": "4.1.2",
"react": "19.2.4",
"react-dom": "19.2.4",
"reading-time": "1.5.0",
"sharp": "0.34.5",
"sharp-ico": "0.1.5",
"shiki": "4.0.2",
"tailwindcss": "4.2.1",
"ultrahtml": "1.6.0"
"@astrojs/check": "^0.9.7",
"@astrojs/node": "^10.0.1",
"@astrojs/react": "^5.0.0",
"@astrojs/rss": "^4.0.17",
"@astrojs/sitemap": "^3.7.1",
"@directus/sdk": "^21.2.0",
"@giscus/react": "^3.1.0",
"@iconify-json/mdi": "^1.2.3",
"@iconify-json/pajamas": "^1.2.15",
"@iconify-json/simple-icons": "^1.2.73",
"@playform/compress": "^0.2.1",
"@swup/astro": "^1.8.0",
"@tailwindcss/postcss": "^4.2.1",
"@tailwindcss/vite": "^4.2.1",
"@types/react": "^19.2.14",
"@types/unist": "^3.0.3",
"astro": "^6.0.4",
"astro-icon": "^1.1.5",
"dayjs": "^1.11.20",
"markdown-it": "^14.1.1",
"marked": "^17.0.4",
"marked-shiki": "^1.2.1",
"mdast-util-to-string": "^4.0.0",
"photoswipe": "^5.4.4",
"preline": "^4.1.2",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"reading-time": "^1.5.0",
"sharp": "^0.34.5",
"sharp-ico": "^0.1.5",
"shiki": "^4.0.2",
"tailwindcss": "^4.2.1",
"ultrahtml": "^1.6.0"
},
"devDependencies": {
"@eslint-react/eslint-plugin": "2.13.0",
"@tailwindcss/forms": "0.5.11",
"@tailwindcss/typography": "0.5.19",
"@types/markdown-it": "14.1.2",
"eslint": "10.0.3",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-astro": "1.6.0",
"eslint-plugin-format": "2.0.1",
"eslint-plugin-react": "7.37.5",
"eslint-plugin-react-hooks": "7.0.1",
"eslint-plugin-react-refresh": "0.5.2",
"prettier": "3.8.1",
"prettier-plugin-astro": "0.14.1",
"prettier-plugin-tailwindcss": "0.7.2",
"timeago.js": "4.0.2",
"typescript": "5.9.3",
"typescript-eslint": "8.57.0"
"@eslint-react/eslint-plugin": "^2.13.0",
"@saithodev/semantic-release-gitea": "^2.1.0",
"@semantic-release/changelog": "^6.0.3",
"@semantic-release/commit-analyzer": "^13.0.1",
"@semantic-release/git": "^10.0.1",
"@semantic-release/release-notes-generator": "^14.1.0",
"@tailwindcss/forms": "^0.5.11",
"@tailwindcss/typography": "^0.5.19",
"@types/markdown-it": "^14.1.2",
"eslint": "^10.0.3",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-astro": "^1.6.0",
"eslint-plugin-format": "^2.0.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.5.2",
"prettier": "^3.8.1",
"prettier-plugin-astro": "^0.14.1",
"prettier-plugin-tailwindcss": "^0.7.2",
"semantic-release": "^25.0.3",
"semantic-release-export-data": "^1.2.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.57.0"
}
}

View File

@@ -1,4 +0,0 @@
User-agent: *
Allow: /
Sitemap: https://www.alexlebens.dev/sitemap-index.xml

View File

@@ -55,7 +55,7 @@ const { slug, title, description, logoLight, logoDark, count, publishDate } = As
</svg>
{count}
</span>
<span class="inline-flex items-center">
<div class="inline-flex items-center">
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
@@ -68,8 +68,10 @@ const { slug, title, description, logoLight, logoDark, count, publishDate } = As
<circle cx="12" cy="12" r="10"></circle>
<polyline points="12 6 12 12 16 14"></polyline>
</svg>
{publishDate}
</span>
<span>
{publishDate}
</span>
</div>
</div>
</div>
</div>

View File

@@ -10,7 +10,7 @@ const { dayName, label, icon, temp } = Astro.props;
---
<div class="smooth-reveal-2 group flex flex-col">
<div class="card-base w-40">
<div class="card-base w-32 sm:w-40">
<div class="p-5 text-center">
<span class="card-text-description block font-bold text-xs uppercase tracking-widest">
{dayName}

View File

@@ -6,7 +6,7 @@ import type { Post } from '@lib/directusTypes';
import CategoryCard from '@components/cards/CategoryCard.astro';
import LargeCategoryCard from '@components/cards/LargeCategoryCard.astro';
import directus from '@lib/directus';
import { timeago } from '@support/time';
import { formatFromNow } from '@support/time';
const global = await directus.request(readSingleton('site_global'));
@@ -93,7 +93,7 @@ const categories = (await directus.request(readItems('categories')))
logoLight={category.logoLight}
logoDark={category.logoDark}
count={postMap.get(category.slug)?.length ?? 0}
publishDate={timeago(postMap.get(category.slug)?.[0]?.published_date)}
publishDate={formatFromNow(postMap.get(category.slug)?.[0]?.published_date)}
/>
</div>
);
@@ -106,7 +106,7 @@ const categories = (await directus.request(readItems('categories')))
logoLight={global.all_logoLight}
logoDark={global.all_logoDark}
count={posts.length}
publishDate={timeago(posts[0]?.published_date)}
publishDate={formatFromNow(posts[0]?.published_date)}
/>
</div>
</div>

View File

@@ -1,34 +1,13 @@
import { format, register } from 'timeago.js';
import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
const TimeAgoConfiguration: string[][] = [
['today', 'today'],
['%s seconds ago', 'in %s seconds'],
['1 minute ago', 'in 1 minute'],
['%s minutes ago', 'in %s minutes'],
['1 hour ago', 'in 1 hour'],
['%s hours ago', 'in %s hours'],
['1 day ago', 'in 1 day'],
['%s days ago', 'in %s days'],
['1 week ago', 'in 1 week'],
['%s weeks ago', 'in %s weeks'],
['1 month ago', 'in 1 month'],
['%s months ago', 'in %s months'],
['1 year ago', 'in 1 year'],
['%s years ago', 'in %s years'],
];
dayjs.extend(relativeTime);
function timeago(date?: Date): string {
function formatFromNow(date: Date | null): string {
if (!date) {
return 'today';
return 'none';
}
const localeFunc = (number: number, index: number, _?: number): [string, string] => {
return TimeAgoConfiguration[index] as [string, string];
};
register('timeago', localeFunc);
return format(date, 'timeago');
return dayjs(date).fromNow()
}
function formatDate(date: Date): string {
@@ -46,4 +25,4 @@ function formatShortDate(date: Date): string {
})
}
export { formatDate, formatShortDate, timeago };
export { formatFromNow, formatDate, formatShortDate, };