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)
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)
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)
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)
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)
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))
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))
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'}
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)
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))
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)