2017-08-02 186 views
-1

我用Incskape創建了一個svg文件。 它包含一個文本元素是這樣的:如何在svg文件(Inkscape)中保留換行符?

<text 
    [..]><tspan 
    [..] 
    style="font-style:normal;fill:#c913ff;fill-opacity:1">My Text</tspan></text> 

我想使用git來跟蹤我的變化。 由於git使用整行來查找更改,我使用文本編輯器編輯svg文件以將樣式屬性與文本本身分開。

<text 
    [..]><tspan 
    [..] 
    style="font-style:normal;fill:#c913ff;fill-opacity:1"> 
My Text 
</tspan></text> 

這樣我就可以改變風格和文本在不同的提交而不影響其他。

不幸的是,Inkscape用每次保存重寫svg文件,文本回到與樣式相同的行。 :(

有沒有一種方法,以防止從Inkscape的這樣做?

我知道有可能是一種變通方法,通過使用某種的風格變量和更改另一部分OIF文件中變量的值。 但我並不想這樣做。

+0

我翻譯自德國。 所以'普通的SVG'可能是'plain SVG'的英文。 –

回答

0

以下的解決方法爲我工作。

當我將文件保存爲normal SVG,而不是Inkscape SVG文件的格式,因爲我希望它是。

<text 
    transform="scale(0.97808647,1.0224045)" 
    id="text3779" 
    y="396.1929" 
    x="159.78862" 
    style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:Corbel;-inkscape-font-specification:'Corbel Bold';letter-spacing:0px;word-spacing:0px;fill:#ff9715;fill-opacity:1;stroke:none" 
    xml:space="preserve"><tspan 
    style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:124.21698761px;line-height:1.25;font-family:Corbel;-inkscape-font-specification:'Corbel Bold';fill:#ff9715;fill-opacity:1" 
    y="396.1929" 
    x="159.78862" 
    id="tspan3781">My Text</tspan></text> 

然而,這僅僅是一個解決辦法,因爲Inkscape的SVG的可能會超過正常SVG一定的優勢。

0

你可以爲Git編寫一個clean過濾器,這樣你的svg文件在升級之前就會縮進。你會把這樣的事情在你的.gitattributes文件(在你的倉庫根目錄中創建它,如果你沒有的話):

*.svg filter=indent 

然後調整自己的混帳配置通知Git過濾器做什麼。假設你已經在這裏安裝indent

git config filter.indent.clean indent 
git config filter.indent.smudge cat 

這將通過舉辦之前所謂的「縮進」程序運行所有SVG的文件,因此他們似乎很好地格式化您的回購和日誌會看起來更好。當檢查出文件,他們是通過cat不修改文件跑去。

+0

聽起來像一個非常好的工作。 我會看看它,當我得到了一些時間。 –