আমি গ্রুর্ট টাস্ক দিয়ে এটি করি। "গ্রান্ট-টেক্সট-রিপ্লেসমেন্ট" ব্যবহার করে আমি আমার মাইনযুক্ত এসভিজি (এসভিজিমন) একটি কাস্টম নিয়মিত এক্সপ্রেশনের মাধ্যমে পাস করতে সক্ষম হয়েছি যা সমস্ত গার্ল্ড শ্রেণির রেফারেন্সগুলিকে যথাযথ শ্রেণীর সাথে প্রতিস্থাপন করে।
উদাহরণস্বরূপ, উদাহরণ হিসাবে শ্রেণি = "গাছ" হিসাবে স্তর / অবজেক্টের নাম ঘোষণা করুন । এটি চিত্রক দ্বারা id = "শ্রেণি =" গাছ "" হিসাবে রফতানি করবে । নীচের গ্রান্ট টাস্ক এটির যত্ন নেবে এবং এটিকে শ্রেণি = "ট্রি" করবে । আমি আরও কয়েকটি সাবটাস্কের নীচে আটকানো যা একটি আইডি ক্লিনআপ করবে (প্রস্তাবিত)।
replace: {
// ID cleanup: performs a manual ID cleanup as Illustrator exports a mess
illustrator: {
src: ['assets/svg/optimised/*.svg'],
overwrite: true,
replacements: [{
// Remove escaped underscore character
from: '_x5F_',
to: '_'
}, {
// Replace class names with proper classes
//class_x3D__x22_tank-option_x22__2_
from: /id\=\"class_x3D__x22_(.+?)_x22_(.*?)\"/gi,
to: function(matchedWord, index, fullText, regexMatches) {
return 'class="'+ regexMatches[0].toLowerCase()+'"';
}
}, {
// Lowercase all ids
from: /id\=\"(.+?)\"/gi,
to: function(matchedWord, index, fullText, regexMatches) {
return 'id="'+ regexMatches[0].toLowerCase()+'"';
}
}, {
// Lowercase all id references to match the previous replace rule
from: /url\(\#(.+?)\)/gi,
to: function(matchedWord, index, fullText, regexMatches) {
return 'url(#'+ regexMatches[0].toLowerCase() +')';
}
}, {
// Lowercase all id href to match the previous replace rule
from: /href\=\"\#(.+?)\"/gi,
to: function(matchedWord, index, fullText, regexMatches) {
return 'href="#'+ regexMatches[0].toLowerCase() +'"';
}
}, {
// Remove all font references as we will use CSS for this
from: /font\-family\=\"(.+?)\"/gi,
to: function(matchedWord, index, fullText, regexMatches) {
return '';
}
}]
}
}
তারপরে আপনি আপনার গ্রান্টফাইলে এই কাজটিকে কল করতে পারেন:
grunt.registerTask('svgclean', [
'replace:illustrator'
]);