From 8bd8299348c1ae5c994c9631623bfee44cee00b4 Mon Sep 17 00:00:00 2001 From: Brian Madden Date: Sat, 15 Jun 2024 11:32:29 +0200 Subject: [PATCH 1/6] allow per-feed customisations of title and description Adds new `title:` and `description` options to the plugin which will be used in the generated feeds. If these keys are not present, the default MkDocs site-wide `site_title:` and `site_description:` will be used. --- docs/configuration.md | 36 +++++++++++++++++++ mkdocs_rss_plugin/config.py | 2 ++ mkdocs_rss_plugin/plugin.py | 6 ++-- .../mkdocs_custom_title_description.yml | 11 ++++++ tests/test_build.py | 19 ++++++++++ tests/test_config.py | 4 +++ 6 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 tests/fixtures/mkdocs_custom_title_description.yml diff --git a/docs/configuration.md b/docs/configuration.md index a869404..3ed0a28 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -367,6 +367,24 @@ At the end, into the RSS you will get: ---- +### :material-subtitles: `description`: override site description { #description } + +This option allows you to override the default MkDocs site description for the description tag in this RSS feed. +This is useful if you have multiple instances of this plugin for multiple feeds. (For example, one feed +for the blog, and a second for documentation updates.) + +This setting is optional. If you do not include it, the default site description will be used. + +```yaml +plugins: + - rss: + description: The best blog from the best site +``` + +Default: Use the default MkDocs `site_description:`. + +---- + ### :material-alphabet-latin: `feeds_filenames`: customize the output feed URL { #feeds_filenames } > Since version 1.13.0. @@ -478,6 +496,24 @@ Default: `False`. ---- +### :material-format-title: `title`: override site title { #title } + +This option allows you to override the default MkDocs site title for the title tag in this RSS feed. +This is useful if you have multiple instances of this plugin for multiple feeds. (For example, one feed +for the blog, and a second for documentation updates.) + +This setting is optional. If you do not include it, the default site title will be used. + +```yaml +plugins: + - rss: + title: My awesome blog feed +``` + +Default: Use the default MkDocs `site_title:`. + +---- + ### :material-track-light: `url_parameters`: additional URL parameters { #url_parameters } This option allows you to add parameters to the URLs of the RSS feed items. It works as a dictionary of keys/values that is passed to [Python *urllib.parse.urlencode*](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode). diff --git a/mkdocs_rss_plugin/config.py b/mkdocs_rss_plugin/config.py index 49d7482..13df38f 100644 --- a/mkdocs_rss_plugin/config.py +++ b/mkdocs_rss_plugin/config.py @@ -44,6 +44,7 @@ class RssPluginConfig(Config): ) comments_path = config_options.Optional(config_options.Type(str)) date_from_meta = config_options.SubConfig(_DateFromMeta) + description = config_options.Type(str, default="") enabled = config_options.Type(bool, default=True) feed_ttl = config_options.Type(int, default=1440) feeds_filenames = config_options.SubConfig(_FeedsFilenamesConfig) @@ -53,6 +54,7 @@ class RssPluginConfig(Config): match_path = config_options.Type(str, default=".*") pretty_print = config_options.Type(bool, default=False) rss_feed_enabled = config_options.Type(bool, default=True) + title = config_options.Type(str, default="") url_parameters = config_options.Optional(config_options.Type(dict)) use_git = config_options.Type(bool, default=True) use_material_social_cards = config_options.Type(bool, default=True) diff --git a/mkdocs_rss_plugin/plugin.py b/mkdocs_rss_plugin/plugin.py index 0d5f873..beb0d5b 100644 --- a/mkdocs_rss_plugin/plugin.py +++ b/mkdocs_rss_plugin/plugin.py @@ -115,14 +115,16 @@ def on_config(self, config: MkDocsConfig) -> MkDocsConfig: "author": config.site_author or None, "buildDate": formatdate(get_build_timestamp()), "copyright": config.copyright, - "description": config.site_description, + "description": self.config['description'] if self.config['description'] \ + else config['site_description'], "entries": [], "generator": f"{__title__} - v{__version__}", "html_url": self.util.get_site_url(mkdocs_config=config), "language": self.util.guess_locale(mkdocs_config=config), "pubDate": formatdate(get_build_timestamp()), "repo_url": config.repo_url, - "title": config.site_name, + "title": self.config['title'] if self.config['title'] \ + else config['site_name'], "ttl": self.config.feed_ttl, } diff --git a/tests/fixtures/mkdocs_custom_title_description.yml b/tests/fixtures/mkdocs_custom_title_description.yml new file mode 100644 index 0000000..1427a00 --- /dev/null +++ b/tests/fixtures/mkdocs_custom_title_description.yml @@ -0,0 +1,11 @@ +site_name: Test RSS Plugin with custom titles and descriptions +site_description: Test RSS Plugin with customized descriptions +site_url: https://guts.github.io/mkdocs-rss-plugin + +plugins: + - rss: + title: My custom RSS title + description: My custom RSS description + +theme: + name: mkdocs diff --git a/tests/test_build.py b/tests/test_build.py index 3dcef84..ef5b959 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -657,6 +657,25 @@ def test_simple_build_pretty_print_disabled(self): with Path(Path(tmpdirname) / OUTPUT_RSS_FEED_UPDATED).open("r") as f: self.assertEqual(len(f.readlines()), 1) + def test_simple_build_custome_title_description(self): + with tempfile.TemporaryDirectory() as tmpdirname: + cli_result = self.build_docs_setup( + testproject_path="docs", + mkdocs_yml_filepath=Path("tests/fixtures/mkdocs_custom_title_description.yml"), + output_path=tmpdirname, + ) + if cli_result.exception is not None: + e = cli_result.exception + logger.debug(format_exception(type(e), e, e.__traceback__)) + + self.assertEqual(cli_result.exit_code, 0) + self.assertIsNone(cli_result.exception) + + # created items + feed_parsed = feedparser.parse(Path(tmpdirname) / OUTPUT_RSS_FEED_CREATED) + self.assertEqual(feed_parsed.feed.title, "My custom RSS title") + self.assertEqual(feed_parsed.feed.description, "My custom RSS description") + def test_rss_feed_validation(self): with tempfile.TemporaryDirectory() as tmpdirname: cli_result = self.build_docs_setup( diff --git a/tests/test_config.py b/tests/test_config.py index db5847a..539f981 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -70,6 +70,7 @@ def test_plugin_config_defaults(self): "default_time": datetime.min.strftime("%H:%M"), "default_timezone": "UTC", }, + "description": "", "enabled": True, "feed_ttl": 1440, "image": None, @@ -84,6 +85,7 @@ def test_plugin_config_defaults(self): }, "pretty_print": False, "rss_feed_enabled": True, + "title": "", "url_parameters": None, "use_git": True, "use_material_social_cards": True, @@ -112,6 +114,7 @@ def test_plugin_config_image(self): "default_time": datetime.min.strftime("%H:%M"), "default_timezone": "UTC", }, + "description": "", "enabled": True, "feed_ttl": 1440, "image": self.feed_image, @@ -126,6 +129,7 @@ def test_plugin_config_image(self): }, "pretty_print": False, "rss_feed_enabled": True, + "title": "", "url_parameters": None, "use_git": True, "use_material_social_cards": True, From 8355ef83bc364cd080bc7b0707aff981fd4312ef Mon Sep 17 00:00:00 2001 From: Brian Madden Date: Sat, 15 Jun 2024 11:32:47 +0200 Subject: [PATCH 2/6] fixed a few spelling typos in comments --- .../integrations/theme_material_social_plugin.py | 2 +- mkdocs_rss_plugin/plugin.py | 4 ++-- mkdocs_rss_plugin/util.py | 2 +- tests/base.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/mkdocs_rss_plugin/integrations/theme_material_social_plugin.py b/mkdocs_rss_plugin/integrations/theme_material_social_plugin.py index f932112..a9003cd 100644 --- a/mkdocs_rss_plugin/integrations/theme_material_social_plugin.py +++ b/mkdocs_rss_plugin/integrations/theme_material_social_plugin.py @@ -34,7 +34,7 @@ class IntegrationMaterialSocialCards: IS_THEME_MATERIAL: bool = False def __init__(self, mkdocs_config: Config, switch_force: bool = True) -> None: - """Integration instanciation. + """Integration instantiation. Args: mkdocs_config (Config): Mkdocs website configuration object. diff --git a/mkdocs_rss_plugin/plugin.py b/mkdocs_rss_plugin/plugin.py index beb0d5b..639bcbd 100644 --- a/mkdocs_rss_plugin/plugin.py +++ b/mkdocs_rss_plugin/plugin.py @@ -56,7 +56,7 @@ class GitRssPlugin(BasePlugin[RssPluginConfig]): supports_multiple_instances = True def __init__(self): - """Instanciation.""" + """Instantiation.""" # pages storage self.pages_to_filter: list = [] # prepare output feeds @@ -98,7 +98,7 @@ def on_config(self, config: MkDocsConfig) -> MkDocsConfig: switch_force=self.config.use_material_social_cards, ) - # instanciate plugin tooling + # instantiate plugin tooling self.util = Util( use_git=self.config.use_git, integration_material_social_cards=self.integration_material_social_cards, diff --git a/mkdocs_rss_plugin/util.py b/mkdocs_rss_plugin/util.py index 2c191b5..0384f49 100644 --- a/mkdocs_rss_plugin/util.py +++ b/mkdocs_rss_plugin/util.py @@ -668,7 +668,7 @@ def get_site_url(mkdocs_config: MkDocsConfig) -> str | None: :rtype: str or None """ # this method exists because the following line returns an empty string instead of \ - # None (because the key alwayus exists) + # None (because the key always exists) defined_site_url = mkdocs_config.site_url # cases diff --git a/tests/base.py b/tests/base.py index a5b5151..a339c76 100644 --- a/tests/base.py +++ b/tests/base.py @@ -45,7 +45,7 @@ def get_plugin_config_from_mkdocs( not enabled into the mkdocs.yml. :rtype: Config """ - # instanciate plugin + # instantiate plugin cfg_mkdocs = load_config(str(mkdocs_yml_filepath.resolve())) plugins = cfg_mkdocs.plugins From 5463c01fe3b5803502d9e39471a792d6311cf914 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 15 Jun 2024 09:42:18 +0000 Subject: [PATCH 3/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- mkdocs_rss_plugin/plugin.py | 12 ++++++++---- tests/test_build.py | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/mkdocs_rss_plugin/plugin.py b/mkdocs_rss_plugin/plugin.py index 639bcbd..b08cce0 100644 --- a/mkdocs_rss_plugin/plugin.py +++ b/mkdocs_rss_plugin/plugin.py @@ -115,16 +115,20 @@ def on_config(self, config: MkDocsConfig) -> MkDocsConfig: "author": config.site_author or None, "buildDate": formatdate(get_build_timestamp()), "copyright": config.copyright, - "description": self.config['description'] if self.config['description'] \ - else config['site_description'], + "description": ( + self.config["description"] + if self.config["description"] + else config["site_description"] + ), "entries": [], "generator": f"{__title__} - v{__version__}", "html_url": self.util.get_site_url(mkdocs_config=config), "language": self.util.guess_locale(mkdocs_config=config), "pubDate": formatdate(get_build_timestamp()), "repo_url": config.repo_url, - "title": self.config['title'] if self.config['title'] \ - else config['site_name'], + "title": ( + self.config["title"] if self.config["title"] else config["site_name"] + ), "ttl": self.config.feed_ttl, } diff --git a/tests/test_build.py b/tests/test_build.py index ef5b959..bef79c6 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -661,7 +661,9 @@ def test_simple_build_custome_title_description(self): with tempfile.TemporaryDirectory() as tmpdirname: cli_result = self.build_docs_setup( testproject_path="docs", - mkdocs_yml_filepath=Path("tests/fixtures/mkdocs_custom_title_description.yml"), + mkdocs_yml_filepath=Path( + "tests/fixtures/mkdocs_custom_title_description.yml" + ), output_path=tmpdirname, ) if cli_result.exception is not None: From abd44540cef60c7b69adf06204477a4a911c4f83 Mon Sep 17 00:00:00 2001 From: Brian Madden Date: Sat, 15 Jun 2024 12:08:33 +0200 Subject: [PATCH 4/6] update documentation Correct the default `site_title:` to `site_name:` --- docs/configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/configuration.md b/docs/configuration.md index 3ed0a28..025a8c8 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -502,7 +502,7 @@ This option allows you to override the default MkDocs site title for the title t This is useful if you have multiple instances of this plugin for multiple feeds. (For example, one feed for the blog, and a second for documentation updates.) -This setting is optional. If you do not include it, the default site title will be used. +This setting is optional. If you do not include it, the default site name will be used. ```yaml plugins: @@ -510,7 +510,7 @@ plugins: title: My awesome blog feed ``` -Default: Use the default MkDocs `site_title:`. +Default: Use the default MkDocs `site_name:`. ---- From d9313392f7bf4dc5a9bd16b1a17ba6474918c644 Mon Sep 17 00:00:00 2001 From: Brian Madden Date: Sat, 15 Jun 2024 13:39:00 +0200 Subject: [PATCH 5/6] update README to add new title & description keys --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 5b195e3..a6bd7ba 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ plugins: datetime_format: "%Y-%m-%d %H:%M" default_time: "09:30" default_timezone: Europe/Paris + description: "My custom feed description" # MkDocs site_description: will be used if this key is not present enabled: true feeds_filenames: json_created: feed_json_created.json @@ -66,6 +67,7 @@ plugins: match_path: ".*" pretty_print: false rss_feed_enabled: true + title: "My custom feed title" # MkDocs site_name: will be used if this key is not present url_parameters: utm_source: "documentation" utm_medium: "RSS" From 6c3317519e5f3597a43a1113bf30a063b3b1b80a Mon Sep 17 00:00:00 2001 From: Brian Madden Date: Sun, 16 Jun 2024 11:56:28 +0200 Subject: [PATCH 6/6] small formatting & naming updates Addresses @Guts suggestions. Thanks! --- README.md | 4 +- docs/configuration.md | 70 +++++++++---------- docs/index.md | 2 +- mkdocs_rss_plugin/config.py | 6 +- mkdocs_rss_plugin/plugin.py | 8 +-- .../mkdocs_custom_title_description.yml | 4 +- tests/test_build.py | 3 +- tests/test_config.py | 8 +-- 8 files changed, 53 insertions(+), 52 deletions(-) diff --git a/README.md b/README.md index a6bd7ba..83b8300 100644 --- a/README.md +++ b/README.md @@ -53,13 +53,14 @@ plugins: datetime_format: "%Y-%m-%d %H:%M" default_time: "09:30" default_timezone: Europe/Paris - description: "My custom feed description" # MkDocs site_description: will be used if this key is not present enabled: true + feed_description: "My custom feed description" # MkDocs site_description: will be used if this key is not present feeds_filenames: json_created: feed_json_created.json json_updated: feed_json_updated.json rss_created: feed_rss_created.xml rss_updated: feed_rss_updated.xml + feed_title: "My custom feed title" # MkDocs site_name: will be used if this key is not present feed_ttl: 1440 image: https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png json_feed_enabled: true @@ -67,7 +68,6 @@ plugins: match_path: ".*" pretty_print: false rss_feed_enabled: true - title: "My custom feed title" # MkDocs site_name: will be used if this key is not present url_parameters: utm_source: "documentation" utm_medium: "RSS" diff --git a/docs/configuration.md b/docs/configuration.md index 025a8c8..0f53989 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -367,9 +367,9 @@ At the end, into the RSS you will get: ---- -### :material-subtitles: `description`: override site description { #description } +### :material-subtitles: `feed_description`: override site description { #description } -This option allows you to override the default MkDocs site description for the description tag in this RSS feed. +This option allows you to override the default MkDocs site description for the description tag in this feed. This is useful if you have multiple instances of this plugin for multiple feeds. (For example, one feed for the blog, and a second for documentation updates.) @@ -378,13 +378,45 @@ This setting is optional. If you do not include it, the default site description ```yaml plugins: - rss: - description: The best blog from the best site + feed_description: The best blog from the best site ``` Default: Use the default MkDocs `site_description:`. ---- +### :material-format-title: `feed_title`: override site title { #title } + +This option allows you to override the default MkDocs site name for the title tag in this feed. +This is useful if you have multiple instances of this plugin for multiple feeds. (For example, one feed +for the blog, and a second for documentation updates.) + +This setting is optional. If you do not include it, the default site name will be used. + +```yaml +plugins: + - rss: + feed_title: My awesome blog feed +``` + +Default: Use the default MkDocs `site_name:`. + +---- + +### :material-clock-end: `feed_ttl`: feed's cache time { #feed_ttl } + +`feed_ttl`: number of minutes to be cached. Inserted as channel `ttl` element. See: [W3C RSS 2.0 documentation](https://www.w3schools.com/xml/rss_tag_ttl.asp). + +Default: `1440` (= 1 day) + +Output: + +```xml +1440 +``` + +---- + ### :material-alphabet-latin: `feeds_filenames`: customize the output feed URL { #feeds_filenames } > Since version 1.13.0. @@ -410,20 +442,6 @@ Default: ---- -### :material-clock-end: `feed_ttl`: feed's cache time { #feed_ttl } - -`feed_ttl`: number of minutes to be cached. Inserted as channel `ttl` element. See: [W3C RSS 2.0 documentation](https://www.w3schools.com/xml/rss_tag_ttl.asp). - -Default: `1440` (= 1 day) - -Output: - -```xml -1440 -``` - ----- - ### :material-image-outline: `image`: set the channel image { #image } `image`: URL to image to use as feed illustration. @@ -496,24 +514,6 @@ Default: `False`. ---- -### :material-format-title: `title`: override site title { #title } - -This option allows you to override the default MkDocs site title for the title tag in this RSS feed. -This is useful if you have multiple instances of this plugin for multiple feeds. (For example, one feed -for the blog, and a second for documentation updates.) - -This setting is optional. If you do not include it, the default site name will be used. - -```yaml -plugins: - - rss: - title: My awesome blog feed -``` - -Default: Use the default MkDocs `site_name:`. - ----- - ### :material-track-light: `url_parameters`: additional URL parameters { #url_parameters } This option allows you to add parameters to the URLs of the RSS feed items. It works as a dictionary of keys/values that is passed to [Python *urllib.parse.urlencode*](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlencode). diff --git a/docs/index.md b/docs/index.md index aa217e0..9d50801 100644 --- a/docs/index.md +++ b/docs/index.md @@ -54,7 +54,7 @@ plugins: ## Example -As examples, here come the feeds generated for this documentation: +As examples, here are the feeds generated for this documentation: - [feed_rss_created.xml](feed_rss_created.xml) and [feed_json_created.json](feed_json_created.json) for latest **created** pages: [W3C validator](https://validator.w3.org/feed/check.cgi?url=https%3A//guts.github.io/mkdocs-rss-plugin/feed_rss_created.xml) - [feed_rss_updated.xml](feed_rss_updated.xml) and [feed_json_updated.json](feed_json_updated.json) for latest **updated** pages: [W3C validator](https://validator.w3.org/feed/check.cgi?url=https%3A//guts.github.io/mkdocs-rss-plugin/feed_rss_updated.xml) diff --git a/mkdocs_rss_plugin/config.py b/mkdocs_rss_plugin/config.py index 13df38f..40c0ddc 100644 --- a/mkdocs_rss_plugin/config.py +++ b/mkdocs_rss_plugin/config.py @@ -44,17 +44,17 @@ class RssPluginConfig(Config): ) comments_path = config_options.Optional(config_options.Type(str)) date_from_meta = config_options.SubConfig(_DateFromMeta) - description = config_options.Type(str, default="") enabled = config_options.Type(bool, default=True) - feed_ttl = config_options.Type(int, default=1440) feeds_filenames = config_options.SubConfig(_FeedsFilenamesConfig) + feed_description = config_options.Optional(config_options.Type(str)) + feed_title = config_options.Optional(config_options.Type(str)) + feed_ttl = config_options.Type(int, default=1440) image = config_options.Optional(config_options.Type(str)) json_feed_enabled = config_options.Type(bool, default=True) length = config_options.Type(int, default=20) match_path = config_options.Type(str, default=".*") pretty_print = config_options.Type(bool, default=False) rss_feed_enabled = config_options.Type(bool, default=True) - title = config_options.Type(str, default="") url_parameters = config_options.Optional(config_options.Type(dict)) use_git = config_options.Type(bool, default=True) use_material_social_cards = config_options.Type(bool, default=True) diff --git a/mkdocs_rss_plugin/plugin.py b/mkdocs_rss_plugin/plugin.py index b08cce0..8d3d07c 100644 --- a/mkdocs_rss_plugin/plugin.py +++ b/mkdocs_rss_plugin/plugin.py @@ -116,9 +116,9 @@ def on_config(self, config: MkDocsConfig) -> MkDocsConfig: "buildDate": formatdate(get_build_timestamp()), "copyright": config.copyright, "description": ( - self.config["description"] - if self.config["description"] - else config["site_description"] + self.config.feed_description + if self.config.feed_description + else config.site_description ), "entries": [], "generator": f"{__title__} - v{__version__}", @@ -127,7 +127,7 @@ def on_config(self, config: MkDocsConfig) -> MkDocsConfig: "pubDate": formatdate(get_build_timestamp()), "repo_url": config.repo_url, "title": ( - self.config["title"] if self.config["title"] else config["site_name"] + self.config.feed_title if self.config.feed_title else config.site_name ), "ttl": self.config.feed_ttl, } diff --git a/tests/fixtures/mkdocs_custom_title_description.yml b/tests/fixtures/mkdocs_custom_title_description.yml index 1427a00..de957c8 100644 --- a/tests/fixtures/mkdocs_custom_title_description.yml +++ b/tests/fixtures/mkdocs_custom_title_description.yml @@ -4,8 +4,8 @@ site_url: https://guts.github.io/mkdocs-rss-plugin plugins: - rss: - title: My custom RSS title - description: My custom RSS description + feed_title: My custom RSS title + feed_description: My custom RSS description theme: name: mkdocs diff --git a/tests/test_build.py b/tests/test_build.py index bef79c6..691eeb6 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -657,7 +657,8 @@ def test_simple_build_pretty_print_disabled(self): with Path(Path(tmpdirname) / OUTPUT_RSS_FEED_UPDATED).open("r") as f: self.assertEqual(len(f.readlines()), 1) - def test_simple_build_custome_title_description(self): + def test_simple_build_custom_title_description(self): + """Test simple build with custom description and title.""" with tempfile.TemporaryDirectory() as tmpdirname: cli_result = self.build_docs_setup( testproject_path="docs", diff --git a/tests/test_config.py b/tests/test_config.py index 539f981..f1d2964 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -70,8 +70,9 @@ def test_plugin_config_defaults(self): "default_time": datetime.min.strftime("%H:%M"), "default_timezone": "UTC", }, - "description": "", "enabled": True, + "feed_description": None, + "feed_title": None, "feed_ttl": 1440, "image": None, "json_feed_enabled": True, @@ -85,7 +86,6 @@ def test_plugin_config_defaults(self): }, "pretty_print": False, "rss_feed_enabled": True, - "title": "", "url_parameters": None, "use_git": True, "use_material_social_cards": True, @@ -114,8 +114,9 @@ def test_plugin_config_image(self): "default_time": datetime.min.strftime("%H:%M"), "default_timezone": "UTC", }, - "description": "", "enabled": True, + "feed_description": None, + "feed_title": None, "feed_ttl": 1440, "image": self.feed_image, "json_feed_enabled": True, @@ -129,7 +130,6 @@ def test_plugin_config_image(self): }, "pretty_print": False, "rss_feed_enabled": True, - "title": "", "url_parameters": None, "use_git": True, "use_material_social_cards": True,