def html_export(self, projectid, writingid): user = self.get_login_user() project = self.get_project(projectid) if not project: self.error(404) self.render("404.html", info='Project with key <em>%s</em> not found' % projectid) return writing = self.get_writing(project, writingid) if not writing: self.error(404) self.render("404.html", info='Writing with key <em>%s</em> not found' % writingid) return if not (writing.is_open_p() or (user and project.user_is_author(user))): self.render("project_page_not_visible.html", project=project, user=user) return last_revision = self.get_last_revision(writing) content = filters.md("# " + writing.title + "\n" + last_revision.content) self.render("html_export.html", title=writing.title, content=content)
def rendered_contents(self): def repl(m): tixtype, tixnum = m.groups() app = {'dg': dupeguru, 'mg': moneyguru, 'pm': pdfmasher}[tixtype] return "[#{}]({})".format(tixnum, app.tixurl.format(tixnum)) re_tix = re.compile(r'#(dg|mg|pm)(\d+)') contents = re_tix.sub(repl, self.contents) return md(contents)
def rendered_summary(self): if self.summary_paragraphs > 0: paragraphs = self.contents.split('\n\n') summary = '\n\n'.join(paragraphs[:self.summary_paragraphs]) summary += '\n[More](http://www.hardcoded.net/articles/{})'.format(self.name) else: summary = self.contents return md(summary)
def html_export(self, projectid, writingid): user = self.get_login_user() project = self.get_project(projectid) if not project: self.error(404) self.render("404.html", info = 'Project with key <em>%s</em> not found' % projectid) return writing = self.get_writing(project, writingid) if not writing: self.error(404) self.render("404.html", info = 'Writing with key <em>%s</em> not found' % writingid) return if not (writing.is_open_p() or (user and project.user_is_author(user))): self.render("project_page_not_visible.html", project = project, user = user) return last_revision = self.get_last_revision(writing) content = filters.md("# " + writing.title + "\n" + last_revision.content) self.render("html_export.html", title = writing.title, content = content)
def __init__(self, data): self.name = data['name'] self.short_name = data.get('shortname', self.name) self.logo_name = data['logo'] self.weburl = data['weburl'] self._version = data.get('version') dls = data['downloads'] if 'changelog' in data: self.changelog_path = data['changelog'] if not op.isabs(self.changelog_path): self.changelog_path = op.join(HSGIT_ROOT, self.changelog_path) if self.changelog_path.endswith('yaml'): changelogs = yaml.load(open(self.changelog_path)) else: changelogs = read_changelog_file(self.changelog_path) self.changelogs = [AppChangelog(self, log) for log in changelogs] else: self.changelogs = [] self.downloads = [] for p, dlitem in dls.items(): if isinstance(dlitem, dict): fp = dlitem['href'] reqs = md(dlitem.get('requirements', '')) reqs = reqs.replace('{old}', '<a href="#oldversions">older</a>') else: fp = dlitem reqs = None if fp.startswith('http'): download = AppUrl(fp, p) else: download = AppDownload(self, p, fp) download.requirements = reqs self.downloads.append(download) DL_ORDER = ['osx', 'deball', 'win64', 'win', 'src'] sort_key = lambda dl: DL_ORDER.index(dl.platform) self.downloads.sort(key=sort_key) self.tixurl = data['tixurl'] self.tixfunc = tixgen(self.tixurl)
def post(self): content = self.request.get("content") wiki_p_id = self.request.get("wiki_p_id") self.write(filters.md(content, wiki_p_id))
def rendered_contents(self): return md(self.content)
def post(self): content = self.request.get("content") self.write(filters.md(content))
def rendered_contents(self): return md(self.rendered_tix())