def _render_include_media(bundle, variation): variation = variation.copy() filetype = os.path.splitext(bundle)[-1].lstrip('.') # The "media" variation is special and defines CSS media types media_types = None if filetype == 'css': media_types = variation.pop('media', None) if MEDIA_DEV_MODE: root = _load_root_filter(bundle) variations = root._get_variations_with_input() variation_map = [(key, variation.pop(key)) for key in sorted(variations.keys())] if variation: raise ValueError('Bundle %s does not support the following variation(s): %s' % (bundle, ', '.join(variation.keys()))) else: variation_map = tuple((key, variation[key]) for key in sorted(variation.keys())) urls = media_urls(_get_key(bundle, variation_map)) if filetype == 'css': if media_types: tag = u'<link rel="stylesheet" type="text/css" href="%%s" media="%s" />' % media_types else: tag = u'<link rel="stylesheet" type="text/css" href="%s" />' elif filetype == 'js': tag = u'<script type="text/javascript" src="%s"></script>' else: raise ValueError("""Don't know how to include file type "%s".""" % filetype) return '\n'.join(tag % url for url in urls)
def _render_include_media(bundle, variation): variation = variation.copy() filetype = os.path.splitext(bundle)[-1].lstrip('.') # The "media" variation is special and defines CSS media types media_types = None if filetype == 'css': media_types = variation.pop('media', None) variation_map = tuple((key, variation[key]) for key in sorted(variation.keys())) urls = media_urls(_get_key(bundle, variation_map)) ctxt = {} if filetype == 'css': if media_types: tag = '<link rel="stylesheet" type="text/css" href="{url}" media="{media}" />' ctxt['media'] = media_types else: tag = '<link rel="stylesheet" type="text/css" href="{url}" />' elif filetype == 'js': tag = '<script type="text/javascript" src="{url}"></script>' else: raise ValueError("""Don't know how to include file type "{}".""".format(filetype)) return '\n'.join(tag.format(url=url, **ctxt) for url in urls)
def _rewrite_js(self, match): url = match.group("url") typ = match.group("type") if typ == "url": if url.startswith("//"): return "'%s'" % url return "'%s'" % self._rebase(url) elif typ == "import": return "\n".join(['importScripts("%s");' % src for src in media_urls(url)])
def _rewrite_js(self, match): url = match.group('url') typ = match.group('type') if typ == 'url': if url.startswith('//'): return "'%s'" % url return "'%s'" % self._rebase(url) elif typ == 'import': return '\n'.join(['importScripts("%s");' % src for src in media_urls(url)])
def _render_include_media(bundle, variation): variation = variation.copy() filetype = os.path.splitext(bundle)[-1].lstrip('.') # The "media" variation is special and defines CSS media types media_types = None if filetype == 'css': media_types = variation.pop('media', None) elif filetype == 'js': use_requirejs = variation.pop('requirejs', None) req = media_urls(REQUIREJS_PATH) requirejs = unquote(req.pop()) if MEDIA_DEV_MODE: root = _load_root_filter(bundle) variations = root._get_variations_with_input() variation_map = [(key, variation.pop(key)) for key in sorted(variations.keys())] if variation: raise ValueError( 'Bundle %s does not support the following variation(s): %s' % (bundle, ', '.join(variation.keys()))) else: variation_map = tuple( (key, variation[key]) for key in sorted(variation.keys())) urls = media_urls(_get_key(bundle, None)) if filetype == 'css': if media_types: tag = u'<link rel="stylesheet" type="text/css" href="%%s" media="%s" />' % media_types else: tag = u'<link rel="stylesheet" type="text/css" href="%s" />' elif filetype == 'js': if use_requirejs and REQUIREJS_PATH: tag = u'<script data-main="%%s" type="text/javascript" src="%s"></script>' % requirejs else: tag = u'<script type="text/javascript" src="%s"></script>' else: raise ValueError("""Don't know how to include file type "%s".""" % filetype) return '\n'.join(tag % url for url in urls)
def _render_include_media(bundle, variation): variation = variation.copy() filetype = os.path.splitext(bundle)[-1].lstrip('.') # The "media" variation is special and defines CSS media types media_types = None if filetype == 'css': media_types = variation.pop('media', None) if filetype == 'js': js_async = variation.pop('async', None) if MEDIA_DEV_MODE: root = _load_root_filter(bundle) variations = root._get_variations_with_input() variation_map = [(key, variation.pop(key)) for key in sorted(variations.keys())] if variation: raise ValueError( 'Bundle %s does not support the following variation(s): %s' % (bundle, ', '.join(variation.keys()))) else: variation_map = tuple( (key, variation[key]) for key in sorted(variation.keys())) urls = media_urls(_get_key(bundle, variation_map)) if filetype == 'css': if media_types: tag = u'<link rel="stylesheet" type="text/css" href="%%s" media="%s" />' % media_types else: tag = u'<link rel="stylesheet" type="text/css" href="%s" />' elif filetype == 'js': if js_async: tag = u'<script type="text/javascript" async="%s" src="%%s"></script>' % js_async else: tag = u'<script type="text/javascript" src="%s"></script>' else: raise ValueError("""Don't know how to include file type "%s".""" % filetype) tags_result = '\n'.join(tag % url for url in urls) if MEDIA_BLOCKS and bundle.endswith(".ie.css"): return "<!--[if lt IE 9]>%s<![endif]-->" % tags_result else: return tags_result
def _render_include_media(bundle, variation): variation = variation.copy() filetype = os.path.splitext(bundle)[-1].lstrip('.') # The "media" variation is special and defines CSS media types media_types = None if filetype == 'css': media_types = variation.pop('media', None) if MEDIA_DEV_MODE: root = _load_root_filter(bundle) variations = root._get_variations_with_input() variation_map = [(key, variation.pop(key)) for key in sorted(variations.keys())] if variation: raise ValueError('Bundle %s does not support the following variation(s): %s' % (bundle, ', '.join(variation.keys()))) else: variation_map = tuple((key, variation[key]) for key in sorted(variation.keys())) urls = media_urls(_get_key(bundle, variation_map)) tags = [] for url in urls: if url.find('.less') > 0 and ENABLE_LESS_CSS_DEBUG: if media_types: tag = u'<link rel="stylesheet/less" type="text/css" href="%%s" media="%s" />' % media_types else: tag = u'<link rel="stylesheet/less" type="text/css" href="%s" />' elif filetype == 'css': if media_types: tag = u'<link rel="stylesheet" type="text/css" href="%%s" media="%s" />' % media_types else: tag = u'<link rel="stylesheet" type="text/css" href="%s" />' elif filetype == 'js': tag = u'<script type="text/javascript" src="%s"></script>' else: raise ValueError("""Don't know how to include file type "%s".""" % filetype) tags.append(tag % url) return '\n'.join(tags)
def _render_include_media(bundle, variation): variation = variation.copy() filetype = os.path.splitext(bundle)[-1].lstrip('.') # The "media" variation is special and defines CSS media types media_types = None if filetype == 'css': media_types = variation.pop('media', None) # if MEDIA_DEV_MODE: # root = _load_root_filter(bundle) # variations = root._get_variations_with_input() # variation_map = [(key, variation.pop(key)) for key in sorted(variations.keys())] # # if variation: # raise ValueError('Bundle {} does not support the following variation(s): {}'.format( # bundle, ', '.join(variation.keys()) # )) # else: # variation_map = tuple((key, variation[key]) for key in sorted(variation.keys())) variation_map = tuple( (key, variation[key]) for key in sorted(variation.keys())) urls = media_urls(_get_key(bundle, variation_map)) ctxt = {} if filetype == 'css': if media_types: tag = '<link rel="stylesheet" type="text/css" href="{url}" media="{media}" />' ctxt['media'] = media_types else: tag = '<link rel="stylesheet" type="text/css" href="{url}" />' elif filetype == 'js': tag = '<script type="text/javascript" src="{url}"></script>' else: raise ValueError( """Don't know how to include file type "{}".""".format(filetype)) return '\n'.join(tag.format(url=url, **ctxt) for url in urls)
def media_urls(url): return utils.media_urls(url)
def get_media_urls(bundle): return utils.media_urls(bundle)