我正在使用 Mustache 模板根据 OpenAPI 规范生成 Jetbrains HTTP Client 文件。 (虽然您不需要任何上下文,但我的问题是关于胡子模板。)
简而言之,我可以有零个、一个或多个安全选项,无论结果如何,我都希望每个结果都整齐地位于新行上。
如何确保如果选项为 false,模板会忽略换行符?
到目前为止,我还没有设法按照需要格式化内容。
例如,对于
isBasicBasic
为 true、isBasicBearer
为 false、isApiKey
为 true 的查询,请使用以下模板:
{{httpMethod}} {{basePath}}{{#lambda.doubleMustache}}{{path}}{{/lambda.doubleMustache}}
{{#authMethods}}{{#isBasicBasic}}Authorization: Basic username password{{/isBasicBasic}}
{{#isBasicBearer}}Authorization: Bearer token{{/isBasicBearer}}
{{#isApiKey}}{{keyParamName}} apiKey{{/isApiKey}}{{/authMethods}}
{{#consumes}}Content-Type: {{{mediaType}}}
{{/consumes}}
我现在得到的结果是:
## BasicApi
### Get User
## Get User Info by User ID
# @name getUsersUserId
GET http://localhost:5001/v1/users/{{userId}}
Authorization: Basic username password
X-API-Key apiKey
而期望的结果是:
## BasicApi
### Get User
## Get User Info by User ID
# @name getUsersUserId
GET http://localhost:5001/v1/users/{{userId}}
Authorization: Basic username password
X-API-Key apiKey
将所有内容放在一行将删除额外的换行符,但这没有帮助:
{{httpMethod}} {{basePath}}{{#lambda.doubleMustache}}{{path}}{{/lambda.doubleMustache}}
{{#authMethods}}{{#isBasicBasic}}Authorization: Basic username password{{/isBasicBasic}}{{#isBasicBearer}}Authorization: Bearer token{{/isBasicBearer}}{{#isApiKey}}{{keyParamName}} apiKey{{/isApiKey}}{{/authMethods}}
{{#consumes}}Content-Type: {{{mediaType}}}
返回:
### Get User
## Get User Info by User ID
# @name getUsersUserId
GET http://localhost:5001/v1/users/{{userId}}
Authorization: Basic username passwordX-API-Key apiKey
我没有生成 HTML,这意味着我认为我无法插入像
<br>
这样的手动换行符。我尝试手动插入回车符,但它们只是以文本形式呈现
好吧,我意识到我没有遵循小胡子指南,而是尝试创建一个漂亮的模板文件。
要仅在存在换行符的情况下打印换行符,解决方案是将这些换行符放入条件模板中。
所以写下这个:
{{httpMethod}} {{basePath}}{{#lambda.doubleMustache}}{{path}}{{/lambda.doubleMustache}}
{{#authMethods}}{{#isBasicBasic}}Authorization: Basic username password
{{/isBasicBasic}}{{#isBasicBearer}}Authorization: Bearer token
{{/isBasicBearer}}{{#isApiKey}}{{keyParamName}} apiKey
{{/isApiKey}}{{/authMethods}}
{{#consumes}}Content-Type: {{{mediaType}}}
根据需要渲染:
### Get User
## Get User Info by User ID
# @name getUsersUserId
GET http://localhost:5001/v1/users/{{userId}}
Authorization: Basic username password
X-API-Key apiKey