Help with Dataview Plugin example FROM KI

1. Vorbereitung: Plugins installieren

Für diese Lösung benötigst du zwei kostenlose Community-Plugins in Obsidian:

  • Dataview: Dieses Plugin liest deine Mengenangaben aus und generiert daraus die gefilterte Einkaufsliste.
  • Meta Bind (Optional, aber empfohlen): Mit diesem Plugin kannst du Plus- und Minus-Buttons oder Eingabefelder direkt in deine Sortimentsliste einbauen, was besonders auf dem Smartphone im Supermarkt extrem praktisch ist.

2. Die Sortimentsliste anlegen

Erstelle eine Notiz namens Sortimentsliste. Hier listest du alle Produkte auf, die du regelmäßig kaufst, sortiert nach Kategorien oder Supermarkt-Gängen.

Nutze für jeden Artikel einen Aufzählungspunkt mit einem Inline-Feld (erkennbar am doppelten Doppelpunkt ::):

markdown

# Sortimentsliste

## Obst & Gemüse
- [ ] Äpfel (kg) | menge:: 0
- [ ] Bananen (Stück) | menge:: 2
- [ ] Tomaten (g) | menge:: 500

## Kühlregal
- [ ] Milch (Liter) | menge:: 1
- [ ] Gouda (Packung) | menge:: 0
- [ ] Butter | menge:: 0

## Vorräte
- [ ] Nudeln (500g) | menge:: 2
- [ ] Olivenöl | menge:: 0

Verwende Code mit Vorsicht.

Hinweis: Die Checkboxen (- [ ]) in der Sortimentsliste dienen hier nur der Optik oder falls du direkt dort abhaken möchtest. Wichtig für die Automatik ist der Teil menge:: 0.

3. Die Einkaufsliste automatisch generieren

Erstelle eine zweite Notiz namens Einkaufsliste. Füge dort folgenden Dataview-Codeblock ein:

markdown

# Aktuelle Einkaufsliste

```dataview
TABLE WITHOUT ID
  regexreplace(L.text, "\s*\|\s*menge::.*", "") AS "Artikel",
  L.menge AS "Menge",
  regexreplace(meta(L.section).subpath, "^.* > ", "") AS "Kategorie"
FROM "Sortimentsliste"
FLATTEN file.lists AS L
WHERE L.menge > 0
SORT meta(L.section).subpath ASC
```

Verwende Code mit Vorsicht.

Was dieser Code macht:

  • Filtert automatisch: Es werden nur Zeilen angezeigt, bei denen menge größer als 0 ist.
  • Bereinigt den Text: Der Befehl regexreplace schneidet den technischen Teil | menge:: 2 aus dem Artikelnamen heraus, sodass dort sauber „Bananen (Stück)“ steht.
  • Zeigt die Kategorie: Durch meta(L.section).subpath wird automatisch die Überschrift (z. B. „Obst & Gemüse“) aus deiner Sortimentsliste als Kategorie übernommen.

What I’m trying to do

1. Vorbereitung: Plugins installieren

Für diese Lösung benötigst du zwei kostenlose Community-Plugins in Obsidian:

  • Dataview: Dieses Plugin liest deine Mengenangaben aus und generiert daraus die gefilterte Einkaufsliste.
  • Meta Bind (Optional, aber empfohlen): Mit diesem Plugin kannst du Plus- und Minus-Buttons oder Eingabefelder direkt in deine Sortimentsliste einbauen, was besonders auf dem Smartphone im Supermarkt extrem praktisch ist.

2. Die Sortimentsliste anlegen

Erstelle eine Notiz namens Sortimentsliste. Hier listest du alle Produkte auf, die du regelmäßig kaufst, sortiert nach Kategorien oder Supermarkt-Gängen.

Nutze für jeden Artikel einen Aufzählungspunkt mit einem Inline-Feld (erkennbar am doppelten Doppelpunkt ::):

markdown

# Sortimentsliste

## Obst & Gemüse
- [ ] Äpfel (kg) | menge:: 0
- [ ] Bananen (Stück) | menge:: 2
- [ ] Tomaten (g) | menge:: 500

## Kühlregal
- [ ] Milch (Liter) | menge:: 1
- [ ] Gouda (Packung) | menge:: 0
- [ ] Butter | menge:: 0

## Vorräte
- [ ] Nudeln (500g) | menge:: 2
- [ ] Olivenöl | menge:: 0

Verwende Code mit Vorsicht.

Hinweis: Die Checkboxen (- [ ]) in der Sortimentsliste dienen hier nur der Optik oder falls du direkt dort abhaken möchtest. Wichtig für die Automatik ist der Teil menge:: 0.

3. Die Einkaufsliste automatisch generieren

Erstelle eine zweite Notiz namens Einkaufsliste. Füge dort folgenden Dataview-Codeblock ein:

markdown

# Aktuelle Einkaufsliste

```dataview
TABLE WITHOUT ID
  regexreplace(L.text, "\s*\|\s*menge::.*", "") AS "Artikel",
  L.menge AS "Menge",
  regexreplace(meta(L.section).subpath, "^.* > ", "") AS "Kategorie"
FROM "Sortimentsliste"
FLATTEN file.lists AS L
WHERE L.menge > 0
SORT meta(L.section).subpath ASC
```

Verwende Code mit Vorsicht.

Was dieser Code macht:

  • Filtert automatisch: Es werden nur Zeilen angezeigt, bei denen menge größer als 0 ist.
  • Bereinigt den Text: Der Befehl regexreplace schneidet den technischen Teil | menge:: 2 aus dem Artikelnamen heraus, sodass dort sauber „Bananen (Stück)“ steht.
  • Zeigt die Kategorie: Durch meta(L.section).subpath wird automatisch die Überschrift (z. B. „Obst & Gemüse“) aus deiner Sortimentsliste als Kategorie übernommen.

Your query looks fine. Put square brackets around the text that you want to be inline properties:

- [ ] Äpfel (kg) | [menge:: 0]
- [ ] Bananen (Stück) | [menge:: 2]

Or use parentheses if you want to hide the property key:

- [ ] Äpfel (kg) | (menge:: 0)
- [ ] Bananen (Stück) | (menge:: 2)

See if that makes your query work.

If you have a follow-up question, be sure to include an English translation for the server’s rule about language. Also, unless I missed it, you left out the part about what isn’t working and what you want help with, so I guessed.