예제 #1
0
    def post(self):
        title = self.get_argument('title')
        content_md = self.get_argument('content')
        pattern = r'\[[^\[\]]+\]'
        labels = re.findall(pattern, self.get_argument('labels'))
        content_html = markdown.markdown(content_md, ['codehilite'])

        try:
            article_id = Article.create(self.db, title, content_md, content_html)
            for label in labels:
                detail = label[1:-1].strip()
                Label.create(self.db, article_id, detail)

            self.redirect('/', permanent=True)
        except:
            error = "The post data invalid"
            self.render('error.html', error=error, home_title=options.home_title)
예제 #2
0
    def listLabelsInPage(self, page):
        """List all Labels available for a given pageId (can be also used to list Labels for any ContentEntityObject ID)

        @type page: string, or Page object
        @param page: page id, or Page object
        @rtype: list of Labels
        @return: Labels
        """
        return tuple(Label.create(labelDict, self._modelDataManager) for labelDict in self.pm_getSpaceManager().getLabelsById(self._unbox(page)))
예제 #3
0
    def listLabelsInSpace(self, space, maxLabelsToReturn = 20):
        """List all Labels available for a given Space

        @type space: string, or Space object
        @param space: space key, or Space object
        @param maxLabelsToReturn: maximum number of labels to return
        @rtype: list of Labels
        @return: Labels
        """
        return tuple(Label.create(labelDict, self._modelDataManager) for labelDict in self.pm_getSpaceManager().getLabelsInSpace(self._unbox(space), maxLabelsToReturn))
예제 #4
0
    def listLabelsInPage(self, page):
        """List all Labels available for a given pageId (can be also used to list Labels for any ContentEntityObject ID)

        @type page: string, or Page object
        @param page: page id, or Page object
        @rtype: list of Labels
        @return: Labels
        """
        return tuple(
            Label.create(labelDict, self._modelDataManager)
            for labelDict in self.pm_getSpaceManager().getLabelsById(
                self._unbox(page)))
예제 #5
0
    def listLabelsInSpace(self, space, maxLabelsToReturn=20):
        """List all Labels available for a given Space

        @type space: string, or Space object
        @param space: space key, or Space object
        @param maxLabelsToReturn: maximum number of labels to return
        @rtype: list of Labels
        @return: Labels
        """
        return tuple(
            Label.create(labelDict, self._modelDataManager)
            for labelDict in self.pm_getSpaceManager().getLabelsInSpace(
                self._unbox(space), maxLabelsToReturn))