Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
fititnt opened this issue Jun 14, 2021 · 2 comments

Comments

@fititnt
Copy link
Member

fititnt commented Jun 14, 2021

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
Copy link
Member Author

fititnt commented Jun 14, 2021

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

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

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

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

@fititnt
Copy link
Member Author

fititnt commented Jun 15, 2021

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

fititnt added a commit that referenced this issue Jun 15, 2021
…!!! Não precisamos depender de scripts externos agora
fititnt added a commit that referenced this issue Jun 15, 2021
…quer preparar traduções na splanilhas, mesmo original em inglês)
fititnt added a commit that referenced this issue Jun 15, 2021
…pagina de exibição de um esquema de dados (que pode conter varios arquivos)
fititnt added a commit that referenced this issue Jun 15, 2021
…en; removido antigo _data/L10n.hxl.csv; rascunho de tela individual de esquemas
fititnt added a commit that referenced this issue Jun 15, 2021
fititnt added a commit that referenced this issue Jun 16, 2021
…rão no fim de página (algumas dependem de alteração no Ruby para informar alternativa correta)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant