it-swarm.com.de

Warum setzt Blogger BR-Tags nur, wenn Inhalte über RSS-Feeds bereitgestellt werden?

Ich habe ein Problem mit der Verwendung meines neuen Blog-RSS-Feeds. Ich habe einen Post geschrieben (den ersten) mit einigen Codebeispielen, die mit SyntaxHighlighter formatiert wurden. Um ein Codebeispiel einzufügen, wechsle ich von WYSIWYG zur HTML-Ansicht und füge den Code in das pre -Tag ein (keine Sorge, das h4-Tag wurde in einer Zeile über dem Screenshot geöffnet Bereich):

formatting code example on the blog

Das Problem ist, dass ein solches pre -Tag, auf das später über RSS-Feed zugegriffen wird, br -Tags anstelle von neuen Zeilenzeichen enthält. Unten sehen Sie einen Screenshot des entsprechenden RSS-Quellcodes:

RSS source code with unwanted BRs

Was ist am wichtigsten , wenn über www zugegriffen wird, ist der Post-HTML-Code gut formatiert, kein brs innerhalb pre . Ich habe das überprüft, indem ich den Blog-Beitrag mit wget heruntergeladen habe. Ich glaube, dies ist weder ein SyntaxHighlighter-Problem noch eine neue Zeilenformatierung beim Speichern von Blogposts.

Dies ist ein echtes Problem, da ich mein Blog auf dem Blog des Arbeitgebers zusammenfassen möchte und alle Formatierungen von Codebeispielen aus diesem Grund fehlerhaft sind.

Die grundlegende Frage lautet: Wie werden unerwünschte brs , die über RSS bereitgestellt werden, entfernt?

Was seltsamste Freund von mir ist, verwendet Blogger auch für eine solche Aggregation und er hat kein solches Problem. Ich habe seinen RSS-Feed überprüft und es gibt keine Brs in Pre Tags. Wir haben auch die Einstellungen unserer Blogs verglichen. Wir haben jedoch keine Ahnung gefunden.

Letzte Sache: Ich sehe, dass der Inhalt von RSS jetzt auch HTML-codiert ist. Wenn ich mich gut erinnere, war es vorher nicht.

UPDATE: Ich habe für dieses Problem keine Lösung gefunden und kann nirgendwo weiterhelfen. Also habe ich ein kurzes PHP Skript geschrieben, um die Feedquelle zu filtern. Jemand mag es nützlich finden, also hier ist es:

<?php
$url = 'http://blog.tamashumi.com/feeds/posts/default';
$pre_pattern = '/(\&lt;pre.*?"\&gt;)(.*?)(\&lt;\/pre\&gt;)/';
$br_pattern = '/\&lt;br \/\&gt;/';

function br2nl($match) {
    global $br_pattern;
    $nobrs = preg_replace($br_pattern, "\n", $match[2]);
    return "$match[1]$nobrs$match[3]";
}

$content = file_get_contents($url);
$content = preg_replace_callback($pre_pattern, 'br2nl', $content);

header('Content-type: application/atom+xml');
echo preg_replace($br_pattern, "&lt;br/&gt;\n", $content); // adding NLs
?>

Ein Ergebnis des gefilterten Futters erhalten Sie unter URL . Auf den ersten Blick unterscheidet es sich nicht, die Quelle tut es jedoch.

Als letztes zu erwähnen. Ich fand heraus, dass Blogger vor einiger Zeit das Flag "Zeilenumbrüche konvertieren" in den Konfigurationseinstellungen hatte. Es wurde jetzt durch neue Einstellungen nach dem Level ersetzt:

enter image description here

Ich glaube, dass das Blog meiner Freunde wie erwartet funktioniert, da das Flag "Zeilenumbrüche konvertieren" gesetzt war, bevor es aus dem Konfigurationsfenster verschwand, und wahrscheinlich als globale Einstellung auch Einfluss auf das RSS hat. Diese neuen Post-Level-Einstellungen wirken sich sowieso nicht auf den RSS-Feed aus. Nun, das ist nur eine Annahme, aber ich habe keinen anderen Hinweis für diese Inkonsistenz gefunden ...

2
topr

Der RSS-Eintrag sollte nicht in die HTML-Editor-Seite eingefügt werden. Es sollte zum Standard-Post-Editor gemacht werden.

OR

Es gibt eine Option im rechten Bereich zur Auswahl von Tag für Zeilenumbruch. Alles was Sie tun müssen, ist es zu deaktivieren.

1
Anz Joy