blob: 088d131dacf2a672ecce9a60368a290cc7d769c0 [file] [log] [blame] [view] [edit]
# Generate Emoji
TODO flesh this out with the build details.
## Candidate Data
Open
[candidateData.txt](https://github.com/unicode-org/unicodetools/blob/main/unicodetools/org/unicode/tools/emoji/candidateData.txt),
and update to current status from the UTC.
* Status=Final Candidate, Draft Candidate, or Provisional Candidate
* It affects all following characters.
* So when as set moves from Provisional to Draft, the Status needs to be
changed.
* Quarter, Proposal, and After are **prefix**, and affect *all* characters up
to when changed.
* Then comes the code point
* Provisional names have a 6 digit code, which is
10<2digit-year><2digits>, like 101956
* The 2digit-year is the year it is targeted for.
* The 2digits are assigned sequentially, but ordering doesn't matter
* Draft codes are regular Unicode codes (assigned by UTC)
* The code is used to fetch the image from:
* {workspace}/unicode-draft/reports/tr51/images/proposed/
* like: proposed_101956.png
* Then specific modifiers like:
* Name=red-haired person
* Keywords= ginger | redhead
* Emoji_Modifier_Base
* Emoji_Gender_Base
* The names can be in any case (they are lowercased)
* The keywords should be in the final case (allowing uppercase like Jolly
Roger)
* The gender and modifier variants are generated automatically
* The modifier variants are generated according to the emoji properties
* The gender variants are generated according to
EmojiData.getGenderBases()
Example:
```
Proposal=L2/17-082, L2/17-011, L2/16-147, L2/16130, L2/16-008, L2/14-173
After=👃🏿
U+1F9B0
Name=red-haired
UName=EMOJI COMPONENT RED HAIR
Keywords= ginger | redhead
Emoji_Component
Comment=Component for use in <a target='doc' href='http://unicode.org/reports/tr51/proposed.html#def_RGI'>RGI</a> sequences. Isolated images should have dotted borders.
```
Open GenerateEmoji.java and look at showCandidateStyle. Fix topHeader (right
instance) and getDoubleLink("Provisional Candidates") as necessary for new
status (eg changing Provisional to Draft).
Open tr51/images/proposed/ and copy in any missing images. Follow the
requirements on
[selection.html#images](https://www.unicode.org/emoji/selection.html#images).
## Running the tool
Run GenerateEmoji.java to regenerate all charts (including emoji-candidates).
Sanity check, fix, and iterate as necessary.
There are two environment variables (in Eclipse, you can create different
Configurations for these)
```
-Demoji-abbr => creates an abbreviated version
-Demoji-beta => creates a beta version (only necessary if producing both a current and past version
```
## Draft Candidates
Once a character is added to Draft candidates, then the draft data files have to
be updated as well. In particular, they need to be added to
/unicodetools/data/emoji/X.0:
1. /source/emojiOrdering.txt
2. /emoji-data.txt
1. The gender and skin-tone variants are generated automatically
3. Move the proposal information from candidateData.text to proposalData.txt.
Use `CandidateData.generateProposalData` to get the list, but verify
4. ...
## Final Candidates
Moving from final candidates involves a number of changes.