Add initial site config, content and copy of "simple" theme.
This commit is contained in:
commit
b23276291f
22 changed files with 754 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/output/
|
89
Makefile
Normal file
89
Makefile
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
PY?=
|
||||||
|
PELICAN?=pelican
|
||||||
|
PELICANOPTS=
|
||||||
|
|
||||||
|
BASEDIR=$(CURDIR)
|
||||||
|
INPUTDIR=$(BASEDIR)/content
|
||||||
|
OUTPUTDIR=$(BASEDIR)/output
|
||||||
|
CONFFILE=$(BASEDIR)/pelicanconf.py
|
||||||
|
PUBLISHCONF=$(BASEDIR)/publishconf.py
|
||||||
|
|
||||||
|
SSH_HOST=aspen.sfconservancy.org
|
||||||
|
SSH_PORT=22
|
||||||
|
SSH_USER=root
|
||||||
|
SSH_TARGET_DIR=/var/www/next.copyleft.org
|
||||||
|
|
||||||
|
|
||||||
|
DEBUG ?= 0
|
||||||
|
ifeq ($(DEBUG), 1)
|
||||||
|
PELICANOPTS += -D
|
||||||
|
endif
|
||||||
|
|
||||||
|
RELATIVE ?= 0
|
||||||
|
ifeq ($(RELATIVE), 1)
|
||||||
|
PELICANOPTS += --relative-urls
|
||||||
|
endif
|
||||||
|
|
||||||
|
SERVER ?= "0.0.0.0"
|
||||||
|
|
||||||
|
PORT ?= 0
|
||||||
|
ifneq ($(PORT), 0)
|
||||||
|
PELICANOPTS += -p $(PORT)
|
||||||
|
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] serve and regenerate together '
|
||||||
|
@echo ' make devserver-global regenerate and serve on 0.0.0.0 '
|
||||||
|
@echo ' make ssh_upload upload the web site via SSH '
|
||||||
|
@echo ' make sftp_upload upload the web site via SFTP '
|
||||||
|
@echo ' make rsync_upload upload the web site via rsync+ssh '
|
||||||
|
@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:
|
||||||
|
"$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
|
||||||
|
|
||||||
|
serve-global:
|
||||||
|
"$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) -b $(SERVER)
|
||||||
|
|
||||||
|
devserver:
|
||||||
|
"$(PELICAN)" -lr "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
|
||||||
|
|
||||||
|
devserver-global:
|
||||||
|
$(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -b 0.0.0.0
|
||||||
|
|
||||||
|
publish:
|
||||||
|
"$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(PUBLISHCONF)" $(PELICANOPTS)
|
||||||
|
|
||||||
|
ssh_upload: publish
|
||||||
|
scp -P $(SSH_PORT) -r "$(OUTPUTDIR)"/* "$(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)"
|
||||||
|
|
||||||
|
sftp_upload: publish
|
||||||
|
printf 'put -r $(OUTPUTDIR)/*' | sftp $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
|
||||||
|
|
||||||
|
rsync_upload: publish
|
||||||
|
rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --include tags --cvs-exclude --delete "$(OUTPUTDIR)"/ "$(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)"
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload
|
8
content/pages/00_home.md
Normal file
8
content/pages/00_home.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
Title: Home
|
||||||
|
URL:
|
||||||
|
save_as: index.html
|
||||||
|
|
||||||
|
Contributions of patches, ideas, and criticism are welcome (see the file CONTRIBUTING.md for more information). In particular, the Copyleft-Next Project actively seeks the participation of open source/free software project developers who may not have considered helping with license drafting before. License drafting is fundamentally about establishing policies for projects, and therefore input from developers of the highest value.
|
||||||
|
|
||||||
|
**The Copyleft-Next Project is not an effort endorsed by the Free Software Foundation or the GNU Project. It is is also not an effort associated in any way with the past or current employer of any participant.** Contributors are expected and assumed to participate in their individual capacity.
|
||||||
|
|
224
content/pages/01_license_text.md
Normal file
224
content/pages/01_license_text.md
Normal file
|
@ -0,0 +1,224 @@
|
||||||
|
Title: License text
|
||||||
|
|
||||||
|
<div class="f6 lh-copy code" style="white-space: pre-wrap">
|
||||||
|
copyleft-next 0.3.1 ("this License")
|
||||||
|
Release date: 2016-04-29
|
||||||
|
|
||||||
|
1. License Grants; No Trademark License
|
||||||
|
|
||||||
|
Subject to the terms of this License, I grant You:
|
||||||
|
|
||||||
|
a) A non-exclusive, worldwide, perpetual, royalty-free, irrevocable
|
||||||
|
copyright license, to reproduce, Distribute, prepare derivative works
|
||||||
|
of, publicly perform and publicly display My Work.
|
||||||
|
|
||||||
|
b) A non-exclusive, worldwide, perpetual, royalty-free, irrevocable
|
||||||
|
patent license under Licensed Patents to make, have made, use, sell,
|
||||||
|
offer for sale, and import Covered Works.
|
||||||
|
|
||||||
|
This License does not grant any rights in My name, trademarks, service
|
||||||
|
marks, or logos.
|
||||||
|
|
||||||
|
2. Distribution: General Conditions
|
||||||
|
|
||||||
|
You may Distribute Covered Works, provided that You (i) inform
|
||||||
|
recipients how they can obtain a copy of this License; (ii) satisfy the
|
||||||
|
applicable conditions of sections 3 through 6; and (iii) preserve all
|
||||||
|
Legal Notices contained in My Work (to the extent they remain
|
||||||
|
pertinent). "Legal Notices" means copyright notices, license notices,
|
||||||
|
license texts, and author attributions, but does not include logos,
|
||||||
|
other graphical images, trademarks or trademark legends.
|
||||||
|
|
||||||
|
3. Conditions for Distributing Derived Works; Outbound GPL Compatibility
|
||||||
|
|
||||||
|
If You Distribute a Derived Work, You must license the entire Derived
|
||||||
|
Work as a whole under this License, with prominent notice of such
|
||||||
|
licensing. This condition may not be avoided through such means as
|
||||||
|
separate Distribution of portions of the Derived Work.
|
||||||
|
|
||||||
|
If the Derived Work includes material licensed under the GPL, You may
|
||||||
|
instead license the Derived Work under the GPL.
|
||||||
|
|
||||||
|
4. Condition Against Further Restrictions; Inbound License Compatibility
|
||||||
|
|
||||||
|
When Distributing a Covered Work, You may not impose further
|
||||||
|
restrictions on the exercise of rights in the Covered Work granted under
|
||||||
|
this License. This condition is not excused merely because such
|
||||||
|
restrictions result from Your compliance with conditions or obligations
|
||||||
|
extrinsic to this License (such as a court order or an agreement with a
|
||||||
|
third party).
|
||||||
|
|
||||||
|
However, You may Distribute a Covered Work incorporating material
|
||||||
|
governed by a license that is both OSI-Approved and FSF-Free as of the
|
||||||
|
release date of this License, provided that compliance with such
|
||||||
|
other license would not conflict with any conditions stated in other
|
||||||
|
sections of this License.
|
||||||
|
|
||||||
|
5. Conditions for Distributing Object Code
|
||||||
|
|
||||||
|
You may Distribute an Object Code form of a Covered Work, provided that
|
||||||
|
you accompany the Object Code with a URL through which the Corresponding
|
||||||
|
Source is made available, at no charge, by some standard or customary
|
||||||
|
means of providing network access to source code.
|
||||||
|
|
||||||
|
If you Distribute the Object Code in a physical product or tangible
|
||||||
|
storage medium ("Product"), the Corresponding Source must be available
|
||||||
|
through such URL for two years from the date of Your most recent
|
||||||
|
Distribution of the Object Code in the Product. However, if the Product
|
||||||
|
itself contains or is accompanied by the Corresponding Source (made
|
||||||
|
available in a customarily accessible manner), You need not also comply
|
||||||
|
with the first paragraph of this section.
|
||||||
|
|
||||||
|
Each direct and indirect recipient of the Covered Work from You is an
|
||||||
|
intended third-party beneficiary of this License solely as to this
|
||||||
|
section 5, with the right to enforce its terms.
|
||||||
|
|
||||||
|
6. Symmetrical Licensing Condition for Upstream Contributions
|
||||||
|
|
||||||
|
If You Distribute a work to Me specifically for inclusion in or
|
||||||
|
modification of a Covered Work (a "Patch"), and no explicit licensing
|
||||||
|
terms apply to the Patch, You license the Patch under this License, to
|
||||||
|
the extent of Your copyright in the Patch. This condition does not
|
||||||
|
negate the other conditions of this License, if applicable to the Patch.
|
||||||
|
|
||||||
|
7. Nullification of Copyleft/Proprietary Dual Licensing
|
||||||
|
|
||||||
|
If I offer to license, for a fee, a Covered Work under terms other than
|
||||||
|
a license that is OSI-Approved or FSF-Free as of the release date of this
|
||||||
|
License or a numbered version of copyleft-next released by the
|
||||||
|
Copyleft-Next Project, then the license I grant You under section 1 is no
|
||||||
|
longer subject to the conditions in sections 3 through 5.
|
||||||
|
|
||||||
|
8. Copyleft Sunset
|
||||||
|
|
||||||
|
The conditions in sections 3 through 5 no longer apply once fifteen
|
||||||
|
years have elapsed from the date of My first Distribution of My Work
|
||||||
|
under this License.
|
||||||
|
|
||||||
|
9. Pass-Through
|
||||||
|
|
||||||
|
When You Distribute a Covered Work, the recipient automatically receives
|
||||||
|
a license to My Work from Me, subject to the terms of this License.
|
||||||
|
|
||||||
|
10. Termination
|
||||||
|
|
||||||
|
Your license grants under section 1 are automatically terminated if You
|
||||||
|
|
||||||
|
a) fail to comply with the conditions of this License, unless You cure
|
||||||
|
such noncompliance within thirty days after becoming aware of it, or
|
||||||
|
|
||||||
|
b) initiate a patent infringement litigation claim (excluding
|
||||||
|
declaratory judgment actions, counterclaims, and cross-claims)
|
||||||
|
alleging that any part of My Work directly or indirectly infringes
|
||||||
|
any patent.
|
||||||
|
|
||||||
|
Termination of Your license grants extends to all copies of Covered
|
||||||
|
Works You subsequently obtain. Termination does not terminate the
|
||||||
|
rights of those who have received copies or rights from You subject to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
To the extent permission to make copies of a Covered Work is necessary
|
||||||
|
merely for running it, such permission is not terminable.
|
||||||
|
|
||||||
|
11. Later License Versions
|
||||||
|
|
||||||
|
The Copyleft-Next Project may release new versions of copyleft-next,
|
||||||
|
designated by a distinguishing version number ("Later Versions").
|
||||||
|
Unless I explicitly remove the option of Distributing Covered Works
|
||||||
|
under Later Versions, You may Distribute Covered Works under any Later
|
||||||
|
Version.
|
||||||
|
|
||||||
|
** 12. No Warranty **
|
||||||
|
** **
|
||||||
|
** My Work is provided "as-is", without warranty. You bear the risk **
|
||||||
|
** of using it. To the extent permitted by applicable law, each **
|
||||||
|
** Distributor of My Work excludes the implied warranties of title, **
|
||||||
|
** merchantability, fitness for a particular purpose and **
|
||||||
|
** non-infringement. **
|
||||||
|
|
||||||
|
** 13. Limitation of Liability **
|
||||||
|
** **
|
||||||
|
** To the extent permitted by applicable law, in no event will any **
|
||||||
|
** Distributor of My Work be liable to You for any damages **
|
||||||
|
** whatsoever, whether direct, indirect, special, incidental, or **
|
||||||
|
** consequential damages, whether arising under contract, tort **
|
||||||
|
** (including negligence), or otherwise, even where the Distributor **
|
||||||
|
** knew or should have known about the possibility of such damages. **
|
||||||
|
|
||||||
|
14. Severability
|
||||||
|
|
||||||
|
The invalidity or unenforceability of any provision of this License
|
||||||
|
does not affect the validity or enforceability of the remainder of
|
||||||
|
this License. Such provision is to be reformed to the minimum extent
|
||||||
|
necessary to make it valid and enforceable.
|
||||||
|
|
||||||
|
15. Definitions
|
||||||
|
|
||||||
|
"Copyleft-Next Project" means the project that maintains the source
|
||||||
|
code repository at <https://github.com/copyleft-next/copyleft-next.git/>
|
||||||
|
as of the release date of this License.
|
||||||
|
|
||||||
|
"Corresponding Source" of a Covered Work in Object Code form means (i)
|
||||||
|
the Source Code form of the Covered Work; (ii) all scripts,
|
||||||
|
instructions and similar information that are reasonably necessary for
|
||||||
|
a skilled developer to generate such Object Code from the Source Code
|
||||||
|
provided under (i); and (iii) a list clearly identifying all Separate
|
||||||
|
Works (other than those provided in compliance with (ii)) that were
|
||||||
|
specifically used in building and (if applicable) installing the
|
||||||
|
Covered Work (for example, a specified proprietary compiler including
|
||||||
|
its version number). Corresponding Source must be machine-readable.
|
||||||
|
|
||||||
|
"Covered Work" means My Work or a Derived Work.
|
||||||
|
|
||||||
|
"Derived Work" means a work of authorship that copies from, modifies,
|
||||||
|
adapts, is based on, is a derivative work of, transforms, translates or
|
||||||
|
contains all or part of My Work, such that copyright permission is
|
||||||
|
required. The following are not Derived Works: (i) Mere Aggregation;
|
||||||
|
(ii) a mere reproduction of My Work; and (iii) if My Work fails to
|
||||||
|
explicitly state an expectation otherwise, a work that merely makes
|
||||||
|
reference to My Work.
|
||||||
|
|
||||||
|
"Distribute" means to distribute, transfer or make a copy available to
|
||||||
|
someone else, such that copyright permission is required.
|
||||||
|
|
||||||
|
"Distributor" means Me and anyone else who Distributes a Covered Work.
|
||||||
|
|
||||||
|
"FSF-Free" means classified as 'free' by the Free Software Foundation.
|
||||||
|
|
||||||
|
"GPL" means a version of the GNU General Public License or the GNU
|
||||||
|
Affero General Public License.
|
||||||
|
|
||||||
|
"I"/"Me"/"My" refers to the individual or legal entity that places My
|
||||||
|
Work under this License. "You"/"Your" refers to the individual or legal
|
||||||
|
entity exercising rights in My Work under this License. A legal entity
|
||||||
|
includes each entity that controls, is controlled by, or is under
|
||||||
|
common control with such legal entity. "Control" means (a) the power to
|
||||||
|
direct the actions of such legal entity, whether by contract or
|
||||||
|
otherwise, or (b) ownership of more than fifty percent of the
|
||||||
|
outstanding shares or beneficial ownership of such legal entity.
|
||||||
|
|
||||||
|
"Licensed Patents" means all patent claims licensable royalty-free by
|
||||||
|
Me, now or in the future, that are necessarily infringed by making,
|
||||||
|
using, or selling My Work, and excludes claims that would be infringed
|
||||||
|
only as a consequence of further modification of My Work.
|
||||||
|
|
||||||
|
"Mere Aggregation" means an aggregation of a Covered Work with a
|
||||||
|
Separate Work.
|
||||||
|
|
||||||
|
"My Work" means the particular work of authorship I license to You
|
||||||
|
under this License.
|
||||||
|
|
||||||
|
"Object Code" means any form of a work that is not Source Code.
|
||||||
|
|
||||||
|
"OSI-Approved" means approved as 'Open Source' by the Open Source
|
||||||
|
Initiative.
|
||||||
|
|
||||||
|
"Separate Work" means a work that is separate from and independent of a
|
||||||
|
particular Covered Work and is not by its nature an extension or
|
||||||
|
enhancement of the Covered Work, and/or a runtime library, standard
|
||||||
|
library or similar component that is used to generate an Object Code
|
||||||
|
form of a Covered Work.
|
||||||
|
|
||||||
|
"Source Code" means the preferred form of a work for making
|
||||||
|
modifications to it.
|
||||||
|
</div>
|
45
content/pages/02_contribute.md
Normal file
45
content/pages/02_contribute.md
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
Title: Contribute
|
||||||
|
|
||||||
|
Contributions of any sort (text suggestions, ideas, feedback,
|
||||||
|
criticism) from all interested individuals are welcome and encouraged.
|
||||||
|
All copyrightable contributions to copyleft-next are dedicated to the
|
||||||
|
public domain to the maximum extent permitted by applicable law,
|
||||||
|
pursuant to CC0. See the accompanying file CC0 for further details.
|
||||||
|
|
||||||
|
Contributions from individual free/libre/open source software project
|
||||||
|
participants, regardless of their views on copyleft, and regardless of
|
||||||
|
their opinions on existing licenses such as the GNU GPLv2 and its
|
||||||
|
successors, are especially welcome and strongly encouraged.
|
||||||
|
|
||||||
|
Patches or merge requests relating to a given license text should be
|
||||||
|
made against the relevant file in the Drafts/ directory, **not** a
|
||||||
|
numbered version in the Releases/ directory. The files in Releases/
|
||||||
|
are meant to be immutable. (More than one person has pointed out that
|
||||||
|
this Drafts/Releases approach is bad and represents a poor use of
|
||||||
|
git. Any concrete suggestions for an improved system would be greatly
|
||||||
|
welcome.)
|
||||||
|
|
||||||
|
Development and discussion of copyleft-next by participants in the
|
||||||
|
Copyleft-Next Project are governed by the [Harvey Birdman Rule].
|
||||||
|
|
||||||
|
## Public Source Locations
|
||||||
|
|
||||||
|
<https://github.com/copyleft-next/copyleft-next> is now the canonical
|
||||||
|
source location for this project.
|
||||||
|
|
||||||
|
## Mailing List
|
||||||
|
|
||||||
|
You can subscribe to the copyleft-next mailing list at:
|
||||||
|
<https://lists.fedorahosted.org/mailman/listinfo/copyleft-next/>
|
||||||
|
|
||||||
|
## Issues
|
||||||
|
|
||||||
|
You can submit issues at
|
||||||
|
<https://github.com/copyleft-next/copyleft-next/issues> or on the
|
||||||
|
mailing list.
|
||||||
|
|
||||||
|
## IRC
|
||||||
|
|
||||||
|
There is a totally official #copyleft-next channel on freenode.
|
||||||
|
|
||||||
|
[Harvey Birdman Rule]: https://github.com/richardfontana/hbr/blob/master/HBR.md
|
41
content/pages/03_thanks.md
Normal file
41
content/pages/03_thanks.md
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
Title: Thanks
|
||||||
|
|
||||||
|
If you do not wish to be listed here (and/or do not think you should
|
||||||
|
be listed here), or you aren't listed here but think you should be, or
|
||||||
|
you wish to be listed here in some other way, please let me know.</p>
|
||||||
|
|
||||||
|
— <cite>Richard</cite>
|
||||||
|
|
||||||
|
Acknowledgment is gratefully given to the following individuals who
|
||||||
|
have contributed to the development of copyleft-next:
|
||||||
|
|
||||||
|
<p style="white-space: pre-wrap">JD Bean
|
||||||
|
Pamela Chestek
|
||||||
|
Ben Cotton
|
||||||
|
dw51476
|
||||||
|
Andrew Engelbrecht
|
||||||
|
Richard Fontana
|
||||||
|
Jack Gandy
|
||||||
|
Joshua Gay
|
||||||
|
Masayuki Hatta
|
||||||
|
Stephen Michael Kellat
|
||||||
|
Bradley M. Kuhn
|
||||||
|
Mike Linksvayer
|
||||||
|
Winston Lloyd
|
||||||
|
Carlos Alberto Lopez Perez
|
||||||
|
Tom Marble
|
||||||
|
François Marier
|
||||||
|
Michał Masłowski
|
||||||
|
Martin Michlmayr
|
||||||
|
Kyle E. Mitchell
|
||||||
|
Kabelo Moiloa
|
||||||
|
Michal Nazarewicz
|
||||||
|
Engel Nyst
|
||||||
|
Germán Poo-Caamaño
|
||||||
|
Luis Rodriguez
|
||||||
|
Adam Saunders
|
||||||
|
Max Thoursie
|
||||||
|
Ted Ts'o
|
||||||
|
James Vasile
|
||||||
|
Luis Villa
|
||||||
|
Kuno Woudt</p>
|
27
pelicanconf.py
Normal file
27
pelicanconf.py
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
AUTHOR = 'Software Freedom Conservancy'
|
||||||
|
SITENAME = 'copyleft-next'
|
||||||
|
SITESUBTITLE = 'A new, post-post-modern, non-weak copyleft license inspired by, though different from, the GNU GPL.'
|
||||||
|
SITEURL = ''
|
||||||
|
|
||||||
|
PATH = 'content'
|
||||||
|
|
||||||
|
TIMEZONE = 'US/Eastern'
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# Blogroll
|
||||||
|
LINKS = []
|
||||||
|
|
||||||
|
# Social widget
|
||||||
|
SOCIAL = []
|
||||||
|
|
||||||
|
DEFAULT_PAGINATION = 10
|
||||||
|
|
||||||
|
THEME = 'themes/next.copyleft.org'
|
16
publishconf.py
Normal file
16
publishconf.py
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# 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 = ''
|
||||||
|
RELATIVE_URLS = False
|
||||||
|
|
||||||
|
FEED_ALL_ATOM = 'feeds/all.atom.xml'
|
||||||
|
CATEGORY_FEED_ATOM = 'feeds/{slug}.atom.xml'
|
||||||
|
|
||||||
|
DELETE_OUTPUT_DIRECTORY = True
|
14
themes/next.copyleft.org/templates/archives.html
Normal file
14
themes/next.copyleft.org/templates/archives.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Archives{% endblock %}
|
||||||
|
|
||||||
|
{% 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 %}
|
67
themes/next.copyleft.org/templates/article.html
Normal file
67
themes/next.copyleft.org/templates/article.html
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block html_lang %}{{ article.lang }}{% endblock %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ article.title|striptags }}{% endblock %}
|
||||||
|
|
||||||
|
{% block head %}
|
||||||
|
{{ super() }}
|
||||||
|
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{% if translations.entry_hreflang(article) %}
|
||||||
|
{{ translations.entry_hreflang(article) }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if article.description %}
|
||||||
|
<meta name="description" content="{{article.description}}" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for tag in article.tags %}
|
||||||
|
<meta name="tags" content="{{tag}}" />
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<section id="content" class="body">
|
||||||
|
<header>
|
||||||
|
<h2 class="entry-title">
|
||||||
|
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark"
|
||||||
|
title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2>
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{{ translations.translations_for(article) }}
|
||||||
|
</header>
|
||||||
|
<footer 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 %}
|
||||||
|
{% if article.category %}
|
||||||
|
<div class="category">
|
||||||
|
Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if article.tags %}
|
||||||
|
<div class="tags">
|
||||||
|
Tags:
|
||||||
|
{% for tag in article.tags %}
|
||||||
|
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</footer><!-- /.post-info -->
|
||||||
|
<div class="entry-content">
|
||||||
|
{{ article.content }}
|
||||||
|
</div><!-- /.entry-content -->
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
8
themes/next.copyleft.org/templates/author.html
Normal file
8
themes/next.copyleft.org/templates/author.html
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content_title %}
|
||||||
|
<h2>Articles by {{ author }}</h2>
|
||||||
|
{% endblock %}
|
||||||
|
|
12
themes/next.copyleft.org/templates/authors.html
Normal file
12
themes/next.copyleft.org/templates/authors.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{% 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 %}
|
63
themes/next.copyleft.org/templates/base.html
Normal file
63
themes/next.copyleft.org/templates/base.html
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{% block html_lang %}{{ DEFAULT_LANG }}{% endblock html_lang %}">
|
||||||
|
<head>
|
||||||
|
{% block head %}
|
||||||
|
<title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="Pelican" />
|
||||||
|
{% if FEED_ALL_ATOM %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if FEED_ALL_ATOM_URL %}{{ FEED_ALL_ATOM_URL }}{% else %}{{ FEED_ALL_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ALL_RSS %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if FEED_ALL_RSS_URL %}{{ FEED_ALL_RSS_URL }}{% else %}{{ FEED_ALL_RSS }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ATOM %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{%if FEED_ATOM_URL %}{{ FEED_ATOM_URL }}{% else %}{{ FEED_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_RSS %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if FEED_RSS_URL %}{{ FEED_RSS_URL }}{% else %}{{ FEED_RSS }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if CATEGORY_FEED_ATOM and category %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if CATEGORY_FEED_ATOM_URL %}{{ CATEGORY_FEED_ATOM_URL.format(slug=category.slug) }}{% else %}{{ CATEGORY_FEED_ATOM.format(slug=category.slug) }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if CATEGORY_FEED_RSS and category %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if CATEGORY_FEED_RSS_URL %}{{ CATEGORY_FEED_RSS_URL.format(slug=category.slug) }}{% else %}{{ CATEGORY_FEED_RSS.format(slug=category.slug) }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if TAG_FEED_ATOM and tag %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if TAG_FEED_ATOM_URL %}{{ TAG_FEED_ATOM_URL.format(slug=tag.slug) }}{% else %}{{ TAG_FEED_ATOM.format(slug=tag.slug) }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if TAG_FEED_RSS and tag %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if TAG_FEED_RSS_URL %}{{ TAG_FEED_RSS_URL.format(slug=tag.slug) }}{% else %}{{ TAG_FEED_RSS.format(slug=tag.slug) }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% endblock head %}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="index" class="home">
|
||||||
|
<header id="banner" class="body">
|
||||||
|
<h1><a href="{{ SITEURL }}/">{{ SITENAME }}{% if SITESUBTITLE %} <strong>{{ SITESUBTITLE }}</strong>{% endif %}</a></h1>
|
||||||
|
</header><!-- /#banner -->
|
||||||
|
<nav id="menu"><ul>
|
||||||
|
{% for title, link in MENUITEMS %}
|
||||||
|
<li><a href="{{ link }}">{{ title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% if DISPLAY_PAGES_ON_MENU %}
|
||||||
|
{% for p in pages %}
|
||||||
|
<li{% if p == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% 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 %}
|
||||||
|
</ul></nav><!-- /#menu -->
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
<footer id="contentinfo" class="body">
|
||||||
|
<address id="about" class="vcard body">
|
||||||
|
Proudly powered by <a href="https://getpelican.com/">Pelican</a>,
|
||||||
|
which takes great advantage of <a href="https://www.python.org/">Python</a>.
|
||||||
|
</address><!-- /#about -->
|
||||||
|
</footer><!-- /#contentinfo -->
|
||||||
|
</body>
|
||||||
|
</html>
|
12
themes/next.copyleft.org/templates/categories.html
Normal file
12
themes/next.copyleft.org/templates/categories.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Categories{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Categories on {{ SITENAME }}</h1>
|
||||||
|
<ul>
|
||||||
|
{% for category, articles in categories|sort %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a> ({{ articles|count }})</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
8
themes/next.copyleft.org/templates/category.html
Normal file
8
themes/next.copyleft.org/templates/category.html
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ category }} category{% endblock %}
|
||||||
|
|
||||||
|
{% block content_title %}
|
||||||
|
<h2>Articles in the {{ category }} category</h2>
|
||||||
|
{% endblock %}
|
||||||
|
|
28
themes/next.copyleft.org/templates/index.html
Normal file
28
themes/next.copyleft.org/templates/index.html
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
<section id="content">
|
||||||
|
{% block content_title %}
|
||||||
|
<h2>All articles</h2>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
<ol id="post-list">
|
||||||
|
{% for article in articles_page.object_list %}
|
||||||
|
<li><article class="hentry">
|
||||||
|
<header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header>
|
||||||
|
<footer class="post-info">
|
||||||
|
<time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.locale_date }} </time>
|
||||||
|
<address class="vcard author">By
|
||||||
|
{% for author in article.authors %}
|
||||||
|
<a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
</address>
|
||||||
|
</footer><!-- /.post-info -->
|
||||||
|
<div class="entry-content"> {{ article.summary }} </div><!-- /.entry-content -->
|
||||||
|
</article></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol><!-- /#posts-list -->
|
||||||
|
{% if articles_page.has_other_pages() %}
|
||||||
|
{% include 'pagination.html' %}
|
||||||
|
{% endif %}
|
||||||
|
</section><!-- /#content -->
|
||||||
|
{% endblock content %}
|
27
themes/next.copyleft.org/templates/page.html
Normal file
27
themes/next.copyleft.org/templates/page.html
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block html_lang %}{{ page.lang }}{% endblock %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ page.title|striptags }}{%endblock%}
|
||||||
|
|
||||||
|
{% block head %}
|
||||||
|
{{ super() }}
|
||||||
|
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{% if translations.entry_hreflang(page) %}
|
||||||
|
{{ translations.entry_hreflang(page) }}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>{{ page.title }}</h1>
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{{ translations.translations_for(page) }}
|
||||||
|
|
||||||
|
{{ page.content }}
|
||||||
|
|
||||||
|
{% if page.modified %}
|
||||||
|
<p>
|
||||||
|
Last updated: {{ page.locale_modified }}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
15
themes/next.copyleft.org/templates/pagination.html
Normal file
15
themes/next.copyleft.org/templates/pagination.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{% if DEFAULT_PAGINATION %}
|
||||||
|
{% set first_page = articles_paginator.page(1) %}
|
||||||
|
{% set last_page = articles_paginator.page(articles_paginator.num_pages) %}
|
||||||
|
<p class="paginator">
|
||||||
|
{% if articles_page.has_previous() %}
|
||||||
|
<a href="{{ SITEURL }}/{{ first_page.url }}">⇇</a>
|
||||||
|
<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>
|
||||||
|
<a href="{{ SITEURL }}/{{ last_page.url }}">⇉</a>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
14
themes/next.copyleft.org/templates/period_archives.html
Normal file
14
themes/next.copyleft.org/templates/period_archives.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ period | reverse | join(' ') }} archives{% endblock %}
|
||||||
|
|
||||||
|
{% 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 %}
|
7
themes/next.copyleft.org/templates/tag.html
Normal file
7
themes/next.copyleft.org/templates/tag.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ tag }} tag{% endblock %}
|
||||||
|
|
||||||
|
{% block content_title %}
|
||||||
|
<h2>Articles tagged with {{ tag }}</h2>
|
||||||
|
{% endblock %}
|
12
themes/next.copyleft.org/templates/tags.html
Normal file
12
themes/next.copyleft.org/templates/tags.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Tags{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Tags for {{ SITENAME }}</h1>
|
||||||
|
<ul>
|
||||||
|
{% for tag, articles in tags|sort %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
16
themes/next.copyleft.org/templates/translations.html
Normal file
16
themes/next.copyleft.org/templates/translations.html
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{% macro translations_for(article) %}
|
||||||
|
{% if article.translations %}
|
||||||
|
Translations:
|
||||||
|
{% for translation in article.translations %}
|
||||||
|
<a href="{{ SITEURL }}/{{ translation.url }}" hreflang="{{ translation.lang }}">{{ translation.lang }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro entry_hreflang(entry) %}
|
||||||
|
{% if entry.translations %}
|
||||||
|
{% for translation in entry.translations %}
|
||||||
|
<link rel="alternate" hreflang="{{ translation.lang }}" href="{{ SITEURL }}/{{ translation.url }}">
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
Loading…
Reference in a new issue