diff --git a/latest.json b/latest.json index 8543c96..8deec3c 100644 --- a/latest.json +++ b/latest.json @@ -1,11 +1,11 @@ { - "version": "0.2.6", - "notes": "Vier Zeichen im Programm waren unsichtbar. Die Phosphor-Schrift hat mehrere Stärken, geladen sind aber nur zwei — `ph` und `ph-fill`. Wer eine dritte anfordert, bekommt keinen Fehler und kein Kästchen, sondern ein Element von null Punkt Breite: nichts. Genau das stand an vier Stellen, darunter die Pfeilspitzen an mehrtägigen Terminen — das einzige Zeichen dafür, dass ein Balken über die Woche hinausläuft. Der Hinweis in 0.2.4, sie stünden am Rand, war damit falsch; jetzt stimmt er. Ebenso betroffen: das Häkchen an einem angehakten Kalender.\n\nAufgefallen ist es beim Einbau des Update-Zeichens, und zwar erst, als eine Messung im laufenden Programm eine Breite von null ergab — angesehen hatte ich die Stelle vorher auch.\n\nDie Aktualisierung meldet sich, statt sich finden zu lassen. Sie stand unter Einstellungen → Ansicht, wo niemand nachsieht — und wer nie nachsah, erfuhr nie von einer neuen Fassung.\n\nJetzt: Liegt etwas bereit, erscheint ein kleiner Punkt am Zahnrad unten links und in den Einstellungen am Fuss der Spalte der Knopf „Update verfügbar\". Gibt es nichts, steht dort auch nichts — weg statt ausgegraut. Ein Eintrag, der die meiste Zeit „Alles aktuell\" sagt, wird nach der dritten Woche nicht mehr gesehen, und dann auch nicht, wenn er einmal etwas anderes sagt.\n\nNachgesehen wird beim Start und danach stündlich. Ein Fehlschlag ist kein „nein\": Wer offline ist, bekommt keine Antwort, und dann bleibt der zuletzt bekannte Stand stehen, statt dass der Punkt verschwindet. Punkt und Knopf hängen an derselben Auskunft — zwei Abfragen wären zwei Antworten, die auseinanderlaufen können.", - "pub_date": "2026-09-03T10:27:52Z", + "version": "0.2.7", + "notes": "Anhänge lassen sich in SHUFTN bearbeiten — offline, im eingebauten Editor. Am Anhang sitzt ein Stift; er öffnet `.docx`, `.xlsx`, `.pptx` und `.pdf` in einem eigenen Fenster mit dem Euro-Office-Editor (dem AGPL-Fork von ONLYOFFICE), ganz ohne Server: Der Editor läuft in der Webansicht, die Umwandlung in sein Format und zurück macht x2t als WebAssembly auf dem Rechner. „Speichern\" legt die bearbeitete Fassung im Kern ab; danach hängt ein Knopf sie an eine Antwort auf die Nachricht, aus der sie kam, oder an eine neue Nachricht — über denselben Vorrat, den auch Weiterleitungen benutzen. Nichts davon verlässt den Rechner, und nichts wird in einen Temp-Ordner geschrieben.\n\nNeue Dokumente und Dateien von der Platte. In der Leiste links stehen unter den Modulen vier Handgriffe: Dokument, Tabelle, Folien und PDF legen ein neues, leeres an und öffnen es gleich im Editor. Und im Dateibaum sitzt an jeder Datei, die der Editor öffnet, ein Stift. Der Dateibaum startet dabei weiterhin nichts: Die Datei wird gelesen und in den eingesperrten Editor gegeben, und die bearbeitete Fassung geht an eine Nachricht — nicht zurück auf die Platte.\n\nDer Editor ist eingesperrt. Er läuft in einem eigenen Ursprung (`editor://localhost`) ohne Zugriff auf die Brücke zum Kern; seine Regeln kennen weder `http:` noch `https:` — ein Dokument mit einem verknüpften Bild von aussen zeigt einen Platzhalter, wie beim Betrachter. Makros und Erweiterungen sind aus. Dateien über 60 MB nimmt er nicht.\n\nUnd er ist das erste Plugin. Der Editor liegt nicht in SHUFTN, sondern als nachinstallierbares Paket daneben — unter `%LOCALAPPDATA%\\SHUFTN\\plugins\\\u003ckennung\u003e\\\u003cfassung\u003e\\`, mit einem Manifest (`plugin.json`), das sagt, wie es heisst, welche Endungen es bearbeitet, wofür es Vorlagen hat und unter welcher Lizenz es steht, und mit einer Prüfliste über jede Datei. Was SHUFTN anbietet, richtet sich danach: Ohne Paket gibt es keinen Stift und keine „Neu\"-Knöpfe, und fehlt es, sagt das Fenster warum, statt leer zu bleiben. Weil der Ursprung eines Plugins an seinem Protokollnamen hängt und Protokolle beim Start angemeldet werden, läuft ein frisch installiertes Paket erst nach einem Neustart — und das steht auch so in der Liste.\n\nEingespielt wird aus dem Programm heraus. Einstellungen → Erweiterungen zeigt, was installiert ist (Name, Fassung, Lizenz, welche Dateien es öffnet, wo es liegt) und nimmt unter „Quelle\" eine `https`-Adresse oder den Pfad einer Zip-Datei. Die Reihenfolge dabei ist die Sicherung: erst entpacken, dann prüfen, dann umhängen. Geht das Prüfen schief, bleibt die vorige Fassung unberührt, und die Meldung nennt die Datei. Ältere Fassungen bleiben liegen — sie sind der Rückweg. *Prüfen* neben einem Paket rechnet jede Prüfsumme noch einmal nach.\n\nAus dem Netz nur über `https`: Die Prüfsummen liegen im Archiv und zeigen, dass nichts auf der Platte verrutscht ist — nicht, von wem das Paket kommt. Dafür sorgt die Verbindung.\n\nUnd es gibt eine Seite „Über\". Fassung, Herausgeber, wo Erweiterungen liegen — und für jedes mitgelieferte Paket Lizenz, Quelltextadresse sowie Lizenztext und Änderungsliste im Wortlaut, aus dem Paket gelesen. Beim eingebauten Editor ist das keine Beigabe: Er steht unter der AGPL v3, und die verlangt, dass Lizenztext, Herkunft und die eigenen Änderungen mitgehen.\n\nDie Schriften im Paket sind ein Grundstock aus sieben Familien — nur, was weitergegeben werden darf. Die Microsoft-Kernschriften (Arial, Times New Roman, Courier New und die übrigen) sind nicht dabei; an ihrer Stelle stehen metrisch gleiche Ersatzschriften: Liberation für Arial, Times und Courier, Carlito für Calibri, Caladea für Cambria, dazu DejaVu für breite Zeichenabdeckung, Open Sans, Asana Math für Formeln und OpenSymbol für Aufzählungszeichen.\n\nWas das heisst: Ein Dokument in Arial wird mit Liberation Sans gezeichnet, behält aber Zeilen- und Seitenumbrüche, weil die Breiten identisch sind — und es behält den Namen. Wer es zurückschickt, schickt weiter ein Arial-Dokument; wer es in Word öffnet, sieht Arial. Das Paket ist damit von 383 auf 239 MB geschrumpft (66 MB als Archiv), und die Lizenz jeder Familie liegt im Wortlaut dabei.\n\nUnd die Schriften des eigenen Rechners kommen dazu — auf Knopfdruck. Unter Einstellungen → Erweiterungen steht *Schriften einlesen*. Danach kennt der Editor Arial, Calibri, Cambria und alles andere, was auf diesem Rechner installiert ist — hier waren es 273 Familien aus 415 Dateien, in anderthalb Sekunden gelesen. Der Grundstock bleibt unverändert daneben stehen, die Ersatzsuche für fehlende Zeichen ebenso; es kommt nur etwas dazu.\n\nKopiert wird dabei nichts. Ein Windows-Schriftordner ist ein paar hundert Megabyte gross; ihn je Nutzer zu verdoppeln wäre Platzverschwendung. Der Katalog merkt sich, wo eine Schrift liegt, und der Editor bekommt die Datei beim Abruf gereicht. Wird eine Schrift deinstalliert, fehlt sie im Editor — einmal neu einlesen bringt die Liste wieder in Ordnung, und *Verwerfen* stellt den Grundstock her.\n\nErzeugt wird der Katalog von SHUFTN selbst, nicht vom Werkzeug des Herstellers: Dessen `allfontsgen` ist ein C++-Programm gegen Qt, ICU, FreeType und HarfBuzz — für Windows hiesse das vier weitere native Dateien auszuliefern. Alles, was der Katalog braucht, steht dagegen in den Tabellen `name`, `OS/2` und `post` jeder Schriftdatei. Geprüft wird gegen das Original: Für die 53 Schriften des Grundstocks erzeugt SHUFTN dieselben 54 Einträge mit denselben Werten in jedem Feld, die auch `allfontsgen` erzeugt — Panose, Zeichenbereiche, Metriken, Familienzuordnung. Sechs Abweichungen hat dieser Vergleich zutage gefördert, bevor irgendetwas ausgeliefert wurde, darunter eine, die stillschweigend gewirkt hätte: Die Schriftliste beginnt mit ihrer eigenen Länge, und wer nur anhängt, ohne sie hochzuzählen, liefert eine Datei, die vollständig aussieht und beim Lesen nach dem alten Bestand aufhört.\n\nWie ein Paket gebaut wird, steht vollständig in `PLUGINS.md`.", + "pub_date": "2026-09-04T06:10:30Z", "platforms": { "windows-x86_64": { - "signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRbENEalUzQ3RFRDh6NWtGdklVNkFNVkg4aS9XNGV4azA1SnVRbmVPYnlVQ2JHZitacVpkd0RXM25TdTB4SGhLWmRHbHdJbDFoYTBXUGU2MXJrQm02ZjhHcHdqSzNFUUF3PQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg4NDMxMjU3CWZpbGU6U0hVRlROXzAuMi42X3g2NC1zZXR1cC5leGUKKzg1ZU1ta3dManNxNEhUbHQxQ3ZNTTZBOTdUNkNENFhmL0NKbEpPWUlDOXFsWGhUUUovWDN2OGRvMWEyL1NFNElsdmh1M0VxZkMzclU0dWorWisrRHc9PQo=", - "url": "https://gitea.itm-technologies.de/ITM-GmbH/shuftn-releases/releases/download/v0.2.6/SHUFTN_0.2.6_x64-setup.exe" + "signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRbENEalUzQ3RFRDF6VHYwN2ozbVhFYjBLbWZxRkQ5SUdVUy9MalZycTVSKzNleTJCMU9UZUVYVFlRN1dqQUJacGx0OU1MbFFOdmhFeUF3TWVmeDdiQVBUVW16U0loTXdvPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg4NTAyMjI5CWZpbGU6U0hVRlROXzAuMi43X3g2NC1zZXR1cC5leGUKWFJRM3lsUE5jQjd5WnZhSGlBUkdNZ0wrN1QzRXlFQ2Z5MTVJeU1pbkEyZUhON1J3RXZaMDRtMzF6c1V5OFNKbHFkZUMvRmFJM0E3MUtIZFhIeExKQ0E9PQo=", + "url": "https://gitea.itm-technologies.de/ITM-GmbH/shuftn-releases/releases/download/v0.2.7/SHUFTN_0.2.7_x64-setup.exe" } } } \ No newline at end of file