Exemple #1
0
def rst_reader():
    "Finds rst posts, parses them and loads into the db."

    for post in find_files(get_blog_dir(), ['.rst']):
        print('Processing {0}'.format(post))
        with open(post) as p:
            parsed = parse_rst(p.read())

            generic_metadata, title, content = parsed.next()

            # got those, now go over the languages
            for metadata, title, content in parsed:
                lang = metadata['lang']

                tags = []
                for meta_tag in metadata['tags']:
                    try:
                        name, slug = meta_tag.split('|')
                    except ValueError:
                        name, slug = meta_tag, slugify(meta_tag)

                    i18n_slug = '{0}-{1}'.format(lang, slug)

                    tag, created = I18NTag.objects.get_or_create(
                        slug=i18n_slug,
                        language=lang,
                        defaults={
                            'name': name,
                            'slug_no_locale': slug
                        })

                    if not created:
                        tag.name = name
                        tag.slug_no_locale = slug
                        tag.save()

                    tags.append(tag)

                defaults = dict(title=title,
                                is_published=not generic_metadata['draft'],
                                content=content,
                                pubdate=generic_metadata['datetime'],
                                excerpt=metadata.get('excerpt'),
                                image=generic_metadata.get('image'))

                post, created = Post.objects.get_or_create(
                    slug=generic_metadata['slug'],
                    language=lang,
                    defaults=defaults)

                if not created:
                    for field, val in defaults.iteritems():
                        setattr(post, field, val)
                    post.save()

                post.tags.set(*tags)
Exemple #2
0
def rst_reader():
    "Finds rst posts, parses them and loads into the db."

    for post in find_files(get_blog_dir(), [".rst"]):
        print("Processing {0}".format(post))
        with open(post) as p:
            parsed = parse_rst(p.read())

            generic_metadata, title, content = parsed.next()

            # got those, now go over the languages
            for metadata, title, content in parsed:
                lang = metadata["lang"]

                tags = []
                for meta_tag in metadata["tags"]:
                    try:
                        name, slug = meta_tag.split("|")
                    except ValueError:
                        name, slug = meta_tag, slugify(meta_tag)

                    i18n_slug = "{0}-{1}".format(lang, slug)

                    tag, created = I18NTag.objects.get_or_create(
                        slug=i18n_slug, language=lang, defaults={"name": name, "slug_no_locale": slug}
                    )

                    if not created:
                        tag.name = name
                        tag.slug_no_locale = slug
                        tag.save()

                    tags.append(tag)

                defaults = dict(
                    title=title,
                    is_published=not generic_metadata["draft"],
                    content=content,
                    pubdate=generic_metadata["datetime"],
                    excerpt=metadata.get("excerpt"),
                    image=generic_metadata.get("image"),
                )

                post, created = Post.objects.get_or_create(
                    slug=generic_metadata["slug"], language=lang, defaults=defaults
                )

                if not created:
                    for field, val in defaults.iteritems():
                        setattr(post, field, val)
                    post.save()

                post.tags.set(*tags)
Exemple #3
0
def html_reader():
    "Finds django html pages, parses them and loads into the db."

    for page in find_files(get_pages_dir(), ['.html']):
        print('Processing {0}'.format(page))
        slug, ext = os.path.splitext(os.path.basename(page))

        with open(page) as p:
            template_content = p.read()

            # we create one for each language. Less efficient, but will work we
            # i18n_permalink without further hacking
            #
            # Each template will be renderd for each language, so make sure to
            # have language logic in the template
            for lang_code, lang_name in settings.LANGUAGES:
                defaults = dict(content=template_content, page_type='html')
                update_post(slug, lang_code, defaults)
Exemple #4
0
def html_reader():
    "Finds django html pages, parses them and loads into the db."

    for page in find_files(get_pages_dir(), ['.html']):
        print('Processing {0}'.format(page))
        slug, ext = os.path.splitext(os.path.basename(page))

        with open(page) as p:
            template_content = p.read()

            # we create one for each language. Less efficient, but will work we
            # i18n_permalink without further hacking
            #
            # Each template will be renderd for each language, so make sure to
            # have language logic in the template
            for lang_code, lang_name in settings.LANGUAGES:
                defaults = dict(content=template_content, page_type='html')
                update_post(slug, lang_code, defaults)