iOS: Re-Add iOS Dark Icon (#11943)
Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
@ -311,7 +311,7 @@ module.exports = {
|
||||
selector: 'interface',
|
||||
format: null,
|
||||
'filter': {
|
||||
'regex': '^(RSA|RSAKeyPair)$',
|
||||
'regex': '^(RSA|RSAKeyPair|iOS.*)$',
|
||||
'match': true,
|
||||
},
|
||||
},
|
||||
|
77
Assets/JoplinLetterBlue.svg
Normal file
@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
viewBox="0 0 682.66669 682.66669"
|
||||
height="682.66669"
|
||||
width="682.66669"
|
||||
xml:space="preserve"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||
sodipodi:docname="JoplinLetterBlue.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview13"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#ffffff"
|
||||
borderopacity="1"
|
||||
inkscape:pageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.77490232"
|
||||
inkscape:cx="366.49781"
|
||||
inkscape:cy="360.69062"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="708"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs6">
|
||||
<linearGradient
|
||||
id="linearGradient26"
|
||||
spreadMethod="pad"
|
||||
gradientTransform="matrix(-4387.91,4387.91,4387.91,4387.91,4753.95,366.05)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="0"
|
||||
x2="1"
|
||||
y1="0"
|
||||
x1="0">
|
||||
<stop
|
||||
id="stop22"
|
||||
offset="0"
|
||||
style="stop-opacity:1;stop-color:#004caf" />
|
||||
<stop
|
||||
id="stop24"
|
||||
offset="1"
|
||||
style="stop-opacity:1;stop-color:#1f95f8" />
|
||||
</linearGradient>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath829"><path
|
||||
id="path831"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.999997"
|
||||
d="M 3961.59,4435.23 H 2570.18 c -13.15,0 -23.78,-10.64 -23.78,-23.77 v -441.84 c 0,-14.87 12.04,-26.92 26.92,-26.92 h 190.77 c 77.16,0 139.73,-59.35 146.43,-134.77 V 3505 3336.23 1728.75 1717.36 h -0.052 c 0.48,-16.84 -0.1898,-33.4 -1.83,-49.71 -0.18,-2.38 -0.5003,-4.73 -0.7902,-7.09 -1.0998,-9.53 -2.3199,-19.01 -4.17,-28.29 -1.0098,-5.29 -2.4399,-10.44 -3.7098,-15.65 -1.71,-6.93 -3.09,-13.97 -5.22,-20.75 -12.5802,-40.27 -32.4702,-77.62 -59.9802,-110.5 -1.0098,-1.17 -2.2599,-2.25 -3.2598,-3.41 -8.3901,-9.72 -17.2002,-19.19 -26.9502,-28.06 -9.84,-8.95 -20.2599,-17.27 -31.2099,-25 -77.8401,-55.14 -182.61,-79.4 -299.67,-68.2 -149.2599,14.03 -297.3399,81.72 -417.03,190.62 -119.6701,108.89 -194.08,243.62 -209.4799,379.41 -13.8501,121.48 22.5498,228.38 102.42,301.05 0.21,0.1598 0.3997,0.3098 0.5602,0.48 3.09,2.77 6.4901,5.2 9.6701,7.87 57.16,47.89 131.6701,76.91 216.7,84.91 0.96,0.09 1.8801,0.24 2.79,0.3203 8.9499,0.79 18.0699,1.15 27.27,1.49 4.8099,0.1598 9.5601,0.5003 14.4399,0.54 1.62,0.023 3.1602,0.1898 4.7802,0.1898 2.8998,0 5.91,-0.3803 8.8098,-0.42 13.4001,-0.21 26.9001,-0.7601 40.6701,-1.9401 1.74,-0.1402 3.3999,-0.08 5.19,-0.24 1.2699,-0.1297 2.5299,-0.4102 3.8001,-0.54 78,-7.82 155.2299,-31.11 228.5199,-66.3999 1.53,-0.068 3.3,-0.54 5.5099,-1.7601 22.34,-12.3399 26.6201,0.9 27.2801,9.6501 v 382.2399 282.8201 c 0,19.05 -13.2501,35.8999 -31.83,39.99 -394.7601,86.88 -782.08,-3.5501 -1055.38,-252.3401 -238.7499,-217.1799 -354.24,-530.5799 -316.8201,-859.7899 33.39,-293.23 183.9102,-574.94 423.88,-793.33 233.8901,-212.79003 531.69,-345.86006 838.8801,-374.80106 42.33,-3.918 84.8601,-5.93797 126.36,-5.93797 293.3799,0 565.6099,100.59802 766.54,283.37903 190.3401,173.3 304.35,411.27 321.0799,670.16 l 1.55,1697.91 h 0.1703 v 453.97 h 0.06 v 7.92 c 1.72,80.1199 67.05,144.58 147.61,144.58 h 190.77 c 14.8599,0 26.9199,12.05 26.9199,26.9199 v 441.84 c 0,13.13 -10.6299,23.77 -23.7799,23.77" /></clipPath></defs>
|
||||
<g
|
||||
id="g14"
|
||||
transform="matrix(0.13333333,0,0,-0.13333333,0,682.66667)"
|
||||
mask="none"
|
||||
clip-path="url(#clipPath829)">
|
||||
<g
|
||||
clip-path="url(#clipPath20)"
|
||||
id="g16">
|
||||
<path
|
||||
id="path28"
|
||||
style="fill:url(#linearGradient26);fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
d="M 3873.89,0 H 1246.11 C 560.754,0 0,560.75 0,1246.11 V 3873.88 C 0,4559.25 560.754,5120 1246.11,5120 H 3873.89 C 4559.25,5120 5120,4559.25 5120,3873.88 V 1246.11 C 5120,560.75 4559.25,0 3873.89,0" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
@ -1,116 +1,517 @@
|
||||
{
|
||||
"images": [
|
||||
"images" : [
|
||||
{
|
||||
"filename": "ios_marketing1024x1024.png",
|
||||
"idiom": "ios-marketing",
|
||||
"size": "1024x1024",
|
||||
"scale": "1x"
|
||||
"filename" : "ios20x20@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename": "iphone_notification20x20@2x.png",
|
||||
"idiom": "iphone",
|
||||
"size": "20x20",
|
||||
"scale": "2x"
|
||||
"filename" : "ios20x20@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename": "iphone_notification20x20@3x.png",
|
||||
"idiom": "iphone",
|
||||
"size": "20x20",
|
||||
"scale": "3x"
|
||||
"filename" : "ios29x29@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename": "iphone_settings29x29@2x.png",
|
||||
"idiom": "iphone",
|
||||
"size": "29x29",
|
||||
"scale": "2x"
|
||||
"filename" : "ios29x29@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"filename": "iphone_settings29x29@3x.png",
|
||||
"idiom": "iphone",
|
||||
"size": "29x29",
|
||||
"scale": "3x"
|
||||
"filename" : "ios38x38@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "38x38"
|
||||
},
|
||||
{
|
||||
"filename": "iphone_spotlight40x40@2x.png",
|
||||
"idiom": "iphone",
|
||||
"size": "40x40",
|
||||
"scale": "2x"
|
||||
"filename" : "ios38x38@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "38x38"
|
||||
},
|
||||
{
|
||||
"filename": "iphone_spotlight40x40@3x.png",
|
||||
"idiom": "iphone",
|
||||
"size": "40x40",
|
||||
"scale": "3x"
|
||||
"filename" : "ios40x40@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename": "iphone_app60x60@2x.png",
|
||||
"idiom": "iphone",
|
||||
"size": "60x60",
|
||||
"scale": "2x"
|
||||
"filename" : "ios40x40@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"filename": "iphone_app60x60@3x.png",
|
||||
"idiom": "iphone",
|
||||
"size": "60x60",
|
||||
"scale": "3x"
|
||||
"filename" : "ios60x60@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_notification20x20.png",
|
||||
"idiom": "ipad",
|
||||
"size": "20x20",
|
||||
"scale": "1x"
|
||||
"filename" : "ios60x60@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_notification20x20@2x.png",
|
||||
"idiom": "ipad",
|
||||
"size": "20x20",
|
||||
"scale": "2x"
|
||||
"filename" : "ios64x64@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "64x64"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_settings29x29.png",
|
||||
"idiom": "ipad",
|
||||
"size": "29x29",
|
||||
"scale": "1x"
|
||||
"filename" : "ios64x64@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "64x64"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_settings29x29@2x.png",
|
||||
"idiom": "ipad",
|
||||
"size": "29x29",
|
||||
"scale": "2x"
|
||||
"filename" : "ios68x68@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "68x68"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_spotlight40x40.png",
|
||||
"idiom": "ipad",
|
||||
"size": "40x40",
|
||||
"scale": "1x"
|
||||
"filename" : "ios76x76@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_spotlight40x40@2x.png",
|
||||
"idiom": "ipad",
|
||||
"size": "40x40",
|
||||
"scale": "2x"
|
||||
"filename" : "ios83.5x83.5@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "83.5x83.5"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_app76x76.png",
|
||||
"idiom": "ipad",
|
||||
"size": "76x76",
|
||||
"scale": "1x"
|
||||
"filename" : "ios1024x1024.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"size" : "1024x1024"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_app76x76@2x.png",
|
||||
"idiom": "ipad",
|
||||
"size": "76x76",
|
||||
"scale": "2x"
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark20x20@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"filename": "ipad_pro_app83.5x83.5@2x.png",
|
||||
"idiom": "ipad",
|
||||
"size": "83.5x83.5",
|
||||
"scale": "2x"
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark20x20@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark29x29@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark29x29@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark38x38@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "38x38"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark38x38@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "38x38"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark40x40@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark40x40@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark60x60@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark60x60@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark64x64@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "64x64"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark64x64@3x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "64x64"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark68x68@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "68x68"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark76x76@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark83.5x83.5@2x.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "83.5x83.5"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"filename" : "ios_dark1024x1024.png",
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"size" : "1024x1024"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "20x20"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "29x29"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "38x38"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "38x38"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "40x40"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "60x60"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "64x64"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "3x",
|
||||
"size" : "64x64"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "68x68"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "76x76"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"scale" : "2x",
|
||||
"size" : "83.5x83.5"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "tinted"
|
||||
}
|
||||
],
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"size" : "1024x1024"
|
||||
}
|
||||
],
|
||||
"info": {
|
||||
"version": 1,
|
||||
"author": "xcode"
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 23 KiB |
After Width: | Height: | Size: 871 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 973 B |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 5.1 KiB |
@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -1,23 +1,5 @@
|
||||
{
|
||||
"done": {
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_marketing1024x1024.png_1024_1024____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_app76x76.png_76_76____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_app76x76@2x.png_152_152____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_notification20x20.png_20_20____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_notification20x20@2x.png_40_40____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_pro_app83.5x83.5@2x.png_167_167____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_settings29x29.png_29_29____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_settings29x29@2x.png_58_58____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_spotlight40x40.png_40_40____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_spotlight40x40@2x.png_80_80____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_app60x60@2x.png_120_120____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_app60x60@3x.png_180_180____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_notification20x20@2x.png_40_40____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_notification20x20@3x.png_60_60____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_settings29x29@2x.png_58_58____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_settings29x29@3x.png_87_87____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_spotlight40x40@2x.png_80_80____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_spotlight40x40@3x.png_120_120____": true,
|
||||
"2_980ab814dfce30eb15adf0a90d85bb1a_Assets/macOs.iconset/icon_16x16.png_16_16____": true,
|
||||
"3_a7fed49fa153dc9f4e58f038011bce4d_Assets/macOs.iconset/icon_16x16@2x.png_32_32____": true,
|
||||
"3_a7fed49fa153dc9f4e58f038011bce4d_Assets/macOs.iconset/icon_32x32.png_32_32____": true,
|
||||
@ -71,6 +53,38 @@
|
||||
"12_c1ecc4672fe806dda0c25ec58ddf498a_packages/server/public/images/icons/cloud/icon-32.png_32_32___joplinCloud32_": true,
|
||||
"12_c1ecc4672fe806dda0c25ec58ddf498a_packages/server/public/images/icons/cloud/icon.svg______": true,
|
||||
"12_c1ecc4672fe806dda0c25ec58ddf498a_packages/server/public/images/icons/cloud/favicon.ico______joplinCloud32": true,
|
||||
"icns_to_icon_set_9f922e3fd5465dd99eabaa24a3dd3c1d_12cd001124be423c65c1b36deccad273_717fde633fffdca1ae13cca5e4d05143_a8f4a3f97ceaefa3151416a40cfab0af_12cd001124be423c65c1b36deccad273_0bf543ae51a3980ce194156b14a77eee_a8f4a3f97ceaefa3151416a40cfab0af_35d1c48c7d56a96cafd8fb898432f25d_0bf543ae51a3980ce194156b14a77eee_b38e4ecf1acfdc684712c8f7d9b9305d": true
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios20x20@2x.png_40_40____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark20x20@2x.png_40_40____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios20x20@3x.png_60_60____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark20x20@3x.png_60_60____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios29x29@2x.png_58_58____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark29x29@2x.png_58_58____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios29x29@3x.png_87_87____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark29x29@3x.png_87_87____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios38x38@2x.png_76_76____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark38x38@2x.png_76_76____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios38x38@3x.png_114_114____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark38x38@3x.png_114_114____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios40x40@2x.png_80_80____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark40x40@2x.png_80_80____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios40x40@3x.png_120_120____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark40x40@3x.png_120_120____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios60x60@2x.png_120_120____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark60x60@2x.png_120_120____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios60x60@3x.png_180_180____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark60x60@3x.png_180_180____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios64x64@2x.png_128_128____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark64x64@2x.png_128_128____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios64x64@3x.png_192_192____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark64x64@3x.png_192_192____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios68x68@2x.png_136_136____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark68x68@2x.png_136_136____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios76x76@2x.png_152_152____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark76x76@2x.png_152_152____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios83.5x83.5@2x.png_167_167____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark83.5x83.5@2x.png_167_167____": true,
|
||||
"1_80abab89a0e638b5a3f12f96ab5c8792_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios1024x1024.png_1024_1024____": true,
|
||||
"13_81d4e1a631a97f3db0d033de420f14df_packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_dark1024x1024.png_1024_1024____": true,
|
||||
"icns_to_icon_set_89ddfe84307b49fa96580655b5d7c045_216bb492f34224f24aabacb5f98c3620_fe652082bfb7427cd5c74566ecc24322_ebf1ccaf3f5b77b01ff690b763a411f9_216bb492f34224f24aabacb5f98c3620_950b970a784b14c329e09e78af827a77_ebf1ccaf3f5b77b01ff690b763a411f9_d33dafc8081155149dd1d8c1713bf03f_950b970a784b14c329e09e78af827a77_94949c497e46ed0c67082175f5bb22f8": true
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
import { pathExists, readFile, writeFile, copyFile, readdir } from 'fs-extra';
|
||||
import { fileExtension } from '@joplin/lib/path-utils';
|
||||
import { copyFile, pathExists, readdir, readFile, writeFile } from 'fs-extra';
|
||||
import { dirname } from 'path';
|
||||
import { execCommand } from './tool-utils';
|
||||
import { fileExtension } from '@joplin/lib/path-utils';
|
||||
const md5File = require('md5-file');
|
||||
const sharp = require('sharp');
|
||||
|
||||
@ -33,6 +33,22 @@ interface Results {
|
||||
done: Record<string, boolean>;
|
||||
}
|
||||
|
||||
interface iOSAppIconContents {
|
||||
images: {
|
||||
appearances?: [
|
||||
{
|
||||
appearance: 'luminosity';
|
||||
value: 'dark' | 'tinted';
|
||||
},
|
||||
];
|
||||
filename?: string;
|
||||
idiom: 'universal';
|
||||
platform: 'ios';
|
||||
scale?: '2x' | '3x';
|
||||
size: string;
|
||||
}[];
|
||||
}
|
||||
|
||||
const sources: Source[] = [
|
||||
{
|
||||
id: 1,
|
||||
@ -82,6 +98,10 @@ const sources: Source[] = [
|
||||
id: 12,
|
||||
name: 'JoplinCloudIcon2.svg',
|
||||
},
|
||||
{
|
||||
id: 13,
|
||||
name: '../JoplinLetterBlue.svg',
|
||||
},
|
||||
];
|
||||
|
||||
function sourceById(id: number) {
|
||||
@ -91,475 +111,396 @@ function sourceById(id: number) {
|
||||
throw new Error(`Invalid source ID: ${id}`);
|
||||
}
|
||||
|
||||
const operations: Operation[] = [
|
||||
const iOSReadAppIcon = async (filePath: string): Promise<iOSAppIconContents> => {
|
||||
if (!(await pathExists(filePath))) return { images: [] };
|
||||
const content = await readFile(filePath, 'utf8');
|
||||
return JSON.parse(content) as iOSAppIconContents;
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
// iOS icons
|
||||
// ============================================================================
|
||||
const getOperations = async (rootDir: string): Promise<Operation[]> => {
|
||||
const iOSAppIconSet = 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset';
|
||||
const iOSAppIconSetContents = await iOSReadAppIcon(`${rootDir}/${iOSAppIconSet}/Contents.json`);
|
||||
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ios_marketing1024x1024.png',
|
||||
width: 1024,
|
||||
height: 1024,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_app76x76.png',
|
||||
width: 76,
|
||||
height: 76,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_app76x76@2x.png',
|
||||
width: 152,
|
||||
height: 152,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_notification20x20.png',
|
||||
width: 20,
|
||||
height: 20,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_notification20x20@2x.png',
|
||||
width: 40,
|
||||
height: 40,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_pro_app83.5x83.5@2x.png',
|
||||
width: 167,
|
||||
height: 167,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_settings29x29.png',
|
||||
width: 29,
|
||||
height: 29,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_settings29x29@2x.png',
|
||||
width: 58,
|
||||
height: 58,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_spotlight40x40.png',
|
||||
width: 40,
|
||||
height: 40,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/ipad_spotlight40x40@2x.png',
|
||||
width: 80,
|
||||
height: 80,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_app60x60@2x.png',
|
||||
width: 120,
|
||||
height: 120,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_app60x60@3x.png',
|
||||
width: 180,
|
||||
height: 180,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_notification20x20@2x.png',
|
||||
width: 40,
|
||||
height: 40,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_notification20x20@3x.png',
|
||||
width: 60,
|
||||
height: 60,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_settings29x29@2x.png',
|
||||
width: 58,
|
||||
height: 58,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_settings29x29@3x.png',
|
||||
width: 87,
|
||||
height: 87,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_spotlight40x40@2x.png',
|
||||
width: 80,
|
||||
height: 80,
|
||||
},
|
||||
{
|
||||
source: 1,
|
||||
dest: 'packages/app-mobile/ios/Joplin/Images.xcassets/AppIcon.appiconset/iphone_spotlight40x40@3x.png',
|
||||
width: 120,
|
||||
height: 120,
|
||||
},
|
||||
return [
|
||||
// ============================================================================
|
||||
// iOS icons
|
||||
// ============================================================================
|
||||
|
||||
// ============================================================================
|
||||
// macOS icons
|
||||
// ============================================================================
|
||||
...(iOSAppIconSetContents.images.map(icon => {
|
||||
const size = icon.size.split('x').map(Number),
|
||||
scale = parseInt(icon.scale, 10) || 1;
|
||||
if (!size || !icon.filename) return null;
|
||||
return [
|
||||
{
|
||||
source: 1,
|
||||
dest: `${iOSAppIconSet}/ios${icon.size}${icon.scale ? `@${icon.scale}` : ''}.png`,
|
||||
width: size[0] * scale,
|
||||
height: size[1] * scale,
|
||||
},
|
||||
{
|
||||
source: 13,
|
||||
dest: `${iOSAppIconSet}/ios_dark${icon.size}${icon.scale ? `@${icon.scale}` : ''}.png`,
|
||||
width: size[0] * scale,
|
||||
height: size[1] * scale,
|
||||
},
|
||||
];
|
||||
}).filter(ico => ico !== null)).flat(1),
|
||||
|
||||
{
|
||||
source: 2,
|
||||
dest: 'Assets/macOs.iconset/icon_16x16.png',
|
||||
width: 16,
|
||||
height: 16,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/macOs.iconset/icon_16x16@2x.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/macOs.iconset/icon_32x32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/macOs.iconset/icon_32x32@2x.png',
|
||||
width: 64,
|
||||
height: 64,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_128x128.png',
|
||||
width: 128,
|
||||
height: 128,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_128x128@2x.png',
|
||||
width: 256,
|
||||
height: 256,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_256x256.png',
|
||||
width: 256,
|
||||
height: 256,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_256x256@2x.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_512x512.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_512x512@2x.png',
|
||||
width: 1024,
|
||||
height: 1024,
|
||||
},
|
||||
// ============================================================================
|
||||
// macOS icons
|
||||
// ============================================================================
|
||||
|
||||
// ============================================================================
|
||||
// Linux icons
|
||||
// ============================================================================
|
||||
{
|
||||
source: 2,
|
||||
dest: 'Assets/macOs.iconset/icon_16x16.png',
|
||||
width: 16,
|
||||
height: 16,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/macOs.iconset/icon_16x16@2x.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/macOs.iconset/icon_32x32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/macOs.iconset/icon_32x32@2x.png',
|
||||
width: 64,
|
||||
height: 64,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_128x128.png',
|
||||
width: 128,
|
||||
height: 128,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_128x128@2x.png',
|
||||
width: 256,
|
||||
height: 256,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_256x256.png',
|
||||
width: 256,
|
||||
height: 256,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_256x256@2x.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_512x512.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/macOs.iconset/icon_512x512@2x.png',
|
||||
width: 1024,
|
||||
height: 1024,
|
||||
},
|
||||
|
||||
{
|
||||
source: 2,
|
||||
dest: 'Assets/LinuxIcons/16x16.png',
|
||||
width: 16,
|
||||
height: 16,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/LinuxIcons/24x24.png',
|
||||
width: 24,
|
||||
height: 24,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/LinuxIcons/32x32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/48x48.png',
|
||||
width: 48,
|
||||
height: 48,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/72x72.png',
|
||||
width: 72,
|
||||
height: 72,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/96x96.png',
|
||||
width: 96,
|
||||
height: 96,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/128x128.png',
|
||||
width: 128,
|
||||
height: 128,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/144x144.png',
|
||||
width: 144,
|
||||
height: 144,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/256x256.png',
|
||||
width: 256,
|
||||
height: 256,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/512x512.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/1024x1024.png',
|
||||
width: 1024,
|
||||
height: 1024,
|
||||
},
|
||||
// ============================================================================
|
||||
// Linux icons
|
||||
// ============================================================================
|
||||
|
||||
// ============================================================================
|
||||
// PortableApps launcher
|
||||
// ============================================================================
|
||||
{
|
||||
source: 2,
|
||||
dest: 'Assets/LinuxIcons/16x16.png',
|
||||
width: 16,
|
||||
height: 16,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/LinuxIcons/24x24.png',
|
||||
width: 24,
|
||||
height: 24,
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'Assets/LinuxIcons/32x32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/48x48.png',
|
||||
width: 48,
|
||||
height: 48,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/72x72.png',
|
||||
width: 72,
|
||||
height: 72,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/96x96.png',
|
||||
width: 96,
|
||||
height: 96,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/128x128.png',
|
||||
width: 128,
|
||||
height: 128,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/144x144.png',
|
||||
width: 144,
|
||||
height: 144,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/256x256.png',
|
||||
width: 256,
|
||||
height: 256,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/512x512.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 7,
|
||||
dest: 'Assets/LinuxIcons/1024x1024.png',
|
||||
width: 1024,
|
||||
height: 1024,
|
||||
},
|
||||
|
||||
{
|
||||
source: 5,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon.ico',
|
||||
},
|
||||
{
|
||||
source: 2,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon_16.png',
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon_32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
},
|
||||
{
|
||||
source: 4,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon_75.png',
|
||||
width: 75,
|
||||
height: 75,
|
||||
},
|
||||
{
|
||||
source: 4,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon_128.png',
|
||||
width: 128,
|
||||
height: 128,
|
||||
},
|
||||
{
|
||||
source: 4,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/Launcher/splash.jpg',
|
||||
width: 144,
|
||||
height: 144,
|
||||
},
|
||||
// ============================================================================
|
||||
// PortableApps launcher
|
||||
// ============================================================================
|
||||
|
||||
// ============================================================================
|
||||
// Windows tiles
|
||||
// ============================================================================
|
||||
{
|
||||
source: 5,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon.ico',
|
||||
},
|
||||
{
|
||||
source: 2,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon_16.png',
|
||||
},
|
||||
{
|
||||
source: 3,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon_32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
},
|
||||
{
|
||||
source: 4,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon_75.png',
|
||||
width: 75,
|
||||
height: 75,
|
||||
},
|
||||
{
|
||||
source: 4,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/appicon_128.png',
|
||||
width: 128,
|
||||
height: 128,
|
||||
},
|
||||
{
|
||||
source: 4,
|
||||
dest: 'packages/tools/PortableAppsLauncher/App/AppInfo/Launcher/splash.jpg',
|
||||
width: 144,
|
||||
height: 144,
|
||||
},
|
||||
|
||||
{
|
||||
source: 6,
|
||||
dest: 'packages/app-desktop/build-win/icons/Square150x150Logo.png',
|
||||
width: 150,
|
||||
height: 150,
|
||||
iconWidth: 99,
|
||||
iconHeight: 75,
|
||||
},
|
||||
{
|
||||
source: 6,
|
||||
dest: 'packages/app-desktop/build-win/icons/SmallTile.png',
|
||||
width: 70,
|
||||
height: 70,
|
||||
iconWidth: 46,
|
||||
iconHeight: 46,
|
||||
},
|
||||
// ============================================================================
|
||||
// Windows tiles
|
||||
// ============================================================================
|
||||
|
||||
// ============================================================================
|
||||
// Website images
|
||||
// ============================================================================
|
||||
{
|
||||
source: 6,
|
||||
dest: 'packages/app-desktop/build-win/icons/Square150x150Logo.png',
|
||||
width: 150,
|
||||
height: 150,
|
||||
iconWidth: 99,
|
||||
iconHeight: 75,
|
||||
},
|
||||
{
|
||||
source: 6,
|
||||
dest: 'packages/app-desktop/build-win/icons/SmallTile.png',
|
||||
width: 70,
|
||||
height: 70,
|
||||
iconWidth: 46,
|
||||
iconHeight: 46,
|
||||
},
|
||||
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-4x.webp',
|
||||
width: 4820,
|
||||
height: 2938,
|
||||
},
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-2x.png',
|
||||
width: 2388,
|
||||
height: 1456,
|
||||
},
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-2x.webp',
|
||||
width: 2388,
|
||||
height: 1456,
|
||||
},
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img.png',
|
||||
width: 1205,
|
||||
height: 734,
|
||||
},
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img.webp',
|
||||
width: 1205,
|
||||
height: 734,
|
||||
},
|
||||
// ============================================================================
|
||||
// Website images
|
||||
// ============================================================================
|
||||
|
||||
// ============================================================================
|
||||
// Website images CN
|
||||
// ============================================================================
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-4x.webp',
|
||||
width: 4820,
|
||||
height: 2938,
|
||||
},
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-2x.png',
|
||||
width: 2388,
|
||||
height: 1456,
|
||||
},
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-2x.webp',
|
||||
width: 2388,
|
||||
height: 1456,
|
||||
},
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img.png',
|
||||
width: 1205,
|
||||
height: 734,
|
||||
},
|
||||
{
|
||||
source: 8,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img.webp',
|
||||
width: 1205,
|
||||
height: 734,
|
||||
},
|
||||
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn-4x.webp',
|
||||
width: 4820,
|
||||
height: 2938,
|
||||
},
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn-2x.png',
|
||||
width: 2388,
|
||||
height: 1456,
|
||||
},
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn-2x.webp',
|
||||
width: 2388,
|
||||
height: 1456,
|
||||
},
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn.png',
|
||||
width: 1205,
|
||||
height: 734,
|
||||
},
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn.webp',
|
||||
width: 1205,
|
||||
height: 734,
|
||||
},
|
||||
// ============================================================================
|
||||
// Website images CN
|
||||
// ============================================================================
|
||||
|
||||
// ============================================================================
|
||||
// Joplin Server Icons
|
||||
// ============================================================================
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn-4x.webp',
|
||||
width: 4820,
|
||||
height: 2938,
|
||||
},
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn-2x.png',
|
||||
width: 2388,
|
||||
height: 1456,
|
||||
},
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn-2x.webp',
|
||||
width: 2388,
|
||||
height: 1456,
|
||||
},
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn.png',
|
||||
width: 1205,
|
||||
height: 734,
|
||||
},
|
||||
{
|
||||
source: 9,
|
||||
dest: 'Assets/WebsiteAssets/images/home-top-img-cn.webp',
|
||||
width: 1205,
|
||||
height: 734,
|
||||
},
|
||||
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon-512.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon-192.png',
|
||||
width: 192,
|
||||
height: 192,
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon-180.png',
|
||||
width: 180,
|
||||
height: 180,
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/server_logo.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon-32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
imageName: 'joplinServer32',
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon.svg',
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/favicon.ico',
|
||||
images: ['joplinServer32'],
|
||||
},
|
||||
// ============================================================================
|
||||
// Joplin Server Icons
|
||||
// ============================================================================
|
||||
|
||||
// ============================================================================
|
||||
// Joplin Cloud Icons
|
||||
// ============================================================================
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon-512.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon-192.png',
|
||||
width: 192,
|
||||
height: 192,
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon-180.png',
|
||||
width: 180,
|
||||
height: 180,
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/server_logo.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon-32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
imageName: 'joplinServer32',
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/icon.svg',
|
||||
},
|
||||
{
|
||||
source: 10,
|
||||
dest: 'packages/server/public/images/icons/server/favicon.ico',
|
||||
images: ['joplinServer32'],
|
||||
},
|
||||
|
||||
{
|
||||
source: 11,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon-512.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 11,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon-192.png',
|
||||
width: 192,
|
||||
height: 192,
|
||||
},
|
||||
{
|
||||
source: 11,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon-180.png',
|
||||
width: 180,
|
||||
height: 180,
|
||||
},
|
||||
{
|
||||
source: 11,
|
||||
dest: 'packages/server/public/images/cloud_logo.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 12,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon-32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
imageName: 'joplinCloud32',
|
||||
},
|
||||
{
|
||||
source: 12,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon.svg',
|
||||
},
|
||||
{
|
||||
source: 12,
|
||||
dest: 'packages/server/public/images/icons/cloud/favicon.ico',
|
||||
images: ['joplinCloud32'],
|
||||
},
|
||||
];
|
||||
// ============================================================================
|
||||
// Joplin Cloud Icons
|
||||
// ============================================================================
|
||||
|
||||
{
|
||||
source: 11,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon-512.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 11,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon-192.png',
|
||||
width: 192,
|
||||
height: 192,
|
||||
},
|
||||
{
|
||||
source: 11,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon-180.png',
|
||||
width: 180,
|
||||
height: 180,
|
||||
},
|
||||
{
|
||||
source: 11,
|
||||
dest: 'packages/server/public/images/cloud_logo.png',
|
||||
width: 512,
|
||||
height: 512,
|
||||
},
|
||||
{
|
||||
source: 12,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon-32.png',
|
||||
width: 32,
|
||||
height: 32,
|
||||
imageName: 'joplinCloud32',
|
||||
},
|
||||
{
|
||||
source: 12,
|
||||
dest: 'packages/server/public/images/icons/cloud/icon.svg',
|
||||
},
|
||||
{
|
||||
source: 12,
|
||||
dest: 'packages/server/public/images/icons/cloud/favicon.ico',
|
||||
images: ['joplinCloud32'],
|
||||
},
|
||||
];
|
||||
};
|
||||
|
||||
const md5Dir = async (dirPath: string): Promise<string> => {
|
||||
const files = await readdir(dirPath);
|
||||
@ -601,6 +542,7 @@ async function main() {
|
||||
const sourceImageDir = `${rootDir}/Assets/ImageSources`;
|
||||
const resultFilePath = `${__dirname}/generate-images.json`;
|
||||
const results: Results = await readResults(resultFilePath);
|
||||
const operations = await getOperations(rootDir);
|
||||
|
||||
for (const operation of operations) {
|
||||
const source = sourceById(operation.source);
|
||||
|