X-Git-Url: http://unremediatedgender.space/source?p=Ultimately_Untrue_Thought.git;a=blobdiff_plain;f=plugins%2Ftag_cloud.py;h=6672e2b05ff1e524b25e1383953374f1b5fdbdf9;hp=775977e19194c35e042ec13f84fd2d012cf0ad7d;hb=d44c0f306fb82e0d775053c1f659e88c4c7c88cd;hpb=6e8f3b60100fef3b5d47e9f759578484bb8df6eb diff --git a/plugins/tag_cloud.py b/plugins/tag_cloud.py index 775977e..6672e2b 100644 --- a/plugins/tag_cloud.py +++ b/plugins/tag_cloud.py @@ -36,6 +36,15 @@ def init_default_config(pelican): set_default_settings(pelican.settings) +def alphabetic_sort_key(element): + tag = element[0].name + if tag[0] == "æ": # exceptional case + return "ae"+tag[1:] + # `.lower()` to avoid putting all uppercase tags lexicographically + # before lowercase tags —ZMD + return tag.lower() + + def generate_tag_cloud(generator): tag_cloud = defaultdict(int) for article in generator.articles: @@ -69,9 +78,7 @@ def generate_tag_cloud(generator): sorting = generator.settings.get('TAG_CLOUD_SORTING') if sorting == 'alphabetically': - # `.lower()` to avoid putting all uppercase tags lexicographically - # before lowercase tags —ZMD - tag_cloud.sort(key=lambda elem: elem[0].name.lower()) + tag_cloud.sort(key=alphabetic_sort_key) elif sorting == 'alphabetically-rev': tag_cloud.sort(key=lambda elem: elem[0].name, reverse=True) elif sorting == 'size':