diff options
| author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2024-05-09 19:32:17 +0200 |
|---|---|---|
| committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2025-06-15 01:30:29 +0200 |
| commit | b9e24d2b8000cb16bc4167b684e82667471061ff (patch) | |
| tree | 180053906fee67e148e1366c75ebba1bb4ef176c | |
| parent | 731ddadbb5760c3ee5619c493d856374b4bea16d (diff) | |
| download | haunt-blog-b9e24d2b8000cb16bc4167b684e82667471061ff.tar.gz haunt-blog-b9e24d2b8000cb16bc4167b684e82667471061ff.tar.bz2 haunt-blog-b9e24d2b8000cb16bc4167b684e82667471061ff.zip | |
tests: add forgetten test files
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
| -rw-r--r-- | tests/Makefile | 264 | ||||
| -rw-r--r-- | tests/Makefile.empty | 190 | ||||
| -rw-r--r-- | tests/links.txt | 72 | ||||
| -rw-r--r-- | tests/markdown-article-lines.txt | 72 |
4 files changed, 598 insertions, 0 deletions
diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 0000000..1259aee --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,264 @@ +# 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 +# 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 <https://www.gnu.org/licenses/>. + +CURL ?= curl +BLOG_URL ?= https://blog.replicant.us/page + +GUILE_PATCH = 0001-SRFI-19-Add-support-for-ISO-8601-zones-with-a-colon.patch +GUIX_COMMIT ?= b25b94335a3ee8d68d2145da8e5ea0325ecea451 +GUIX_SHELL ?= guix time-machine --commit=$(GUIX_COMMIT) -- shell -C +GUIX_PYTHON_PACKAGES ?= python python-beautifulsoup4 python-html2text python-sh + +CONVERT ?= $(GUIX_SHELL) $(GUIX_PYTHON_PACKAGES) -- python3 convert.py +HAUNT ?= $(GUIX_SHELL) --with-patch=guile=patches/$(GUILE_PATCH) haunt -- haunt + +VENDOR_REPLICANT_ARTWORK_REV ?= fc213d2ca94cef9047d1e4a71c21c4c4c87f349d +VENDOR_REPLICANT_ARTWORK_PATH ?= external/vendor_replicant_artwork + +SENTINEL = + +.PHONY: \ + all \ + build \ + deploy \ + generate-wordpress-articles \ + help \ + markdown \ + serve \ + update-makefile \ + $(SENTINEL) + +# 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 \ + wordpress/pages/replicant_blog_page_5.html \ + wordpress/pages/replicant_blog_page_4.html \ + wordpress/pages/replicant_blog_page_3.html \ + wordpress/pages/replicant_blog_page_2.html \ + wordpress/pages/replicant_blog_page_1.html \ + 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: + mkdir -p $@ + +wordpress/pages: + mkdir -p $@ + +wordpress/pages/replicant_blog_page_%.html: wordpress/pages + $(CURL) $(BLOG_URL)/$(subst replicant_blog_page_,,$*)/ -o $@ + +generate-wordpress-articles: build + $(GUIX_SHELL) $(GUIX_PYTHON_PACKAGES) \ + -- \ + python3 haunthtml2wordpress.py \ + ./site/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences.html + +links.txt: $(WORDPRESS_PAGES) + @echo -n '' > $@ + @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 +update-makefile: + guile build/update-makefile-markdown-articles.scm + +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 \ + https://git.replicant.us/replicant/vendor_replicant_artwork \ + $(VENDOR_REPLICANT_ARTWORK_PATH) + +static/replicant_banner_white.png: vendor_replicant_artwork_revision.txt + install -m 644 \ + $(VENDOR_REPLICANT_ARTWORK_PATH)/replicant_banner_white.png \ + $@ + +vendor_replicant_artwork_revision.txt: $(VENDOR_REPLICANT_ARTWORK_PATH) Makefile + if [ ! -f $@ ] || [ "`cat $@`" != "$(VENDOR_REPLICANT_ARTWORK_REV)" ] ; \ + then \ + rm -f $@ ; \ + git -C $(VENDOR_REPLICANT_ARTWORK_PATH) fetch origin ; \ + git -C $(VENDOR_REPLICANT_ARTWORK_PATH) \ + checkout -f $(VENDOR_REPLICANT_ARTWORK_REV) ; \ + git -C $(VENDOR_REPLICANT_ARTWORK_PATH) reset --hard ; \ + git -C $(VENDOR_REPLICANT_ARTWORK_PATH) clean -dfx ; \ + echo $(VENDOR_REPLICANT_ARTWORK_REV) > $@ ; \ + fi + +build: static/replicant_banner_white.png + $(HAUNT) build + +deploy: build + rsync -av site/ root@git.replicant.us:/var/www/blog.test.replicant.us/ + +help: + @printf "%s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n" \ + "Available commands:" \ + "make build # Generate the HTML files with haunt." \ + "make deploy # Copy the html files to https://blog.test.replicant.us" \ + "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 markdown # create markdown pages. To be done after reviewing links.txt." \ + "make check # Run tests." \ + +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/#" +check: build + ./tests.sh diff --git a/tests/Makefile.empty b/tests/Makefile.empty new file mode 100644 index 0000000..fe94e5c --- /dev/null +++ b/tests/Makefile.empty @@ -0,0 +1,190 @@ +# 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 +# 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 <https://www.gnu.org/licenses/>. + +CURL ?= curl +BLOG_URL ?= https://blog.replicant.us/page + +GUILE_PATCH = 0001-SRFI-19-Add-support-for-ISO-8601-zones-with-a-colon.patch +GUIX_COMMIT ?= b25b94335a3ee8d68d2145da8e5ea0325ecea451 +GUIX_SHELL ?= guix time-machine --commit=$(GUIX_COMMIT) -- shell -C +GUIX_PYTHON_PACKAGES ?= python python-beautifulsoup4 python-html2text python-sh + +CONVERT ?= $(GUIX_SHELL) $(GUIX_PYTHON_PACKAGES) -- python3 convert.py +HAUNT ?= $(GUIX_SHELL) --with-patch=guile=patches/$(GUILE_PATCH) haunt -- haunt + +VENDOR_REPLICANT_ARTWORK_REV ?= fc213d2ca94cef9047d1e4a71c21c4c4c87f349d +VENDOR_REPLICANT_ARTWORK_PATH ?= external/vendor_replicant_artwork + +SENTINEL = + +.PHONY: \ + all \ + build \ + deploy \ + generate-wordpress-articles \ + help \ + markdown \ + serve \ + update-makefile \ + $(SENTINEL) + +# 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 \ + wordpress/pages/replicant_blog_page_5.html \ + wordpress/pages/replicant_blog_page_4.html \ + wordpress/pages/replicant_blog_page_3.html \ + wordpress/pages/replicant_blog_page_2.html \ + wordpress/pages/replicant_blog_page_1.html \ + wordpress/pages/replicant_blog_page_0.html \ + $(SENTINEL) + + +all: help + +wordpress/articles: + mkdir -p $@ + +wordpress/pages: + mkdir -p $@ + +wordpress/pages/replicant_blog_page_%.html: wordpress/pages + $(CURL) $(BLOG_URL)/$(subst replicant_blog_page_,,$*)/ -o $@ + +generate-wordpress-articles: build + $(GUIX_SHELL) $(GUIX_PYTHON_PACKAGES) \ + -- \ + python3 haunthtml2wordpress.py \ + ./site/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences.html + +links.txt: $(WORDPRESS_PAGES) + @echo -n '' > $@ + @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 +update-makefile: + guile build/update-makefile-markdown-articles.scm + +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 \ + https://git.replicant.us/replicant/vendor_replicant_artwork \ + $(VENDOR_REPLICANT_ARTWORK_PATH) + +static/replicant_banner_white.png: vendor_replicant_artwork_revision.txt + install -m 644 \ + $(VENDOR_REPLICANT_ARTWORK_PATH)/replicant_banner_white.png \ + $@ + +vendor_replicant_artwork_revision.txt: $(VENDOR_REPLICANT_ARTWORK_PATH) Makefile + if [ ! -f $@ ] || [ "`cat $@`" != "$(VENDOR_REPLICANT_ARTWORK_REV)" ] ; \ + then \ + rm -f $@ ; \ + git -C $(VENDOR_REPLICANT_ARTWORK_PATH) fetch origin ; \ + git -C $(VENDOR_REPLICANT_ARTWORK_PATH) \ + checkout -f $(VENDOR_REPLICANT_ARTWORK_REV) ; \ + git -C $(VENDOR_REPLICANT_ARTWORK_PATH) reset --hard ; \ + git -C $(VENDOR_REPLICANT_ARTWORK_PATH) clean -dfx ; \ + echo $(VENDOR_REPLICANT_ARTWORK_REV) > $@ ; \ + fi + +build: static/replicant_banner_white.png + $(HAUNT) build + +deploy: build + rsync -av site/ root@git.replicant.us:/var/www/blog.test.replicant.us/ + +help: + @printf "%s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n\t%s\n" \ + "Available commands:" \ + "make build # Generate the HTML files with haunt." \ + "make deploy # Copy the html files to https://blog.test.replicant.us" \ + "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 markdown # create markdown pages. To be done after reviewing links.txt." \ + "make check # Run tests." \ + +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/#" +check: build + ./tests.sh diff --git a/tests/links.txt b/tests/links.txt new file mode 100644 index 0000000..8b844e0 --- /dev/null +++ b/tests/links.txt @@ -0,0 +1,72 @@ +https://blog.replicant.us/2010/09/welcome-to-replicant/ +https://blog.replicant.us/2010/11/fdroid-a-free-software-alternative-to-google-market/ +https://blog.replicant.us/2011/03/new-replicant-test-images-available/ +https://blog.replicant.us/2011/04/replicant-2-2-sdk-available/ +https://blog.replicant.us/2011/04/replicant-lacks-tracking-antifeatures/ +https://blog.replicant.us/2011/05/replicant-2-2-preview-007/ +https://blog.replicant.us/2011/06/replicant-2-2-preview-008-is-out/ +https://blog.replicant.us/2011/08/nexus-s-support-in-replicant-being-worked-on/ +https://blog.replicant.us/2011/09/introducing-replicant-on-htc-dream-video/ +https://blog.replicant.us/2011/10/new-replicant-2-2-preview-images-0009-released/ +https://blog.replicant.us/2011/11/replicant-2-3-preview-images-for-nexus-one-released/ +https://blog.replicant.us/2011/11/replicant-on-nexus-s-preview/ +https://blog.replicant.us/2012/01/nexus-s-status-update-with-new-images/ +https://blog.replicant.us/2012/02/wiki-and-tracker-are-now-powered-by-redmine/ +https://blog.replicant.us/2012/03/galaxy-s-support-upcoming/ +https://blog.replicant.us/2012/04/new-set-of-replicant-2-3-images-including-galaxy-s-support/ +https://blog.replicant.us/2012/04/nexus-sgalaxy-s-privacy-issues/ +https://blog.replicant.us/2012/09/replicant-2-3-0004-images-release/ +https://blog.replicant.us/2012/09/replicant-2-3-0005-images-fixing-the-ussd-vulnerability/ +https://blog.replicant.us/2012/11/replicant-4-0-0001-images-release/ +https://blog.replicant.us/2013/01/replicant-4-0-sdk-release/ +https://blog.replicant.us/2013/02/replicant-4-0-0002-images-release/ +https://blog.replicant.us/2013/04/replicant-4-0-0003-images-release/ +https://blog.replicant.us/2013/07/announcing-the-free-software-foundation-fundraising-program-for-replicant/ +https://blog.replicant.us/2013/07/replicant-4-0-0004-images-release/ +https://blog.replicant.us/2013/08/opening-the-replicant-forums/ +https://blog.replicant.us/2013/10/replicant-4-0-0005-images-release/ +https://blog.replicant.us/2013/11/fairphone/ +https://blog.replicant.us/2014/01/replicant-4-2-kicks-out/ +https://blog.replicant.us/2014/03/unveiling-the-samsung-galaxy-back-door/ +https://blog.replicant.us/2014/06/replicant-4-2-on-the-goldelico-gta04/ +https://blog.replicant.us/2014/06/replicant-at-the-15th-libre-software-meeting-in-montpellier-france-this-july/ +https://blog.replicant.us/2014/07/replicant-4-2-0002-images-release/ +https://blog.replicant.us/2014/09/replicant-homepage-and-roadmap-for-the-future/ +https://blog.replicant.us/2014/12/replicant-4-2-0003-images-release/ +https://blog.replicant.us/2015/01/replicant-at-fosdem-2015/ +https://blog.replicant.us/2015/04/whats-happening-or-not-at-replicant/ +https://blog.replicant.us/2015/07/replicant-source-code-hosting-and-rmll-2015/ +https://blog.replicant.us/2015/07/rmll-feedback-optimus-black-advancement-and-cccamp/ +https://blog.replicant.us/2015/08/replicant-and-friends-at-chaos-communication-camp-2015/ +https://blog.replicant.us/2015/09/replicant-4-2-0004-images-release/ +https://blog.replicant.us/2015/09/upcoming-events-for-replicant-in-octobernovember-2015/ +https://blog.replicant.us/2015/12/shops-selling-devices-pre-installed-with-replicant/ +https://blog.replicant.us/2016/01/replicant-at-fosdem-2016/ +https://blog.replicant.us/2016/05/coliberator-2016-keynotes-and-workshops/ +https://blog.replicant.us/2016/07/media-from-2016-replicant-talks/ +https://blog.replicant.us/2016/07/replicant-at-pseshsf-2016/ +https://blog.replicant.us/2016/08/replicant-6-early-work-upstream-work-and-f-droid-issue/ +https://blog.replicant.us/2017/02/replicant-6-0-development-updates/ +https://blog.replicant.us/2017/04/there-wont-be-a-replicant-6-0-sdk-because-there-is-already-something-better/ +https://blog.replicant.us/2017/05/replicant-6-0-released/ +https://blog.replicant.us/2017/09/a-new-replicant-6-0-release/ +https://blog.replicant.us/2017/12/contributions-to-arcep-work-on-terminal-devices-and-public-consultation/ +https://blog.replicant.us/2017/12/third-replicant-6-0-release/ +https://blog.replicant.us/2018/01/les-terminaux-sont-ils-le-maillon-faible-de-louverture-dinternet/ +https://blog.replicant.us/2018/03/final-days-for-the-upstream-linux-allwinner-vpu-support-crowdfunding-campaign/ +https://blog.replicant.us/2019/01/meeting-point-at-fosdem/ +https://blog.replicant.us/2019/01/replicant-meeting-at-fosdem-2019/ +https://blog.replicant.us/2019/01/replicant-will-receive-a-device-from-necuno-solutions/ +https://blog.replicant.us/2019/06/replicant-contributors-meeting-the-2728-july-in-france/ +https://blog.replicant.us/2019/07/graphics-support-for-replicant-9/ +https://blog.replicant.us/2019/12/replicant-36c3/ +https://blog.replicant.us/2020/01/replicant-at-fosdem-2020/ +https://blog.replicant.us/2020/04/what-could-go-wrong-with-devices-that-have-non-replaceable-batteries/ +https://blog.replicant.us/2020/07/late-report-from-fosdem-2020/ +https://blog.replicant.us/2020/12/call-for-a-community-manager/ +https://blog.replicant.us/2021/05/presenting-replicants-community-manager/ +https://blog.replicant.us/2021/06/replicant-is-looking-for-volunteers-to-add-support-for-the-gsd4t-gps-chip/ +https://blog.replicant.us/2022/06/new-replicant-6-0-0004-release-and-replicant-11-status/ +https://blog.replicant.us/2023/02/replicant-at-fosdem-2023/ +https://blog.replicant.us/2023/12/replicant-37c3/ +https://blog.replicant.us/2024/03/replicant-status-and-report-of-the-37c3-and-fosdem-2024-conferences/ diff --git a/tests/markdown-article-lines.txt b/tests/markdown-article-lines.txt new file mode 100644 index 0000000..8aae072 --- /dev/null +++ b/tests/markdown-article-lines.txt @@ -0,0 +1,72 @@ + 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 \ |
