forked from varia/varia.website
initial commit
This commit is contained in:
commit
65de0a5f8c
124
Makefile
Normal file
124
Makefile
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
PY?=python
|
||||||
|
PELICAN?=pelican
|
||||||
|
PELICANOPTS=
|
||||||
|
|
||||||
|
BASEDIR=$(CURDIR)
|
||||||
|
INPUTDIR=$(BASEDIR)/content
|
||||||
|
OUTPUTDIR=$(BASEDIR)/output
|
||||||
|
CONFFILE=$(BASEDIR)/pelicanconf.py
|
||||||
|
PUBLISHCONF=$(BASEDIR)/publishconf.py
|
||||||
|
|
||||||
|
FTP_HOST=localhost
|
||||||
|
FTP_USER=anonymous
|
||||||
|
FTP_TARGET_DIR=/
|
||||||
|
|
||||||
|
SSH_HOST=roelof.info
|
||||||
|
SSH_PORT=8282
|
||||||
|
SSH_USER=r
|
||||||
|
SSH_TARGET_DIR=/opt/wisselwerking
|
||||||
|
|
||||||
|
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/
|
||||||
|
|
||||||
|
GITHUB_PAGES_BRANCH=gh-pages
|
||||||
|
|
||||||
|
DEBUG ?= 0
|
||||||
|
ifeq ($(DEBUG), 1)
|
||||||
|
PELICANOPTS += -D
|
||||||
|
endif
|
||||||
|
|
||||||
|
RELATIVE ?= 0
|
||||||
|
ifeq ($(RELATIVE), 1)
|
||||||
|
PELICANOPTS += --relative-urls
|
||||||
|
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 serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
|
||||||
|
@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 'Set the RELATIVE variable to 1 to enable relative urls '
|
||||||
|
@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
|
||||||
|
|
||||||
|
serve-global:
|
||||||
|
ifdef SERVER
|
||||||
|
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER)
|
||||||
|
else
|
||||||
|
cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
devserver:
|
||||||
|
ifdef PORT
|
||||||
|
$(BASEDIR)/develop_server.sh restart $(PORT)
|
||||||
|
else
|
||||||
|
$(BASEDIR)/develop_server.sh restart
|
||||||
|
endif
|
||||||
|
|
||||||
|
stopserver:
|
||||||
|
$(BASEDIR)/develop_server.sh stop
|
||||||
|
@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 -rvzc --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 --guess-mime-type --no-mime-magic --no-preserve
|
||||||
|
|
||||||
|
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 -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
|
||||||
|
git push origin $(GITHUB_PAGES_BRANCH)
|
||||||
|
|
||||||
|
.PHONY: html help clean regenerate serve serve-global devserver stopserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github
|
5
content/first_post.md
Normal file
5
content/first_post.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Title: first_post
|
||||||
|
Date: 2014-12-13 18:32
|
||||||
|
Category: Test
|
||||||
|
|
||||||
|
Hello world from Pelican!
|
103
develop_server.sh
Executable file
103
develop_server.sh
Executable file
@ -0,0 +1,103 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
##
|
||||||
|
# This section should match your Makefile
|
||||||
|
##
|
||||||
|
PY=${PY:-python}
|
||||||
|
PELICAN=${PELICAN:-pelican}
|
||||||
|
PELICANOPTS=
|
||||||
|
|
||||||
|
BASEDIR=$(pwd)
|
||||||
|
INPUTDIR=$BASEDIR/content
|
||||||
|
OUTPUTDIR=$BASEDIR/output
|
||||||
|
CONFFILE=$BASEDIR/pelicanconf.py
|
||||||
|
|
||||||
|
###
|
||||||
|
# Don't change stuff below here unless you are sure
|
||||||
|
###
|
||||||
|
|
||||||
|
SRV_PID=$BASEDIR/srv.pid
|
||||||
|
PELICAN_PID=$BASEDIR/pelican.pid
|
||||||
|
|
||||||
|
function usage(){
|
||||||
|
echo "usage: $0 (stop) (start) (restart) [port]"
|
||||||
|
echo "This starts Pelican in debug and reload mode and then launches"
|
||||||
|
echo "an HTTP server to help site development. It doesn't read"
|
||||||
|
echo "your Pelican settings, so if you edit any paths in your Makefile"
|
||||||
|
echo "you will need to edit your settings as well."
|
||||||
|
exit 3
|
||||||
|
}
|
||||||
|
|
||||||
|
function alive() {
|
||||||
|
kill -0 $1 >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
function shut_down(){
|
||||||
|
PID=$(cat $SRV_PID)
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
if alive $PID; then
|
||||||
|
echo "Stopping HTTP server"
|
||||||
|
kill $PID
|
||||||
|
else
|
||||||
|
echo "Stale PID, deleting"
|
||||||
|
fi
|
||||||
|
rm $SRV_PID
|
||||||
|
else
|
||||||
|
echo "HTTP server PIDFile not found"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PID=$(cat $PELICAN_PID)
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
if alive $PID; then
|
||||||
|
echo "Killing Pelican"
|
||||||
|
kill $PID
|
||||||
|
else
|
||||||
|
echo "Stale PID, deleting"
|
||||||
|
fi
|
||||||
|
rm $PELICAN_PID
|
||||||
|
else
|
||||||
|
echo "Pelican PIDFile not found"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function start_up(){
|
||||||
|
local port=$1
|
||||||
|
echo "Starting up Pelican and HTTP server"
|
||||||
|
shift
|
||||||
|
$PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
|
||||||
|
pelican_pid=$!
|
||||||
|
echo $pelican_pid > $PELICAN_PID
|
||||||
|
mkdir -p $OUTPUTDIR && cd $OUTPUTDIR
|
||||||
|
$PY -m pelican.server $port &
|
||||||
|
srv_pid=$!
|
||||||
|
echo $srv_pid > $SRV_PID
|
||||||
|
cd $BASEDIR
|
||||||
|
sleep 1
|
||||||
|
if ! alive $pelican_pid ; then
|
||||||
|
echo "Pelican didn't start. Is the Pelican package installed?"
|
||||||
|
return 1
|
||||||
|
elif ! alive $srv_pid ; then
|
||||||
|
echo "The HTTP server didn't start. Is there another service using port" $port "?"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
echo 'Pelican and HTTP server processes now running in background.'
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
# MAIN
|
||||||
|
###
|
||||||
|
[[ ($# -eq 0) || ($# -gt 2) ]] && usage
|
||||||
|
port=''
|
||||||
|
[[ $# -eq 2 ]] && port=$2
|
||||||
|
|
||||||
|
if [[ $1 == "stop" ]]; then
|
||||||
|
shut_down
|
||||||
|
elif [[ $1 == "restart" ]]; then
|
||||||
|
shut_down
|
||||||
|
start_up $port
|
||||||
|
elif [[ $1 == "start" ]]; then
|
||||||
|
if ! start_up $port; then
|
||||||
|
shut_down
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
usage
|
||||||
|
fi
|
92
fabfile.py
vendored
Normal file
92
fabfile.py
vendored
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
from fabric.api import *
|
||||||
|
import fabric.contrib.project as project
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
import SocketServer
|
||||||
|
|
||||||
|
from pelican.server import ComplexHTTPRequestHandler
|
||||||
|
|
||||||
|
# Local path configuration (can be absolute or relative to fabfile)
|
||||||
|
env.deploy_path = 'output'
|
||||||
|
DEPLOY_PATH = env.deploy_path
|
||||||
|
|
||||||
|
# Remote server configuration
|
||||||
|
production = 'r@roelof.info:8282'
|
||||||
|
dest_path = '/opt/wisselwerking'
|
||||||
|
|
||||||
|
# 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'
|
||||||
|
|
||||||
|
# Github Pages configuration
|
||||||
|
env.github_pages_branch = "gh-pages"
|
||||||
|
|
||||||
|
# Port for `serve`
|
||||||
|
PORT = 8000
|
||||||
|
|
||||||
|
def clean():
|
||||||
|
"""Remove generated files"""
|
||||||
|
if os.path.isdir(DEPLOY_PATH):
|
||||||
|
shutil.rmtree(DEPLOY_PATH)
|
||||||
|
os.makedirs(DEPLOY_PATH)
|
||||||
|
|
||||||
|
def build():
|
||||||
|
"""Build local version of site"""
|
||||||
|
local('pelican -s pelicanconf.py')
|
||||||
|
|
||||||
|
def rebuild():
|
||||||
|
"""`build` with the delete switch"""
|
||||||
|
local('pelican -d -s pelicanconf.py')
|
||||||
|
|
||||||
|
def regenerate():
|
||||||
|
"""Automatically regenerate site upon file modification"""
|
||||||
|
local('pelican -r -s pelicanconf.py')
|
||||||
|
|
||||||
|
def serve():
|
||||||
|
"""Serve site at http://localhost:8000/"""
|
||||||
|
os.chdir(env.deploy_path)
|
||||||
|
|
||||||
|
class AddressReuseTCPServer(SocketServer.TCPServer):
|
||||||
|
allow_reuse_address = True
|
||||||
|
|
||||||
|
server = AddressReuseTCPServer(('', PORT), ComplexHTTPRequestHandler)
|
||||||
|
|
||||||
|
sys.stderr.write('Serving on port {0} ...\n'.format(PORT))
|
||||||
|
server.serve_forever()
|
||||||
|
|
||||||
|
def reserve():
|
||||||
|
"""`build`, then `serve`"""
|
||||||
|
build()
|
||||||
|
serve()
|
||||||
|
|
||||||
|
def preview():
|
||||||
|
"""Build production version of site"""
|
||||||
|
local('pelican -s publishconf.py')
|
||||||
|
|
||||||
|
def cf_upload():
|
||||||
|
"""Publish to Rackspace Cloud Files"""
|
||||||
|
rebuild()
|
||||||
|
with lcd(DEPLOY_PATH):
|
||||||
|
local('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():
|
||||||
|
"""Publish to production via rsync"""
|
||||||
|
local('pelican -s publishconf.py')
|
||||||
|
project.rsync_project(
|
||||||
|
remote_dir=dest_path,
|
||||||
|
exclude=".DS_Store",
|
||||||
|
local_dir=DEPLOY_PATH.rstrip('/') + '/',
|
||||||
|
delete=True,
|
||||||
|
extra_opts='-c',
|
||||||
|
)
|
||||||
|
|
||||||
|
def gh_pages():
|
||||||
|
"""Publish to GitHub Pages"""
|
||||||
|
rebuild()
|
||||||
|
local("ghp-import -b {github_pages_branch} {deploy_path} -p".format(**env))
|
54
pelicanconf.py
Normal file
54
pelicanconf.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*- #
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
AUTHOR = u'team'
|
||||||
|
SITENAME = u'Centrum Alledaagse Tecnologie'
|
||||||
|
SITEURL = ''
|
||||||
|
|
||||||
|
PATH = 'content'
|
||||||
|
|
||||||
|
TIMEZONE = 'Europe/Amsterdam'
|
||||||
|
|
||||||
|
DEFAULT_LANG = u'nl'
|
||||||
|
|
||||||
|
# Feed generation is usually not desired when developing
|
||||||
|
FEED_ALL_ATOM = None
|
||||||
|
CATEGORY_FEED_ATOM = None
|
||||||
|
TRANSLATION_FEED_ATOM = None
|
||||||
|
AUTHOR_FEED_ATOM = None
|
||||||
|
AUTHOR_FEED_RSS = None
|
||||||
|
|
||||||
|
# Blogroll
|
||||||
|
#LINKS = (('Pelican', 'http://getpelican.com/'),
|
||||||
|
# ('Python.org', 'http://python.org/'),
|
||||||
|
# ('Jinja2', 'http://jinja.pocoo.org/'),
|
||||||
|
# ('You can modify those links in your config file', '#'),)
|
||||||
|
|
||||||
|
# Social widget
|
||||||
|
#SOCIAL = (('You can add links in your config file', '#'),
|
||||||
|
('Another social link', '#'),)
|
||||||
|
|
||||||
|
DEFAULT_PAGINATION = 5
|
||||||
|
|
||||||
|
# Uncomment following line if you want document-relative URLs when developing
|
||||||
|
#RELATIVE_URLS = True
|
||||||
|
|
||||||
|
PLUGIN_PATHS = ['./plugins']
|
||||||
|
PLUGINS = ['extract_toc']
|
||||||
|
MD_EXTENSIONS = ['codehilite','extra','smarty', 'toc']
|
||||||
|
|
||||||
|
STATIC_PATHS = ['extra', 'images', 'pdfs']
|
||||||
|
EXTRA_PATH_METADATA = {
|
||||||
|
'extra/robots.txt': {'path': 'robots.txt'},
|
||||||
|
'extra/favicon.ico': {'path': 'favicon.ico'},
|
||||||
|
'extra/htaccess': {'path': '.htaccess'}
|
||||||
|
}
|
||||||
|
|
||||||
|
MENUITEMS=(
|
||||||
|
# adds extra menu items, the others are automatically generated as pages
|
||||||
|
('home', '/'),
|
||||||
|
)
|
||||||
|
|
||||||
|
THEME = 'themes/wisselwerking'
|
||||||
|
|
24
publishconf.py
Normal file
24
publishconf.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*- #
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
# This file is only used if you use `make publish` or
|
||||||
|
# explicitly specify it as your config file.
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
sys.path.append(os.curdir)
|
||||||
|
from pelicanconf import *
|
||||||
|
|
||||||
|
SITEURL = ''
|
||||||
|
RELATIVE_URLS = False
|
||||||
|
|
||||||
|
FEED_ALL_ATOM = 'feeds/all.atom.xml'
|
||||||
|
CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml'
|
||||||
|
|
||||||
|
DELETE_OUTPUT_DIRECTORY = True
|
||||||
|
|
||||||
|
# Following items are often useful when publishing
|
||||||
|
|
||||||
|
#DISQUS_SITENAME = ""
|
||||||
|
#GOOGLE_ANALYTICS = ""
|
228
theme/wisselwerking/static/css/main.css
Normal file
228
theme/wisselwerking/static/css/main.css
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
/*
|
||||||
|
2k17 Homebrewserver.club Pelican theme
|
||||||
|
---
|
||||||
|
Style sheet is ordered vertically, with declarations for the header on top and footer on the bottom.
|
||||||
|
|
||||||
|
With contributions by club members:
|
||||||
|
http://roelof.info
|
||||||
|
http://randomiser.info/
|
||||||
|
http://majesticmoo.se
|
||||||
|
*/
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'NowBlack';
|
||||||
|
src: url('../fonts/Now-Black.otf') format('opentype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'NowBold';
|
||||||
|
src: url('../fonts/Now-Bold.otf') format('opentype');
|
||||||
|
font-weight: bold;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'NowLight';
|
||||||
|
src: url('../fonts/Now-Light.otf') format('opentype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'NowMedium';
|
||||||
|
src: url('../fonts/Now-Medium.otf') format('opentype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'NowRegular';
|
||||||
|
src: url('../fonts/Now-Regular.otf') format('opentype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'NowThin';
|
||||||
|
src: url('../fonts/Now-Thin.otf') format('opentype');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#banner {
|
||||||
|
margin-top:1em;
|
||||||
|
font-size: 60px;
|
||||||
|
transform: rotate(5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
background-color: #06061e;
|
||||||
|
color: #06061e;
|
||||||
|
height: 5px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
}
|
||||||
|
#menu{
|
||||||
|
font-size:40px;
|
||||||
|
font-weight:bold;
|
||||||
|
margin-top: 1em;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
line-height:1.5em;
|
||||||
|
background-color: #06061e;
|
||||||
|
font-size: 16px;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 900px;
|
||||||
|
color:white;
|
||||||
|
font-family:"NowRegular";
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color:LimeGreen;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paginator{
|
||||||
|
float:right;
|
||||||
|
margin:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#index{
|
||||||
|
}
|
||||||
|
|
||||||
|
#post-list {
|
||||||
|
padding-left:0px;
|
||||||
|
margin-top:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
padding-left:0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hentry{
|
||||||
|
/*margin-top:2em;*/
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-info{
|
||||||
|
clear: right;
|
||||||
|
display: inline;
|
||||||
|
float: left;
|
||||||
|
margin-bottom: 5em;
|
||||||
|
max-width: 150px;
|
||||||
|
padding-right: em;
|
||||||
|
transform: rotate(-3deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.entry-title span{
|
||||||
|
width:100%;
|
||||||
|
display:inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content{
|
||||||
|
display: inline;
|
||||||
|
float: right;
|
||||||
|
margin-bottom: 2.5em;
|
||||||
|
max-width: 700px;
|
||||||
|
padding-right: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content pre{
|
||||||
|
font-size:20px;
|
||||||
|
padding-left:1em;
|
||||||
|
overflow: auto;
|
||||||
|
background-color: #F8F8F8;
|
||||||
|
line-height:1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content img{
|
||||||
|
max-width:100%;
|
||||||
|
border: 2px solid white;
|
||||||
|
}
|
||||||
|
|
||||||
|
p:nth-child(odd){
|
||||||
|
-ms-transform: rotate(1deg);
|
||||||
|
-webkit-transform: rotate(1deg);
|
||||||
|
transform: rotate(1deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
p:nth-child(even){
|
||||||
|
-ms-transform: rotate(-1deg);
|
||||||
|
-webkit-transform: rotate(-1deg);
|
||||||
|
transform: rotate(-1deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.entry-content ul {
|
||||||
|
font-size:20px;
|
||||||
|
line-height:1.5;
|
||||||
|
margin: auto;
|
||||||
|
max-width:800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight{
|
||||||
|
margin: auto;
|
||||||
|
max-width:800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-content img{
|
||||||
|
max-width:100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
font-style:italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content{
|
||||||
|
margin:auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
font-size:12px;
|
||||||
|
width:100%;
|
||||||
|
line-height:1em;
|
||||||
|
background-color:white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.published{
|
||||||
|
font-size:smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article_tags{
|
||||||
|
font-size:smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#categories {
|
||||||
|
font-size: 40px;
|
||||||
|
margin-top: 2em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
#pertaining{
|
||||||
|
margin-top:2em;
|
||||||
|
text-align:center;
|
||||||
|
|
||||||
|
}
|
||||||
|
.simple-footnotes{
|
||||||
|
font-size:14px;
|
||||||
|
margin:auto;
|
||||||
|
max-width:800px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author{
|
||||||
|
font-size:smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
437
theme/wisselwerking/static/css/pygment.css
Normal file
437
theme/wisselwerking/static/css/pygment.css
Normal file
@ -0,0 +1,437 @@
|
|||||||
|
|
||||||
|
pre .hll {
|
||||||
|
background-color: #ffffcc;
|
||||||
|
}
|
||||||
|
pre .c {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
pre .err {
|
||||||
|
border: 1px solid #ff0000;
|
||||||
|
}
|
||||||
|
pre .k {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .o {
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
pre .ch {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
pre .cm {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
pre .cp {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
pre .cpf {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
pre .c1 {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
pre .cs {
|
||||||
|
background-color: #fff0f0;
|
||||||
|
color: #60a0b0;
|
||||||
|
}
|
||||||
|
pre .gd {
|
||||||
|
color: #a00000;
|
||||||
|
}
|
||||||
|
pre .ge {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
pre .gr {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
pre .gh {
|
||||||
|
color: #000080;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .gi {
|
||||||
|
color: #00a000;
|
||||||
|
}
|
||||||
|
pre .go {
|
||||||
|
color: #888888;
|
||||||
|
}
|
||||||
|
pre .gp {
|
||||||
|
color: #c65d09;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .gs {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .gu {
|
||||||
|
color: #800080;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .gt {
|
||||||
|
color: #0044dd;
|
||||||
|
}
|
||||||
|
pre .kc {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .kd {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .kn {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .kp {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
pre .kr {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .kt {
|
||||||
|
color: #902000;
|
||||||
|
}
|
||||||
|
pre .m {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
pre .s {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
pre .na {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
pre .nb {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
pre .nc {
|
||||||
|
color: #0e84b5;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .no {
|
||||||
|
color: #60add5;
|
||||||
|
}
|
||||||
|
pre .nd {
|
||||||
|
color: #555555;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .ni {
|
||||||
|
color: #d55537;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .ne {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
pre .nf {
|
||||||
|
color: #06287e;
|
||||||
|
}
|
||||||
|
pre .nl {
|
||||||
|
color: #002070;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .nn {
|
||||||
|
color: #0e84b5;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .nt {
|
||||||
|
color: #062873;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .nv {
|
||||||
|
color: #bb60d5;
|
||||||
|
}
|
||||||
|
pre .ow {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .w {
|
||||||
|
color: #bbbbbb;
|
||||||
|
}
|
||||||
|
pre .mb {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
pre .mf {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
pre .mh {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
pre .mi {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
pre .mo {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
pre .sb {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
pre .sc {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
pre .sd {
|
||||||
|
color: #4070a0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
pre .s2 {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
pre .se {
|
||||||
|
color: #4070a0;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
pre .sh {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
pre .si {
|
||||||
|
color: #70a0d0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
pre .sx {
|
||||||
|
color: #c65d09;
|
||||||
|
}
|
||||||
|
pre .sr {
|
||||||
|
color: #235388;
|
||||||
|
}
|
||||||
|
pre .s1 {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
pre .ss {
|
||||||
|
color: #517918;
|
||||||
|
}
|
||||||
|
pre .bp {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
pre .vc {
|
||||||
|
color: #bb60d5;
|
||||||
|
}
|
||||||
|
pre .vg {
|
||||||
|
color: #bb60d5;
|
||||||
|
}
|
||||||
|
pre .vi {
|
||||||
|
color: #bb60d5;
|
||||||
|
}
|
||||||
|
pre .il {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
.syntax pre .hll {
|
||||||
|
background-color: #ffffcc;
|
||||||
|
}
|
||||||
|
.syntax pre {
|
||||||
|
background: #f0f0f0 none repeat scroll 0 0;
|
||||||
|
}
|
||||||
|
.syntax pre .c {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.syntax pre .err {
|
||||||
|
border: 1px solid #ff0000;
|
||||||
|
}
|
||||||
|
.syntax pre .k {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .o {
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.syntax pre .ch {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.syntax pre .cm {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.syntax pre .cp {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
.syntax pre .cpf {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.syntax pre .c1 {
|
||||||
|
color: #60a0b0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.syntax pre .cs {
|
||||||
|
background-color: #fff0f0;
|
||||||
|
color: #60a0b0;
|
||||||
|
}
|
||||||
|
.syntax pre .gd {
|
||||||
|
color: #a00000;
|
||||||
|
}
|
||||||
|
.syntax pre .ge {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.syntax pre .gr {
|
||||||
|
color: #ff0000;
|
||||||
|
}
|
||||||
|
.syntax pre .gh {
|
||||||
|
color: #000080;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .gi {
|
||||||
|
color: #00a000;
|
||||||
|
}
|
||||||
|
.syntax pre .go {
|
||||||
|
color: #888888;
|
||||||
|
}
|
||||||
|
.syntax pre .gp {
|
||||||
|
color: #c65d09;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .gs {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .gu {
|
||||||
|
color: #800080;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .gt {
|
||||||
|
color: #0044dd;
|
||||||
|
}
|
||||||
|
.syntax pre .kc {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .kd {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .kn {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .kp {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
.syntax pre .kr {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .kt {
|
||||||
|
color: #902000;
|
||||||
|
}
|
||||||
|
.syntax pre .m {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
.syntax pre .s {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
.syntax pre .na {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
.syntax pre .nb {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
.syntax pre .nc {
|
||||||
|
color: #0e84b5;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .no {
|
||||||
|
color: #60add5;
|
||||||
|
}
|
||||||
|
.syntax pre .nd {
|
||||||
|
color: #555555;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .ni {
|
||||||
|
color: #d55537;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .ne {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
.syntax pre .nf {
|
||||||
|
color: #06287e;
|
||||||
|
}
|
||||||
|
.syntax pre .nl {
|
||||||
|
color: #002070;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .nn {
|
||||||
|
color: #0e84b5;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .nt {
|
||||||
|
color: #062873;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .nv {
|
||||||
|
color: #bb60d5;
|
||||||
|
}
|
||||||
|
.syntax pre .ow {
|
||||||
|
color: #007020;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .w {
|
||||||
|
color: #bbbbbb;
|
||||||
|
}
|
||||||
|
.syntax pre .mb {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
.syntax pre .mf {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
.syntax pre .mh {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
.syntax pre .mi {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
.syntax pre .mo {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
.syntax pre .sb {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
.syntax pre .sc {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
.syntax pre .sd {
|
||||||
|
color: #4070a0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.syntax pre .s2 {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
.syntax pre .se {
|
||||||
|
color: #4070a0;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.syntax pre .sh {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
.syntax pre .si {
|
||||||
|
color: #70a0d0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.syntax pre .sx {
|
||||||
|
color: #c65d09;
|
||||||
|
}
|
||||||
|
.syntax pre .sr {
|
||||||
|
color: #235388;
|
||||||
|
}
|
||||||
|
.syntax pre .s1 {
|
||||||
|
color: #4070a0;
|
||||||
|
}
|
||||||
|
.syntax pre .ss {
|
||||||
|
color: #517918;
|
||||||
|
}
|
||||||
|
.syntax pre .bp {
|
||||||
|
color: #007020;
|
||||||
|
}
|
||||||
|
.syntax pre .vc {
|
||||||
|
color: #bb60d5;
|
||||||
|
}
|
||||||
|
.syntax pre .vg {
|
||||||
|
color: #bb60d5;
|
||||||
|
}
|
||||||
|
.syntax pre .vi {
|
||||||
|
color: #bb60d5;
|
||||||
|
}
|
||||||
|
.syntax pre .il {
|
||||||
|
color: #40a070;
|
||||||
|
}
|
||||||
|
|
BIN
theme/wisselwerking/static/fonts/Now-Black.otf
Normal file
BIN
theme/wisselwerking/static/fonts/Now-Black.otf
Normal file
Binary file not shown.
BIN
theme/wisselwerking/static/fonts/Now-Bold.otf
Normal file
BIN
theme/wisselwerking/static/fonts/Now-Bold.otf
Normal file
Binary file not shown.
BIN
theme/wisselwerking/static/fonts/Now-Light.otf
Normal file
BIN
theme/wisselwerking/static/fonts/Now-Light.otf
Normal file
Binary file not shown.
BIN
theme/wisselwerking/static/fonts/Now-Medium.otf
Normal file
BIN
theme/wisselwerking/static/fonts/Now-Medium.otf
Normal file
Binary file not shown.
BIN
theme/wisselwerking/static/fonts/Now-Regular.otf
Normal file
BIN
theme/wisselwerking/static/fonts/Now-Regular.otf
Normal file
Binary file not shown.
BIN
theme/wisselwerking/static/fonts/Now-Thin.otf
Normal file
BIN
theme/wisselwerking/static/fonts/Now-Thin.otf
Normal file
Binary file not shown.
27
theme/wisselwerking/static/js/stars.js
Normal file
27
theme/wisselwerking/static/js/stars.js
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// stars.js
|
||||||
|
// Random Stars
|
||||||
|
var generateStars = function(){
|
||||||
|
|
||||||
|
var $galaxy = $(".galaxy");
|
||||||
|
var iterator = 0;
|
||||||
|
|
||||||
|
while (iterator <= 100){
|
||||||
|
var xposition = Math.random();
|
||||||
|
var yposition = Math.random();
|
||||||
|
var star_type = Math.floor((Math.random() * 3) + 1);
|
||||||
|
var position = {
|
||||||
|
"x" : $galaxy.width() * xposition,
|
||||||
|
"y" : $galaxy.height() * yposition,
|
||||||
|
};
|
||||||
|
|
||||||
|
$('<div class="star star-type' + star_type + '"></div>').appendTo($galaxy).css({
|
||||||
|
"top" : position.y,
|
||||||
|
"left" : position.x
|
||||||
|
});
|
||||||
|
|
||||||
|
iterator++;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
generateStars();
|
11
theme/wisselwerking/templates/archives.html
Normal file
11
theme/wisselwerking/templates/archives.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
<h1>Archives for {{ SITENAME }}</h1>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
{% for article in dates %}
|
||||||
|
<dt>{{ article.locale_date }}</dt>
|
||||||
|
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
|
||||||
|
{% endfor %}
|
||||||
|
</dl>
|
||||||
|
{% endblock %}
|
50
theme/wisselwerking/templates/article.html
Normal file
50
theme/wisselwerking/templates/article.html
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block head %}
|
||||||
|
{{ super() }}
|
||||||
|
{% if article.description %}
|
||||||
|
<meta name="description" content="{{article.description}}" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if article.tags or article.category or article.keywords %}
|
||||||
|
<meta name="keywords" content="{{ [article.tags|join(', '), article.category, article.keywords]|join(', ') }}" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
<div class="file type_folder">
|
||||||
|
<a title="../" href="/log/" id="link0" class="type_folder"><img alt="../" src="/icons/back.png" class="type_folder"></a>
|
||||||
|
</br>
|
||||||
|
<span class="filename">../</span>
|
||||||
|
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<section id="content" class="body">
|
||||||
|
<div class="article-info">
|
||||||
|
<div class="entry-title">
|
||||||
|
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark"
|
||||||
|
title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></div>
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{{ translations.translations_for(article) }}
|
||||||
|
<div class="post-info">
|
||||||
|
<time class="published" datetime="{{ article.date.isoformat() }}">
|
||||||
|
{{ article.locale_date }}
|
||||||
|
</time>
|
||||||
|
{% if article.modified %}
|
||||||
|
<time class="modified" datetime="{{ article.modified.isoformat() }}">
|
||||||
|
{{ article.locale_modified }}
|
||||||
|
</time>
|
||||||
|
{% endif %}
|
||||||
|
{% if article.authors %}
|
||||||
|
<address class="vcard author">
|
||||||
|
By {% for author in article.authors %}
|
||||||
|
<a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
</address>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="entry-content">
|
||||||
|
{{ article.content }}
|
||||||
|
</div><!-- /.entry-content -->
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
7
theme/wisselwerking/templates/author.html
Normal file
7
theme/wisselwerking/templates/author.html
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %}
|
||||||
|
{% block content_title %}
|
||||||
|
<h2>Articles by {{ author }}</h2>
|
||||||
|
{% endblock %}
|
||||||
|
|
13
theme/wisselwerking/templates/authors.html
Normal file
13
theme/wisselwerking/templates/authors.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Authors{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Authors on {{ SITENAME }}</h1>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
{%- for author, articles in authors|sort %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> ({{ articles|count }})</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
69
theme/wisselwerking/templates/base.html
Normal file
69
theme/wisselwerking/templates/base.html
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{ DEFAULT_LANG }}">
|
||||||
|
<head>
|
||||||
|
{% block head %}
|
||||||
|
<title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<link rel="icon" href="{{ SITEURL}}/favicon.ico" type="image/x-icon">
|
||||||
|
<link rel="shortcut icon" href="{{ SITEURL }}/favicon.ico" type="image/x-icon">
|
||||||
|
|
||||||
|
{% if FEED_ALL_ATOM %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ALL_RSS %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ATOM %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_RSS %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ FEED_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if CATEGORY_FEED_ATOM and category %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM|format(category.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if CATEGORY_FEED_RSS and category %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS|format(category.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if TAG_FEED_ATOM and tag %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM|format(tag.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if TAG_FEED_RSS and tag %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS|format(tag.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% from 'syndication.html' import syndication with context %}
|
||||||
|
{{ syndication(article) }}
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/pygment.css" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/{{ CSS_FILE }}" />
|
||||||
|
{% endblock head %}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="index" class="home">
|
||||||
|
<div class="galaxy"></div>
|
||||||
|
<header id="banner">
|
||||||
|
SPACEKEET
|
||||||
|
<span id="subtitle">{{ SITESUBTITLE }}</span>
|
||||||
|
</header><!-- /#banner -->
|
||||||
|
<nav id="menu">
|
||||||
|
{% for title, link in MENUITEMS %}
|
||||||
|
<a class="menu-item" href="{{ link }}">{{ title }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% if DISPLAY_PAGES_ON_MENU %}
|
||||||
|
{% for p in pages %}
|
||||||
|
<span {% if p == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></span>
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
{% if DISPLAY_CATEGORIES_ON_MENU %}
|
||||||
|
{% for cat, null in categories %}
|
||||||
|
<li{% if cat == category %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</ul><hr></nav><!-- /#menu -->
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
8
theme/wisselwerking/templates/categories.html
Normal file
8
theme/wisselwerking/templates/categories.html
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
<div id="categories">
|
||||||
|
{% for category, articles in categories %}
|
||||||
|
<a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
5
theme/wisselwerking/templates/category.html
Normal file
5
theme/wisselwerking/templates/category.html
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{% extends "index.html" %}
|
||||||
|
{% block content_title %}
|
||||||
|
<div id="pertaining">Everything pertaining to {{ category }}</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
14
theme/wisselwerking/templates/gosquared.html
Normal file
14
theme/wisselwerking/templates/gosquared.html
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{% if GOSQUARED_SITENAME %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
var GoSquared={};
|
||||||
|
GoSquared.acct = "{{ GOSQUARED_SITENAME }}";
|
||||||
|
(function(w){
|
||||||
|
function gs(){
|
||||||
|
w._gstc_lt=+(new Date); var d=document;
|
||||||
|
var g = d.createElement("script"); g.type = "text/javascript"; g.async = true; g.src = "https://d1l6p2sc9645hc.cloudfront.net/tracker.js";
|
||||||
|
var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(g, s);
|
||||||
|
}
|
||||||
|
w.addEventListener?w.addEventListener("load",gs,false):w.attachEvent("onload",gs);
|
||||||
|
})(window);
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
29
theme/wisselwerking/templates/index.html
Normal file
29
theme/wisselwerking/templates/index.html
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
<section id="content">
|
||||||
|
{% block content_title %}
|
||||||
|
{% endblock %}
|
||||||
|
{% if articles_page.has_other_pages() %}
|
||||||
|
{% include 'pagination.html' %}
|
||||||
|
{% endif %}
|
||||||
|
<div id="post-list">
|
||||||
|
{% for article in articles_page.object_list %}
|
||||||
|
<article class="hentry">
|
||||||
|
<div class="article-info"> <span class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></span>
|
||||||
|
<div class="post-info">
|
||||||
|
<time class="published" datetime="{{ article.date.isoformat() }}"> <sup>{{ article.locale_date }}</sup> </time>
|
||||||
|
<div class ='article_tags'>
|
||||||
|
{%- for tag in article.tags %}
|
||||||
|
{{ tag }}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div></div><!-- /.post-info -->
|
||||||
|
<div class="entry-content"> {{ article.content }}
|
||||||
|
<div class="separator"><hr></div>
|
||||||
|
</div><!-- /.entry-content -->
|
||||||
|
</article>
|
||||||
|
{% endfor %}
|
||||||
|
</div><!-- /#posts-list -->
|
||||||
|
|
||||||
|
</section><!-- /#content -->
|
||||||
|
{% endblock content %}
|
16
theme/wisselwerking/templates/page.html
Normal file
16
theme/wisselwerking/templates/page.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block title %}{{ page.title }}{%endblock%}
|
||||||
|
{% block content %}
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{{ translations.translations_for(page) }}
|
||||||
|
|
||||||
|
<div id ="page-content">
|
||||||
|
{{ page.content }}
|
||||||
|
|
||||||
|
{% if page.modified %}
|
||||||
|
<p>
|
||||||
|
Last updated: {{ page.locale_modified }}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
11
theme/wisselwerking/templates/pagination.html
Normal file
11
theme/wisselwerking/templates/pagination.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{% if DEFAULT_PAGINATION %}
|
||||||
|
<p class="paginator">
|
||||||
|
{% if articles_page.has_previous() %}
|
||||||
|
<a href="{{ SITEURL }}/{{ articles_previous_page.url }}">«</a>
|
||||||
|
{% endif %}
|
||||||
|
Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}
|
||||||
|
{% if articles_page.has_next() %}
|
||||||
|
<a href="{{ SITEURL }}/{{ articles_next_page.url }}">»</a>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
11
theme/wisselwerking/templates/period_archives.html
Normal file
11
theme/wisselwerking/templates/period_archives.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
<h1>Archives for {{ period | reverse | join(' ') }}</h1>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
{% for article in dates %}
|
||||||
|
<dt>{{ article.locale_date }}</dt>
|
||||||
|
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
|
||||||
|
{% endfor %}
|
||||||
|
</dl>
|
||||||
|
{% endblock %}
|
57
theme/wisselwerking/templates/syndication.html
Normal file
57
theme/wisselwerking/templates/syndication.html
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
{#This template is for syndicating across the fucked up part of the web. It implements Open Graph and Twitter Card metadata to display links to HBSC well on social media
|
||||||
|
# This code is mostly taken from Talha Mansoor's Elegant pelican theme https://github.com/talha131/pelican-elegant
|
||||||
|
#}
|
||||||
|
|
||||||
|
{# Thumbnail image to show when homepage is shared on social media. It also
|
||||||
|
serves as the default image for posts whose featured_image is not set. #}
|
||||||
|
{% if not FEATURED_IMAGE %}
|
||||||
|
{% set FEATURED_IMAGE = 'https://keet.space/images/keet.jpg' %}
|
||||||
|
{% else %}
|
||||||
|
{% set FEATURED_IMAGE = FEATURED_IMAGE %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% macro syndication(article) %}
|
||||||
|
{% if article %}
|
||||||
|
<meta property="og:title" content="{{ article.title|striptags|e }} {%if article.subtitle %} - {{ article.subtitle|striptags|e }} {% endif %}"/>
|
||||||
|
<meta property="og:url" content="{{ SITEURL }}/{{ article.url }}" />
|
||||||
|
<meta property="og:description" content="{{article.description|striptags|e}}" />
|
||||||
|
<meta property="og:site_name" content="{{ SITENAME|striptags|e }}" />
|
||||||
|
<meta property="og:article:author" content="{{ article.author }}" />
|
||||||
|
{% if article.date %}
|
||||||
|
<meta property="og:article:published_time" content="{{ article.date.isoformat() }}" />
|
||||||
|
{% endif %}
|
||||||
|
{% if article.locale_modified and article.modified %}
|
||||||
|
<meta property="" content="{{ article.modified.isoformat() }}" />
|
||||||
|
{% endif %}
|
||||||
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
|
<meta name="twitter:title" content="{{ article.title|striptags|e }} {%if article.subtitle %} - {{ article.subtitle|striptags|e }} {% endif %}">
|
||||||
|
<meta name="twitter:description" content="{{article.description|striptags|e}}">
|
||||||
|
{% if article.featured_image %}
|
||||||
|
<meta property="og:image" content="{{article.featured_image}}" />
|
||||||
|
<meta property="og:image:secure_url" content="{{article.featured_image}}" />
|
||||||
|
<meta name="twitter:image" content="{{article.featured_image}}" >
|
||||||
|
{% else %}
|
||||||
|
{% if FEATURED_IMAGE %}
|
||||||
|
<meta property="og:image" content="{{FEATURED_IMAGE}}" />
|
||||||
|
<meta name="twitter:image" content="{{FEATURED_IMAGE}}" >
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% if not article %}
|
||||||
|
<meta property="og:title" content="{{ SITENAME|striptags|e }}"/>
|
||||||
|
<meta name="twitter:title" content="{{ SITENAME|striptags|e }}">
|
||||||
|
<meta name="twitter:card" content="summary" />
|
||||||
|
<meta property="og:url" content="{{ SITEURL }}" />
|
||||||
|
<meta property="og:description" content="the spacekeet is a DIY satellite observatory trying to map out man-made space from the Utrecht Science Park">
|
||||||
|
<meta name="twitter:description" content="the spacekeet is a DIY satellite observatory trying to map out man-made psace from the Utrecht Science Park">
|
||||||
|
<meta property="og:site_name" content="{{ SITENAME|striptags|e }}" />
|
||||||
|
<meta property="og:article:author" content="{{ AUTHOR }}" />
|
||||||
|
{% if FEATURED_IMAGE %}
|
||||||
|
<meta property="og:image" content="{{FEATURED_IMAGE}}" />
|
||||||
|
<meta name="twitter:image" content="{{FEATURED_IMAGE}}" >
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
|
0
theme/wisselwerking/templates/tag.html
Normal file
0
theme/wisselwerking/templates/tag.html
Normal file
10
theme/wisselwerking/templates/tags.html
Normal file
10
theme/wisselwerking/templates/tags.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Tags{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Tags for {{ SITENAME }}</h1>
|
||||||
|
{%- for tag, articles in tags|sort %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endblock %}
|
9
theme/wisselwerking/templates/translations.html
Normal file
9
theme/wisselwerking/templates/translations.html
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{% macro translations_for(article) %}
|
||||||
|
{% if article.translations %}
|
||||||
|
Translations:
|
||||||
|
{% for translation in article.translations %}
|
||||||
|
<a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user