diff --git a/cms-content/src/main/java/com/condation/cms/content/markdown/module/CMSMarkdownRenderer.java b/cms-content/src/main/java/com/condation/cms/content/markdown/module/CMSMarkdownRenderer.java index 05398c601..e2cc7ef70 100644 --- a/cms-content/src/main/java/com/condation/cms/content/markdown/module/CMSMarkdownRenderer.java +++ b/cms-content/src/main/java/com/condation/cms/content/markdown/module/CMSMarkdownRenderer.java @@ -26,21 +26,6 @@ import com.condation.cms.api.markdown.MarkdownRenderer; import com.condation.cms.content.markdown.CMSMarkdown; import com.condation.cms.content.markdown.Options; -import com.condation.cms.content.markdown.rules.block.BlockquoteBlockRule; -import com.condation.cms.content.markdown.rules.block.CodeBlockRule; -import com.condation.cms.content.markdown.rules.block.HeadingBlockRule; -import com.condation.cms.content.markdown.rules.block.HorizontalRuleBlockRule; -import com.condation.cms.content.markdown.rules.block.ListBlockRule; -import com.condation.cms.content.markdown.rules.inline.HighlightInlineRule; -import com.condation.cms.content.markdown.rules.inline.ItalicInlineRule; -import com.condation.cms.content.markdown.rules.inline.ImageInlineRule; -import com.condation.cms.content.markdown.rules.inline.ImageLinkInlineRule; -import com.condation.cms.content.markdown.rules.inline.LinkInlineRule; -import com.condation.cms.content.markdown.rules.inline.NewlineInlineRule; -import com.condation.cms.content.markdown.rules.inline.StrikethroughInlineRule; -import com.condation.cms.content.markdown.rules.inline.StrongInlineRule; -import com.condation.cms.content.markdown.rules.inline.SubscriptInlineRule; -import com.condation.cms.content.markdown.rules.inline.SuperscriptInlineRule; import java.io.IOException; import lombok.extern.slf4j.Slf4j; import org.jsoup.Jsoup; diff --git a/cms-core/src/main/java/com/condation/cms/core/configuration/properties/ExtendedSiteProperties.java b/cms-core/src/main/java/com/condation/cms/core/configuration/properties/ExtendedSiteProperties.java index 3d1d13259..a97686568 100644 --- a/cms-core/src/main/java/com/condation/cms/core/configuration/properties/ExtendedSiteProperties.java +++ b/cms-core/src/main/java/com/condation/cms/core/configuration/properties/ExtendedSiteProperties.java @@ -59,7 +59,7 @@ public List hostnames() { @Override public String markdownEngine() { - return configuration.getString("markdown.engine"); + return configuration.getString("markdown.engine", "system"); } @Override diff --git a/cms-server/src/main/java/com/condation/cms/server/configs/ModulesModule.java b/cms-server/src/main/java/com/condation/cms/server/configs/ModulesModule.java index 039ed6db8..17951530b 100644 --- a/cms-server/src/main/java/com/condation/cms/server/configs/ModulesModule.java +++ b/cms-server/src/main/java/com/condation/cms/server/configs/ModulesModule.java @@ -107,12 +107,6 @@ public CMSModuleContext moduleContext() { return cmsModuleContext; } - @Provides - @Singleton - public CMSMarkdownRenderer defaultMarkdownRenderer() { - return new CMSMarkdownRenderer(); - } - /** * * @@ -123,8 +117,7 @@ public CMSMarkdownRenderer defaultMarkdownRenderer() { */ @Provides @Singleton - public MarkdownRenderer markdownRenderer(SiteProperties siteProperties, ModuleManager moduleManager, - CMSMarkdownRenderer defaultMarkdownRenderer) { + public MarkdownRenderer markdownRenderer(SiteProperties siteProperties, ModuleManager moduleManager) { var engine = siteProperties.markdownEngine(); List extensions = moduleManager.extensions(MarkdownRendererProviderExtensionPoint.class); @@ -134,7 +127,7 @@ public MarkdownRenderer markdownRenderer(SiteProperties siteProperties, ModuleMa return extOpt.get().getRenderer(); } - return defaultMarkdownRenderer; + throw new RuntimeException("no markdown renderer found"); } private String getTemplateEngine(SiteProperties siteProperties, Theme theme) { diff --git a/modules/system-modules/src/main/java/com/condation/cms/modules/system/markdown/CMSMarkdownRendererProvider.java b/modules/system-modules/src/main/java/com/condation/cms/modules/system/markdown/CMSMarkdownRendererProvider.java new file mode 100644 index 000000000..f346ea03b --- /dev/null +++ b/modules/system-modules/src/main/java/com/condation/cms/modules/system/markdown/CMSMarkdownRendererProvider.java @@ -0,0 +1,49 @@ +package com.condation.cms.modules.system.markdown; + +/*- + * #%L + * cms-system-modules + * %% + * Copyright (C) 2023 - 2025 CondationCMS + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * . + * #L% + */ + +import com.condation.cms.api.extensions.MarkdownRendererProviderExtensionPoint; +import com.condation.cms.api.markdown.MarkdownRenderer; +import com.condation.cms.content.markdown.module.CMSMarkdownRenderer; +import com.condation.modules.api.annotation.Extension; + +/** + * + * @author t.marx + */ +@Extension(MarkdownRendererProviderExtensionPoint.class) +public class CMSMarkdownRendererProvider extends MarkdownRendererProviderExtensionPoint { + + private final CMSMarkdownRenderer markdownRenderer = new CMSMarkdownRenderer(); + + @Override + public String getName() { + return "system"; + } + + @Override + public MarkdownRenderer getRenderer() { + return markdownRenderer; + } + +} diff --git a/test-server/hosts/demo2/modules_data/pebble-module/configuration.properties b/test-server/hosts/demo2/modules_data/pebble-module/configuration.properties new file mode 100644 index 000000000..e69de29bb