‚ÜĎ

Diskussion ūü§ē
HTML-Code in den HTML-<head> einf√ľgen

Mit [h] kann man HTML-Code in den sichtbaren Bereich einer Seite einbinden. Vergleichbares k√∂nnte f√ľr den nicht-sichtbaren HTML-<head>-Bereich angeboten werden, beispielsweise um Metadaten wie <meta property='og:foo' content='bar'> nach dem Open Graph Protocol einzubinden, die Aneamal nicht selbst unterst√ľtzt.

  1. Zu diesem Zweck wäre analog zu @style und @script eine Metadeklaration wie @html oder @htmlhead naheliegend.

    Denkbar w√§re freilich auch @head, wobei da vielleicht eine Verwechslung mit @header denkbar w√§re, was bereits etwas anderes bedeutet. Denkbar w√§re auch @meta, wobei das einerseits zu allgemein klingen k√∂nnte, weil ja in Aneamal alle Zeilen mit @ Meta-Deklarationen sind, und andererseits zu spezifisch in Bezug auf HTML, weil mit @meta nicht nur <meta>-Elemente, sondern auch <link>- und andere Elemente eingef√ľgt werden k√∂nnten.

    Sonstige Vorschläge?

  2. HTML-Code in den HTML-<head> einf√ľgen zu k√∂nnen ist nun f√ľr die n√§chste Aneamal-Version (Anfang 2019) geplant.

    Nur der @name fehlt noch, damit es losgehen kann.

  3. Zu klären ist noch Folgendes:

    Angenommen, die Datei *eins.nml* enthält die Metadeklaration:

    @html
    @|<meta name='foo' content='bar'>

    und die Datei *zwei.nml* enthält:

    [a]->eins.nml

    Soll dann auch bei Aufruf von zwei.nml der Code in den HTML-<head> √ľbernommen werden, der in eins.nml definiert wurde?

    Derzeit w√§re das bei @script und @style beispielsweise der Fall (wobei Letzteres so eigentlich nicht angestrebt ist, aber mangels <style scoped> n√∂tig), bei Angaben wie @robots und @layout aber nicht. Ich neige dazu, es auch hier nicht zu √ľbernehmen. Eventuell m√ľssten auch beide Varianten m√∂glich sein? Eine Recherche w√§re ratsam, was zum Beispiel beim Open Graph Protocol sinnvoll w√§re.

  4. Ich denke im Moment macht es nur Sinn die Metadaten aus externen, eingebundenen Seiten in die Seite zu √ľbernehmen die den Link zur externen Datei enth√§lt wenn es die @header Datei ist. Ausserhalb davon k√∂nnte es heikel werden.

  5. Wie wäre es mit @extendohead, @brain, oder @addohead?

  6. @jackolantern?

  7. @4: Ja, ich werde erst einmal HTML-Metadaten aus eingebundenen Dateien nicht √ľbernehmen. Wenn sich sp√§ter der Bedarf zeigt, kann man diese Funktion noch immer hinzuf√ľgen.

    Die Idee, das speziell bei @header.nml zu machen und sonst nicht, ist interessant. Denkbar w√§re alternativ eine automatisch einzubindende Datei @meta.nml oder @config.nml, sodass man von auf der Seite Sichtbarem unabh√§ngig ist. Jedenfalls h√§tte man dann einen Grund weniger, auf aneamal-config.php zur√ľckzugreifen.

  8. Klingt gut:
    <> auf der Hauptseite als @foo
    <> in der @header mit @foo in der Seite
    <> als externe Datei, wie *.css, die dann automatisch eingebunden wird.*

    * dann kann man anderes wie @author automatisch √ľberall integrieren ohne in die Aneamal config gehen zu m√ľssen. Man braucht dann nur im Root eine @metahead anzulegen und dort @author und anderes anzugeben.

  9. Isch hab des ja im moment so, dass in Aneamal confick ich author, css, og, etc drin habe. Wenn es zentral im Root liegen kann als @foo.nml w√§re es nicht nur konsequent zu @header.nml, @aside.nml, @footer.nml, und @style.css sondern macht es m√∂glich dass nutzer auf einer einfachen ebene nml nutzen k√∂nnen _mit ohne_ nur Kn√∂pfchen dr√ľcken sondern richtig selber schreiben. Wer fit ist und will kann immer noch am php schrauben.

    Damit wäre nml ein echtes mittelbums zwischen cms und 'schreib den scheiss alleine'.

  10. Ich habe f√ľrs etwaige automatische Laden von Metadaten, zum Beispiel aus einer Datei @meta.nml, eine neue Diskussionsseite er√∂ffnet: https://prlbr.de/projekt/aneamal/diskussion/metadaten-automatisch-laden

  11. Hier nun zur√ľck zum urspr√ľnglichen Thema: Das Einf√ľgen von HTML-Code in den HTML-<head> funktioniert jetzt im Testbetrieb per Metadeklaration @html mit Dateilink oder Heredoc, :-) wobei es nicht beim Namen @html bleiben muss.

  12. @6: Die Namen @extendohead und @addohead verweisen auf das HTML-Element <head>. Indirekt trifft das auch auf @brain zu, denn der Name k√§me ja daher, dass das Gehirn normalerweise im Kopf ist, so wie der eingef√ľgte Code im HTML-<head> landet. Der Verweis auf HTML-<head> ist eigentlich ein guter Gedanke ‚Äď eine konkrete Benennung, wo genau die Reise in den HTML-Code hingeht.

    Allerdings gibt es in Aneamal den Begriff ‚ÄěHeader‚Äú (der etwas mit HTML-<header>, nichts jedoch mit dem √§hnlich benannten, aber semantisch grundverschiedenen HTML-<head> zu tun hat) und kein Konzept ‚ÄěHead‚Äú. Meine Bef√ľrchtung ist daher, dass der Gedanke zu naheliegend ist, dass @addohead oder √Ąhnliches irgend etwas mit Aneamal-Headern zu tun haben k√∂nnte, was aber ein Irrtum w√§re.

    Aus heutiger Sicht betrachtet war die Wahl des Element-Namens <head> in HTML vielleicht suboptimal, weil er keine Eigenschaft dessen beschreibt, was das Element enth√§lt (<blockquote> zum Beispiel enth√§lt Zitate, ein guter Name, und <header> enth√§lt Dinge, die typischerweise im Seiten- oder Abschnittskopf dargestellt werden). Der Name des Elementes <head> kommt anscheinend daher, dass das Element *im Quelltext* oben stehen muss, bzw. wurde ggf. in Analogie zu HTTP/E-Mail-Headern gew√§hlt, die im Quelltext am Anfang einer Nachricht stehen. Dass diese dort oben stehen, hat allerdings h√∂chstens einen technischen Hintergrund.^‚úĽ F√ľr das aufbereitete Dokument, was der menschliche Rezipient betrachtet, ist es irrelevant, denn dort werden diese Daten in der Regel gar nicht angezeigt. Es handelt sich um *Metadaten*. Auch Aneamal kennt Metadaten, doch ich w√ľrde nicht auf die Idee kommen, sie unter einem Begriff Head/Kopf zusammenzufassen, denn in Aneamal gibt es keine willk√ľrliche Festlegung, dass sie im Quelltext oben stehen m√ľssen. Sie k√∂nnen genauso gut am Ende der Datei stehen oder sonst wo.

    So kommt es, dass ich noch hadere …

    ___
    #‚úĽ Wenn in einem E-Mail-Programm beispielsweise der Posteingang angezeigt wird, dann braucht das E-Mail-Programm daf√ľr nur Metadaten der E-Mails ‚Äď Absender, Betreff, Zeit ‚Äď und muss nicht schon den ganzen E-Mail-Inhalt verarbeiten. Wenn die Metadaten in der E-Mail am Anfang stehen, dann findet das E-Mail-Programm die Metadaten schneller, als wenn es erst die ganze E-Mail danach durchsuchen m√ľsste.
    Ein anderes Beispiel: Wenn ein Browser eine Webseite √ľber eine langsame Verbindung l√§dt, dann kann er schon anfangen, sie perfekt darzustellen, bevor die Seite fertig geladen ist, falls er die Style-Information zum Aussehen bereits am Anfang und nicht erst ganz am Ende findet.

  13. Hm, ich denke @htmlhead vermeidet die Verwechslung mit Aneamal-Headern und macht auch klar, wo es hingeht. Im Gegensatz zu @extendohead und @addohead macht @htmlhead zwar nicht klar, dass es nicht den kompletten HTML-<head> enth√§lt, sondern nur erg√§nzt. Aber das ist bei @script und @style und @javascript und @stylesheet auch so. Wenn man keine ganze S√§tze als Namen verwendet, wird es kaum je alles von Relevanz ausdr√ľcken k√∂nnen. Muss aber auch nicht sein¬†‚Ķ

  14. Ich schließe die Diskussion, da die Funktion als @htmlhead implementiert wurde.