iOS: Re-Add iOS Dark Icon (#11943)

Co-authored-by: Laurent Cozic <laurent22@users.noreply.github.com>
This commit is contained in:
Meow 2025-03-16 06:21:58 -04:00 committed by GitHub
parent cb5ffd968d
commit eb8bfd5aec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
56 changed files with 990 additions and 550 deletions

View File

@ -311,7 +311,7 @@ module.exports = {
selector: 'interface',
format: null,
'filter': {
'regex': '^(RSA|RSAKeyPair)$',
'regex': '^(RSA|RSAKeyPair|iOS.*)$',
'match': true,
},
},

View 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

View File

@ -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
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 871 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -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
}
}

View File

@ -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);