From 8a4da6809cf9368cd6a5dd7351181ea4256453f9 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sat, 3 Jan 2026 12:58:01 +0800 Subject: Perl scripts, shell script, benchmarks. --- _site/cgi-bin/indexer.pl | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 _site/cgi-bin/indexer.pl (limited to '_site/cgi-bin/indexer.pl') diff --git a/_site/cgi-bin/indexer.pl b/_site/cgi-bin/indexer.pl new file mode 100644 index 0000000..0dcd7e2 --- /dev/null +++ b/_site/cgi-bin/indexer.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use Storable qw(nstore); +use HTML::Entities qw(decode_entities); + +# --- Configuration --- +my $built_site_dir = '../log'; +my $output_file = 'search_index.dat'; +my %index; + +print "Building search index from $built_site_dir...\n"; + +foreach my $path (glob("$built_site_dir/*/index.html")) { + next unless open(my $fh, '<:utf8', $path); + my $html = do { local $/; <$fh> }; + close($fh); + + # Extract Title and Main Content + my ($title) = $html =~ m|(.*?)|is || "Unknown"; + my ($main) = $html; + + # Normalize path + my $url = $path; + + $index{$url} = { + t => $title || "Untitled", + c => $main + }; +} + +nstore(\%index, $output_file); +printf("Index complete: %d files (%.2f KB)\n", scalar(keys %index), (-s $output_file) / 1024); -- cgit v1.2.3