Skip to content
Snippets Groups Projects
Verified Commit c3bae3c5 authored by Jake's avatar Jake
Browse files

removed pelican

parent 3a6dfa69
No related branches found
No related tags found
No related merge requests found
#!/bin/bash
set -e
# Install Pelican with dependencies
pip3 install git+https://gitlab.gwdg.de/GAUMI-fginfo/pelican.git
# Reinstall Pelican to make sure it is up-to-date
pip3 install --force-reinstall --no-cache-dir --no-deps git+https://gitlab.gwdg.de/GAUMI-fginfo/pelican.git
Subproject commit 483215d2e1998684b7f413b6b1c8e26058fd2e6b
import json
AUTHOR = 'Fachgruppe Informatik'
SITENAME = 'Dieser Wert wird ignoriert und soll stattdessen in lang.json geändert werden.'
SITEURL = ''
PATH = 'content'
TIMEZONE = 'Europe/Berlin'
DEFAULT_LANG = 'de'
# 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
#DEFAULT_PAGINATION = 10
DEFAULT_PAGINATION = False
# Uncomment following line if you want document-relative URLs when developing
RELATIVE_URLS = False
OUTPUT_SOURCES = True
TYPOGRIFY = True
STATIC_PATHS = ['images']
PANDOC_ARGS = [
# "--mathjax",
# "--citeproc",
"--table-of-contents",
]
PANDOC_EXTENSIONS = [
"+abbreviations",
"+all_symbols_escapable",
"+ascii_identifiers",
"+auto_identifiers",
"+autolink_bare_uris",
"+backtick_code_blocks",
"+bracketed_spans",
"+definition_lists",
"+emoji",
"+escaped_line_breaks",
"+example_lists",
"+fancy_lists",
"+fenced_code_attributes",
"+fenced_code_blocks",
"+fenced_divs",
"+footnotes",
"+gfm_auto_identifiers",
"+grid_tables",
"+hard_line_breaks",
"+header_attributes",
"+implicit_figures",
"+implicit_header_references",
"+inline_code_attributes",
"+inline_notes",
"+intraword_underscores",
"+latex_macros",
"+line_blocks",
"+link_attributes",
"+lists_without_preceding_blankline",
"+multiline_tables",
"+native_divs",
"+native_spans",
"+pipe_tables",
"+raw_attribute",
"+raw_html",
"+raw_tex",
"+shortcut_reference_links",
"+simple_tables",
"+smart",
"+space_in_atx_header",
"+startnum",
"+strikeout",
"+subscript",
"+superscript",
"+table_captions",
"+tex_math_dollars",
"+tex_math_single_backslash",
"+yaml_metadata_block",
"-angle_brackets_escapable",
"-blank_before_blockquote",
"-blank_before_header",
"-citations",
"-compact_definition_lists",
"-east_asian_line_breaks",
"-four_space_rule",
"-ignore_line_breaks",
"-literate_haskell",
"-markdown_attribute",
"-markdown_in_html_blocks",
"-mmd_header_identifiers",
"-mmd_link_attributes",
"-mmd_title_block",
"-old_dashes",
"-pandoc_title_block",
"-spaced_reference_links",
"-tex_math_double_backslash",
]
CALCULATE_READING_TIME = True
PLUGIN_PATHS = ['./pelican-plugins']
PLUGINS = ['filetime_from_git']
THEME = './theme'
JINJA_GLOBALS = {}
with open('./lang.json') as json_file:
JINJA_GLOBALS['l'] = json.load(json_file)
with open(PATH + '/config.json') as json_file:
JINJA_GLOBALS['sc'] = json.load(json_file)
# 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 *
# If your site is available via HTTPS, make sure SITEURL begins with https://
SITEURL = 'https://fg.informatik.uni-goettingen.de'
RELATIVE_URLS = False
FEED_ALL_ATOM = 'feeds/all.atom.xml'
CATEGORY_FEED_ATOM = 'feeds/{slug}.atom.xml'
DELETE_OUTPUT_DIRECTORY = True
# Following items are often useful when publishing
#DISQUS_SITENAME = ""
#GOOGLE_ANALYTICS = ""
# -*- coding: utf-8 -*-
import os
import shlex
import shutil
import sys
import datetime
from invoke import task
from invoke.main import program
from invoke.util import cd
from pelican import main as pelican_main
from pelican.server import ComplexHTTPRequestHandler, RootedHTTPServer
from pelican.settings import DEFAULT_CONFIG, get_settings_from_file
OPEN_BROWSER_ON_SERVE = True
SETTINGS_FILE_BASE = 'pelicanconf.py'
SETTINGS = {}
SETTINGS.update(DEFAULT_CONFIG)
LOCAL_SETTINGS = get_settings_from_file(SETTINGS_FILE_BASE)
SETTINGS.update(LOCAL_SETTINGS)
CONFIG = {
'settings_base': SETTINGS_FILE_BASE,
'settings_publish': 'publishconf.py',
# Output path. Can be absolute or relative to tasks.py. Default: 'output'
'deploy_path': SETTINGS['OUTPUT_PATH'],
# Remote server configuration
'ssh_user': 'gitlab',
'ssh_host': 'fg.informatik.uni-goettingen.de',
'ssh_port': '22',
'ssh_path': '/home/gitlab/public',
# Host and port for `serve`
'host': 'localhost',
'port': 8000,
}
@task
def clean(c):
"""Remove generated files"""
if os.path.isdir(CONFIG['deploy_path']):
shutil.rmtree(CONFIG['deploy_path'])
os.makedirs(CONFIG['deploy_path'])
@task
def build(c):
"""Build local version of site"""
pelican_run('-s {settings_base}'.format(**CONFIG))
@task
def rebuild(c):
"""`build` with the delete switch"""
pelican_run('-d -s {settings_base}'.format(**CONFIG))
@task
def regenerate(c):
"""Automatically regenerate site upon file modification"""
pelican_run('-r -s {settings_base}'.format(**CONFIG))
@task
def serve(c):
"""Serve site at http://$HOST:$PORT/ (default is localhost:8000)"""
class AddressReuseTCPServer(RootedHTTPServer):
allow_reuse_address = True
server = AddressReuseTCPServer(
CONFIG['deploy_path'],
(CONFIG['host'], CONFIG['port']),
ComplexHTTPRequestHandler)
if OPEN_BROWSER_ON_SERVE:
# Open site in default browser
import webbrowser
webbrowser.open("http://{host}:{port}".format(**CONFIG))
sys.stderr.write('Serving at {host}:{port} ...\n'.format(**CONFIG))
server.serve_forever()
@task
def reserve(c):
"""`build`, then `serve`"""
build(c)
serve(c)
@task
def preview(c):
"""Build production version of site"""
pelican_run('-s {settings_publish}'.format(**CONFIG))
@task
def livereload(c):
"""Automatically reload browser tab upon file modification."""
from livereload import Server
def cached_build():
cmd = '-s {settings_base} -e CACHE_CONTENT=True LOAD_CONTENT_CACHE=True'
pelican_run(cmd.format(**CONFIG))
cached_build()
server = Server()
theme_path = SETTINGS['THEME']
watched_globs = [
CONFIG['settings_base'],
'{}/templates/**/*.html'.format(theme_path),
]
content_file_extensions = ['.md', '.rst']
for extension in content_file_extensions:
content_glob = '{0}/**/*{1}'.format(SETTINGS['PATH'], extension)
watched_globs.append(content_glob)
static_file_extensions = ['.css', '.js']
for extension in static_file_extensions:
static_file_glob = '{0}/static/**/*{1}'.format(theme_path, extension)
watched_globs.append(static_file_glob)
for glob in watched_globs:
server.watch(glob, cached_build)
if OPEN_BROWSER_ON_SERVE:
# Open site in default browser
import webbrowser
webbrowser.open("http://{host}:{port}".format(**CONFIG))
server.serve(host=CONFIG['host'], port=CONFIG['port'], root=CONFIG['deploy_path'])
@task
def publish(c):
"""Publish to production via rsync"""
pelican_run('-s {settings_publish}'.format(**CONFIG))
c.run(
'rsync --delete --exclude ".DS_Store" -pthrvz -c '
'-e "ssh -p {ssh_port}" '
'{} {ssh_user}@{ssh_host}:{ssh_path}'.format(
CONFIG['deploy_path'].rstrip('/') + '/',
**CONFIG))
def pelican_run(cmd):
cmd += ' ' + program.core.remainder # allows to pass-through args to pelican
pelican_main(shlex.split(cmd))
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment