Skip to content

[PDF Generator] Extrair lógica de citação (CITE AS) para módulo dedicado packtools.sps.formats.pdf.citation #1382

Description

@Rossi-Luciano

Descrição da tarefa

No review do PR #1350 (issue #1349, campo "CITE AS"), o revisor sugeriu concentrar a lógica de citação num módulo dedicado, em vez de deixá-la espalhada em pipeline/xml.py (hoje com mais de 1300 linhas, misturando extração de corpo, tabela, figura, rodapé e citação no mesmo arquivo). É uma reorganização pura, sem mudança de comportamento - separada do PR #1350 para não bloquear um fix já pronto.

Criar packtools.sps.formats.pdf.citation, responsável por:

  • Seleção dos metadados bibliográficos (hoje _extract_citation_authors, _build_csl_reference em pipeline/xml.py)
  • Transformação para CSL e aplicação do estilo (hoje _format_via_citeproc, build_full_citation)
  • Escolha entre nota editorial, citação gerada e fallback (hoje uma linha em pipeline/docx.py: xml_pipe.extract_cite_as_part_one(xml_tree) or xml_pipe.build_full_citation(...))

Subtarefas

  • Mover extract_cite_as_part_one, _extract_citation_authors, _build_csl_reference, _format_via_citeproc, build_full_citation de pipeline/xml.py para o novo módulo citation.py
  • Mover a lógica de escolha nota-vs-citação-gerada de pipeline/docx.py para o novo módulo
  • Atualizar os pontos de chamada e imports afetados
  • Mover/ajustar os testes correspondentes de test_xml.py para um test_citation.py dedicado
  • Confirmar que a suíte completa de tests/sps/formats/pdf/ continua passando, sem mudança de comportamento

Considerações e notas

Reorganização pura, sem mudança de comportamento esperada.

Explicitamente fora de escopo (o próprio revisor retratou esse trecho no review do PR #1350): reaproveitar packtools.sps.models.article_contribs para os metadados de contribuidores, e refatorar os extratores existentes do pipeline PDF.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions