From d41622674b2998e178a53fed02351ba2ae1379b8 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Wed, 21 Feb 2024 18:55:52 +0100 Subject: add helper script xmp2rdfxml, and make targets turtle-from-* dotgraph-from-* --- Makefile | 10 ++++++++++ bin/xmp2rdfxml | 25 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100755 bin/xmp2rdfxml diff --git a/Makefile b/Makefile index af1651b..beaa1f7 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +BASE_IRI = https://thoughtroam.abcdefghijklmnopqrstuvxyzæøå.dk/ + ARTICLES = learn code use all: preview @@ -23,3 +25,11 @@ $(ARTICLES:%=wordcount-of-%): wordcount-of-%: QUARTO_LOG_LEVEL=quiet \ quarto render $*/index.qmd --to plain --columns=9999 --output - \ | perl -nE 'next if /^-*$$/; $$bilag += $$_ eq "Bilag 1\n"; $$chars += length unless $$bilag; END { say $$chars }' + +$(ARTICLES:%=turtle-from-%): turtle-from-%: _site/%/index.pdf + @bin/xmp2rdfxml _site/$*/index.pdf \ + | rapper -i rdfxml -o turtle - $(BASE_IRI)$*/ + +$(ARTICLES:%=dotgraph-from-%): dotgraph-from-%: _site/%/index.pdf + @bin/xmp2rdfxml _site/$*/index.pdf \ + | rapper -i rdfxml -o dot - $(BASE_IRI)$*/ diff --git a/bin/xmp2rdfxml b/bin/xmp2rdfxml new file mode 100755 index 0000000..81011b9 --- /dev/null +++ b/bin/xmp2rdfxml @@ -0,0 +1,25 @@ +#!/usr/bin/perl + +# extract XMP data from PDF file and unwrap as generic RDF/XML + +use v5.36; +use strict; + +use PDF::API2; + +my $xml = PDF::API2->open( $ARGV[0] )->xml_metadata(); + +# strip noise +$xml =~ s,^PDF version of requested feature [^<]*,,; + +# replace whitespace and surrounding XMP boilerplate with XML boilerplate +$xml =~ s,\s*<\?xpacket [^>]+>\s*,,; +$xml =~ s,]+>,,; + +# strip trailing boilerplate +$xml =~ s,\s*,,; +$xml =~ s,\s*<\?xpacket [^>]+>,,; + +say $xml; + +1; -- cgit v1.2.3