{"action":"created","issue":{"url":"https://api.github.com/repos/skosch/Crimson/issues/25","labels_url":"https://api.github.com/repos/skosch/Crimson/issues/25/labels{/name}","comments_url":"https://api.github.com/repos/skosch/Crimson/issues/25/comments","events_url":"https://api.github.com/repos/skosch/Crimson/issues/25/events","html_url":"https://github.com/skosch/Crimson/issues/25","id":123057837,"number":25,"title":"Opentype features for contextual alts","user":{"login":"katef","id":1371085,"avatar_url":"https://avatars.githubusercontent.com/u/1371085?v=3","gravatar_id":"","url":"https://api.github.com/users/katef","html_url":"https://github.com/katef","followers_url":"https://api.github.com/users/katef/followers","following_url":"https://api.github.com/users/katef/following{/other_user}","gists_url":"https://api.github.com/users/katef/gists{/gist_id}","starred_url":"https://api.github.com/users/katef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/katef/subscriptions","organizations_url":"https://api.github.com/users/katef/orgs","repos_url":"https://api.github.com/users/katef/repos","events_url":"https://api.github.com/users/katef/events{/privacy}","received_events_url":"https://api.github.com/users/katef/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-12-19T03:13:46Z","updated_at":"2015-12-19T04:08:57Z","closed_at":null,"body":"Hello! I saw there's a glyph for a long-tailed Q, `Q.alt01`, and I thought I'd try that as an example for contextual alts.\r\n\r\nThe way I've implemented this involves two parts:\r\n 1. Substitute `Q` → `Q.alt01` for `salt`\r\n 2. Have `calt` match `Q u` and apply `salt` for the Q\r\n\r\nI tested this on Roman only, illustrated here with `smcp` set:\r\n![quickly](https://cloud.githubusercontent.com/assets/1371085/11910954/3b88acc2-a5fe-11e5-89bb-cbb805d4d286.png)\r\n\r\nWhat do you think? Is this the right way to implement this?\r\n\r\n````diff\r\n+Lookup: 5 0 0 \"'calt' Contextual Alternates lookup 9\" { \"'calt' Contextual Alternates lookup 9-1\"  } ['calt' ('DFLT' <'dflt' > 'cyrl' <'dflt' > 'grek' <'dflt' > 'latn' <'TRK ' 'dflt' > ) ]\r\n+Lookup: 3 0 0 \"'salt' Stylistic Alternatives lookup 10\" { \"'salt' Stylistic Alternatives lookup 10-1\"  } ['salt' ('DFLT' <'dflt' > 'cyrl' <'dflt' > 'grek' <'dflt' > 'latn' <'TRK ' 'dflt' > ) ]\r\n Lookup: 4 0 1 \"'liga' Ligatures standard lookups7\" { \"'liga' Ligatures standard lookups7-1\"  } ['liga' ('DFLT' <'dflt' > 'cyrl' <'dflt' > 'grek' <'dflt' > 'latn' <'TRK ' 'dflt' > ) ]\r\n Lookup: 4 0 0 \"'dlig' Discretionary Ligatures lookup 8\" { \"'dlig' Discretionary Ligatures lookup 8-1\"  } ['dlig' ('DFLT' <'dflt' > 'cyrl' <'dflt' > 'grek' <'dflt' > 'latn' <'TRK ' 'dflt' > ) ]\r\n Lookup: 1 0 0 \"'ccmp' Turkish i\" { \"'ccmp' Turkish i-1\"  } ['ccmp' ('latn' <'TRK ' > ) ]\r\n@@ -817,6 +819,13 @@ KernClass2: 14+ 24 \"'kern' Horizontal Kerning in Latin lookup 0 kerning class 1\"\r\n  25 zero zero.slash zero.prop\r\n  55 d dcaron dcroat uni1E0B uni1E0D uni1E0F uni1E11 uni1E13\r\n  0 {} -37 {} -30 {} -28 {} -22 {} -34 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -17 {} -14 {} -22 {} -21 {} -10 {} -15 {} -21 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 9 {} 0 {} 0 {} 6 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -14 {} -11 {} -16 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -15 {} -13 {} -17 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 30 {} 28 {} 36 {} 0 {} -41 {} 0 {} 0 {} 0 {} -57 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -13 {} -11 {} -14 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -10 {} 0 {} -13 {} 0 {} -26 {} 0 {} 0 {} 0 {} -34 {} -11 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -46 {} -41 {} -33 {} -48 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 68 {} -18 {} 16 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -13 {} 0 {} -33 {} 0 {} 0 {} 0 {} 0 {} -14 {} 0 {} 0 {} 0 {} -11 {} -51 {} -38 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -46 {} -37 {} -30 {} -50 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 84 {} -14 {} 0 {} -11 {} 0 {} -13 {} -10 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -24 {} 0 {} -14 {} -12 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -23 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -35 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} 0 {} -59 {} -14 {} 0 {} 0 {} 0 {} 0 {} -8 {}\r\n+ContextSub2: glyph \"'calt' Contextual Alternates lookup 9-1\" 0 0 0 1\r\n+ String: 3 Q u\r\n+ BString: 0\r\n+ FString: 0\r\n+ 1\r\n+  SeqLookup: 0 \"'salt' Stylistic Alternatives lookup 10\"\r\n+EndFPST\r\n@@ -2647,6 +2607,7 @@ SplineSet\r\n  600 464 513 633 358 633 c 0\r\n  208 633 148 484 148 350 c 0\r\n EndSplineSet\r\n+AlternateSubs2: \"'salt' Stylistic Alternatives lookup 10-1\" Q.alt01\r\n````"},"comment":{"url":"https://api.github.com/repos/skosch/Crimson/issues/comments/165945097","html_url":"https://github.com/skosch/Crimson/issues/25#issuecomment-165945097","issue_url":"https://api.github.com/repos/skosch/Crimson/issues/25","id":165945097,"user":{"login":"katef","id":1371085,"avatar_url":"https://avatars.githubusercontent.com/u/1371085?v=3","gravatar_id":"","url":"https://api.github.com/users/katef","html_url":"https://github.com/katef","followers_url":"https://api.github.com/users/katef/followers","following_url":"https://api.github.com/users/katef/following{/other_user}","gists_url":"https://api.github.com/users/katef/gists{/gist_id}","starred_url":"https://api.github.com/users/katef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/katef/subscriptions","organizations_url":"https://api.github.com/users/katef/orgs","repos_url":"https://api.github.com/users/katef/repos","events_url":"https://api.github.com/users/katef/events{/privacy}","received_events_url":"https://api.github.com/users/katef/received_events","type":"User","site_admin":false},"created_at":"2015-12-19T04:08:56Z","updated_at":"2015-12-19T04:08:56Z","body":"Okay! I'll leave this ticket open until that's redrawn. Are there any other glyphs to redraw? Let's list them all on #23."}}