كيف يمكنني تغيير تنسيق فرق GitWeb الافتراضي إلى `-Color-الكلمات"؟
سؤال
أريد gitweb لإخراج نفس تنسيق فرق git diff --color-words
. وبعد هل يعرف أي شخص كيف يمكنني القيام بذلك؟ نظرت إلى أتش تي أم أل :: fromansi ولكن لم أستطع الحصول عليها مع git diff --color-words
من سطر الأوامر.
المحلول
كيف استخدمت أتش تي أم أل :: fromansi.ب لأنه يعمل بالنسبة لي، باستخدام الأمر التالي عملت كما المقصود
git diff --color-words HEAD^ HEAD |
perl -wle '
use HTML::FromANSI;
my @lines = <STDIN>;
foreach my $line (@lines) {
chomp $line;
print ansi2html($line);
}' > tmp.html
على الرغم من أنه إذا كنت تريد إخراج قابلة للاستخدام، وليس بالكاد مرئيا نصا بيضاء على الخلفية السوداء، فربما تحتاج إلى تكوين HTML :: FromanSi. Scriptlet أعلاه هو مجرد دليل على رمز مفهوم (لا في أفضل نمط).
راجع للشغل أنا لست متأكدا من جودة أتش تي أم أل :: fromansi. وحدة؛ لم يتم تثبيت (باستخدام cpan
) بالنسبة لي دون قوة (ولكن قد تكون مشكلة في المصطلح :: VT102 :: لا حدود هذه الوحدة تتطلب).
ansi2html
الروتين الفرعي له مشاكل في بعض الخطوط (أعتقد أن الخطوط مع حرف نهاية مضمن / متأمل، وخط خالي / سلسلة فارغة، وإنتاج Use of uninitialized value in concatenation (.) or string at .../HTML/FromANSI.pm line 353, <STDIN> line NN.
تحذير. لهذا السبب اضطررت إلى chomp
خطوط (وقد تكون هذه هي المشكلة التي قضيتها في عمل HTML :: SILLANSI Work).
أيضا HTML التي تنتجها هذه الوحدة هي فظيعة للغاية، باستخدام قديم ومتهتمين <font face='...' style ='...'>
علامة جنبا إلى جنب مع الحديثة <span style='...'>
بطاقة شعار؛ أيضا لا أرى خيارا لاستخدام CSS بدلا من نمط مضمون.