{"id":20079578,"url":"https://github.com/transpect/crossref","last_synced_at":"2026-03-05T12:32:51.142Z","repository":{"id":93859481,"uuid":"48240215","full_name":"transpect/crossref","owner":"transpect","description":"Library to implement CrossRef requests","archived":false,"fork":false,"pushed_at":"2025-07-10T08:42:30.000Z","size":1148,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-11-30T00:58:06.612Z","etag":null,"topics":["crossref","doi","jats","jats-xml"],"latest_commit_sha":null,"homepage":"","language":"XSLT","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/transpect.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-12-18T14:45:12.000Z","updated_at":"2025-07-10T08:42:34.000Z","dependencies_parsed_at":"2024-03-26T08:41:26.949Z","dependency_job_id":"d4837bfc-f46a-479a-b225-4f8fb03b94bc","html_url":"https://github.com/transpect/crossref","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/transpect/crossref","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transpect%2Fcrossref","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transpect%2Fcrossref/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transpect%2Fcrossref/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transpect%2Fcrossref/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/transpect","download_url":"https://codeload.github.com/transpect/crossref/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/transpect%2Fcrossref/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30124488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T11:11:57.947Z","status":"ssl_error","status_checked_at":"2026-03-05T11:11:29.001Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["crossref","doi","jats","jats-xml"],"created_at":"2024-11-13T15:23:30.915Z","updated_at":"2026-03-05T12:32:51.118Z","avatar_url":"https://github.com/transpect.png","language":"XSLT","funding_links":[],"categories":[],"sub_categories":[],"readme":"Crossref query and result processing automation. The input is expected to be JATS-like mixed-citations.\n\nThe query result may be converted to an InDesign script that adds linked DOIs to paragraphs with the\nstyle 'p_ref'. (It is expected that the conversion from this enriched IDML to JATS-like XML will exclude\nparagraphs that already contain DOIs.)\n\n\nPaths and placeholders:\n\nWe refer to the the parent directory of Makefile's CROSSREFTMP=$(CODE)/../tmp/crossref as \n/path/to/CROSSREFRESULTS in the sample fetchmail and procmail RCs.\n$(CROSSREFTMP) is a directory whose contents will be deleted after polling the Crossref query answer\nrecipient's mail account. The parent directory of $(CROSSREFTMP) holds log files that are not very precious\nbut that should not be deleted after each polling.\n$(CODE) is the transpect project directory. /path/to/crossref/ in the fetchmailrc should correspond to\n$(CODE)/crossref/ if https://github.com/transpect/crossref is mounted as an external or submodule below $(CODE).\n\n\nPrerequisites:\n\nfetchmail 6.3.21 or newer\nprocmail\npossibly qprint (http://www.fourmilab.ch/webtools/qprint/) or another quoted-printable decoder\nGNU make 3.81 or newer\n\n\nSteps:\n\n1. Copy infrastructure/fetchmailrc.template to infrastructure/fetchmailrc and infrastructure/procmailrc.template\nto infrastructure/procmailrc, fill in all placeholders. Use absolute paths everywhere.\n\n2. chmod 600 fetchmailrc\n\n3. Create and adapt local_defs.mk from local_defs.sample.mk according to your needs.\n\n4. In procmailrc, it should be necessary to use at most one of base64 or qprint, not both. In the template,\nthere are both. Look at the mail that you are receiving and delete the filter line that you don't need\n(if you delete the qprint line, don't forget to remove the trailing backslash in the base64 line).\nIt is also possible that the mails will already be stored as UTF-8. In this case, you only need the lower \nblock that starts with :0b:\n\n5. Create a script, for ex. infrastructure/fetch_and_process_crossref.sh, like this:\n\n#!/bin/bash\n/usr/bin/make -Bf /path/to/crossref/Makefile fetchmail 2\u003e\u00261 \u003e /path/to/CROSSREFRESULT/fetchmail-process-log_$(/bin/date '+%Y-%m-%d_%H-%M').txt\n\nMake sure it's executable. \n\n6. Create an empty fetchmail log file that corresponds to the path that you've chosen in fetchmailrc\nYou can skip this and let the backup_conf make target do the work (see 9. below).\n\n7. Create a crontab entry like this:\n\n*/5 * * * * /path/to/crossref/infrastructure/fetch_and_process_crossref.sh\n\nin order to make it poll the results every 5 minutes. Did we mention that you should use full paths \neverywhere?\n\n8. Test the whole process by submitting a crossref request like\nmake -Bf /path/to/crossref/Makefile /path/to/work/crossref/work_basename.qb.xml\nwill look for /path/to/work/$(XMLSUBDIR)/work_basename.xml, convert it to a Crossref query body\nand post it with the given Crossref credentials.\n\n9. Create a backup of local_defs.mk, infrastructure/fetchmailrc, infrastructure/procmailrc, and maybe\nalso the crontab and the empty log file. We created a make target 'backup_conf' for this. It will \ncreate an empty fetchmail log file. It will delete an existing fetchmail log file first.\nStore this backup in a safe place.\n\n10. Remember not to store credentials in revision control repositories.\n\n\nCreating a post-conversion action for the transpect web frontend is out of scope for this readme.\nAsk gerrit.imsieke@le-tex.de or maren.pufe@le-tex.de for advice on setting this up.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftranspect%2Fcrossref","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftranspect%2Fcrossref","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftranspect%2Fcrossref/lists"}