Я пытаюсь создать сайт документации API на основе HUGO, который читает схемы JSON и печатает их в HTML.
Я почти там, но я в тупике о том, как именно передать данные, которые я хочу частично.
Учитывая стандартный файл схемы JSON, например:
{"paths": {
  "/auth/login": {
    "get": {
    "operationId": "login",
    "responses": {
      "200": {
        "description": "",
        "schema": {
          "ref": "#/definitions/loginResponse"
        }
      }
    }
  },
},
"definitions": {
  "loginResponse": {
    "type": "object"
  }
}}
Я хотел бы отобразить детали этого пути, а затем сделать частичное использование определения схемы в "ref". Я нашел способ прочитать этот параметр ref и проанализировать его в качестве ссылки для определения. "Цель" ниже выглядит так:
Цель:.definitions.loginResponse
{{ range $path, $methods := .paths }}
  <h4>{{ $path }}</h4>
  {{ range $method, $items := $methods }}
    <h5>{{ $method }}</h5>
    <ul>
      {{ range $status, $info := .responses }}
        <li>
          <div>{{ $status }}</div>
          <h6>Ref: {{ $info.schema.ref }}</h6>
          <p>Target: {{ $target := (printf ".definitions.%s" (index (findRE "[^/]+(/?$)" $info.schema.ref) 0))}}</p>
          <div>{{ partial "schema" $target }}</div>
        </li>
      {{ end }}
    </ul>
  {{end}}
{{end}}
 Проблема в том, что $target - это строка. В Javascript я просто могу передать его в качестве ключа для получения этого параметра param: schema["definitions.loginResponse"].
Однако такой удачи в HUGO нет. Я просто не могу найти способ перейти от этой целевой строки к фактическому параметру.
Помогите! Мне что-то не хватает? Неужели я все это делаю неправильно?
