Skip to content

API & documentation cleanup #27

@tingerrr

Description

@tingerrr

In wake of #26 the API would experience a breaking change, this unavoidable if we want to support interactive forms (#25).

If we break the API, we may as well make the best of it and bring some things into unity, there are small differences in the API that I'd like to clean up to provide an overall cleaner and more consistent API to the end user. While also allowing the average contributor to write less code.

Things I had in mind:

  • Module structure
    • it could be a bit deeper to avoid having very long files
  • Documentation
    • small inconsistencies break up the flow when reading
    • required or disallowed attributes are only mentioned here and there
    • the spec version which introduced an attribute is listed for some but not for others
    • Some things are linked directly, while flags are often times simply put into CODE_BLOCKS
  • API
    • lots of code duplication for very simple attributes
      • declarative macros for defining the most common attribute definitions would be a great addition (simple writers or single argument functions)
    • methods which are only available for some subtypes for a writer are hard to find without checking the docs, prefixes like in Feature: Form Field types (PDF 1.7 Section 12.7.4) #23 could help find the right ones quicker

I would like to take this issue to discuss changes to the API before the next update, so we can minimize the amount of breaking updates we have by thinking ahead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions