# Copyright (C) 2023 Denis 'GNUtoo' Carikli # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . CURL ?= curl BLOG_URL ?= https://blog.replicant.us/page GUIX_COMMIT ?= b25b94335a3ee8d68d2145da8e5ea0325ecea451 GUIX_SHELL ?= guix time-machine --commit=$(GUIX_COMMIT) -- shell -C GUIX_PACKAGES ?= python python-beautifulsoup4 python-html2text python-sh CONVERT ?= $(GUIX_SHELL) $(GUIX_PACKAGES) -- python3 convert.py SENTINEL = .PHONY: all build help serve PAGES = \ wordpress/replicant_blog_page_8.html \ wordpress/replicant_blog_page_7.html \ wordpress/replicant_blog_page_6.html \ wordpress/replicant_blog_page_5.html \ wordpress/replicant_blog_page_4.html \ wordpress/replicant_blog_page_3.html \ wordpress/replicant_blog_page_2.html \ wordpress/replicant_blog_page_1.html \ wordpress/replicant_blog_page_0.html \ $(SENTINEL) all: help wordpress/articles: mkdir -p $@ wordpress/pages: mkdir -p $@ wordpress/pages/replicant_blog_page_%.html: wordpress $(CURL) $(BLOG_URL)/$(subst replicant_blog_page_,,$*)/ -o $@ links.txt: $(PAGES) @echo -n '' > $@ @for f in $(PAGES) ; do \ echo "Processing $$f" > /dev/stderr ; \ guix shell -C python python-beautifulsoup4 -- \ python3 get_links.py $$f >> $@ ; \ done # do not depend on links.txt as a human is supposed to review it manually html: wordpress/articles mkdir -p $@ && \ for url in `cat links.txt` ; do \ if [ ! -f wordpress/articles/`echo "$${url}" | \ sed 's#https://blog.replicant.us/##' | \ sed 's#/$$##'| \ sed 's#/#_#g'`.html ] ; then \ curl "$${url}" -o \ wordpress/articles/`echo "$${url}" | \ sed 's#https://blog.replicant.us/##' | \ sed 's#/$$##'| \ sed 's#/#_#g'`.html ; \ fi \ done # TODO: erase wordpress/articles directory if that fails for # some reason. markdown: html mkdir -p $@ && \ for url in `cat links.txt` ; do \ echo "$${url}" | \ sed 's#https://blog.replicant.us/##' | \ sed 's#/$$##' ; \ $(CONVERT) \ wordpress/articles/`echo "$${url}" | \ sed 's#https://blog.replicant.us/##' | \ sed 's#/$$##'| \ sed 's#/#_#g'`.html \ > \ markdown/`echo "$${url}" | \ sed 's#https://blog.replicant.us/##' | \ sed 's#/$$##'| \ sed 's#/#_#g'`.md ; \ done build: haunt build help: @printf "%s\n\t%s\n\t%s\n\t%s\n\t%s\n" \ "Available commands:" \ "links.txt # Create links.txt file with blog post links." \ " # For security reasons This file needs to be manually " \ " # reviewed manually before usage." \ "markdown # create markdown pages. To be done after reviewing links.txt." \ serve: haunt serve -w -p $(HAUNT_PORT) website.tar.gz: build tar \ --exclude-vcs \ --format=gnu \ --owner=0 --group=0 --numeric-owner \ --sort=name \ -czf \ website.tar.gz \ site \ pages/img \ index.html \ --transform="s#^site#web#" \ --transform="s#^pages/img/#web/img/#"