Ink-Bash is a Bash script (UNIX
ShellScript) to help the script creation for handle SVG, focused on Inkscape extension creation.
Ink-Bash é um script Bash (
ShellScript UNIX) que facilita a criação de scripts para manipulação de SVG, focando na criação de extensões para o Inkscape.
How to Install Ink-Bash / Como Instalar Ink-Bash
You need to download the file
ink-bash.tar.gz and puth it in one of this directories:
- GNU/Linux users:
Global Instalation: (for all users)
/usr/share/inkscape/extensions
Local Instalation: (only for you)
~/.inkscape/extensions
- OS X users:
Global Instalation: (for all users)
/Applications/Inkscape.app/Contents/Resources/extensions
Local Instalation: (only for you)
~/.inkscape/extensions
- Windows users:
C:\Program files\Inkscape\share\extensions
Execute "inkscape -x" to confirm!
Don't forget to unpack the file ink-bash.tar.gz in the selected directory. ;-]
Você deve baixar o arquivo
ink-bash.tar.gz e coloca-lo num dos seguintes diretórios:
- Usuários GNU/Linux:
Instalação Global: (para todos)
/usr/share/inkscape/extensions
Instalação Local: (apenas para você)
~/.inkscape/extensions
- Usuários OS X:
Instalação Global: (para todos)
/Applications/Inkscape.app/Contents/Resources/extensions
Instalação Local: (apenas para você)
~/.inkscape/extensions
- Usuários Windows:
C:\Arquivos de programa\Inkscape\share\extensions
Execute "inkscape -x" para confirmar!
Não esqueça de descompactar o arquivo ink-bash.tar.gz no diretório escolhido. ;-]
Programers Documentation / Documentação para Programadores
This Bash script show a way for get ant modify a SVG element
without broke it's structure and the original indentation:
Esse bash script mostra uma forma de capturar e modificar um elemento
em um SVG sem quebrar sua estrutura e identação original:
#!/bin/bash
#23456789012345678901234567890123456789012345678901234567
# Cria variáveis base e incorpora funções úteis:
. "$( dirname $0 )/ink-bash-base.sh"
# Pega apenas o primeiro argumento ID, caso mais de um seja enviado:
id="$( getArg --id "$@" | head -n 1 )"
# Pega o argumento de cor:
cor="$( getArg --cor "$@" )"
# Inicia o parcer que criará um arquivo temporário onde outras
# funções poderao trabalhar:
startSvgParser
# Seleciona um elemento pelo ID e já modifica sua cor:
elemento="$( getElementById $id | setStyle fill "$cor" )"
# Pega o valor do atributo transformação do elemento selecionado:
transf="$( echo "$elemento" | getAtribute transform )"
# Modifica o atributo transform adicionando uma transformação a lista:
elemento="$( echo "$elemento" | setAtribute transform "$transf rotate(10)" )"
# Substitui o elemento com ID $id pelo elemento modificado:
echo "$elemento" | replaceElementById $id
# Adiciona código SVG extra, antes de certo elemento:
echo -n "<text>Texto antes do id $id</text>" | addSvgCodeBeforeElementId $id
# Imprime o código SVG para o Inkscape aplicar as modificações:
printSVG
# Desfaz tudo o que for temporário para concluir o trabalho:
endSvgParser
#!/bin/bash
#23456789012345678901234567890123456789012345678901234567
# Cria variáveis base e incorpora funções úteis:
. "$( dirname $0 )/ink-bash-base.sh"
# Pega apenas o primeiro argumento ID, caso mais de um seja enviado:
id="$( getArg --id "$@" | head -n 1 )"
# Pega o argumento de cor:
cor="$( getArg --cor "$@" )"
# Inicia o parcer que criará um arquivo temporário onde outras
# funções poderao trabalhar:
startSvgParser
# Seleciona um elemento pelo ID e já modifica sua cor:
elemento="$( getElementById $id | setStyle fill "$cor" )"
# Pega o valor do atributo transformação do elemento selecionado:
transf="$( echo "$elemento" | getAtribute transform )"
# Modifica o atributo transform adicionando uma transformação a lista:
elemento="$( echo "$elemento" | setAtribute transform "$transf rotate(10)" )"
# Substitui o elemento com ID $id pelo elemento modificado:
echo "$elemento" | replaceElementById $id
# Adiciona código SVG extra, antes de certo elemento:
echo -n "<text>Texto antes do id $id</text>" | addSvgCodeBeforeElementId $id
# Imprime o código SVG para o Inkscape aplicar as modificações:
printSVG
# Desfaz tudo o que for temporário para concluir o trabalho:
endSvgParser
Variáveis
-
$svgFile
-
$br
-
$apo
-
$svgTMP
Funções
unscapeSvgCode
startSvgParser
endSvgParser
getElementById
setStyle
getAtribute
setAtribute
replaceElementById
appendSvgCode
addSvgCodeBeforeElementId
addSvgCodeAfterElementId
printSVG