Draw.io SVG в Викимедиа, как решить проблему XHTML?

Я надеялся создать SVG-диаграмму с помощью Draw.io и загрузить ее в Викимедиа, чтобы ее можно было использовать в Википедии.

Однако svg Draw.io использует XHTML, а Викимедиа запретила XHTML из соображений безопасности. Это означает, что мне придется каким-то образом конвертировать XHTML в HTML5. Тем не менее, я попытался вручную настроить его, что позволило ему пройти, но загрузка Викимедиа была повреждена, поэтому svg пуст.

Итак, есть ли способ обойти это? Мне хотелось бы верить, что векторные программы, такие как Inkscape, поддерживают такое преобразование, но я просто этого не вижу.

Пример SVG Draw.io

<?xml version = "1.0" encoding = "UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns = "http://www.w3.org/2000/svg" style = "background-color: rgb(255, 255, 255);" xmlns:xlink = "http://www.w3.org/1999/xlink" version = "1.1" width = "1491px" height = "1901px" viewBox = "-0.5 -0.5 1491 1901"><defs/>
<rect fill = "#ffffff" width = "100%" height = "100%" x = "0" y = "0"/><g><g data-cell-id = "0"><g data-cell-id = "1"><g data-cell-id = "lHPyWN3xTS5u2yIX5tx5-5"><g><path d = "M 610 60 L 610 80 L 460 80 L 460 93.63" fill = "none" stroke = "rgb(0, 0, 0)" stroke-miterlimit = "10" pointer-events = "stroke"/><path d = "M 460 98.88 L 456.5 91.88 L 460 93.63 L 463.5 91.88 Z" fill = "rgb(0, 0, 0)" stroke = "rgb(0, 0, 0)" stroke-miterlimit = "10" pointer-events = "all"/></g></g><g data-cell-id = "lHPyWN3xTS5u2yIX5tx5-6">

Викимедиа говорит следующее:

This SVG file contains an illegal namespace "http://www.w3.org/1999/xhtml".

Лучше всего спросить на commons.wikimedia.org/wiki/Commons:Graphic_Lab/… за советом викиграфиста. Они лучше всех знают, что пошло не так.

ccprog 29.06.2024 17:32

Не могли бы вы добавить пример кода, который экспортирует Draw.io?

chrwahl 29.06.2024 18:32

Это тег <div>, включающий атрибут пространства имен — ничего необычного. Можете ли вы добавить больше кода, чтобы мы могли видеть элементы SVG в контексте HTML?

chrwahl 30.06.2024 10:27
Создание фильтров для вашего сайта
Создание фильтров для вашего сайта
Фильтры - удобный инструмент в арсенале веб-дизайнера. Они позволяют изменять элементы на странице с помощью всего нескольких строк кода. Эти...
Анимация SVG-узоров без единой строки CSS
Анимация SVG-узоров без единой строки CSS
Недавно я работал над веб-проектом, который позволил мне поэкспериментировать с шаблонами SVG. С SVG очень приятно работать, как только вы получите...
Как использовать d3.js для рисования 2D SVG-элементов в приложении Angular?
Как использовать d3.js для рисования 2D SVG-элементов в приложении Angular?
D3.js - это обширная библиотека, используемая для привязки произвольных данных к объектной модели документа (DOM). Мы разберем основные варианты...
0
3
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно сообщению, которое вы получаете, и документации по экспорту SVG draw.io, проблема, с которой вы столкнулись, заключается в том, что ваш SVG использует форматированные текстовые узлы, которые draw.io может экспортировать только с использованием встроенных foreignObject элементов из HTML. пространство имен (в основном фрагменты стилизованного HTML, позволяющие переносить строки и форматировать дочерние теги).

Единственный способ получить «чистый» экспорт диаграмм SVG с одним пространством имен — это убедиться, что для всех текстовых объектов отключены параметры «Перенос по словам» и «Форматированный текст».

Другие вопросы по теме