make everything a little modern and easier
This commit is contained in:
parent
9410d56865
commit
6433a8450e
3
.gitignore
vendored
3
.gitignore
vendored
@ -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
110
Makefile
Normal 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
|
18
README.md
18
README.md
@ -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`
|
|
||||||
|
@ -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
23
publishconf.py
Normal 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 = ""
|
Loading…
Reference in New Issue
Block a user