commit 3a395d8e878bf8fdcddfa4f62e08c2659be98aa3 Author: Konstantin Zangerle Date: Thu Oct 5 18:23:52 2017 +0200 first commit diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8661bea --- /dev/null +++ b/Makefile @@ -0,0 +1,108 @@ +PY=python3 +PELICAN=pelican +PELICANOPTS= + +BASEDIR=$(CURDIR) +INPUTDIR=$(BASEDIR)/content +OUTPUTDIR=$(BASEDIR)/output +CONFFILE=$(BASEDIR)/pelicanconf.py +PUBLISHCONF=$(BASEDIR)/publishconf.py + +FTP_HOST=ftp.strato.de +FTP_USER=konni@nursery-cryme.de +FTP_TARGET_DIR=/pelican + +SSH_HOST=ssh.strato.de +SSH_PORT=22 +SSH_USER=nursery-cryme.de +SSH_TARGET_DIR=/pelican + +S3_BUCKET=my_s3_bucket + +CLOUDFILES_USERNAME=my_rackspace_username +CLOUDFILES_API_KEY=my_rackspace_api_key +CLOUDFILES_CONTAINER=my_cloudfiles_container + +DROPBOX_DIR=~/Dropbox/Public/ + +DEBUG ?= 0 +ifeq ($(DEBUG), 1) + PELICANOPTS += -D +endif + +help: + @echo 'Makefile for a pelican Web site ' + @echo ' ' + @echo 'Usage: ' + @echo ' make html (re)generate the web site ' + @echo ' make clean remove the generated files ' + @echo ' make regenerate regenerate files upon modification ' + @echo ' make publish generate using production settings ' + @echo ' make serve [PORT=8000] serve site at http://localhost:8000' + @echo ' make devserver [PORT=8000] start/restart develop_server.sh ' + @echo ' make stopserver stop local server ' + @echo ' make ssh_upload upload the web site via SSH ' + @echo ' make rsync_upload upload the web site via rsync+ssh ' + @echo ' make dropbox_upload upload the web site via Dropbox ' + @echo ' make ftp_upload upload the web site via FTP ' + @echo ' make s3_upload upload the web site via S3 ' + @echo ' make cf_upload upload the web site via Cloud Files' + @echo ' make github upload the web site via gh-pages ' + @echo ' ' + @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html' + @echo ' ' + +html: + $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) + +clean: + [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR) + +regenerate: + $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) + +serve: +ifdef PORT + cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT) +else + cd $(OUTPUTDIR) && $(PY) -m pelican.server +endif + +devserver: +ifdef PORT + $(BASEDIR)/develop_server.sh restart $(PORT) +else + $(BASEDIR)/develop_server.sh restart +endif + +stopserver: + kill -9 `cat pelican.pid` + kill -9 `cat srv.pid` + @echo 'Stopped Pelican and SimpleHTTPServer processes running in background.' + +publish: + $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) + +ssh_upload: publish + scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) + +rsync_upload: publish + rsync -e "ssh -p $(SSH_PORT)" -P -rvz --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude + +dropbox_upload: publish + cp -r $(OUTPUTDIR)/* $(DROPBOX_DIR) + +ftp_upload: publish + lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit" + +s3_upload: publish + s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed + +cf_upload: publish + cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) . + +github: publish + ghp-import $(OUTPUTDIR) + git push origin gh-pages + +.PHONY: html help clean regenerate serve devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github diff --git a/content/images/.directory b/content/images/.directory new file mode 100644 index 0000000..5e93ef9 --- /dev/null +++ b/content/images/.directory @@ -0,0 +1,6 @@ +[Dolphin] +Timestamp=2014,8,14,1,52,3 +Version=3 + +[Settings] +HiddenFilesShown=true diff --git a/content/images/huepfburg.jpg b/content/images/huepfburg.jpg new file mode 100644 index 0000000..27f8f5e Binary files /dev/null and b/content/images/huepfburg.jpg differ diff --git a/content/images/logo.png b/content/images/logo.png new file mode 100644 index 0000000..53023f4 Binary files /dev/null and b/content/images/logo.png differ diff --git a/content/images/pysumo.png b/content/images/pysumo.png new file mode 100644 index 0000000..4e36753 Binary files /dev/null and b/content/images/pysumo.png differ diff --git a/content/images/pysumo2.png b/content/images/pysumo2.png new file mode 100644 index 0000000..45af50f Binary files /dev/null and b/content/images/pysumo2.png differ diff --git a/content/images/rssicon.png b/content/images/rssicon.png new file mode 100644 index 0000000..d64c669 Binary files /dev/null and b/content/images/rssicon.png differ diff --git a/content/images/willkommen.jpg b/content/images/willkommen.jpg new file mode 100644 index 0000000..ee30c6b Binary files /dev/null and b/content/images/willkommen.jpg differ diff --git a/content/index.md b/content/index.md new file mode 100644 index 0000000..e034813 --- /dev/null +++ b/content/index.md @@ -0,0 +1,10 @@ +Title: Willkommen +Slug: index +Description: Start Page +Author: Konstantin Zangerle +Date: 2017/10/05 + + +# First Contact + +First Contact ist eine O-Phasengruppe diff --git a/content/pages/404.rst b/content/pages/404.rst new file mode 100644 index 0000000..566e623 --- /dev/null +++ b/content/pages/404.rst @@ -0,0 +1,11 @@ + +:title: Error 404 +:Robots: noindex,nofollow +:date: 2015/03/15 +:status: hidden +:slug: 404 + +Error 404 +========= + +Woops. Looks like this page doesn't exist. diff --git a/content/pages/Kontakt/datenschutz.rst b/content/pages/Kontakt/datenschutz.rst new file mode 100644 index 0000000..0546e20 --- /dev/null +++ b/content/pages/Kontakt/datenschutz.rst @@ -0,0 +1,10 @@ + +:title: Datenschutzerklärung +:date: 2015/03/15 +:pageorder: 017 + +Die Nut­zung unse­rer Web­seite ist in der Regel ohne Angabe per­so­nen­be­zo­ge­ner Daten mög­lich. Soweit auf unse­ren Sei­ten per­so­nen­be­zo­gene Daten (bei­spiels­weise Name, Anschrift oder eMail-Adressen) erho­ben wer­den, erfolgt dies, soweit mög­lich, stets auf frei­wil­li­ger Basis. Diese Daten wer­den ohne Ihre aus­drück­li­che Zustim­mung nicht an Dritte weitergegeben. +Wir wei­sen dar­auf hin, dass die Daten­über­tra­gung im Inter­net (z.B. bei der Kom­mu­ni­ka­tion per E-Mail) Sicher­heits­lü­cken auf­wei­sen kann. Ein lücken­lo­ser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich. +Der Nut­zung von im Rah­men der Impress­ums­pflicht ver­öf­fent­lich­ten Kon­takt­da­ten durch Dritte zur Über­sen­dung von nicht aus­drück­lich ange­for­der­ter Wer­bung und Infor­ma­ti­ons­ma­te­ria­lien wird hier­mit aus­drück­lich wider­spro­chen. Die Betrei­ber der Sei­ten behal­ten sich aus­drück­lich recht­li­che Schritte im Falle der unver­lang­ten Zusen­dung von Wer­bein­for­ma­tio­nen, etwa durch Spam-Mails, vor. + +Quel­len: eRecht24 Datenschutzerklärung diff --git a/content/pages/Kontakt/faq.rst b/content/pages/Kontakt/faq.rst new file mode 100644 index 0000000..8fc7dd8 --- /dev/null +++ b/content/pages/Kontakt/faq.rst @@ -0,0 +1,22 @@ + +:title: FAQ +:Date: 2014/08/13 +:pageorder: 015 + +Häufige Fragen +============== + +#. **Mir kommt alles hier so statisch vor?!** + Das ist durchaus so beabsichtigt. Mir gefällt es nicht, dass alle so tun, als hätten sie die wichtigsten + Inhalte und müssten über alles mögliche Schreiben. Mein Vorsatz ist es über Sachen zu schreiben, von denen + ich Ahnung hab und die dann möglichst gut rüberzubringen. Das bringt mir was und dir was! +#. **Ich will dir aber unbedingt meine Meinung dazu sagen!** + Gut. Ich hoffe, dass sie auch durchdacht ist. Schreib mir doch ne Mail, oder wenn du bei mir in der Nähe wohnst, komm in die + `Fachschaft Informatik `_. Dann kann man sich bei nem Kaffee unterhalten. +#. **Wie bleibe ich auf dem aktuellstem Stand** + Benutze die [RSS-Feeds!](/blog/2014/rssfeed). Die anderen Seiten werden sich grundlegend nicht verändern, hier muss ich dich darauf vertrösten, ab und an hier vorbeizuschauen. +#. **Warum nur CDs und keine Bücher/Filme/Schallplatten?** + Mit CDs verbring ich die meiste Zeit. Es ist eigentlich ein super Medium (existent, digitale Qualität, enthält Musik) und liegt mir am meisten am Herzen...
+ Wenn ich aber ein gutes Buch lese, dann erfährst du es im Blog! +#. **Das gefällt mir, darf ich das haben?** + Alle Inhalte, die von mir erstellt wurden, dieser Webseite stelle ich unter die Creative-Commons mit Namensnennung. D.h. wenn du ein Bild verwendest, schreib meinen Namen dazu und CC-by-3.0. Über einen Link auf die Webseite freu ich mich aber auch. Wenn dir ein ganzer Blogeintrag gefällt, verlink ihn doch. diff --git a/content/pages/Kontakt/impressum.rst b/content/pages/Kontakt/impressum.rst new file mode 100644 index 0000000..d077f03 --- /dev/null +++ b/content/pages/Kontakt/impressum.rst @@ -0,0 +1,33 @@ + +:title: Impressum +:date: 2015/03/15 +:pageorder: 013 + + + +Verantwortlich für den Inhalt: +------------------------------------ +| Konstantin Zangerle +| Hauptstraße 177 +| 67705 Trippstadt +| info äät konstantinzangerle.de + +Haf­tungs­aus­schluss (Disclaimer) +------------------------------------- +Haf­tung für Inhalte +^^^^^^^^^^^^^^^^^^^^ + +Als Diens­te­an­bie­ter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf die­sen Sei­ten nach den all­ge­mei­nen Geset­zen ver­ant­wort­lich. Nach §§ 8 bis 10 TMG sind wir als Diens­te­an­bie­ter jedoch nicht ver­pflich­tet, über­mit­telte oder gespei­cherte fremde Infor­ma­tio­nen zu über­wa­chen oder nach Umstän­den zu for­schen, die auf eine rechts­wid­rige Tätig­keit hin­wei­sen. Ver­pflich­tun­gen zur Ent­fer­nung oder Sper­rung der Nut­zung von Infor­ma­tio­nen nach den all­ge­mei­nen Geset­zen blei­ben hier­von unbe­rührt. Eine dies­be­züg­li­che Haf­tung ist jedoch erst ab dem Zeit­punkt der Kennt­nis einer kon­kre­ten Rechts­ver­let­zung mög­lich. Bei Bekannt­wer­den von ent­spre­chen­den Rechts­ver­let­zun­gen wer­den wir diese Inhalte umge­hend entfernen. + +Haf­tung für Links +^^^^^^^^^^^^^^^^^^ + +Unser Ange­bot ent­hält Links zu exter­nen Web­sei­ten Drit­ter, auf deren Inhalte wir kei­nen Ein­fluss haben. Des­halb kön­nen wir für diese frem­den Inhalte auch keine Gewähr über­neh­men. Für die Inhalte der ver­link­ten Sei­ten ist stets der jewei­lige Anbie­ter oder Betrei­ber der Sei­ten ver­ant­wort­lich. Die ver­link­ten Sei­ten wur­den zum Zeit­punkt der Ver­lin­kung auf mög­li­che Rechts­ver­stöße über­prüft. Rechts­wid­rige Inhalte waren zum Zeit­punkt der Ver­lin­kung nicht erkenn­bar. Eine per­ma­nente inhalt­li­che Kon­trolle der ver­link­ten Sei­ten ist jedoch ohne kon­krete Anhalts­punkte einer Rechts­ver­let­zung nicht zumut­bar. Bei Bekannt­wer­den von Rechts­ver­let­zun­gen wer­den wir der­ar­tige Links umge­hend entfernen. + +Urhe­ber­recht +^^^^^^^^^^^^^^^^ +Die durch die Sei­ten­be­trei­ber erstell­ten Inhalte und Werke auf die­sen Sei­ten unter­lie­gen dem deut­schen Urhe­ber­recht. Die Ver­viel­fäl­ti­gung, Bear­bei­tung, Ver­brei­tung und jede Art der Ver­wer­tung außer­halb der Gren­zen des Urhe­ber­rech­tes bedür­fen der schrift­li­chen Zustim­mung des jewei­li­gen Autors bzw. Erstel­lers. Down­loads und Kopien die­ser Seite sind nur für den pri­va­ten, nicht kom­mer­zi­el­len Gebrauch gestat­tet. Soweit die Inhalte auf die­ser Seite nicht vom Betrei­ber erstellt wur­den, wer­den die Urhe­ber­rechte Drit­ter beach­tet. Ins­be­son­dere wer­den Inhalte Drit­ter als sol­che gekenn­zeich­net. Soll­ten Sie trotz­dem auf eine Urhe­ber­rechts­ver­let­zung auf­merk­sam wer­den, bit­ten wir um einen ent­spre­chen­den Hin­weis. Bei Bekannt­wer­den von Rechts­ver­let­zun­gen wer­den wir der­ar­tige Inhalte umge­hend entfernen. + +Quel­len: Dis­clai­mer von eRecht24, dem Por­tal zum Inter­net­recht von Rechts­an­walt Sören Siebert + +http://www.e-recht24.de/impressum-generator.html diff --git a/content/pages/Kontakt/kontakt.rst b/content/pages/Kontakt/kontakt.rst new file mode 100644 index 0000000..89db61b --- /dev/null +++ b/content/pages/Kontakt/kontakt.rst @@ -0,0 +1,20 @@ + +:title: Kontakt +:date: 2017/03/15 +:pageorder: 011 + +Kontakt +======= + +Nach der alten Schule +--------------------- + Konstantin Zangerle + + Gerwigstraße 36 + + 76131 Karlsruhe + +Per Mail +---------- + info äät konstantinzangerle.de + diff --git a/content/pages/cdregal.rst b/content/pages/cdregal.rst new file mode 100644 index 0000000..8465255 --- /dev/null +++ b/content/pages/cdregal.rst @@ -0,0 +1,315 @@ +:title: CD-Regal +:date: 2014/09/12 +:pageorder: 009 + +Mein CD-Regal +============= + +> Ohne Musik wäre das Leben ein Irrtum. (Friedrich Nietzsche) + +Nach diesem Worten befülle ich stetig mein CD-Regal und versuche wenig Irrtümer zu begehn. +Möglicherweise befindet sich ja schon ein Blogeintrag über ein Album was dich interessiert? + +Wenn du Ideen hast, welcher Interpret mich interessieren könnte, dann zöger nicht, mich zu [kontaktieren](kontakt). +Hauptsache ist, dass irgendeine Form von Kunst dahinter steckt! + ++ 30 Seconds To Mars + * 30 Seconds To Mars ++ 3 Doors Down + * The Better Life ++ +44 + * When Your Heart Stops Beating ++ Aereogramme + * A Story in White + * My Heart Has a Wish That You Would Not Go ++ Aida + * Aida ++ Amy Winehouse + * Back to Black + * Frank + * Lioness- Hidden Treasures ++ AnnenMayKantereit + * Alles Nix Konkretes ++ Avenged Sevenfold + * City Of Evil ++ Basta + * B + * basta + * Fünf + * Wir Sind Wie Wir Sind (Version 2008) ++ Beginner + * Advanced Chemistry ++ Bela B + * Bingo ++ Black Sabbath + * 13(Deluxe Edition) ++ Bloc Party + * Silent Alarm (Deluxe Edition) ++ Breaking Benjamin + * Phobia ++ Broilers + * sic + * (sic!) + * sic! ++ Bruno Mars + * Doo-Wops & Hooligans ++ Counting Crows + * AUGUST AND EVERYTHING AFTER (DELUXE EDITION) + * Hard Candy (Advance) + * Live at LÉlysée Montmartre + * Recovering the Satellites + * Saturday Nights & Sunday Mornings + * This Desert Life ++ Culcha Candela + * Culcha Candela + * Das Beste ++ Daniel Wirtz + * Erdling ++ Delay, Jan + * Wir Kinder vom Bahnhof Soul (Re-Release 2011) ++ Die Ärzte + * 13 + * Die Bestie in Menschengestalt + * µERÄUSCH + * Geräusch + * Rock n_Roll Realschule + * Rock'n'Roll Realschule ++ Die Toten Hosen + * Auswärtsspiel + * Damenwahl + * Im Auftrag des Herrn + * In aller Stille + * Opel-Gang + * Opium fürs Volk + * Reich & Sexy II (LIMITED EDITION 2-CD DIGIPAK) + * Rock am Ring 2004 Live + * Unsterblich + * Zurück zum Glück ++ Dirty Loops + * Loopified ++ Dream Theater + * 15 Years When Dream And Day Unite + * A Change of Seasons + * Awake + * Black Clouds & Silver Linings + * Dream Theater + * Falling Into Infinity + * Images and Words + * Live Scenes from New York - CD + * Metropolis, Part 2 Scenes From a Memory + * Octavarium + * Once in a LIVEtime Disc1 + * Once in a LIVEtime Disc2 + * Six Degrees of Inner Turbulence (Disc 1) + * Six Degrees Of Inner Turbulence (Disc 2) + * Systematic Chaos + * Train of Thought + * When Dream and Day Unite ++ Dropkick Murphys + * Blackout + * Going Out in Style + * Sing Loud, Sing Proud! ++ Eels + * Beautiful Freak ++ Faktion + * Faktion ++ Fall Out Boy + * Save Rock and Roll ++ Farin Urlaub Racing Team + * Die Wahrheit übers Lügen (CD1) + * Die Wahrheit übers Lügen (CD2) ++ Foo Fighters + * Echoes, Silence, Patience & Grace + * Foo Fighters + * Skin and Bones + * Sonic Highways + * The Colour And The Shape ++ Genesis + * Nursery Cryme + * Selling England by the Pound + * Wind & Wuthering ++ Gotye + * Making Mirrors ++ Green Day + * American Idiot ++ Guano Apes + * Planet Of The Apes ++ Gwen Stefani + * Love. Angel. Music. Baby + * The Sweet Escape ++ Jet + * Get Born ++ John Butler + * Ocean ++ Johnny Cash + * American IV- The Man Comes Around ++ Kelly Clarkson + * Breakaway ++ Killswitch Engage + * The End Of Heartache ++ Kings of Leon + * Only By The Night ++ Kraftklub + * In Schwarz (Deluxe Edition) + * Keine Nacht für Niemand + * Mit K ++ Les Cameleons + * Joyeux Bordel ++ Los Campesinos! + * Hold On Now, Youngster ++ Lynyrd Skynyrd + * (Pronounced leh-nérd_skin-nérd)_(1973) + * Second Helping ++ Maroon 5 + * Hands All Over + * It Wont Be Soon Before Long + * Songs About Jane ++ Metallica + * Metallica ++ Metric + * Pagans in Vegas ++ Mumford & Sons + * Babel + * Wilder Mind ++ Mumm-Ra + * Back to the Shore + * These things move in threes ++ My Chemical Romance + * The Black Parade ++ Nine Inch Nails + * The Downward Spiral ++ Nirvana + * In Utero + * Nevermind ++ No Doubt + * The Singles 1992-2003 + * Tragic Kingdom ++ Pink Floyd + * The Dark Side Of The Moon - Deluxe Edition Original Album Remastered - CD 1 ++ Pink + * The Truth About Love (CD 1 of 2) ++ P J Harvey + * Stories From The City, Stories From The Sea ++ Placebo + * Meds + * Without you Im nothing ++ P!nk + * Can t Take Me Home + * Can't Take Me Home + * Funhouse + * Greatest Hits...So Far!!! [Explicit] + * I m Not Dead + * I'm Not Dead + * M!ssundaztood + * Try This ++ Queen + * A Night At The Opera [UICY-75017] ++ Radiohead + * OK Computer ++ RAMONES + * RAMONES (EXPANDED & REMASTERED) ++ Red Hot Chili Peppers + * Blood Sugar Sex Magik + * By The Way + * Californication + * Freaky Styley + * Greatest Hits (CD+DVD) + * I M WITH YOU + * I'M WITH YOU + * Live in Hyde Park + * Mother s Milk [Explicit] + * Mother's Milk [Explicit] + * One Hot Minute + * Stadium Arcadium + * Stadium Arcadium - Mars + * The Red Hot Chili Peppers + * The Uplift Mofo Party Plan + * Under the Bridge-Sikamicamico ++ Regina Spektor + * Mary Ann Meets The Gravediggers And Other Short Stories By Regina Spektor + * What We Saw From The Cheap Seats ++ RHAPSODY + * SYMPHONY OF ENCHANTED LANDS ++ Rise Against + * Appeal to reason + * Endgame + * Siren Song of the Counter Culture + * The Black Market + * The Sufferer & The Witness ++ Saltatio Mortis + * Aus der Asche + * Das schwarze 1x1 + * Des Königs Henker + * Erwachen + * Heptessenz + * Manufactum + * Sturm aufs Paradies + * Sturm aufs Paradies Limited Bonus CD + * Tavernakel + * Wachstum über alles + * Wer Wind Sæt + * Zirkus Zeitgeist + * Zirkus Zeitgeist (Limited Deluxe Edition) (CD 2 15 Jahre 15 Bands) ++ Schandmaul + * Anderswelt + * Hexenkessel + * Narrenkönig + * Traumtänzer + * Von Spitzbuben und anderen Halunken + * Wahre Hel + * Wahre Helden + * Wie Pech & Schwefel ++ Seeed + * Music Monks + * Next! + * Seeed + * Waterpumpee with Anthony B ++ Sick Puppies + * Dressed Up As Life ++ Staind + * Chapter V ++ Supertramp + * Breakfast In America - Deluxe Edition, CD 1 + * Crime of the Century (Remastered) ++ System of a Down + * Steal this Album ++ Taking Back Sunday + * New Again + * Tell All Your Friends + * Where You Want To Be ++ The All‐American Rejects + * The All-American Rejects + * When the World Comes Down ++ The Baseballs + * Strings 'n' Stripes ++ The Boomtown Rats + * The Fine Art of Surfacing ++ The Cranberries + * No Need To Argue (The Complete Sessions 1994-1995) ++ The Cure + * Disintegration ++ The Fray + * How To Save A Life + * The Fray ++ The Killers + * Hot Fuss - Re-Release ++ The Kooks + * Junk Of The Heart ++ The Pretty Reckless + * Light Me Up ++ Tower Of Power + * Back to Oakland + * Bump City + * In The Slot + * Tower Of Power + * Urban Renewal ++ Turbostaat + * Das Island Manøver ++ Unknown Artist + * Unknown Album ++ Volbeat + * Guitar Gangsters & Cadillac Blood + * Outlaw Gentlemen & Shady Ladies ++ Within Temptation + * Mother Earth + * The Silent Force diff --git a/content/pages/index.md b/content/pages/index.md new file mode 100644 index 0000000..840e901 --- /dev/null +++ b/content/pages/index.md @@ -0,0 +1,9 @@ +Title: Willkommen +Description: Start Page +Author: Konstantin Zangerle +Date: 2017/10/05 + + +# First Contact + +First Contact ist eine O-Phasengruppe diff --git a/content/pages/linuxliste.rst b/content/pages/linuxliste.rst new file mode 100644 index 0000000..e65300e --- /dev/null +++ b/content/pages/linuxliste.rst @@ -0,0 +1,75 @@ + +:title: Linux-Liste +:Date: 2014/08/13 +:pageorder: 007 +:slug: linux + +Linux-Befehle +============= +Diese Liste dient mir als Gedächtnisstütze. + +Alle Pdfs in einem Verzeichnis ausdrucken + +.. code-block:: bash + + lpr *.pdf + +Alle Pdfs von einer Webseite herunterladen (optional HTML/FTP Benutzer+PW) + +.. code-block:: bash + + wget -p -r -nd -l 1 -e robots=off -A pdf --user=**USER** --password=**PW** "**URL**" + +vimrc + +.. code-block:: bash + + syntax on + set colorcolumn=80 + :command Uhr :read !date +"\%H:\%M Uhr: " + set number + +bash_aliases + +.. code-block:: bash + + + alias xvlce="xargs -d '\n' vlc -f --play-and-exit" + alias videofind='find -type f -iname "*.mp4" -or -iname "*.mpeg" -or -iname "*.mkv" -and ! -wholename "*@eaDir*" ! -wholename "*/.*"' + alias nextVideo="cp .last .2last; videofind | sort | grep -F -f .2last -A 1 | tail -n 1 | tee .last | xvlce" + alias nextVideoInit="videofind | sort | head -n 1 | tee .last | xvlce" + alias randomVideo="videofind | sort -R | head -n 1 | tee .rlast | xvlce " + alias rnextVideo="cp .rlast .2rlast; videofind | sort | grep -F -f .2rlast -A 1 | tail -n 1 | tee .rlast | xvlce"; + alias prevVideo="cp .last .2last ; videofind | sort | grep -B 1 -F -f .2last | head -n 1 > .last" + + alias jfg='setxkbmap de neo -option' + alias xvlcwk='setxkbmap de' + + alias gpr='git pull --rebase' + alias ss2='sudo shutdown -h +2' + + alias vlce='vlc -f --play-and-exit' + + alias dunkel='sleep 1; xset dpms force off' + + alias tagebuch="vim ~/Diary/`date +%F`" + alias kalender="~/git/khal/ikhal -c ~/.khal" + +xbindkeysrc + +.. code-block:: bash + + "xbacklight -inc 2%" + XF86MonBrightnessUp + "xbacklight -dec 2%" + XF86MonBrightnessDown + "amixer -q sset Master toggle" + XF86AudioMute + "amixer -q sset Master 1%-" + XF86AudioLowerVolume + "amixer -q sset Master 1%+" + XF86AudioRaiseVolume + "~/bin/ratpoisonInit.sh" + XF86Search + + diff --git a/content/pages/musiker.rst b/content/pages/musiker.rst new file mode 100644 index 0000000..420cadc --- /dev/null +++ b/content/pages/musiker.rst @@ -0,0 +1,43 @@ +:title: Musiker +:Date: 2014/08/20 +:pageorder: 003 +:slug: musiker + +Flötist +-------- +Damit hat alles angefangen. Nach mehr oder weniger erfolgreichen Blockflötespiels, fing ich an Querflöte zu spielen. Auch +wenn die Zeit gerade nicht vorhanden ist, um genug zu spielen, in den Fingern ist noch vieles gespeichert. Nur die Luft reicht häufig +nicht mehr. Aber es wird in nächster Zeit Aufnahmen hier im Blog geben, als Geschenk für alle, die hierher finden. + +Bassist +------- +.. image :: ../images/huepfburg.jpg + :alt: Ich in der Hüpfburg + :align: left + +Momentan spiele ich bei `Kaffee ohne Milch `_, einer Combo bestehend aus Cajon, 2 Ukulelen, Bass und Klavier. +Außerdem bin ich Bassist des `Ukulelenorchesters Kaiserslautern `_. + +Für Spaß bei Auftritten ist immer gesorgt, manchmal (wie auf dem Bild) auch mit Hüpfburg. + +| +| +| + +Sänger +------ +Momentan gibts hier leider nichts mehr zu berichten. +Nach mehreren Auftritten im Extra-Chor des Pfalztheaters KL habe ich diesen Zweig aus Zeitgründen an den Nagel gehangen. + +Mitgemachte Werke: + +#. Albert Lortzing - Regina +#. Elton John & Tim Rice - Aida +#. Richard Wagner - Parsifal +#. Modest Mussorgsky - Boris Godunow + +Ukulelist +--------- +Meine neueste Idee. Nachdem ich ein Jahr lang durchgehalten hatte, in einer Ukulelenband keine Ukulele zu spielen, nahm ich in Holland eine Ukulele in die Hand und begann die ersten Töne zu spielen. Ob was daraus wird, weiß ich noch nicht, normalerweise werd ich am Bass mehr gebraucht. + + diff --git a/content/pages/zitate.rst b/content/pages/zitate.rst new file mode 100644 index 0000000..7c274f2 --- /dev/null +++ b/content/pages/zitate.rst @@ -0,0 +1,20 @@ + +:title: Zitate +:Date: 2014/08/13 +:pageorder: 005 +:slug: zitate + +Meine Lieblingszitate +===================== +Gruppiert nach Person, aber nicht sortiert. + +- Gregor Gysi + - Mit Duck­mäu­ser­tum und Hasen­fü­ßig­keit erreicht man keine Freundschaft. +- Yasmin Hafedh + - Denn auf Dauer glück­lich sein geht ja nicht. Zumin­dest nicht, wenn man von sich behaup­tet, Künst­ler zu sein +- George Orwell + - To die hating them, that was freedom. +- Edsger W. Dijkstra + - Testing shows the presence of bugs, not their absence. +- Wally de Backer + - You can get addicted to a certain kind of Sadness diff --git a/content/test.rst b/content/test.rst new file mode 100644 index 0000000..50420c7 --- /dev/null +++ b/content/test.rst @@ -0,0 +1,5 @@ +:date: 2015-03-21 +:title: Test Document +:status: draft + +bla bla blub :math:`3 \pi` diff --git a/fabfile.py b/fabfile.py new file mode 100644 index 0000000..817f448 --- /dev/null +++ b/fabfile.py @@ -0,0 +1,60 @@ +from fabric.api import * +import fabric.contrib.project as project +import os + +# Local path configuration (can be absolute or relative to fabfile) +env.deploy_path = 'output' +DEPLOY_PATH = env.deploy_path + +# Remote server configuration +production = 'root@localhost:22' +dest_path = '/var/www' + +# Rackspace Cloud Files configuration settings +env.cloudfiles_username = 'my_rackspace_username' +env.cloudfiles_api_key = 'my_rackspace_api_key' +env.cloudfiles_container = 'my_cloudfiles_container' + + +def clean(): + if os.path.isdir(DEPLOY_PATH): + local('rm -rf {deploy_path}'.format(**env)) + local('mkdir {deploy_path}'.format(**env)) + +def build(): + local('pelican -s pelicanconf.py') + +def rebuild(): + clean() + build() + +def regenerate(): + local('pelican -r -s pelicanconf.py') + +def serve(): + local('cd {deploy_path} && python -m SimpleHTTPServer'.format(**env)) + +def reserve(): + build() + serve() + +def preview(): + local('pelican -s publishconf.py') + +def cf_upload(): + rebuild() + local('cd {deploy_path} && ' + 'swift -v -A https://auth.api.rackspacecloud.com/v1.0 ' + '-U {cloudfiles_username} ' + '-K {cloudfiles_api_key} ' + 'upload -c {cloudfiles_container} .'.format(**env)) + +@hosts(production) +def publish(): + local('pelican -s publishconf.py') + project.rsync_project( + remote_dir=dest_path, + exclude=".DS_Store", + local_dir=DEPLOY_PATH.rstrip('/') + '/', + delete=True + ) diff --git a/pelicanconf.py b/pelicanconf.py new file mode 100644 index 0000000..c78c915 --- /dev/null +++ b/pelicanconf.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # +from __future__ import unicode_literals + +AUTHOR = u'Konstantin Zangerle' +SITENAME = u'First Contact 2017' +SITEURL = 'http://localhost:8080' + +TIMEZONE = 'Europe/Paris' + +DEFAULT_LANG = u'en' + +# Feed generation is usually not desired when developing +FEED_ALL_ATOM = 'feeds/all.atom.xml' +CATEGORY_FEED_ATOM = None +TRANSLATION_FEED_ATOM = None + +# Blogroll +LINKS = (('Pelican', 'http://getpelican.com/'), + ('Python.org', 'http://python.org/'), + ('Jinja2', 'http://jinja.pocoo.org/'), + ('Feed', 'http://konstantinzangerle.de/feeds/blog.atom.xml'), + ('FS Mathematik / Informatik KIT', 'https://fsmi.uni-karlsruhe.de') + ) + +# Social widget +SOCIAL = (('Facebook','http://facebook.com/konstantin.zangerle'), + ('GitHub','http://github.com/JustKiddingCode'),) + +DEFAULT_PAGINATION = 3 + +# Uncomment following line if you want document-relative URLs when developing +RELATIVE_URLS = False + +THEME = "themes/fsmi-theme" +#THEME = "themes/jesuislibre" +DISPLAY_CATEGORIES_ON_MENU = False +PAGE_ORDER_BY = 'pageorder' +ARTICLE_SAVE_AS = '{category}/{date:%Y}/{date:%b}/{date:%d}/{title}/index.html' +ARTICLE_URL = '{category}/{date:%Y}/{date:%b}/{date:%d}/{title}/' +PAGE_SAVE_AS = 'pages/{slug}.html' +PLUGIN_PATHS = ["plugins"] +#PLUGINS = ["render_math"] + +#MENUITEMS=buildNavigation.getNavigation() + +STATIC_PATHS = ['images', 'tut' ] diff --git a/publishconf.py b/publishconf.py new file mode 100644 index 0000000..b89f119 --- /dev/null +++ b/publishconf.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # +from __future__ import unicode_literals + +AUTHOR = u'Konstantin Zangerle' +SITENAME = u'First Contact 2017' +SITEURL = 'http://www.first-contact.net/2017/' + +TIMEZONE = 'Europe/Paris' + +DEFAULT_LANG = u'en' + +# Feed generation is usually not desired when developing +FEED_ALL_ATOM = 'feeds/all.atom.xml' +CATEGORY_FEED_ATOM = None +TRANSLATION_FEED_ATOM = None + +# Blogroll +LINKS = (('Pelican', 'http://getpelican.com/'), + ('Python.org', 'http://python.org/'), + ('Jinja2', 'http://jinja.pocoo.org/'), + ('Feed', 'http://konstantinzangerle.de/feeds/blog.atom.xml'), + ('FS Mathematik / Informatik KIT', 'https://fsmi.uni-karlsruhe.de') + ) + +# Social widget +SOCIAL = (('Facebook','http://facebook.com/konstantin.zangerle'), + ('GitHub','http://github.com/JustKiddingCode'),) + +DEFAULT_PAGINATION = 3 + +# Uncomment following line if you want document-relative URLs when developing +RELATIVE_URLS = False + +THEME = "themes/fsmi-theme" +#THEME = "themes/jesuislibre" +DISPLAY_CATEGORIES_ON_MENU = False +PAGE_ORDER_BY = 'pageorder' +ARTICLE_SAVE_AS = '{category}/{date:%Y}/{date:%b}/{date:%d}/{title}/index.html' +ARTICLE_URL = '{category}/{date:%Y}/{date:%b}/{date:%d}/{title}/' +PAGE_SAVE_AS = 'pages/{slug}.html' +PLUGIN_PATHS = ["plugins"] +#PLUGINS = ["render_math"] + +#MENUITEMS=buildNavigation.getNavigation() + +STATIC_PATHS = ['images', 'tut' ] diff --git a/themes/fsmi-theme/static/css/main.css b/themes/fsmi-theme/static/css/main.css new file mode 100644 index 0000000..ebb0aaa --- /dev/null +++ b/themes/fsmi-theme/static/css/main.css @@ -0,0 +1,324 @@ +h1 {font-size: 1.6em} +h2 {font-size: 1.4em} +h3 {font-size: 1.2em} +h4 {font-size: 1.1em} +h5 {font-size: 1.0em} +h6 {font-size: 1.0em} + +h1.title { + background-color: rgba(0,0,0,0.8); + padding: 0.2em 0.5em; + color:white; + padding-right: 0em; + border-radius: 0.3em 0.0em 0.0em 0.3em; +} + +#logo { + width: 70%; +} + +#page-content h1, #page-content h2 { + padding: 0.2em 0.5em; + width: 100%; + color: #fff; +} +#page-content h1{ + background-color: rgba(0,0,0,0.9); +} +#page-content h1 a{ + color:white; +} +#page-content h2{ + background-color: rgba(0,0,0,0.65); + +} +/*Style for general links*/ +a:hover { + text-decoration:underline; +} + +a ,.navbar-text, #menu-toggle + label{ + text-decoration:none; + color: #2c3e6e; + +} + + +/*Link styling for header*/ +a.menulink { + text-decoration:none; + padding-right:0.2em; + padding-left:0.2em; + display:inline-block; +} +a.head:hover, a.head:active, a.menulink:hover, a.menulink:active{ + + background-color: black; + color:white; + text-decoration:none; + /*padding:0.1rem;*/ +} + + + + + +#page-title > a:hover{ + text-decoration: none; +} + +html, body { + height: 100%; + font-size: 15px; + font-family: "Gill Sans", "Gill Sans MT", "" sans-serif; + background-image:url('/2017/theme/pattern.png'); + color: black; +} + +p { + text-align: justify; +} + +img { + max-width: 100%; +} + +#wrap { + width: 100%; + min-height: 100%; + height: auto +} + +.pagination { + margin-top: auto; + margin-bottom: auto; + vertical-align: middle; +} + +.btn-group { + display: inline-block; +} +/*Navigation*/ +#navbar { + font-size: 1.2rem; + color: #333; +} + +#navbar .navbar-header { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: nowrap; + text-align: center; +} + +#navbar .navbar-header > div { + flex: initial; +} + +.navbar-text { + /*display: inline-block;*/ + /*width: 80%;*/ + font-size: 2rem; + /*color: #2c3e6e;*/ + /*text-align: center;*/ +} + + +.navbar-img { + /*min-width: 9%;*/ + /*display: inline-block;*/ + /*text-align: center;*/ + margin-right: 2rem; +} + +#menuitem-list { + text-align: center; + font-size: 25pt; + padding-left: 0em; + display: flex; + flex-direction: row; + justify-content: center ; + align-items: flex-start; + flex-wrap: wrap; + margin-top: 0.5em; +} +@media all and (max-width: 55rem) { + #menuitem-list { + flex-direction: column; + align-items: center; + } +} + +.hide { + display: none; +} + +li.dropdown { + /*display: inline-block;*/ + /*vertical-align: top;*/ + padding-right:2%; + padding-left:2%; + list-style-type: none; + flex-basis: max-content; +} + + +ul.dropdown-content { + font-size:65%; + display: none; + list-style: none; + text-align: left; + padding-left: 2em; + padding-right: 1em; + border:thin solid #333; + position:absolute; + background-color: rgba(255, 255, 255, 0.95); + border-top: none; + } + #menu-toggle{ + display: none; + } + #menu-toggle + label { + display: none; + text-align: center; + font-size:1.5em; + border-bottom: dotted 2px darkgrey; + border-top: dotted 2px darkgrey; + + + } +@media all and (max-width: 55rem) { + ul.dropdown-content{ + text-align: center; + } + ul.dropdown-content{ + position: static; + } + #menu-toggle + label { + display: block; + margin-bottom: 0.2em; + } + #menu-toggle:checked + label{ + border-bottom: none; + } + + #menu-toggle { + opacity: 0; + display: block; + + } + #menu-toggle ~ #menuitem-list { + display: none; + } + #menu-toggle:checked ~ #menuitem-list{ + display: block; + border-bottom: dotted 2px darkgrey; + + } +} +.dropdown:hover .dropdown-content { + display: block; +} + +.page-header { + margin: 0; + margin-bottom: 21px; + padding: 0; +} + +.article_info { + padding: 0.1em 1em; + border-radius: 0.3em; + background-color: rgba(84, 191, 199, 0.5); +} + +.pagination { + font-size: 1.2em; +} + +td.code { + width:100%; +} + +.panel-group { + width:80%; + margin:0 auto; +} + + +.panel, #page-content{ + background-color: rgba(183, 183, 183, 0.3); + border-radius:0.3em 0.3em 0 0; + +} + +.panel{ + padding:1rem; + /*margin-bottom:0.1em;*/ + /*background-color: #2c3e6e;*/ + margin-bottom: 1rem; + /*border-bottom: 0.2em solid #ddd;*/ +} + +ul.pagination { + text-align: center; + font-size: 1.2em; +} + +ul.pagination li { + list-style: none; + display: inline-block; + padding: 0 0.2em; +} + +.sr-only { + display:none; +} + +.container { + width:90%; + margin:0 auto; +} + +#page-content { + width: 80%; + margin: 0 auto; + /*background-color: #2c3e6e;*/ + /*color: #fff;*/ + padding: 1em; + /*border-radius: 0.3em;*/ +} + +/*#page-content p {*/ + /*color: #E1FFFF;*/ +/*}*/ + +#page-content .header { + border-bottom: 0.1em dotted black; + font-weight: bold; +} + +#page-content .content { + margin-top: 1em; +} + +.wall-of-text { + line-height: 1.5em; + /*column-count: 2;*/ + column-width: 30em; + column-gap: 1.5em; + column-rule: dashed 0.1em red; + widows: 3; + orphans: 3; +} + +/*.wall-of-text p {*/ + /*-webkit-margin-before: 0;*/ + /*-webkit-margin-after: 0;*/ +/*}*/ + +.wall-of-text :not(p) { + column-span: all; +} diff --git a/themes/fsmi-theme/static/css/sprechstunden.css b/themes/fsmi-theme/static/css/sprechstunden.css new file mode 100644 index 0000000..c96ffe2 --- /dev/null +++ b/themes/fsmi-theme/static/css/sprechstunden.css @@ -0,0 +1,21 @@ +tr:nth-child(3n+1) td { + border-top: 1px dashed; +} + +td { + border-right: 1px dashed; +} + +tr:nth-child(n-1) td { + border-left: 1px dashed; +} + + +tr:last-child td { + border-bottom: 1px dashed; +} + +#page-content{ + background-color: white; + color: black; +} diff --git a/themes/fsmi-theme/static/pattern.png b/themes/fsmi-theme/static/pattern.png new file mode 100644 index 0000000..96e9270 Binary files /dev/null and b/themes/fsmi-theme/static/pattern.png differ diff --git a/themes/fsmi-theme/templates/archives.html b/themes/fsmi-theme/templates/archives.html new file mode 100644 index 0000000..4bc3047 --- /dev/null +++ b/themes/fsmi-theme/templates/archives.html @@ -0,0 +1,59 @@ +{% set name = 'Archives' %} +{% set link = 'archives.html' %} +{% extends "base.html" %} + +{% block content %} +{% if dates %} +{# year list #} +
+ {% for articles_group_by_year in dates|groupby('date.year')|reverse %} + {% set year = articles_group_by_year %} + {% set parent = ["Year",year.grouper]|join %} +
+ {# year list heading #} + + {# end year list heading #} + + {# year list body #} +
+
+ + {# month list #} +
+ {% for articles_group_by_month in year.list|groupby('date.month')|reverse %} + + {% set month = articles_group_by_month %} + + {% from 'macro.html' import article_panel_list with context %} + {% set id = [parent,"Month",month.grouper]|join %} + {% set title_left = month.list[0].date|strftime('%B') %} + {% set title_right = month.list|count %} + {% set entry_list = month.list %} + {{ article_panel_list(parent,id,title_left,title_right,entry_list,show_date=True) }} + + {% endfor %} +
+ {# end month list #} + +
+
+ {# end year list body #} + +
+ {% endfor %} +
+{# end year list #} + +{% endif %} +{% endblock %} diff --git a/themes/fsmi-theme/templates/article.html b/themes/fsmi-theme/templates/article.html new file mode 100644 index 0000000..706bcc0 --- /dev/null +++ b/themes/fsmi-theme/templates/article.html @@ -0,0 +1,50 @@ +{% set name = article.title %} +{% set link = article.url %} +{% extends "base.html" %} + +{% block content %} + {% from 'macro.html' import article_info with context %} + {% from 'macro.html' import genurl with context %} + + {{ article_info(article) }} +
+ +
+ {{ article.content }} +
+ +
+ {% if article.related_posts %} + {% from 'macro.html' import article_panel_list with context %} + {% set articles = article.related_posts %} + {% set parent = '' %} + {% set id = "collapseRelated" %} + {% set title_left = "Verwandte Posts" %} + {% set title_right = articles|count %} + {% set entry_list = articles %} + {{ article_panel_list(parent,id,title_left,title_right,entry_list) }} + {% endif %} + + {% for temp in dates %} + {% if temp.url == article.url %} + {% if not loop.first %} + {% set prev = dates[loop.index0-1] %} + {% endif %} + {% if not loop.last %} + {% set next = dates[loop.index0+1] %} + {% endif %} + + {% endif %} + {% endfor %} + + +{% endblock %} diff --git a/themes/fsmi-theme/templates/author.html b/themes/fsmi-theme/templates/author.html new file mode 100644 index 0000000..d1fcc95 --- /dev/null +++ b/themes/fsmi-theme/templates/author.html @@ -0,0 +1,15 @@ +{% set name = author %} +{% set link = ["author/",author,".html"]|join %} +{% extends "base.html" %} + +{% block content %} + + {% from 'macro.html' import article_panel_list with context %} + {% set parent = '' %} + {% set id = ["collapse",author]|join %} + {% set title_left = author %} + {% set title_right = articles|count %} + {% set entry_list = articles %} + {{ article_panel_list(parent,id,title_left,title_right,entry_list) }} + +{% endblock %} diff --git a/themes/fsmi-theme/templates/base.html b/themes/fsmi-theme/templates/base.html new file mode 100644 index 0000000..9f7576e --- /dev/null +++ b/themes/fsmi-theme/templates/base.html @@ -0,0 +1,55 @@ +{% from 'macro.html' import genurl with context %} +{% set link = ['/',link]|join %} + + + + + + + + {% if FAVICON and FAVICON_TYPE %} + + {% endif %} + + {% from 'macro.html' import pagetitle with context %} + {{ pagetitle(name) }} + + + + {% if output_file == 'sprechstunden.html '%} + + {% endif %} + + +
+ {% from 'macro.html' import navbar with context %} + {{ navbar(link) }} +
+ {% block left_sidebar %}{% endblock %} +
+ +
+ +
+ {% block content %}{% endblock %} +
+ +
+ {% block pagefooter %}{% endblock %} +
+ +
+ +
+ {% block right_sidebar %}{% endblock %} +
+
+ + {% from 'macro.html' import footer with context %} + {{ footer() }} + + + diff --git a/themes/fsmi-theme/templates/categories.html b/themes/fsmi-theme/templates/categories.html new file mode 100644 index 0000000..d1663af --- /dev/null +++ b/themes/fsmi-theme/templates/categories.html @@ -0,0 +1,36 @@ +{% set name = "Categories" %} +{% set link = "categories.html" %} + +{% extends "base.html" %} + +{% block content %} +{% if categories %} +

+ {% from 'macro.html' import taglist %} + {{ taglist(categories, "#", "") }} +

+ +
+ {% for category, articles in categories|sort %} + + {% from "macro.html" import article_panel_list with context %} + {% set parent = "accordion" %} + {% set id = category %} + {% set title_left = category %} + {% set title_left_link = "/category/%s.html" % (category) %} + {% set title_right = articles|count %} + {% set entry_list = articles %} + {{ article_panel_list( + parent=parent, + id=id, + title_left=title_left, + title_left_link=title_left_link, + title_right=title_right, + entry_list=entry_list, + ) }} + + {% endfor %} +
+ +{% endif %} +{% endblock %} diff --git a/themes/fsmi-theme/templates/category.html b/themes/fsmi-theme/templates/category.html new file mode 100644 index 0000000..ad30c46 --- /dev/null +++ b/themes/fsmi-theme/templates/category.html @@ -0,0 +1,13 @@ +{% set name = ["Category: ",category]|join %} +{% set link = ["category/",category,".html"]|join %} +{% extends "base.html" %} + +{% block content %} + {% from 'macro.html' import article_panel_list with context %} + {% set parent = '' %} + {% set id = category %} + {% set title_left = category %} + {% set title_right = articles|count %} + {% set entry_list = articles %} + {{ article_panel_list(parent,id,title_left,title_right,entry_list) }} +{% endblock %} diff --git a/themes/fsmi-theme/templates/css/main.css b/themes/fsmi-theme/templates/css/main.css new file mode 100644 index 0000000..7c95d47 --- /dev/null +++ b/themes/fsmi-theme/templates/css/main.css @@ -0,0 +1,324 @@ +h1 {font-size: 1.6em} +h2 {font-size: 1.4em} +h3 {font-size: 1.2em} +h4 {font-size: 1.1em} +h5 {font-size: 1.0em} +h6 {font-size: 1.0em} + +h1.title { + background-color: rgba(0,0,0,0.8); + padding: 0.2em 0.5em; + color:white; + padding-right: 0em; + border-radius: 0.3em 0.0em 0.0em 0.3em; +} + +#logo { + width: 70%; +} + +#page-content h1, #page-content h2 { + padding: 0.2em 0.5em; + width: 100%; + color: #fff; +} +#page-content h1{ + background-color: rgba(0,0,0,0.9); +} +#page-content h1 a{ + color:white; +} +#page-content h2{ + background-color: rgba(0,0,0,0.65); + +} +/*Style for general links*/ +a:hover { + text-decoration:underline; +} + +a ,.navbar-text, #menu-toggle + label{ + text-decoration:none; + color: #2c3e6e; + +} + + +/*Link styling for header*/ +a.menulink { + text-decoration:none; + padding-right:0.2em; + padding-left:0.2em; + display:inline-block; +} +a.head:hover, a.head:active, a.menulink:hover, a.menulink:active{ + + background-color: black; + color:white; + text-decoration:none; + /*padding:0.1rem;*/ +} + + + + + +#page-title > a:hover{ + text-decoration: none; +} + +html, body { + height: 100%; + font-size: 15px; + font-family: "Gill Sans", "Gill Sans MT", "" sans-serif; + background-image:url('/2017/theme/pattern.png')); + color: black; +} + +p { + text-align: justify; +} + +img { + max-width: 100%; +} + +#wrap { + width: 100%; + min-height: 100%; + height: auto +} + +.pagination { + margin-top: auto; + margin-bottom: auto; + vertical-align: middle; +} + +.btn-group { + display: inline-block; +} +/*Navigation*/ +#navbar { + font-size: 1.2rem; + color: #333; +} + +#navbar .navbar-header { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: nowrap; + text-align: center; +} + +#navbar .navbar-header > div { + flex: initial; +} + +.navbar-text { + /*display: inline-block;*/ + /*width: 80%;*/ + font-size: 2rem; + /*color: #2c3e6e;*/ + /*text-align: center;*/ +} + + +.navbar-img { + /*min-width: 9%;*/ + /*display: inline-block;*/ + /*text-align: center;*/ + margin-right: 2rem; +} + +#menuitem-list { + text-align: center; + font-size: 25pt; + padding-left: 0em; + display: flex; + flex-direction: row; + justify-content: center ; + align-items: flex-start; + flex-wrap: wrap; + margin-top: 0.5em; +} +@media all and (max-width: 55rem) { + #menuitem-list { + flex-direction: column; + align-items: center; + } +} + +.hide { + display: none; +} + +li.dropdown { + /*display: inline-block;*/ + /*vertical-align: top;*/ + padding-right:2%; + padding-left:2%; + list-style-type: none; + flex-basis: max-content; +} + + +ul.dropdown-content { + font-size:65%; + display: none; + list-style: none; + text-align: left; + padding-left: 2em; + padding-right: 1em; + border:thin solid #333; + position:absolute; + background-color: rgba(255, 255, 255, 0.95); + border-top: none; + } + #menu-toggle{ + display: none; + } + #menu-toggle + label { + display: none; + text-align: center; + font-size:1.5em; + border-bottom: dotted 2px darkgrey; + border-top: dotted 2px darkgrey; + + + } +@media all and (max-width: 55rem) { + ul.dropdown-content{ + text-align: center; + } + ul.dropdown-content{ + position: static; + } + #menu-toggle + label { + display: block; + margin-bottom: 0.2em; + } + #menu-toggle:checked + label{ + border-bottom: none; + } + + #menu-toggle { + opacity: 0; + display: block; + + } + #menu-toggle ~ #menuitem-list { + display: none; + } + #menu-toggle:checked ~ #menuitem-list{ + display: block; + border-bottom: dotted 2px darkgrey; + + } +} +.dropdown:hover .dropdown-content { + display: block; +} + +.page-header { + margin: 0; + margin-bottom: 21px; + padding: 0; +} + +.article_info { + padding: 0.1em 1em; + border-radius: 0.3em; + background-color: rgba(84, 191, 199, 0.5); +} + +.pagination { + font-size: 1.2em; +} + +td.code { + width:100%; +} + +.panel-group { + width:80%; + margin:0 auto; +} + + +.panel, #page-content{ + background-color: rgba(183, 183, 183, 0.3); + border-radius:0.3em 0.3em 0 0; + +} + +.panel{ + padding:1rem; + /*margin-bottom:0.1em;*/ + /*background-color: #2c3e6e;*/ + margin-bottom: 1rem; + /*border-bottom: 0.2em solid #ddd;*/ +} + +ul.pagination { + text-align: center; + font-size: 1.2em; +} + +ul.pagination li { + list-style: none; + display: inline-block; + padding: 0 0.2em; +} + +.sr-only { + display:none; +} + +.container { + width:90%; + margin:0 auto; +} + +#page-content { + width: 80%; + margin: 0 auto; + /*background-color: #2c3e6e;*/ + /*color: #fff;*/ + padding: 1em; + /*border-radius: 0.3em;*/ +} + +/*#page-content p {*/ + /*color: #E1FFFF;*/ +/*}*/ + +#page-content .header { + border-bottom: 0.1em dotted black; + font-weight: bold; +} + +#page-content .content { + margin-top: 1em; +} + +.wall-of-text { + line-height: 1.5em; + /*column-count: 2;*/ + column-width: 30em; + column-gap: 1.5em; + column-rule: dashed 0.1em red; + widows: 3; + orphans: 3; +} + +/*.wall-of-text p {*/ + /*-webkit-margin-before: 0;*/ + /*-webkit-margin-after: 0;*/ +/*}*/ + +.wall-of-text :not(p) { + column-span: all; +} diff --git a/themes/fsmi-theme/templates/index.html b/themes/fsmi-theme/templates/index.html new file mode 100644 index 0000000..789351e --- /dev/null +++ b/themes/fsmi-theme/templates/index.html @@ -0,0 +1,45 @@ +{% set name = '' %} +{% set link = '' %} + +{% extends "base.html" %} + +{% block content %} +{% from 'macro.html' import genurl with context %} + +{% if articles %} + {% if articles_page %} + {% set articles = articles_page.object_list %} + {% endif %} + +
+ {% for article in articles %} + {% set year = article.date|strftime('%Y') %} + {% set month = article.date|strftime('%B') %} + {% set month_index = article.date|strftime('%m') %} + {% set article_url = genurl( article.url, force=True ) %} + +
+

+ {{- article.title -}} +

+
+ {% from 'macro.html' import article_info with context %} + {{ article_info(article) }} + {% if article.summary %} + {{- article.summary -}} + {% endif %} +
+
+ mehr... +
+
+ {% endfor %} +
+{% endif %} + +{% endblock content %} + +{% block pagefooter %} + {% from 'macro.html' import pagination with context %} + {{ pagination() }} +{% endblock %} diff --git a/themes/fsmi-theme/templates/macro.html b/themes/fsmi-theme/templates/macro.html new file mode 100644 index 0000000..3d14172 --- /dev/null +++ b/themes/fsmi-theme/templates/macro.html @@ -0,0 +1,219 @@ +{% macro genurl(string, force=False) %} + {% if (force or + ( string.startswith('/') and not string.startswith('//') )) %} + {% set url = '/'.join([SITEURL.rstrip('/'),string.lstrip('/')]) %} + {{- url -}} + {% else %} + {% set url = '/'.join([SITEURL, string]) %} + {{- url -}} + {% endif %} +{% endmacro %} + +{% macro newtab(string, force=False) %} + {% if ( string.startswith('http://') or + string.startswith('https://')) %} + target="_blank" + {% endif %} +{% endmacro %} + +{% macro article_panel_list(parent='', id='', title_left='', title_right='', entry_list=[], show_date=False, title_left_link='') %} + {% if not title_left_link %} + {% set title_left_link = "#%s" % id %} + {% endif %} + + +{% endmacro %} + +{% macro pagetitle(name) %} + {% if name and name != '' %} + {{ name }} · {{ SITENAME }} + {% else %} + {{ SITENAME }} + {% endif %} +{% endmacro %} + +{% macro pageheader(name, link) %} + {% if name and name != '' %} + + {% endif %} +{% endmacro %} + +{% macro navbar(link) %} + + +{% endmacro %} + +{% macro footer() %} + +{% endmacro %} + +{% macro pagination() %} + {% if DEFAULT_PAGINATION %} +
    + + {% if articles_page.has_previous() %} +
  • + {% if articles_page.previous_page_number() == 1 %} + « + {% else %} + « + {% endif %} +
  • + {% else %} +
  • + « +
  • + {% endif %} + + {% for num in articles_paginator.page_range %} + {% if articles_page.number != num %} +
  • + {% if num == 1 %} + {% set page_link = page_name+'.html' %} + {% else %} + {% set page_link = page_name+num|string+'.html' %} + {% endif %} + + {{- num }}(current) +
  • + {% else %} +
  • + {{- num }}(current) +
  • + {% endif %} + {% endfor %} + + {% if articles_page.has_next() %} +
  • + » +
  • + {% else %} +
  • + » +
  • + {% endif %} + +
+ {% endif %} +{% endmacro %} + +{% macro article_info(article) %} + +{% endmacro %} + +{% macro taglist(list,prefix='',suffix='') %} + {% for tag, articles in list|sort %} + + {{- tag }} {{ articles|count }} + {% endfor %} +{% endmacro %} diff --git a/themes/fsmi-theme/templates/page.html b/themes/fsmi-theme/templates/page.html new file mode 100644 index 0000000..e2561ce --- /dev/null +++ b/themes/fsmi-theme/templates/page.html @@ -0,0 +1,14 @@ +{% set name = page.title %} +{% set link = page.url %} +{% extends "base.html" %} + +{% block content %} +
+
+ {{ page.title }} +
+
+ {{ page.content }} +
+
+{% endblock %} diff --git a/themes/fsmi-theme/templates/tag.html b/themes/fsmi-theme/templates/tag.html new file mode 100644 index 0000000..89d40b4 --- /dev/null +++ b/themes/fsmi-theme/templates/tag.html @@ -0,0 +1,13 @@ +{% set name = ["Tag: ",tag]|join %} +{% set link = ["tag/",tag,".html"]|join %} +{% extends "base.html" %} + +{% block content %} + {% from 'macro.html' import article_panel_list with context %} + {% set parent = '' %} + {% set id = tag %} + {% set title_left = tag %} + {% set title_right = articles|count %} + {% set entry_list = articles %} + {{ article_panel_list(parent,id,title_left,title_right,entry_list) }} +{% endblock %} diff --git a/themes/fsmi-theme/templates/taglist.html b/themes/fsmi-theme/templates/taglist.html new file mode 100644 index 0000000..8e8aa9b --- /dev/null +++ b/themes/fsmi-theme/templates/taglist.html @@ -0,0 +1,12 @@ +{% set name = 'Tag List' %} +{% set link = 'taglist.html' %} +{% extends "base.html" %} + +{% block content %} +{% if tags %} + + {% from 'macro.html' import taglist %} + {{ taglist('tag',tags) }} + +{% endif %} +{% endblock %} diff --git a/themes/fsmi-theme/templates/tags.html b/themes/fsmi-theme/templates/tags.html new file mode 100644 index 0000000..9503898 --- /dev/null +++ b/themes/fsmi-theme/templates/tags.html @@ -0,0 +1,35 @@ +{% set name = "Tags" %} +{% set link = "tags.html" %} +{% extends "base.html" %} + +{% block content %} +{% if tags %} +

+ {% from "macro.html" import taglist %} + {{ taglist(tags, "#", "") }} +

+ +
+ {% for tag, articles in tags|sort %} + + {% from "macro.html" import article_panel_list with context %} + {% set parent = "accordion" %} + {% set id = tag %} + {% set title_left = tag %} + {% set title_left_link = "/tag/%s.html" % (tag) %} + {% set title_right = articles|count %} + {% set entry_list = articles %} + {{ article_panel_list( + parent=parent, + id=id, + title_left=title_left, + title_left_link=title_left_link, + title_right=title_right, + entry_list=entry_list, + ) }} + + {% endfor %} +
+ +{% endif %} +{% endblock %} diff --git a/themes/fsmi-theme/templates/translations.html b/themes/fsmi-theme/templates/translations.html new file mode 100644 index 0000000..26c4aeb --- /dev/null +++ b/themes/fsmi-theme/templates/translations.html @@ -0,0 +1,8 @@ +{% macro translations_for(article) %} +{% if article.translations %} +Translations: + {% for translation in article.translations %} + {{ translation.lang }} + {% endfor %} +{% endif %} +{% endmacro %} diff --git a/themes/fsmi-theme/templates/twitter.html b/themes/fsmi-theme/templates/twitter.html new file mode 100644 index 0000000..c6b159f --- /dev/null +++ b/themes/fsmi-theme/templates/twitter.html @@ -0,0 +1,3 @@ +{% if TWITTER_USERNAME %} + +{% endif %} \ No newline at end of file