def tiddler_as(self, tiddler): """ Transform the provided tiddler into an HTML representation of the tiddler packaged in a DIV. Render the content using the render_wikitext subsystem. Links to the tiddler in the wiki are provided. """ user = self.environ['tiddlyweb.usersign'] store = self.environ['tiddlyweb.store'] if tiddler.recipe: list_link = '/recipes/%s/tiddlers' % encode_name(tiddler.recipe) list_title = 'Tiddlers in Recipe %s' % tiddler.recipe else: list_link = '/bags/%s/tiddlers' % encode_name(tiddler.bag) list_title = 'Tiddlers in Bag %s' % tiddler.bag try: store.get(Bag(tiddler.bag)).policy.allows(user, 'manage') container_policy = True except PermissionsError: container_policy = False if not self.environ['tiddlyweb.space_settings'].get('index', None): space_link = self._space_link(tiddler) else: space_link = '' try: modifier_link = space_uri(self.environ, tiddler.modifier) except AttributeError: modifier_link = "" try: creator_link = space_uri(self.environ, tiddler.creator) except AttributeError: creator_link = "" html = render_wikitext(tiddler, self.environ) return send_template( self.environ, 'tiddler.html', { 'meta_keywords': ', '.join(tiddler.tags), 'meta_description': tiddler.title, 'title': '%s' % tiddler.title, 'tags': tiddler.tags, 'modifier_link': modifier_link, 'creator_link': creator_link, 'fields': tiddler.fields, 'html': html, 'list_link': list_link, 'list_title': list_title, 'space_link': space_link, 'tiddler': tiddler, 'container_policy': container_policy, 'tiddler_url': tiddler_url(self.environ, tiddler) })
def tiddler_as(self, tiddler): """ Transform the provided tiddler into an HTML representation of the tiddler packaged in a DIV. Render the content using the render_wikitext subsystem. Links to the tiddler in the wiki are provided. """ user = self.environ['tiddlyweb.usersign'] store = self.environ['tiddlyweb.store'] if tiddler.recipe: list_link = '/recipes/%s/tiddlers' % encode_name(tiddler.recipe) list_title = 'Tiddlers in Recipe %s' % tiddler.recipe else: list_link = '/bags/%s/tiddlers' % encode_name(tiddler.bag) list_title = 'Tiddlers in Bag %s' % tiddler.bag try: store.get(Bag(tiddler.bag)).policy.allows(user, 'manage') container_policy = True except PermissionsError: container_policy = False if not self.environ['tiddlyweb.space_settings'].get('index', None): space_link = self._space_link(tiddler) else: space_link = '' try: modifier_link = space_uri(self.environ, tiddler.modifier) except AttributeError: modifier_link = "" try: creator_link = space_uri(self.environ, tiddler.creator) except AttributeError: creator_link = "" html = render_wikitext(tiddler, self.environ) return send_template(self.environ, 'tiddler.html', { 'meta_keywords': ', '.join(tiddler.tags), 'meta_description': tiddler.title, 'title': '%s' % tiddler.title, 'tags': tiddler.tags, 'modifier_link': modifier_link, 'creator_link': creator_link, 'fields': tiddler.fields, 'html': html, 'list_link': list_link, 'list_title': list_title, 'space_link': space_link, 'tiddler': tiddler, 'container_policy': container_policy, 'tiddler_url': tiddler_url(self.environ, tiddler)})
def testspace_uri(): environ = {} environ['tiddlyweb.config'] = {} environ['tiddlyweb.config']['server_host'] = { 'host': 'example.com', 'scheme': 'http', 'port': '8080', } server_host = environ['tiddlyweb.config']['server_host'] space_name = 'howdy' assert space_uri(environ, space_name) == 'http://howdy.example.com:8080/' server_host['port'] = '80' assert space_uri(environ, space_name) == 'http://howdy.example.com/' server_host['port'] = '443' server_host['scheme'] = 'https' assert space_uri(environ, space_name) == 'https://howdy.example.com/' server_host['port'] = '9443' assert space_uri(environ, space_name) == 'https://howdy.example.com:9443/'
def _space_link(self, tiddler): """ Create a link back to this tiddler in its space. """ if tiddler.recipe: link = _encode_space_link(tiddler) elif _space_bag(tiddler.bag): space_name = tiddler.bag.split('_', 1)[0] space_link_uri = space_uri(self.environ, space_name).rstrip('/') link = _encode_space_link(tiddler) link = '%s%s' % (space_link_uri, link) else: return '' return '%s%s' % (self._server_prefix(), link)
def _space_link(self, tiddler): """ Create a link back to this tiddler in its space. """ if tiddler.recipe: link = _encode_space_link(tiddler) elif space_bag(tiddler.bag): space_name = tiddler.bag.split('_', 1)[0] space_link_uri = space_uri(self.environ, space_name).rstrip('/') link = _encode_space_link(tiddler) link = '%s%s' % (space_link_uri, link) else: return '' return '%s%s' % (self._server_prefix(), link)
def testspace_uri(): environ = {} environ['tiddlyweb.config'] = {} environ['tiddlyweb.config']['server_host'] = { 'host': 'example.com', 'scheme': 'http', 'port': '8080', } server_host = environ['tiddlyweb.config']['server_host'] space_name = 'howdy' assert space_uri(environ, space_name) == 'http://howdy.example.com:8080/' server_host['port'] = '80' assert space_uri(environ, space_name) == 'http://howdy.example.com/' server_host['port'] = '443' server_host['scheme'] = 'https' assert space_uri(environ, space_name) == 'https://howdy.example.com/' server_host['port'] = '9443' assert space_uri(environ, space_name) == 'https://howdy.example.com:9443/'
def _space_link(self, tiddler): """ Create a link back to this tiddler in its space. """ if tiddler.recipe: link = self._encode_space_link(tiddler) elif self._space_bag(tiddler.bag): space_name = tiddler.bag.split('_', 1)[0] space_link_uri = space_uri(self.environ, space_name).rstrip('/') link = self._encode_space_link(tiddler) link = '%s%s' % (space_link_uri, link) else: return '' space_link = """ <div class="tiddlerslink"> <a href="%s%s" title="space link">%s in space</a> </div> """ % (self._server_prefix(), link, tiddler.title) return space_link
def _space_link(self, tiddler): """ Create a link back to this tiddler in its space. """ if tiddler.recipe: link = self._encode_space_link(tiddler) elif self._space_bag(tiddler.bag): space_name = tiddler.bag.split('_', 1)[0] space_link_uri = space_uri(self.environ, space_name).rstrip('/') link = self._encode_space_link(tiddler) link = '%s%s' % (space_link_uri, link) else: return '' space_link = """ <div class="tiddlerslink"> <a href="%s%s" title="space link">%s in space</a> </div> """ % (self._server_prefix(), link, tiddler.title) return space_link
tiddlers = store.search(_search_string(username)) tiddlers_list = readable_tiddlers_by_bag(store, tiddlers, usersign) avatar_path = '/recipes/%s_public/tiddlers/SiteIcon' % username start_response('200 OK', [ ('Content-Type', 'text/html; charset=UTF-8')]) return send_template(environ, 'tsprofile.html', { 'css': ['/bags/common/tiddlers/profile.css'], 'title': 'Profile for %s' % username, 'username': username, 'activity_feed': activity_feed, 'avatar_path': avatar_path, 'space_uri': space_uri(environ, username), 'profile': profile_text, 'tiddler_url': tiddler_url, 'environ': environ, 'tiddlers': tiddlers_list}) def host_meta(environ, start_response): """ Send the host_meta information, so webfinger info can be found. """ http_host, host_url = determine_host(environ) if http_host != host_url: # Or should it be a 302? raise HTTP404('No host-meta at this host: %s' % http_host)
bag.policy.allows(usersign, 'read') tiddlers_list.append(_tiddler_in_list(tiddler)) bag_readable[tiddler.bag] = True except(ForbiddenError, UserRequiredError): bag_readable[tiddler.bag] = False profile_tiddlers = '\n'.join(tiddlers_list) avatar_path = '/recipes/%s_public/tiddlers/SiteIcon' % username start_response('200 OK', [ ('Content-Type', 'text/html; charset=UTF-8')]) environ['tiddlyweb.title'] = 'Profile for %s' % username return [PROFILE_TEMPLATE % {'username': username, 'avatar_path': avatar_path, 'space_uri': space_uri(environ, username), 'profile': profile_text, 'tiddlers': profile_tiddlers}] def host_meta(environ, start_response): """ Send the host_meta information, so webfinger info can be found. """ http_host, host_url = determine_host(environ) if http_host != host_url: # Or should it be a 302? raise HTTP404('No host-meta at this host: %s' % http_host) start_response('200 OK', [ ('Content-Type', 'application/xrd+xml')])
tiddlers = store.search(_search_string(username)) tiddlers_list = readable_tiddlers_by_bag(store, tiddlers, usersign) avatar_path = '/recipes/%s_public/tiddlers/SiteIcon' % username start_response('200 OK', [('Content-Type', 'text/html; charset=UTF-8')]) return send_template( environ, 'tsprofile.html', { 'css': ['/bags/common/tiddlers/profile.css'], 'title': 'Profile for %s' % username, 'username': username, 'activity_feed': activity_feed, 'avatar_path': avatar_path, 'space_uri': space_uri(environ, username), 'profile': profile_text, 'tiddler_url': tiddler_url, 'environ': environ, 'tiddlers': tiddlers_list }) def host_meta(environ, start_response): """ Send the host_meta information, so webfinger info can be found. """ http_host, host_url = determine_host(environ) if http_host != host_url: # Or should it be a 302? raise HTTP404('No host-meta at this host: %s' % http_host)
def tiddler_as(self, tiddler): """ Transform the provided tiddler into an HTML representation of the tiddler packaged in a DIV. Render the content using the render_wikitext subsystem. Links to the tiddler in the wiki are provided. """ tiddlers_url = (self.environ.get('SCRIPT_NAME', '') + self.environ.get('PATH_INFO', '')) template_name = 'friendlytiddler.html' if '/tiddlers/' in tiddlers_url: template_name = 'tiddler.html' revision = False if '/revisions/' in tiddlers_url: revision = True user = self.environ['tiddlyweb.usersign'] store = self.environ['tiddlyweb.store'] if tiddler.recipe: list_link = '/recipes/%s/tiddlers' % encode_name(tiddler.recipe) list_title = 'Tiddlers in Recipe %s' % tiddler.recipe else: list_link = '/bags/%s/tiddlers' % encode_name(tiddler.bag) list_title = 'Tiddlers in Bag %s' % tiddler.bag tiddlerurl = tiddler_url(self.environ, tiddler) if revision: list_link = '%s/%s/revisions' % (list_link, encode_name(tiddler.title)) list_title = 'Revisions of %s' % tiddler.title tiddlerurl = '%s/revisions/%s' % (tiddlerurl, encode_name('%s' % tiddler.revision)) try: store.get(Bag(tiddler.bag)).policy.allows(user, 'manage') container_policy = True except PermissionsError: container_policy = False if not self.environ['tiddlyweb.space_settings'].get('index', None): space_link, space_name = self._space_link(tiddler) else: space_link = '' space_name = '' try: modifier_link = space_uri(self.environ, tiddler.modifier) except AttributeError: modifier_link = "" try: creator_link = space_uri(self.environ, tiddler.creator) except AttributeError: creator_link = "" links = self.environ.get('tiddlyweb.config', {}).get('extension_types', {}).keys() html = render_wikitext(tiddler, self.environ) return send_template(self.environ, template_name, { 'meta_keywords': ', '.join(tiddler.tags), 'meta_description': tiddler.title, 'title': '%s' % tiddler.title, 'tags': tiddler.tags, 'modifier_link': modifier_link, 'creator_link': creator_link, 'fields': tiddler.fields, 'html': html, 'list_link': list_link, 'list_title': list_title, 'space_link': space_link, 'space_name': space_name, 'tiddler': tiddler, 'container_policy': container_policy, 'links': links, 'tiddler_url': tiddlerurl})
def call_space_uri(tiddler): space_name = tiddler.recipe.split('_', 1)[0] return space_uri(self.environ, space_name)