Symbolon packs

kausalflow/lightkone / components/citation-key/versions/1/symbolon.toml · raw

[contract]
id = "lightkone/citation-key"
version = 1
title = "Give new papers lightkone's citation keys"
description = """
Gives each new paper a BibTeX citation key the way lightkone does when papers
are added, in Paperpile's style: Hinton2012-ip. Keys are unique within the
library, and a key, once given, never changes, so LaTeX documents keep
working.

Drafts are handled in order. Each key given is taken for the drafts after it.

  1. A draft that already has a key (non-empty) that is not taken keeps it.
  2. Otherwise the key is BASE-SUFFIX:
     BASE    the first author's surname (the part before the first comma),
             decomposed with Unicode NFKD, keeping only the ASCII letters
             A-Z and a-z; "Anon" when there is no first author or nothing is
             left. Its first letter is upper-cased, the rest kept as is.
             Then the year, if the draft has one.
     SUFFIX  the title lower-cased, with every character other than a-z and
             space removed (so accented letters disappear, they are not
             decomposed), split on single spaces, keeping words longer than
             3 letters. SUFFIX is the first letter of the first such word and
             the first letter of the second, or of the first again when there
             is only one. With none, "xx".
  3. If BASE-SUFFIX is taken, try BASE-SUFFIX2, BASE-SUFFIX3, ... and use the
     first that is free.
"""
regenerability = "disposable"
license = "Proprietary (kausalflow)"
authors = ["kausalflow/lightkone"]

[entrypoint]
function = "run"

[requires]
network = []
credentials = []
state = []
permissions = []

[spec]
seed = 0
max_examples = 200
timeout_seconds = 300