{"id":16718483,"url":"https://github.com/josephcslater/vitae","last_synced_at":"2025-10-29T12:43:25.701Z","repository":{"id":62587591,"uuid":"163771284","full_name":"josephcslater/vitae","owner":"josephcslater","description":"python tools for building curriculum vitae and other documents from bibtex file. ","archived":false,"fork":false,"pushed_at":"2024-03-20T15:21:31.000Z","size":214,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-04T09:20:51.596Z","etag":null,"topics":["citations","curriculum","python","resume-creator","resume-template","vitae"],"latest_commit_sha":null,"homepage":null,"language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/josephcslater.png","metadata":{"files":{"readme":"readme.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-01T22:34:33.000Z","updated_at":"2024-03-20T15:21:35.000Z","dependencies_parsed_at":"2025-03-18T23:15:47.630Z","dependency_job_id":null,"html_url":"https://github.com/josephcslater/vitae","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/josephcslater/vitae","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephcslater%2Fvitae","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephcslater%2Fvitae/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephcslater%2Fvitae/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephcslater%2Fvitae/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/josephcslater","download_url":"https://codeload.github.com/josephcslater/vitae/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josephcslater%2Fvitae/sbom","scorecard":{"id":533485,"data":{"date":"2025-08-11","repo":{"name":"github.com/josephcslater/vitae","commit":"775ec15010d20315affd62bc4169e6bfd74de142"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/28 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 3 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-20T06:18:46.631Z","repository_id":62587591,"created_at":"2025-08-20T06:18:46.632Z","updated_at":"2025-08-20T06:18:46.632Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281625157,"owners_count":26533338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-29T02:00:06.901Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["citations","curriculum","python","resume-creator","resume-template","vitae"],"created_at":"2024-10-12T21:37:20.208Z","updated_at":"2025-10-29T12:43:25.658Z","avatar_url":"https://github.com/josephcslater.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n.. image:: http://pepy.tech/badge/vitae\n   :target: http://pepy.tech/project/vitae\n   :alt: PyPi Download stats\n\nvitae\n=====\n\nA Python module for building curriculum vitae and other documents from a ``BibTeX`` file. ``vitae`` leverages bibtexparser_, `LaTeX`_, and pandoc_ to streamline getting citations of your papers into the formats you need quickly without manual intervention. Of course, with many settings, it can be a bit tedious. I personally recommend setting up a Jupyter_ notebook with the commands you regularly execute available there. Alternatively, you can call it from the terminal which allows it to work inside a more complex workflow.\n\nPurpose\n-------\n\nI hate formatting citations. It's tedious, and error-prone. Further, when I build my CV, I tend to muck it up and leave something out, mis-sort it, duplicate it accidentally, etc. So, I need a tool to do a better job with what is a menial task.\n\nInstall\n-------\n\n.. code::\n\n  pip install vitae\n\nor\n\n.. code::\n\n   pip install --user vitae\n\nUsage\n-----\n\nPlease see the brief `demo Jupyter notebook`_. It's very brief. I need to add more. The whole package is basically two functions. Please read the help:\n\n``makemycv``\n~~~~~~~~~~~~\n\nTo do anything useful here, you must have `LaTeX`_ with BibTeX installed. If you don't use `LaTeX`_, this module isn't the place to start. Sorry.\n\nThe first function here, ``makemycv``, will take a few arguments and put sorted ``\\bibentry`` commands into ``.tex`` files with names corresponding to `BibTeX entry \u003chttps://en.wikibooks.org/wiki/LaTeX/Bibliography_Management#BibTeX\u003e`_ types. In doing so, you can then simply use an ``\\input`` command to embed all of these citations right in your document in an enumerated environment.\n\nYou'll need the following in the header of your LaTeX cv file.\n\n.. code::\n\n  \\usepackage{bibentry}\n  \\newcommand{\\enquote}[1]{``#1''}\n  \\makeatletter\\let\\saved@bibitem\\@bibitem\\makeatother\n  \\usepackage[colorlinks=true]{hyperref}\n  \\makeatletter\\let\\@bibitem\\saved@bibitem\\makeatother\n\nThe last 3 lines are only necessary if you want to use the ``hyperref`` package, which has some compatibility issues with bibentry.\n\nThen put:\n\n.. code::\n\n  \\input{articles.tex}\n\nwhere you want articles listed, etc.\n\nThen, with your maintained `.bib` file, in the same location as your cv (for now), and **within the same directory as your cv and cv.bib file** open a python terminal and type.\n\n.. code::\n\n  \u003e\u003e\u003e import vitae\n  \u003e\u003e\u003e vitae.makemycv()\n\nAlternatively, you can type::\n\n  \u003e python -c  \"import vitae; vitae.makemycv()\"\n\nin your terminal (Anaconda Terminal if you are using Anaconda Python on Windows).\n\nThis will make your ``article.tex`` file along with the other defaults (see the help on ``makemycv``).\n\nNote that that are a ton of options for ``makemycv``. Please use::\n\n  \u003e\u003e\u003e import vitae\n  \u003e\u003e\u003e help(vitae.makemycv)\n\nTo see how to tweak it to your needs.\n\nIf you try ``vitae``, please understand:\n\na. No warrantee. This is still a work in progress.\nb. Please provide your feedback.\nc. Please help! I can use help with additional portions.\n\nIf you don't use LaTeX, this isn't easy enough for you yet. It's a long ways away. However, texblog_ has a decent start in writing a `Résumé in LaTeX`_ . It *doesn't* include the paper inclusion trick being used by ``vitae``.\n\n``write_bibs``\n~~~~~~~~~~~~~~\n\nThe second function is ``write_bibs``. This allows you to convert bibs with a bunch of constraints into a format that pandoc_ can output. It REQUIRES a full `LaTeX`_ and pandoc_ installation that works in your terminal environment.\n\nConstraints include:\n\n1. Since a year\n2. Number\n3. Types of publications\n\nFor instance:\n\n.. code::\n\n  \u003e\u003e\u003e import vitae\n  \u003e\u003e\u003e vitae.write_bibs(bibfile = '/Users/jslater/Documents/Resumes/cv.bib',\n                       bibliographystyle='aiaa',\n                       outfile_name='try.html',\n                       since_year=2008)\n\nAlternatively, from a command line::\n\n  \u003e python -c  \"import vitae; vitae.write_bibs(bibfile='cv.bib',\n                                               bibliographystyle='aiaa',\n                                               outfile_name = 'bibs.html',\n                                               since_year=2008)\"\n\nHow I use it\n------------\n\nI have a Makefile that I use for tasks that I am creating. The first is a simple one for building my cv, the contents of which are::\n\n\thelp:\n\t\t@echo \"Please use \\`make \u003ctarget\u003e' where \u003ctarget\u003e is one of\"\n\t\t@echo \"  cv         to make standard pdf cv\"\n\t\t@echo \"  pdf        see cv\"\n\n\tcv:\n\t\tpython -c  'import vitae; vitae.makemycv(silent = True)'\n\t\tpdflatex cv\n\t\tbibtex cv\n\t\tpdflatex cv\n\n\tpdf:\n\t\tcv\n\nSummary\n-------\nPlease see the full help on each function.\n\nVitae is on pypi_ but you can pip install the latest, and possibly non-working, version right now from github (I love bug reports!):\n\n.. code::\n\n  pip install git+https://github.com/josephcslater/vitae\n\nHelp\n----\n``vitae`` uses luatex_ to enable unicode characters. On Ubuntu, the base tetex install doesn't include the necessary file ``luaotfload``. To resolve this open a terminal and type::\n\n  sudo apt install texlive-luatex\n\nRelease notes:\n--------------\n\n1.1.3: Work-around for pandoc_ failure to convert ``{\\em`` correctly.\n\n1.1.2: Unify name of ``bibtex_types`` and ``entrytypes``. Will issue a warning\n       if you incorrectly use ``entrytypes``, but will still work.\n\n1.1.1: Included test bib file that can easily be accessed from notebook.\n       Corrected incorrect help in ``makemycv``\n       Minor non-functional corrections.\n\n1.1.0: Numerous minor fixes:\n\n- ``write_bibs`` failed when path not explicitly included.\n- Quieted latex output.\n- Moved to luatex_ to enable unicode characters.\n- Readme updated to reflect terminal usage.\n\n1.0.0: You can now convert your bib citations to any format that pandoc_ can handle. I think.\n\n0.1.1: You can now select only ``bibentries`` by a defined author. Note that ``authornames`` are not always all that unique. You need to ensure that all ``authornames`` are perfect for the selected author. That means initials, etc. I hope to use fuzzywuzzy for this someday- it's a bit complicated and a judgement call.\n\n0.1.0: First release. It works, it's useful, it's not done, but it does what I needed it for. You can now use \\\\input statements with bibentry instead of typing your own citations by hand.\n\n\nFuture plans\n------------\n\n1. Preferences.\n\n  a. Reader (doesn't overwrite specified arguments)\n\n  b. Writer (configurator on call or when it doesn't exist)\n\n  c. Editor?\n\n2. Bug fixes when I find them. Any other suggestions?\n\nWhat else would be nice?\n\n.. _pandoc: http://pandoc.org\n.. _luatex: http://www.luatex.org\n.. _texblog: https://texblog.org\n.. _`Résumé in LaTeX`: https://texblog.org/2012/04/25/writing-a-cv-in-latex/\n.. _`LaTeX`: https://www.latex-tutorial.com/installation/\n.. _bibtexparser: https://bibtexparser.readthedocs.io/en/master/\n.. _Jupyter: https://www.Jupyter.org\n.. _Makefile: https://www.gnu.org/software/make/manual/html_node/Introduction.html\n.. _`demo Jupyter notebook`: https://github.com/josephcslater/vitae/blob/master/Vitae.ipynb\n.. _pypi: https://pypi.org/project/vitae/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosephcslater%2Fvitae","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosephcslater%2Fvitae","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosephcslater%2Fvitae/lists"}