#!/usr/bin/env bash # # Copyright (C) 2017 Alyssa Rosenzweig # # 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 . BLOGTITLE="Libreboot News" BLOGBASE="https://libreboot.org/" BLOGDESCRIPTION="News on Libreboot development" title() { sed -n 1p $f | sed -e s-^..-- } meta() { URL=$(printf '%s\n' ${f%.md}.html | sed -e s-news/--) printf '%s\n' "[$(title)]($URL){.title}" printf '%s\n' "[$(sed -n 3p $f | sed -e s-^..--)]{.date}" printf '\n' tail -n +5 $f | perl -p0e 's/(\.|\?|\!)( |\n)(.|\n)*/.../g' printf '\n' printf '\n' } # generate the index file # MANIFEST determines the order of news articles in news/index.md FILES=$(cat news/MANIFEST) cat news-list.md > news/index.md for f in $FILES do meta >> news/index.md done # generate an RSS index rss() { printf '%s\n' '' printf '%s\n' '' printf '%s\n' "$BLOGTITLE" printf '%s\n' ""$BLOGBASE"news/" printf '%s\n' "$BLOGDESCRIPTION" for f in $FILES do # render content and escape desc=$(sed -e 's//\>/g') url="${f%.md}.html" printf '%s\n' '' printf '%s\n' "$(title)" printf '%s\n' "$BLOGBASE$url" printf '%s\n' "$desc" printf '%s\n' '' done printf '%s\n' '' printf '%s\n' '' } rss > news/feed.xml cp news/feed.xml feed.xml