Block Code

Wir werden immer wieder Terminal-Befehle oder sonstige Code-Zeilen veröffentlichen. Dazu bietet HTML das Element "<code>". Das muss natürlich entsprechend designed werden. Es geht im folgenden nicht um den Programmcode, sondern nur um das Design

Beispiel

<pre>
  <code class="language-php">
    <?php echo "Hallo, Welt\n"; ?>
  </code>
</pre>

 

Das HTML-Element <code> ist im Normalfall ein Inline Element.  Also Teil des Fließtextes. So auch in Contao.

Markiere ich einen Teil des Fließtextes als "code", wird der Bereich mit <code>....</code> umschlossen und als Teil des Fließtextes betrachtet.

Also ist "<code>" alleine für einen Block wie oben, nicht ganz korrekt.

Contao und HTML <code>

Contao verwendet für das Content-Element "text" und dem Teil des Fließtextes natürlich das Blockelement "<p>". Als Absatzmarkierung. Ich möchte aber ein Codeelement nicht im Design als Fließtext darstellen. Selfhtml schlägt vor, das Blockelement "<pre> zu verwenden. Wie oben im Beispiel.

SCSS

Dann kann man mit SCSS die Formatierung übernehmen.

 .rte {
     pre {
      border: 1px solid #cacaca;
      line-height: 1.2em;
      font: 1.2em Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
      color: black;
      background-color: #dcdcdc;
      padding: 10px;
      overflow:auto;
      -webkit-border-radius: 0.5em;
      -moz-border-radius: 0.5em;
      border-radius: 0.5em;
      -moz-background-clip: padding;
      -webkit-background-clip: padding-box;
      background-clip: padding-box;
      //color: #393939;
      margin: 0px;
      margin-bottom: 0.5em;
     }
}

 

Erweiterungen

Oder, man verwendet ein neues Contentelement, dass es in Contao gibt. Das Content-Element nennt sich: "code"

Eine Extension ist nicht notwendig, auch wenn es diese gibt.

.rte {
     pre {
      border: 1px solid #cacaca;
      line-height: 1.2em;
      font: 1.2em Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",monospace;
      color: black;
      background-color: #dcdcdc;
      padding: 10px;
      overflow:auto;
      -webkit-border-radius: 0.5em;
      -moz-border-radius: 0.5em;
      border-radius: 0.5em;
      -moz-background-clip: padding;
      -webkit-background-clip: padding-box;
      background-clip: padding-box;
      margin: 0px;
      margin-bottom: 0.5em;
     }
 }