HomeCodeschnipsel 

Codeschnipsel

Weitersagen:

Hier sammle ich einige nützliche Programme und Bruchstücke, die einem das Leben als Programmierer (hoffentlich) erleichtern. Das hat zwar nicht wirklich etwas mit Elektronik zu tun — aber dafür gibt es ja die Microcontroller-Seite.

Elektronik-Lexikon

Unter Webdesignern ist bekannt, dass man wo immer möglich auf Framesets verzichten sollte. Hat man aber keine serverseitigen Skripte auf seinem Webspace freigeschaltet, muss man das Menü und die Grundstruktur bei einer kleinen Änderung auf jeder Seite einzeln aktualisieren. Das ist mehr als lästig. Deshalb habe ich diese Webseite folgendermaßen organisiert:

Im Ordner data/ liegen in der richtigen Ordnerstruktur die einzelnen Seiten (nur Inhalt ohne Menü etc.) als .inc-Dateien. Durch den Aufruf von frameset_alternative.pl werden diese mit der HTML-Grundstruktur aus master.html kombiniert und als fertige HTML-Dateien im Ordner www/ abgespeichert. copy-compressed.pl versucht, alle Dateien, die nicht in die HTML-Grundstruktur eingebunden werden müssen, zu komprimieren, damit sie weniger Speicherplatz verbrauchen und weniger Traffic verursachen. Den „fertigen” Ordner kann man mit update_server.pl komplett hochladen, wobei nur die veränderten Dateien auch wirklich auf den FTP-Server geschickt werden. Das alles steuert ein makefile:

Makefile-Code:
gen_html = www/Diverses/sitemap.html

gen_js = www/src/keyword.js

html = www/index.html \
www/error.html \
www/links.html \
www/suche.html \
...

js = www/src/general.js \
...

css = www/src/general.css \
...

copyhtml = www/src/index.html \
...

images = www/EBG/Bilder/funkerecke.jpg \
...

others = www/rss.xml

inc := $(html:www/%.html=data/%.inc)

all: $(html) $(js) $(css) $(gen_html) $(gen_js) $(copyhtml) $(images) $(others)


# sitemap
www/Diverses/sitemap.html: $(inc) data/Diverses/sitemap.inc tree.pl frameset_alternative.pl data/master.html
  perl tree.pl /home/nfs/flo/www/projects/elektronik-lexikon/data/ > data/Diverses/sitemap.inc
  perl frameset_alternative.pl "data/Diverses/sitemap.inc"


# news
www/Diverses/news.html: data/Diverses/news.inc data/news.txt frameset_alternative.pl data/master.html
  perl frameset_alternative.pl "data/Diverses/news.inc"
www/index.html: data/index.inc data/news.txt frameset_alternative.pl data/master.html
  perl frameset_alternative.pl "data/index.inc"
www/rss.xml: data/news.txt news.pl
  perl news.pl


# htmls
www/%.html: data/%.inc frameset_alternative.pl data/master.html
  perl frameset_alternative.pl "$<"


# js and css
www/src/keyword.js: $(inc)
  perl sitemap.pl
  perl -w keyword.pl --directory=data > www/src/keyword.js
www/%.js: data/%.js copy-compressed.pl
  perl copy-compressed.pl "$<"
www/%.css: data/%.css copy-compressed.pl
  perl copy-compressed.pl "$<"


# all others
www/%: data/% copy-compressed.pl
  perl copy-compressed.pl "$<"



clean:
  rm -Rv www/*

upload:
  perl update_server.pl
Teile diese Seite!    RSS-Feed abonnieren:
RSS