WordPress.org

Make WordPress Core

Ticket #33592: svg.2.sh

File svg.2.sh, 3.8 KB (added by pento, 4 years ago)
Line 
1createsvg() {
2  local d
3  local svg
4  for d in assets/*.ai; do
5    svg=$(echo "$d" | sed 's/.ai/.svg/')
6    echo "creating $svg ..."
7    inkscape -f "$d" -l "$svg"
8  done
9  mkdir -p svg
10  mv assets/*.svg svg/
11}
12
13viewport() {
14  local f
15  for f in svg/*.svg; do
16    content=$(
17      cat "$f" |
18      sed 's/<!-- Created with Inkscape (http:\/\/inkscape.org\/) -->//' |
19      sed 's/viewBox="0 0 47.5 47.5"//' |
20      sed 's/height="47.5"/viewBox="0 0 47.5 47.5"/' |
21      sed 's/width="47.5"/style="enable-background:new 0 0 47.5 47.5;"/' |
22      sed -e ':a' -e 'N' -e '$!ba' -e 's/\n//g' |
23      sed -e 's/  */ /g' |
24      sed -e 's/ \/>/\/>/g'
25    )
26    echo "$f"
27    echo "$content" >"$f"
28  done
29}
30
31skintone() {
32  local f
33  local key
34  local tonecode
35  local tone
36  local hilitetone
37  local content
38  local filename
39
40  local tonecodes=(default 1f3fb 1f3fc 1f3fd 1f3fe 1f3ff)
41  local tones=(ffcc4d fadcbc e0bb95 bf8468 9b643d 594539)
42  local hilitetones=(ffdd5e f1cca6 cf9579 ac754e 6a564a)
43
44  local base=(1f466 1f467 1f468 1f469 1f474 1f475 1f476 1f471 1f46e 1f472 1f473 1f477 1f478 1f482 1f385 1f47c 1f486 1f487 1f470 1f64d 1f64e 1f645 1f646 1f481 1f64b 1f647 1f600 1f601 1f602 1f603 1f604 1f605 1f606 1f609 1f60a 1f60b 1f60e 1f60d 1f618 1f617 1f619 1f61a 263a 1f642 1f917 1f607 1f914 1f610 1f611 1f636 1f644 1f60f 1f623 1f625 1f62e 1f910 1f62f 1f62a 1f62b 1f634 1f60c 1f913 1f61b 1f61c 1f61d 2639 1f641 1f612 1f613 1f614 1f615 1f616 1f643 1f637 1f912 1f915 1f911 1f632 1f61e 1f61f 1f624 1f622 1f62d 1f626 1f627 1f628 1f629 1f62c 1f630 1f631 1f633 1f635 1f621 1f620 1f47f 1f608 1f64c 1f64f 1f6b6 1f3c3 1f483 1f4aa 1f448 1f449 261d 1f446 1f595 1f447 270c 1f596 1f918 1f590 270a 270b 1f44a 1f44c 1f44d 1f44e 1f44b 1f44f 1f450 270d 1f485 1f442 1f443 1f6a3 1f6c0 1f3c2 1f3c4 1f3c7 1f3ca 1f6b4 1f6b5);
45
46  echo "<html><head><title>Diversity Preview</title></head><body>" >"svg-diversity/preview.html"
47
48  for f in "${base[@]}"; do
49    if [ ! -f "svg/$f.svg" ]; then
50      continue
51    fi
52
53    for key in "${!tonecodes[@]}"; do
54      tonecode="${tonecodes[$key]}"
55      tone="${tones[$key]}"
56      hilitetone="${hilitetones[$key]}"
57
58      # Convert base skin tones
59      content=$(
60        cat "svg/$f.svg" |
61        sed -E "s/#(d79e84|d99e82|c28b6e)/#$tone/g"
62      )
63
64      # Convert base skintone hilites
65      content=$(
66        echo "$content" |
67        sed -E "s/#(c1694f|bf6952)/#$hilitetone/g"
68      )
69
70      # Convert "yellow" skin tone
71      content=$(
72        echo "$content" |
73        sed "s/#ffcc4d/#$tone/g"
74      )
75      if [ "1f46e" != $f ]; then
76        # Policeman uses this colour for the badge on his hat
77        content=$(
78          echo "$content" |
79          sed "s/#fdcb58/#$tone/g"
80        )
81      fi
82
83      # No need to convert purple/red to yellow
84      if [ "ffcc4d" != $tone ]; then
85        # Convert "purple" skin tone
86        content=$(
87          echo "$content" |
88          sed "s/#aa8ed6/#$tone/g"
89        )
90
91        # Convert "red" skin tone
92        content=$(
93          echo "$content" |
94          sed "s/#da2f47/#$tone/g"
95        )
96      fi
97
98      # Special cases for the darkest skin tone
99      if [ "594539" == $tone ]; then
100        # Make eyes darker
101        content=$(
102          echo "$content" |
103          sed -E "s/#(662113|664500)/#101010/g"
104        )
105
106        # Make hair darker
107        content=$(
108          echo "$content" |
109          sed -E "s/#(642116|414042|662214)/#101010/g"
110        )
111      fi
112
113      # Yellow doesn't need a modifier filename
114      if [ "default" == $tonecode ]; then
115        filename="$f.svg"
116      else
117        filename="$f-$tonecode.svg"
118      fi
119
120      echo "<img src='$filename' width='100px'>" >>"svg-diversity/preview.html"
121
122      echo "svg-diversity/$filename"
123      echo "$content" >"svg-diversity/$filename"
124    done
125  done
126
127  echo "</body></html>" >>"svg-diversity/preview.html"
128
129}
130
131#createsvg
132
133#viewport
134
135skintone