Каков синтаксис уценки для шаблонов .NET Core? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть .NET Core шаблон , и мне интересно, как я могу скрыть частичное содержимое из файла уценки на основе установленных флагов?

Как вы можете видеть ниже, я попробовал то, что я делаю в файлах проекта CS, но это не сработало.

README.md

# Steps

- createSolutionFile.ps1

<!--#if (CacheSqlServer)-->
- sql-cache.ps1
    1. create database `DistributedCache`
    2. create schema `cache`
    3. run the script
<!--#endif-->

- user-secrets.ps1

<!--#if (EntityFramework)-->
- scaffold.ps1
- migrate.ps1 
<!--#endif-->

- build.ps1

<!--#if (WindowsService)-->
- windows-service.ps1
<!--#endif-->

1 Ответ

0 голосов
/ 22 ноября 2018

Движок шаблонов по умолчанию поддерживает эти условные операторы только в определенном списке типов файлов, иногда с различным синтаксисом.Вы можете найти этот список файлов в источнике оркестратора .На данный момент в список не включены файлы Markdown, поэтому вы там не получаете никакой функциональности.

К счастью, существует способ настроить специальные пользовательские операции напользовательские типы файлов внутри template.json, что позволяет определять пользовательских операций , например, для условных операторов.

Добавление чего-то подобного должно работать:

"SpecialCustomOperations": {
  "**/*.md": {
    "operations": [
      {
        "type": "conditional",
        "configuration": {
          "if": ["---#if"],
          "else": ["---#else"],
          "elseif": ["---#elseif", "---#elif"],
          "endif": ["---#endif"],
          "trim" : "true",
          "wholeLine": "true",
        }
      }
    ]
  }
}

Этодолжны позволять вам использовать такие условные выражения в ваших .md файлах:

# This is an example Markdown

---#if (FooBar)
Foo bar
---#elif (BarBaz)
Bar baz
---#else
Baz qux
---#endif

Обратите внимание, что здесь я использовал другой синтаксис, так как однострочный синтаксис гораздо проще настроить.

...