Permalink
Browse files

Merge pull request #280 from justinmayer/siteurl

Remove trailing slash from SITEURL if present. Fixes #275.
  • Loading branch information...
2 parents 0ed6cf7 + 65b93db commit bd767a52737822ad8a94cfc1a5b22711f9e2dcf5 @almet almet committed Mar 23, 2012
Showing with 19 additions and 7 deletions.
  1. +5 −4 docs/settings.rst
  2. +9 −3 pelican/settings.py
  3. +5 −0 tests/test_settings.py
View
@@ -65,10 +65,11 @@ Setting name (default value) What does it do?
`SITEURL` Base URL of your website. Not defined by default,
which means the base URL is assumed to be "/" with a
root-relative URL structure. If `SITEURL` is specified
- explicitly, URLs will be generated with an absolute
- URL structure (including the domain). If you want to
- use relative URLs instead of root-relative or absolute
- URLs, you should instead use the `RELATIVE_URL` setting.
+ explicitly, there should be no trailing slash at the end,
+ and URLs will be generated with an absolute URL structure
+ (including the domain). If you want to use relative URLs
+ instead of root-relative or absolute URLs, you should
+ instead use the `RELATIVE_URL` setting.
`STATIC_PATHS` (``['images']``) The static paths you want to have accessible
on the output path "static". By default,
Pelican will copy the 'images' folder to the
View
@@ -128,9 +128,15 @@ def configure_settings(settings, default_settings=None, filename=None):
else:
logger.warn("LOCALE option doesn't contain a correct value")
- # If SITEURL is defined but FEED_DOMAIN isn't, set FEED_DOMAIN = SITEURL
- if ('SITEURL' in settings) and (not 'FEED_DOMAIN' in settings):
- settings['FEED_DOMAIN'] = settings['SITEURL']
+ if ('SITEURL' in settings):
+ # If SITEURL has a trailing slash, remove it and provide a warning
+ siteurl = settings['SITEURL']
+ if (siteurl[len(siteurl) - 1:] == '/'):
+ settings['SITEURL'] = siteurl[:-1]
+ logger.warn("Removed extraneous trailing slash from SITEURL.")
+ # If SITEURL is defined but FEED_DOMAIN isn't, set FEED_DOMAIN = SITEURL
+ if not 'FEED_DOMAIN' in settings:
+ settings['FEED_DOMAIN'] = settings['SITEURL']
# Warn if feeds are generated with both SITEURL & FEED_DOMAIN undefined
if (('FEED' in settings) or ('FEED_RSS' in settings)) and (not 'FEED_DOMAIN' in settings):
View
@@ -36,6 +36,11 @@ def test_read_empty_settings(self):
def test_configure_settings(self):
"""Manipulations to settings should be applied correctly."""
+ # SITEURL should not have a trailing slash
+ settings = {'SITEURL': 'http://blog.notmyidea.org/', 'LOCALE': ''}
+ configure_settings(settings)
+ self.assertEqual(settings['SITEURL'], 'http://blog.notmyidea.org')
+
# FEED_DOMAIN, if undefined, should default to SITEURL
settings = {'SITEURL': 'http://blog.notmyidea.org', 'LOCALE': ''}
configure_settings(settings)

0 comments on commit bd767a5

Please sign in to comment.