RSS tags
This commit is contained in:
parent
84d77d4f7b
commit
6852d8774b
2 changed files with 42 additions and 28 deletions
66
makesite.py
66
makesite.py
|
@ -23,6 +23,7 @@
|
||||||
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
# Modifed by Yax
|
||||||
|
|
||||||
"""Make static website/blog with Python."""
|
"""Make static website/blog with Python."""
|
||||||
|
|
||||||
|
@ -178,31 +179,13 @@ def render(template, **params):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_categories(page_params):
|
def get_header_list_value(header_name, page_params):
|
||||||
cat = []
|
l = []
|
||||||
for s in page_params["category"].split(" "):
|
if header_name in page_params:
|
||||||
|
for s in page_params[header_name].split(" "):
|
||||||
if s.strip():
|
if s.strip():
|
||||||
cat.append(s.strip())
|
l.append(s.strip())
|
||||||
return cat
|
return l
|
||||||
|
|
||||||
|
|
||||||
def make_pages(src, dst, layout, **params):
|
|
||||||
"""Generate pages from page content."""
|
|
||||||
items = []
|
|
||||||
|
|
||||||
for src_path in glob.glob(src):
|
|
||||||
content = read_content(src_path)
|
|
||||||
|
|
||||||
page_params = dict(params, **content)
|
|
||||||
items.append(content)
|
|
||||||
|
|
||||||
dst_path = render(dst, **page_params)
|
|
||||||
output = render(layout, **page_params)
|
|
||||||
|
|
||||||
log("Rendering {} => {} ...", src_path, dst_path)
|
|
||||||
fwrite(dst_path, output)
|
|
||||||
|
|
||||||
return sorted(items, key=lambda x: x["date"], reverse=True)
|
|
||||||
|
|
||||||
|
|
||||||
def get_friendly_date(date_str):
|
def get_friendly_date(date_str):
|
||||||
|
@ -220,6 +203,10 @@ def make_posts(
|
||||||
src_path = str(posix_path)
|
src_path = str(posix_path)
|
||||||
content = read_content(src_path)
|
content = read_content(src_path)
|
||||||
|
|
||||||
|
# render text / summary for basic fields
|
||||||
|
content["content"] = render(content["content"], **params)
|
||||||
|
content["summary"] = render(content["summary"], **params)
|
||||||
|
|
||||||
page_params = dict(params, **content)
|
page_params = dict(params, **content)
|
||||||
page_params["header"] = ""
|
page_params["header"] = ""
|
||||||
page_params["footer"] = ""
|
page_params["footer"] = ""
|
||||||
|
@ -229,7 +216,7 @@ def make_posts(
|
||||||
page_params["post_url"] = page_params["year"] + "/" + page_params["slug"]
|
page_params["post_url"] = page_params["year"] + "/" + page_params["slug"]
|
||||||
|
|
||||||
# categories
|
# categories
|
||||||
categories = get_categories(page_params)
|
categories = get_header_list_value('category', page_params)
|
||||||
out_cats = []
|
out_cats = []
|
||||||
for category in categories:
|
for category in categories:
|
||||||
out_cat = render(category_layout, category=category, url=slugify(category))
|
out_cat = render(category_layout, category=category, url=slugify(category))
|
||||||
|
@ -237,6 +224,11 @@ def make_posts(
|
||||||
page_params["categories"] = categories
|
page_params["categories"] = categories
|
||||||
page_params["category_label"] = "".join(out_cats)
|
page_params["category_label"] = "".join(out_cats)
|
||||||
|
|
||||||
|
# tags
|
||||||
|
tags = get_header_list_value('tag', page_params)
|
||||||
|
page_params["tags"] = tags
|
||||||
|
|
||||||
|
|
||||||
# stacosys comments
|
# stacosys comments
|
||||||
page_params["comment_count"] = 0
|
page_params["comment_count"] = 0
|
||||||
page_params["comments"] = ''
|
page_params["comments"] = ''
|
||||||
|
@ -265,6 +257,7 @@ def make_posts(
|
||||||
content["post_url"] = page_params["post_url"]
|
content["post_url"] = page_params["post_url"]
|
||||||
content["categories"] = page_params["categories"]
|
content["categories"] = page_params["categories"]
|
||||||
content["category_label"] = page_params["category_label"]
|
content["category_label"] = page_params["category_label"]
|
||||||
|
content["tags"] = page_params["tags"]
|
||||||
content["friendly_date"] = page_params["friendly_date"]
|
content["friendly_date"] = page_params["friendly_date"]
|
||||||
content["comment_count"] = page_params["comment_count"]
|
content["comment_count"] = page_params["comment_count"]
|
||||||
items.append(content)
|
items.append(content)
|
||||||
|
@ -441,7 +434,7 @@ def main():
|
||||||
**params
|
**params
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create RSS feeds.
|
# Create main RSS feed for 10 last entries
|
||||||
nb_items = min(10, len(blog_posts))
|
nb_items = min(10, len(blog_posts))
|
||||||
make_list(
|
make_list(
|
||||||
blog_posts[:nb_items],
|
blog_posts[:nb_items],
|
||||||
|
@ -453,6 +446,27 @@ def main():
|
||||||
**params
|
**params
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Create RSS feed by tag
|
||||||
|
tagpost = {}
|
||||||
|
for post in blog_posts:
|
||||||
|
for tag in post["tags"]:
|
||||||
|
if tag in tagpost:
|
||||||
|
tagpost[tag].append(post)
|
||||||
|
else:
|
||||||
|
tagpost[tag] = [post]
|
||||||
|
for tag in tagpost.keys():
|
||||||
|
params["tag"] = tag
|
||||||
|
make_list(
|
||||||
|
tagpost[tag],
|
||||||
|
"_site/rss." + slugify(tag) + ".xml",
|
||||||
|
rss_xml,
|
||||||
|
rss_item_xml,
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
**params
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# Create sitemap
|
# Create sitemap
|
||||||
make_list(
|
make_list(
|
||||||
blog_posts,
|
blog_posts,
|
||||||
|
|
|
@ -11,6 +11,6 @@ Je viens de découvrir que le blog a perdu *magiquement* sa barre de navigation
|
||||||
|
|
||||||
J'ai voulu lever le pied sur la gestion de l'infra, me reposer sur GitHub mais c'est la cata ! Il est temps de se retrousser les manches
|
J'ai voulu lever le pied sur la gestion de l'infra, me reposer sur GitHub mais c'est la cata ! Il est temps de se retrousser les manches
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
*Nous savons tous le réel plaisir que vous avez à dire : je vous l'avais bien dit...*
|
*Nous savons tous le réel plaisir que vous avez à dire : je vous l'avais bien dit...*
|
||||||
|
|
Loading…
Add table
Reference in a new issue