linkedin and github link (#27)

* Ref #24 linkedin and github social link in author page and article page

-test case for that

- BaseTest added

* Ref #24 icon to link since linkedin and github is not present

* article color fix
This commit is contained in:
Arul 2018-05-18 17:26:41 +05:30 committed by GitHub
parent 7b26ad1013
commit 1e0a56e0d8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 225 additions and 181 deletions

View file

@ -215,4 +215,95 @@ class LoggedTestCase(unittest.TestCase):
self.assertEqual(
actual, count,
msg='expected {} occurrences of {!r}, but found {}'.format(
count, msg, actual))
count, msg, actual))
from bs4 import BeautifulSoup
from pelican.generators import (ArticlesGenerator, Generator, PagesGenerator,
PelicanTemplateNotFound, StaticGenerator,
TemplatePagesGenerator)
from pelican.readers import RstReader
from pelican.writers import Writer
from pelican.contents import (Article, Page)
CUR_DIR = os.path.dirname(__file__)
CONTENT_DIR = os.path.join(CUR_DIR, 'content')
OUTPUT_DIR = os.path.join(CUR_DIR, 'output')
class BaseTest(object):
def __init__(self):
self.initSettings()
def initSettings(self):
self.old_locale = locale.setlocale(locale.LC_ALL)
locale.setlocale(locale.LC_ALL, str('C'))
self.settings = get_my_settings()
self.settings['THEME'] = "../"
self.settings['filenames'] = {}
self.reader = RstReader(self.settings)
self.writer = Writer("output", self.settings)
def gen_article_and_html_from_rst(self, rstPath):
content, metadata = self.reader.read(rstPath)
article = Article(content=content, metadata=metadata)
generator = ArticlesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
generator.generate_context()
f = lambda a: True if (a.slug == article.slug) else False
result = filter(f, generator.context["articles"])[0]
self.writer.write_file(
result.save_as, generator.get_template('article'),
generator.context, article=result)
soup = BeautifulSoup(open("./"+self.writer.output_path+'/'+result.save_as), "html.parser")
return (result, soup)
def gen_page_and_html_from_rst(self, rstPath):
content, metadata = self.reader.read(rstPath)
page = Page(content=content, metadata=metadata)
generator = PagesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
generator.generate_context()
f = lambda a: True if (a.slug == page.slug) else False
result = filter(f, generator.context["pages"])[0]
self.writer.write_file(
result.save_as, generator.get_template('page'),
generator.context, page=result)
soup = BeautifulSoup(open("./"+self.writer.output_path+'/'+result.save_as), "html.parser")
return (result, soup)
def gen_tag_and_html_from_name(self, name):
generator = ArticlesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
generator.generate_context()
generator.generate_tags(self.writer.write_file)
selectedTag = None
for tag, articles in generator.tags.items():
if tag.name == name:
selectedTag = tag
soup = BeautifulSoup(open("./"+self.writer.output_path+'/'+selectedTag.save_as), "html.parser")
return (selectedTag, soup)
def gen_category_and_html_from_name(self, name):
generator = ArticlesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
generator.generate_context()
generator.generate_categories(self.writer.write_file)
selectedCategory = None
for category, articles in generator.categories:
if category.name == name:
selectedCategory = category
soup = BeautifulSoup(open("./"+self.writer.output_path+'/'+selectedCategory.save_as), "html.parser")
return (selectedCategory, soup)
def gen_author_and_html_from_name(self, name):
generator = ArticlesGenerator( context=self.settings.copy(), settings=self.settings, path=CONTENT_DIR, theme=self.settings['THEME'], output_path=OUTPUT_DIR)
generator.generate_context()
generator.generate_authors(self.writer.write_file)
selectedAuthor = None
for author, articles in generator.authors:
if author.name == name:
selectedAuthor = author
soup = BeautifulSoup(open("./"+self.writer.output_path+'/'+selectedAuthor.save_as), "html.parser")
return (selectedAuthor, soup)