Add support for "<%_", "_%>" and "-%>" delimiters in templating in @angular-devkit/core
- 主要言語
- TypeScript
- スター
- 27k
- フォーク
- 11.8k
- 平均マージ
- 14時間 23分
- マージ済み PR(30日)
- 162
説明
# 🚀 Feature request
### Command (mark with an `x`)
- [x] generate
### Description
The templating for the @angular/devkit library uses EJS, sort of but doesn't support whitespace slurping the way that the documentation of EJS has declared it. Having this would enable schematic templates to be much more flexible with their whitespace and therefor easier to read while still creating nicely formatted files.
### Describe the solution you'd like
The three delimiters: `"<%_"`, `"_%>"` and `"-%>"` should just be added and work the same way that they do in EJS.
I already have an idea of the code that I'd like to add, and a pull request almost ready. It's very simple and only affects one file.
### Examples
Within [@schematics/angular](https://npmjs.com/package/@schematics/angular) this would allow an example like the following
```
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
<%_ if (routing) { %>
import { AppRoutingModule } from './app-routing.module';
<%_ } -%>
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
<%_ if (routing) { -%>
AppRoutingModule,
<%_ } -%>
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
```
Which would generate with the correct whitespace.
コントリビューションガイド
調査の方向性
この issue では @angular-devkit/core のテンプレート実装が特定されていますが、ファイルもテストも指定されていません。まずその実装を見つけ、デリミタの処理を EJS と比較してください。示されている schematic template で、空白を取り除くデリミタ <%、_%>、-%> が機能すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- typescript
- 領域
- tooling
- issue の種類
- 機能追加
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 28/100