Skip to content
This repository was archived by the owner on Nov 26, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,18 @@
from flask import Flask, render_template

import app_config
from render_utils import make_context, smarty_filter, urlencode_filter
from render_utils import make_context, smarty_filter, urlencode_filter, app_template_url_for
import static

app = Flask(__name__)
app = Flask(__name__, static_folder='www/assets')

# Template filters
app.jinja_env.filters['smarty'] = smarty_filter
app.jinja_env.filters['urlencode'] = urlencode_filter

# Template functions
app.jinja_env.globals.update(url_for=app_template_url_for)

# Example application views
@app.route('/')
def index():
Expand Down
23 changes: 21 additions & 2 deletions render_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
import urllib

from cssmin import cssmin
from flask import Markup, g, render_template, request
from flask import Markup, g, render_template, request, url_for
from slimit import minify
from smartypants import smartypants
from urlparse import urlparse

import app_config
import copytext
Expand All @@ -34,7 +35,7 @@ def _compress(self):

def _relativize_path(self, path):
relative_path = path
depth = len(request.path.split('/')) - (2 + self.asset_depth)
depth = len(request.path.split('/')) - (2 + self.asset_depth)

while depth > 0:
relative_path = '../%s' % relative_path
Expand Down Expand Up @@ -210,3 +211,21 @@ def smarty_filter(s):

return Markup(s)

def app_template_url_for(endpoint, **values):
target = app_config.DEPLOYMENT_TARGET
targets = ['staging', 'production', ]
project_slug = app_config.PROJECT_SLUG

if target not in targets:
return url_for(endpoint, **values)
else:
if values.get('_external', None):
parts = urlparse(url_for(endpoint, **values))
url = '%s://%s/%s%s' % (parts.scheme, parts.netloc, project_slug, parts.path)
if parts.query:
url += '?%s' % parts.query
if parts.fragment:
url += '#%s' % parts.fragment
return url
else:
return "/" + project_slug + url_for(endpoint, **values)