コード例 #1
0
ファイル: expressions.py プロジェクト: webmaven/publicservice
    def output(self, string):
        """String output; supports 'structure' keyword.
        
        >>> class MockExpressionTranslator(ExpressionTranslator):
        ...     def validate(self, string):
        ...         return True
        ...
        ...     def translate(self, string):
        ...         return types.value(string)

        >>> output = MockExpressionTranslator().output

        >>> output("context/title")
        escape(value('context/title'),)

        >>> output("structure context/title")
        value('context/title')        
        """
        
        if string.startswith('structure '):
            return self.expression(string[len('structure')+1:])
        
        expression = self.expression(string)

        if isinstance(expression, types.parts):
            return types.escape(expression)

        return types.escape((expression,))
コード例 #2
0
    def output(self, string):
        """String output; supports 'structure' keyword.
        
        >>> class MockExpressionTranslator(ExpressionTranslator):
        ...     def translate(self, string, escape=None):
        ...         if string: return types.value(string)

        >>> output = MockExpressionTranslator().output

        >>> output("context/title")
        escape(value('context/title'),)

        >>> output("context/pretty_title_or_id|context/title")
        escape(value('context/pretty_title_or_id'), value('context/title'))

        >>> output("structure context/title")
        value('context/title')        

        >>> output(" structure context/title")
        value('context/title')

        """

        string = string.lstrip(' ')
        if string.startswith('structure '):
            return self.tales(string[len('structure'):])
        
        expression = self.tales(string)

        if isinstance(expression, types.parts):
            return types.escape(expression)

        return types.escape((expression,))
コード例 #3
0
ファイル: language.py プロジェクト: webmaven/publicservice
        def tail(self):
            tail = self.element.tail
            if tail is not None:
                if self.element.strip_text:
                    parent = self.element.getparent()
                    if parent is not None and parent.strip_text and parent[
                            -1] is self.element:
                        tail = tail.rstrip('\n ')

                parent = self.element.getparent()
                if parent is not None and not parent.node._interpolation_enabled:
                    return (tail, )

                parts = self.element.translator.split(tail)
                if self.element.tag == '{http://www.w3.org/1999/xhtml}cdata':
                    return parts

                if not self._interpolation_escape:
                    return parts

                return tuple(
                    isinstance(part, types.expression) and types.escape(part) or \
                    self.element.meta_structure is True and part or \
                    utils.htmlescape(part) for part in parts)

            return ()
コード例 #4
0
ファイル: language.py プロジェクト: JsonChiu/publicservice
        def tail(self):
            tail = self.element.tail
            if tail is not None:
                if self.element.strip_text:
                    parent = self.element.getparent()
                    if parent is not None and parent.strip_text and parent[-1] is self.element:
                        tail = tail.rstrip('\n ')

                parent = self.element.getparent()
                if parent is not None and not parent.node._interpolation_enabled:
                    return (tail,)

                parts = self.element.translator.split(tail)
                if self.element.tag == '{http://www.w3.org/1999/xhtml}cdata':
                    return parts

                if not self._interpolation_escape:
                    return parts

                return tuple(
                    isinstance(part, types.expression) and types.escape(part) or \
                    self.element.meta_structure is True and part or \
                    utils.htmlescape(part) for part in parts)

            return ()
コード例 #5
0
ファイル: language.py プロジェクト: webmaven/publicservice
 def content(self):
     content = self._content
     if content is not None:
         if isinstance(content, types.escape):
             return types.escape((types.value(self.content_symbol), ))
         return types.parts((types.value(self.content_symbol), ))
コード例 #6
0
ファイル: language.py プロジェクト: JsonChiu/publicservice
 def content(self):
     content = self._content
     if content is not None:
         if isinstance(content, types.escape):
             return types.escape((types.value(self.content_symbol),))
         return types.parts((types.value(self.content_symbol),))