HXL-CPLP / Auxilium-Humanitarium-API

Auxilium Humanitarium API documentōrum (alpha)
https://hapi.etica.ai
The Unlicense
10 stars 0 forks source link

[MVP] `linguam/schemam/lid` (Gerar página de entrada de cada esquema de dados, usando Jekyll) #14

Open fititnt opened 3 years ago

fititnt commented 3 years ago

Tópico sobre Produto Mínimo Viável (em inglês: MVP) de gerar a página de entrada de cada esquema de dados.

Referencia inicial

Atualmente tivemos que criar um plugin Jekyll para poder 'expandir' os arquivos YAML, por exemplo:

## # _data/api.yml
# (...)

### [linguam]/api/UN ___________________________________________________________

## -----------------------------------------------------------------------------
- xdefallo: /mul-Zyyy/api/UN/HDX/
  xdefallo_est: 1
  linguam: mul-Zyyy  # mul-Zyyy
  typum: api
  gid: UN
  lid: HDX # _[por] xdefallo_est: 1, logo lid é forçado manualmente [por]_
  title: "Alternātīvum pāginam: {% _🗣️ 📝eng-Latn📝 Hapi_api_UN_HDX_titulum 📝eng-Latn📝 🗣️_ %}"
  # title: "Index: {% _🗣️ 📝eng-Latn📝 Hapi_api_UN_HDX_titulum 📝eng-Latn📝 🗣️_ %}"
  noindex: true
  # HAPI_api_UN_HDX

- xdefallo: /mul-Zyyy/api/UN/HDX/
  linguam: eng-Latn
  typum: api
  gid: UN
  lid: '{% _🗣️ 📝eng-Latn📝 Hapi_api_UN_HDX_slug 📝eng-Latn📝 🗣️_ %}'
  openapi_filum: /api/UN/HDX/eng/openapi.yaml
  # title: HDX - The Humanitarian Data Exchange API
  title: '{% _🗣️ 📝eng-Latn📝 Hapi_api_UN_HDX_titulum 📝eng-Latn📝 🗣️_ %}'
  opus_in_progressu: true
  noindex: true

- xdefallo: /mul-Zyyy/api/UN/HDX/
  linguam: por-Latn
  typum: api
  gid: UN
  lid: '{% _🗣️ 📝por-Latn📝 Hapi_api_UN_HDX_slug 📝por-Latn📝 🗣️_ %}'
  openapi_filum: /api/UN/HDX/eng/openapi.yaml # TODO: _[por] Criar uma versão em português [por]_
  # title: HDX - The Humanitarian Data Exchange API
  title: '{% _🗣️ 📝por-Latn📝 Hapi_api_UN_HDX_titulum 📝por-Latn📝 🗣️_ %}'
  noindex: true

# (...)

Gera o seguinte sitemap

  <!-- /sitemap.xml -->
  <!-- (...) -->

  <url>
    <loc>/mul-Zyyy/api/UN/HDX/</loc>
    <lastmod>2021-06-14T02:07:48-03:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.1</priority>
    <xhtml:link
      rel="alternate" hreflang="x-default"
      href="/mul-Zyyy/api/UN/HDX/" />
    <xhtml:link
      rel="alternate" hreflang="en"
      href="/eng-Latn/api/UN/humanitarian-data-exchange/" />
    <xhtml:link
      rel="alternate" hreflang="pt"
      href="/por-Latn/api/UN/humanitarian-data-exchange/" />
    <xhtml:link
      rel="alternate" hreflang="ar"
      href="/arb-Arab/api/UN/%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1%D8%A7%D8%AA/" />
  </url>

  <!-- (...) -->

O que, idealmente, deveria ser feito

Como a ideia é facilitar para deixar o máximo de trabalho para pessoas tradutoras, inicialmente temos que pelo menos replicar o que é feito com as páginas HTML da API, mas agora para schemas.

Porém os arquivos YAML de API são um pouco repetitivos. Isso quer dizer que a nova versão dessa logica em ruby precisa implementar algumas melhorias.

Isso vai dar trabalho. Porém vale a pena fazer isso antes de expandir o projeto.

fititnt commented 3 years ago

Humm... que interessante. Até que primeiro rascunho demorou muito menos do que eu imaginava.

Com a adição de um estágio de construção intermediário (isto é, que converte _data/schemam.yml => _data/expandendum/schemam.json), menos linhas de código são necessárias em Ruby (e de quebra, em teoria, os arquivos principais do Hapi ficam "mais portáveis" caso no futuro tenha que ser parcialmente re-escrito em outras linguagens de programação, porém creio que teríamos que ter MUITOs dados para precisar migrar para NodeJS por questões de performance).

Outro ponto é que o arquivo _data/schemam.yml usa informações do _data/referens.yml para recomendações adicionais de como ele expande em muito mais páginas de entrada.

Creio que vou procurar pelo menos estabilizar e depois documento essa parte nova.

No momento as páginas de entrada dos esquemas de dados ainda vão exibir informações meio brutas.

fotos de tela

1.

Captura de tela de 2021-06-14 09-29-14

  1. Captura de tela de 2021-06-14 09-29-23

  2. Captura de tela de 2021-06-14 09-29-37

fititnt commented 3 years ago

Que lindo <3! O Hapi::ArchivumSimplex (_plugins/jekyll_hapi_schemam.rb), já está conseguindo gerar arqivos simples (isto é, traduzindo arquivos que não são HTML final, o que inicialmente pode ser JSON, SQL, GraphQL, mas depois pode ate mesmo ser build scripts ou pequenos snipeets de codigo) como parte da geração dos esquemas de dados.

Creio que até podemos por os OpenAPI agora como um subprojeto dos schemas (e dai as páginas de API usam).

Parte do que estamos fazendo é próximo do OpenAPI generator (https://github.com/OpenAPITools/openapi-generator) porém nosso foco é tradução extraída de planilhas HXL (vide Convenção de tags HXL em conjunto de dados para armazenar Memória de Tradução (eng: HXL translation memory TM) #58