Я, в конце концов, понял это сам. Существует способ, называемый SpecialCustomOperations, для определения собственного «языка» для включения необязательного содержимого в любом текстовом файле.
Это немного плохо задокументировано, но найдено большое значение из этот ответ , чтобы включить файлы разметки SpecialCustomOperations.
В template.config/template.json
необходимо определить
"SpecialCustomOperations": {
"**/*.md": {
"operations": [
{
"type": "conditional",
"configuration": {
"if": ["---#if"],
"else": ["---#else"],
"elseif": ["---#elseif", "---#elif"],
"endif": ["---#endif"],
"trim" : "true",
"wholeLine": "true",
}
}
]
}
}
Затем выполните следующие действия
---#if (FooBar)
Foo bar
---#elif (BarBaz)
Bar baz
---#else
Baz qux
---#endif
Кроме того, Я обнаружил, что вы можете определить аналогичные операции для файлов csproj (это в основном xml). Там вам нужно определить (следуя примеру в этот компонент )
"SpecialCustomOperations": {
"**/*.xaml": {
"operations": [
{
"type": "conditional",
"configuration": {
"actionableIf": [ "<!--#if" ],
"actionableElse": [ "#else", "<!--#else" ],
"actionableElseif": [ "#elseif", "<!--#elseif" ],
"endif": [ "#endif", "<!--#endif" ],
"trim" : "true",
"wholeLine": "true",
}
}
]
}
}
пс. список типов файлов, в которых специальные операции включены по умолчанию, можно найти здесь . В других типах файлов необходимо определить SpecialCustomOperations вручную.