Crayon Evolus est un puissant outil de création de maquettes d'interface graphique FOSS. Malheureusement, il ne prend pas en charge l'exportation SVG. Existe-t-il un moyen de convertir mes maquettes Pencil en SVG ?
Réponses
Trop de publicités?Vue d'ensemble
Il s'avère qu'il existe un moyen de faire cela en utilisant xsltproc
un processeur xslt en ligne de commande. La feuille de style que nous allons utiliser a été développée par Robert Kosten et publié sur le suivi des problèmes de la page du projet evolus Pencil .
Cité dans le rapport de bogue :
J'aimerais que cela se fasse par le biais de l'interface utilisateur, mais en attendant, j'ai écrit une petite feuille XSLT qui ne fait que retirer tout ce qui se trouve dans le fichier http://www.evolus.vn/Namespace/Pencil espace de noms (gestion de la plupart des cas données non nécessaires dans une exportation de toute façon). Le fichier résultant devrait fonctionner dans Firefox (où la balise foreignObject de SVG est bien supportée), mais supportée), mais des bibliothèques comme batik (utilisée dans apache fop par exemple) auront des problèmes avec le XHTML, XUL ou XLink qu'il contient. J'ai l'intention de d'étendre la feuille pour supporter au moins quelques-uns de ces éléments que je éléments que je rencontre, mais je ne ferai pas de promesses que je ne pourrai pas tenir ;-)
Le fichier ci-joint fait également partie de ma collection d'outils. (utilisés pour générer DocBook et ensuite PDF pour mes projets) : https://github.com/Robert-Kosten/de.robertkosten.tools/blob/master/xsl/ep2svg.xsl
Il est actuellement sous GPLv3, mais je serais prêt à le diffuser sous GPLv2 pour que personne n'ait à invoquer "toute version ultérieure" si quelqu'un souhaite l'inclure dans son logiciel ;-) l'inclure dans son logiciel ;-)
Installation
Vous pouvez soit télécharger la feuille de style à partir du lien ci-dessus, soit copier et coller le passage suivant dans un fichier nommé ep2svg.xsl
:
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file is part of de.robertkosten.tools. de.robertkosten.tools is
free software: you can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
de.robertkosten.tools is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details. You should have received a copy of the GNU
General Public License along with de.robertkosten.tools. If not, see
<http://www.gnu.org/licenses/>.
I suggest calling this with:
xsltproc -o dir/ ep2svg.xsl input.ep
@author Robert Kosten
-->
<xsl:stylesheet version="1.0" extension-element-prefixes="exsl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/2000/svg" xmlns:p="http://www.evolus.vn/Namespace/Pencil" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:exsl="http://exslt.org/common">
<xsl:output omit-xml-declaration="yes" />
<xsl:strip-space elements="p:Document p:Pages p:Page"/>
<xi:include href="includes/tools.xsl" />
<xsl:template match="/p:Document">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="p:Pages">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="p:Page">
<exsl:document href="{p:Properties/p:Property[@name='name']}.svg" method="xml" version="1.0" encoding="utf-8" doctype-public="-//W3C//DTD SVG 1.1//EN" doctype-system="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" media-type="image/svg+xml">
<svg version="1.1">
<xsl:apply-templates />
</svg>
</exsl:document>
</xsl:template>
<xsl:template match="p:Content">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="*[namespace-uri() != 'http://www.evolus.vn/Namespace/Pencil']">
<xsl:copy>
<xsl:copy-of select="@*[namespace-uri() != 'http://www.evolus.vn/Namespace/Pencil']" />
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<!-- Void -->
</xsl:template>
</xsl:stylesheet>
Enregistrez le script suivant en tant que ep2svg.sh
:
#!/bin/bash
# converts evol.us Pencil mockup files to svg
# (c) 2013 Glutanimate (http://askubuntu.com/users/81372/)
# released under GNU GPL v2
# XSL source: (c) 2013 Robert Kosten (https://code.google.com/p/evoluspencil/issues/detail?id=260#c1)
XSLFILE="./ep2svg.xsl"
WORKINGDIR=$(dirname "$1")
xsltproc -o "$WORKINGDIR"/ "$XSLFILE" "$@"
Veillez à indiquer XSLFILE
au bon endroit.
Utilisation :
ep2svg.sh <mockup1.ep> <mockup2.ep> ...
Si vous utilisez les maquettes avec Java et le réseau de développement maven, vous pouvez utiliser le plugin maven. pencil2svg-maven-plugin .