-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Description
Firstly, thanks for Cog, it is such a great way to generate files against a template using Python.
However, the major downside of the current implementation (for me at least) is that it is line-based. There doesn't appear to be a way to do inline templating. For example, let's say I want to generate a Doxygen C source file header:
[[[cog import cog ]]] [[[end]]]
/**
* @file [[[cog cog.out(filename) ]]] [[[end]]]
* @copyright Copyright (c) [[[ cog.out(current_year + " " + company_name) ]]] [[[end]]]
* @author [[[cog cog.out(file_author) ]]] [[[end]]]
*/
However, the Cog source code mandates that the [[[end]]] tag is present, and is on a different line to the Python code block, which prevents this rather useful ability. If the -d option is used to delete the source code and the [[[end]]] tag was optional, I could just do:
/**
* @file [[[cog cog.out(filename) ]]]
* @copyright Copyright (c) [[[ cog.out(current_year + " " + company_name) ]]]
* @author [[[cog cog.out(file_author) ]]]
*/
which would get transformed rather neatly into:
/**
* @file my_first_file.h
* @copyright Copyright (c) 2020 AcmeCorp
* @author Joe Bloggs
*/
This is kinda similar to how PHP works inline with HTML, and would be a really useful feature IMO.
sperly, dreftymac, kiteloopdesign and thisirs
Metadata
Metadata
Assignees
Labels
No labels