Outils pour utilisateurs

Outils du site


tech:diagramme_gnu_linux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:diagramme_gnu_linux [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:diagramme_gnu_linux [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon}}
 +
 +# Diagramme sous GNU/Linux
 +
 +Voir : 
 +
 +* Diagrams.net (Aka Draw.IO)
 +* draw io desktop
 +* http://blog.nicolargo.com/2008/04/dia-alternative-a-visio-sous-mac-os-x.html
 +* http://www.paperblog.fr/654264/dia-alternative-a-visio-sous-mac-os-x
 +* [[utiliser-git-pour-vos-logos-en-svg]]
 +* PenPlot (SVG) - UX - alternative à Figma et Sketch.
 +* https://cryptpad.fr/diagram/
 +
 +Logos libres en SVG :
 +* https://www.svgrepo.com/
 +
 +Voir aussi :
 +FIXME
 +* Diagramme en Code avec PlantUML
 +
 +http://www.softia-systems.net/contribs/dia_split_svg.py
 +
 +~~~python
 +#
 +# Script realise par THOMAS DUBOIS pour SOFTIA SYSTEMS
 +#       BSD LICENCE
 +# Merci d'envoyer un mail a tdubois@softia-systems.net
 +# si vous utilisez, transmettez, ou reactualiser le script
 +# (juste pour un suivi du travail :))
 +# Finalise le 28/08/2007
 +#
 +
 +# Ce script ne prends pas d'argument.
 +# Il creera dans le repertoire courant un repertoire svg, et shape
 +# Le repertoire svg contiendra les .svg de chaque objet
 +# Le repertoire shape contiendra les .shape correspondant au SVG ainsi 
 +# qu'un PNG pour la preview
 +# Un fichier Yourshape.sheet sera creer.
 +# Le fichier .sheet doit etre modifier afin de changer
 +# le nom de la feuille apparaissant dans dia
 +
 +# Le fichier shape est a copier dans votre ~/.dia/shape/Votreshape
 +# Le fichier Yourshape.sheet est a copier dans le repertoire ~/dia/sheets/
 +# sous le nom Votreshape.sheet
 +
 +
 +
 +# Debut du script
 +
 +from xml.dom import minidom
 +# Fichier SVG d'entree a parser
 +xmldoc = minidom.parse('/path/to/file.svg')
 +
 +# probleme de locale, pas trouve d'autre solution ....
 +# si quelqu'un a qqchose a proposer
 +import locale, sys
 +reload(sys)
 +loc = locale.getdefaultlocale()
 +if loc[1]:
 +    encoding = loc[1]
 +
 +# une version Non-Unicode retournera AttributeError...
 +if encoding:
 +    sys.setdefaultencoding(encoding)
 +
 +
 +import os
 +import re
 +import popen2
 +
 +# recuperation des groups d'element, ici les objets
 +reflist = xmldoc.getElementsByTagName('g')
 +
 +shapehead = """<?xml version="1.0"?>
 +
 +<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns"
 +xmlns:svg="http://www.w3.org/2000/svg">
 +"""
 +
 +shapetail = """
 +</svg:svg>
 +</shape>"""
 +
 +
 +svghead = """<?xml version="1.0" standalone="no"?>
 +<!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">
 +"""
 +
 +svgtail = "\n</svg>"
 +
 +# Creation du fichier sheet
 +sheetfile = open("YourSheet.sheet", "w")
 +sheetfile.write("""<?xml version="1.0" encoding="iso-8859-1"?>
 +
 +<sheet xmlns="http://www.lysator.liu.se/~alla/dia/dia-sheet-ns">
 +  <name>Sample</name>
 +  <description>A collection of sample shapes.</description>
 +  <contents>
 +""")
 +
 +# Creation de repertoires pour stocker les fichiers
 +os.mkdir("svg")
 +os.mkdir("shape")
 +
 +i = 0
 +for block in reflist:
 + #ouverture du fichier svg de l'objet courant et ecriture des entetes
 + svgfile = open("svg/" + str(i) + ".svg", 'w')
 + svgfile.write(svghead)
 + svgfile.write("<desc>%i</desc>\n"%(i))
 + shapefile = open("shape/" + str(i) + ".shape", 'w')
 + shapefile.write(shapehead)
 + shapefile.write("<name>%s</name>\n"%(i))
 + shapefile.write("<icon>%s.png</icon>\n<svg:svg>\n"%(i))
 +
 + # Regexp pour enlever nombre de classes qui sont incompatible avec dia
 + p = re.compile('sodipodi:[a-z0-9\-]+=".*?\"')
 + chaine =  p.sub(`, block.toxml())
 + svgfile.write(chaine)
 + chaine = chaine.replace("<a:","")
 + chaine = chaine.replace("<","<svg:")
 + chaine = chaine.replace("<svg:/","</svg:")
 + p = re.compile('i:[a-z\-]+=".*?\"')
 + chaine =  p.sub(`, chaine)
 + p = re.compile('inkscape:[a-z\-]+=".*?\"')
 + chaine =  p.sub(`, chaine)
 + shapefile.write(chaine)
 + shapefile.write(shapetail)
 + shapefile.close()
 + sheetfile.write("<object name=\"%s\">\n"%(i))
 + sheetfile.write("<description>%s</description>\n"%(i))
 + sheetfile.write("</object>\n")
 + # conversion des .svg de chaque objet svg en png
 + popen2.popen3("/usr/bin/inkscape svg/%s.svg -e shape/%s.png -d 90 -z -D"%(i,i))
 + shapefile.close()
 + svgfile.write(svgtail)
 + svgfile.close()
 + i += 1
 +
 +sheetfile.write("""</contents>
 +</sheet>""")
 +sheetfile.close()
 +~~~
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki