From 58db2bbcbc9836fe36c91eff761e31edfd53f866 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 2 Feb 2019 06:02:41 +0000 Subject: hlmod: hoist out do_hl_lang sub We'll want to use to support highlighting syntax used by Markdown and possibly other markup languages (while retaining the raw plain-text layout and formatting). --- lib/PublicInbox/HlMod.pm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/HlMod.pm b/lib/PublicInbox/HlMod.pm index decfd714..284e4b18 100644 --- a/lib/PublicInbox/HlMod.pm +++ b/lib/PublicInbox/HlMod.pm @@ -83,19 +83,24 @@ sub _path2lang ($$) { sub do_hl { my ($self, $str, $path) = @_; my $lang = _path2lang($self, $path) if defined $path; + do_hl_lang($self, $str, $lang); +} + +sub do_hl_lang { + my ($self, $str, $lang) = @_; + my $dir = $self->{-dir}; my $langpath; + if (defined $lang) { $langpath = $dir->getLangPath("$lang.lang") or return; - $langpath = undef unless -f $langpath; + $lang = undef unless -f $langpath } - unless (defined $langpath) { + unless (defined $lang) { $lang = _shebang2lang($self, $str) or return; $langpath = $dir->getLangPath("$lang.lang") or return; - $langpath = undef unless -f $langpath; + return unless -f $langpath } - return unless defined $langpath; - my $gen = $self->{$langpath} ||= do { my $g = highlight::CodeGenerator::getInstance($highlight::HTML); $g->setFragmentCode(1); # generate html fragment -- cgit v1.2.3-24-ge0c7