def display_in_xml(self, out): #get template path = os.path.join(os.path.dirname(__file__), 'empty.xml') f = open(path) try: data = f.read() finally: f.close() path = os.path.join(os.path.dirname(__file__), 'item.xml') f = open(path) try: item = f.read() finally: f.close() #find storearea items = '' tiddlers = [] for t in self.tiddlers: t = Tiddler.get(t) if t and t.modified: tiddlers.append((t.modified, t)) else: tiddlers.append((datetime.today(), t)) tiddlers.sort() tiddlers.reverse() for (modified, t) in tiddlers: if t: if t.html: text = util.html_escape(t.html) else: text = util.html_escape(t.text) items += item % { 'title': t.title, 'text': text, 'tag': t.tags, 'link': config.TH_url + self.owner.username + '/' + config.namespace_name + '/' + self.namespace.name + '/' + config.tiddler_name + '/' + util.url_encode(t.title) + '.html', 'date': modified.strftime("%Y-%m-%d %H:%M"), } data = data % { 'title': self.title, 'link': 'http://bidix.appspot.com/', 'description': self.subtitle, 'username': self.owner.username, 'pubDate': datetime.utcnow().strftime("%Y-%m-%d %H:%M"), 'lastBuildDate': datetime.utcnow().strftime("%Y-%m-%d %H:%M"), 'items': items, } out.write(data)
def display_in_html(self, out, url): #get template path = os.path.join(os.path.dirname(__file__), 'empty.html') f = open(path) try: data = f.read() finally: f.close() #Edit title and subtitle in html and shadow titlers data = self.__replace_chunk(data, "<title>", "</title>", self.title + ' - ' + self.subtitle) data = re.sub(r'SiteTitle: "My TiddlyWiki"', 'SiteTitle: "'+self.title+'"', data) data = re.sub(r'SiteSubtitle: "a reusable non-linear personal web notebook"', 'SiteSubtitle: "'+self.subtitle+'"', data ) data = re.sub(r'SiteUrl: "http://www\.tiddlywiki\.com/"', 'SiteUrl: "'+url+'"', data ) #Update markupBlock data = self.__update_markup_block(data, "PRE-HEAD","MarkupPreHead") data = self.__update_markup_block(data, "POST-HEAD","MarkupPostHead") data = self.__update_markup_block(data, "PRE-BODY","MarkupPreBody") data = self.__update_markup_block(data, "POST-SCRIPT","MarkupPostBody") #find storearea and insert tiddlers match = re.match("^(.*?<div id=\"storeArea\">).*?(</div>.*?<!--POST-STOREAREA-->.*?)$", data, re.DOTALL) if match: begin = match.group(1) end = match.group(2) out.write(begin) tiddlers = {} for t in self.tiddlers: if t: tiddler = Tiddler.get(t) if tiddler: tiddlers[tiddler.title] = tiddler # add dynamic tiddlywiki if 'UploadTiddlerPlugin' not in tiddlers: tiddlers['UploadTiddlerPlugin'] = Namespace.get_tiddler('UploadTiddlerPlugin') tiddler = None if self.namespace.own_by(User.get_current_user()): tiddler = Tiddler.create_or_update(self.namespace, 'zzTiddlyHomeTweaks', self.owner.username, tags='systemConfig excludeLists excludeSearch', newTitle='zzTiddlyHomeTweaks', text= config.tweaks_tiddler%{'username': self.owner.username, 'filename': self.name, 'storeUrl': config.storeTiddler_url}) tiddlers['zzTiddlyHomeTweaks'] = tiddler keys = tiddlers.keys() keys.sort() for ti in keys: if ti: out.write(tiddlers[ti].displayInStorearea(self.name)) out.write(end) if tiddler: tiddler.delete() else: raise Error("Maformed empty.html file")
def display_in_xml(self, out): #get template path = os.path.join(os.path.dirname(__file__), 'empty.xml') f = open(path) try: data = f.read() finally: f.close() path = os.path.join(os.path.dirname(__file__), 'item.xml') f = open(path) try: item = f.read() finally: f.close() #find storearea items = '' tiddlers = [] for t in self.tiddlers: t = Tiddler.get(t) if t and t.modified: tiddlers.append((t.modified, t)) else: tiddlers.append((datetime.today(),t)) tiddlers.sort() tiddlers.reverse() for (modified, t) in tiddlers: if t: if t.html: text = util.html_escape(t.html) else: text = util.html_escape(t.text) items += item%{ 'title': t.title, 'text': text, 'tag': t.tags, 'link': config.TH_url+self.owner.username+'/'+config.namespace_name+'/'+self.namespace.name+'/'+config.tiddler_name+'/'+util.url_encode(t.title) +'.html', 'date': modified.strftime("%Y-%m-%d %H:%M"), } data = data%{ 'title': self.title, 'link': 'http://bidix.appspot.com/', 'description': self.subtitle, 'username': self.owner.username, 'pubDate': datetime.utcnow().strftime("%Y-%m-%d %H:%M"), 'lastBuildDate': datetime.utcnow().strftime("%Y-%m-%d %H:%M"), 'items': items, } out.write(data)
def display_in_html(self, out, url): #get template path = os.path.join(os.path.dirname(__file__), 'empty.html') f = open(path) try: data = f.read() finally: f.close() #Edit title and subtitle in html and shadow titlers data = self.__replace_chunk(data, "<title>", "</title>", self.title + ' - ' + self.subtitle) data = re.sub(r'SiteTitle: "My TiddlyWiki"', 'SiteTitle: "' + self.title + '"', data) data = re.sub( r'SiteSubtitle: "a reusable non-linear personal web notebook"', 'SiteSubtitle: "' + self.subtitle + '"', data) data = re.sub(r'SiteUrl: "http://www\.tiddlywiki\.com/"', 'SiteUrl: "' + url + '"', data) #Update markupBlock data = self.__update_markup_block(data, "PRE-HEAD", "MarkupPreHead") data = self.__update_markup_block(data, "POST-HEAD", "MarkupPostHead") data = self.__update_markup_block(data, "PRE-BODY", "MarkupPreBody") data = self.__update_markup_block(data, "POST-SCRIPT", "MarkupPostBody") #find storearea and insert tiddlers match = re.match( "^(.*?<div id=\"storeArea\">).*?(</div>.*?<!--POST-STOREAREA-->.*?)$", data, re.DOTALL) if match: begin = match.group(1) end = match.group(2) out.write(begin) tiddlers = {} for t in self.tiddlers: if t: tiddler = Tiddler.get(t) if tiddler: tiddlers[tiddler.title] = tiddler # add dynamic tiddlywiki if 'UploadTiddlerPlugin' not in tiddlers: tiddlers['UploadTiddlerPlugin'] = Namespace.get_tiddler( 'UploadTiddlerPlugin') tiddler = None if self.namespace.own_by(User.get_current_user()): tiddler = Tiddler.create_or_update( self.namespace, 'zzTiddlyHomeTweaks', self.owner.username, tags='systemConfig excludeLists excludeSearch', newTitle='zzTiddlyHomeTweaks', text=config.tweaks_tiddler % { 'username': self.owner.username, 'filename': self.name, 'storeUrl': config.storeTiddler_url }) tiddlers['zzTiddlyHomeTweaks'] = tiddler keys = tiddlers.keys() keys.sort() for ti in keys: if ti: out.write(tiddlers[ti].displayInStorearea(self.name)) out.write(end) if tiddler: tiddler.delete() else: raise Error("Maformed empty.html file")