aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2024-05-08 19:17:10 +0200
committerDenis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>2025-06-15 01:30:28 +0200
commit4ee9c036e1a3f174b31e372cf36b480fbb5480d4 (patch)
tree6fb177f00c71ce9c16ea7b171d7da4a38d2baa83 /Makefile
parenta71dbf534c62e94001e72dfb4742002f02b6bc04 (diff)
downloadhaunt-blog-4ee9c036e1a3f174b31e372cf36b480fbb5480d4.tar.gz
haunt-blog-4ee9c036e1a3f174b31e372cf36b480fbb5480d4.tar.bz2
haunt-blog-4ee9c036e1a3f174b31e372cf36b480fbb5480d4.zip
Makefile: html/markdown: use real make targets.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile171
1 files changed, 130 insertions, 41 deletions
diff --git a/Makefile b/Makefile
index e5826d1..6e085b1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# Copyright (C) 2023-2024 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# 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
@@ -29,9 +29,49 @@ VENDOR_REPLICANT_ARTWORK_PATH ?= external/vendor_replicant_artwork
SENTINEL =
-.PHONY: all build deploy generate-wordpress-articles help serve
-
-PAGES = \
+.PHONY: all build deploy generate-wordpress-articles help markdown serve
+
+# Input: wordpress/articles/2015_07_replicant-source-code-hosting-and-rmll-2015.html
+# Output: https://blog.replicant.us/2015/07/replicant-source-code-hosting-and-rmll-2015/
+define get-wordpress-article-url
+
+(use-modules (ice-9 regex))
+
+;; Input: wordpress/articles/2015_07_replicant-source-code-hosting-and-rmll-2015.html
+;; Output: 2015_07_replicant-source-code-hosting-and-rmll-2015.html
+(define (local-filename name)
+ (list-ref (string-split name #\/) 2))
+
+;; Output: 2015
+(define year
+ (car (string-split (local-filename "$@") #\_)))
+
+;; Output: 07
+(define month
+ (cadr (string-split (local-filename "$@") #\_)))
+
+;; Output: replicant-source-code-hosting-and-rmll-2015.html
+(define html-page
+ (regexp-substitute
+ #f
+ (string-match
+ "[0-9]{4}_[0-9]{2}_"
+ "$@")
+ 'post))
+
+;; Output: replicant-source-code-hosting-and-rmll-2015
+(define page-path
+ (regexp-substitute
+ #f
+ (string-match
+ ".html"
+ html-page)
+ 'pre))
+
+(string-append "https://blog.replicant.us/" year "/" month "/" page-path "/")
+endef
+
+WORDPRESS_PAGES = \
wordpress/pages/replicant_blog_page_8.html \
wordpress/pages/replicant_blog_page_7.html \
wordpress/pages/replicant_blog_page_6.html \
@@ -43,6 +83,81 @@ PAGES = \
wordpress/pages/replicant_blog_page_0.html \
$(SENTINEL)
+MARKDOWN_ARTICLES = \
+ markdown/2010_09_welcome-to-replicant.md \
+ markdown/2010_11_fdroid-a-free-software-alternative-to-google-market.md \
+ markdown/2011_03_new-replicant-test-images-available.md \
+ markdown/2011_04_replicant-2-2-sdk-available.md \
+ markdown/2011_04_replicant-lacks-tracking-antifeatures.md \
+ markdown/2011_05_replicant-2-2-preview-007.md \
+ markdown/2011_06_replicant-2-2-preview-008-is-out.md \
+ markdown/2011_08_nexus-s-support-in-replicant-being-worked-on.md \
+ markdown/2011_09_introducing-replicant-on-htc-dream-video.md \
+ markdown/2011_10_new-replicant-2-2-preview-images-0009-released.md \
+ markdown/2011_11_replicant-2-3-preview-images-for-nexus-one-released.md \
+ markdown/2011_11_replicant-on-nexus-s-preview.md \
+ markdown/2012_01_nexus-s-status-update-with-new-images.md \
+ markdown/2012_02_wiki-and-tracker-are-now-powered-by-redmine.md \
+ markdown/2012_03_galaxy-s-support-upcoming.md \
+ markdown/2012_04_new-set-of-replicant-2-3-images-including-galaxy-s-support.md \
+ markdown/2012_04_nexus-sgalaxy-s-privacy-issues.md \
+ markdown/2012_09_replicant-2-3-0004-images-release.md \
+ markdown/2012_09_replicant-2-3-0005-images-fixing-the-ussd-vulnerability.md \
+ markdown/2012_11_replicant-4-0-0001-images-release.md \
+ markdown/2013_01_replicant-4-0-sdk-release.md \
+ markdown/2013_02_replicant-4-0-0002-images-release.md \
+ markdown/2013_04_replicant-4-0-0003-images-release.md \
+ markdown/2013_07_announcing-the-free-software-foundation-fundraising-program-for-replicant.md \
+ markdown/2013_07_replicant-4-0-0004-images-release.md \
+ markdown/2013_08_opening-the-replicant-forums.md \
+ markdown/2013_10_replicant-4-0-0005-images-release.md \
+ markdown/2013_11_fairphone.md \
+ markdown/2014_01_replicant-4-2-kicks-out.md \
+ markdown/2014_03_unveiling-the-samsung-galaxy-back-door.md \
+ markdown/2014_06_replicant-4-2-on-the-goldelico-gta04.md \
+ markdown/2014_06_replicant-at-the-15th-libre-software-meeting-in-montpellier-france-this-july.md \
+ markdown/2014_07_replicant-4-2-0002-images-release.md \
+ markdown/2014_09_replicant-homepage-and-roadmap-for-the-future.md \
+ markdown/2014_12_replicant-4-2-0003-images-release.md \
+ markdown/2015_01_replicant-at-fosdem-2015.md \
+ markdown/2015_04_whats-happening-or-not-at-replicant.md \
+ markdown/2015_07_replicant-source-code-hosting-and-rmll-2015.md \
+ markdown/2015_07_rmll-feedback-optimus-black-advancement-and-cccamp.md \
+ markdown/2015_08_replicant-and-friends-at-chaos-communication-camp-2015.md \
+ markdown/2015_09_replicant-4-2-0004-images-release.md \
+ markdown/2015_09_upcoming-events-for-replicant-in-octobernovember-2015.md \
+ markdown/2015_12_shops-selling-devices-pre-installed-with-replicant.md \
+ markdown/2016_01_replicant-at-fosdem-2016.md \
+ markdown/2016_05_coliberator-2016-keynotes-and-workshops.md \
+ markdown/2016_07_media-from-2016-replicant-talks.md \
+ markdown/2016_07_replicant-at-pseshsf-2016.md \
+ markdown/2016_08_replicant-6-early-work-upstream-work-and-f-droid-issue.md \
+ markdown/2017_02_replicant-6-0-development-updates.md \
+ markdown/2017_04_there-wont-be-a-replicant-6-0-sdk-because-there-is-already-something-better.md \
+ markdown/2017_05_replicant-6-0-released.md \
+ markdown/2017_09_a-new-replicant-6-0-release.md \
+ markdown/2017_12_contributions-to-arcep-work-on-terminal-devices-and-public-consultation.md \
+ markdown/2017_12_third-replicant-6-0-release.md \
+ markdown/2018_01_les-terminaux-sont-ils-le-maillon-faible-de-louverture-dinternet.md \
+ markdown/2018_03_final-days-for-the-upstream-linux-allwinner-vpu-support-crowdfunding-campaign.md \
+ markdown/2019_01_meeting-point-at-fosdem.md \
+ markdown/2019_01_replicant-meeting-at-fosdem-2019.md \
+ markdown/2019_01_replicant-will-receive-a-device-from-necuno-solutions.md \
+ markdown/2019_06_replicant-contributors-meeting-the-2728-july-in-france.md \
+ markdown/2019_07_graphics-support-for-replicant-9.md \
+ markdown/2019_12_replicant-36c3.md \
+ markdown/2020_01_replicant-at-fosdem-2020.md \
+ markdown/2020_04_what-could-go-wrong-with-devices-that-have-non-replaceable-batteries.md \
+ markdown/2020_07_late-report-from-fosdem-2020.md \
+ markdown/2020_12_call-for-a-community-manager.md \
+ markdown/2021_05_presenting-replicants-community-manager.md \
+ markdown/2021_06_replicant-is-looking-for-volunteers-to-add-support-for-the-gsd4t-gps-chip.md \
+ markdown/2022_06_new-replicant-6-0-0004-release-and-replicant-11-status.md \
+ markdown/2023_02_replicant-at-fosdem-2023.md \
+ markdown/2023_12_replicant-37c3.md \
+ markdown/2024_03_replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences.md \
+ $(SENTINEL)
+
all: help
wordpress/articles:
@@ -60,48 +175,22 @@ generate-wordpress-articles: build
python3 haunthtml2wordpress.py \
./site/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences.html
-links.txt: $(PAGES)
+links.txt: $(WORDPRESS_PAGES)
@echo -n '' > $@
- @for f in $(PAGES) ; do \
+ @for f in $(WORDPRESS_PAGES) ; do \
echo "Processing $$f" > /dev/stderr ; \
guix shell -C python python-beautifulsoup4 -- \
python3 get_links.py $$f | sort -u >> $@ ; \
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
+wordpress/articles/%.html:
+ curl "$(guile $(get-wordpress-article-url))" -o $@
+
+markdown/%.md: wordpress/articles/%.html
+ mkdir -p markdown
+ $(CONVERT) $^ $@
+
+markdown: $(MARKDOWN_ARTICLES)
$(VENDOR_REPLICANT_ARTWORK_PATH):
git clone \
@@ -139,7 +228,7 @@ help:
"make links.txt # Create links.txt file with blog post links." \
" # For security reasons This file needs to be manually" \
" # reviewed manually before usage." \
- "make -B markdown # recreate markdown pages. To be done after reviewing links.txt." \
+ "make markdown # create markdown pages. To be done after reviewing links.txt." \
"make check # Run tests." \
serve: