HTML chars get converted to entities from adding assets onward

Okay so this is the oddest thing, because I just copied a theme from another site where everything is okay, and I get HTML on the page from the moment the assets are added. Specifically, some of the angle brackets and quotes seem to be converted to HTML entities, but not all of them. The source code of the output page looks like this:

<!DOCTYPE html>
<html lang="">
<head>
    <meta charset="utf-8" />
    <title>Familienrecht | anwaltskanzlei störmer</title>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="referrer" content="no-referrer, same-origin">
        <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="manifest" href="/site.webmanifest">
    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
    <meta name="msapplication-TileColor" content="#006e8b">
    <meta name="theme-color" content="#ffffff">
                    
              &lt;script src=&quot;/AFS/system/assets/jquery/jquery-2.x.min.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/AFS/vendor/maximebf/debugbar/src/DebugBar/Resources/debugbar.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/AFS/vendor/maximebf/debugbar/src/DebugBar/Resources/widgets.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;/AFS/vendor/maximebf/debugbar/src/DebugBar/Resources/openhandler.js&quot;&gt;&lt;/script&gt;

    
</head>
<body id="top" class="">
  <a role="navigation" aria-label="Sprunglink" class="skip-link" href="#inhalt" tabindex="1">zum Hauptinhalt der Seite springen</a>

    <header class="header">
        <div class="wrapper">
            <a href="/" class="headline">Anwaltskanzlei Störmer<br>
            <span class="subline">Rechtsanwalt und Fachanwalt für Familienrecht</span></a>
            <a href="#main-menu" class="menu-toggle" role="button"
     id="main-menu-toggle"
     aria-expanded="false"
     aria-controls="main-menu"
     aria-label="Menü öffnen">
  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
    <rect y="0" width="100%" height="20%" />
    <rect y="40%" width="100%" height="20%" />
    <rect y="80%" width="100%" height="20%" />
  </svg>
  <span class="menu-label">Menü</span>
</a>

<nav id="main-menu" class="main-menu" role="navigation" aria-expanded="false" aria-label="Menü">
  <a href="#main-menu-toggle" class="menu-close" role="button"
       id="main-menu-close"
       aria-expanded="false"
       aria-controls="main-menu" aria-label="Menü schließen">
    <span class="is-visually-hidden">Menü schließen</span>
    <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <line x1="0" y1="100%" x2="100%" y2="0"/>
        <line x1="0" y1="0" x2="100%" y2="100%"/>
    </svg>
  </a>

  
  <ul class="mlvl-1">
                                    <li class="index  lvl-1">
        <a href="/AFS/">Willkommen</a>
      </li>
                                <li class="familienrecht is-active lvl-1">
        <a href="/AFS/familienrecht">Familienrecht</a>
      </li>
                                <li class="erbrecht  lvl-1">
        <a href="/AFS/erbrecht">Erbrecht</a>
      </li>
                                <li class="kosten  lvl-1">
        <a href="/AFS/kosten">Kosten</a>
      </li>
                                <li class="ueber-mich  lvl-1">
        <a href="/AFS/ueber-mich">Über mich</a>
      </li>
                                <li class="kontakt  lvl-1">
        <a href="/AFS/kontakt">Kontakt</a>
      </li>
      
  </ul>
</nav>

<!--<a href="#main-menu-toggle" tabindex="-1" aria-hidden="true" hidden></a>-->
        </div>
    </header>


    <main class="content default" id="inhalt">
            <div class="wrapper">
        <h1>Familienrecht</h1>
        &lt;p&gt;Trennung und Scheidung gehören zu den einschneidensten Ereignissen im Leben. Sie bedeuten eine extrem hohe emotionale Belastung. Gleichzeitig ist eine Vielzahl von Angelegenheiten zu regeln. Insbesondere die rechtlichen Konsequenzen des Scheiterns einer Ehe erscheinen, zumal kurz nach vollzogener Trennung, nahezu unüberschaubar. Man ist gezwungen, sich mit vielen der nunmehr drängenden Themenkomplexe erstmals auseinanderzusetzen, wie vor allem dem Kindesunterhalt, dem Ehegattenunterhalt, der elterlichen Sorge, aber auch mit Fragen der Voraussetzungen eines Scheidungsverfahrens. In dieser schwierigen Lebenssituation benötigen Sie einen Partner, mit dem Sie Ihre Lage offen besprechen können. Einen Partner, der Ihnen bei den schwierigen ersten Schritten in einem neuen Lebensabschnitt mit rechtlichem Rat zur Seite steht und Ihnen hilft, die richtigen Entscheidungen zu treffen. Auf folgenden Gebieten werden Sie beraten und vertreten. &lt;/p&gt;
&lt;h2&gt;Scheidung&lt;/h2&gt;
&lt;p&gt;Der Scheidungsantrag kann nur durch einen Rechtsanwalt und in der Regel erst nach Ablauf eines Trennungsjahres gestellt werden. Wann genau vom Vorliegen einer Trennung gesprochen werden kann, ist für jeden einzelnen Fall gesondert zu prüfen und sollte mit dem Rechtsanwalt geklärt werden. Auch ist zu beachten, dass bereits eine Trennung eine ganze Reihe von juristischen Folgen nach sich zieht. Frühzeitiges Einholen rechtlichen Rates ist daher unerlässlich.&lt;/p&gt;
&lt;h2&gt;Unterhalt&lt;/h2&gt;
&lt;p&gt;Von existenzieller Bedeutung ist der Unterhalt schon mit Vollzug der Trennung. So wichtig dieses Thema ist, so komplex ist es auch. Für den rechtsunkundigen Laien ist es denkbar schwierig, sich in dieser Materie ohne juristischen Beistand zurechtzufinden. Dies gilt sowohl für den Ehegattenunterhalt wie auch für den Kindesunterhalt. Mit einem bloßen Blick auf die Düsseldorfer Tabelle ist es nicht getan. Jeder Unterhaltsanspruch ist so individuell wie die Lebenssituation, die ihm zugrunde liegt. Auf eine entsprechend gewissenhafte Prüfung von kompetenter Seite sollte daher auf keinen Fall verzichtet werden.&lt;/p&gt;
&lt;h2&gt;Güterrecht &amp;amp; Vermögensauseinandersetzung&lt;/h2&gt;
&lt;p&gt;Bei einer Scheidung kann es insbesondere im Zugewinnausgleich zu einer Verschiebung erheblicher Vermögensmassen kommen. Ist man hier nicht bereits durch einen Ehevertrag abgesichert, kann es schnell passieren, dass die Früchte der Arbeit eines ganzen Lebens auf dem Spiel stehen. Egal auf welcher Seite man steht, es gilt, Vermögenswerte zu sichern. In einer solchen Situation sollte schnellstmöglich anwaltlicher Beistand gesucht werden.&lt;/p&gt;
&lt;h2&gt;Elterliche Sorge &amp;amp; Umgangsrecht&lt;/h2&gt;
&lt;p&gt;Häufig sind von einer Trennung Kinder betroffen. Wenn es dann zum Streit über das Aufenthaltsbestimmungsrecht oder über die Kontakte eines Elternteils zu den Kindern kommt, steht oftmals das Kindeswohl auf dem Spiel. Es gilt dann, behutsam vorzugehen, um die zwangsläufige seelische Belastung der Kinder durch die Auseinandersetzung über die elterliche Sorge oder das Umgangsrecht nicht noch erheblich zu vergrößern. Gleichzeitig dürfen jedoch niemals die Rechte des betroffenen Elternteils aus dem Auge verloren werden. Um beiden Interessen in gleichem Maße gerecht zu werden, sollte möglichst frühzeitig der Rat eines Rechtsanwaltes Ihres Vertrauens eingeholt werden, der Ihnen in der meist sehr belastenden Auseinandersetzung zur Seite steht.&lt;/p&gt;
&lt;h2&gt;Elternunterhalt&lt;/h2&gt;
&lt;p&gt;Der demographische Wandel macht auch vor dem Unterhaltsrecht nicht halt. Menschen – und damit auch Eltern – werden immer älter. Werden sie zum Pflegefall, sieht man sich einer Vielzahl von Anforderungen gleichzeitig ausgesetzt:
der eigenen Familie, dem Beruf, dem schlechten Gewissen den eigenen Eltern gegenüber. Müssen diese durch Dritte gepflegt werden, etwa gar im Pflegeheim, entstehen im Nu erhebliche Kosten.
Das Sozialamt klopft an und pocht auf deren Erstattung. In dieser Gemengelage ist es wichtig, den Überblick zu behalten, und sich nicht von der Vielzahl von Ansprüchen, die an die eigene Person gestellt werden, überwältigen zu lassen. Ihr Rechtsanwalt ist Ihnen dabei behilflich.&lt;/p&gt;
&lt;h2&gt;Statusrecht (Vaterschaft, Namensrecht)&lt;/h2&gt;
&lt;p&gt;Um Grundlegendes geht es, wenn das Verwandtschaftsverhältnis zu einem Kind in Frage steht. Eine Vaterschaft kann angefochten, jedoch auch gerichtlich festgestellt werden. Nach einer Scheidung kann es darüber hinaus zu der Frage kommen, welchen Namen das Kind in Zukunft tragen soll. Fragen, die Sie frühzeitig mit einem Rechtsanwalt erörtern sollten.&lt;/p&gt;
    </div>
    </main>


    

</body>
</html>
<script type="text/javascript">
var phpdebugbar = new PhpDebugBar.DebugBar();
[debugbar code ok but too long]
</script>

So basically, the assets and the content get html_special_chared. :question: :question: :question:

It’s likely to be something simple, because like I said it works flawlessly on another page with the same template… but I’d really appreciate your ideas on where to look!

I think you’re missing |raw filter in your templates. Like {{ page.content|raw }}

Hmmm, that would be an extremely new requirement to me, and like I said, it does work on other sites. My page input is in Markdown. And also I don’t see how I could use the raw filter on the assets?

@Netzhexe, Adding to @Karmalakas, the other site might have twig.autoescape: false in system.yaml, while your current site hasn’t. That could happen if the previous site is upgraded, while the new site is a fresh install.

See the Twig section in Upgrading to 1.7

Use the following in Twig to by-pass auto-escaping for assets using the |raw filter:

{{ assets.css() | raw }}
{{ assets.js() | raw }}

Since auto-escaping is a security measure, I would advice you to go through all your themes and check all output commands in your templates whether the output is safe or not. If safe, add the |raw filter to by-pass auto-escaping.

When done and well tested, I would un-set twig.autoescape in system.yaml for sites that have auto-escape switched off.

Have a look at Quark and see which outputs use filter |raw and which don’t.

1 Like

Well @pamtbaau, you done schooled me again! :smiley: I did check the upgrading guide, but not thoroughly enough to find this bit. And yes, the other site has auto-escaping set to false, although I have no idea why.

…funnily enough, when I change that setting to false in the new site as well, the output still remains the same, even after clearing the cache. I’m not going to dig into that though since I now need to spend some time on changing all the templates! :wink: