Added a new setting OUTPUT_SOURCES_EXTENSION

Using this configurable setting users can control what extension will be
appended to filenames by the SourcesGenerator.

The default is to use the ``.text`` extension.
This commit is contained in:
Nico Di Rocco 2012-09-28 14:59:05 +02:00
commit a7dd21ffaf
3 changed files with 20 additions and 1 deletions

View file

@ -492,9 +492,12 @@ class PdfGenerator(Generator):
self._create_pdf(page, pdf_path)
class SourceFileGenerator(Generator):
def generate_context(self):
self.output_extension = self.settings['OUTPUT_SOURCES_EXTENSION']
def _create_source(self, obj, output_path):
filename = os.path.splitext(obj.save_as)[0]
dest = os.path.join(output_path, filename + '.text')
dest = os.path.join(output_path, filename + self.output_extension)
copy('', obj.filename, dest)
def generate_output(self, writer=None):

View file

@ -33,6 +33,7 @@ _DEFAULT_CONFIG = {'PATH': '.',
'DISPLAY_PAGES_ON_MENU': True,
'PDF_GENERATOR': False,
'OUTPUT_SOURCES': False,
'OUTPUT_SOURCES_EXTENSION': '.text',
'DEFAULT_CATEGORY': 'misc',
'DEFAULT_DATE': 'fs',
'WITH_FUTURE_DATES': True,
@ -175,4 +176,16 @@ def configure_settings(settings, default_settings=None, filename=None):
logger.warn("You must install the webassets module to use WEBASSETS.")
settings['WEBASSETS'] = False
if 'OUTPUT_SOURCES_EXTENSION' in settings:
try:
if not isinstance(settings['OUTPUT_SOURCES_EXTENSION'], str):
raise ValueError
elif '.' is not settings['OUTPUT_SOURCES_EXTENSION'][0]:
settings['OUTPUT_SOURCES_EXTENSION'] = '.' + settings['OUTPUT_SOURCES_EXTENSION']
except(ValueError, IndexError):
logger.warn("Detected misconfiguration with OUTPUT_SOURCES_EXTENSION."
" falling back to the default extension " +
_DEFAULT_CONFIG['OUTPUT_SOURCES_EXTENSION'])
settings['OUTPUT_SOURCES_EXTENSION'] = _DEFAULT_CONFIG['OUTPUT_SOURCES_EXTENSION']
return settings