Previously pelican-quickstart would assume that the site it created for GitHub
Pages should be published to the gh-pages branch. This is correct for project
pages, but not correct for personal pages. Personal pages, which live in a
user's special username.github.io repository, are instead deployed to the
master branch. This means that if you did pelican-quickstart and tried to
publish your new personal site with make github you'd see nothing (or whatever
old pages site you had floating around in master).
ghp-import already supports publishing to different branches, so publishing
to the correct branch is just a matter of correct configuration and updating
the Makefile to pass the branch along to ghp-import. pelican-quickstart now
asks if the user wants to publish to GitHub Pages, and if so, asks if this
is a personal page and chooses the correct branch appropriately. I preferred
this approach to prompting for an arbitrary branch because I felt that
choosing the branch would feel more intimidating to someone using
pelican-quickstart for the first time.
This essentially ports changes I made to my personal pages site at
jculpon@82cae477a9e8712b90654f6432464369ebcc7ae5
This adds a line to the settings file generated by pelican-quickstart
that ensures the automatically-generated "content" directory is
specified in said settings file. Fixes#1116
This commit adds optional fabfile.py generation during the
pelican-quickstart process. Reasons include:
* "make" is cumbersome to install on Windows
* Fabric runs in any Python environment
* fabfile is just Python and thus more flexible and extensible
This is an initial implementation and does not currently provide as many
upload options as its Makefile counterpart.
Refs #584.
The change to the "make clean" task in 764a2cf from "rm -rf" to instead
relying on GNU "find" appears to have broken cross-platform portability,
likely causing problems on *BSD and other platforms. This commit reverts
that change back to the previous "rm -rf" behavior.
This change removes the "clean" task from the "html" and "regenerate"
tasks in the default Makefile generated by pelican-quickstart. The
previous behavior ignored whether the DELETE_OUTPUT_DIRECTORY
setting was set to True or not and deleted everything in the output
directory every time the "make html" or "make regenerate" task was run.
In addition to violating the Principle of Least Astonishment, there was
also the potential for data loss if the user wasn't careful when
defining the output directory location in the Makefile.
The new behavior therefore relies primarily on the
DELETE_OUTPUT_DIRECTORY setting to control if and when the output
directory is cleaned. The default settings and Makefile generated by the
pelican-quickstart command, for example, no longer clean the output
directory when the "make html" task is run. If the user wants to change
this behavior and have the output directory cleaned on every "make html"
run, the recommended method would be to set DELETE_OUTPUT_DIRECTORY to
True in pelicanconf.py. Alternatively, the user can manually run "make
clean", with the caveat that the output directory and its contents will
be entirely destroyed, including any otherwise to-be-retained files or
folders specified in the OUTPUT_RETENTION setting. It is for that reason
that relying on the DELETE_OUTPUT_DIRECTORY setting is instead
recommended.
As before, DELETE_OUTPUT_DIRECTORY is set to True in the publishconf.py
settings file generated by the pelican-quickstart script. This way, any
potentially old and irrelevant files will be automatically removed
before the latest version of the site is transferred to the production
server environment.
In summary, this change allows for the sanest possible default settings,
while still allowing end users to customize output cleaning to their
preferred behavior with a minimum of confusion.
When importing from Wordpress, the --dir-page directive (disabled by
default) automatically adds files to the pages/ when they are recognised
as pages, as opposed to posts.
Turn invalid characters into underscores, remove leading dots and enforce
a maximum length. Should be fine on main file systems used by Windows, Mac OS
and Linux.
Thanks to @Avaris for helping to clean my code.
When a WP XML file is imported, items with missing title are generated with a
title which is probably not the good one (instead of being dropped), and a
warning is displayed to the user.
Since feed generation is usually unnecessary during development (and can
produce potentially-confusing warnings when SITEURL is not set), running
"make html" will now skip feed generation by default. Feed generation
settings have been added to publishconf.py so feeds will be generated
when the site is published.
Also corrected some URLs in pelicanconf.py.