コード例 #1
0
    def test_02_callback(self):
        def callback(prop, value):
            return [(prop + "-variant", value)]

        ccss = StringIO()
        ccss.write(
            dedent('''
            #header, #footer:
                margin: 0
                padding: 0
        '''))

        expected_result = dedent('''
            #header,
            #footer {
                margin-variant: 0;
                padding-variant: 0;
            }
        ''').lstrip().replace("    ", "\t")

        c = cleancss.Parser(ccss)
        c.registerPropertyCallback(callback)

        ccss.seek(0)
        self.assertEqual(c.toCss(), expected_result)
        ccss.seek(0)
        self.assertEqual(cleancss.convert(ccss, callback), expected_result)
コード例 #2
0
ファイル: __init__.py プロジェクト: raylu/py-cleancss
    def test_02_callback(self):
        def callback(prop, value):
            return [
                (prop + "-variant", value)
            ]


        ccss = StringIO()
        ccss.write(dedent('''
            #header, #footer:
                margin: 0
                padding: 0
        '''))

        expected_result = dedent('''
            #header,
            #footer {
                margin-variant: 0;
                padding-variant: 0;
            }
        ''').lstrip().replace("    ", "\t")


        c = cleancss.Parser(ccss)
        c.registerPropertyCallback( callback )


        ccss.seek(0)
        self.assertEqual(c.toCss(), expected_result)
        ccss.seek(0)
        self.assertEqual(cleancss.convert(ccss, callback), expected_result)
コード例 #3
0
ファイル: server.py プロジェクト: mgway/ykill
	def get(self, css_path):
		css_path = os.path.join(os.path.dirname(__file__), 'web', 'static', css_path) + '.ccss'
		try:
			with open(css_path, 'r') as f:
				self.set_header('Content-Type', 'text/css')
				self.write(cleancss.convert(f))
		except FileNotFoundError:
			raise tornado.web.HTTPError(404)
コード例 #4
0
ファイル: __init__.py プロジェクト: raylu/py-cleancss
    def test_04_multiline_comments(self):
        ccss = StringIO()
        ccss.write(dedent('''body:
            /* Hi // there */
            color: /* inline comment! */ red
                /* Multi-
            line */ // and a comment
        '''))

        expected_result = dedent('''
            body {
                color: red;
            }
        ''').lstrip().replace("    ", "\t")


        ccss.seek(0)
        self.assertEqual(cleancss.convert(ccss, cleancss.callbacks.browser_variants), expected_result)
コード例 #5
0
    def test_04_multiline_comments(self):
        ccss = StringIO()
        ccss.write(
            dedent('''body:
            /* Hi // there */
            color: /* inline comment! */ red
                /* Multi-
            line */ // and a comment
        '''))

        expected_result = dedent('''
            body {
                color: red;
            }
        ''').lstrip().replace("    ", "\t")

        ccss.seek(0)
        self.assertEqual(
            cleancss.convert(ccss, cleancss.callbacks.browser_variants),
            expected_result)
コード例 #6
0
ファイル: gen.py プロジェクト: Raimmaster/levelwig
def generate(app):
    try:
        os.mkdir(public_dir)
    except FileExistsError:
        pass
    # do this instead of shutil.rmtree in case public is a symlink
    for filename in os.listdir(public_dir):
        abspath = path.join(public_dir, filename)
        if path.isdir(abspath) and not path.islink(abspath):
            shutil.rmtree(abspath)
        else:
            os.unlink(abspath)

    os.symlink(path.join(levelwig_dir, 'media'),
               path.join(public_dir, 'media'))

    posts = db.iter_posts(allowed_flags=0)
    stream = app.template_engine.stream('root.jinja2', {'posts': posts})
    with open(path.join(public_dir, 'index.html'), 'wb') as f:
        for buf in stream:
            f.write(buf)

    md = app.template_engine.jinja_env.filters['markdown']
    with open(path.join(public_dir, 'feed.atom'), 'w') as f:
        f.write(get_feed(md))

    for post in db.iter_posts(allowed_flags=db.PostFlag.draft):
        stream = app.template_engine.stream('post.jinja2', {'post': post})
        with open(path.join(public_dir, '%d.html' % post.id), 'wb') as f:
            for buf in stream:
                f.write(buf)

    os.mkdir(path.join(public_dir, 'css'))
    for absdir, _, filenames in os.walk(css_dir):
        for filename in filenames:
            ccss_path = path.join(absdir, filename)
            reldir = absdir[len(css_dir):]
            relname, _ = path.splitext(path.join(reldir, filename))
            css_path = path.join(public_dir, 'css', relname) + '.css'
            with open(ccss_path, 'r') as ccss, open(css_path, 'w') as css:
                css.write(cleancss.convert(ccss))
コード例 #7
0
ファイル: gen.py プロジェクト: raylu/levelwig
def generate(app):
	try:
		os.mkdir(public_dir)
	except FileExistsError:
		pass
	# do this instead of shutil.rmtree in case public is a symlink
	for filename in os.listdir(public_dir):
		abspath = path.join(public_dir, filename)
		if path.isdir(abspath) and not path.islink(abspath):
			shutil.rmtree(abspath)
		else:
			os.unlink(abspath)

	os.symlink(path.join(levelwig_dir, 'media'), path.join(public_dir, 'media'))

	posts = db.iter_posts(allowed_flags=0)
	stream = app.template_engine.stream('root.jinja2', {'posts': posts})
	with open(path.join(public_dir, 'index.html'), 'wb') as f:
		for buf in stream:
			f.write(buf)

	md = app.template_engine.jinja_env.filters['markdown']
	with open(path.join(public_dir, 'feed.atom'), 'w') as f:
		f.write(get_feed(md))

	for post in db.iter_posts(allowed_flags=db.PostFlag.draft):
		stream = app.template_engine.stream('post.jinja2', {'post': post})
		with open(path.join(public_dir, '%d.html' % post.id), 'wb') as f:
			for buf in stream:
				f.write(buf)

	os.mkdir(path.join(public_dir, 'css'))
	for absdir, _, filenames in os.walk(css_dir):
		for filename in filenames:
			ccss_path = path.join(absdir, filename)
			reldir = absdir[len(css_dir):]
			relname, _ = path.splitext(path.join(reldir, filename))
			css_path = path.join(public_dir, 'css', relname) + '.css'
			with open(ccss_path, 'r') as ccss, open(css_path, 'w') as css:
				css.write(cleancss.convert(ccss))
コード例 #8
0
ファイル: bl.py プロジェクト: raylu/bl
	def get(self, css_path):
		css_path = os.path.join(os.path.dirname(__file__), 'static', css_path) + '.ccss'
		with open(css_path, 'r') as f:
			self.set_header('Content-Type', 'text/css')
			self.write(cleancss.convert(f))
コード例 #9
0
def css(filename):
	root, _ = os.path.splitext(filename)
	abs_path = os.path.join(css_path, root) + '.ccss'
	with open(abs_path, 'r') as f:
		return cleancss.convert(f), 200, {'Content-Type': 'text/css'}
コード例 #10
0
    def test_01_convert(self):
        ccss = StringIO()
        ccss.write(
            dedent('''
            // Comment
            #header, #footer:
                margin: 0
                padding: 0
                font->
                    family: Verdana, sans-serif
                    size: .9em // Comment

                li:
                    padding: 0.4em// Comment
                    margin: 0.8em 0 0.8em

                    a:
                        background-image: url('abc.png')
                        &:hover:
                            background-color: red

                    h3:
                        background-image: url('http://test.com/abc.png')
                        font-size: 1.2em
                    p, div.p:
                        padding: 0.3em
                    p.meta:
                        text-align: right
                        color: #ddd
        '''))

        expected_result = dedent('''
            #header,
            #footer {
                margin: 0;
                padding: 0;
                font-family: Verdana, sans-serif;
                font-size: .9em;
            }
            #header li,
            #footer li {
                padding: 0.4em;
                margin: 0.8em 0 0.8em;
            }
            #header li a,
            #footer li a {
                background-image: url('abc.png');
            }
            #header li a:hover,
            #footer li a:hover {
                background-color: red;
            }
            #header li h3,
            #footer li h3 {
                background-image: url('http://test.com/abc.png');
                font-size: 1.2em;
            }
            #header li p,
            #header li div.p,
            #footer li p,
            #footer li div.p {
                padding: 0.3em;
            }
            #header li p.meta,
            #footer li p.meta {
                text-align: right;
                color: #ddd;
            }
        ''').lstrip().replace("    ", "\t")

        ccss.seek(0)
        self.assertEqual(cleancss.convert(ccss), expected_result)
コード例 #11
0
ファイル: server.py プロジェクト: rafaelreg/lpmc-site
 def get(self, css_path):
     css_path = os.path.join(os.path.dirname(__file__), "static", css_path) + ".ccss"
     with open(css_path, "r") as f:
         self.set_header("Content-Type", "text/css")
         self.write(cleancss.convert(f))
コード例 #12
0
ファイル: __init__.py プロジェクト: raylu/py-cleancss
    def test_01_convert(self):
        ccss = StringIO()
        ccss.write(dedent('''
            // Comment
            #header, #footer:
                margin: 0
                padding: 0
                font->
                    family: Verdana, sans-serif
                    size: .9em // Comment

                li:
                    padding: 0.4em// Comment
                    margin: 0.8em 0 0.8em

                    a:
                        background-image: url('abc.png')
                        &:hover:
                            background-color: red

                    h3:
                        background-image: url('http://test.com/abc.png')
                        font-size: 1.2em
                    p, div.p:
                        padding: 0.3em
                    p.meta:
                        text-align: right
                        color: #ddd
        '''))

        expected_result = dedent('''
            #header,
            #footer {
                margin: 0;
                padding: 0;
                font-family: Verdana, sans-serif;
                font-size: .9em;
            }
            #header li,
            #footer li {
                padding: 0.4em;
                margin: 0.8em 0 0.8em;
            }
            #header li a,
            #footer li a {
                background-image: url('abc.png');
            }
            #header li a:hover,
            #footer li a:hover {
                background-color: red;
            }
            #header li h3,
            #footer li h3 {
                background-image: url('http://test.com/abc.png');
                font-size: 1.2em;
            }
            #header li p,
            #header li div.p,
            #footer li p,
            #footer li div.p {
                padding: 0.3em;
            }
            #header li p.meta,
            #footer li p.meta {
                text-align: right;
                color: #ddd;
            }
        ''').lstrip().replace("    ", "\t")

        ccss.seek(0)
        self.assertEqual(cleancss.convert(ccss), expected_result)
コード例 #13
0
 def get(self, css_path):
     css_path = os.path.join(os.path.dirname(__file__), 'static',
                             css_path) + '.ccss'
     with open(css_path, 'r') as f:
         self.set_header('Content-Type', 'text/css')
         self.write(cleancss.convert(f))