def css_package(package_name): if not use_compressed_packages(): package = packages.stylesheets[package_name] else: package = packages_compressed.compressed_stylesheets[package_name] base_url = (package.get("base_url") or "/stylesheets/%s-package" % package_name) list_css = [] if not use_compressed_packages(): for filename in package.get("files", []): ext = os.path.splitext(filename)[1] if ext == ".css": list_css.append( "<link rel='stylesheet' type='text/css' href='%s/%s'>" % (base_url, filename)) elif ext == ".less": list_css.append( "<link rel='stylesheet/less' type='text/css' href='%s/%s'>" % (base_url, filename)) elif (package_name + '-non-ie' not in packages_compressed.compressed_stylesheets): list_css.append( "<link rel='stylesheet' type='text/css' href='%s/%s'>" % (url_util.static_url(base_url), package["hashed-filename"])) else: # Thank you Jammit (https://github.com/documentcloud/jammit) for the # conditional comments. non_ie_package = packages_compressed.compressed_stylesheets[ package_name + '-non-ie'] list_css.append("<!--[if (!IE)|(gte IE 8)]><!-->") # Stylesheets using data-uris list_css.append( "<link rel='stylesheet' type='text/css' href='%s/%s'>" % (url_util.static_url(base_url), non_ie_package["hashed-filename"])) list_css.append("<!--<![endif]-->") list_css.append("<!--[if lte IE 7]>") # Without data-uris, for IE <= 7 list_css.append( "<link rel='stylesheet' type='text/css' href='%s/%s'>" % (url_util.static_url(base_url), package["hashed-filename"])) list_css.append("<![endif]-->") return "".join(list_css)
def test_detection_of_ka_urls(self): def is_ka_url(url): return url_util.is_khanacademy_url(url) self.stub_server_name("www.iktel.nl") print url_util.static_url("/images/foo") self.assertTrue(is_ka_url("/relative/url")) self.assertTrue(is_ka_url(url_util.absolute_url("/relative/url"))) self.assertTrue(is_ka_url(url_util.static_url("/images/foo"))) self.assertTrue(is_ka_url("http://www.iktel.nl")) self.assertTrue(is_ka_url("http://smarthistory.iktel.nl")) self.assertTrue(is_ka_url("http://www.iktel.nl/")) self.assertTrue(is_ka_url("http://www.iktel.nl/foo")) self.restore_server_name()
def css_package(package_name): if not use_compressed_packages(): package = packages.stylesheets[package_name] else: package = packages_compressed.compressed_stylesheets[package_name] base_url = (package.get("base_url") or "/stylesheets/%s-package" % package_name) list_css = [] if not use_compressed_packages(): for filename in package.get("files", []): ext = os.path.splitext(filename)[1] if ext == ".css": list_css.append( "<link rel='stylesheet' type='text/css' href='%s/%s'>" % (base_url, filename)) elif ext == ".less": list_css.append( "<link rel='stylesheet/less' type='text/css' href='%s/%s'>" % (base_url, filename)) elif (package_name + '-non-ie' not in packages_compressed.compressed_stylesheets): list_css.append("<link rel='stylesheet' type='text/css' href='%s/%s'>" % (url_util.static_url(base_url), package["hashed-filename"])) else: # Thank you Jammit (https://github.com/documentcloud/jammit) for the # conditional comments. non_ie_package = packages_compressed.compressed_stylesheets[ package_name + '-non-ie'] list_css.append("<!--[if (!IE)|(gte IE 8)]><!-->") # Stylesheets using data-uris list_css.append("<link rel='stylesheet' type='text/css' href='%s/%s'>" % (url_util.static_url(base_url), non_ie_package["hashed-filename"])) list_css.append("<!--<![endif]-->") list_css.append("<!--[if lte IE 7]>") # Without data-uris, for IE <= 7 list_css.append("<link rel='stylesheet' type='text/css' href='%s/%s'>" % (url_util.static_url(base_url), package["hashed-filename"])) list_css.append("<![endif]-->") return "".join(list_css)
def test_detection_of_ka_urls(self): def is_ka_url(url): return url_util.is_khanacademy_url(url) self.stub_server_name("www.khanacademy.org") self.assertTrue(is_ka_url("/relative/url")) self.assertTrue(is_ka_url(url_util.absolute_url("/relative/url"))) self.assertTrue(is_ka_url(url_util.static_url("/images/foo"))) self.assertTrue(is_ka_url("http://www.khanacademy.org")) self.assertTrue(is_ka_url("http://smarthistory.khanacademy.org")) self.assertTrue(is_ka_url("http://www.khanacademy.org/")) self.assertTrue(is_ka_url("http://www.khanacademy.org/foo")) self.assertTrue(is_ka_url("https://khan-academy.appspot.com")) self.assertTrue(is_ka_url("http://non-default.khan-academy.appspot.com")) self.assertTrue(is_ka_url("https://non-default.khan-academy.appspot.com")) self.restore_server_name()
def js_package(package_name): loaded_script = ("<script type='text/javascript'>" "if (typeof dynamicPackageLoader !== 'undefined') " "dynamicPackageLoader.setPackageLoaded('%s');" "</script>" % package_name) if not use_compressed_packages(): package = packages.javascript[package_name] base_url = (package.get("base_url") or "/javascript/%s-package" % package_name) list_js = [] filenames = [] if "files" in package: # read from whitelist in packages.py filenames = package["files"] elif package.get("allfiles", False): # just add all files in the directory filenames = os.listdir("clienttemplates/%s-package/" % package_name) else: raise "No files found in package %s" % package_name for file_name in filenames: if file_name.split('.')[-1] == 'handlebars': # In debug mode, templates are served as inline <script> tags. list_js.append(get_inline_template(package_name, file_name)) else: list_js.append("<script type='text/javascript' " "src='%s/%s'></script>" % (base_url, file_name)) list_js.append(loaded_script) return "\n".join(list_js) else: package = packages_compressed.compressed_javascript[package_name] base_url = (package.get("base_url") or "/javascript/%s-package" % package_name) return "<script type='text/javascript' src='%s/%s'></script>%s" % ( url_util.static_url(base_url), package["hashed-filename"], loaded_script)
def static_url(relative_url): return url_util.static_url(relative_url)