From 86e4fb427d67f4b88850f868cb5684407e7729df Mon Sep 17 00:00:00 2001 From: Preston Landers Date: Sun, 19 Jul 2015 16:20:31 -0500 Subject: [PATCH] Allow a customizable injection point rather than always the end of the tag. --- bowerstatic/core.py | 3 ++- bowerstatic/injector.py | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/bowerstatic/core.py b/bowerstatic/core.py index 9dee637..53eb9a4 100644 --- a/bowerstatic/core.py +++ b/bowerstatic/core.py @@ -12,11 +12,12 @@ class Bower(object): """Contains a bunch of bower_components directories. """ - def __init__(self, publisher_signature='bowerstatic', autoversion=None): + def __init__(self, publisher_signature='bowerstatic', autoversion=None, inject_point=None): self.publisher_signature = publisher_signature self._component_collections = {} self._renderer = Renderer() self.autoversion = autoversion or filesystem_second_autoversion + self.inject_point = inject_point or b'' def components(self, name, path): if name in self._component_collections: diff --git a/bowerstatic/injector.py b/bowerstatic/injector.py index fbfa1de..c10c57a 100644 --- a/bowerstatic/injector.py +++ b/bowerstatic/injector.py @@ -22,9 +22,14 @@ def __call__(self, request): if inclusions is None: return response body = response.body + inject_pt = self.bower.inject_point + head_tag = b'' + if inject_pt != head_tag and body.find(inject_pt) == -1: + inject_pt = head_tag + response.body = b'' - rendered_inclusions = (inclusions.render() + '').encode('utf-8') - body = body.replace(b'', rendered_inclusions) + rendered_inclusions = (inclusions.render() + inject_pt).encode('utf-8') + body = body.replace(inject_pt, rendered_inclusions) response.write(body) return response