Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(945)

Side by Side Diff: third_party/handlebar/handlebar.py

Issue 10804036: Extensions Docs Server: Internationalized samples (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: handlebar Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright 2012 Benjamin Kalman 1 # Copyright 2012 Benjamin Kalman
2 # 2 #
3 # Licensed under the Apache License, Version 2.0 (the "License"); 3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License. 4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at 5 # You may obtain a copy of the License at
6 # 6 #
7 # http://www.apache.org/licenses/LICENSE-2.0 7 # http://www.apache.org/licenses/LICENSE-2.0
8 # 8 #
9 # Unless required by applicable law or agreed to in writing, software 9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS, 10 # distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 while self.nextToken == Token.CHARACTER and \ 585 while self.nextToken == Token.CHARACTER and \
586 excluded.find(self.nextContents) == -1: 586 excluded.find(self.nextContents) == -1:
587 buf.append(self.nextContents) 587 buf.append(self.nextContents)
588 self.advance() 588 self.advance()
589 return buf.toString() 589 return buf.toString()
590 590
591 class Handlebar(object): 591 class Handlebar(object):
592 """ A handlebar template. 592 """ A handlebar template.
593 """ 593 """
594 def __init__(self, template): 594 def __init__(self, template):
595 self.source = template 595 self.source = unicode(template, 'utf-8')
cduvall 2012/07/23 21:04:20 This fix makes it render the footer, but this migh
not at google - send to devlin 2012/07/24 01:23:31 Yeah; as discussed in IRC, let's fix this at the F
cduvall 2012/07/24 21:22:46 Done.
596 tokens = TokenStream(template) 596 tokens = TokenStream(self.source)
597 self._topNode = self._parseSection(tokens) 597 self._topNode = self._parseSection(tokens)
598 if not self._topNode: 598 if not self._topNode:
599 raise ParseException("Template is empty", tokens.nextLine) 599 raise ParseException("Template is empty", tokens.nextLine)
600 if tokens.hasNext(): 600 if tokens.hasNext():
601 raise ParseException("There are still tokens remaining, " 601 raise ParseException("There are still tokens remaining, "
602 "was there an end-section without a start-section:", 602 "was there an end-section without a start-section:",
603 tokens.nextLine) 603 tokens.nextLine)
604 604
605 def _parseSection(self, tokens): 605 def _parseSection(self, tokens):
606 nodes = [] 606 nodes = []
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 def render(self, *contexts): 739 def render(self, *contexts):
740 """ Renders this template given a variable number of "contexts" to read 740 """ Renders this template given a variable number of "contexts" to read
741 out values from (such as those appearing in {{foo}}). 741 out values from (such as those appearing in {{foo}}).
742 """ 742 """
743 globalContexts = [] 743 globalContexts = []
744 for context in contexts: 744 for context in contexts:
745 globalContexts.append(context) 745 globalContexts.append(context)
746 renderState = RenderState(globalContexts, []) 746 renderState = RenderState(globalContexts, [])
747 self._topNode.render(renderState) 747 self._topNode.render(renderState)
748 return renderState.getResult() 748 return renderState.getResult()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698