Example #1
0
	def __update_markup_block(self, source, block_name, tiddler_name):
		# tiddler in this tiddlywiki
		tiddler = Namespace.get_tiddler(self.name+"::"+tiddler_name, self.owner.username, self.namespace.name)
		if not tiddler:
			# tiddler in Namespace
			tiddler = Namespace.get_tiddler(tiddler_name, self.owner.username, self.namespace.name)
		if not tiddler:
			# tiddler in Shadow
			tiddler = Namespace.get_tiddler(tiddler_name)
		if tiddler:
			source = self.__replace_chunk(
				source,
				"<!--%s-START-->"%block_name,
				"<!--%s-END-->"%block_name,
				"\n" + tiddler.text + "\n")
		return source		
Example #2
0
 def __update_markup_block(self, source, block_name, tiddler_name):
     # tiddler in this tiddlywiki
     tiddler = Namespace.get_tiddler(self.name + "::" + tiddler_name,
                                     self.owner.username,
                                     self.namespace.name)
     if not tiddler:
         # tiddler in Namespace
         tiddler = Namespace.get_tiddler(tiddler_name, self.owner.username,
                                         self.namespace.name)
     if not tiddler:
         # tiddler in Shadow
         tiddler = Namespace.get_tiddler(tiddler_name)
     if tiddler:
         source = self.__replace_chunk(source,
                                       "<!--%s-START-->" % block_name,
                                       "<!--%s-END-->" % block_name,
                                       "\n" + tiddler.text + "\n")
     return source
Example #3
0
	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")
Example #4
0
    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")