diff -r da3b9ba1a7f0 -r 31e45dd2a894 genorg.pl
--- a/genorg.pl Wed Dec 18 00:58:13 2024 +1000
+++ b/genorg.pl Wed Dec 18 02:18:43 2024 +1000
@@ -37,34 +37,24 @@
my $domain = "p.bauherren.ovh";
my $max_rss = 30;
# The first page has one less article. Think of it as a feature.
-my $max_cat = 10;
+my $max_cat = 30;
my $blog_title = "Pranshu's blog";
my ($home, $about) = ("home.html", "about.html");
my $etc_files;
my $nav_id = "nav";
+my $rdesc = "description";
my $username = $ENV{LOGNAME} || $ENV{USER} || getpwuid ($<);
my $template = <<"END";
#+title: Test document
#+subtitle: This is the subtitle
+#+date: IMPORANT
#+author: $username
-#+keywords: tag thing | related
+#+keywords: tag->thing | rel->a
#+options: html-link-use-abs-url:nil html-postamble:auto
#+options: html-preamble:t html-scripts:nil html-style:t
#+options: html5-fancy:nil tex:t
-#+options: tex:mathjax
#+html_doctype: html5
-#+html_container: div
-#+html_content_class: content
-#+html_link_home:
-#+html_link_up:
-#+html_mathjax:
-#+html_equation_reference_format: \eqref{%s}
-#+html_head:
-#+html_head_extra:
-#+infojs_opt:
-#+creator: Emacs 31.0.50 (Org mode 9.7.11)
-#+latex_header:
END
my $req_config = <<"END";
@@ -153,7 +143,8 @@
VAR VALUE
where VAR can be:
emacs-path : The value should be path of emacs. 'emacs' by default.
- css : The path of the css file to use.
+ acss : The path of the css file to use for articles.
+ ccss : Path of css to use for cataogry pages.
in_dir : The directory that contains the files.
out_dir : the output directory.
no_name_dir: The directory for generate files. This means in_dir/no_name_dir
@@ -164,6 +155,8 @@
about : about file
domain : domain (for rss)
title : title of the blog
+ max_rss : max_rss entries
+ max_cat : max catagory entries before next page
As soon as config file comes accross '>>---', the rest of the file
is now the elisp code used in emacs startup.
@@ -174,15 +167,16 @@
- W3Schools Home Page
- https://www.w3schools.com
- Free web building tutorials"
+ TITLE
+ BLINK
+ RDESC"
END
my %config_vars =
(
'emacs-path' => \$emacs,
- css => \$art_css,
+ acss => \$art_css,
+ ccss => \$cat_css,
indir => \$dir,
outdir => \$outdir,
no_name_dir => \$no_name_dir,
@@ -191,7 +185,10 @@
home => \$home,
about => \$about,
domain => \$domain,
- title => \&blog_title
+ title => \$blog_title,
+ rdesc => \$rdesc,
+ max_rss => \$max_rss,
+ max_cat => \$max_cat
);
@@ -206,10 +203,10 @@
}
chomp;
my ($directive, $rest) = split /\s+/, $_, 2;
- if (exists($config_vars{$directive})) {
+ if (exists $config_vars{$directive}) {
${$config_vars{$directive}} = $rest;
} else {
- print "Unknown variable $directive\n";
+ die "Unknown variable $directive\n";
}
}
close $fh;
@@ -221,7 +218,7 @@
}
sub template ($file) {
- $file // die "-t needs an argument.\n";
+ $file // do {print $template; exit(1)};
$file =~ s/\.org$//;
open my $fh, '>', $file . ".org" or die $file . " couldn't be opened\n";
print $fh $template;
@@ -230,7 +227,7 @@
# Reletive file from the perspect of file1, to file2
sub prel_path ($from, $to) {
- return $to =~ s/^.//r if $from eq $to;
+ return $to if $from eq $to;
my \(@f1, @f2) = map [m{/[^/]+}g], ($from, $to);
# return substr($f1[$#f1], 1) if $from =~ $to;
while (@f1 && @f2 && $f1[0] =~ $f2[0]) {
@@ -304,35 +301,35 @@
my $cache_dom;
sub main {
- s!/*$!/! for ($outdir, $dir);
- -d $cdir or help_and_bye;
- mkdir $outdir;
- chdir $cdir or die "Couldn't access $cdir\n";
- read_config $config_file;
- my @navify_files = map {"$dir$_"} ($about, $home, $etc_files ? split(/[ \t]+/, $etc_files) : ());
- -d $dir or die "$dir doesn't exist \n";
- find (\&wanted, $dir);
- for my $f (@files_to_move) {
- my $dest = $f =~ s#$dir/?#$outdir#er;
- if (grep(m#^$f$#, @navify_files)) {
- # YAY we have to sub navbar and copy whoop whoop
- open my $file_tc, '<', $f or die "file no open, grrr!";
- open my $file_out, '>', $dest;
- local $/;
- print $file_out ((<$file_tc>) =~ s/NAV/nav_up("$dest" =~ s%.+?\/%%r,1)/er);
- map \&close, ($file_tc, $file_out);
- } else {
- copy $f, $dest;
- }
+ -d $cdir or help_and_bye;
+ mkdir $outdir;
+ chdir $cdir or die "Couldn't access $cdir\n";
+ read_config $config_file;
+ s!/*$!/! for ($outdir, $dir);
+ my @navify_files = map {"$dir$_"} ($about, $home, $etc_files ? split(/[ \t]+/, $etc_files) : ());
+ -d $dir or die "$dir doesn't exist \n";
+ find (\&wanted, $dir);
+ for my $f (@files_to_move) {
+ my $dest = $f =~ s#$dir/?#$outdir#er;
+ if (grep(m#^$f$#, @navify_files)) {
+ # YAY we have to sub navbar and copy whoop whoop
+ open my $file_tc, '<', $f or die "file no open, grrr!";
+ open my $file_out, '>', $dest;
+ local $/;
+ print $file_out ((<$file_tc>) =~ s/NAV/nav_up("$dest" =~ s%.+?\/%%r,1)/er);
+ map \&close, ($file_tc, $file_out);
+ } else {
+ copy $f, $dest;
}
- mkdir for @files_to_make;
- values %{conv_files()};
- $cache_dom = XML::LibXML->load_xml(location => $cache_file) if $cache && -f $cache_file;
- chdir $outdir;
- @arts = sort { $b->{date} <=> $a->{date}} map { html_fixup($_) } @org_exps;
- finalise_html();
- chdir '..';
- populate_cache();
+ }
+ mkdir for @files_to_make;
+ values %{conv_files()};
+ $cache_dom = XML::LibXML->load_xml(location => $cache_file) if $cache && -f $cache_file;
+ chdir $outdir;
+ @arts = sort { $b->{date} <=> $a->{date}} map { html_fixup($_) } @org_exps;
+ finalise_html();
+ chdir '..';
+ populate_cache();
}
sub populate_cache {
@@ -460,14 +457,14 @@
sub nav_up {
my ($path) = @_;
my @links = ($home, 'c/1.html', $about);
- my $nav = shift ? $navbar : "