code: def search_for(self, query, include_draft=False):
          
          query = query.lower()
          if not query:
              return []
  
          def contains_query_keyword(post_or_page):
              contains = query in post_or_page.title.lower() \
                         or query in Markup(
                  get_parser(post_or_page.format).parse_whole(
                      post_or_page.raw_content)
              ).striptags().lower()
              return contains
  
          return filter(contains_query_keyword,
                        chain(self.get_posts(include_draft=include_draft),
                              self.get_pages(include_draft=include_draft)
                              if current_app.config[
                                  'ALLOW_SEARCH_PAGES'] else []))
docs: Search for a query text.
  
          :param query: keyword to query
          :param include_draft: return draft posts/pages or not
          :return: an iterable object of posts and pages (if allowed).