Compare commits

..
6 Commits
Author SHA1 Message Date
Mark Poljanšek 98e7bb643e favicon
Deploy to Development and Production / deploy (push) Successful in 1m39s
2025-11-04 17:08:52 +01:00
Mark Poljanšek b07a44c56a optimizacija strani
Deploy to Development and Production / deploy (push) Successful in 7s
2025-11-04 16:56:28 +01:00
Mark Poljanšek f4bb2c481c optimizacija strani
Deploy to Development and Production / deploy (push) Successful in 7s
2025-11-04 16:33:43 +01:00
Mark Poljanšek d6436cd340 optimizacija strani
Deploy to Development and Production / deploy (push) Successful in 8s
2025-11-04 16:03:16 +01:00
Mark Poljanšek 0227a21a84 optimizacija strani
Deploy to Development and Production / deploy (push) Successful in 7s
2025-11-04 15:56:07 +01:00
Mark Poljanšek 651915e0f6 optimizacija strani
Deploy to Development and Production / deploy (push) Successful in 7s
2025-11-04 15:44:16 +01:00
55 changed files with 732 additions and 6122 deletions

No files matched your search

+1
View File
@@ -0,0 +1 @@
.venv/
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

+12
View File
@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="2362" height="2362"><svg width="2362" height="2362" viewBox="0 0 2362 2362" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="SvgjsG1013">
<path id="SvgjsPath1012" fill="#354142" fill-rule="evenodd" stroke="none" d="M 937.795349 1195.49646 C 966.264954 1138.223022 984.921387 1106.972534 997.62146 1089.100708 C 1010.321472 1071.228516 1034.061401 1039.541016 1050.376953 1018.683716 C 1066.692627 997.826416 1087.135498 966.947021 1095.805664 950.062622 C 1104.475708 933.178345 1117.601318 901.772339 1124.973633 880.271606 C 1138.37793 841.179565 1138.37793 841.179565 1127.140259 820.095703 C 1120.959717 808.499634 1111.712402 787.898071 1106.590576 774.314453 C 1101.468872 760.730713 1094.128784 737.427734 1090.279541 722.529785 C 1086.237793 706.887573 1082.321289 675.795654 1081.01001 648.943848 C 1079.568115 619.415649 1080.373779 589.951904 1083.217896 568.214233 C 1085.68103 549.387207 1091.63916 520.741821 1096.45813 504.558105 C 1101.277344 488.374268 1111.807617 461.318359 1119.859009 444.43396 C 1127.910522 427.549683 1141.736938 403.011475 1150.584595 389.904785 C 1159.432007 376.79834 1175.701416 356.095581 1186.738892 343.898804 C 1197.776123 331.702271 1220.65564 311.329346 1237.582153 298.625732 C 1254.508545 285.922119 1281.612183 268.919189 1297.812256 260.841309 C 1314.012329 252.763428 1339.693848 242.026367 1354.882568 236.981445 C 1370.071167 231.936523 1399.325317 225.135254 1419.891968 221.867188 C 1446.872559 217.580566 1468.851685 216.513672 1498.81958 218.036621 C 1521.663208 219.197266 1552.542603 222.701172 1567.440674 225.82251 C 1582.338623 228.944092 1605.091797 234.944092 1618.00354 239.156006 C 1630.915161 243.367676 1653.668335 252.935303 1668.566406 260.417725 C 1683.464355 267.899902 1707.030396 282.07666 1720.935059 291.921875 C 1734.839722 301.766846 1759.247559 323.45105 1775.174316 340.108765 C 1791.101074 356.766602 1811.88208 382.079712 1821.354004 396.360229 C 1830.82605 410.640869 1844.986816 436.005615 1852.822266 452.726196 C 1860.657959 469.446655 1871.295288 498.393555 1876.460815 517.052246 C 1883.811035 543.602417 1886.2854 562.47998 1887.84375 603.892334 C 1889.341309 643.69519 1888.383545 665.395874 1883.979004 691.466064 C 1880.758667 710.528076 1874.724854 736.285889 1870.570679 748.705566 C 1866.416626 761.125366 1856.626831 784.109863 1848.815796 799.782471 C 1841.004883 815.455078 1827.173096 838.705566 1818.078613 851.450562 C 1808.984009 864.195313 1790.641724 885.502319 1777.317871 898.799316 C 1763.994019 912.096191 1740.851685 931.41394 1725.890625 941.727783 C 1710.929688 952.041504 1687.364136 966.16333 1673.522827 973.109985 C 1659.681396 980.056396 1636.245239 989.802368 1621.442261 994.7677 C 1606.639282 999.733032 1580.380737 1006.572266 1563.089844 1009.966064 C 1545.452881 1013.427612 1512.950684 1016.299194 1489.051392 1016.50708 C 1465.621216 1016.71106 1433.449097 1014.67395 1417.557861 1011.980225 C 1401.666504 1009.286499 1375.237305 1003.193359 1358.82605 998.440186 C 1342.414673 993.686646 1319.085205 985.081299 1306.983032 979.317017 C 1284.978882 968.836426 1284.978882 968.836426 1257.365845 975.547607 C 1242.178711 979.23877 1216.751099 986.509399 1200.859863 991.704712 C 1184.968506 996.89978 1160.946655 1007.635254 1147.477783 1015.561401 C 1134.008911 1023.487427 1112.369263 1039.906738 1099.389526 1052.048584 C 1086.40979 1064.19043 1065.580322 1087.728271 1053.101807 1104.354858 C 1040.623291 1120.981567 1022.966125 1148.732056 1013.863403 1166.022461 C 1004.760925 1183.312866 993.19989 1209.743042 988.172424 1224.756226 C 983.144714 1239.769409 977.736084 1263.335327 976.153137 1277.124878 C 974.570129 1290.914551 974.236633 1311.948364 975.411987 1323.866699 C 976.587585 1335.785156 981.295227 1358.098022 985.873718 1373.450928 L 994.198059 1401.365234 L 1002.113708 1378.712402 C 1006.467346 1366.253296 1015.245117 1346.27356 1021.619934 1334.312988 C 1027.994995 1322.352417 1041.2677 1302.609131 1051.11499 1290.439087 C 1060.962158 1278.269043 1080.805664 1259.033081 1095.211548 1247.692505 C 1109.61731 1236.352051 1131.249268 1222.567261 1143.282593 1217.059814 C 1155.315796 1211.552246 1175.053345 1204.482788 1187.143555 1201.349976 C 1200.475586 1197.895264 1224.262939 1195.653809 1247.59375 1195.653809 C 1283.620483 1195.653809 1286.624023 1196.216309 1294.926514 1204.518677 C 1302.441895 1212.034058 1303.791382 1216.809814 1303.791382 1235.889771 C 1303.791382 1248.268066 1301.162231 1269.063721 1297.94873 1282.102173 C 1294.735352 1295.140747 1286.647095 1317.738281 1279.974976 1332.31897 C 1273.302734 1346.899658 1260.590576 1368.99353 1251.725952 1381.416504 C 1242.861084 1393.839355 1226.164429 1412.660645 1214.622314 1423.241455 C 1203.080078 1433.822266 1181.786255 1450.235596 1167.30249 1459.715454 C 1152.818726 1469.195313 1128.440186 1481.769775 1113.128052 1487.658569 C 1097.815796 1493.547363 1075.089966 1500.359863 1062.626221 1502.797241 C 1042.041626 1506.822754 1040.179565 1507.928955 1042.308838 1514.867798 C 1043.5979 1519.069092 1052.493164 1538.764893 1062.076172 1558.63623 C 1071.659302 1578.507446 1089.584473 1609.919312 1101Line truncated
<path id="SvgjsPath1011" fill="#ccb2e6" fill-rule="evenodd" stroke="none" d="M 435.193481 1054.51123 C 401.827332 1054.344849 380.105713 1052.277222 360.121826 1047.365601 C 344.655548 1043.564331 319.464478 1035.236328 304.141479 1028.859009 C 288.818604 1022.481689 266.530151 1011.767334 254.611801 1005.049316 C 242.693466 998.331177 224.563217 986.524658 214.322388 978.812622 C 204.081558 971.100586 185.046753 954.134766 172.022919 941.110962 C 158.998962 928.087036 141.115158 907.30188 132.281052 894.921875 C 123.446945 882.54187 109.75177 859.410767 101.847244 843.519531 C 93.942719 827.628174 83.263115 801.235107 78.114708 784.867676 C 72.966301 768.500488 66.860207 740.87146 64.545509 723.469971 C 62.10561 705.127563 61.166771 672.858154 62.311386 646.685425 C 63.684155 615.297974 67.090675 590.778809 73.489616 566.227905 C 78.551613 546.80603 89.87886 515.926636 98.661278 497.606812 C 107.443687 479.286987 122.753784 452.921265 132.683685 439.016479 C 142.613693 425.111816 163.470856 401.043945 179.033127 385.532593 C 194.595291 370.02124 218.259384 350.062866 231.620163 341.180786 C 244.98082 332.298584 271.469482 317.661743 290.484009 308.654541 C 309.498444 299.647217 339.272705 288.726074 356.648956 284.385254 C 383.113678 277.77417 398.502136 276.49292 451.445831 276.49292 C 510.079102 276.49292 517.130432 277.223877 548.959961 286.600098 C 567.83075 292.158936 594.647095 301.81958 608.55188 308.068115 C 622.456726 314.31665 645.209961 326.650269 659.114746 335.476318 C 673.019592 344.302124 697.19873 363.895874 712.846191 379.0177 C 728.493652 394.139404 749.910095 417.88855 760.43811 431.793213 C 770.966187 445.697998 786.248047 470.076538 794.397827 485.967773 C 802.547668 501.859009 813.184082 527.862671 818.034363 543.753906 C 822.884521 559.645142 828.750427 584.023682 831.069763 597.928345 C 833.745667 613.972046 834.613281 646.304565 833.444214 686.413452 C 831.837097 741.549072 830.350708 753.747314 821.799622 781.972656 C 816.408447 799.768555 807.455811 824.344604 801.905151 836.586548 C 796.354309 848.828491 785.055481 870.218994 776.796509 884.12085 C 761.780029 909.397217 761.780029 909.397217 772.263367 937.856079 C 778.029175 953.508545 788.669556 980.892578 795.908813 998.709595 C 803.147949 1016.526733 808.648193 1032.259033 808.131348 1033.67041 C 807.614563 1035.081787 796.081604 1031.483521 782.502502 1025.674194 C 768.923401 1019.864868 742.919678 1010.067871 724.71637 1003.902832 C 706.513062 997.737671 685.931091 991.893066 678.97876 990.914673 C 668.706604 989.468872 658.940735 992.93457 626.860596 1009.410034 C 605.14801 1020.560913 574.268494 1033.645752 558.239563 1038.487427 C 542.210632 1043.328979 518.531982 1048.967773 505.620331 1051.017944 C 492.70871 1053.068115 461.016632 1054.640137 435.193481 1054.51123 Z"></path>
<path id="SvgjsPath1010" fill="#fcb39f" fill-rule="evenodd" stroke="none" d="M 1473.538086 956.873657 C 1454.66748 956.674927 1431.91394 954.988037 1422.97522 953.124878 C 1414.036621 951.261719 1395.41626 946.411255 1381.597168 942.345825 C 1367.77771 938.280396 1345.024414 929.178467 1331.034302 922.119263 C 1317.043823 915.060059 1299.096313 908.552002 1291.150635 907.657104 C 1281.871094 906.611694 1264.432373 909.56604 1242.393555 915.916992 C 1223.522949 921.355103 1199.458984 928.768677 1188.918091 932.391724 C 1169.753052 938.979004 1169.753052 938.979004 1172.243774 930.977295 C 1173.613892 926.576294 1181.130981 905.097778 1188.948242 883.247437 C 1196.80603 861.285156 1202.473389 839.481689 1201.622314 834.490356 C 1200.775635 829.524414 1190.924683 806.690918 1179.731567 783.74939 C 1168.538452 760.807861 1155.711304 727.844482 1151.226929 710.497681 C 1144.478027 684.390015 1143.073608 669.355835 1143.073608 623.209839 C 1143.073608 577.415894 1144.499023 561.948242 1151.056396 536.582153 C 1155.446777 519.598511 1165.399292 492.130249 1173.172729 475.541992 C 1180.946411 458.953735 1194.010376 435.509644 1202.203979 423.443726 C 1210.397705 411.378174 1227.760742 390.847168 1240.78833 377.819336 C 1253.816162 364.791748 1274.347168 347.428589 1286.412842 339.234985 C 1298.478638 331.041382 1321.545532 318.157349 1337.672729 310.60376 C 1353.799805 303.050293 1379.184204 293.393311 1394.082153 289.143555 C 1412.119019 283.998779 1436.520874 280.724365 1467.11438 279.343262 C 1502.767822 277.733887 1520.160889 278.672363 1544.764526 283.533447 C 1562.202393 286.97876 1591.096802 295.426514 1608.974365 302.306152 C 1626.852051 309.185791 1653.107544 322.057739 1667.320435 330.910034 C 1681.533081 339.762573 1701.639771 354.62793 1712.001831 363.944214 C 1722.363892 373.260742 1740.332642 392.157837 1751.932007 405.938232 C 1763.531494 419.718384 1779.719482 443.866577 1787.905273 459.600708 C 1796.091187 475.334839 1806.815796 499.734863 1811.737793 513.822754 C 1816.659912 527.910889 1822.448364 551.785278 1824.601074 566.877075 C 1826.753662 581.968994 1827.734131 617.070068 1826.779907 644.879639 C 1825.225586 690.172119 1823.880249 698.548706 1813.872192 725.241089 C 1807.727051 741.630371 1795.679199 768.446655 1787.098633 784.83313 C 1774.774536 808.369141 1763.533325 822.601196 1733.575806 852.59729 C 1707.401611 878.805054 1686.501099 895.973877 1666.109375 908.018066 C 1649.860107 917.615601 1622.231201 930.414063 1604.711548 936.459229 C 1587.192139 942.504272 1558.230957 949.651611 1540.353394 952.342529 C 1522.475708 955.033325 1492.408813 957.072388 1473.538086 956.873657 Z"></path>
<path id="SvgjsPath1009" fill="#9fc3a6" fill-rule="evenodd" stroke="none" d="M 1344.13916 1863.805908 C 1342.661133 1863.805908 1335.375244 1854.578735 1327.948364 1843.301147 C 1320.521362 1832.023438 1311.065063 1811.669434 1306.934326 1798.069824 C 1300.632935 1777.323486 1299.670044 1766.526367 1300.952759 1730.992554 C 1302.011597 1701.661499 1304.427124 1684.027466 1308.810059 1673.632446 C 1312.290771 1665.377319 1317.478271 1655.625854 1320.338013 1651.962646 C 1325.268677 1645.64624 1326.146973 1645.984863 1337.335693 1658.516968 C 1343.824585 1665.785156 1352.93042 1679.33374 1357.570679 1688.625 C 1362.21106 1697.91626 1368.241943 1713.910278 1370.9729 1724.167236 C 1373.703979 1734.424194 1375.957642 1754.304199 1375.981323 1768.345093 C 1376.004639 1782.385986 1373.447388 1802.701416 1370.297974 1813.490479 C 1367.14856 1824.279541 1360.579102 1840.014404 1355.699097 1848.456543 C 1350.819092 1856.898682 1345.617188 1863.805908 1344.13916 1863.805908 Z M 1054.144653 1447.541016 C 1040.975586 1449.307373 1040.975586 1449.307373 1044.440796 1430.24292 C 1046.346558 1419.757202 1051.184204 1402.41626 1055.190918 1391.707275 C 1059.197754 1380.998047 1070.474609 1360.2771 1080.25061 1345.660767 C 1090.026733 1331.044312 1106.819336 1311.048218 1117.567383 1301.225098 C 1128.31543 1291.401978 1150.640625 1276.724854 1167.178589 1268.609009 C 1183.716919 1260.493286 1207.620605 1252.024414 1220.297852 1249.789429 C 1236.01416 1247.018677 1244.523193 1246.901611 1247.043213 1249.421509 C 1249.56311 1251.941528 1248.197021 1260.924805 1242.749146 1277.657227 C 1238.354736 1291.154053 1228.302002 1313.127563 1220.409424 1326.487061 C 1212.517212 1339.84668 1197.014893 1360.546509 1185.960449 1372.486694 C 1174.906006 1384.42688 1155.045776 1401.314941 1141.826904 1410.015869 C 1128.607788 1418.716553 1106.434692 1430.321655 1092.553101 1435.804932 C 1078.671509 1441.28833 1061.387817 1446.56958 1054.144653 1447.541016 Z"></path>
<path id="SvgjsPath1008" fill="#cae5c2" fill-rule="evenodd" stroke="none" d="M 1465.438477 1406.214844 C 1562.683838 1368.329102 1594.423218 1353.86377 1598.709351 1349.627441 C 1602.995483 1345.391113 1611.776367 1328.922974 1618.222412 1313.03186 C 1624.668335 1297.140625 1636.071167 1273.574829 1643.561768 1260.663208 C 1651.05249 1247.751587 1666.891968 1225.810913 1678.760254 1211.906128 C 1690.628784 1198.001343 1710.661621 1178.342163 1723.277832 1168.219116 C 1735.894043 1158.096069 1755.967896 1144.189331 1767.88623 1137.315186 C 1779.804565 1130.44104 1800.404663 1120.495239 1813.664185 1115.213379 C 1826.92334 1109.931519 1853.995239 1102.303955 1873.823242 1098.263184 C 1896.523438 1093.637207 1923.70874 1090.93396 1947.229492 1090.963745 C 1969.401245 1090.991943 1997.827881 1093.744751 2017.167236 1097.736206 C 2035.087891 1101.435059 2062.717041 1109.626953 2078.564941 1115.94043 C 2094.413086 1122.254028 2117.943848 1133.712891 2130.855469 1141.404785 C 2143.76709 1149.096558 2163.679932 1163.355713 2175.106445 1173.091919 C 2186.532959 1182.828125 2204.974365 1201.232544 2216.087646 1213.990723 C 2227.200684 1226.749023 2243.399658 1249.257935 2252.084961 1264.01062 C 2260.770508 1278.763306 2272.654785 1304.03894 2278.494873 1320.178711 C 2284.335205 1336.318604 2291.829834 1363.253906 2295.149902 1380.034912 C 2298.469971 1396.815918 2301.450439 1425.985596 2301.772949 1444.856445 C 2302.095459 1463.727295 2300.265381 1492.506348 2297.706055 1508.809814 C 2295.146973 1525.113281 2289.292236 1549.491943 2284.696045 1562.984253 C 2280.099609 1576.476807 2269.786621 1600.517822 2261.778564 1616.409058 C 2253.77002 1632.300293 2239.96167 1655.053589 2231.093018 1666.971924 C 2222.224365 1678.890259 2203.762695 1699.345581 2190.067139 1712.428223 C 2176.371338 1725.510742 2156.227295 1742.105225 2145.302002 1749.30481 C 2134.376709 1756.504272 2111.271973 1769.012451 2093.958008 1777.100586 C 2076.644287 1785.188721 2049.828125 1795.158691 2034.366211 1799.255859 C 2014.05603 1804.637939 1991.720215 1807.082275 1953.885376 1808.063477 C 1917.532959 1809.006226 1893.784668 1807.829102 1876.235229 1804.214844 C 1862.330566 1801.351196 1841.202393 1795.500244 1829.284058 1791.212646 C 1817.365723 1786.924927 1797.862793 1778.528809 1785.944458 1772.554199 C 1774.026123 1766.579834 1755.231689 1755.557617 1744.179199 1748.060791 C 1733.126465 1740.563721 1715.372559 1726.994385 1704.725952 1717.906494 C 1694.079224 1708.818604 1676.610474 1689.741699 1665.906982 1675.513428 C 1655.203247 1661.285156 1640.628418 1638.103027 1633.518433 1623.997314 C 1626.408691 1609.891846 1616.817139 1587.267822 1612.204224 1573.72168 C 1607.591187 1560.175781 1601.032349 1532.003418 1597.628906 1511.116455 C 1591.905273 1475.988403 1590.586914 1472.488647 1580.050659 1464.452148 C 1573.785889 1459.673828 1545.435303 1444.615479 1517.049194 1430.989502 L 1465.438477 1406.214844 Z"></path>
<path id="SvgjsPath1007" fill="#b0d6ed" fill-rule="evenodd" stroke="none" d="M 428.065002 2058.47168 C 410.135254 2058.271973 384.90152 2055.815674 371.989899 2053.012939 C 359.078278 2050.210205 337.950287 2044.456543 325.038666 2040.227173 C 312.127014 2035.997681 290.186432 2026.891113 276.281616 2019.990356 C 262.376801 2013.089478 242.873993 2001.759766 232.942001 1994.813232 C 223.01001 1987.866699 203.772507 1971.394409 190.191956 1958.208008 C 176.611526 1945.021729 158.457458 1925.179932 149.849747 1914.115356 C 141.24202 1903.050781 128.543549 1883.547974 121.630989 1870.775757 C 114.71843 1858.00354 104.900955 1835.276245 99.814377 1820.270508 C 94.727806 1805.264893 88.064445 1778.641846 85.006767 1761.108398 C 81.949203 1743.574951 79.454079 1715.221436 79.462128 1698.100708 C 79.470062 1680.979736 81.944138 1651.757324 84.95993 1633.161499 C 87.97583 1614.565796 95.864487 1584.918457 102.490257 1567.27832 C 109.116142 1549.638184 122.488159 1521.96875 132.205887 1505.790527 C 141.923615 1489.612183 161.100052 1464.306396 174.820251 1449.555542 C 188.540451 1434.804688 209.141907 1415.52124 220.601303 1406.703613 C 232.060593 1397.885742 253.523407 1384.151611 268.296417 1376.183105 C 283.069305 1368.214722 306.98291 1357.672607 321.437622 1352.756104 C 335.892426 1347.839844 360.673004 1341.360107 376.505768 1338.356689 C 392.338501 1335.353149 419.527283 1332.895874 436.925232 1332.895874 C 454.32309 1332.895874 482.178894 1335.28125 498.826935 1338.196899 C 515.474854 1341.112549 541.00415 1347.559082 555.558716 1352.522949 C 570.113281 1357.486816 590.755615 1366.278564 601.430603 1372.060303 C 612.10553 1377.842285 631.204407 1389.968994 643.872559 1399.008789 C 656.540649 1408.048584 678.967041 1428.266602 693.708984 1443.937744 C 709.81543 1461.059448 726.998779 1484.281494 736.764893 1502.124756 C 745.703735 1518.456421 757.340454 1538.894409 762.624329 1547.542725 C 771.33197 1561.794556 777.756531 1566.043945 831.245361 1592.931396 C 863.703125 1609.247192 894.023071 1624.968384 898.622925 1627.867676 C 906.759644 1632.996094 905.998718 1633.63269 870.564209 1651.333984 C 846.801697 1663.20459 827.454834 1675.988892 814.903076 1688.114502 C 795.664246 1706.699951 795.664246 1706.699951 791.316467 1746.427856 C 788.493652 1772.221436 782.807678 1798.390137 775.105225 1821.036865 C 768.580261 1840.221436 756.083984 1868.663086 747.335693 1884.240479 C 735.673279 1905.006836 720.79834 1923.162109 691.580566 1952.291016 C 663.996582 1979.791016 642.598877 1997.443359 622.060486 2009.642578 C 605.741577 2019.335693 576.523315 2032.669189 557.131226 2039.272461 C 537.739075 2045.875977 508.1008 2052.97876 491.268585 2055.056396 C 474.436279 2057.134277 445.994659 2058.670898 428.065002 2058.47168 Z"></path>
</g>
</svg><style>@media (prefers-color-scheme: light) { :root { filter: none; } }
@media (prefers-color-scheme: dark) { :root { filter: none; } }
</style></svg>

After

Width:  |  Height:  |  Size: 43 KiB

+21
View File
@@ -0,0 +1,21 @@
{
"name": "MyWebSite",
"short_name": "MySite",
"icons": [
{
"src": "/web-app-manifest-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/web-app-manifest-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 61 KiB

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

+20 -5
View File
@@ -4,9 +4,25 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cene in reference - Prosberry</title>
<meta name="description" content="Pregled cen storitev Prosberry za tečaje angleščine, albanščine in slovenščine ter medkulturno posredovanje. Preberite reference zadovoljnih strank in spoznajte strokovnost Amre Kurešepi Zulji.">
<meta name="keywords" content="cene, cenik, reference, mnenja strank, tečaji angleščine, medkulturno posredovanje, Prosberry, Amra Kurešepi Zulji">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +30,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -237,8 +253,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
+21 -5
View File
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cene in sodelovanja - Prosberry</title>
<meta name="description" content="Za informacije o cenah storitev Prosberry in možnostih sodelovanja nas kontaktirajte. Nudimo tečaje angleščine, medkulturno posredovanje in delavnice.">
<meta name="keywords" content="cene, sodelovanje, Prosberry, tečaji angleščine, medkulturno posredovanje, delavnice, cenik">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/cene-in-sodelovanja/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -146,8 +163,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
+1 -5470
View File
File diff suppressed because it is too large. Load diff
+25 -9
View File
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Delavnice - Prosberry</title>
<meta name="description" content="Pregled vseh delavnic Prosberry za šole, vrtce in zaposlene. Izboljšajte vključevanje priseljencev, sodelovanje s starši in strokovni razvoj ekipe z našimi strokovno pripravljenimi vsebinami.">
<meta name="keywords" content="delavnice, šole, vrtci, zaposleni, vključevanje priseljencev, sodelovanje s starši, strokovni razvoj, Prosberry, Amra Kurešepi Zulji">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/delavnice/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -139,7 +156,7 @@
<div class="workshop-card-grid">
<a class="workshop-card" href="/skupaj-za-vkljucevanje/delavnica-zakaj-znati-slovensko/" data-aos="fade-up">
<div class="workshop-card-image">
<img src="/assets/images/vkljucevanje/delavnica-ucenci.png" alt="Delavnica Zakaj se splača znati slovensko?">
<img src="/assets/images/vkljucevanje/delavnica-ucenci.webp" alt="Delavnica Zakaj se splača znati slovensko?" loading="lazy" decoding="async" width="1536" height="1024">
</div>
<div class="workshop-card-title">
Zakaj se splača znati slovensko?
@@ -147,7 +164,7 @@
</a>
<a class="workshop-card" href="/skupaj-za-vkljucevanje/delavnica-sola-in-starsi/" data-aos="fade-up" data-aos-delay="100">
<div class="workshop-card-image">
<img src="/assets/images/vkljucevanje/delavnica-starsi-sola.png" alt="Delavnica Šola in starši priseljenci">
<img src="/assets/images/vkljucevanje/delavnica-starsi-sola.webp" alt="Delavnica Šola in starši priseljenci" loading="lazy" decoding="async" width="1536" height="1024">
</div>
<div class="workshop-card-title">
Šola in starši priseljenci
@@ -165,7 +182,7 @@
<div class="workshop-card-grid workshop-card-grid--single">
<a class="workshop-card" href="/skupaj-za-vkljucevanje/delavnica-vrtec-novi-zacetki/" data-aos="fade-up">
<div class="workshop-card-image">
<img src="/assets/images/vkljucevanje/delavnica-starsi-vrtec.png" alt="Delavnica Skupaj gradimo nove začetke">
<img src="/assets/images/vkljucevanje/delavnica-starsi-vrtec.webp" alt="Delavnica Skupaj gradimo nove začetke" loading="lazy" decoding="async" width="1536" height="1024">
</div>
<div class="workshop-card-title">
Skupaj gradimo nove začetke
@@ -183,7 +200,7 @@
<div class="workshop-card-grid workshop-card-grid--single">
<a class="workshop-card" href="/skupaj-za-vkljucevanje/delavnica-od-tujca-do-sosolca/" data-aos="fade-up">
<div class="workshop-card-image">
<img src="/assets/images/vkljucevanje/delavnica-ucitelji.png" alt="Delavnica Od tujca do sošolca">
<img src="/assets/images/vkljucevanje/delavnica-ucitelji.webp" alt="Delavnica Od tujca do sošolca" loading="lazy" decoding="async" width="1536" height="1024">
</div>
<div class="workshop-card-title">
Od tujca do sošolca
@@ -209,8 +226,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
+74
View File
@@ -0,0 +1,74 @@
import os
from PIL import Image
# Project root directory (where this script is located)
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
IMAGES_DIR = os.path.join(PROJECT_ROOT, 'assets', 'images')
# Define images and their desired responsive widths
# Each tuple: (original_filename, [list_of_widths_to_generate])
RESPONSIVE_IMAGES_CONFIG = [
('amra.webp', [320, 480, 767, 960]), # Added 320w
('logo.webp', [100, 200, 400]) # Added 100w
]
def generate_responsive_image(image_path, output_width, output_dir, quality=85):
"""
Generates a responsive version of an image with a specified width.
Maintains aspect ratio.
"""
try:
with Image.open(image_path) as img:
# Calculate new height to maintain aspect ratio
original_width, original_height = img.size
if original_width <= output_width:
# If original is smaller or equal, no need to resize down
# We still save it with the new naming convention if it's part of srcset
new_width = original_width
new_height = original_height
else:
new_width = output_width
new_height = int((original_height * new_width) / original_width)
# Resize only if dimensions change
if new_width != original_width or new_height != original_height:
img = img.resize((new_width, new_height), Image.Resampling.LANCZOS)
# Construct new filename (e.g., amra-480w.webp)
base_name, ext = os.path.splitext(os.path.basename(image_path))
# Ensure we only take the base name before any existing -<width>w
base_name_clean = base_name.split('-')[0]
new_filename = f"{base_name_clean}-{output_width}w{ext}"
output_path = os.path.join(output_dir, new_filename)
img.save(output_path, format=img.format, quality=quality)
print(f"Generated: {output_path} ({new_width}x{new_height})")
return True
except FileNotFoundError:
print(f"Error: Source image not found at {image_path}")
return False
except Exception as e:
print(f"Error processing {image_path} for width {output_width}: {e}")
return False
def main():
print("Starting responsive image generation...")
if not os.path.exists(IMAGES_DIR):
print(f"Error: Image directory not found at {IMAGES_DIR}")
return
for original_filename, widths in RESPONSIVE_IMAGES_CONFIG:
original_image_path = os.path.join(IMAGES_DIR, original_filename)
if not os.path.exists(original_image_path):
print(f"Warning: Original image {original_filename} not found. Skipping.")
continue
for width in widths:
generate_responsive_image(original_image_path, width, IMAGES_DIR)
print("Responsive image generation complete.")
if __name__ == "__main__":
main()
+2 -2
View File
@@ -3,8 +3,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
+29 -11
View File
@@ -3,10 +3,29 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kontakt - Prosberry</title>
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<title>Prosberry - Medkulturno izobraževanje in podpora</title>
<meta name="description" content="Prosberry je vaš medkulturni kotiček za učenje angleščine, razumevanje medkulturnih odnosov in osebno rast. Nudimo delavnice, medkulturno posredovanje in individualno podporo.">
<meta name="keywords" content="učenje angleščine, medkulturno posredovanje, delavnice za otroke, delavnice za starše, delavnice za šole, Amra Kurešepi Zulji, Prosberry">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="preload" as="image" href="/assets/images/amra-767w.webp" imagesrcset="/assets/images/amra-320w.webp 320w, /assets/images/amra-480w.webp 480w, /assets/images/amra-767w.webp 767w, /assets/images/amra-960w.webp 960w, /assets/images/amra.webp 1544w" imagesizes="(max-width: 767px) 100vw, (max-width: 992px) 50vw, 480px">
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap"></noscript>
<link rel="preload" href="https://unpkg.com/aos@next/dist/aos.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css"></noscript>
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +33,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -129,7 +148,7 @@
<h1>Dobrodošli v našem medkulturnem kotičku…</h1>
<p class="hero-new-subtitle">Uči se angleščine, razvozlaj medkulturne vozle in uživaj v vsakem koraku!</p>
<div class="hero-info-box">
<h3>Zakaj PROSBERRY?</h3>
<h2>Zakaj PROSBERRY?</h2>
<p><strong>PROS</strong> simbolizira znanje, izkušnje in strokovnost, ki podpirajo rast in razvoj.</p>
<p><strong>BERRY</strong> predstavlja raznolikost in živost, ki bogati učenje, povezovanje in medkulturne izkušnje.</p>
<p>Tudi v jeziku in med ljudmi rastemo vsak po svoje – z različnimi potrebami, ozadji in cilji.</p>
@@ -137,7 +156,7 @@
</div>
</div>
<div class="hero-new-image" data-aos="fade-left">
<img src="assets/images/amra.png" alt="Amra Kurešepi Zulji">
<img src="assets/images/amra.webp" alt="Amra Kurešepi Zulji" width="1544" height="1920" fetchpriority="high" srcset="/assets/images/amra-320w.webp 320w, /assets/images/amra-480w.webp 480w, /assets/images/amra-767w.webp 767w, /assets/images/amra-960w.webp 960w, /assets/images/amra.webp 1544w">
</div>
</div>
<!-- Dekorativni elementi v ozadju -->
@@ -177,7 +196,7 @@
<section class="about-amra-intro">
<div class="about-amra-wrapper" data-aos="fade-up">
<div class="about-amra-image">
<img src="assets/images/amra2.png" alt="Amra Kurešepi Zulji" loading="lazy">
<img src="assets/images/amra2.webp" alt="Amra Kurešepi Zulji" loading="lazy" decoding="async" width="480" height="503">
</div>
<div class="about-amra-content">
<p>Sem Amra – mama, žena, raziskovalka jezikov in kultur ter vaša zvesta sopotnica na zanimivi poti učenja in odkrivanja novih svetov.</p>
@@ -217,8 +236,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="js/main.js"></script>
<script src="js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="js/main.js" defer></script>
</body>
</html>
+1 -561
View File
@@ -1,561 +1 @@
document.addEventListener('DOMContentLoaded', function() {
// --- Mobile Menu Toggle ---
const mobileMenuBtn = document.querySelector('.mobile-menu-btn');
const navLinks = document.querySelector('.nav-links');
let closeMobileMenu = () => {};
let resetMobileSubmenus = () => {};
const normalizePath = (value) => {
if (!value) {
return '/';
}
let clean = value.split('?')[0].split('#')[0];
clean = clean.replace(/index\.html$/i, '');
clean = clean.replace(/\/+$/, '');
if (clean === '') {
clean = '/';
}
return clean;
};
const applyActiveNavState = () => {
const navRoot = document.querySelector('.nav-links');
if (!navRoot) {
return;
}
navRoot.querySelectorAll('a.active, .dropbtn.active').forEach(el => {
el.classList.remove('active');
});
const currentPath = normalizePath(window.location.pathname);
const navAnchors = navRoot.querySelectorAll('a[href]');
let matchedLink = null;
navAnchors.forEach(anchor => {
const href = anchor.getAttribute('href');
if (!href || href.startsWith('http') || href.startsWith('mailto:') || href.startsWith('tel:') || href.startsWith('#')) {
return;
}
const linkPath = normalizePath(href);
if (linkPath === currentPath) {
matchedLink = anchor;
}
});
if (!matchedLink) {
return;
}
matchedLink.classList.add('active');
const highlightDropdownParents = (element) => {
let parentContent = element.closest('.dropdown-submenu-content, .dropdown-content');
while (parentContent) {
const trigger = parentContent.previousElementSibling;
if (trigger && (trigger.tagName === 'A' || trigger.classList.contains('dropbtn'))) {
trigger.classList.add('active');
}
parentContent = parentContent.parentElement ? parentContent.parentElement.closest('.dropdown-submenu-content, .dropdown-content') : null;
}
};
highlightDropdownParents(matchedLink);
const topLevelDropdown = matchedLink.closest('.dropdown');
if (topLevelDropdown) {
const trigger = topLevelDropdown.querySelector('.dropbtn');
if (trigger) {
trigger.classList.add('active');
}
}
};
if (mobileMenuBtn && navLinks) {
resetMobileSubmenus = () => {
navLinks.querySelectorAll('.dropdown-content, .dropdown-submenu-content').forEach(submenu => {
submenu.style.display = 'none';
});
navLinks.querySelectorAll('.dropbtn, .dropdown-submenu > a').forEach(link => {
link.classList.remove('active');
});
applyActiveNavState();
};
closeMobileMenu = () => {
mobileMenuBtn.classList.remove('active');
navLinks.classList.remove('active');
document.body.classList.remove('no-scroll');
resetMobileSubmenus();
};
mobileMenuBtn.addEventListener('click', (event) => {
event.stopPropagation(); // Prepreči, da bi se dogodek takoj prenesel na 'document'
const willOpen = !navLinks.classList.contains('active');
if (willOpen) {
mobileMenuBtn.classList.add('active');
navLinks.classList.add('active');
document.body.classList.add('no-scroll');
resetMobileSubmenus();
} else {
closeMobileMenu();
}
});
}
// --- Active Navigation Highlight ---
applyActiveNavState();
// --- Mobile Dropdown Logic ---
// Logika za odpiranje podmenijev na klik na mobilnih napravah
const dropdowns = document.querySelectorAll('.nav-links .dropdown-submenu > a, .nav-links .dropdown > .dropbtn');
dropdowns.forEach(item => {
item.addEventListener('click', function(event) {
// Preveri, ali smo na mobilni napravi (ujema se z CSS @media query)
if (window.innerWidth <= 768) {
// Prepreči navigacijo, če je to link, saj želimo samo odpreti podmeni
if (item.tagName === 'A') {
event.preventDefault();
}
event.stopPropagation();
const submenu = item.nextElementSibling;
if (!submenu) {
return;
}
const isTopLevelTrigger = item.classList.contains('dropbtn');
if (isTopLevelTrigger) {
navLinks.querySelectorAll('.dropdown-content').forEach(panel => {
if (panel !== submenu) {
panel.style.display = 'none';
const trigger = panel.parentElement.querySelector('.dropbtn');
if (trigger) {
trigger.classList.remove('active');
}
panel.querySelectorAll('.dropdown-submenu-content').forEach(child => {
child.style.display = 'none';
const childTrigger = child.parentElement.querySelector(':scope > a');
if (childTrigger) {
childTrigger.classList.remove('active');
}
});
}
});
} else {
const siblingsWrapper = item.parentElement && item.parentElement.parentElement;
if (siblingsWrapper) {
siblingsWrapper.querySelectorAll(':scope > .dropdown-submenu > .dropdown-submenu-content').forEach(panel => {
if (panel !== submenu) {
panel.style.display = 'none';
const trigger = panel.parentElement.querySelector(':scope > a');
if (trigger) {
trigger.classList.remove('active');
}
panel.querySelectorAll('.dropdown-submenu-content').forEach(child => {
child.style.display = 'none';
const childTrigger = child.parentElement.querySelector(':scope > a');
if (childTrigger) {
childTrigger.classList.remove('active');
}
});
}
});
}
}
const shouldOpen = submenu.style.display !== 'block';
if (shouldOpen) {
submenu.style.display = 'block';
item.classList.add('active');
submenu.querySelectorAll('.dropdown-submenu-content').forEach(child => {
child.style.display = 'none';
const childTrigger = child.parentElement.querySelector(':scope > a');
if (childTrigger) {
childTrigger.classList.remove('active');
}
});
} else {
submenu.style.display = 'none';
item.classList.remove('active');
submenu.querySelectorAll('.dropdown-submenu-content').forEach(child => {
child.style.display = 'none';
const childTrigger = child.parentElement.querySelector(':scope > a');
if (childTrigger) {
childTrigger.classList.remove('active');
}
});
}
}
});
});
// --- Close mobile menu when clicking outside ---
document.addEventListener('click', function(event) {
if (window.innerWidth <= 768 && navLinks && navLinks.classList.contains('active')) {
// Preveri, ali klik ni bil znotraj navigacije ali na gumb za meni
const isClickInsideNav = navLinks.contains(event.target);
const isClickOnBtn = mobileMenuBtn && mobileMenuBtn.contains(event.target);
if (!isClickInsideNav && !isClickOnBtn) {
closeMobileMenu();
}
}
});
// --- Close mobile menu when a link is clicked ---
const navLinkItems = document.querySelectorAll('.nav-links a');
navLinkItems.forEach(link => {
link.addEventListener('click', (event) => {
// Preprečimo zapiranje, če ima link podmeni in smo na mobilni napravi
const hasSubmenu = link.parentElement.classList.contains('dropdown-submenu') || link.classList.contains('dropbtn');
if (window.innerWidth <= 768) {
if (hasSubmenu) {
// To je že obdelano v zgornji logiki, tukaj samo preprečimo, da bi se meni takoj zaprl
return;
}
closeMobileMenu();
}
});
});
// --- Accordion Logic for "Več" buttons ---
const accordions = document.querySelectorAll('.accordion-toggle');
accordions.forEach(accordion => {
accordion.addEventListener('click', function() {
const accordionItem = this.closest('.mediation-accordion-item');
const content = accordionItem ? accordionItem.querySelector('.accordion-content') : null;
if (!content) {
return;
}
this.classList.toggle('active');
const isOpen = this.classList.contains('active');
this.setAttribute('aria-expanded', String(isOpen));
content.setAttribute('aria-hidden', String(!isOpen));
if (isOpen) {
content.style.maxHeight = content.scrollHeight + "px";
this.textContent = 'Manj';
} else {
content.style.maxHeight = null;
this.textContent = 'Več';
}
});
accordion.textContent = 'Več';
accordion.setAttribute('aria-expanded', 'false');
const initialContent = accordion.closest('.mediation-accordion-item')?.querySelector('.accordion-content');
if (initialContent) {
initialContent.setAttribute('aria-hidden', 'true');
}
});
// --- Header Scroll Effect ---
const header = document.querySelector('.main-header');
if (header) {
let lastScroll = 0;
window.addEventListener('scroll', () => {
const currentScroll = window.pageYOffset;
if (currentScroll <= 0) {
header.classList.remove('scroll-up');
return;
}
if (currentScroll > lastScroll && !header.classList.contains('scroll-down')) {
// Scroll Down
header.classList.remove('scroll-up');
header.classList.add('scroll-down');
} else if (currentScroll < lastScroll && header.classList.contains('scroll-down')) {
// Scroll Up
header.classList.remove('scroll-down');
header.classList.add('scroll-up');
}
lastScroll = currentScroll;
});
}
// --- Accordion Logic for Mediation Page ---
const mediationSections = document.querySelectorAll('.mediation-section');
if (mediationSections.length) {
const mediationTitles = document.querySelectorAll('.mediation-section h2');
const closeAllSections = () => {
mediationSections.forEach(section => {
section.classList.remove('active');
});
};
mediationTitles.forEach(title => {
title.addEventListener('click', () => {
const parentSection = title.parentElement;
const isAlreadyActive = parentSection.classList.contains('active');
closeAllSections();
if (!isAlreadyActive) {
parentSection.classList.add('active');
}
});
});
const openSectionFromHash = () => {
const hash = window.location.hash;
if (hash) {
const targetSection = document.querySelector(hash);
if (targetSection && targetSection.classList.contains('mediation-section')) {
closeAllSections();
targetSection.classList.add('active');
}
}
};
window.addEventListener('hashchange', openSectionFromHash);
openSectionFromHash();
if (!document.querySelector('.mediation-section.active') && mediationSections[0]) {
mediationSections[0].classList.add('active');
}
}
// --- POPRAVLJENA in ZANESLJIVA logika za meni ---
const dropdownContainers = document.querySelectorAll('.nav-links .dropdown');
if (dropdownContainers.length) {
const closeAllDropdowns = () => {
dropdownContainers.forEach(container => {
const dropdownContent = container.querySelector('.dropdown-content');
if (!dropdownContent) {
return;
}
container.classList.remove('is-open');
dropdownContent.style.display = 'none';
dropdownContent.querySelectorAll('.dropdown-submenu-content').forEach(submenu => {
submenu.style.display = 'none';
});
});
};
dropdownContainers.forEach(container => {
const dropBtn = container.querySelector('.dropbtn');
const dropdownContent = container.querySelector('.dropdown-content');
if (!dropBtn || !dropdownContent) {
return;
}
const closeDropdown = () => {
container.classList.remove('is-open');
dropdownContent.style.display = 'none';
dropdownContent.querySelectorAll('.dropdown-submenu-content').forEach(submenu => {
submenu.style.display = 'none';
});
};
const openDropdown = () => {
container.classList.add('is-open');
dropdownContent.style.display = 'block';
};
dropBtn.addEventListener('click', (event) => {
if (window.innerWidth <= 768) {
return; // mobilna logika že upravlja
}
event.preventDefault();
const isOpen = container.classList.contains('is-open');
closeAllDropdowns();
if (!isOpen) {
openDropdown();
}
});
const submenuLinks = container.querySelectorAll('.dropdown-submenu > a');
submenuLinks.forEach(link => {
const submenu = link.nextElementSibling;
if (!submenu) {
return;
}
link.addEventListener('click', (event) => {
if (window.innerWidth <= 768) {
return; // mobilna logika že upravlja
}
const parentList = link.parentElement.parentElement;
parentList.querySelectorAll(':scope > .dropdown-submenu > .dropdown-submenu-content').forEach(sm => {
if (sm !== submenu) {
sm.style.display = 'none';
}
});
const isOpen = submenu.style.display === 'block';
const href = link.getAttribute('href') || '';
if (href === '#' || href.trim() === '') {
event.preventDefault();
submenu.style.display = isOpen ? 'none' : 'block';
return;
}
if (!isOpen) {
event.preventDefault();
submenu.style.display = 'block';
} else {
closeDropdown();
}
});
});
container.querySelectorAll('.dropdown-submenu-content a').forEach(link => {
if (link.nextElementSibling) {
return;
}
link.addEventListener('click', () => {
if (window.innerWidth <= 768) {
return;
}
closeAllDropdowns();
closeMobileMenu();
});
});
});
document.addEventListener('click', (event) => {
if (window.innerWidth <= 768) {
return;
}
const clickedInside = Array.from(dropdownContainers).some(container => container.contains(event.target));
if (!clickedInside) {
closeAllDropdowns();
}
});
window.addEventListener('resize', () => {
if (window.innerWidth <= 768) {
closeAllDropdowns();
closeMobileMenu();
}
});
}
window.addEventListener('resize', () => {
if (window.innerWidth > 768) {
closeMobileMenu();
}
});
// --- Initialize AOS (Animate on Scroll) ---
if (typeof AOS !== 'undefined') {
AOS.init({
duration: 600,
easing: 'ease-out',
once: true, // Animacija se zgodi samo enkrat
offset: 50,
delay: 100,
disable: 'mobile'
});
}
// --- "Read More" Button Logic for Kdo Sem Page ---
const readMoreBtn = document.querySelector('.read-more-btn');
const moreStoryContent = document.querySelector('.more-story-content');
if (readMoreBtn && moreStoryContent) {
if (moreStoryContent.id) {
readMoreBtn.setAttribute('aria-controls', moreStoryContent.id);
}
const applyStoryState = (isVisible) => {
readMoreBtn.textContent = isVisible ? 'Skrij zgodbo' : 'Moja zgodba';
readMoreBtn.setAttribute('aria-expanded', isVisible ? 'true' : 'false');
moreStoryContent.setAttribute('aria-hidden', isVisible ? 'false' : 'true');
};
let isExpanded = moreStoryContent.classList.contains('visible');
applyStoryState(isExpanded);
moreStoryContent.style.height = isExpanded ? 'auto' : '0px';
const openStory = () => {
moreStoryContent.classList.add('visible');
const targetHeight = moreStoryContent.scrollHeight;
moreStoryContent.classList.add('is-animating');
moreStoryContent.style.height = '0px';
requestAnimationFrame(() => {
moreStoryContent.style.height = `${targetHeight}px`;
});
};
const closeStory = () => {
const currentHeight = moreStoryContent.scrollHeight;
moreStoryContent.style.height = `${currentHeight}px`;
moreStoryContent.classList.add('is-animating');
requestAnimationFrame(() => {
moreStoryContent.style.height = '0px';
});
};
moreStoryContent.addEventListener('transitionend', (event) => {
if (event.propertyName !== 'height') {
return;
}
moreStoryContent.classList.remove('is-animating');
if (isExpanded) {
moreStoryContent.style.height = 'auto';
} else {
moreStoryContent.classList.remove('visible');
moreStoryContent.style.height = '';
}
});
readMoreBtn.addEventListener('click', () => {
if (moreStoryContent.classList.contains('is-animating')) {
return;
}
isExpanded = !isExpanded;
applyStoryState(isExpanded);
if (isExpanded) {
openStory();
} else {
closeStory();
}
});
}
});
// --- Legacy form validation functions (can be kept for potential future use) ---
// Note: The main form submission logic is now handled via fetch in kontakt/index.html
function showError(input, message) {
const formControl = input.parentElement;
const errorDiv = formControl.querySelector('.error-message') || document.createElement('div');
errorDiv.className = 'error-message';
errorDiv.textContent = message;
if (!formControl.querySelector('.error-message')) {
formControl.appendChild(errorDiv);
}
formControl.classList.add('error');
}
function removeError(input) {
const formControl = input.parentElement;
const errorDiv = formControl.querySelector('.error-message');
if (errorDiv) {
formControl.removeChild(errorDiv);
}
formControl.classList.remove('error');
}
function isValidEmail(email) {
const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(String(email).toLowerCase());
}
document.addEventListener('DOMContentLoaded', function() { const mobileMenuBtn = document.querySelector('.mobile-menu-btn'); const navLinks = document.querySelector('.nav-links'); let closeMobileMenu = () => {}; let resetMobileSubmenus = () => {}; const normalizePath = (value) => { if (!value) { return '/'; } let clean = value.split('?')[0].split('#')[0]; clean = clean.replace(/index\.html$/i, ''); clean = clean.replace(/\/+$/, ''); if (clean === '') { clean = '/'; } return clean; }; const applyActiveNavState = () => { const navRoot = document.querySelector('.nav-links'); if (!navRoot) { return; } navRoot.querySelectorAll('a.active, .dropbtn.active').forEach(el => { el.classList.remove('active'); }); const currentPath = normalizePath(window.location.pathname); const navAnchors = navRoot.querySelectorAll('a[href]'); let matchedLink = null; navAnchors.forEach(anchor => { const href = anchor.getAttribute('href'); if (!href || href.startsWith('http') || href.startsWith('mailto:') || href.startsWith('tel:') || href.startsWith('#')) { return; } const linkPath = normalizePath(href); if (linkPath === currentPath) { matchedLink = anchor; } }); if (!matchedLink) { return; } matchedLink.classList.add('active'); const highlightDropdownParents = (element) => { let parentContent = element.closest('.dropdown-submenu-content, .dropdown-content'); while (parentContent) { const trigger = parentContent.previousElementSibling; if (trigger && (trigger.tagName === 'A' || trigger.classList.contains('dropbtn'))) { trigger.classList.add('active'); } parentContent = parentContent.parentElement ? parentContent.parentElement.closest('.dropdown-submenu-content, .dropdown-content') : null; } }; highlightDropdownParents(matchedLink); const topLevelDropdown = matchedLink.closest('.dropdown'); if (topLevelDropdown) { const trigger = topLevelDropdown.querySelector('.dropbtn'); if (trigger) { trigger.classList.add('active'); } } }; if (mobileMenuBtn && navLinks) { resetMobileSubmenus = () => { navLinks.querySelectorAll('.dropdown-content, .dropdown-submenu-content').forEach(submenu => { submenu.style.display = 'none'; }); navLinks.querySelectorAll('.dropbtn, .dropdown-submenu > a').forEach(link => { link.classList.remove('active'); }); applyActiveNavState(); }; closeMobileMenu = () => { mobileMenuBtn.classList.remove('active'); navLinks.classList.remove('active'); document.body.classList.remove('no-scroll'); resetMobileSubmenus(); }; mobileMenuBtn.addEventListener('click', (event) => { event.stopPropagation(); const willOpen = !navLinks.classList.contains('active'); if (willOpen) { mobileMenuBtn.classList.add('active'); navLinks.classList.add('active'); document.body.classList.add('no-scroll'); resetMobileSubmenus(); } else { closeMobileMenu(); } }); } applyActiveNavState(); const dropdowns = document.querySelectorAll('.nav-links .dropdown-submenu > a, .nav-links .dropdown > .dropbtn'); dropdowns.forEach(item => { item.addEventListener('click', function(event) { if (window.innerWidth <= 768) { if (item.tagName === 'A') { event.preventDefault(); } event.stopPropagation(); const submenu = item.nextElementSibling; if (!submenu) { return; } const isTopLevelTrigger = item.classList.contains('dropbtn'); if (isTopLevelTrigger) { navLinks.querySelectorAll('.dropdown-content').forEach(panel => { if (panel !== submenu) { panel.style.display = 'none'; const trigger = panel.parentElement.querySelector('.dropbtn'); if (trigger) { trigger.classList.remove('active'); } panel.querySelectorAll('.dropdown-submenu-content').forEach(child => { child.style.display = 'none'; const childTrigger = child.parentElement.querySelector(':scope > a'); if (childTrigger) { childTrigger.classList.remove('active'); } }); } }); } else { const siblingsWrapper = item.parentElement && item.parentElement.parentElement; if (siblingsWrapper) { siblingsWrapper.querySelectorAll(':scope > .dropdown-submenu > .dropdown-submenu-content').forEach(panel => { if (panel !== submenu) { panel.style.display = 'none'; const trigger = panel.parentElement.querySelector(':scope > a'); if (trigger) { trigger.classList.remove('active'); } panel.querySelectorAll('.dropdown-submenu-content').forEach(child => { child.style.display = 'none'; const childTrigger = child.parentElement.querySelector(':scope > a'); if (childTrigger) { childTrigger.classList.remove('active'); } }); } }); } } const shouldOpen = submenu.style.display !== 'block'; if (shouldOpen) { submenu.style.display = 'block'; item.classList.add('active'); submenu.querySelectorAll('.dropdown-submenu-content').forEach(child => { child.style.display = 'none'; const childTrigger = child.parentElement.querySelector(':scope > a'); if (childTrigger) { childTrigger.classList.remove('active'); } }); } else { submenu.style.display = 'none'; item.classList.remove('active'); submenu.querySelectorAll('.dropdown-submenu-content').forEach(child => { child.style.display = 'none'; const childTrigger = child.parentElement.querySelector(':scope > a'); if (chLine truncated
+21 -5
View File
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kdo sem - Prosberry</title>
<meta name="description" content="Spoznajte Amro Kurešepi Zulji, ustanoviteljico Prosberry. Odkrijte njeno osebno zgodbo, izkušnje z večjezičnostjo in strast do podpore posameznikom pri učenju jezikov in medkulturnem razumevanju.">
<meta name="keywords" content="Amra Kurešepi Zulji, Prosberry, o meni, medkulturna mediatorka, profesorica angleščine, osebna rast, zgodba o uspehu">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/kdo-sem/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="../css/style.css">
<link rel="stylesheet" href="../css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -133,7 +150,7 @@
<div class="image-frame">
<picture>
<source srcset="../assets/images/kdo-sem-fotografija.webp" type="image/webp">
<img src="../assets/images/kdo-sem-fotografija.jpg" alt="Amra Kurešepi Zulji">
<img src="../assets/images/kdo-sem-fotografija.jpg" alt="Amra Kurešepi Zulji" loading="lazy" decoding="async" width="1600" height="900">
</picture>
</div>
</div>
@@ -195,9 +212,8 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="../js/main.js"></script>
<script src="../js/animations.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const toggles = document.querySelectorAll('.about-accordion-toggle');
+21 -5
View File
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kontakt - Prosberry</title>
<meta name="description" content="Stopite v stik z Prosberry za tečaje angleščine, medkulturno posredovanje ali delavnice. Izpolnite kontaktni obrazec ali nas pokličite in z veseljem vam bomo pomagali.">
<meta name="keywords" content="kontakt, Prosberry, Amra Kurešepi Zulji, tečaji angleščine, medkulturno posredovanje, delavnice, povpraševanje">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/kontakt/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -194,9 +211,8 @@
</div>
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
// --- Form Submission Logic ---
+16
View File
@@ -0,0 +1,16 @@
import re
with open("/home/mark/prosberry/js/main.js", "r") as f:
js_content = f.read()
# Remove single-line comments
js_content = re.sub(r"//.*", "", js_content)
# Remove multi-line comments
js_content = re.sub(r"/\*.*?\*/", "", js_content, flags=re.DOTALL)
# Remove newlines and extra whitespace
js_content = re.sub(r"\s+", " ", js_content)
js_content = js_content.strip()
with open("/home/mark/prosberry/js/main.js", "w") as f:
f.write(js_content)
+229
View File
@@ -0,0 +1,229 @@
import os
import argparse
import shutil
from PIL import Image
# --- Konfiguracija skripte za projekt "Hermina" ---
# Predpostavka: ta skripta se nahaja v korenski mapi projekta.
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
# Pot do mape, kjer se nahajajo slike, ki jih želimo optimizirati.
IMAGES_DIR_PATH = os.path.join("assets", "images")
# Ime podmape znotraj IMAGES_DIR_PATH, kamor se bodo shranile originalne slike.
ORIGINAL_IMAGES_SUBDIR_NAME = "original"
# Mape, ki jih želimo PREGLEDATI za posodobitev referenc na slike.
# '.' pomeni, da začnemo v korenski mapi in pregledamo vse podmape.
DIRECTORIES_TO_SCAN = ['.']
# Mape, ki jih želimo IZKLJUČITI iz pregledovanja (za hitrejše delovanje in varnost).
# Skripta ne bo iskala referenc v teh mapah.
DIRECTORIES_TO_EXCLUDE_FROM_SCAN = ['.git', '.gitea', '.vscode', '__pycache__']
# Končnice datotek, v katerih iščemo in posodabljamo reference na slike.
FILE_EXTENSIONS_TO_UPDATE = ['.html', '.css', '.js']
# Nastavitve optimizacije
WEBP_QUALITY = 85 # Kakovost kompresije za WebP (0-100). Višje = boljša kvaliteta, večja datoteka.
MAX_IMAGE_DIMENSION = 1920 # Slike, večje od te dimenzije (širina ali višina), bodo pomanjšane. 0 za izklop.
# Končnice slik, ki jih želimo optimizirati.
IMAGE_EXTENSIONS_TO_OPTIMIZE = ['.jpg', '.jpeg', '.png']
# Imena datotek, ki jih želimo preskočiti pri optimizaciji (npr. logotipi, ikone).
EXCLUDE_FILES_FROM_OPTIMIZATION = [
'favicon.ico'
# Dodajte imena drugih datotek po potrebi, npr. 'logo.png'
]
# --- Pomožne funkcije (večinoma nespremenjene) ---
def optimize_image(image_path, output_path, quality, max_dim, dry_run=False):
"""
Naloži sliko, jo po potrebi pomanjša, optimizira in pretvori v WebP format.
"""
try:
with Image.open(image_path) as img:
# Pretvorba slik s paleto (kot so nekatere PNG) v RGBA za ohranitev prosojnosti.
if img.mode in ('P', 'LA'):
img = img.convert("RGBA")
if max_dim > 0 and (img.width > max_dim or img.height > max_dim):
print(f" Pomanjšujem sliko {os.path.basename(image_path)} iz {img.width}x{img.height} ...", end="")
img.thumbnail((max_dim, max_dim), Image.Resampling.LANCZOS)
print(f" na {img.width}x{img.height}")
else:
print(f" Obdelujem sliko {os.path.basename(image_path)} ({img.width}x{img.height})...", end="")
if not dry_run:
img.save(output_path, "webp", quality=quality, method=6)
print(f" Shrani v {os.path.basename(output_path)} (kvaliteta: {quality}).")
else:
print(f" DRY RUN: Shranil bi v {os.path.basename(output_path)} (kvaliteta: {quality}).")
return True
except FileNotFoundError:
print(f" Napaka: Izvorna slika '{image_path}' ni najdena.")
return False
except Exception as e:
print(f" Napaka pri optimizaciji slike '{image_path}': {e}")
return False
def update_file_references(file_path, old_filename, new_filename, dry_run=False):
"""
V dani datoteki zamenja vse pojavitve starega imena slike z novim.
"""
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
except Exception:
# Ignoriramo binarne ali neberljive datoteke
return False
if old_filename in content:
updated_content = content.replace(old_filename, new_filename)
if not dry_run:
try:
with open(file_path, 'w', encoding='utf-8') as f:
f.write(updated_content)
print(f" Posodobljene reference v: '{os.path.relpath(file_path, PROJECT_ROOT)}'")
return True
except Exception as e:
print(f" Napaka pri zapisovanju v '{file_path}': {e}")
return False
else:
print(f" DRY RUN: Posodobil bi reference v: '{os.path.relpath(file_path, PROJECT_ROOT)}'")
return True
return False
def find_files_to_update(scan_dirs, exclude_dirs):
"""
Rekurzivno poišče vse datoteke z ustreznimi končnicami, pri tem pa ignorira izključene mape.
"""
found_files = []
for directory in scan_dirs:
scan_path = os.path.join(PROJECT_ROOT, directory)
for dirpath, dirnames, filenames in os.walk(scan_path):
# Učinkovit način za izključitev map: odstranimo jih iz seznama za nadaljnje pregledovanje
dirnames[:] = [d for d in dirnames if d not in exclude_dirs]
for filename in filenames:
if any(filename.endswith(ext) for ext in FILE_EXTENSIONS_TO_UPDATE):
found_files.append(os.path.join(dirpath, filename))
return sorted(list(set(found_files)))
# --- Glavna funkcija ---
def main():
parser = argparse.ArgumentParser(description="Optimizira slike v WebP in posodobi reference v projektu.")
parser.add_argument("--dry-run", action="store_true", help="Prikaže, katere spremembe bi se zgodile, a jih ne izvede.")
args = parser.parse_args()
images_full_path = os.path.join(PROJECT_ROOT, IMAGES_DIR_PATH)
original_images_full_path = os.path.join(images_full_path, ORIGINAL_IMAGES_SUBDIR_NAME)
# Dodamo mapo z originali v seznam za izključitev, da ne skeniramo še tam.
DIRECTORIES_TO_EXCLUDE_FROM_SCAN.append(ORIGINAL_IMAGES_SUBDIR_NAME)
if not os.path.isdir(images_full_path):
print(f"Napaka: Mapa s slikami '{images_full_path}' ne obstaja. Preverite pot v konfiguraciji.")
return
if not args.dry_run:
os.makedirs(original_images_full_path, exist_ok=True)
print(f"Mapa za originale: '{original_images_full_path}'")
else:
print(f"DRY RUN: Mapa za originale bi bila '{original_images_full_path}'.")
optimized_images_map = []
print("\n--- FAZA 1: OPTIMIZACIJA SLIK ---")
for dirpath, dirnames, filenames in os.walk(images_full_path):
# preskoči mapo z originali, če že obstaja
dirnames[:] = [
d for d in dirnames
if os.path.relpath(os.path.join(dirpath, d), images_full_path) != ORIGINAL_IMAGES_SUBDIR_NAME
]
for filename in filenames:
file_path = os.path.join(dirpath, filename)
if not os.path.isfile(file_path):
continue
name, ext = os.path.splitext(filename)
ext = ext.lower()
if filename in EXCLUDE_FILES_FROM_OPTIMIZATION:
print(f"- Preskakujem izključeno datoteko: '{filename}'")
continue
if ext in IMAGE_EXTENSIONS_TO_OPTIMIZE:
new_filename = f"{name}.webp"
new_file_path = os.path.join(dirpath, new_filename)
rel_dir = os.path.relpath(dirpath, images_full_path)
rel_dir = "" if rel_dir == "." else rel_dir
old_rel_path = os.path.join(rel_dir, filename) if rel_dir else filename
new_rel_path = os.path.join(rel_dir, new_filename) if rel_dir else new_filename
old_rel_path = old_rel_path.replace(os.sep, "/")
new_rel_path = new_rel_path.replace(os.sep, "/")
# Preveri, če WebP verzija že obstaja in je novejša
if os.path.exists(new_file_path) and os.path.getmtime(new_file_path) > os.path.getmtime(file_path):
print(f"- WebP '{new_rel_path}' že obstaja in je posodobljen. Preskakujem optimizacijo.")
optimized_images_map.append({'old': filename, 'new': new_filename, 'old_path': old_rel_path, 'new_path': new_rel_path})
continue
if optimize_image(file_path, new_file_path, WEBP_QUALITY, MAX_IMAGE_DIMENSION, args.dry_run):
optimized_images_map.append({'old': filename, 'new': new_filename, 'old_path': old_rel_path, 'new_path': new_rel_path})
if not args.dry_run:
try:
destination_dir = os.path.join(original_images_full_path, rel_dir) if rel_dir else original_images_full_path
os.makedirs(destination_dir, exist_ok=True)
shutil.move(file_path, os.path.join(destination_dir, filename))
print(f" Original '{old_rel_path}' premaknjen v '{ORIGINAL_IMAGES_SUBDIR_NAME}/'.")
except Exception as e:
print(f" NAPAKA pri premikanju '{old_rel_path}': {e}")
else:
print(f" DRY RUN: Original '{old_rel_path}' bi bil premaknjen v '{ORIGINAL_IMAGES_SUBDIR_NAME}/'.")
if not optimized_images_map:
print("\nNi bilo najdenih novih slik za optimizacijo.")
print("\n--- FAZA 2: POSODABLJANJE REFERENC V PROJEKTU ---")
files_to_scan = find_files_to_update(DIRECTORIES_TO_SCAN, DIRECTORIES_TO_EXCLUDE_FROM_SCAN)
if not files_to_scan:
print("Ni najdenih .html, .css ali .js datotek za pregled.")
else:
print(f"Najdenih {len(files_to_scan)} datotek za pregled...")
updated_files_count = 0
for file_path in files_to_scan:
file_was_updated = False
for img_info in optimized_images_map:
replaced = False
if update_file_references(file_path, img_info['old_path'], img_info['new_path'], args.dry_run):
replaced = True
# za nazaj združljivost: če je v datoteki samo ime brez poti
if update_file_references(file_path, img_info['old'], img_info['new'], args.dry_run):
replaced = True
if replaced:
file_was_updated = True
if file_was_updated:
updated_files_count += 1
print(f"\nPregledanih je bilo {len(files_to_scan)} datotek.")
print(f"Posodobljenih je bilo {updated_files_count} datotek.")
print("\n--- SKRIPTA JE ZAKLJUČILA Z DELOM ---")
if __name__ == "__main__":
main()
+20 -5
View File
@@ -4,9 +4,25 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pogosta vprašanja - Prosberry</title>
<meta name="description" content="Poiščite odgovore na pogosta vprašanja o medkulturnem posredovanju, delavnicah in sodelovanju z Prosberry. Izvedite več o naših storitvah in kako vam lahko pomagamo.">
<meta name="keywords" content="pogosta vprašanja, FAQ, medkulturno posredovanje, delavnice, Prosberry, Amra Kurešepi Zulji, vprašanja in odgovori">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +30,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -253,9 +269,8 @@
</div>
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
const faqItems = document.querySelectorAll('.faq-item');
+21 -5
View File
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Politika zasebnosti - Prosberry</title>
<meta name="description" content="Preberite politiko zasebnosti podjetja PROSBERRY, Amra Kurešepi Zulji s.p. Izvedite več o varovanju vaših osebnih podatkov, uporabi kontaktnega obrazca, pogodbeni obdelavi in hrambi podatkov.">
<meta name="keywords" content="politika zasebnosti, varovanje podatkov, GDPR, Prosberry, Amra Kurešepi Zulji, osebni podatki, piškotki">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/politika-zasebnosti/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -206,8 +223,7 @@
</div>
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
+21 -6
View File
@@ -4,18 +4,34 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Ponudba - Prosberry</title>
<meta name="description" content="Odkrijte celotno ponudbo Prosberry: tečaji angleščine, albanščine in slovenščine za vse nivoje ter medkulturno posredovanje za institucije, šole in priseljence. Učenje in podpora prilagojena vašim potrebam.">
<meta name="keywords" content="ponudba, tečaji angleščine, učenje albanščine, tečaji slovenščine, medkulturno posredovanje, inštrukcije, Prosberry, Amra Kurešepi Zulji">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="preconnect" href="https://unpkg.com" />
<link rel="dns-prefetch" href="https://fonts.googleapis.com" />
<link rel="dns-prefetch" href="https://fonts.gstatic.com" />
<link rel="dns-prefetch" href="https://unpkg.com" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" />
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css" />
<link rel="stylesheet" href="/css/animations.css" />
</head>
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
<nav class="nav-container">
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -254,8 +270,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
+5
View File
@@ -0,0 +1,5 @@
User-agent: *
Allow: /
Disallow: /kontakt/process_form.php
Sitemap: https://www.prosberry.si/sitemap.xml
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.prosberry.si/kdo-sem/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/politika-zasebnosti/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/skupaj-za-vkljucevanje/delavnica-vrtec-novi-zacetki/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/skupaj-za-vkljucevanje/delavnica-od-tujca-do-sosolca/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/skupaj-za-vkljucevanje/delavnica-sola-in-starsi/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/skupaj-za-vkljucevanje/delavnica-zakaj-znati-slovensko/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/skupaj-za-vkljucevanje/medkulturno-posredovanje/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/kontakt/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/delavnice/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/cene-in-sodelovanja/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/pogosta-vprasanja/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/ponudba/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/</loc>
<lastmod>2025-11-04</lastmod>
</url>
<url>
<loc>https://www.prosberry.si/cene-in-reference/</loc>
<lastmod>2025-11-04</lastmod>
</url>
</urlset>
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Delavnica: Od tujca do sošolca - Prosberry</title>
<meta name="description" content="Delavnica 'Od tujca do sošolca' ponuja učiteljem učinkovite strategije za motivacijo in vključevanje učencev priseljencev. Spoznajte, kako krepiti kulturno občutljivost in premagovati jezikovne ovire v razredu.">
<meta name="keywords" content="delavnica za učitelje, učenci priseljenci, motivacija učencev, kulturna občutljivost, jezikovne ovire, Prosberry, Amra Kurešepi Zulji">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/skupaj-za-vkljucevanje/delavnica-od-tujca-do-sosolca/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -191,7 +208,7 @@
</div>
<div class="workshop-image" data-aos="fade-left">
<div class="workshop-image-frame">
<img src="/assets/images/vkljucevanje/delavnica-ucitelji.png" alt="Ilustracija učiteljice, ki pomaga učencem različnih kultur">
<img src="/assets/images/vkljucevanje/delavnica-ucitelji.webp" alt="Ilustracija učiteljice, ki pomaga učencem različnih kultur" loading="lazy" decoding="async" width="1536" height="1024">
</div>
</div>
</div>
@@ -214,8 +231,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Delavnica: Šola in starši priseljenci - Prosberry</title>
<meta name="description" content="Delavnica 'Šola in starši priseljenci' pomaga staršem razumeti slovenski šolski sistem, njihove pravice in odgovornosti ter učinkovito sodelovati s šolo za podporo otrok. Spoznajte cilje, trajanje in ceno delavnice.">
<meta name="keywords" content="delavnica šola, starši priseljenci, sodelovanje s šolo, slovenski šolski sistem, podpora otrokom, Prosberry, Amra Kurešepi Zulji">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/skupaj-za-vkljucevanje/delavnica-sola-in-starsi/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -190,7 +207,7 @@
</div>
<div class="workshop-image" data-aos="fade-left">
<div class="workshop-image-frame">
<img src="/assets/images/vkljucevanje/delavnica-starsi-sola.png" alt="Ilustracija sestanka staršev in učiteljev">
<img src="/assets/images/vkljucevanje/delavnica-starsi-sola.webp" alt="Ilustracija sestanka staršev in učiteljev" loading="lazy" decoding="async" width="1536" height="1024">
</div>
</div>
</div>
@@ -213,8 +230,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Delavnica: Skupaj gradimo nove začetke - Prosberry</title>
<meta name="description" content="Delavnica 'Skupaj gradimo nove začetke' pomaga vrtcem in staršem priseljencem vzpostaviti zaupanje, razumeti delovanje vrtca ter olajšati vključevanje otrok v novo okolje. Spoznajte cilje, trajanje in ceno delavnice.">
<meta name="keywords" content="delavnica vrtec, starši priseljenci, vključevanje otrok, novi začetki, medkulturno razumevanje, Prosberry, Amra Kurešepi Zulji">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/skupaj-za-vkljucevanje/delavnica-vrtec-novi-zacetki/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -190,7 +207,7 @@
</div>
<div class="workshop-image" data-aos="fade-left">
<div class="workshop-image-frame">
<img src="/assets/images/vkljucevanje/delavnica-starsi-vrtec.png" alt="Ilustracija srečanja staršev v vrtcu">
<img src="/assets/images/vkljucevanje/delavnica-starsi-vrtec.webp" alt="Ilustracija srečanja staršev v vrtcu" loading="lazy" decoding="async" width="1536" height="1024">
</div>
</div>
</div>
@@ -213,8 +230,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
@@ -4,9 +4,25 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Delavnica: Zakaj se splača znati slovensko? - Prosberry</title>
<meta name="description" content="Interaktivna delavnica 'Zakaj se splača znati slovensko?' za učence priseljence. Spoznajte pomen slovenskega jezika za šolski uspeh, vsakdanje življenje in gradnjo samozavesti. Delavnica je prilagojena skupini in poteka v šoli.">
<meta name="keywords" content="delavnica za učence, učenje slovenščine, učenci priseljenci, vključevanje, samozavest, Prosberry, Amra Kurešepi Zulji">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +30,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -189,7 +205,7 @@
</div>
<div class="workshop-image" data-aos="fade-left">
<div class="workshop-image-frame">
<img src="/assets/images/vkljucevanje/delavnica-ucenci.png" alt="Ilustracija učenja slovenskega jezika">
<img src="/assets/images/vkljucevanje/delavnica-ucenci.webp" alt="Ilustracija učenja slovenskega jezika" loading="lazy" decoding="async" width="1536" height="1024">
</div>
</div>
</div>
@@ -212,8 +228,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>
@@ -4,9 +4,26 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Medkulturno posredovanje - Prosberry</title>
<meta name="description" content="Medkulturno posredovanje Prosberry pomaga pri razumevanju in reševanju nesporazumov med posamezniki in skupinami z različnimi kulturnimi ozadji. Spoznajte individualne in skupinske oblike posredovanja ter potek sodelovanja.">
<meta name="keywords" content="medkulturno posredovanje, kulturne razlike, reševanje konfliktov, individualno posredovanje, skupinsko posredovanje, Prosberry, Amra Kurešepi Zulji">
<meta name="author" content="Amra Kurešepi Zulji">
<link rel="canonical" href="https://www.prosberry.si/skupaj-za-vkljucevanje/medkulturno-posredovanje/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://unpkg.com">
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<link rel="dns-prefetch" href="https://unpkg.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap">
<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/animations.css">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg">
<link rel="shortcut icon" href="/assets/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png">
<link rel="manifest" href="/assets/favicon/site.webmanifest">
</head>
<body>
<header class="main-header">
@@ -14,8 +31,8 @@
<div class="logo">
<a href="/">
<picture>
<source srcset="/assets/images/logo.png" type="image/webp">
<img src="/assets/images/logo.png" alt="Prosberry Logo">
<source srcset="/assets/images/logo-100w.webp 100w, /assets/images/logo-200w.webp 200w, /assets/images/logo-400w.webp 400w, /assets/images/logo.webp 1500w" sizes="(max-width: 768px) 100px, 180px" type="image/webp">
<img src="/assets/images/logo.webp" alt="Prosberry Logo" width="1500" height="500" decoding="async" fetchpriority="high">
</picture>
</a>
</div>
@@ -148,8 +165,8 @@
<div class="mediation-detail-container">
<div class="mediation-detail-image" data-aos="fade-up">
<picture>
<source srcset="/assets/images/individualno.jpeg" type="image/jpeg">
<img src="/assets/images/individualno.jpeg" alt="Individualno medkulturno posredovanje">
<source srcset="/assets/images/individualno.webp" type="image/webp">
<img src="/assets/images/individualno.webp" alt="Individualno medkulturno posredovanje" loading="lazy" decoding="async" width="1248" height="832">
</picture>
</div>
<div class="mediation-detail-text" data-aos="fade-up" data-aos-delay="120">
@@ -169,8 +186,8 @@
</div>
<div class="mediation-detail-image" data-aos="fade-up" data-aos-delay="120">
<picture>
<source srcset="/assets/images/skupinsko.jpeg" type="image/jpeg">
<img src="/assets/images/skupinsko.jpeg" alt="Skupinsko medkulturno posredovanje">
<source srcset="/assets/images/skupinsko.webp" type="image/webp">
<img src="/assets/images/skupinsko.webp" alt="Skupinsko medkulturno posredovanje" loading="lazy" decoding="async" width="1170" height="777">
</picture>
</div>
</div>
@@ -257,8 +274,7 @@
</div>
</footer>
<script src="https://unpkg.com/aos@next/dist/aos.js"></script>
<script src="/js/main.js"></script>
<script src="/js/animations.js"></script>
<script src="https://unpkg.com/aos@next/dist/aos.js" defer></script>
<script src="/js/main.js" defer></script>
</body>
</html>