Add golangci-lint for linting and refactor the code based on the
feedback from running it.
Changes:
- Add configuration for golangci-lint.
- Break the large function in create.go into smaller ones.
- Rename internal/templateFuncs to internal/templatefuncs to remove
upper case letters in the package name.
- Add a mage target for lint tests.
- Use go generate and a third party tool called jsonschemagen to
auto-generate the CV data type from the JSON schema.
- Update the schema by changing number to integer to ensure that the
integers are set to the correct type.
- Refactor some code.
- feat: add a field for the type of work location (e.g. hybrid)
- refactor: move the Tex and PDF generating code to a new internal
package which also moves the templates there as well.
- fix: add a default value for the --output field for the generate
command.
- fix: add an error for when the user does not specify an input file
when generating the PDF.
- fix: the package name for each of the files in the templateFuncs
package.
Allow users to limit the amount of employment history shown in the PDF
document by specifying a time range. This is a breaking change as the
structure of the CV needs to slightly change. The employment's start and
end dates need to be represented as integers.
Additional refactoring:
- The CV type is now in the internal cv package.
- The template functions are now in the internal templateFuncs package.