Skip to content

Commit 9b22f9a

Browse files
merge branch v2 (release 2.0.0-beta.47)
2 parents d5ed72c + af7589e commit 9b22f9a

20 files changed

Lines changed: 258 additions & 50 deletions

File tree

CHANGELOG.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
11
# Changelog
22

3-
## [v2.0.0-beta.46](https://github.com/marcantondahmen/automad/commit/901c83116b9db168c658a93163aaca594fed7c15)
3+
## [v2.0.0-beta.47](https://github.com/marcantondahmen/automad/commit/28a5e345188828c815c1ae0472789587e18449fb)
44

5-
Mon, 6 Jul 2026 20:02:15 +0200
5+
Sun, 12 Jul 2026 11:57:58 +0200
6+
7+
### New Features
8+
9+
- show latest commit details of private repository packages ([e6b241fe0](https://github.com/marcantondahmen/automad/commit/e6b241fe094238471765e8fd7194a103597e24e3))
10+
- show relative dates ([bc3098994](https://github.com/marcantondahmen/automad/commit/bc30989944d92c752b8ac7b213ccdcfa0478bf7a))
11+
- update standard lite theme ([925f40e94](https://github.com/marcantondahmen/automad/commit/925f40e948a5efe6df38e1fc5b0b5bbd62afe27e))
12+
13+
### Bugfixes
14+
15+
- fix change event not being fired when clearing date field ([58213b762](https://github.com/marcantondahmen/automad/commit/58213b7625f99762767967077ee78b6ce7bab9b7))
16+
17+
## [v2.0.0-beta.46](https://github.com/marcantondahmen/automad/commit/d5ed72c6e462b39125b828f865b8cc235a415e7b)
18+
19+
Mon, 6 Jul 2026 20:05:06 +0200
620

721
### New Features
822

automad/lang/english.json

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -382,11 +382,11 @@
382382
"packageIsDependency": "This package is a dependency of another package and therefore cannot be removed.",
383383
"packageIsDependencyError": "The package is required by another package.",
384384
"packageRegistryFetchError": "The package registry is currently unavailable.",
385-
"packageUpdateVersionConstraint": "A new major version of this package is available. Major releases may include breaking changes and are therefore not installed automatically. To upgrade, remove the package and install it again.",
386-
"packageUpdateAllVersionConstraint": "Some packages were not updated automatically because new major versions are available: {} Major releases may include breaking changes. To upgrade these packages, remove each one and install it again.",
387385
"packageRemove": "Remove",
388386
"packageRemoving": "Removing package ...",
389387
"packageUpdate": "Update",
388+
"packageUpdateAllVersionConstraint": "Some packages were not updated automatically because new major versions are available: {} Major releases may include breaking changes. To upgrade these packages, remove each one and install it again.",
389+
"packageUpdateVersionConstraint": "A new major version of this package is available. Major releases may include breaking changes and are therefore not installed automatically. To upgrade, remove the package and install it again.",
390390
"packageUpdatedAllSuccess": "Successfully updated all packages",
391391
"packageUpdatedSuccess": "Successfully updated",
392392
"packageUpdating": "Updating package ...",
@@ -467,6 +467,7 @@
467467
"repositoryRemoveConfirm": "Do you really want to remove the repository and uninstall the related packages?",
468468
"repositoryRemovedSuccess": "The repository was removed successfully",
469469
"repositoryUpdate": "Update",
470+
"repositoryUpdateCommitError": "Error updating Git commit details",
470471
"repositoryUpdateSuccess": "The repository was updated successfully",
471472
"repositoryUpdating": "Updating repository package",
472473
"requiredField": "Required",
@@ -533,12 +534,12 @@
533534
"systemAiOpenAiSetupHelp": "Using OpenAI requires an account on their <a href='{urlPlatform}' target='_blank'>API platform page</a>, an active billing setup, and a valid API key, which can be managed <a href='{urlApiKeys}' target='_blank'>here</a>.",
534535
"systemAiProviderApiKeyModalButton": "Validate and save",
535536
"systemAiProviderApiKeyModalTitle": "API Key",
536-
"systemAiProviderText": "Configure one or more AI providers below by adding an API key and selecting the models you want to make available in the editor.",
537537
"systemAiProviderModelModalHelp": "Select the AI model that should be used for AI-assisted writing.",
538538
"systemAiProviderModelModalTitle": "AI model",
539539
"systemAiProviderRemove": "Remove configuration",
540540
"systemAiProviderRemoveConfirm": "Do you really want to remove this provider configuration and its associated API key?",
541541
"systemAiProviderSetup": "Configure provider",
542+
"systemAiProviderText": "Configure one or more AI providers below by adding an API key and selecting the models you want to make available in the editor.",
542543
"systemCache": "Cache",
543544
"systemCacheCardInfo": "Clear the cache, purge cached items or change caching settings",
544545
"systemCacheClear": "Clear cache",
@@ -659,6 +660,7 @@
659660
"textTool": "Text",
660661
"themeReadme": "Open readme file of current theme",
661662
"toBeUploaded": "to be uploaded",
663+
"today": "Today",
662664
"toggleRatioLockTitle": "Toggle aspect ratio lock",
663665
"trashClear": "Clear",
664666
"trashClearConfirm": "Do you really want to clear the trash directory?",
@@ -713,6 +715,7 @@
713715
"wizardSubtitle": "You are almost ready. Please review the following settings and confirm that they match your requirements and are configured as intended.",
714716
"wizardTitle": "Complete Your Configuration",
715717
"write": "Write",
718+
"yesterday": "Yesterday",
716719
"zoomInTitle": "Zoom in",
717720
"zoomOutTitle": "Zoom out"
718721
}

automad/src/client/admin/components/Fields/DateField.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
* See LICENSE.md for license information.
3333
*/
3434

35-
import { create, CSS, FieldTag } from '@/admin/core';
35+
import { create, CSS, FieldTag, fire } from '@/admin/core';
3636
import { BaseFieldComponent } from './BaseField';
3737

3838
/**
@@ -48,12 +48,19 @@ class DateFieldComponent extends BaseFieldComponent {
4848
const { name, id, value, placeholder } = this._data;
4949
const date = (value as string).match(/[\d-]+T\d\d:\d\d/)?.[0] ?? '';
5050

51-
create(
51+
const input = create(
5252
'input',
5353
[CSS.input],
5454
{ id, name, value: date, type: 'datetime-local', placeholder },
5555
this
5656
);
57+
58+
this.listen(input, 'keyup', () => {
59+
if (!input.value) {
60+
this.mutate(null);
61+
fire('change', this);
62+
}
63+
});
5764
}
5865
}
5966

automad/src/client/admin/components/PackageManager/RepositoryCard.ts

Lines changed: 51 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import {
3838
createFormModal,
3939
createProgressModal,
4040
CSS,
41+
dateFormat,
4142
EventName,
4243
fire,
4344
html,
@@ -88,27 +89,61 @@ export class RepositoryCardComponent extends BaseComponent {
8889
<span class="${CSS.cardIcon}">
8990
<i class="bi bi-${data.platform}"></i>
9091
</span>
91-
<div class=${CSS.cardTitle}>${data.name}</div>
9292
<a
9393
href="${data.repositoryUrl}"
94-
class="${CSS.cardBody}"
94+
class="${CSS.cardTitle}"
9595
target="_blank"
9696
>
97-
<am-icon-text
98-
${Attr.icon}="chat-left"
99-
${Attr.text}="${data.description}"
100-
title="${data.description}"
101-
></am-icon-text>
102-
<am-icon-text
103-
${Attr.icon}="box-seam"
104-
${Attr.text}="${data.repositoryUrl}"
105-
title="${data.repositoryUrl}"
106-
></am-icon-text>
107-
<am-icon-text
108-
${Attr.icon}="tag"
109-
${Attr.text}="${data.branch}"
110-
></am-icon-text>
97+
${data.name}
11198
</a>
99+
<div class="${CSS.cardBody} ${CSS.flexGapLarge}">
100+
<a
101+
href="${data.repositoryUrl}"
102+
class="${CSS.flex} ${CSS.flexColumn} ${CSS.textParagraph}"
103+
target="_blank"
104+
>
105+
<am-icon-text
106+
${Attr.icon}="chat-left"
107+
${Attr.text}="${data.description}"
108+
></am-icon-text>
109+
<am-icon-text
110+
${Attr.icon}="box-seam"
111+
${Attr.text}="${data.repositoryUrl}"
112+
></am-icon-text>
113+
<am-icon-text
114+
${Attr.icon}="tag"
115+
${Attr.text}="${data.branch}"
116+
></am-icon-text>
117+
</a>
118+
${!!data.commit
119+
? html`
120+
<div
121+
class="${CSS.flex} ${CSS.flexGap} ${CSS.flexAlignCenter}"
122+
>
123+
<a
124+
href="${data.commit?.url}"
125+
class="${CSS.badge} ${CSS.badgeMuted} ${CSS.flexGap}"
126+
target="_blank"
127+
${Attr.tooltip}="${encodeURIComponent(
128+
data.commit?.message
129+
)}"
130+
${Attr.tooltipOptions}="placement:right"
131+
>
132+
<i class="bi bi-record-circle"></i>
133+
<span class="${CSS.textMono}">
134+
${data.commit?.hash.slice(0, 8)}
135+
</span>
136+
&mdash;
137+
<span
138+
>${dateFormat(
139+
data.commit?.timestamp
140+
)}</span
141+
>
142+
</a>
143+
</div>
144+
`
145+
: ''}
146+
</div>
112147
`
113148
);
114149

automad/src/client/admin/core/date.ts

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,30 @@ import { App } from './app';
4343
export const dateFormat = (timestamp: string): string => {
4444
const lang = App.text('__lang__');
4545
const date = new Date(timestamp);
46+
const now = new Date();
47+
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
48+
const other = new Date(date.getFullYear(), date.getMonth(), date.getDate());
4649

47-
return date.toLocaleDateString(lang, {
48-
day: '2-digit',
49-
weekday: 'short',
50-
month: 'short',
51-
year: 'numeric',
50+
// Diff must be rounded in order to work with daylight saving time changes as well.
51+
const diffDays = Math.round((other.getTime() - today.getTime()) / 86400000);
52+
53+
const day =
54+
diffDays === 0
55+
? App.text('today')
56+
: diffDays === -1
57+
? App.text('yesterday')
58+
: date.toLocaleDateString(lang, {
59+
year: 'numeric',
60+
month: 'short',
61+
weekday: 'short',
62+
day: '2-digit',
63+
});
64+
65+
const time = date.toLocaleTimeString(lang, {
5266
hour: '2-digit',
5367
minute: '2-digit',
68+
hour12: false,
5469
});
70+
71+
return `${day}, ${time}`;
5572
};

automad/src/client/admin/core/tooltips.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ export const initTooltips = () => {
9797
if (content) {
9898
tooltip.show(
9999
target,
100-
create('span', [], {}, null, content),
100+
create('span', [], {}, null, decodeURIComponent(content)),
101101
options
102102
);
103103
}

automad/src/client/admin/styles/components/card.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
padding-bottom: 0.4rem;
7878
font-size: 1rem;
7979
font-weight: 560;
80+
color: hsl(var(--am-clr-text));
8081
overflow: hidden;
8182
text-overflow: ellipsis;
8283
white-space: nowrap;

automad/src/client/admin/styles/elements/badge.less

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
align-items: center;
4343
gap: 0.35em;
4444
font-size: 0.75rem;
45-
line-height: 1.15;
45+
line-height: 1.2;
4646
min-width: 2.65em;
4747
max-width: 100%;
4848
padding: 0.4em 0.85em 0.3em 0.85em;
@@ -58,6 +58,10 @@
5858
text-overflow: ellipsis;
5959
}
6060

61+
&:has(> .bi:first-child) {
62+
padding-left: 0.55em;
63+
}
64+
6165
[class*='--danger'] & {
6266
--text: var(--am-clr-background-danger);
6367
--bg: var(--am-clr-text-danger);
@@ -66,5 +70,13 @@
6670
&--muted {
6771
--text: var(--am-clr-text-muted);
6872
--bg: var(--am-clr-background-faded);
73+
74+
a& {
75+
transition: color 0.2s;
76+
}
77+
78+
a&:hover {
79+
--text: var(--am-clr-text-paragraph);
80+
}
6981
}
7082
}

automad/src/client/admin/styles/elements/tooltip.less

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,11 @@
6464

6565
&__content {
6666
padding: 0.45rem 0.75rem;
67-
max-width: 15rem;
67+
max-width: 20rem;
6868
font-size: 0.8rem;
6969
text-align: var(--align);
7070
text-wrap: balance;
71+
white-space: pre-line;
7172
font-weight: 540;
7273
line-height: 1.5;
7374
color: hsl(var(--am-clr-text-primary));

automad/src/client/admin/types/package.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ export interface Repository {
4848
description: string;
4949
repositoryUrl: string;
5050
branch: string;
51+
commit: {
52+
hash: string;
53+
message: string;
54+
timestamp: string;
55+
url: string;
56+
} | null;
5157
}
5258

5359
export interface RepositoryCreationData {

0 commit comments

Comments
 (0)