Δημόσια καταγραφή παραγωγής · 23 Ιουλίου 2026

Ένα μενού,
παραγόμενο παντού

Πώς ένα κρυμμένο link στο mobile αποκάλυψε την αντιγραφή της πλοήγησης και οδήγησε σε κοινό deterministic header.

Τι αποκάλυψε η διεπαφή

Το link του Ημερολογίου δεν χωρούσε πλέον στο mobile header. Η προσθήκη burger menu έλυσε το ορατό overflow, αλλά η πρώτη υλοποίηση αποκάλυψε ένα βαθύτερο πρόβλημα: η ίδια δομή πλοήγησης υπήρχε σε πολλά στατικά HTML αρχεία και μπορούσε να αποκλίνει ανά route και γλώσσα.

Ο στόχος έγινε μεγαλύτερος από το να χωρέσει ακόμη ένα link. Κάθε σελίδα έπρεπε να λαμβάνει το ίδιο header της γλώσσας της από μία αναπαραγώγιμη πηγή.

Αστοχία · Πρώτη responsive συμπεριφορά

Ένα μενού που εμφανιζόταν μετά από resize

Το πρώτο burger χρησιμοποίησε native <details>. Στο desktop έκρυβε το <summary> ενώ το στοιχείο παρέμενε κλειστό, οπότε ο browser έκρυβε και την πλοήγηση στο αρχικό load. Το resize φαινόταν να το διορθώνει μόνο επειδή επανυπολογιζόταν το responsive state.

Η διόρθωση έκανε το desktop navigation ρητά ορατό, διατηρώντας το burger κλειστό στο mobile, χωρίς JavaScript.

Ανθρώπινος έλεγχος · Δομική διόρθωση

Οι σελίδες ακόμη δεν μοιράζονταν ένα μενού

Ο έλεγχος βρήκε στη συνέχεια page-specific links και ασυνεπείς ονομασίες: η αρχική και οι σελίδες του ημερολογίου δεν εμφάνιζαν τους ίδιους προορισμούς. Η διόρθωση ήταν σαφής: το header πρέπει να παράγεται και να είναι ίδιο για κάθε σελίδα της ίδιας γλώσσας.

Η τελική κοινή πλοήγηση περιλαμβάνει Η ιστορία, Ημερολόγιο, αλλαγή γλώσσας και Δημόσιος κώδικας. Τα anchors μιας συγκεκριμένης σελίδας δεν ανήκουν στο καθολικό header.

Υλοποίηση · Deterministic export

Από αντιγραμμένο HTML σε μικρό page compiler

Το site/build.py ανακαλύπτει πλέον ζευγάρια HTML source artifacts και τα περιλαμβάνει με μία σταθερή σειρά: head → header/menu → content → footer. Τα routes προκύπτουν από τον φάκελο content. Οι αγγλικές και ελληνικές σελίδες εξάγονται ως στατικό HTML και παραμένουν committed, ώστε στο review να φαίνεται ακριβώς το deployable αποτέλεσμα.

Το python3 site/build.py --check απορρίπτει generated σελίδες που τροποποιήθηκαν χειροκίνητα ή έμειναν stale. Το runtime site παραμένει χωρίς dependencies· ο ντετερμινισμός επιβάλλεται στο build.

  • Ένα κοινό responsive header και component πλοήγησης.
  • Ζευγάρια δίγλωσσων HTML sources, των οποίων τα paths ορίζουν τα routes.
  • Accessible native burger με σωστό πρώτο load στο desktop.
  • Byte-identical output όταν τα inputs δεν αλλάζουν.

Κατάσταση · Δημόσια καταγραφή υλοποίησης

Τι έχει πραγματικά ολοκληρωθεί

Ο compiler, το κοινό μενού, οι generated σελίδες και αυτή η δίγλωσση καταγραφή ετοιμάστηκαν στο draft pull request #6. Τη στιγμή αυτής της καταγραφής το pull request είναι ανοικτό και δεν έχει γίνει merge· αυτό δεν ισοδυναμεί με deployment ή επαλήθευση στο live site.

Προηγούμενη εγγραφή: Από τη συνέλευση στον ορίζοντα.