Commit 862e3fab by colm

the structure to generate the static site

parent ecd7e84b
Pipeline #102 failed with stage
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=colm
SSH_TARGET_DIR=/var/www/breadfellows.school
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
aws s3 sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl public-read --delete
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
Title: tool page template
Date: 2018/03/27
Author: Colm
<!--
available metadata:
Category: mapping (! category is meant to be single)
Tags: maps, command line, vector, dithering, (! tags are multiple)
-->
# Name of the tool
## Subtitle, tagline, whatever descibes best the tool
* Who is developing the tool?
* Is the tool under active development?
* What is the tool made for?
* Who is the tool made for?
* Wat is the license of the tool?
* Is it possible to contribute to the tool? How?
* What does the tool cost? Is it a one time payment or a subscription model?
* Are there tools alike? What makes this tool different?
* Does the tool have a Graphical Interface?
* Is the interface clear?
* Is the interface looking like other applications or is it custom made?
* Does the tool have a command line interface / can you use the tool from the commandline?
* Can you automate the tool? Does the tool have a scripting interface / API?
* What are the filetypes the tool can read?
* What are the filetypes the tool can generate / export?
* Is there an official documentation and if so where?
* For which operating systems is this tool available?
#!/usr/bin/env bash
##
# This section should match your Makefile
##
PY=${PY:-python3}
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
<!DOCTYPE html>
<html lang="en">
<head>
<title>On the shoulders of giants - software tour</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./theme/css/screen.css">
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="./">On the shoulders of giants - software tour <strong></strong></a></h1>
</header><!-- /#banner -->
<nav id="menu"><ul>
</ul></nav><!-- /#menu -->
<h1>Archives for On the shoulders of giants - software tour</h1>
<dl>
<dt>Tue 27 March 2018</dt>
<dd><a href="./misc/tool-page-template.html">tool page template</a></dd>
</dl>
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
<a href="http://giants.esad-amiens.fr/">http://giants.esad-amiens.fr/</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>On the shoulders of giants - software tour - Articles by Colm</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../theme/css/screen.css">
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="../">On the shoulders of giants - software tour <strong></strong></a></h1>
</header><!-- /#banner -->
<nav id="menu"><ul>
</ul></nav><!-- /#menu -->
<section id="content">
<h2>Articles by Colm</h2>
<ol id="post-list">
<li><article class="hentry">
<header> <h2 class="entry-title"><a href="../misc/tool-page-template.html" rel="bookmark" title="Permalink to tool page template">tool page template</a></h2> </header>
<footer class="post-info">
<time class="published" datetime="2018-03-27T00:00:00+02:00"> Tue 27 March 2018 </time>
<address class="vcard author">By
<a class="url fn" href="../author/colm.html">Colm</a>
</address>
</footer><!-- /.post-info -->
<div class="entry-content"> <!--
available metadata:
Category: mapping (! category is meant to be single)
Tags: maps, command line, vector, dithering, (! tags are multiple)
-->
<h1>Name of the tool</h1>
<h2>Subtitle, tagline, whatever descibes best the tool</h2>
<ul>
<li>
<p>Who is developing the tool?</p>
</li>
<li>
<p>Is the tool under active development?</p>
</li>
<li>
<p>What is the tool made for?</p>
</li>
<li>
<p>Who is the tool made for?</p>
</li>
<li>
<p>Wat is the license of the tool?</p>
</li>
<li>
<p>Is it possible to contribute to the tool? How …</p></li></ul> </div><!-- /.entry-content -->
</article></li>
</ol><!-- /#posts-list -->
</section><!-- /#content -->
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
<a href="http://giants.esad-amiens.fr/">http://giants.esad-amiens.fr/</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>On the shoulders of giants - software tour - Authors</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./theme/css/screen.css">
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="./">On the shoulders of giants - software tour <strong></strong></a></h1>
</header><!-- /#banner -->
<nav id="menu"><ul>
</ul></nav><!-- /#menu -->
<h1>Authors on On the shoulders of giants - software tour</h1>
<ul> <li><a href="./author/colm.html">Colm</a> (1)</li>
</ul>
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
<a href="http://giants.esad-amiens.fr/">http://giants.esad-amiens.fr/</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>On the shoulders of giants - software tour</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./theme/css/screen.css">
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="./">On the shoulders of giants - software tour <strong></strong></a></h1>
</header><!-- /#banner -->
<nav id="menu"><ul>
</ul></nav><!-- /#menu -->
<ul>
<li><a href="./misc.html">misc</a></li>
</ul>
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
<a href="http://giants.esad-amiens.fr/">http://giants.esad-amiens.fr/</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>On the shoulders of giants - software tour</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./theme/css/screen.css">
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="./">On the shoulders of giants - software tour <strong></strong></a></h1>
</header><!-- /#banner -->
<nav id="menu"><ul>
</ul></nav><!-- /#menu -->
<section id="content">
<h2>All articles</h2>
<ol id="post-list">
<li><article class="hentry">
<header> <h2 class="entry-title"><a href="./misc/tool-page-template.html" rel="bookmark" title="Permalink to tool page template">tool page template</a></h2> </header>
<footer class="post-info">
<time class="published" datetime="2018-03-27T00:00:00+02:00"> Tue 27 March 2018 </time>
<address class="vcard author">By
<a class="url fn" href="./author/colm.html">Colm</a>
</address>
</footer><!-- /.post-info -->
<div class="entry-content"> <!--
available metadata:
Category: mapping (! category is meant to be single)
Tags: maps, command line, vector, dithering, (! tags are multiple)
-->
<h1>Name of the tool</h1>
<h2>Subtitle, tagline, whatever descibes best the tool</h2>
<ul>
<li>
<p>Who is developing the tool?</p>
</li>
<li>
<p>Is the tool under active development?</p>
</li>
<li>
<p>What is the tool made for?</p>
</li>
<li>
<p>Who is the tool made for?</p>
</li>
<li>
<p>Wat is the license of the tool?</p>
</li>
<li>
<p>Is it possible to contribute to the tool? How …</p></li></ul> </div><!-- /.entry-content -->
</article></li>
</ol><!-- /#posts-list -->
</section><!-- /#content -->
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
<a href="http://giants.esad-amiens.fr/">http://giants.esad-amiens.fr/</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>On the shoulders of giants - software tour</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./theme/css/screen.css">
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="./">On the shoulders of giants - software tour <strong></strong></a></h1>
</header><!-- /#banner -->
<nav id="menu"><ul>
</ul></nav><!-- /#menu -->
<section id="content">
<h2>Articles in the misc category</h2>
<ol id="post-list">
<li><article class="hentry">
<header> <h2 class="entry-title"><a href="./misc/tool-page-template.html" rel="bookmark" title="Permalink to tool page template">tool page template</a></h2> </header>
<footer class="post-info">
<time class="published" datetime="2018-03-27T00:00:00+02:00"> Tue 27 March 2018 </time>
<address class="vcard author">By
<a class="url fn" href="./author/colm.html">Colm</a>
</address>
</footer><!-- /.post-info -->
<div class="entry-content"> <!--
available metadata:
Category: mapping (! category is meant to be single)
Tags: maps, command line, vector, dithering, (! tags are multiple)
-->
<h1>Name of the tool</h1>
<h2>Subtitle, tagline, whatever descibes best the tool</h2>
<ul>
<li>
<p>Who is developing the tool?</p>
</li>
<li>
<p>Is the tool under active development?</p>
</li>
<li>
<p>What is the tool made for?</p>
</li>
<li>
<p>Who is the tool made for?</p>
</li>
<li>
<p>Wat is the license of the tool?</p>
</li>
<li>
<p>Is it possible to contribute to the tool? How …</p></li></ul> </div><!-- /.entry-content -->
</article></li>
</ol><!-- /#posts-list -->
</section><!-- /#content -->
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
<a href="http://giants.esad-amiens.fr/">http://giants.esad-amiens.fr/</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>On the shoulders of giants - software tour</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="../theme/css/screen.css">
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="../">On the shoulders of giants - software tour <strong></strong></a></h1>
</header><!-- /#banner -->
<nav id="menu"><ul>
</ul></nav><!-- /#menu -->
<section id="content" class="body">
<header>
<h2 class="entry-title">
<a href="../misc/tool-page-template.html" rel="bookmark"
title="Permalink to tool page template">tool page template</a></h2>
</header>
<footer class="post-info">
<time class="published" datetime="2018-03-27T00:00:00+02:00">
Tue 27 March 2018
</time>
<address class="vcard author">
By <a class="url fn" href="../author/colm.html">Colm</a>
</address>
</footer><!-- /.post-info -->
<div class="entry-content">
<!--
available metadata:
Category: mapping (! category is meant to be single)
Tags: maps, command line, vector, dithering, (! tags are multiple)
-->
<h1>Name of the tool</h1>
<h2>Subtitle, tagline, whatever descibes best the tool</h2>
<ul>
<li>
<p>Who is developing the tool?</p>
</li>
<li>
<p>Is the tool under active development?</p>
</li>
<li>
<p>What is the tool made for?</p>
</li>
<li>
<p>Who is the tool made for?</p>
</li>
<li>
<p>Wat is the license of the tool?</p>
</li>
<li>
<p>Is it possible to contribute to the tool? How?</p>
</li>
<li>
<p>What does the tool cost? Is it a one time payment or a subscription model?</p>
</li>
<li>
<p>Are there tools alike? What makes this tool different?</p>
</li>
<li>
<p>Does the tool have a Graphical Interface?</p>
</li>
<li>
<p>Is the interface clear?</p>
</li>
<li>
<p>Is the interface looking like other applications or is it custom made?</p>
</li>
<li>
<p>Does the tool have a command line interface / can you use the tool from the commandline?</p>
</li>
<li>
<p>Can you automate the tool? Does the tool have a scripting interface / API?</p>
</li>
<li>
<p>What are the filetypes the tool can read?</p>
</li>
<li>
<p>What are the filetypes the tool can generate / export?</p>
</li>
<li>
<p>Is there an official documentation and if so where?</p>
</li>
<li>
<p>For which operating systems is this tool available?</p>
</li>
</ul>
</div><!-- /.entry-content -->
</section>
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
<a href="http://giants.esad-amiens.fr/">http://giants.esad-amiens.fr/</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>On the shoulders of giants - software tour - Tags</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./theme/css/screen.css">
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="./">On the shoulders of giants - software tour <strong></strong></a></h1>
</header><!-- /#banner -->
<nav id="menu"><ul>
</ul></nav><!-- /#menu -->
<h1>Tags for On the shoulders of giants - software tour</h1> <footer id="contentinfo" class="body">
<address id="about" class="vcard body">
<a href="http://giants.esad-amiens.fr/">http://giants.esad-amiens.fr/</a>
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>
html{
background-color: grey;
}
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
AUTHOR = 'ESAD Amiens'
SITENAME = 'On the shoulders of giants - software tour'
SITEURL = 'Shoulders.giants'
PATH = 'content'
OUTPUT_PATH = 'public'
TIMEZONE = 'Europe/Paris'
DEFAULT_LANG = 'en'
# 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
THEME_STATIC_DIR = 'theme'
THEME = 'theme/giants'
CSS_FILE = 'screen.css'
# STATIC_PATHS = []
# URL settings
ARTICLE_URL = '{category}/{slug}.html'
ARTICLE_SAVE_AS = '{category}/{slug}.html'
PAGE_URL = '{slug}.html'
PAGE_SAVE_AS = '{slug}.html'
CATEGORY_URL = '{slug}.html'
CATEGORY_SAVE_AS = '{slug}.html'
ARTICLE_LANG_URL = '{category}/{slug}-{lang}.html'
ARTICLE_LANG_SAVE_AS = '{category}/{slug}-{lang}.html'
PAGE_LANG_URL = '{slug}-{lang}.html'
PAGE_LANG_SAVE_AS = '{slug}-{lang}.html'
DRAFT_URL = '{slug}.html'
DRAFT_SAVE_AS = '{slug}.html'
DISPLAY_PAGES_ON_MENU = True
DISPLAY_CATEGORIES_ON_MENU = True
USE_FOLDER_AS_CATEGORY = True
DEFAULT_PAGINATION = 10