{"id":22901269,"url":"https://github.com/mooerslab/modular-annotated-bibliography-typst","last_synced_at":"2026-03-19T23:57:06.099Z","repository":{"id":260057288,"uuid":"878728046","full_name":"MooersLab/modular-annotated-bibliography-typst","owner":"MooersLab","description":"modular, illustrated, and enhanced annotated bibliography in typst","archived":false,"fork":false,"pushed_at":"2024-11-01T17:29:29.000Z","size":254,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T05:41:52.645Z","etag":null,"topics":["annotation-reuse","biblatex","bibliography","information-retrieval","knowledge-management","modularity","reserarch-tools","typst-template"],"latest_commit_sha":null,"homepage":"","language":"Typst","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MooersLab.png","metadata":{"files":{"readme":"README.md","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":"2024-10-26T00:39:33.000Z","updated_at":"2024-11-01T17:29:32.000Z","dependencies_parsed_at":"2025-02-07T03:41:42.470Z","dependency_job_id":"93919976-61a1-41b1-aafa-0451d5289737","html_url":"https://github.com/MooersLab/modular-annotated-bibliography-typst","commit_stats":null,"previous_names":["mooerslab/modular-annotated-bibliography-typst"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MooersLab/modular-annotated-bibliography-typst","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fmodular-annotated-bibliography-typst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fmodular-annotated-bibliography-typst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fmodular-annotated-bibliography-typst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fmodular-annotated-bibliography-typst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MooersLab","download_url":"https://codeload.github.com/MooersLab/modular-annotated-bibliography-typst/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MooersLab%2Fmodular-annotated-bibliography-typst/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28274265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T02:08:32.518Z","status":"ssl_error","status_checked_at":"2026-01-11T02:08:32.093Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["annotation-reuse","biblatex","bibliography","information-retrieval","knowledge-management","modularity","reserarch-tools","typst-template"],"created_at":"2024-12-14T01:32:38.271Z","updated_at":"2026-01-11T03:03:20.952Z","avatar_url":"https://github.com/MooersLab.png","language":"Typst","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Version](https://img.shields.io/static/v1?label=modular-annotated-bibliography-typst\u0026message=0.2\u0026color=brightcolor)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\n\n# Template for making an enhanced and illustrated annotated bibliography with Typst using BibLaTeX\n\nAnnotated bibliographies are used to prepare review articles and for self-study in a new field.\nThe classic annotated bibliography could be enhanced with graphical objects to assist in the recall of the article content. \nIllustrations are worth a thousand words per image and aid in locating the desired entry for rereading.\n\n\n\u003cimg width=\"1164\" alt=\"Screenshot 2024-10-26 at 5 32 22 AM\" src=\"https://github.com/user-attachments/assets/2df99895-ce1e-461e-b83d-3957b863dfa0\"\u003e\n\nA nice introduction to Typst in October 2024 by Dr. Chase Brown of the University of Central Florida is found [here](https://mediasite.ouhsc.edu/Mediasite/Channel/python/browse/null/most-recent/null/0/null).\n\n## Quick start on the typst.app\nUnlike the situation with Overleaf, it is not possible to upload into the *typst.app* a project as a zip file.\nUntil the day that I create a template project for the typst universe, you will have to copy the contents of each file into files within your project folder on typst.\nDue to this labor, I kept this template to a minimum.\n\n1. Download the mab.zip file (mab stands for modular annotated bibliography).\n2. Unzip it.\n3. Upload the files to a new project on the [typst.app](https://typst.app/).\n4. Open the `main.typ` file. The PDF should appear. If not, refresh the browser window.\n\nNote that the package imports are stored in the `template.typ` file, imported by the other typ files, including the bibNotes. This means that only the namespaces in the `template.typ` file must be changed from `@preview` to `@local` when running the project locally. The files outside of the zipped folder have the `@local` namespace.\nAlso, the font in the `template.typ` file in the zip file is set to one that works online. \nThe font in the loose `template.typ` is set to *Helvetica* to use my local system's fonts.\n\n## Local install\n\n1. Replace the `preview` namespace with the `local` namespace in the files in the zipped folder or download the loose files outside the zippd folder.\n2. Install the following packages locally:\n    - in-dexter\n    - glossarium\n    - wrap-it\n3. Run `typst compile main.typ`. The PDF will appear. Alternatively, open `main.typ` in a text editor and run `tinymist` from the same directory in the terminal. The compiled file should appear in the default browser.\n\n## Role of template.typ\n\nThis file contains settings that differ between the files for **typst.app** in the zip file and the loose files for local use.\n\n- Differences in package namespaces.\n- Differences in version numbers of the packages used.\n- Differences in fonts available for use.\n\n\n## The problem that this repo addresses\nThe current support for annotated bibliographies using LaTeX or org-mode is limited to supporting the automated insertion of a few sentences in a single paragraph.\nThe result is rather dull.\nThey depend upon the annotation in an `annote` or `annotation` field inside the bibliographic entry in a bibliographic file.\nYou have to go through extra measures to be able to introduce blank lines between paragraphs if you are using BibTeX. \nIf you are using BibLaTeX, the situation is even worse.\nYou must use an empty display math macro to introduce a blank line between paragraphs.\n\n## The solution\nThe workaround is to import the annotations from external files to evade mingling by the bibliography processing software.\nThe annotations are stored in one typst file per citation.\nThese files have the cite key as their file name.\n\n\u003cimg width=\"543\" alt=\"filetreeOnTypstApp\" src=\"https://github.com/user-attachments/assets/c4edd529-89fc-44b5-8a3b-5a4a338fc7a1\"\u003e\n\n\n## Adding to the bibliography\n\nNote: the zip file uses the `preview` namespace on the `typst.app`. The loose files in the repo use the `local` namespace for use with locally installed typst packages. \n\n1. Create a typ file for each entry and store it in the bibNotes folder. Include the following on the top line of each file: #import \"../template.typ\": *\n2. Store associated image files in the images subfolder.\n3. Inject the bibliographic entry in a heading by calling with its cite key.\n4. Enjoy!\n\n\u003cimg width=\"1110\" alt=\"Screenshot 2024-10-26 at 5 42 34 AM\" src=\"https://github.com/user-attachments/assets/52f38e75-f604-41ae-9e39-2edfb38fd8ee\"\u003e\n\n## Typst.app\n\nThe online web service, **typst.app**, provides live previews. \nThis provides the instant gratification that so many crave.\nThis also accelerates debugging the source code.\nThe web service also provides easy access to other packages.\nThe experience of writing the annotated bibliography on the **typst.app** is more enjoyable than doing the same task with Overleaf.\nDoing this task on either web service is more fun than doing it locally.\n\nThe files for a project can be downloaded in a zip file by clicking on the backup button.\n\n\n\n### Downsides to Typst.app\n- The supported fonts on the webservice differ from locally available fonts.\n- No strong support from sourcing files outside of the current project.\n- The manual installation of these packages locally is convoluted; a package manager for typst packages is needed.\n\n## Features\n\n- Modular annotations that can be reused in related projects. Unfortunately, typst has weak support for file paths. The annotations must reside in a sub-folder of the current project. You could store these in a private GitHub repository and then pull the file to other projects for reuse.\n  - Support for embedding images and tables with captions in the figure environment.\n  - Support for type set equations.\n  - Support for including code listings.\n  - An index.\n- A list of acronyms.\n- A glossary.\n- A bibliography that includes entries that are outside the annotated bibliography.\n- Table of contents with hyperlinks to accelerate navigation.\n- Header with running title and page numbers in X of N pages to ease reassembly of printed version when mixed with other printouts while traveling.\n- Uses BibLaTeX. If you have BibTeX entries, you need to delete the *annote* fields. No further changes should be required.\n\n\u003cimg width=\"1190\" alt=\"toc\" src=\"https://github.com/user-attachments/assets/16402c07-84c7-4fff-854f-758e4bada18c\"\u003e\n\n## Limitations\n\nThe practical limit to the number of imported external files is unknown.\n\n\n## Possbile alternatives\nThis website has other repositories for templates to make modular annotated bibliographies. \nThey use LaTeX.\nFrom prior experience importing about 370 external files into a single LaTeX document on Overleaf, I know these LaTeX variants can create an extensive modular and illustrated annotated bibliography.\nThe downside to OverLeaf is that you must click the **compile** button to have your edits deployed in the exported PDF, which happens automatically with the live previews provided by the typst.app web service.\n\n\n## Bash script to copy files from the git cloned folder to the project folder \n\nAfter using the code below, I can copy the required files to a local writing project by entering in the terminal `mabtyp 0397`.\nI include the same function with the name elements reversed if I do not recall the proper order in several days.\nThe four-digit number is mapped to a writing project in a database.\nThis writing project number is used to identify files for a particular project.\n\n\n\n```bash\nfunction mabtyp {\necho \"Create a modular annotated bibliography (mab) subfolder and populate with required files with project number in the title.\"\nif [ $# -lt 1 ]; then\n  echo 1\u003e\u00262 \"$0: not enough arguments\"\n  echo \"Usage1: mabtyp projectIndexNumber\"\n  return 2\nelif [ $# -gt 1 ]; then\n  echo 1\u003e\u00262 \"$0: too many projectIndexNumber\"\n  echo \"Usage1: mabtyp projectIndexNumber\"\n  return 2\nfi\nprojectID=\"$1\"\nmkdir mab$1\ncd mab$1\ncp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/main.typ mab$1.typ\ncp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/mabib0573.bib mab.bib\ncp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/template.typ .\ncp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/glossary.typ .\ncp -R ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/bibNotes .\n}\n\nfunction typmab {\necho \"Create a modular annotated bibliography (mab) subfolder and populate with required files with project number in the title.\"\nif [ $# -lt 1 ]; then\n  echo 1\u003e\u00262 \"$0: not enough arguments\"\n  echo \"Usage1: typmab projectIndexNumber\"\n  return 2\nelif [ $# -gt 1 ]; then\n  echo 1\u003e\u00262 \"$0: too many projectIndexNumber\"\n  echo \"Usage1: typmab projectIndexNumber\"\n  return 2\nfi\nprojectID=\"$1\"\nmkdir mab$1\ncd mab$1\ncp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/main.typ mab$1.typ\ncp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/mabib0573.bib mab$1.bib\ncp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/template.typ .\ncp ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/glossary.typ .\ncp -R ~/6112MooersLabGitHubLabRepos/modular-annotated-bibliography-biblatex-typst/bibNotes .\n}\n```\n\nI also use this index number at the start of my folder name for each project.\nI store the project folder in my home directory at the top level to ease navigation to a project folder.\nI enter the index number and then hit the tab key to autocomplete the folder name.\nI use [Oh-my-zsh's(https://ohmyz.sh/) support for auto-completion in the zsh shell.\nUpon auto-completion of the folder name, it becomes the current working directory, saving me a step. \n\n\n### Python scripts for converting a list of citekeys to \n\nYou have full control over the order of the bibliographic entries.\nThe traditional approach is to list them in alphabetic order.\nThis order can be reinforced by either the table of contents or a literature cited section made with the plain bibliographic style that assigns numbers to the citations in alphabetical order regardless of their citation order.\nThe citations that are out of order become obvious upon rendering of the file. \n\nIf the number of entries is large and in alphabetical order when you decide to regroup the entries, you are likely to create errors if you try to do the reordering by copying and pasting.\nInstead, you can reorder a list of the side keys in an external file.\nYou can then apply a script, or an elisp function in Emacs, to generate the code that will inject the cite key into the heading and it is the location and will also include the associated bibNote file.\n\n\n|  List format          |  Script                                         -          |\n|:----------------------|:-----------------------------------------------------------|\n| Markdown, org-mode    |  mdList2typList.py                                         |\n\n\n### Related repositories\n\n[Glossary conversion](https://github.com/MooersLab/latex-gloassaries-to-typst-gloassarium)\n\n\n## Update history\n\n|Version  | Changes                                                                                                                                                                                               | Date                           |\n|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------|\n|  0.1       | Added badges, funding, and update table.  Initial commit.                                                                                                                   | 2024 October 26        |\n|  0.2       | Switched to using `template.typ` to import of packages.  Stored the preview variants in the zip file for use online in *typst.app*.                                         | 2024 October 27       |\n|  0.3       | Added script to reformat bibliographic items.                                                                                                                               | 2024 October 28       |\n\n\n## Sources of funding\n\n- NIH: R01 CA242845\n- NIH: R01 AI088011\n- NIH: P30 CA225520 (PI: R. Mannel)\n- NIH: P20 GM103640 and P30 GM145423 (PI: A. West)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmooerslab%2Fmodular-annotated-bibliography-typst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmooerslab%2Fmodular-annotated-bibliography-typst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmooerslab%2Fmodular-annotated-bibliography-typst/lists"}