Benutzer:Vollbracht/R.I.P.

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Dieser Begriff soll hier auf Entwicklungsversuche bezogen werden, die bis auf weiteres nicht von mir weiter geführt werden (können).

requiescat in pace

SVG direkt einbinden

An vielen Stelle wäre es wünschenswert, die Möglichkeiten von inline-SVG, oder auch kleiner SVG-Symbolschnipsel aus größeren SVG-Grafiken nutzen zu können. Diskutiert wird das noch in Phabricator (englisch, genau so wie auch:) Village pump.

Was in diesem Zusammenhang hier nicht funktioniert:

function p.svg(frame)
   local svgc = '<svg id="svg2" width="50" height="21"><path style="fill:none;stroke:black;stroke-width:2;" d="M 1,0 C 1,10 14,16 18,16 M 49,0 C 49,10 36,16 32,16 M 21,15.2 l 0,5.8 m 4,0 l 0,-5.7 m 4,-0.1 l 0,5.8" /><path style="fill:black;stroke:black;stroke-width:2;" d="M 1,20 C 10,20 14,18 17,17 L 17,20 Z M 49,20 C40,20 36,18 33,17 L33,20 Z" /></svg>'
  return svgc
end

oder mit selbem Ergebnis:

function p.svg(frame)
  local svg = mw.html.create('svg')
  local path1 = mw.html.create('path', {selfClosing=true})
  local path2 = mw.html.create('path', {selfClosing=true})
  svg
    :attr('id', 'svg2')
    :attr('width', '50')
    :attr('height', '21')
    :node(path1)
    :node(path2)
  path1
    :cssText('fill:none; stroke:black; stroke-width:2;')
    :attr('d', 'M 1,0 C 1,10 14,16 18,16 M 49,0 C 49,10 36,16 32,16 M 21,15.2 l 0,5.8 m 4,0 l 0,-5.7 m 4,-0.1 l 0,5.8')
  path2
      :cssText('fill:black; stroke:black; stroke-width:2;')
      :attr('d', 'M 1,20 C 10,20 14,18 17,17 L 17,20 Z M 49,20 C40,20 36,18 33,17 L33,20 Z')
    :done()
  return frame:preprocess('<div><p>' .. tostring(svg) .. '</p></div>')
end

Im Ergebnis wird der SVG-code als Text in der fertig gerenderten Wikipedia-Seite dargestellt. Öffnet man den Inspektor im Firefox, schneidet diesen Text aus und fügt ihn im selben Element als inner html wieder ein, wird er als Grafik gerendert.