make everything a little modern and easier

This commit is contained in:
Marvin Steadfast 2014-09-24 16:42:16 +02:00
parent 9410d56865
commit 6433a8450e
5 changed files with 147 additions and 13 deletions

3
.gitignore vendored
View File

@ -1,9 +1,12 @@
#Custom #Custom
output output
pelicanconf_local.py pelicanconf_local.py
cache/
#Python #Python
*.py[cod] *.py[cod]
venv/
.ropeproject/
# C extensions # C extensions
*.so *.so

110
Makefile Normal file
View File

@ -0,0 +1,110 @@
PY?=python3
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=localhost
SSH_PORT=22
SSH_USER=root
SSH_TARGET_DIR=/var/www
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
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 -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
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 -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
git push origin $(GITHUB_PAGES_BRANCH)
.PHONY: html help clean regenerate serve devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github

View File

@ -3,17 +3,15 @@ blog
## install ## ## install ##
`sudo pip install pelican markdown ghp-import shovel` 1. `git clone git@github.com:xsteadfastx/blog.git`
2. `cd blog && virtualenv -p /usr/bin/python3 venv`
3. `source venv/bin/activate`
4. `pip install pelican markdown ghp-import shovel`
## upgrade ## ## upgrade ##
`sudo pip install --upgrade pelican markdown ghp-import shovel` `pip install --upgrade pelican markdown ghp-import shovel`
## write ## ## write ##
* put the markdown files in "content/posts" 1. put the markdown files in "content/posts"
* create the static files with `pelican -s pelicanconf.py` 2. test it with `make html && make serve`
* put the stuff in the ghp-pages branch with `gh-import output` 3. upload it to github with `make github`
* push with `git push origin gh-pages`
## test ##
* `cd output`
* `python -m SimpleHTTPServer 8000`

View File

@ -3,7 +3,7 @@ from __future__ import unicode_literals
AUTHOR = 'Marvin Steadfast' AUTHOR = 'Marvin Steadfast'
SITENAME = 'is trying to code' SITENAME = 'is trying to code'
SITEURL = 'http://code.xsteadfastx.org' SITEURL = ''
AVATAR = '/theme/images/avatar.png' AVATAR = '/theme/images/avatar.png'
TIMEZONE = "Europe/Berlin" TIMEZONE = "Europe/Berlin"
DESCRIPTION = "Der Versuch zu programmieren und Computer Zeugs nieder zu bloggen." DESCRIPTION = "Der Versuch zu programmieren und Computer Zeugs nieder zu bloggen."
@ -21,8 +21,8 @@ LOCALE = "C"
DEFAULT_PAGINATION = 4 DEFAULT_PAGINATION = 4
DEFAULT_DATE = (2012, 3, 2, 14, 1, 1) DEFAULT_DATE = (2012, 3, 2, 14, 1, 1)
FEED_ALL_RSS = 'feeds/all.rss.xml' FEED_ALL_ATOM = 'feeds/all.atom.xml'
CATEGORY_FEED_RSS = 'feeds/%s.rss.xml' CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml'
# global metadata to all the contents # global metadata to all the contents
#DEFAULT_METADATA = (('yeah', 'it is'),) #DEFAULT_METADATA = (('yeah', 'it is'),)

23
publishconf.py Normal file
View File

@ -0,0 +1,23 @@
#!/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 = 'http://code.xsteadfastx.org'
RELATIVE_URLS = False
DELETE_OUTPUT_DIRECTORY = True
FEED_DOMAIN = SITEURL
# Following items are often useful when publishing
#DISQUS_SITENAME = ""
#GOOGLE_ANALYTICS = ""