Markup filtern - nicht nur HTML

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
thh
Regular
Posts: 419
Joined: Thu Oct 26, 2006 2:38 pm
Location: Stuttgart, Germany
Contact:

Markup filtern - nicht nur HTML

Post by thh »

Vielleicht steht meine zweite dumme Frage im Zusammenhang mit der der ersten solchen: http://board.s9y.org/viewtopic.php?f=10&t=20852

Zwei Plugins tun dasselbe - nämlich die ersten x Zeichen eines Blogeintrags nehmen und daraus eine description für die Webseite generieren -, aber eines (serendipity_event_social) macht es richtig (bzw. besser), das andere (serendipity_event_metadesc) hingegen ... nicht so schön.

"Gut" wäre dies:

Code: Select all

<meta property="og:description" content="Über die erfolgreiche Einrichtung eines VPN-Zugangs mit meiner FRITZ!Box hatte ich ja bereits berichtet. Und ich kann nur sagen: das funktioniert ganz wunderbar...." />
Nicht so super ist hingegen das:

Code: Select all

<meta name="description" content="Über die erfolgreiche Einrichtung eines VPN-Zugangs mit meiner FRITZ!Box hatte ich ja bereits [berichtet](/archives/192" />
Der Salat am Ende ist ein Link in Markdown. Der soll da nicht rein.

Nach einem flüchtigen Blick über den Code macht serendipity_event_social ein schlichtes strip_tags() (aber das kann Markdown doch eigentlich nicht erwischen?), wohingegen serendipity_event_metadesc das nur tut, wenn es <p>...</p> findet.

Der andere Unterschied ist der, dass serendipity_event_social nur mit $entry['body'] arbeitet, serendipity_event_metadesc hingegen entweder mit $GLOBALS['entry'][0]['body'] oder $GLOBALS['entry'][0]['plaintext_body'].

*kopfkratz*

Was auch immer serendipity_event_social da richtig macht, gehört auch in serendipity_event_metadesc ... Ich will nur nicht schon wieder einen PR mit ohne Verständnis hin- und her gepasteten Code einwerfen. :)
onli
Regular
Posts: 2825
Joined: Tue Sep 09, 2008 10:04 pm
Contact:

Re: Markup filtern - nicht nur HTML

Post by onli »

Nach einem flüchtigen Blick über den Code macht serendipity_event_social ein schlichtes strip_tags() (aber das kann Markdown doch eigentlich nicht erwischen?)
Nein, kann es nicht. Aber das funktioniert, wenn es gar nicht den Markdown-Code sieht, sondern den schon in HTML umgewandelten Artikeltext.
wohingegen serendipity_event_metadesc das nur tut, wenn es <p>...</p> findet.
metadesc sollte das immer machen, das an <p> zu hängen ist seltsam.
Der andere Unterschied ist der, dass serendipity_event_social nur mit $entry['body'] arbeitet, serendipity_event_metadesc hingegen entweder mit $GLOBALS['entry'][0]['body'] oder $GLOBALS['entry'][0]['plaintext_body'].
Der $entry['body'] im social-Plugin ist leider nicht so schön, wie das hier aussieht. Denn das kommt vom Smarty-objekt:

Code: Select all

$entry = (current($eventData['smarty']->tpl_vars['entries']->value)['entries'][0]);
Bin mir gar nicht mehr sicher, ob und wenn ja von wo ich das kopiert habe. Schön ist es nicht.

Nun, mir ist ebenfalls nicht klar wo $GLOBALS['entry'] her kommt. In meinen Augen ist es besser mit $eventData zu arbeiten. Aber im Code sieht es wirklich so aus, als gäbe es ein $GLOBALS['entry'][0]['body'], und dass das ignoriert wird. Du solltest schauen ob das schon HTML enthält, und wenn ja kannst du dann darüber strip_Tags laufen lassen und die Beschreibung ziehen.
thh
Regular
Posts: 419
Joined: Thu Oct 26, 2006 2:38 pm
Location: Stuttgart, Germany
Contact:

Re: Markup filtern - nicht nur HTML

Post by thh »

onli wrote:Aber im Code sieht es wirklich so aus, als gäbe es ein $GLOBALS['entry'][0]['body'], und dass das ignoriert wird. Du solltest schauen ob das schon HTML enthält, und wenn ja kannst du dann darüber strip_Tags laufen lassen und die Beschreibung ziehen.
Das enthält den "rohen" Code, wie er in der DB steht, also je nachdem HTML, Markdown, Textile, whatever. Zumindest das Markdown-Plugin scheint aber Plaintext - schon ohne HTML - zu produzieren, auf das man zugreifen kann; allerdings tut es das bei mir derzeit offenbar gerade nicht. :)

Siehe http://board.s9y.org/viewtopic.php?f=10&t=20852

Ich muss mir das nochmal näher anschauen.
thh
Regular
Posts: 419
Joined: Thu Oct 26, 2006 2:38 pm
Location: Stuttgart, Germany
Contact:

Re: Markup filtern - nicht nur HTML

Post by thh »

thh wrote:Ich muss mir das nochmal näher anschauen.
In commit fc87b5f6d700945fd06836dd2433d80c43984a18 https://github.com/s9y/additional_plugi ... 0c43984a18 sind jetzt Änderungen / Verbesserungen für das metadesc-Plugin drin, die aber offenbar noch nicht den gewünschten Erfolg erzielen.

https://netz-rettung-recht.de/archives/ ... r-VPN.html hat Markdown im ersten Satz und keine von Hand gesetzte Description. In der alten metadesc-Version war die Description im Meta-Tag daher kaputt und enthielt Markdown (im Social-Sharing-Header aber nicht). Nach der Änderung ist sie nun aber leider leer:

Code: Select all

<meta name="description" content="" />
Und das gilt für alle Einträge, die keine Description explizit gesetzt haben. Das Auslesen der ersten x Zeichen aus dem Inhalt funktioniert also nicht mehr.

<del>Soll ich ein Issue aufmachen? Kann ich beim Debuggen helfen?</del>

Gefunden. Patch kommt. Pull-Request #47.
Post Reply