## Template Keys

## Value keys

Here are lists of value keys that could be used in BibDesk export templates.

### General

Key | Description
--- | ---
self |
description |

### Document

Key | Description
--- | ---
fileName |
fileURL |
publicationsUsingTemplate |
currentDate |
InfoKey | InfoKey can be any key appearing in the document info

### Publication

Key | Description
--- | ---
pubType |
citeKey |
citation |
title |
container |
pubAuthorsForDisplay |
pubDate |
dateAdded |
dateModified |
currentDate |
itemIndex |
fileOrder |
bibTeXString |
RISStringValue |
endNoteXMLValue.XMLString |
RSSStringValue |
MODSXMLValue.XMLString |
linkedText |
localUrlPath | deprecated, use the localFiles collection key
localURL | deprecated, use the localFiles collection key
remoteURL | deprecated, use the remoteURLs collection key
textSkimNotes | deprecated, use the localFiles collection key
richTextSkimNotes | deprecated, use the localFiles collection key
fields.FieldName | FieldName can be the name of any field
urls.FieldName | FieldName can be the name of any local or remote URL field, these are not the linked files and URLs

### Field

Key | Description
--- | ---
name |
value |
bibTeXString |
inherited |

### Author

Key | Description
--- | ---
name |
normalizedName |
abbreviatedName |
abbreviatedNormalizedName |
unpunctuatedAbbreviatedNormalizedName |
lastName |
firstName |
vonPart |
jrPart |

### Macro

Key | Description
--- | ---
name |
value |
bibTeXString |

### Local file, Remote URL

Key | Description
--- | ---
URL |
path |
bibTeXString |

### Global

Key | Description
--- | ---
date |
userName |
fullUserName |

## Collection keys

Below are lists of collection keys that could be used in BibDesk export templates.

### Document

Key | Description
--- | ---
publications |
macros |

### Publication

Key | Description
--- | ---
requiredFields | Drops already used fields
optionalFields | Drops already used fields
defaultFields | Drops already used fields
allFields | Drops already used fields
persons.FieldName | FieldName can be any person field
authors |
editors |
authorsOrEditors |
fieldComponents.FieldName | FieldName can be any multi-component field
keywords |
localFiles |
existingLocalFiles |
remoteURLs |
usedMacros |
usedLocalMacros |

### URLs and paths

Key | Description
--- | ---
SkimNotes |

### Global

Key | Description
--- | ---
macros |

## Value modifier keys

### Casing

Key | Description
--- | ---
capitalizedString |
lowercaseString |
uppercaseString |
uppercaseFirst |
lowercaseFirst |
titleCapitalizedString |

### Cleaning

Key | Description
--- | ---
htmlString |
xmlString |
csvString |
tsvString |
stringByRemovingTeX |
stringByRemovingCurlyBraces |
stringByRemovingSurroundingWhitespace |
stringByCollapsingWhitespaceAndRemovingSurroundingWhitespace |
stringByRemovingWhitespace |
stringByRemovingReturns |
stringByAddingPercentEscapes |
stringByAddingPercentEscapesIncludingReserved |
stringByReplacingPercentEscapes |
fullyEncodeAsIURI |
stringByConvertingDoubleHyphenToEndash |
stringByConvertingTripleHyphenToEmdash |
stringByConvertingHyphensToDashes |
stringByTeXifyingString |
stringByDeTeXifyingString |

### Appending

Key | Description
--- | ---
stringBySurroundingWithSpacesIfNotEmpty |
stringByAppendingSpaceIfNotEmpty |
stringBySurroundingWithSpacesIfNotEmpty |
stringByAppendingDoubleSpaceIfNotEmpty |
stringByPrependingSpaceIfNotEmpty |
stringByAppendingCommaAndSpaceIfNotEmpty |
stringByAppendingFullStopAndSpaceIfNotEmpty |
stringByAppendingCommaIfNotEmpty |
stringByAppendingFullStopIfNotEmpty |
stringByPrependingCommaAndSpaceIfNotEmpty |
stringByPrependingFullStopAndSpaceIfNotEmpty |
parenthesizedStringIfNotEmpty |

### File paths

Key | Description
--- | ---
lastPathComponent |
stringByDeletingLastPathComponent |
pathExtension |
stringByAbbreviatingWithTildeInPath |
stringByExpandingTildeInPath |
stringByDeletingPathExtension |
stringByResolvingSymlinksInPath |
stringByStandardizingPath |
stringByNormalizingPath |

### URLs and paths

Key | Description
--- | ---
linkedText |
icon |
smallIcon |
linkedIcon |
linkedSmallIcon |
textSkimNotes |
richTextSkimNotes |
absoluteString |

### Dates

Key | Description
--- | ---
description |
dateDescription |
longDateDescription |
mediumDateDescription |
shortDateDescription |
timeDescription |
longTimeDescription |
mediumTimeDescription |
shortTimeDescription |
standardDescription |
rssDescription |

### Splitting

Key | Description
--- | ---
componentsSeparatedByComma |
componentsSeparatedByAnd |
componentsSeparatedByFieldSeparators |

### Numbers

Key | Description
--- | ---
romanNumeralValue |
alphaCounterValue |
greekCounterValue |
numberByAddingOne |
numberBySubstractingOne |

## Collection modifier keys

### General

Key | Description
--- | ---
@unionOfObjects | Requires additional value key
@distinctUnionOfObjects | Requires additional value key
@unionOfArrays | Requires additional collection key
@distinctUnionOfArrays | Requires additional collection key
@arrayDroppingFirstObject |
@arrayDroppingLastObject |
@firstOneObjects |
@firstTwoObjects |
@firstThreeObjects |
@firstFourObjects |
@firstFiveObjects |
@lastOneObjects |
@self |

### Field collection

Key | Description
--- | ---
@nonEmpty |

## Collection value keys

### General

Key | Description
--- | ---
@firstObject |
@secondObject |
@thirdObject |
@fourthObject |
@fifthObject |
@seventhObject |
@eighthObject |
@ninthObject |
@tenthObject |
@lastObject |
@count |
@componentsJoinedByComma |
@componentsJoinedByAnd |
@componentsJoinedByCommaAndAnd |
@componentsJoinedByCommaAndOnlyAnd |
@componentsJoinedByForwardSlash |
@componentsJoinedBySemicolon |
@componentsJoinedByDefaultJoinString |
@componentsJoinedByCommaAndAmpersand |
@componentsJoinedByCommaAndOnlyAmpersand |
@componentsWithEtAlAfterOne |
@componentsJoinedByAndWithEtAlAfterTwo |
@componentsJoinedByCommaAndAndWithEtAlAfterThree |
@componentsJoinedByCommaAndOnlyAndWithEtAlAfterThree |
@componentsJoinedByAndWithEtAlAfterTwo |
@componentsJoinedByCommaAndAndWithEtAlAfterThree |
@componentsJoinedByCommaAndOnlyAndWithEtAlAfterThree |
@componentsJoinedByAmpersandWithSingleEtAlAfterTwo |
@componentsJoinedByCommaAndAmpersandWithSingleEtAlAfterFive |
@componentsJoinedByCommaAndAmpersandWithEtAlAfterSix |
@componentsJoinedByCommaWithEtAlAfterSix |
@arraySortedByAuthor |
@arraySortedByAuthorOrEditor |
@arraySortedByTitle |
@indexRanges |
@indexRangeStrings |