Last active
February 10, 2024 15:24
-
-
Save tooh/739a77fa5a1e37b48d3a7073f1a3f8ab to your computer and use it in GitHub Desktop.
Pelican plugin to Capitalize title
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"""[OVERVIEW] Pelican plugin to replace “-” with a space in the value of the key “title” articles and pages. | |
[NOTE] Not possible to have expected value of “title” key without plugin: | |
https://stackoverflow.com/q/64058029/5951529 | |
[REQUIRED] “FILENAME_METADATA: (?P<title>.*)” in Pelican settings; | |
this is necessary so as not to add the “title” manually in each article and page. | |
Otherwise error when running “pelican” command on the command line: | |
“could not find information about 'title'”. | |
https://docs.getpelican.com/en/latest/content.html#file-metadata | |
[REQUIRED] Set “PreserveTitle” key with any value in article/page metadata, | |
if the “Title” key is specified in the metadata | |
and you don’t want title_capitalize to capitalize title. | |
[NOTE] I can’t find a solution without an additional “PreserveTitle” key: | |
https://stackoverflow.com/posts/comments/136979516 | |
""" | |
from pelican import signals | |
def title_capitalize(generator, metadata): | |
"""[INFO] Capitalize title. | |
[INFO] Get the pair “key”: “value” from “generator.settings” dictionary: | |
https://stackoverflow.com/a/26660785/5951529 | |
https://stackoverflow.com/a/25711744/5951529 | |
""" | |
if ("FILENAME_METADATA", | |
"(?P<title>.*)") in generator.settings.items() and "preservetitle" not in metadata.keys(): | |
metadata["title"] = metadata["title"].capitalize) | |
def register(): | |
"""[INFO] Register the plugin pieces with Pelican.""" | |
signals.article_generator_context.connect(title_capitalize) | |
signals.page_generator_context.connect(title_capitalize) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment