CondationCMS

A CMS that does not slow developers down.

CondationCMS combines structured content, fast templates, and extensible logic into a platform that makes editorial work easy while keeping technical teams close to the code.

content/condationcms.md
---
title: "CondationCMS Landing Page"
template: "landing.html"
---

# Built for great content.

CondationCMS

Great content starts with a strong foundation.

"CondationCMS is an open-source, Markdown-first CMS that helps developers create fast, flexible and extensible content platforms."

The Pillars of Great Content

Three principles. One strong foundation.

01

Performance

A strong foundation starts with speed. Deliver content quickly and create better experiences for your audience.

02

Flexibility

Content should adapt to your ideas, not the other way around. Shape your workflows and structures to fit your project.

03

Extensibility

Great foundations support future growth. Extend and customize CondationCMS as your requirements evolve.

Extend CondationCMS

Register a custom ShortCode

Shortcodes let you extend Markdown with reusable, dynamic content elements while keeping content simple and readable.

import { $hooks } from 'system/hooks.mjs';
// register component via js extensions
$hooks.registerAction("system/content/shortCodes", ({shortCodes}) => {
	shortCodes.put(
			"hello",
			({name}) => `Hello ${name}`
	)
	return null;
})

// register component via java module
@ShortCode("hello")
public void hello_shortcode (String name) {
	return "Hello " + name;
}

[[hello name="CondationCMS" /]]

Extend CondationCMS

Register a custom template component

Template components let you create reusable building blocks that keep templates clean, consistent, and easy to maintain.

import { $hooks } from 'system/hooks.mjs';
// register component via js extensions
$hooks.registerAction("system/template/component", ({components}) => {
	components.put(
			"hello",
			({name}) => `<div><h3>Hello</h3> <p>${name}</p></div>`
	)
	return null;
})

// register component via java module
@TemplateComponent("hello")
public void hello_compnent (String name) {
	return "<div><h3>Hello</h3> <p>%s</p></div>".format(name);
}

{[hello name="CondationCMS" ]}
{[ /hello ]}

Extend CondationCMS

Register a custom template function

Template functions add reusable logic and custom functionality directly to your templates.

import { $hooks } from 'system/hooks.mjs';
// register function via js extensions
$hooks.registerAction("system/template/function", ({functions}) => {
	functions.put(
			"hello",
			({name}) => `Hello ${name}`
	)
	return null;
})

// register function via java module
@TemplateFunction("hello")
public void hello_function (String name) {
	return "Hello " + name;
}

{{ hello({"name" : "CondationCMS"}) }}

Naechster Schritt

Baue dein naechstes Content-Projekt auf einem Fundament, das mitdenkt.

Starte mit einer schlanken Struktur und erweitere sie genau dort, wo dein Projekt es braucht.

Dokumentation oeffnen