fix: mobile layout, task clicks, list tab corners, hashtags in URLs
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m25s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m25s
Mobile
- Plus button in triage did nothing: the stored action returned the
capture function instead of calling it
- Workspace: tabs share the full width; save status sits as an icon next
to the note title instead of wrapping into its own row; "Neue Notiz" /
"Neuer Ordner" only in the top menu (and +), not repeated in the list
- Outliner fields measured while hidden stayed one line high (cut-off
callout); they are measured again when their width changes
- Task dialog: scrolls in a div instead of a fieldset, height in dvh,
notes editor grows with its text, so long notes are fully reachable
Desktop
- Delete button of the selected task/shopping list sits inside the tab as
its own rounded button (matches rounded themes like Soft)
Both
- Tasks sometimes did not open: every reload after an action replaced the
list with a loading placeholder, swallowing clicks; reloads are now
silent after the first load of a list, stale responses are dropped
- Hashtags need whitespace or "(" before "#", so URL anchors are no
longer tags (server, browser); one-time cleanup of stored anchor tags
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
41b02b9564
commit
f82ab2fd32
16 files changed
+283
-47
No files matched your search
@@ -21,7 +21,31 @@ func NowISO() string {
|
||||
return time.Now().UTC().Format(time.RFC3339)
|
||||
}
|
||||
|
||||
var hashtagRegex = regexp.MustCompile(`#([a-zA-Z0-9äöüÄÖÜß_-]+)`)
|
||||
// A hashtag starts the text or follows whitespace or "(". Fragments in links (example.com/blog#ueberschrift)
|
||||
// and words like "C#" are not tags. The browser uses the same rule (lib/markdown.tsx, lib/api.ts).
|
||||
var hashtagRegex = regexp.MustCompile(`(?:^|[\s(])#([a-zA-Z0-9äöüÄÖÜß_-]+)`)
|
||||
|
||||
// legacyHashtagRegex is the rule before anchors were excluded; only used to clean up stored tags.
|
||||
var legacyHashtagRegex = regexp.MustCompile(`#([a-zA-Z0-9äöüÄÖÜß_-]+)`)
|
||||
|
||||
// StaleAnchorTags returns tags the old rule found in content that the current rule does not, i.e. tags that
|
||||
// only came from URL fragments and similar.
|
||||
func StaleAnchorTags(content string) []string {
|
||||
current := map[string]bool{}
|
||||
for _, t := range ExtractTags(content) {
|
||||
current[t] = true
|
||||
}
|
||||
var stale []string
|
||||
seen := map[string]bool{}
|
||||
for _, m := range legacyHashtagRegex.FindAllStringSubmatch(content, -1) {
|
||||
t := strings.ToLower(m[1])
|
||||
if !current[t] && !seen[t] {
|
||||
seen[t] = true
|
||||
stale = append(stale, t)
|
||||
}
|
||||
}
|
||||
return stale
|
||||
}
|
||||
|
||||
// ExtractTags extracts #hashtags from content
|
||||
func ExtractTags(content string) []string {
|
||||
@@ -78,7 +102,7 @@ func FormatGermanDateTime(isoStr string) string {
|
||||
time.May: "Mai",
|
||||
time.June: "Juni",
|
||||
time.July: "Juli",
|
||||
time.August: "Aug.",
|
||||
time.August: "Aug.",
|
||||
time.September: "Sept.",
|
||||
time.October: "Okt.",
|
||||
time.November: "Nov.",
|
||||
|
||||
Reference in new issue
Block a user