More about mroacgt
This commit is contained in:
+29
-2
@@ -72,6 +72,7 @@ context.AddSource($"{className}.g.cs", SourceText.From(code, Encoding.UTF8));
|
||||
перекликается с шаблонами T4. Однако в отличие от T4, код исполняется по-нормальному в среде C# кода, а не как
|
||||
то там среди генерируемого кода.
|
||||
</p>
|
||||
<h2>Теги</h2>
|
||||
<p>Каждый тег в файле, который определяет так называемый "Документ", начинается с
|
||||
<codesp><!</codesp>
|
||||
после чего идет тип тега, и заканчивается
|
||||
@@ -92,11 +93,37 @@ context.AddSource($"{className}.g.cs", SourceText.From(code, Encoding.UTF8));
|
||||
. Между головой и хвостом тега заключается текст, который он определяет.
|
||||
</p>
|
||||
<p>
|
||||
Например, тут тег <codesp><!D someLinkName></codesp> определяет текст "qwerty text", а <codesp><!L someLinkName></codesp> вставляет его.
|
||||
Например, тут тег
|
||||
<codesp><!D someLinkName></codesp>
|
||||
определяет текст "qwerty text", а
|
||||
<codesp><!L someLinkName></codesp>
|
||||
вставляет его.
|
||||
</p>
|
||||
<pre><code class="language-csharp"><!L someLinkName><!L someLinkName><!L someLinkName>
|
||||
<!D someLinkName>qwerty text<!D></code></pre>
|
||||
<p>При компиляции такого документа шаблона на выходе получится <codesp>qwerty textqwerty textqwerty text</codesp> потому что были прописаны 3 ссылки на одно и то же определение</p>
|
||||
<p>При компиляции такого документа шаблона на выходе получится
|
||||
<codesp>qwerty textqwerty textqwerty text</codesp>
|
||||
потому что были прописаны 3 ссылки на одно и то же определение
|
||||
</p>
|
||||
<p>Последним компонентом этой библиотеки является Insert tag. Он обозначается как
|
||||
<codesp><!I></codesp>
|
||||
. Он работает похоже на Link tag, но он работает динамически, а не статически. То, что этот тег должен означать
|
||||
задается еще до компиляции документа. Задать содержание тега можно при помощи метода Insert у документа шаблона.
|
||||
В этот тег можно вставить строку или другой тег, например тег Define.
|
||||
Тег Insert может менять логику своей работы при помощи опций. Они указываются после названия через пробел.
|
||||
</p>
|
||||
<p>
|
||||
На данный момент реализованно 2 опции: repeat и separate. Они связаны между собой и параметр separate не может
|
||||
быть использован без repeat. Опция repeat позволяет не просто заменять указанный Insert тег по его имени на
|
||||
строку
|
||||
или другой тег, а добавлять копию этого Insert тега после выбранного неограниченное количество раз и вставлять
|
||||
контент уже в него. Для использования этой опции нужно прописать после названия
|
||||
<codesp>r</codesp>
|
||||
</p>
|
||||
|
||||
<pre><code class="language-csharp"><!I someInsertName r sep nextLine><!D nextLine>
|
||||
<!D></code></pre>
|
||||
|
||||
</main>
|
||||
<footer>
|
||||
<p>© 2025 Моя страница. Наверное какие-то права защищены!!! <span id="random-emoji"></span></p>
|
||||
|
||||
Reference in New Issue
Block a user