[or-cvs] Make local links point to the resource in the proper language

Peter Palfrader weasel at seul.org
Tue Oct 4 23:03:56 UTC 2005


Update of /home/or/cvsroot/website
In directory moria:/tmp/cvs-serv27959

Modified Files:
	Makefile 
Log Message:
Make local links point to the resource in the proper language

Index: Makefile
===================================================================
RCS file: /home/or/cvsroot/website/Makefile,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- Makefile	4 Oct 2005 19:10:33 -0000	1.1
+++ Makefile	4 Oct 2005 23:03:54 -0000	1.2
@@ -1,9 +1,11 @@
 TORCVSSTABLE = ../tor.0.1.0-branch
 TORCVSHEAD = ../tor-head
 
-WMLBASE  = .
-WMLOPT  = -D IMGROOT=$(WMLBASE)/images \
-          -D DOCROOT="." -I include \
+WMLBASE = .
+WMLOPT  = \
+          -I include \
+          -D DOCROOT=$(WMLBASE) \
+          -D IMGROOT=$(WMLBASE)/images \
           -D TORCVSSTABLE=$(TORCVSSTABLE) \
           -D TORCVSHEAD=$(TORCVSHEAD)
 
@@ -25,32 +27,46 @@
             $(patsubst it/%.wml,.deps/%.it.html.d,   \
             $(WMLFILES))))
 
+LANGS=de en it
 
 all: $(HTMLFILES)
 
 
 
 %.en.html: en/%.wml
-	wml $(WMLOPT) -I en -D LANG=en $< -o $@
-.deps/%.en.html.d: en/%.wml
-	@[ -d .deps ] || mkdir .deps
-	OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'`; \
-		wml $(WMLOPT) -I en -D LANG=en $< -o $$OUT --depend > $@
+	lang=`dirname $<` && wml $(WMLOPT) -I $$lang -D LANG=$$lang $< -o $@
 
 %.de.html: de/%.wml en/%.wml
-	wml $(WMLOPT) -I de -D LANG=de $< -o $@
+	lang=`dirname $<` && wml $(WMLOPT) -I $$lang -D LANG=$$lang $< -o $@
+
+%.it.html: it/%.wml en/%.wml
+	lang=`dirname $<` && wml $(WMLOPT) -I $$lang -D LANG=$$lang $< -o $@
+
+
+.deps/%.en.html.d: en/%.wml
+	@[ -d .deps ] || mkdir .deps
+	tmpfile=`tempfile` \
+	lang=`echo $@ | sed -e 's,\.html\.d$$,,' -e 's,.*\.,,'` && \
+	OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
+	wml $(WMLOPT) -I $$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
+	sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
+	rm -f $$tmpfile
 .deps/%.de.html.d: de/%.wml
 	@[ -d .deps ] || mkdir .deps
-	OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'`; \
-		wml $(WMLOPT) -I de -D LANG=de $< -o $$OUT --depend > $@
-
-%.it.html: it/%.wml it/%.wml
-	wml $(WMLOPT) -I it -D LANG=it $< -o $@
+	tmpfile=`tempfile` \
+	lang=`echo $@ | sed -e 's,\.html\.d$$,,' -e 's,.*\.,,'` && \
+	OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
+	wml $(WMLOPT) -I $$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
+	sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
+	rm -f $$tmpfile
 .deps/%.it.html.d: it/%.wml
 	@[ -d .deps ] || mkdir .deps
-	OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'`; \
-		wml $(WMLOPT) -I it -D LANG=it $< -o $$OUT --depend > $@
-
+	tmpfile=`tempfile` \
+	lang=`echo $@ | sed -e 's,\.html\.d$$,,' -e 's,.*\.,,'` && \
+	OUT=`echo $@ | sed -e 's,\.deps/\(.*\)\.d$$,\1,'` && \
+	wml $(WMLOPT) -I $$lang -D LANG=$$lang $< -o $$OUT --depend | tee $$tmpfile > $@ && \
+	sed -e s',\(^[^ ]*\):,.deps/\1.d:,' < $$tmpfile >> $@ && \
+	rm -f $$tmpfile
 
 tor-manual-cvs.en.html: $(TORCVSHEAD)/doc/tor.1.in
 tor-manual.en.html: $(TORCVSSTABLE)/doc/tor.1.in
@@ -62,3 +78,54 @@
 	rm -f $(HTMLFILES) $(DEPFILES)
 
 include $(DEPFILES)
+
+
+
+
+
+# If we choose to use make rather than perl.  gets us proper dependencies, but doesn't
+# catch invalid page links that nicely.  Also, this doesn't really work yet, since
+# I abandoned this path for the much simplier and more readable <page> tag in
+# links.wmi, which just uses 3 lines of perl.
+### 
+### %.en.html: en/%.wml include-auto/langlocallinks.en.wmi include-auto/locallinks.wmi
+### %.de.html: de/%.wml en/%.wml include-auto/langlocallinks.de.wmi include-auto/locallinks.wmi
+### %.it.html: it/%.wml en/%.wml include-auto/langlocallinks.it.wmi include-auto/locallinks.wmi
+### 
+### .deps/%.en.html.d: en/%.wml include-auto/langlocallinks.en.wmi include-auto/locallinks.wmi
+### .deps/%.de.html.d: de/%.wml include-auto/langlocallinks.de.wmi include-auto/locallinks.wmi
+### .deps/%.it.html.d: it/%.wml include-auto/langlocallinks.it.wmi include-auto/locallinks.wmi
+### 
+### 
+### 
+### include-auto/locallinks.wmi: $(LANGS)
+### 	files=$$(for i in $^; do ls -1 $$i/*.wml; done | \
+### 		xargs -n1 basename | sed -e 's,\.wml,,' | sort | uniq) && \
+### 	rm -f $@.tmp && \
+### 	echo "<define-tag pageALL whitespace=delete>" > $@.tmp && \
+### 	for f in $$files; do \
+### 		echo "<define-tag link-$$f whitespace=delete>$$f.html</define-tag>" >> $@.tmp; \
+### 	done
+### 	if ! [ -z "$$FORCE_LOCALLINKS_UPDATE" ] || ! [ -e "$@" ] || ! diff "$@" "$@".tmp > /dev/null; then \
+### 		cat "$@".tmp > "$@"; \
+### 	else \
+### 		echo "$@ hasn't changed and environment variable FORCE_LOCALLINKS_UPDATE not set"; \
+### 	fi
+### 	rm -f "$@".tmp
+### 
+### include-auto/langlocallinks.%.wmi: %
+### 	@[ -d include-auto ] || mkdir include-auto
+### 	lang=$< \
+### 	files=$$(for i in $^; do ls -1 $$i/*.wml; done | \
+### 		xargs -n1 basename | sed -e 's,\.wml,,' | sort | uniq) && \
+### 	rm -f $@.tmp && \
+### 	for f in $$files; do \
+### 		echo "<define-tag link-$$f whitespace=delete>$$f.$$lang.html</define-tag>" >> $@.tmp; \
+### 	done
+### 	if ! [ -z "$$FORCE_LOCALLINKS_UPDATE" ] || ! [ -e "$@" ] || ! diff "$@" "$@".tmp > /dev/null; then \
+### 		cat "$@".tmp > "$@"; \
+### 	else \
+### 		echo "$@ hasn't changed and environment variable FORCE_LOCALLINKS_UPDATE not set"; \
+### 	fi
+### 	rm -f "$@".tmp
+### 



More information about the tor-commits mailing list