txt2pre: use '—' instead of '—' (to fix feed validation)
[~bandali/bndl.org] / GNUmakefile
index f5b4014..24e9f9f 100644 (file)
@@ -8,27 +8,45 @@
 # without any warranty.
 
 
 # without any warranty.
 
 
-gen = perl txt2html < $< > $@
-gen_fa = perl txt2html --lang='fa' < $< > $@
+gen = perl txt2pre $(1) < $< > $@
 port := $(if $(port),$(port),8000)
 
 TXT := $(filter-out bandali-pubkey.txt bandali.txt,$(wildcard *.txt))
 OUT := $(patsubst %.txt,%.html,$(TXT))
 OUT := $(patsubst bandali-%.html,%.html,$(OUT))
 port := $(if $(port),$(port),8000)
 
 TXT := $(filter-out bandali-pubkey.txt bandali.txt,$(wildcard *.txt))
 OUT := $(patsubst %.txt,%.html,$(TXT))
 OUT := $(patsubst bandali-%.html,%.html,$(OUT))
+FEEDS := notes.atom notes.rss
+NOTES := $\
+libreplanet-2021.txt $\
+fsf-internship-beyond.txt $\
+fsf-internship-intro.txt $\
+bandali-computing.txt $\
 
 TXT_FA := $(filter-out fa/bandali.fa.txt,$(wildcard fa/*.fa.txt))
 OUT_FA := $(patsubst fa/%.fa.txt,fa/%.html,$(TXT_FA))
 OUT_FA := $(patsubst fa/bandali-%.html,fa/%.html,$(OUT_FA))
 
 TXT_FA := $(filter-out fa/bandali.fa.txt,$(wildcard fa/*.fa.txt))
 OUT_FA := $(patsubst fa/%.fa.txt,fa/%.html,$(TXT_FA))
 OUT_FA := $(patsubst fa/bandali-%.html,fa/%.html,$(OUT_FA))
-
-all: $(OUT) $(OUT_FA) index.html fa/index.html
-
-%.html: bandali-%.txt ; $(gen)
-%.html: %.txt ; $(gen)
-index.html: bandali.txt ; $(gen)
-
-fa/%.html: fa/bandali-%.fa.txt ; $(gen_fa)
-fa/%.html: fa/%.fa.txt ; $(gen_fa)
-fa/index.html: fa/bandali.fa.txt ; $(gen_fa)
+FEEDS_FA := fa/notes.atom fa/notes.rss
+NOTES_FA := $\
+fa/fsf-internship-beyond.fa.txt $\
+fa/fsf-internship-intro.fa.txt $\
+fa/bandali-computing.fa.txt $\
+
+all: $(OUT) $(FEEDS) index.html $(OUT_FA) $(FEEDS_FA) fa/index.html
+
+%.html: bandali-%.txt txt2pre; $(gen)
+%.html: %.txt txt2pre; $(gen)
+index.html: bandali.txt txt2pre; $(call gen,--index)
+notes.%: $(NOTES) txt2pre
+       perl txt2pre --index --header --format='$*' > $@
+       for n in $(NOTES); do perl txt2pre --format='$*' < "$$n" >> $@; done
+       perl txt2pre --index --footer --format='$*' >> $@
+
+fa/%.html: fa/bandali-%.fa.txt txt2pre; $(call gen,--lang='fa')
+fa/%.html: fa/%.fa.txt txt2pre; $(call gen,--lang='fa')
+fa/index.html: fa/bandali.fa.txt txt2pre; $(call gen,--lang='fa' --index)
+fa/notes.%: $(NOTES_FA) txt2pre
+       perl txt2pre --lang='fa' --index --header --format='$*' > $@
+       for n in $(NOTES_FA); do perl txt2pre --lang='fa' --format='$*' < "$$n" >> $@; done
+       perl txt2pre --lang='fa' --index --footer --format='$*' >> $@
 
 
 clean:
 
 
 clean:
@@ -40,6 +58,6 @@ serve:
 watch:
        while true; do \
        echo $(TXT) $(TXT_FA) bandali.txt fa/bandali.fa.txt \
 watch:
        while true; do \
        echo $(TXT) $(TXT_FA) bandali.txt fa/bandali.fa.txt \
-       GNUmakefile txt2html | tr " " "\n" | entr -d make; done
+       GNUmakefile txt2pre | tr " " "\n" | entr -d make; done
 
 .PHONY: all clean serve watch
 
 .PHONY: all clean serve watch