كيف يمكنني تغيير تنسيق فرق GitWeb الافتراضي إلى `-Color-الكلمات"؟

StackOverflow https://stackoverflow.com/questions/1518178

  •  19-09-2019
  •  | 
  •  

سؤال

أريد 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 بدلا من نمط مضمون.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top