Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,9 @@ DECISIONS.md
TODO.md
DONE.md

# ---- Interne Abnahme-/Reviewberichte (lokale Pfade, Hostnamen, Reviewernamen) ----
_codex/

# ---- Developer-Backups (PWA-/Companion-Templates) ----
web_companion/_pwa_tpl_*/

Expand All @@ -144,3 +147,6 @@ _archive/
# PyInstaller-Ausgabe im Store-Paket (114 MB Qt-/Python-Laufzeit, wird gebaut, nicht versioniert)
store_package/*/_internal/
store_package/*/*.exe

# MSIX-Staging von _STORE/msstore_build_msix.ps1
_WARTUNG/
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.1.0/).

## [Unreleased]

## [1.0.5] - 2026-09-27

### Behoben
- `.md`-Dateien zeigten im Explorer und auf dem Desktop eine braune Platte mit kleinem Logo statt des App-Symbols (T-20260927-699609650). Ursache (gemessen): Das Dateityp-Symbol ist `CleanMarkdown.exe,0`, also das in die EXE eingebackene Icon. Die ausgelieferte 1.0.3-EXE trug noch das vor PR #5 fehlerhafte Plattendesign (Abweichung 0,35 zur Store-Kachel). Die 1.0.4-Korrektur lag nur im Quellbaum und wurde nie ausgeliefert; 1.0.5 ersetzt sie.
- Das Store-Paket registrierte trotz `file_types` in `store_package.json` keinen `.md`-Handler: Der gemeinsame MSIX-Builder erzeugte sein Manifest selbst und ließ die Dateityp-Zuordnung weg. Er übernimmt sie jetzt (mit `uap:Logo`) und baut `resources.pri`.
- Neue `Square44x44Logo.targetsize-{16…256}`-Varianten inklusive `altform-unplated`/`altform-lightunplated` (erzeugt mit `scripts/gen_targetsize_icons.py` aus der Store-Kachel). Ohne sie zeichnet Windows Dateityp- und Taskleistensymbole skaliert auf eine Platte.
- Das Icon-Gate prüft jetzt auch das gebaute MSIX (`--package`): Manifest-Version, Dateityp-Zuordnung, `resources.pri`, alle targetsize/unplated-Varianten und das Icon jeder EXE im Paket.

## [1.0.4] - 2026-09-26

### Behoben
Expand Down
8 changes: 4 additions & 4 deletions PORTIERUNGSPLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ die Zielsystem-Architektur und den Austauschvertrag für **CleanMarkdown**.

| Plattform | Technologie | Priorität | Status | Kanonischer Pfad / Artefakt |
|---|---|---|---|---|
| **Windows Desktop** | Python 3.12, PySide6 (Qt6) | P0 (Kanonisch) | Aktiv (v1.0.4) | `main.py`, `build_exe.bat` |
| **Windows Desktop** | Python 3.12, PySide6 (Qt6) | P0 (Kanonisch) | Aktiv (v1.0.5) | `main.py`, `build_exe.bat` |
| **Windows Store (MSIX)** | Desktop-Bridge, AppxManifest, WACK | P0 (Release-Ready) | Bereit | `store_package/CleanMarkdown/`, `scripts/store_assets.py` |
| **Mobile Companion (Android/iOS)** | Flutter 3.x, Dart | P1 (Vollständig) | Getestet (37/37) | `flutter_port/` |
| **Web Companion & PWA** | Statisches HTML5 / WebAssembly | P2 (Vollständig) | Bereit (v1.0.4) | `web_companion/` |
| **Web Companion & PWA** | Statisches HTML5 / WebAssembly | P2 (Vollständig) | Bereit (v1.0.5) | `web_companion/` |
| **macOS & Linux Desktop** | PySide6 Source-Execution | P3 (Wartung) | Kompatibel | Source-Start via Python |

---
Expand Down Expand Up @@ -40,7 +40,7 @@ die Zielsystem-Architektur und den Austauschvertrag für **CleanMarkdown**.
- **Framework:** PySide6 (Qt for Python).
- **Philosophie:** Sofort einsatzbereit, reine Einzelfenster-Bedienung ohne überflüssige Menühierarchien.
- **Datenhaltung:** Einstellungen ausschließlich lokal in `%APPDATA%\CleanMarkdown\settings.json`.
- **Packaging:** PyInstaller Einzelfile (`CleanMarkdown-1.0.4-win64.exe`) und MSIX-Package für den Microsoft Store.
- **Packaging:** PyInstaller Einzelfile (`CleanMarkdown-1.0.5-win64.exe`) und MSIX-Package für den Microsoft Store.

### 2.2 Mobile-Linie (`flutter_port/`)
- **Framework:** Flutter (Android & iOS).
Expand Down Expand Up @@ -97,7 +97,7 @@ vollständig offline über JSON-Dateien nach der Spezifikation `cleanmarkdown-se
- **Package-ID / Identity Name:** `Geiger.CleanMarkdown`
- **Publisher:** `CN=52596601-BAB4-4F3F-B182-E8F3F273B202`
- **Publisher Display:** `Geiger`
- **Version:** `1.0.4.0`
- **Version:** `1.0.5.0`
- **Restricted Capabilities:** `runFullTrust`
- **File Type Associations:** `.md`, `.markdown`, `.mdown`, `.mkd`

Expand Down
27 changes: 26 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
[![Zero-Egress](https://img.shields.io/badge/Privacy-100%25%20Offline%20%7C%20Zero--Egress-success.svg)](SECURITY.md)
[![Security: Local-First](https://img.shields.io/badge/Security-Local--First%20%7C%20Non--Elevation-blueviolet.svg)](SECURITY.md)
[![Tests: 145 passed](https://img.shields.io/badge/Tests-145%20passed-brightgreen.svg)](tests)
[![Version: 1.0.4](https://img.shields.io/badge/Version-1.0.4-teal.svg)](CHANGELOG.md)
[![Version: 1.0.5](https://img.shields.io/badge/Version-1.0.5-teal.svg)](CHANGELOG.md)
[![LLM-Ready: llms.txt](https://img.shields.io/badge/LLM--Ready-llms.txt-orange.svg)](llms.txt)

> [!NOTE]
Expand Down Expand Up @@ -186,6 +186,31 @@ Or start directly on Windows:
start.bat
```

### Local install vs. Store install — don't run both

`install_local.ps1` registers CleanMarkdown as a local `.md` handler (its own
`CleanMarkdown.mdfile` ProgID, `%LOCALAPPDATA%\Programs\CleanMarkdown`, a
Start Menu shortcut). Installing CleanMarkdown from the Microsoft Store on
top of that **does not replace the local file association** — what matters
is whichever ProgID is currently chosen in `UserChoice`, regardless of which
copy was updated most recently. Leaving both installed causes `.md` files to
keep showing the old local EXE's icon even after the Store package has been
updated.

**Recommendation:** use only one install method at a time, in this order:

1. Install/update the Store version first — its manifest **must** already
declare a `.md` file-type association; `uninstall_local.ps1` checks this
and aborts otherwise (e.g. for 1.0.3, which had none).
2. Preview: `.\uninstall_local.ps1 -WhatIf` (no changes).
3. Backed-up removal: `.\uninstall_local.ps1` (asks for confirmation before
changing anything, backs up the affected registry keys via `reg export`,
then removes only what `install_local.ps1` itself created — it **only
removes the old association, it does not set a new one**).
4. Windows Settings → Apps → Default apps → ".md" → set CleanMarkdown
(Store) as the default manually.
5. Verify the result (the `.md` icon in Explorer/Desktop).

---

## Usage & Keyboard Shortcuts
Expand Down
29 changes: 28 additions & 1 deletion README_DE.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Deutsch · **[English](README.md)**
[![Zero-Egress](https://img.shields.io/badge/Datenschutz-100%25%20Offline%20%7C%20Zero--Egress-success.svg)](SECURITY.md)
[![Sicherheit: Local-First](https://img.shields.io/badge/Sicherheit-Local--First%20%7C%20Non--Elevation-blueviolet.svg)](SECURITY.md)
[![Tests: 145 passed](https://img.shields.io/badge/Tests-145%20passed-brightgreen.svg)](tests)
[![Version: 1.0.4](https://img.shields.io/badge/Version-1.0.4-teal.svg)](CHANGELOG.md)
[![Version: 1.0.5](https://img.shields.io/badge/Version-1.0.5-teal.svg)](CHANGELOG.md)
[![LLM-Ready: llms.txt](https://img.shields.io/badge/LLM--Ready-llms.txt-orange.svg)](llms.txt)

> [!NOTE]
Expand Down Expand Up @@ -186,6 +186,33 @@ Oder direkt unter Windows starten:
start.bat
```

### Lokale Installation vs. Store-Installation — nicht parallel betreiben

`install_local.ps1` registriert CleanMarkdown lokal als `.md`-Handler (eigene
ProgID `CleanMarkdown.mdfile`, `%LOCALAPPDATA%\Programs\CleanMarkdown`,
Startmenü-Verknüpfung). Wird CleanMarkdown zusätzlich aus dem Microsoft Store
installiert, **ersetzt das Store-Paket die lokale Dateizuordnung nicht
automatisch** — entscheidend ist die aktuell in `UserChoice` gewählte
Zuordnung, unabhängig davon, welche Version zuletzt aktualisiert wurde. Beide
parallel installiert zu lassen führt dazu, dass `.md`-Dateien weiterhin das
Icon der alten lokalen EXE zeigen, selbst nachdem das Store-Paket
aktualisiert wurde.

**Empfehlung:** nur eine der beiden Installationsarten verwenden, in dieser
Reihenfolge:

1. Passende Store-Version installieren/aktualisieren — **muss** im Manifest
bereits eine `.md`-Dateityp-Zuordnung deklarieren; `uninstall_local.ps1`
prüft das und bricht sonst ab (z. B. bei 1.0.3, die keine hatte).
2. Vorschau: `.\uninstall_local.ps1 -WhatIf` (keine Änderung).
3. Gesicherter Rückbau: `.\uninstall_local.ps1` (fragt vor jeder Änderung
nach, sichert die betroffenen Registry-Zweige per `reg export` und
entfernt anschließend nur das, was `install_local.ps1` selbst angelegt
hat — er **entfernt nur die alte Zuordnung, er setzt keine neue**).
4. Windows-Einstellungen → Apps → Standard-Apps → „.md" → CleanMarkdown
(Store) manuell als Standard wählen.
5. Ergebnis prüfen (`.md`-Icon im Explorer/Desktop).

---

## Verwendung & Tastenkombinationen
Expand Down
6 changes: 5 additions & 1 deletion STORE_ISSUES.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,15 @@ Eingereicht: 2026-08-23 | Submission-ID `1152921505701720944` | Status `Certific

| # | Severity | Beschreibung | Datei:Zeile | Gefunden | Status |
|---|----------|-------------|-------------|----------|--------|
| 1 | P1 | Store-Paket registriert keinen `.md`-Handler: `AppxManifest.xml` deklarierte weder `uap:FileTypeAssociation` noch `uap3:AppExecutionAlias`. Nach Store-Installation existiert keine Dateizuordnung; die App erscheint nicht im Dialog „Öffnen mit". Betrifft alle Store-Kunden. | `store_package/CleanMarkdown/AppxManifest.xml` | 2026-08-23 | GEFIXT (Store, in Zertifizierung) |
| 1 | P1 | Store-Paket registriert keinen `.md`-Handler: `AppxManifest.xml` deklarierte weder `uap:FileTypeAssociation` noch `uap3:AppExecutionAlias`. Nach Store-Installation existiert keine Dateizuordnung; die App erscheint nicht im Dialog „Öffnen mit". Betrifft alle Store-Kunden. | `store_package/CleanMarkdown/AppxManifest.xml` | 2026-08-23 | WIEDER OFFEN in 1.0.3 (gemessen 2026-09-27: installiertes 1.0.3-Manifest ohne `FileTypeAssociation`, weil `_STORE/msstore_build_msix.ps1` sein eigenes Manifest erzeugte) — GEFIXT (GitHub, 1.0.5, T-20260927-699609650) |
| 2 | P2 | Store-Paket enthielt eine PyInstaller-onefile-EXE, die bei jedem Start ins Temp-Verzeichnis entpackt (Startzeit ~10 s). | `build_exe.bat` / Paketaufbau | 2026-08-23 | GEFIXT (GitHub) |
| 3 | P2 | `build_exe.bat` brach jeden Build ab: ungeschützte Klammern in der `echo`-Zeile des `else`-Zweigs zerreissen den `if`-Block beim Einlesen durch `cmd`. Regression aus `914f6e0`. | `build_exe.bat:64` | 2026-08-23 | GEFIXT (GitHub) |
| 4 | P2 | onefile-Release-EXE (`releases/v1.0.1/CleanMarkdown-1.0.1-win64.exe`) startet nicht zuverlässig (Prozess beendet sich nach ~30 s). Nicht ausgeliefert — das Store-Paket nutzt den geprüften onedir-Build. | `releases/v1.0.1/` | 2026-08-23 | OFFEN |
| 5 | P3 | Store-Paket enthält `setuptools` als Ballast; der Exclude-Scanner lieferte eine leere Ausschlussliste (2 Byte). | `_tools/build_exclude_scanner.py` (Aufruf) | 2026-08-23 | OFFEN |
| 6 | P1 | `.md`-Dateisymbole (Desktop/Explorer) als braune Platte mit kleinem Logo: Das Symbol ist `CleanMarkdown.exe,0`; die 1.0.3-EXE trägt das fehlerhafte Plattendesign (Abweichung 0,35 zur Kachel). Zusätzlich fehlten im MSIX `resources.pri` und alle targetsize/unplated-Varianten. | EXE-Icon-Ressource, `store_assets/`, `_STORE/msstore_build_msix.ps1` | 2026-09-27 | GEFIXT (GitHub, 1.0.5, T-20260927-699609650) |
| 7 | P1 | Nutzersymptom aus #6 blieb trotz 1.0.5 bestehen: `.md` -> UserChoice `CleanMarkdown.mdfile` (aus `install_local.ps1`), `DefaultIcon` zeigt auf die LOKALE EXE unter `%LOCALAPPDATA%\Programs\CleanMarkdown` (installiert per `install_local.ps1`, unabhängig von der Store-Version). Das MSIX ersetzt die lokale Dateizuordnung nicht automatisch — beide Installationsarten dürfen nicht parallel bestehen. | `install_local.ps1`, Registry `HKCU\Software\Classes\CleanMarkdown.mdfile` | 2026-09-27 | TEILWEISE UMGESETZT (GitHub): `uninstall_local.ps1` als Migrations-Gegenstück. 2. astra-Abnahme fand 3 Bugs darin (Löschung riss fremde Explorer-Geschwisterzweige mit, fehlgeschlagene Registry-Backups stoppten die Löschung nicht, jede installierte Store-Version wurde akzeptiert auch ohne `.md`-Handler) — alle drei behoben und per gemocktem Testlauf verifiziert. 3. Abnahme (Fable) fand einen 4. Bug (`Remove-ItemProperty "(Default)"` schlägt gegen den Registry-Provider fehl, `.md` zeigte weiter auf die geloeschte ProgID) — behoben ueber die .NET-Registry-API, in einem Wegwerf-Schluessel verifiziert. Reale Ausfuehrung braucht weiterhin Nutzer-Freigabe (Registry-Änderung). |
| 8 | P1 | Vier manipulierte MSIX-Pakete (falsche Pixelgröße, opake unplated-Assets, fehlende Manifest-EXE, falsche PRI-Identität) kamen mit Exit 0 durch `_STORE/icon_consistency_check.py --package`; der Build erzwang `--package` zudem nicht. | `_STORE/icon_consistency_check.py`, `_STORE/msstore_build_msix.ps1` | 2026-09-27 | TEILWEISE UMGESETZT: Gate-Härtung bestand die 1. Abnahme (je 1 Negativtest, `_STORE/test_icon_consistency_check.py`), `msstore_build_msix.ps1` erzwingt `--package` real. 2. astra-Abnahme (2026-09-27) fand dieselbe Lücke weiter offen für 9 von 14 real ausgelieferten Icon-Größen (nur 5 Pflichtgrößen geprüft) und reproduzierte das live am gebauten MSIX — behoben: Größen werden jetzt aus dem Paket/`resources.pri` selbst erkannt statt aus einer Festliste, Negativtest ergänzt. Alle 7 von astra reproduzierten Manipulationen (inkl. zweiter Anwendung, korrupte Manifest-EXE, Ein-Pixel-Transparenz-Umgehung) erneut geprüft: alle korrekt abgelehnt. 3. Abnahme aussehend. |
| 9 | P1 | Gebautes 1.0.5-MSIX enthielt den onedir-Laufzeitordner (`_internal`, Python-DLLs, PySide6) nicht — die App wäre nach Installation nicht gestartet, obwohl das Icon-Gate „passed" meldete. Von der 2. astra-Abnahme gefunden. | `_STORE/msstore_build_msix.ps1` | 2026-09-27 | GEFIXT: Kopierschritt erkennt jetzt das onedir-Layout (Geschwisterordner `_internal` neben der EXE) und übernimmt den kompletten Ordner, analog zu `store_packager.py::copy_app_files`. Neu gebautes MSIX verifiziert: 234 `_internal`-Einträge inkl. `python312.dll`, Icon-Gate weiterhin grün, Paketgröße 4,6 MB -> 50,3 MB. |

## Geplanter naechster Release: 1.0.1.0
Trigger: **1x P1 mit breiter Auswirkung** (WINDOWS_STORE_BUGFIX_POLICY §3.2) — die
Expand Down
6 changes: 3 additions & 3 deletions WINDOWS_STORE_PREP.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Windows Store Vorbereitung & Release-Readiness — CleanMarkdown

**Stand:** 2026-09-12
**Version:** 1.0.4.0
**Version:** 1.0.5.0
**Package-ID:** `Geiger.CleanMarkdown`
**Publisher:** `CN=52596601-BAB4-4F3F-B182-E8F3F273B202` (Geiger)
**Status:** Release-Ready (Preflight 21/21 Kriterien erfüllt, 0 Findings)
Expand All @@ -12,7 +12,7 @@

| Artefakt | Status | Anmerkung |
|---|---|---|
| `store_package.json` | OK | v1.0.4.0, Identity `Geiger.CleanMarkdown`, Canonical Publisher CN, Kategorie Productivity, DE+EN |
| `store_package.json` | OK | v1.0.5.0, Identity `Geiger.CleanMarkdown`, Canonical Publisher CN, Kategorie Productivity, DE+EN |
| `STORE_LISTING.md` | OK | DE+EN Listing-Texte vollständig, Partner Center Richtlinie 10.1.3 konform (exakt 7 Keywords <= 30 Zeichen, keine Markennamen) |
| `PRIVACY_POLICY.md` | OK | DE+EN, Offline-Invariante garantiert, kanonischer SettingsStore `%APPDATA%\CleanMarkdown\settings.json` |
| `SUPPORT.md` | OK | DE+EN, Support-URL, FAQ, Settings-Pfad |
Expand Down Expand Up @@ -40,7 +40,7 @@

- **Identity Name:** `Geiger.CleanMarkdown`
- **Publisher:** `CN=52596601-BAB4-4F3F-B182-E8F3F273B202`
- **Version:** `1.0.4.0`
- **Version:** `1.0.5.0`
- **Capabilities:** `<rescap:Capability Name="runFullTrust" />` (erforderlich für Dateisystemzugriff via Dialoge)
- **File Type Associations:** `.md`, `.markdown`, `.mdown`, `.mkd`
- **Visual Elements:** Kachel-Icons in allen Standardauflösungen und Splash-Screen integriert.
Expand Down
2 changes: 1 addition & 1 deletion build_exe.bat
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ set "PROJECT_ROOT=%CD%"
if "%SOFTWARE_ROOT%"=="" set "SOFTWARE_ROOT=%USERPROFILE%\OneDrive\.TOPICS\.SOFTWARE"
set "SCANNER=%SOFTWARE_ROOT%\_tools\build_exclude_scanner.py"
set "ICON_PATH=%PROJECT_ROOT%\assets\cleanmarkdown.ico"
set "VERSION=1.0.4"
set "VERSION=1.0.5"
set "APP_NAME=CleanMarkdown"
set "BUILD_ROOT=C:\_Local_DEV\codex_build\cleanmarkdown"
set "VENV_DIR=%BUILD_ROOT%\.venv"
Expand Down
2 changes: 1 addition & 1 deletion main.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@


APP_NAME = "CleanMarkdown"
APP_VERSION = "1.0.4"
APP_VERSION = "1.0.5"
ICON_RELATIVE_PATH = ("assets", "cleanmarkdown.ico")
SESSION_VERSION = "cleanmarkdown-session-v1"

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "cleanmarkdown"
version = "1.0.4"
version = "1.0.5"
description = "Fast local Markdown viewer and editor with clean reading mode, raw editor, PDF export, and DE/EN UI."
readme = "README.md"
authors = [
Expand Down
53 changes: 53 additions & 0 deletions scripts/gen_targetsize_icons.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
"""Erzeugt die targetsize-/unplated-Varianten des Square44x44Logo für das MSIX.

Windows zieht Taskleisten-, Startmenü-Listen- und Dateityp-Symbole
(`uap:FileTypeAssociation`) aus `Square44x44Logo.targetsize-XX[_altform-*].png`
über `resources.pri`. Fehlen sie, skaliert Windows die 44-px-Kachel und setzt
sie auf eine Platte (T-20260927-699609650). Quelle ist bewusst die Store-Kachel
selbst, damit Kachel, EXE-Icon und Dateityp-Symbol aus einer Quelle stammen.

python scripts/gen_targetsize_icons.py
"""

from __future__ import annotations

from pathlib import Path

from PIL import Image

STORE_ASSETS = Path(__file__).resolve().parents[1] / "store_assets"
SOURCE = STORE_ASSETS / "Square310x310Logo.png"
TARGET_SIZES = (16, 20, 24, 30, 32, 36, 40, 48, 60, 64, 72, 80, 96, 256)
ALTFORMS = ("", "_altform-unplated", "_altform-lightunplated")

# A properly-fitting unplated/lightunplated asset AVOIDS the extra,
# unwanted system plate Windows would otherwise draw around a plated icon
# in these contexts (corrected wording -- astra-Abnahme, T-20260927-699609650:
# the previous comment had this backwards). These variants must therefore
# not be an opaque copy of the plated tile (the icon-consistency gate's
# --package check rejects a build that ships one). A full inset margin
# (Microsoft's usual unplated guidance) pushes small sizes' design-
# similarity diff over tests/test_assets_and_icons.py's calibrated
# threshold (measured: 0.22 at 16px with a 12% margin, threshold 0.20) --
# a small transparent corner is the minimum treatment that is genuinely
# non-opaque while staying well inside that calibration.
def _unplated(master: Image.Image, size: int) -> Image.Image:
img = master.resize((size, size), Image.LANCZOS)
corner = max(1, size // 8)
alpha = img.getchannel("A").copy()
alpha.paste(Image.new("L", (corner, corner), 0), (0, 0))
img.putalpha(alpha)
return img


def main() -> None:
master = Image.open(SOURCE).convert("RGBA")
for size in TARGET_SIZES:
plated = master.resize((size, size), Image.LANCZOS)
for altform in ALTFORMS:
img = _unplated(master, size) if altform else plated
img.save(STORE_ASSETS / f"Square44x44Logo.targetsize-{size}{altform}.png", optimize=True)


if __name__ == "__main__":
main()
Binary file added store_assets/Square44x44Logo.targetsize-16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-20.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-256.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-30.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-36.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-40.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-48.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added store_assets/Square44x44Logo.targetsize-60.png
Binary file added store_assets/Square44x44Logo.targetsize-64.png
Binary file added store_assets/Square44x44Logo.targetsize-72.png
Binary file added store_assets/Square44x44Logo.targetsize-80.png
Binary file added store_assets/Square44x44Logo.targetsize-96.png
2 changes: 1 addition & 1 deletion store_package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"publisher_id": "CN=52596601-BAB4-4F3F-B182-E8F3F273B202",
"publisher_display": "Geiger",
"publisher_name": "Lukas Geiger",
"version": "1.0.4.0",
"version": "1.0.5.0",
"description": "Lokaler Markdown-Viewer und -Editor mit Lesemodus, Raw-Editor, PDF-Export, Mathe-Vorschau und DE/EN-Oberfläche.",
"executable": "CleanMarkdown.exe",
"capabilities": "runFullTrust",
Expand Down
Loading
Loading