示例#1
0
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)
示例#2
0
    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()
示例#5
0
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 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)