def css_package(package_name): package = packages.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["files"]: list_css.append("<link rel='stylesheet' type='text/css' href='%s/%s'/>" \ % (base_url, filename)) elif package_name + '-non-ie' not in packages.stylesheets: list_css.append("<link rel='stylesheet' type='text/css' href='%s/%s'/>" \ % (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.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'/>" \ % (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'/>" \ % (util.static_url(base_url), package["hashed-filename"])) list_css.append("<![endif]-->") return "".join(list_css)
def css_package(package_name): package = packages.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["files"]: list_css.append("<link rel='stylesheet' type='text/css' href='%s/%s'/>" \ % (base_url, filename)) elif package_name+'-non-ie' not in packages.stylesheets: list_css.append("<link rel='stylesheet' type='text/css' href='%s/%s'/>" \ % (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.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'/>" \ % (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'/>" \ % (util.static_url(base_url), package["hashed-filename"])) list_css.append("<![endif]-->") return "".join(list_css)
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" % (util.static_url(base_url), package["hashed-filename"], loaded_script)
def js_package(package_name): package = packages.javascript[package_name] base_url = package.get("base_url") or "/javascript/%s-package" % package_name if not use_compressed_packages(): list_js = [] for filename in package["files"]: list_js.append("<script type='text/javascript' src='%s/%s'></script>" % (base_url, filename)) return "".join(list_js) else: return "<script type='text/javascript' src='%s/%s'></script>" % (util.static_url(base_url), package["hashed-filename"])
def js_package(package_name): package = packages.javascript[package_name] base_url = package.get( "base_url") or "/javascript/%s-package" % package_name if not use_compressed_packages(): list_js = [] for filename in package["files"]: list_js.append( "<script type='text/javascript' src='%s/%s'></script>" % (base_url, filename)) return "".join(list_js) else: return "<script type='text/javascript' src='%s/%s'></script>" % ( util.static_url(base_url), package["hashed-filename"])
def test_detection_of_ka_urls(self): def is_ka_url(url): return util.is_khanacademy_url(url) self.stub_server_name("www.khanacademy.org") self.assertTrue(is_ka_url("/relative/url")) self.assertTrue(is_ka_url(util.absolute_url("/relative/url"))) self.assertTrue(is_ka_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 get_icon_src(category): src = "/images/badges/half-moon-small.png" if category == BadgeCategory.BRONZE: src = "/images/badges/meteorite-small.png" elif category == BadgeCategory.SILVER: src = "/images/badges/moon-small.png" elif category == BadgeCategory.GOLD: src = "/images/badges/earth-small.png" elif category == BadgeCategory.PLATINUM: src = "/images/badges/sun-small.png" elif category == BadgeCategory.DIAMOND: src = "/images/badges/eclipse-small.png" elif category == BadgeCategory.MASTER: src = "/images/badges/master-challenge-blue-small.png" return util.static_url(src)
def js_package(package_name): loaded_script = "<script type='text/javascript'>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 = [] for file_name in package["files"]: 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" % (util.static_url(base_url), package["hashed-filename"], loaded_script)
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 = [] for file_name in package["files"]: 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" % ( util.static_url(base_url), package["hashed-filename"], loaded_script)
def get_icon_src(category, suffix="-small"): name = BadgeCategory.get_icon_filename(category) return util.static_url("/images/badges/%s%s.png" % (name, suffix))