it-swarm.com.de

Zweig: Externen Code aus einer SVG-Datei einschließen

Ist es möglich, Code aus einer SVG-Datei direkt in eine Twig-Vorlagendatei aufzunehmen?

So etwas wie:

{% include 'my.svg' %}

das führt zu:

<svg viewbox=".... />
10
Marten Zander

Eine Möglichkeit, dies zu tun:

{{ source('my.svg') }}

Lesen Sie hier mehr: https://www.theodo.fr/blog/2017/01/integrating-and-interacting-with-svg-image-files-using-twig/

8
leSmooth

Hatte ein ähnliches Problem und benannte meine svgs in .twig-Dateien um.

{% include 'my.svg.twig' %}

7
LT86

Sie können dies in einem Drupal8-Design tun, indem Sie eine neue Variable festlegen:

function theme_preprocess_page(&$variables) {
  $svg = file_get_contents(drupal_get_path('theme', 'socialbase') . '/images/icons.svg');
  $variables['svg_Sprite'] = t('svg', array('svg' => $svg));
}

In Ihrer Zweigdatei können Sie es mit drucken:

{{ svg_Sprite }}
1
MaikelKoopman

Im Falle eines Themas ist es eine gute Option, die Variable {{ directory }} zu verwenden, die den Pfad zum Motiv enthält.

{{ source(directory ~ '/images/my.svg') }}
1
5n00py

Für mich hat es funktioniert:

{% include '/images/my.svg' %}

Nur ein kurzes Update, wenn Sie Drupal 8 verwenden, da der Code in der vorherigen Antwort für mich nicht funktioniert hat. So habe ich es gemacht:

function theme_preprocess_page(&$variables) {
  $svg = file_get_contents(drupal_get_path('theme', 'theme_name') . '/images/my.svg');
  $variables['some_svg'] = $svg));
}

Und in der twig-Datei habe ich es so ausgegeben:

{{ some_svg|raw }}
0
Aljoša