def to_datetime(value): if isinstance(value, datetime.date) or isinstance(value, datetime.datetime): return value if isinstance(value, int) or isinstance(value, float): return datetime.datetime.utcfromtimestamp(value) if isinstance(value, basestring): try: import dateutil.parser except ImportError: from strange_case import require_package require_package('python-dateutil') return dateutil.parser.parse(value) raise TypeError('Invalid argument {!r} passed to `to_datetime`'.format(value))
def to_datetime(value): if isinstance(value, datetime.date) or isinstance(value, datetime.datetime): return value if isinstance(value, int) or isinstance(value, float): return datetime.datetime.utcfromtimestamp(value) if isinstance(value, str): try: import dateutil.parser except ImportError: from strange_case import require_package require_package('python-dateutil') return dateutil.parser.parse(value) raise TypeError('Invalid argument {!r} passed to `to_datetime`'.format(value))
from __future__ import absolute_import import re try: import misaka as m # from misaka import Markdown, HtmlRenderer, EXT_FENCED_CODE, EXT_NO_INTRA_EMPHASIS, HTML_SMARTYPANTS except ImportError: from strange_case import require_package require_package('misaka') import jinja2 import jinja2.ext from plywood.env import PlywoodEnv try: import pygments as p from pygments.formatters import HtmlFormatter from pygments.lexers import get_lexer_by_name except ImportError: from strange_case import recommend_package recommend_package('pygments', 'Pygments is used for syntax highlighting code blocks') slug_remove = re.compile('\W+') unidecode = None try: import unidecode except ImportError: from strange_case import recommend_package recommend_package( 'unidecode', 'Unidecode is used to convert headers with non-ASCII characters into ids for <h1> tags' )
import sys import os from shutil import copy2 try: from PIL import Image except ImportError: from strange_case import require_package require_package('PIL') from strange_case.nodes import AssetNode from strange_case.registry import Registry from strange_case.configurators import configurate class ImageNode(AssetNode): """ Copies the image, and optionally creates thumbnails for the image. The thumbnails are available as image_node.{thumbnail_name} """ def generate_file(self, site, source_path, target_path): if 'size' in self.config: if not self['skip']: image = Image.open(source_path) size = self.config['size'] if isinstance(size, basestring): size = self.config['size'].split('x') if len(size) == 1: size = [size[0], size[0]] elif isinstance(size, int): size = [size, size]
""" Provides a pluralization filter, using the inflect library. """ from __future__ import absolute_import try: import inflect except ImportError: from strange_case import require_package require_package('inflect') __engine = inflect.engine() pluralize = __engine.plural
import jinja2 import jinja2.ext try: import markdown2 except ImportError: from strange_case import require_package require_package('Markdown2') try: import pygments except ImportError: from strange_case import recommend_package recommend_package('pygments', 'Pygments is used for syntax highlighting code blocks') markdowner = markdown2.Markdown(extras=["fenced-code-blocks", "header-ids", "code-friendly"]) # markdown filter def markdown(markdown): return markdowner.convert(markdown).strip() # markdown block class MarkdownExtension(jinja2.ext.Extension): tags = ('markdown',) def parse(self, parser): lineno = parser.stream.next().lineno body = parser.parse_statements(
from __future__ import absolute_import import jinja2 import jinja2.ext try: from scss import Scss except ImportError: from strange_case import require_package require_package('PySCSS') from strange_case.registry import Registry from strange_case.nodes import AssetNode scss_compiler = Scss().compile class ScssExtension(jinja2.ext.Extension): tags = set(['scss']) def __init__(self, environment): super(ScssExtension, self).__init__(environment) def parse(self, parser): lineno = parser.stream.next().lineno body = parser.parse_statements(['name:endscss'], drop_needle=True) return jinja2.nodes.CallBlock(self.call_method('_scss_support'), [], [], body).set_lineno(lineno) def _scss_support(self, caller): return scss_compiler(caller()).strip()
from __future__ import absolute_import import jinja2 import jinja2.ext try: import sass except ImportError: from strange_case import require_package require_package('libsass') from strange_case.registry import Registry from strange_case.nodes import AssetNode def compile_file(file): return sass.compile(filename=file, output_style='compressed') def compile_string(string): return sass.compile(string=string, output_style='compressed') class ScssExtension(jinja2.ext.Extension): tags = set(['scss']) def __init__(self, environment): super(ScssExtension, self).__init__(environment) def parse(self, parser): lineno = next(parser.stream).lineno body = parser.parse_statements( ['name:endscss'], drop_needle=True
from __future__ import absolute_import import re import jinja2 import jinja2.ext try: import misaka as m # from misaka import Markdown, HtmlRenderer, EXT_FENCED_CODE, EXT_NO_INTRA_EMPHASIS, HTML_SMARTYPANTS except ImportError: from strange_case import require_package require_package('misaka') try: import pygments as p from pygments.formatters import HtmlFormatter from pygments.lexers import get_lexer_by_name except ImportError: from strange_case import recommend_package recommend_package('pygments', 'Pygments is used for syntax highlighting code blocks') slug_remove = re.compile('\W+') unidecode = None try: import unidecode except ImportError: from strange_case import recommend_package recommend_package('unidecode', 'Unidecode is used to convert headers with non-ASCII characters into ids for <h1> tags') def sluggify(s): if unidecode: s = unidecode.unidecode(s)
from __future__ import absolute_import import jinja2 import jinja2.ext try: from scss import Scss except ImportError: from strange_case import require_package require_package('PySCSS') from strange_case.registry import Registry from strange_case.nodes import AssetNode scss_compiler = Scss().compile class ScssExtension(jinja2.ext.Extension): tags = set(['scss']) def __init__(self, environment): super(ScssExtension, self).__init__(environment) def parse(self, parser): lineno = parser.stream.next().lineno body = parser.parse_statements( ['name:endscss'], drop_needle=True ) return jinja2.nodes.CallBlock( self.call_method('_scss_support'), [],
from __future__ import absolute_import import sys import jinja2 import jinja2.ext try: import clevercss except ImportError: from strange_case import require_package require_package('CleverCSS') from strange_case.registry import Registry from strange_case.nodes import AssetNode clevercss_compiler = clevercss.convert class CleverCssExtension(jinja2.ext.Extension): tags = set(['clevercss']) def __init__(self, environment): super(CleverCssExtension, self).__init__(environment) def parse(self, parser): lineno = next(parser.stream).lineno body = parser.parse_statements( ['name:endclevercss'], drop_needle=True ) return jinja2.nodes.CallBlock( self.call_method('_clevercss_support'), [],
import sys import os from shutil import copy2 try: from PIL import Image except ImportError: from strange_case import require_package require_package('Pillow') from strange_case.nodes import AssetNode from strange_case.registry import Registry from strange_case.configurators import configurate class ImageNode(AssetNode): """ Copies the image, and optionally creates thumbnails for the image. The thumbnails are available as image_node.{thumbnail_name} """ def generate_file(self, site, source_path, target_path): if 'size' in self.config: if not self['skip']: image = Image.open(source_path) size = self.config['size'] if isinstance(size, str): size = self.config['size'].split('x') if len(size) == 1: size = [size[0], size[0]] elif isinstance(size, int): size = [size, size]
import jinja2 import jinja2.ext try: import clevercss except ImportError: from strange_case import require_package require_package('CleverCSS') from strange_case.registry import Registry from strange_case.nodes import AssetNode clevercss_compiler = clevercss.convert class CleverCssExtension(jinja2.ext.Extension): tags = set(['clevercss']) def __init__(self, environment): super(CleverCssExtension, self).__init__(environment) def parse(self, parser): lineno = parser.stream.next().lineno body = parser.parse_statements( ['name:endclevercss'], drop_needle=True ) return jinja2.nodes.CallBlock( self.call_method('_clevercss_support'), [], [], body
import jinja2 import jinja2.ext try: import markdown2 except ImportError: from strange_case import require_package require_package('Markdown2') try: import pygments except ImportError: from strange_case import recommend_package recommend_package('pygments') markdowner = markdown2.Markdown(extras=["fenced-code-blocks", "header-ids", "code-friendly"]) # markdown filter def markdown(markdown): return markdowner.convert(markdown).strip() # markdown block class MarkdownExtension(jinja2.ext.Extension): tags = ('markdown',) def parse(self, parser): lineno = parser.stream.next().lineno body = parser.parse_statements(