If you are thinking of the latter, or both, maybe you should consider having a couple of layers of customisability. It would be nice to allow simple customisations (colors, logos, even basic layout) without getting into templates. Perhaps with a GUI, but possibly even just something standard like CSS. Even as a technically minded person, I would balk if I had to learn some custom syntax to achieve things like this.
Then underneath you could have a full templating system. If users want full control, they should understand it will come with a learning curve. Even for this, consider starting from a known base (e.g. Django templates), and just building convenient constructs that fit your site (e.g. custom tags for common tasks).