{"id":88815,"date":"2024-12-18T17:49:52","date_gmt":"2024-12-18T14:19:52","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/"},"modified":"2024-12-18T17:49:52","modified_gmt":"2024-12-18T14:19:52","slug":"creating-a-gallery-app-in-javascript-with-hmpl-40if","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/","title":{"rendered":"\ud83c\udf37\u0627\u06cc\u062c\u0627\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06af\u0627\u0644\u0631\u06cc \u062f\u0631 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0627 HMPL"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n              \u0633\u0644\u0627\u0645 \u0628\u0647 \u0647\u0645\u0647! \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0631\u0648\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc \u0631\u0627 \u0634\u0631\u062d \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0631\u062f\u0627\u0631\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f (\u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646\u062c\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f\u060c \u0632\u06cc\u0631\u0627 \u0645\u062c\u0648\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f). \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a \u060c \u0627\u0645\u0627 \u0628\u0647 \u0646\u0638\u0631 \u0645\u0646 \u0628\u0631\u0627\u06cc \u0646\u0645\u0648\u0646\u0647 \u06a9\u0627\u0631 \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a.<\/p>\n<p>  \u0638\u0627\u0647\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u06cc\u0633\u062a \u0648 \u0686\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0627\u0631\u062f\u061f<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u06cc\u06a9 \u0644\u06cc\u0633\u062a \u06a9\u0648\u0686\u06a9 \u0627\u0632 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u0635\u0641\u062d\u0627\u062a \u0622\u0646 \u067e\u06cc\u0645\u0627\u06cc\u0634 \u06a9\u0631\u062f. \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<p>\u062f\u0633\u06a9\u062a\u0627\u067e<\/p>\n<p>\u0645\u0648\u0628\u0627\u06cc\u0644<\/p>\n<p>\u0627\u0632 \u0646\u0638\u0631 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 Next \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0628\u0639\u062f \u0628\u0631\u0648\u06cc\u062f \u0648 \u0628\u0627 \u0632\u062f\u0646 \u062f\u06a9\u0645\u0647 Previous \u0628\u0647 \u0635\u0641\u062d\u0647 \u0627\u0648\u0644 \u0628\u0627\u0632\u06af\u0631\u062f\u06cc\u062f.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0627\u06af\u0631 \u0631\u0648\u06cc \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u062a\u0635\u0627\u0648\u06cc\u0631 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u06a9\u0627\u0645\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>\u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a.<\/p>\n<p>  \u0638\u0631\u0627\u0641\u062a \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647<\/p>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0627\u06cc\u0646 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0635\u0627\u0648\u06cc\u0631\u060c \u0645\u0627\u0646\u0646\u062f \u0645\u062a\u0646 \u0639\u0646\u0648\u0627\u0646\u060c \u0627\u0632 \u0633\u0631\u0648\u0631 \u0645\u06cc \u0622\u06cc\u0646\u062f. \u06cc\u0639\u0646\u06cc 10 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0645\u062e\u0632\u0646 \u0633\u0627\u06cc\u062a \u0631\u0648\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u0630\u062e\u06cc\u0631\u0647 \u0646\u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0647\u0645\u0647 \u0622\u0646\u0647\u0627 \u0627\u0632 \u0633\u0631\u0648\u0631 \u0645\u06cc \u0622\u06cc\u0646\u062f. \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0631\u0648\u06cc\u06a9\u0631\u062f\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646 HTML \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0635\u0644\u06cc \u0631\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062f\u0631 \u0645\u0634\u062a\u0631\u06cc \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0628\u0631\u062e\u06cc \u0633\u0644\u0648\u0644 \u0647\u0627 \u062e\u0631\u0648\u062c\u06cc \u0645\u06cc \u062f\u0647\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u0627\u0635\u0644 \u0641\u0636\u0627\u06cc \u06a9\u0645\u06cc \u0631\u0627 \u0631\u0648\u06cc \u062f\u06cc\u0633\u06a9 \u0627\u0634\u063a\u0627\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06a9\u062f \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0641\u06cc\u0644\u0645\u200c\u0647\u0627 \u06cc\u0627 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0632\u0645\u0627\u0646 \u0632\u06cc\u0627\u062f\u06cc \u0645\u06cc\u200c\u0628\u0631\u062f. \u0627\u06cc\u0646\u062c\u0627 \u0647\u0645 \u0647\u0645\u06cc\u0646\u0637\u0648\u0631 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0632\u06cc\u062a \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0686\u0646\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0631\u0648\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631\u060c \u0627\u06af\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u0645\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0633\u0627\u06cc\u062a\u060c \u0628\u0631\u0627\u06cc \u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0634\u0648\u062f. \u0627\u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0645\u0646\u0628\u0639 \u0631\u0627 \u0628\u0628\u0646\u062f\u062f \u0648 \u0628\u0647 \u0633\u0631\u0627\u063a \u0645\u0646\u0628\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0648\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u0632 \u0646\u0638\u0631 \u067e\u0648\u0644\u06cc \u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0628\u0631\u062e\u06cc \u0645\u0648\u0627\u0631\u062f \u062f\u0631 \u0628\u0648\u062f\u062c\u0647 \u0634\u0645\u0627 \u0635\u0631\u0641\u0647 \u062c\u0648\u06cc\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0633\u0631\u0648\u0631 \u0645\u062d\u0648\u0631 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0631\u0646\u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0646\u06cc\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0628\u0631 \u0631\u0648\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u0631\u0646\u062f\u0631 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0631\u0648\u0628\u0627\u062a \u0647\u0627 \u0646\u062a\u06cc\u062c\u0647 \u0631\u0627 \u0646\u062e\u0648\u0627\u0647\u0646\u062f \u062f\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0647\u0631 \u0635\u0648\u0631\u062a \u0627\u0645\u0631\u0648\u0632\u0647 \u0686\u0646\u06cc\u0646 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u0648 \u06a9\u0627\u0645\u0644\u0627 \u0631\u0627\u062d\u062a \u0627\u0633\u062a \u0648 \u0645\u0632\u0627\u06cc\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u062f. \u0627\u0645\u0631\u0648\u0632\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0634\u0627\u0628\u0647\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f HMPL \u0627\u0633\u062a.<\/p>\n<p>  \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0648 \u062e\u0648\u062f \u06a9\u062f<\/p>\n<p>\u0627\u0648\u0644 \u0627\u0632 \u0647\u0645\u0647\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u067e\u0644\u062a\u0641\u0631\u0645 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u06cc \u0622\u0646\u0647\u0627 \u0646\u0648\u0634\u062a\u0647 \u0634\u0648\u062f. \u0645\u0646\u0638\u0648\u0631 \u0645\u0627 \u0627\u0632 \u067e\u0644\u062a\u0641\u0631\u0645 \u0647\u0627\u0633\u062a Express.js \u0628\u0631\u0627\u06cc \u0628\u0627\u0637\u0646\u060c \u0648 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc Node.js\u060c \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628\u060c \u0648 \u062f\u0631 \u0645\u0634\u062a\u0631\u06cc \u0645\u0627 \u06cc\u06a9 \u0633\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a \u0628\u0633\u062a\u0647 \u0648\u0628 \u0645\u0648\u0646\u062a\u0627\u0698<\/p>\n<p>  \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc<\/p>\n<p>\u0631\u0648\u06cc\u06a9\u0631\u062f\u0647\u0627\u06cc \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u0627\u0632 \u06a9\u062c\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0627\u0632 \u0633\u0631\u0648\u0631 \u06cc\u0627 \u0627\u0632 \u0645\u0634\u062a\u0631\u06cc. \u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u0627\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0627\u0632 \u0645\u0634\u062a\u0631\u06cc \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645\u060c \u0632\u06cc\u0631\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0645\u06cc \u062f\u0627\u0646\u06cc\u0645 \u06a9\u0647 \u0644\u06cc\u0633\u062a \u062a\u0635\u0627\u0648\u06cc\u0631 \u0648 \u0639\u0646\u0648\u0627\u0646 \u0642\u0628\u0644\u0627\u064b \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u0634\u0648\u062f\u060c \u0627\u0645\u0627 \u0686\u06af\u0648\u0646\u0647 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0646\u062d\u0648 \u062f\u0631 DOM \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u0645 &#8211; \u0627\u06cc\u0646 \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645. \u0627\u0648\u0644 \u0628\u0641\u0647\u0645<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0641\u0627\u06cc\u0644 HTML \u0627\u0635\u0644\u06cc \u0628\u0631\u0648\u06cc\u0645:<\/p>\n<p>index.html<\/p>\n<p> lang=&#8221;en&#8221;https:\/\/dev.to\/anthonymax\/&gt;<\/p>\n<p>     charset=&#8221;UTF-8&#8243; \/&gt;<br \/>\n     name=&#8221;viewport&#8221; content=&#8221;width=device-width, initial-scale=1.0&#8243; \/&gt;<br \/>\n    Gallery App<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 \u0627\u06cc\u0646\u062c\u0627 \u0686\u06cc\u0632\u06cc \u0646\u06cc\u0633\u062a\u060c \u0648 \u0628\u0644\u0647\u060c \u0634\u0645\u0627 \u062f\u0631\u0633\u062a \u0645\u06cc \u06af\u0648\u06cc\u06cc\u062f. \u0645\u0624\u0644\u0641\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u062d\u062a\u0648\u0627 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc \u0634\u0648\u0646\u062f. \u0645\u0627 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f .hmpl \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u0633\u0648\u0646\u062f\u06cc \u06a9\u0647 \u06a9\u0645\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc html \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u062f\u0647\u0646\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 components \u067e\u0648\u0634\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0627 \u062f\u0631 \u0622\u0646 \u0630\u062e\u06cc\u0631\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f. \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0635\u0641\u062d\u0647 \u0645\u062a\u0635\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0646\u0634\u0627\u0646\u0647 \u06af\u0630\u0627\u0631\u06cc \u0622\u0646\u0647\u0627:<\/p>\n<p>Gallery.hmpl<\/p>\n<p>   class=&#8221;gallery-initial&#8221; id=&#8221;gallery-initial&#8221;https:\/\/dev.to\/anthonymax\/&gt;<br \/>\n    {<br \/>\n      {<br \/>\n        src: &#8220;http:\/\/localhost:8000\/api\/images&#8221;,<br \/>\n        method: &#8220;POST&#8221;<br \/>\n      }<br \/>\n    }<\/p>\n<p>   class=&#8221;gallery&#8221; id=&#8221;gallery&#8221;https:\/\/dev.to\/anthonymax\/&gt;<br \/>\n    {<br \/>\n      {<br \/>\n        src: &#8220;http:\/\/localhost:8000\/api\/images&#8221;,<br \/>\n        after:<br \/>\n        &#8220;click:.navigation-button&#8221;,<br \/>\n        method: &#8220;POST&#8221;<br \/>\n      }<br \/>\n    }<\/p>\n<p>   class=&#8221;pagination&#8221;https:\/\/dev.to\/anthonymax\/&gt;<br \/>\n     class=&#8221;navigation-button&#8221; data-page=&#8221;1&#8243; id=&#8221;previous&#8221; disabled&gt;<br \/>\n      Previous<\/p>\n<p>     class=&#8221;navigation-button&#8221; data-page=&#8221;2&#8243; id=&#8221;next&#8221;https:\/\/dev.to\/anthonymax\/&gt;Next<\/p>\n<p>   class=&#8221;modal&#8221; id=&#8221;modal&#8221;https:\/\/dev.to\/anthonymax\/&gt;<\/p>\n<p>      src=&#8221;https:\/\/raw.githubusercontent.com\/hmpl-language\/media\/refs\/heads\/main\/logo.png&#8221;<br \/>\n      alt=&#8221;&#8221;<br \/>\n    \/&gt;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0634\u0627\u06cc\u0627\u0646 \u0630\u06a9\u0631 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062f\u0648 \u0634\u06cc \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u0648\u0644\u06cc\u0646 \u0645\u0648\u0631\u062f \u0647\u0646\u06af\u0627\u0645 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0635\u0641\u062d\u0647 \u0641\u0639\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u0648\u0631\u062f \u062f\u0648\u0645 \u067e\u0633 \u0627\u0632 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u0647\u0627\u06cc \u0646\u0627\u0648\u0628\u0631\u06cc \u0641\u0639\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0639\u0646\u0648\u0627\u0646.hmpl<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0627\u0634\u06cc\u0627\u0621 \u0627\u0632 \u0633\u0631\u0648\u0631 \u0628\u0647 HTML \u062a\u063a\u06cc\u06cc\u0631 \u062e\u0648\u0627\u0647\u0646\u062f \u06a9\u0631\u062f. \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631\u060c \u0622\u0646\u0647\u0627 \u0628\u0627\u06cc\u062f \u0645\u062a\u0635\u0644 \u0634\u0648\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 main.js \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<p>import &#8220;https:\/\/dev.to\/anthonymax\/.\/index.scss&#8221;https:\/\/dev.to\/anthonymax\/;<br \/>\nimport GalleryTemplate from &#8220;https:\/\/dev.to\/anthonymax\/.\/components\/Gallery\/Gallery.hmpl&#8221;https:\/\/dev.to\/anthonymax\/;<br \/>\nimport TitleTemplate from &#8220;https:\/\/dev.to\/anthonymax\/.\/components\/Title\/Title.hmpl&#8221;https:\/\/dev.to\/anthonymax\/;<\/p>\n<p>const { response: Title } = TitleTemplate();<\/p>\n<p>const { response: Gallery } = GalleryTemplate(({ request: { event } }) =&gt; {<br \/>\n  return {<br \/>\n    headers: {<br \/>\n      &#8220;https:\/\/dev.to\/anthonymax\/Content-Type&#8221;https:\/\/dev.to\/anthonymax\/: &#8220;https:\/\/dev.to\/anthonymax\/application\/json&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n    },<br \/>\n    body: JSON.stringify({<br \/>\n      page: event ? Number(event.target.getAttribute(&#8220;https:\/\/dev.to\/anthonymax\/data-page&#8221;https:\/\/dev.to\/anthonymax\/)) : 1,<br \/>\n    }),<br \/>\n  };<br \/>\n});<\/p>\n<p>document.body.append(Title);<br \/>\ndocument.body.append(Gallery);<\/p>\n<p>const gallery = document.querySelector(&#8220;https:\/\/dev.to\/anthonymax\/#gallery&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst galleryInitial = document.querySelector(&#8220;https:\/\/dev.to\/anthonymax\/#gallery-initial&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst modal = document.querySelector(&#8220;https:\/\/dev.to\/anthonymax\/#modal&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst modalImg = modal.querySelector(&#8220;https:\/\/dev.to\/anthonymax\/img&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst navigationButtons = document.querySelectorAll(&#8220;https:\/\/dev.to\/anthonymax\/.navigation-button&#8221;https:\/\/dev.to\/anthonymax\/);<\/p>\n<p>const setActive = (e) =&gt; {<br \/>\n  if (e.target.tagName === &#8220;https:\/\/dev.to\/anthonymax\/IMG&#8221;https:\/\/dev.to\/anthonymax\/) {<br \/>\n    modalImg.src = e.target.src;<br \/>\n    modal.classList.add(&#8220;https:\/\/dev.to\/anthonymax\/active&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\n  }<br \/>\n};<\/p>\n<p>modal.addEventListener(&#8220;https:\/\/dev.to\/anthonymax\/click&#8221;https:\/\/dev.to\/anthonymax\/, () =&gt; {<br \/>\n  modal.classList.remove(&#8220;https:\/\/dev.to\/anthonymax\/active&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\n});<\/p>\n<p>galleryInitial.addEventListener(&#8220;https:\/\/dev.to\/anthonymax\/click&#8221;https:\/\/dev.to\/anthonymax\/, (e) =&gt; {<br \/>\n  setActive(e);<br \/>\n});<\/p>\n<p>gallery.addEventListener(&#8220;https:\/\/dev.to\/anthonymax\/click&#8221;https:\/\/dev.to\/anthonymax\/, (e) =&gt; {<br \/>\n  setActive(e);<br \/>\n});<\/p>\n<p>for (let i = 0; i &lt; navigationButtons.length; i++) {<br \/>\n  const btn = navigationButtons[i];<br \/>\n  btn.addEventListener(&#8220;https:\/\/dev.to\/anthonymax\/click&#8221;https:\/\/dev.to\/anthonymax\/, () =&gt; {<br \/>\n    if (!galleryInitial.classList.contains(&#8220;https:\/\/dev.to\/anthonymax\/hidden&#8221;https:\/\/dev.to\/anthonymax\/))<br \/>\n      galleryInitial.classList.add(&#8220;https:\/\/dev.to\/anthonymax\/hidden&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\n    btn.setAttribute(&#8220;https:\/\/dev.to\/anthonymax\/disabled&#8221;https:\/\/dev.to\/anthonymax\/, &#8220;&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\n    navigationButtons[i === 0 ? 1 : 0].removeAttribute(&#8220;https:\/\/dev.to\/anthonymax\/disabled&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\n  });<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u062f\u0631 main.js \u0645\u0627 \u0645\u0646\u0637\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0634\u0631\u062d \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0631\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 HTML \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0647\u0646\u0648\u0632 \u0622\u0646 \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645 \u0627\u0645\u0627 \u062f\u0631 \u0637\u06cc \u0645\u0631\u0627\u062d\u0644 \u062a\u0648\u0633\u0639\u0647 \u0622\u0646 \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 HTML \u0633\u0631\u0648\u0631 \u062f\u0631 div \u0628\u0644\u0648\u06a9\u060c \u0645\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u062c\u0632\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647 DOM \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u0646\u062a\u0638\u0631 \u067e\u0627\u0633\u062e \u0628\u0627\u0634\u06cc\u0645.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0627\u06cc\u062f \u0633\u0648\u06cc\u06cc\u0686 \u062f\u06cc\u06af\u0631\u06cc \u0628\u06cc\u0646 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f disabled \u0648\u06cc\u0698\u06af\u06cc \u0628\u0631\u0627\u06cc \u062f\u06a9\u0645\u0647 \u0647\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0627\u06cc\u062f\u0647 \u0622\u0644\u060c \u0627\u0631\u0632\u0634 \u062f\u0631\u06cc\u0627\u0641\u062a \u062a\u0639\u062f\u0627\u062f \u0635\u0641\u062d\u0627\u062a \u0627\u0632 \u0633\u0631\u0648\u0631 \u0648 \u062a\u0645\u0631\u06a9\u0632 \u0631\u0648\u06cc \u0622\u0646 \u0631\u0627 \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a \u0648 \u0647\u0645\u0647 \u062b\u0627\u0628\u062a \u0647\u0627 \u0627\u0632 \u0642\u0628\u0644 \u0645\u0634\u062e\u0635 \u0647\u0633\u062a\u0646\u062f\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0622\u0646 \u0631\u0627 \u0628\u0627 \u06a9\u062f \u0627\u0636\u0627\u0641\u06cc \u0627\u0636\u0627\u0641\u0647 \u0646\u06a9\u0646\u06cc\u062f. \u0628\u0647 \u0647\u0631 \u062d\u0627\u0644\u060c \u062a\u063a\u06cc\u06cc\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 API \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc \u0627\u0641\u062a\u062f.<\/p>\n<p>\u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0631\u0648\u06cc \u06a9\u0644\u06cc\u06a9 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f &#8211; \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0622\u0648\u06cc\u0632\u0627\u0646 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0631\u0648\u06cc\u062f\u0627\u062f \u0628\u0631 \u0631\u0648\u06cc \u0628\u0631\u0686\u0633\u0628 wrapper \u0648 \u062a\u0639\u06cc\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0627\u06af\u0631 \u06cc\u06a9 \u06a9\u0644\u06cc\u06a9 \u0631\u0648\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0628\u0627\u0634\u062f\u060c \u0628\u0644\u0648\u06a9 \u0628\u0627\u06cc\u062f \u0628\u0631 \u0627\u06cc\u0646 \u0627\u0633\u0627\u0633 \u0641\u0639\u0627\u0644 \u0634\u0648\u062f \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0633\u0628\u06a9 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0647\u0633\u062a\u0646\u062f:<\/p>\n<p>index.scss<\/p>\n<p>body {<br \/>\n  font-family: Arial, sans-serif;<br \/>\n  margin: 0;<br \/>\n  padding: 0;<br \/>\n  display: flex;<br \/>\n  flex-direction: column;<br \/>\n  align-items: center;<br \/>\n  background-color: #f4f4f4;<br \/>\n}<\/p>\n<p>h1 {<br \/>\n  margin: 20px 0;<br \/>\n  color: #333;<br \/>\n}<\/p>\n<p>.gallery-initial.active {<br \/>\n  display: flex;<br \/>\n}<\/p>\n<p>.gallery,<br \/>\n.gallery-initial {<br \/>\n  display: flex;<br \/>\n  gap: 20px;<br \/>\n  width: 90%;<br \/>\n  max-width: 1000px;<\/p>\n<p>  @media (max-width:1023px) {<br \/>\n   display: grid;<br \/>\n   grid-template-columns: repeat(2, 1fr);<br \/>\n   max-width: unset;<br \/>\n   justify-content: center;<br \/>\n   align-items: center;<br \/>\n   width: 100%;<br \/>\n  }<br \/>\n}<\/p>\n<p>.hidden {<br \/>\n  display: none;<br \/>\n}<\/p>\n<p>.gallery img,<br \/>\n.gallery-initial img {<br \/>\n  width: 150px;<br \/>\n  height: 100px;<br \/>\n  border-radius: 5px;<br \/>\n  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);<br \/>\n  cursor: pointer;<br \/>\n  transition: transform 0.2s;<br \/>\n}<\/p>\n<p>.gallery img:hover,<br \/>\n.gallery-initial img:hover {<br \/>\n  transform: scale(1.05);<br \/>\n}<\/p>\n<p>.modal {<br \/>\n  display: none;<br \/>\n  position: fixed;<br \/>\n  top: 0;<br \/>\n  left: 0;<br \/>\n  width: 100%;<br \/>\n  height: 100%;<br \/>\n  background: rgba(0, 0, 0, 0.8);<br \/>\n  justify-content: center;<br \/>\n  align-items: center;<br \/>\n}<\/p>\n<p>.modal img {<br \/>\n  max-width: 90%;<br \/>\n  max-height: 90%;<br \/>\n  border-radius: 10px;<br \/>\n}<\/p>\n<p>.modal.active {<br \/>\n  display: flex;<br \/>\n}<\/p>\n<p>.pagination {<br \/>\n  margin: 20px 0;<br \/>\n  display: flex;<br \/>\n  gap: 10px;<br \/>\n  align-items: center;<br \/>\n  justify-content: center;<br \/>\n}<\/p>\n<p>.pagination button {<br \/>\n  padding: 10px 20px;<br \/>\n  border: none;<br \/>\n  background-color: #333;<br \/>\n  color: #fff;<br \/>\n  border-radius: 5px;<br \/>\n  cursor: pointer;<br \/>\n  transition: background-color 0.2s;<br \/>\n}<\/p>\n<p>.pagination button:hover {<br \/>\n  background-color: #555;<br \/>\n}<\/p>\n<p>.pagination button:disabled {<br \/>\n  background-color: #ccc;<br \/>\n  cursor: not-allowed;<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0633\u0628\u06a9 \u0647\u0627 \u0645\u06cc\u0646\u06cc\u0645\u0627\u0644 \u0647\u0633\u062a\u0646\u062f\u060c \u0641\u0642\u0637 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u06a9\u0647 \u06af\u0627\u0644\u0631\u06cc \u06a9\u0645 \u0648 \u0628\u06cc\u0634 \u0642\u0627\u0628\u0644 \u0627\u0631\u0627\u0626\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0628\u0631\u0633\u062f.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0645\u0646 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u0645\u062c\u0645\u0648\u0639\u0647 \u0647\u0627\u06cc \u0622\u0645\u0627\u062f\u0647 \u0648\u0628 \u067e\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0645\u062f\u062a \u0647\u0627 \u067e\u06cc\u0634 \u0633\u0627\u062e\u062a\u0647 \u0628\u0648\u062f\u0645 (\u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0628\u0631\u0627\u06cc \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0628\u0633\u0627\u0632\u0645)\u060c \u0627\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u062f\u06cc\u06af\u0631 \u0647\u06cc\u0686 \u0641\u0627\u06cc\u062f\u0647 \u0627\u06cc \u0646\u062f\u0627\u0631\u062f \u06a9\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0645\u0648\u0627\u0631\u062f\u06cc \u06a9\u0647 \u0645\u0633\u0626\u0648\u0644 \u0686\u0647 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u0635\u062d\u0628\u062a \u06a9\u0646\u0645. webpack.config.js. \u0641\u0627\u06cc\u0644 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0642\u0627\u0628\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0622\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0633\u0645\u062a \u0628\u0627\u0637\u0646 \u062d\u0631\u06a9\u062a \u06a9\u0646\u06cc\u0645.<\/p>\n<p>  Backend<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 Backend\u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0627 \u0622\u0631\u0627\u0645\u0634 \u0628\u0647 \u0645\u0634\u062a\u0631\u06cc \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0631 \u0627\u06cc\u0646 \u0627\u0633\u0627\u0633 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0622\u0646 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645. \u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0645\u0646 \u06cc\u06a9 \u06af\u0627\u0644\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0645 &#8211; \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0633\u067e\u0633 \u0628\u0627\u06cc\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u0645 \u0648 \u0645\u0633\u06cc\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0622\u0646\u062c\u0627 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u0645.<\/p>\n<p>\u0645\u06cc \u0628\u06cc\u0646\u06cc\u0645 \u06a9\u0647 \u0645\u0633\u06cc\u0631\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f \u0647\u0645\u06cc\u0646 \u0627\u0633\u062a \/api\/images:<\/p>\n<p>src: &#8220;http:\/\/localhost:8000\/api\/images&#8221;, <\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u0628\u0631\u0627\u06cc \u0622\u0646\u060c \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0646\u0634\u0627\u0646\u0647 \u06af\u0630\u0627\u0631\u06cc HTML \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u067e\u0627\u0633\u062e \u0635\u0627\u062f\u0631 \u0645\u06cc \u0634\u0648\u062f\u060c \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u0645\u0633\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f POST\u060c \u0632\u06cc\u0631\u0627 \u062f\u0631 body \u0627\u0632 RequestInit \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0639\u0628\u0648\u0631 \u06a9\u0646\u06cc\u062f page \u0628\u0627 \u0645\u0642\u062f\u0627\u0631 \u0644\u0627\u0632\u0645 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u0645\u0634\u0627\u0628\u0647 \u0631\u0627 \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u0645:<\/p>\n<p>routes\/post.js<\/p>\n<p>const express = require(&#8220;https:\/\/dev.to\/anthonymax\/express&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst expressRouter = express.Router();<\/p>\n<p>const imagePaths = [<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img1.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img2.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img3.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img4.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img5.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img6.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img7.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img8.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img9.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n  &#8220;https:\/\/dev.to\/anthonymax\/http:\/\/localhost:8000\/images\/img10.jpg&#8221;https:\/\/dev.to\/anthonymax\/,<br \/>\n];<\/p>\n<p>const imagesController = (req, res) =&gt; {<br \/>\n  const { page } = req.body;<\/p>\n<p>  if (!page || isNaN(page)) {<br \/>\n    return res.status(400).send(&#8220;https:\/\/dev.to\/anthonymax\/Page number error&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\n  }<\/p>\n<p>  const pageNumber = parseInt(page);<br \/>\n  const itemsPerPage = 5;<br \/>\n  const startIndex = (pageNumber &#8211; 1) * itemsPerPage;<br \/>\n  const endIndex = startIndex + itemsPerPage;<\/p>\n<p>  if (startIndex &gt;= imagePaths.length || pageNumber &lt; 1) {<br \/>\n    return res.status(404).send(&#8220;https:\/\/dev.to\/anthonymax\/Page not found&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\n  }<\/p>\n<p>  const imagesForPage = imagePaths.slice(startIndex, endIndex);<\/p>\n<p>  const htmlResponse = `<br \/>\n      ${imagesForPage<br \/>\n        .map((img, index) =&gt; `${img}&#8221; alt=&#8221;\u062a\u0635\u0648\u06cc\u0631${index}&#8221;\/&gt;`)<br \/>\n        .join(&#8220;https:\/\/dev.to\/anthonymax\/\\n&#8221;https:\/\/dev.to\/anthonymax\/)}<br \/>\n  `;<\/p>\n<p>  res.send(htmlResponse);<br \/>\n};<\/p>\n<p>expressRouter.post(&#8220;https:\/\/dev.to\/anthonymax\/\/images&#8221;https:\/\/dev.to\/anthonymax\/, imagesController);<\/p>\n<p>module.exports = expressRouter;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0633\u062a\u0647 \u0628\u0647 \u0635\u0641\u062d\u0647\u060c \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0648\u06cc\u0627 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u06cc\u0645. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0634\u0627\u06cc\u0627\u0646 \u0630\u06a9\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0633\u06cc\u0631 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0628\u0647 \u067e\u0648\u0634\u0647 \u0647\u0627 \u0622\u062f\u0631\u0633 \u062f\u0627\u062f\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0644\u06a9\u0647 \u0622\u062f\u0631\u0633 \u062e\u0648\u062f \u0622\u062f\u0631\u0633 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u062f\u0631 app.js \u0641\u0627\u06cc\u0644\u060c \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u062a\u0627 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0632 \u067e\u0648\u0634\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u062d\u0627\u0644\u0627\u060c \u062e\u06cc\u0644\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0627 \u06cc\u06a9 GET \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0639\u0646\u0648\u0627\u0646\u060c \u0645\u0627 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 html \u0633\u0627\u062f\u0647 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u06a9\u062f \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f:<\/p>\n<p>routes\/get.js<\/p>\n<p>const express = require(&#8220;https:\/\/dev.to\/anthonymax\/express&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst expressRouter = express.Router();<br \/>\nconst path = require(&#8220;https:\/\/dev.to\/anthonymax\/path&#8221;https:\/\/dev.to\/anthonymax\/);<\/p>\n<p>const titleController = (req, res) =&gt; {<br \/>\n  res.sendFile(path.join(__dirname, &#8220;https:\/\/dev.to\/anthonymax\/..\/components\/GET\/title.html&#8221;https:\/\/dev.to\/anthonymax\/));<br \/>\n};<\/p>\n<p>expressRouter.use(&#8220;https:\/\/dev.to\/anthonymax\/\/title&#8221;https:\/\/dev.to\/anthonymax\/, titleController);<\/p>\n<p>module.exports = expressRouter;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u0641\u0627\u06cc\u0644 html \u0641\u0642\u0637 \u06cc\u06a9 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a span \u0628\u0627 \u0645\u062a\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc \u0648 \u0628\u0633 \u062f\u0631 \u0627\u0635\u0644\u060c \u0627\u0645\u06a9\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 POST \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0686\u0646\u062f\u0632\u0628\u0627\u0646\u06af\u06cc \u0631\u0627 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0631 \u0631\u0648\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a. \u0645\u06cc \u062e\u0648\u0627\u0633\u062a\u0645 \u0622\u0646 \u0631\u0627 \u06a9\u0645 \u0648 \u0628\u06cc\u0634 \u0633\u0627\u062f\u0647 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0632\u06cc\u0628\u0627 \u0648 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u06a9\u0646\u0645.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u062a\u0646\u0647\u0627 \u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u062a\u0635\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645 \u0648 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645:<\/p>\n<p>app.js<\/p>\n<p>const express = require(&#8220;https:\/\/dev.to\/anthonymax\/express&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst path = require(&#8220;https:\/\/dev.to\/anthonymax\/path&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst bodyParser = require(&#8220;https:\/\/dev.to\/anthonymax\/body-parser&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst cors = require(&#8220;https:\/\/dev.to\/anthonymax\/cors&#8221;https:\/\/dev.to\/anthonymax\/);<\/p>\n<p>const PORT = 8000;<br \/>\nconst app = express();<\/p>\n<p>const getRoutes = require(&#8220;https:\/\/dev.to\/anthonymax\/.\/routes\/get&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\nconst postRoutes = require(&#8220;https:\/\/dev.to\/anthonymax\/.\/routes\/post&#8221;https:\/\/dev.to\/anthonymax\/);<\/p>\n<p>app.use(express.json());<br \/>\napp.use(bodyParser.urlencoded({ extended: false }));<br \/>\napp.use(cors({ origin: true, credentials: true }));<\/p>\n<p>const imagesFolder = path.join(__dirname, &#8220;https:\/\/dev.to\/anthonymax\/.\/images&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\napp.use(&#8220;https:\/\/dev.to\/anthonymax\/\/images&#8221;https:\/\/dev.to\/anthonymax\/, express.static(imagesFolder));<\/p>\n<p>app.use(express.static(path.join(__dirname, &#8220;https:\/\/dev.to\/anthonymax\/src&#8221;https:\/\/dev.to\/anthonymax\/)));<\/p>\n<p>app.get(&#8220;https:\/\/dev.to\/anthonymax\/\/&#8221;https:\/\/dev.to\/anthonymax\/, (req, res) =&gt; {<br \/>\n  res.sendFile(path.join(__dirname, &#8220;https:\/\/dev.to\/anthonymax\/src\/index.html&#8221;https:\/\/dev.to\/anthonymax\/));<br \/>\n});<\/p>\n<p>app.use(&#8220;https:\/\/dev.to\/anthonymax\/\/api&#8221;https:\/\/dev.to\/anthonymax\/, getRoutes);<br \/>\napp.use(&#8220;https:\/\/dev.to\/anthonymax\/\/api&#8221;https:\/\/dev.to\/anthonymax\/, postRoutes);<\/p>\n<p>app.listen(PORT, () =&gt; {<br \/>\n  console.log(`Server is running on http:\/\/localhost:${PORT}`);<br \/>\n});<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u0645 CORS \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u062f\u06cc\u06af\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u0645 localhost \u067e\u0648\u0631\u062a\u060c \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0632 \u06cc\u06a9 \u067e\u0648\u0634\u0647. \u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635\u060c \u0645\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645:<\/p>\n<p>const imagesFolder = path.join(__dirname, &#8220;https:\/\/dev.to\/anthonymax\/.\/images&#8221;https:\/\/dev.to\/anthonymax\/);<br \/>\napp.use(&#8220;https:\/\/dev.to\/anthonymax\/\/images&#8221;https:\/\/dev.to\/anthonymax\/, express.static(imagesFolder));<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062e\u0648\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f PORT \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u0627\u0645\u0627 \u0645\u0646 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0645 8000. \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f bodyParser \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0631\u0627\u062d\u062a \u0628\u0627 HTML \u0648 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0641\u0642\u0637 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 api \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u062f. \u0648 \u0627\u06a9\u0646\u0648\u0646\u060c \u0645\u0646 \u0641\u06a9\u0631 \u0645\u06cc \u06a9\u0646\u0645\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f!<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/p>\n<p>\u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u062d\u062a\u06cc \u0686\u0646\u06cc\u0646 \u0628\u0647 \u0638\u0627\u0647\u0631 \u06a9\u0648\u0686\u06a9\u060c \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u062d\u062f\u0627\u0642\u0644 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0628\u0648\u062f\u060c \u0628\u0633\u06cc\u0627\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0648\u062f. \u0627\u0645\u0627\u060c \u0627\u06cc\u0646 \u0646\u06cc\u0632 \u062c\u0627\u0644\u0628 \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0632\u0645\u06cc\u0646\u0647 \u0627\u06cc \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0645\u0648\u0646\u062a\u0627\u0698 \u0628\u0627 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0627\u0644\u0627 \u0648 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u0633\u0627\u062f\u0647 \u0645\u062f\u0631\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f backend \u0631\u0627 \u062f\u0631 PHP \u06cc\u0627 \u0686\u06cc\u0632 \u062f\u06cc\u06af\u0631\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u0639\u0646\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u062a\u063a\u06cc\u06cc\u0631 \u0686\u0646\u062f\u0627\u0646\u06cc \u0646\u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0641\u06a9\u0631 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062d\u06cc\u0648\u0627\u0646 \u062e\u0627\u0646\u06af\u06cc \u0646\u06cc\u0632 \u0628\u0647 \u062e\u0648\u0628\u06cc \u067e\u06cc\u0634 \u0628\u0631\u0648\u062f.<\/p>\n<p>\u0627\u0632 \u0647\u0645\u0647 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0633\u067e\u0627\u0633\u06af\u0632\u0627\u0631\u0645! \u062e\u06cc\u0644\u06cc \u0628\u0632\u0631\u06af \u0628\u0648\u062f\u060c \u062d\u062a\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f\u06cc \u06a9\u0647 \u0633\u0639\u06cc \u06a9\u0631\u062f\u0645 \u0631\u0648\u0627\u06cc\u062a \u0631\u0627 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u06a9\u0648\u062a\u0627\u0647 \u06a9\u0646\u0645\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0638\u0631\u0627\u0641\u062a \u0647\u0627 \u0631\u0627 \u067e\u0648\u0634\u0634 \u0646\u062f\u0647\u062f\u060c \u0627\u0645\u0627 \u0628\u0627 \u0627\u06cc\u0646 \u0648\u062c\u0648\u062f \u0628\u0633\u06cc\u0627\u0631 \u0632\u06cc\u0627\u062f \u0628\u0648\u062f\u060c \u0627\u0645\u0627\u060c \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645\u060c \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u062c\u0627\u0644\u0628 \u0648 \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f!<\/p>\n<p>  \u0645\u062e\u0632\u0646 \u067e\u0631\u0648\u0698\u0647<\/p>\n<p>\u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 GitHub \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f. \u062f\u0631 \u0622\u0646\u062c\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627 \u06a9\u062f \u0622\u0634\u0646\u0627 \u0634\u0648\u06cc\u062f. \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0646\u06cc\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u06a9\u0647 \u0645\u0634\u0627\u0628\u0647 \u0648 \u06cc\u0627 \u062d\u062a\u06cc \u0633\u0631\u062f\u062a\u0631 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<p>      \u0644\u06cc\u0633\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0631 HMPL<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u062e\u0632\u0646 \u0634\u0627\u0645\u0644 \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0632\u0628\u0627\u0646 \u0642\u0627\u0644\u0628 HMPL \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0646\u062f. \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f (\u0641\u0642\u0637 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0628\u0627\u06cc\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0634\u0648\u0646\u062f).<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc<\/p>\n<p>\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc \u06af\u0644 \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0635\u0641\u062d\u0647 \u0628\u0646\u062f\u06cc. \u062a\u0635\u0627\u0648\u06cc\u0631 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0646\u0627\u0645 \u062e\u0648\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0632 \u0633\u0631\u0648\u0631 \u0622\u067e\u0644\u0648\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u062e\u0648\u0634\u062d\u0627\u0644 \u062e\u0648\u0627\u0647\u0645 \u0634\u062f \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u062d\u0645\u0627\u06cc\u062a \u06a9\u0646\u06cc\u062f \u067e\u0631\u0648\u0698\u0647 \u0628\u0627 \u0633\u062a\u0627\u0631\u0647 \u0634\u0645\u0627. \u0645\u062a\u0634\u06a9\u0631\u0645<\/p>\n<p>\u0633\u062a\u0627\u0631\u0647 HMPL \u2606<\/p>\n<div data-article-id=\"2163236\" id=\"article-body\">\n<p>\u0633\u0644\u0627\u0645 \u0628\u0647 \u0647\u0645\u0647! \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0631\u0648\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc \u0631\u0627 \u0634\u0631\u062d \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0631\u062f\u0627\u0631\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f (\u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646\u062c\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f\u060c \u0632\u06cc\u0631\u0627 \u0645\u062c\u0648\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f). \u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a \u060c \u0627\u0645\u0627 \u0628\u0647 \u0646\u0638\u0631 \u0645\u0646 \u0628\u0631\u0627\u06cc \u0646\u0645\u0648\u0646\u0647 \u06a9\u0627\u0631 \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#%D8%B8%D8%A7%D9%87%D8%B1_%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86_%DA%86%DB%8C%D8%B3%D8%AA_%D9%88_%DA%86%D9%87_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C_%D8%AF%D8%A7%D8%B1%D8%AF%D8%9F\" >\u0638\u0627\u0647\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u06cc\u0633\u062a \u0648 \u0686\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0627\u0631\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#%D8%B8%D8%B1%D8%A7%D9%81%D8%AA_%D9%87%D8%A7%DB%8C_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87\" >\u0638\u0631\u0627\u0641\u062a \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF_%D8%AA%D9%88%D8%B3%D8%B9%D9%87_%D9%88_%D8%AE%D9%88%D8%AF_%DA%A9%D8%AF\" >\u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0648 \u062e\u0648\u062f \u06a9\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#%D8%B3%D9%85%D8%AA_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C\" >\u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#Backend\" >Backend<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\" >\u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#%D9%85%D8%AE%D8%B2%D9%86_%D9%BE%D8%B1%D9%88%DA%98%D9%87\" >\u0645\u062e\u0632\u0646 \u067e\u0631\u0648\u0698\u0647<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#%D9%84%DB%8C%D8%B3%D8%AA_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%87%D8%A7%DB%8C_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C_%D8%AF%D8%B1_HMPL\" >\u0644\u06cc\u0633\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0631 HMPL<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/creating-a-gallery-app-in-javascript-with-hmpl-40if\/#%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%DA%AF%D8%A7%D9%84%D8%B1%DB%8C\" >\u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B8%D8%A7%D9%87%D8%B1_%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86_%DA%86%DB%8C%D8%B3%D8%AA_%D9%88_%DA%86%D9%87_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C_%D8%AF%D8%A7%D8%B1%D8%AF%D8%9F\"><\/span>\n<p>  \u0638\u0627\u0647\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0686\u06cc\u0633\u062a \u0648 \u0686\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0627\u0631\u062f\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u06cc\u06a9 \u0644\u06cc\u0633\u062a \u06a9\u0648\u0686\u06a9 \u0627\u0632 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u0635\u0641\u062d\u0627\u062a \u0622\u0646 \u067e\u06cc\u0645\u0627\u06cc\u0634 \u06a9\u0631\u062f. \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<p><strong>\u062f\u0633\u06a9\u062a\u0627\u067e<\/strong><\/p>\n<p><\/p>\n<p><strong>\u0645\u0648\u0628\u0627\u06cc\u0644<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnm8epi2helo0e2oormnc.png\" alt=\"\u0645\u0648\u0628\u0627\u06cc\u0644\" loading=\"lazy\" width=\"334\" height=\"605\" title=\"\"><\/p>\n<p>\u0627\u0632 \u0646\u0638\u0631 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 Next \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 \u0635\u0641\u062d\u0647 \u0628\u0639\u062f \u0628\u0631\u0648\u06cc\u062f \u0648 \u0628\u0627 \u0632\u062f\u0646 \u062f\u06a9\u0645\u0647 Previous \u0628\u0647 \u0635\u0641\u062d\u0647 \u0627\u0648\u0644 \u0628\u0627\u0632\u06af\u0631\u062f\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwqej4vu1xi6umtv12xb.png\" alt=\"\u0635\u0641\u062d\u0647 \u062f\u0648\u0645\" loading=\"lazy\" width=\"800\" height=\"391\" title=\"\"><\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0627\u06af\u0631 \u0631\u0648\u06cc \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u062a\u0635\u0627\u0648\u06cc\u0631 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u06a9\u0627\u0645\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fspz9az5zb55oa3h6rtmz.png\" alt=\"\u0641\u0631\u0645\u062a \u06a9\u0627\u0645\u0644\" loading=\"lazy\" width=\"800\" height=\"386\" title=\"\"><\/p>\n<p>\u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B8%D8%B1%D8%A7%D9%81%D8%AA_%D9%87%D8%A7%DB%8C_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87\"><\/span>\n<p>  \u0638\u0631\u0627\u0641\u062a \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0627\u06cc\u0646 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 <strong>\u062a\u0635\u0627\u0648\u06cc\u0631\u060c \u0645\u0627\u0646\u0646\u062f \u0645\u062a\u0646 \u0639\u0646\u0648\u0627\u0646\u060c \u0627\u0632 \u0633\u0631\u0648\u0631 \u0645\u06cc \u0622\u06cc\u0646\u062f<\/strong>. \u06cc\u0639\u0646\u06cc 10 \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0645\u062e\u0632\u0646 \u0633\u0627\u06cc\u062a \u0631\u0648\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u0630\u062e\u06cc\u0631\u0647 \u0646\u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0647\u0645\u0647 \u0622\u0646\u0647\u0627 \u0627\u0632 \u0633\u0631\u0648\u0631 \u0645\u06cc \u0622\u06cc\u0646\u062f. \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0631\u0648\u06cc\u06a9\u0631\u062f\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f \u06a9\u0647 \u062f\u0631 \u0622\u0646 HTML \u0645\u062d\u062a\u0648\u0627\u06cc \u0627\u0635\u0644\u06cc \u0631\u0627 \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062f\u0631 \u0645\u0634\u062a\u0631\u06cc \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0628\u0631\u062e\u06cc \u0633\u0644\u0648\u0644 \u0647\u0627 \u062e\u0631\u0648\u062c\u06cc \u0645\u06cc \u062f\u0647\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u0627\u0635\u0644 \u0641\u0636\u0627\u06cc \u06a9\u0645\u06cc \u0631\u0627 \u0631\u0648\u06cc \u062f\u06cc\u0633\u06a9 \u0627\u0634\u063a\u0627\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u0627\u0632 \u06cc\u06a9 \u0645\u062e\u0632\u0646 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06a9\u062f \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0645\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u0634\u0628\u06cc\u0647\u200c\u0633\u0627\u0632\u06cc \u0641\u06cc\u0644\u0645\u200c\u0647\u0627 \u06cc\u0627 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0632\u0645\u0627\u0646 \u0632\u06cc\u0627\u062f\u06cc \u0645\u06cc\u200c\u0628\u0631\u062f. \u0627\u06cc\u0646\u062c\u0627 \u0647\u0645 \u0647\u0645\u06cc\u0646\u0637\u0648\u0631 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0632\u06cc\u062a \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0686\u0646\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0631\u0648\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631\u060c \u0627\u06af\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u0645\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0648\u0631\u0648\u062f \u06a9\u0627\u0631\u0628\u0631 \u0628\u0647 \u0633\u0627\u06cc\u062a\u060c \u0628\u0631\u0627\u06cc \u0686\u0646\u062f \u062b\u0627\u0646\u06cc\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0634\u0648\u062f. \u0627\u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u0645\u0646\u0628\u0639 \u0631\u0627 \u0628\u0628\u0646\u062f\u062f \u0648 \u0628\u0647 \u0633\u0631\u0627\u063a \u0645\u0646\u0628\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0648\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u0632 \u0646\u0638\u0631 \u067e\u0648\u0644\u06cc \u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0628\u0631\u062e\u06cc \u0645\u0648\u0627\u0631\u062f \u062f\u0631 \u0628\u0648\u062f\u062c\u0647 \u0634\u0645\u0627 \u0635\u0631\u0641\u0647 \u062c\u0648\u06cc\u06cc \u06a9\u0646\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fne58r6arx8jg9xt380nw.gif\" alt=\"hm\" loading=\"lazy\" width=\"237\" height=\"256\" data-animated=\"true\" title=\"\"><\/p>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0633\u0631\u0648\u0631 \u0645\u062d\u0648\u0631 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0631\u0646\u062f\u0631 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u0646\u06cc\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0647\u0627 \u0628\u0631 \u0631\u0648\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u0631\u0646\u062f\u0631 \u0645\u06cc \u0634\u0648\u0646\u062f \u0648 \u0631\u0648\u0628\u0627\u062a \u0647\u0627 \u0646\u062a\u06cc\u062c\u0647 \u0631\u0627 \u0646\u062e\u0648\u0627\u0647\u0646\u062f \u062f\u06cc\u062f.<\/p>\n<p>\u062f\u0631 \u0647\u0631 \u0635\u0648\u0631\u062a \u0627\u0645\u0631\u0648\u0632\u0647 \u0686\u0646\u06cc\u0646 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u0648 \u06a9\u0627\u0645\u0644\u0627 \u0631\u0627\u062d\u062a \u0627\u0633\u062a \u0648 \u0645\u0632\u0627\u06cc\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0627\u0631\u062f. \u0627\u0645\u0631\u0648\u0632\u0647 \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0634\u0627\u0628\u0647\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f HMPL \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%81%D8%B1%D8%A2%DB%8C%D9%86%D8%AF_%D8%AA%D9%88%D8%B3%D8%B9%D9%87_%D9%88_%D8%AE%D9%88%D8%AF_%DA%A9%D8%AF\"><\/span>\n<p>  \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0648 \u062e\u0648\u062f \u06a9\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0648\u0644 \u0627\u0632 \u0647\u0645\u0647\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u067e\u0644\u062a\u0641\u0631\u0645 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0648\u06cc \u0622\u0646\u0647\u0627 \u0646\u0648\u0634\u062a\u0647 \u0634\u0648\u062f. \u0645\u0646\u0638\u0648\u0631 \u0645\u0627 \u0627\u0632 \u067e\u0644\u062a\u0641\u0631\u0645 \u0647\u0627\u0633\u062a <strong>Express.js<\/strong> \u0628\u0631\u0627\u06cc \u0628\u0627\u0637\u0646\u060c \u0648 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc <strong>Node.js<\/strong>\u060c \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628\u060c \u0648 \u062f\u0631 \u0645\u0634\u062a\u0631\u06cc \u0645\u0627 \u06cc\u06a9 \u0633\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a <strong>\u0628\u0633\u062a\u0647 \u0648\u0628<\/strong> \u0645\u0648\u0646\u062a\u0627\u0698<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D9%85%D8%AA_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C\"><\/span>\n<p>  \u0633\u0645\u062a \u0645\u0634\u062a\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0631\u0648\u06cc\u06a9\u0631\u062f\u0647\u0627\u06cc \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u0627\u0632 \u06a9\u062c\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0627\u0632 \u0633\u0631\u0648\u0631 \u06cc\u0627 \u0627\u0632 \u0645\u0634\u062a\u0631\u06cc. \u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u0627\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0627\u0632 \u0645\u0634\u062a\u0631\u06cc \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645\u060c \u0632\u06cc\u0631\u0627 \u062f\u0631 \u0633\u0631\u0648\u0631 \u0645\u06cc \u062f\u0627\u0646\u06cc\u0645 \u06a9\u0647 \u0644\u06cc\u0633\u062a \u062a\u0635\u0627\u0648\u06cc\u0631 \u0648 \u0639\u0646\u0648\u0627\u0646 \u0642\u0628\u0644\u0627\u064b \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u0634\u0648\u062f\u060c \u0627\u0645\u0627 \u0686\u06af\u0648\u0646\u0647 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0646\u062d\u0648 \u062f\u0631 DOM \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u0645 &#8211; \u0627\u06cc\u0646 \u062f\u0642\u06cc\u0642\u0627\u064b \u0647\u0645\u0627\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645. \u0627\u0648\u0644 \u0628\u0641\u0647\u0645<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0641\u0627\u06cc\u0644 HTML \u0627\u0635\u0644\u06cc \u0628\u0631\u0648\u06cc\u0645:<\/p>\n<p><strong>index.html<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight html\"><code><span class=\"cp\"\/>\n<span class=\"nt\"> <span class=\"na\">lang=<\/span><span class=\"s\">\"en\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"nt\">&gt;<\/span>\n  <span class=\"nt\"\/>\n    <span class=\"nt\"><meta\/> <span class=\"na\">charset=<\/span><span class=\"s\">\"UTF-8\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\"><meta\/> <span class=\"na\">name=<\/span><span class=\"s\">\"viewport\"<\/span> <span class=\"na\">content=<\/span><span class=\"s\">\"width=device-width, initial-scale=1.0\"<\/span> <span class=\"nt\">\/&gt;<\/span>\n    <span class=\"nt\"><title\/><\/span>Gallery App<span class=\"nt\"\/>\n  <span class=\"nt\"\/>\n  <span class=\"nt\"\/>\n<span class=\"nt\"\/>\n<\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 \u0627\u06cc\u0646\u062c\u0627 \u0686\u06cc\u0632\u06cc \u0646\u06cc\u0633\u062a\u060c \u0648 \u0628\u0644\u0647\u060c \u0634\u0645\u0627 \u062f\u0631\u0633\u062a \u0645\u06cc \u06af\u0648\u06cc\u06cc\u062f. \u0645\u0624\u0644\u0641\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u062d\u062a\u0648\u0627 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc \u0634\u0648\u0646\u062f. \u0645\u0627 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f <code>.hmpl<\/code> \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u067e\u0633\u0648\u0646\u062f\u06cc \u06a9\u0647 \u06a9\u0645\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc html \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u062f\u0647\u0646\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u06cc\u06a9 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>components<\/code> \u067e\u0648\u0634\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0647\u0627 \u062f\u0631 \u0622\u0646 \u0630\u062e\u06cc\u0631\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0634\u062f. \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647 \u0635\u0641\u062d\u0647 \u0645\u062a\u0635\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0646\u0634\u0627\u0646\u0647 \u06af\u0630\u0627\u0631\u06cc \u0622\u0646\u0647\u0627:<\/p>\n<p><strong>Gallery.hmpl<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight html\"><code><span class=\"nt\"><div>\n  <span class=\"nt\"><p> <span class=\"na\">class=<\/span><span class=\"s\">\"gallery-initial\"<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"gallery-initial\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"nt\">&gt;<\/span>\n    { \n      { \n        src: \"http:\/\/localhost:8000\/api\/images\", \n        method: \"POST\" \n      } \n    }\n  <span class=\"nt\"\/><\/p><\/span>\n  <span class=\"nt\"><p> <span class=\"na\">class=<\/span><span class=\"s\">\"gallery\"<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"gallery\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"nt\">&gt;<\/span>\n    { \n      { \n        src: \"http:\/\/localhost:8000\/api\/images\", \n        after:\n        \"click:.navigation-button\", \n        method: \"POST\" \n      } \n    }\n  <span class=\"nt\"\/><\/p><\/span>\n\n  <span class=\"nt\"><p> <span class=\"na\">class=<\/span><span class=\"s\">\"pagination\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\"><button> <span class=\"na\">class=<\/span><span class=\"s\">\"navigation-button\"<\/span> <span class=\"na\">data-page=<\/span><span class=\"s\">\"1\"<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"previous\"<\/span> <span class=\"na\">disabled<\/span><span class=\"nt\">&gt;<\/span>\n      Previous\n    <span class=\"nt\"\/><\/button><\/span>\n    <span class=\"nt\"><button> <span class=\"na\">class=<\/span><span class=\"s\">\"navigation-button\"<\/span> <span class=\"na\">data-page=<\/span><span class=\"s\">\"2\"<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"next\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"nt\">&gt;<\/span>Next<span class=\"nt\"\/><\/button><\/span>\n  <span class=\"nt\"\/><\/p><\/span>\n\n  <span class=\"nt\"><div> <span class=\"na\">class=<\/span><span class=\"s\">\"modal\"<\/span> <span class=\"na\">id=<\/span><span class=\"s\">\"modal\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"nt\">&gt;<\/span>\n    <span class=\"nt\"><img\/>\n      <span class=\"na\">src=<\/span><span class=\"s\">\"https:\/\/raw.githubusercontent.com\/hmpl-language\/media\/refs\/heads\/main\/logo.png\"<\/span>\n      <span class=\"na\">alt=<\/span><span class=\"s\">\"\"<\/span>\n    <span class=\"nt\">\/&gt;<\/span>\n  <span class=\"nt\"\/><\/span><\/div><\/span>\n<span class=\"nt\"\/><\/div><\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0634\u0627\u06cc\u0627\u0646 \u0630\u06a9\u0631 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062f\u0648 \u0634\u06cc \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u0648\u0644\u06cc\u0646 \u0645\u0648\u0631\u062f \u0647\u0646\u06af\u0627\u0645 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0635\u0641\u062d\u0647 \u0641\u0639\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u0648\u0631\u062f \u062f\u0648\u0645 \u067e\u0633 \u0627\u0632 \u06a9\u0644\u06cc\u06a9 \u0628\u0631 \u0631\u0648\u06cc \u062f\u06a9\u0645\u0647 \u0647\u0627\u06cc \u0646\u0627\u0648\u0628\u0631\u06cc \u0641\u0639\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p><strong>\u0639\u0646\u0648\u0627\u0646.hmpl<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight html\"><code><span class=\"nt\"\/>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627\u060c \u0627\u0634\u06cc\u0627\u0621 \u0627\u0632 \u0633\u0631\u0648\u0631 \u0628\u0647 HTML \u062a\u063a\u06cc\u06cc\u0631 \u062e\u0648\u0627\u0647\u0646\u062f \u06a9\u0631\u062f. \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631\u060c \u0622\u0646\u0647\u0627 \u0628\u0627\u06cc\u062f \u0645\u062a\u0635\u0644 \u0634\u0648\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 main.js \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"k\">import<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">.\/index.scss<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">GalleryTemplate<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">.\/components\/Gallery\/Gallery.hmpl<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"nx\">TitleTemplate<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">.\/components\/Title\/Title.hmpl<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"na\">response<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Title<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">TitleTemplate<\/span><span class=\"p\">();<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"na\">response<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Gallery<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">GalleryTemplate<\/span><span class=\"p\">(({<\/span> <span class=\"na\">request<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">event<\/span> <span class=\"p\">}<\/span> <span class=\"p\">})<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n    <span class=\"na\">headers<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n      <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">Content-Type<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">application\/json<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">},<\/span>\n    <span class=\"na\">body<\/span><span class=\"p\">:<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">page<\/span><span class=\"p\">:<\/span> <span class=\"nx\">event<\/span> <span class=\"p\">?<\/span> <span class=\"nc\">Number<\/span><span class=\"p\">(<\/span><span class=\"nx\">event<\/span><span class=\"p\">.<\/span><span class=\"nx\">target<\/span><span class=\"p\">.<\/span><span class=\"nf\">getAttribute<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">data-page<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">))<\/span> <span class=\"p\">:<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">}),<\/span>\n  <span class=\"p\">};<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nx\">body<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">Title<\/span><span class=\"p\">);<\/span>\n<span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nx\">body<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">Gallery<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">gallery<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nf\">querySelector<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">#gallery<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">galleryInitial<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nf\">querySelector<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">#gallery-initial<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">modal<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nf\">querySelector<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">#modal<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">modalImg<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">modal<\/span><span class=\"p\">.<\/span><span class=\"nf\">querySelector<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">img<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">navigationButtons<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">document<\/span><span class=\"p\">.<\/span><span class=\"nf\">querySelectorAll<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">.navigation-button<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">setActive<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">target<\/span><span class=\"p\">.<\/span><span class=\"nx\">tagName<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">IMG<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">modalImg<\/span><span class=\"p\">.<\/span><span class=\"nx\">src<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">e<\/span><span class=\"p\">.<\/span><span class=\"nx\">target<\/span><span class=\"p\">.<\/span><span class=\"nx\">src<\/span><span class=\"p\">;<\/span>\n    <span class=\"nx\">modal<\/span><span class=\"p\">.<\/span><span class=\"nx\">classList<\/span><span class=\"p\">.<\/span><span class=\"nf\">add<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">active<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"nx\">modal<\/span><span class=\"p\">.<\/span><span class=\"nf\">addEventListener<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">click<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">modal<\/span><span class=\"p\">.<\/span><span class=\"nx\">classList<\/span><span class=\"p\">.<\/span><span class=\"nf\">remove<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">active<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"nx\">galleryInitial<\/span><span class=\"p\">.<\/span><span class=\"nf\">addEventListener<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">click<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">setActive<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"nx\">gallery<\/span><span class=\"p\">.<\/span><span class=\"nf\">addEventListener<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">click<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nf\">setActive<\/span><span class=\"p\">(<\/span><span class=\"nx\">e<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"k\">for <\/span><span class=\"p\">(<\/span><span class=\"kd\">let<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span> <span class=\"o\">&lt;<\/span> <span class=\"nx\">navigationButtons<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"p\">;<\/span> <span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">btn<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">navigationButtons<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">];<\/span>\n  <span class=\"nx\">btn<\/span><span class=\"p\">.<\/span><span class=\"nf\">addEventListener<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">click<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">galleryInitial<\/span><span class=\"p\">.<\/span><span class=\"nx\">classList<\/span><span class=\"p\">.<\/span><span class=\"nf\">contains<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">hidden<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">))<\/span>\n      <span class=\"nx\">galleryInitial<\/span><span class=\"p\">.<\/span><span class=\"nx\">classList<\/span><span class=\"p\">.<\/span><span class=\"nf\">add<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">hidden<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">btn<\/span><span class=\"p\">.<\/span><span class=\"nf\">setAttribute<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">disabled<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">navigationButtons<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span> <span class=\"o\">===<\/span> <span class=\"mi\">0<\/span> <span class=\"p\">?<\/span> <span class=\"mi\">1<\/span> <span class=\"p\">:<\/span> <span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nf\">removeAttribute<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">disabled<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u062f\u0631 <code>main.js<\/code> \u0645\u0627 \u0645\u0646\u0637\u0642 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0634\u0631\u062d \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0631\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 HTML \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0647\u0646\u0648\u0632 \u0622\u0646 \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645 \u0627\u0645\u0627 \u062f\u0631 \u0637\u06cc \u0645\u0631\u0627\u062d\u0644 \u062a\u0648\u0633\u0639\u0647 \u0622\u0646 \u0631\u0627 \u0622\u0645\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 HTML \u0633\u0631\u0648\u0631 \u062f\u0631 <code>div<\/code> \u0628\u0644\u0648\u06a9\u060c \u0645\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u062c\u0632\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647 DOM \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0645\u0646\u062a\u0638\u0631 \u067e\u0627\u0633\u062e \u0628\u0627\u0634\u06cc\u0645.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0627\u06cc\u062f \u0633\u0648\u06cc\u06cc\u0686 \u062f\u06cc\u06af\u0631\u06cc \u0628\u06cc\u0646 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>disabled<\/code> \u0648\u06cc\u0698\u06af\u06cc \u0628\u0631\u0627\u06cc \u062f\u06a9\u0645\u0647 \u0647\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0627\u06cc\u062f\u0647 \u0622\u0644\u060c \u0627\u0631\u0632\u0634 \u062f\u0631\u06cc\u0627\u0641\u062a \u062a\u0639\u062f\u0627\u062f \u0635\u0641\u062d\u0627\u062a \u0627\u0632 \u0633\u0631\u0648\u0631 \u0648 \u062a\u0645\u0631\u06a9\u0632 \u0631\u0648\u06cc \u0622\u0646 \u0631\u0627 \u062f\u0627\u0631\u062f\u060c \u0627\u0645\u0627 \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a \u0648 \u0647\u0645\u0647 \u062b\u0627\u0628\u062a \u0647\u0627 \u0627\u0632 \u0642\u0628\u0644 \u0645\u0634\u062e\u0635 \u0647\u0633\u062a\u0646\u062f\u060c \u0628\u0647\u062a\u0631 \u0627\u0633\u062a \u0622\u0646 \u0631\u0627 \u0628\u0627 \u06a9\u062f \u0627\u0636\u0627\u0641\u06cc \u0627\u0636\u0627\u0641\u0647 \u0646\u06a9\u0646\u06cc\u062f. \u0628\u0647 \u0647\u0631 \u062d\u0627\u0644\u060c \u062a\u063a\u06cc\u06cc\u0631 \u062a\u0635\u0648\u06cc\u0631 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u062f\u0631 \u0635\u0648\u0631\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 API \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc \u0627\u0641\u062a\u062f.<\/p>\n<p>\u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u062a\u0635\u0648\u06cc\u0631 \u0631\u0627 \u0631\u0648\u06cc \u06a9\u0644\u06cc\u06a9 \u0646\u0634\u0627\u0646 \u062f\u0647\u06cc\u062f &#8211; \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627 \u0622\u0648\u06cc\u0632\u0627\u0646 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0631\u0648\u06cc\u062f\u0627\u062f \u0628\u0631 \u0631\u0648\u06cc \u0628\u0631\u0686\u0633\u0628 wrapper \u0648 \u062a\u0639\u06cc\u06cc\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0627\u06af\u0631 \u06cc\u06a9 \u06a9\u0644\u06cc\u06a9 \u0631\u0648\u06cc \u062a\u0635\u0648\u06cc\u0631 \u0628\u0627\u0634\u062f\u060c \u0628\u0644\u0648\u06a9 \u0628\u0627\u06cc\u062f \u0628\u0631 \u0627\u06cc\u0646 \u0627\u0633\u0627\u0633 \u0641\u0639\u0627\u0644 \u0634\u0648\u062f \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0633\u0628\u06a9 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0628\u0647 \u0634\u06a9\u0644 \u0632\u06cc\u0631 \u0647\u0633\u062a\u0646\u062f:<\/p>\n<p><strong>index.scss<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight scss\"><code><span class=\"nt\">body<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">font-family<\/span><span class=\"p\">:<\/span> <span class=\"n\">Arial<\/span><span class=\"o\">,<\/span> <span class=\"nb\">sans-serif<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">margin<\/span><span class=\"p\">:<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">padding<\/span><span class=\"p\">:<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">display<\/span><span class=\"p\">:<\/span> <span class=\"n\">flex<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">flex-direction<\/span><span class=\"p\">:<\/span> <span class=\"n\">column<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">align-items<\/span><span class=\"p\">:<\/span> <span class=\"nb\">center<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">background-color<\/span><span class=\"p\">:<\/span> <span class=\"mh\">#f4f4f4<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nt\">h1<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">margin<\/span><span class=\"p\">:<\/span> <span class=\"m\">20px<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">color<\/span><span class=\"p\">:<\/span> <span class=\"mh\">#333<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.gallery-initial.active<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">display<\/span><span class=\"p\">:<\/span> <span class=\"n\">flex<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.gallery<\/span><span class=\"o\">,<\/span>\n<span class=\"nc\">.gallery-initial<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">display<\/span><span class=\"p\">:<\/span> <span class=\"n\">flex<\/span><span class=\"p\">;<\/span>\n  <span class=\"na\">gap<\/span><span class=\"p\">:<\/span> <span class=\"m\">20px<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">width<\/span><span class=\"p\">:<\/span> <span class=\"m\">90%<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">max-width<\/span><span class=\"p\">:<\/span> <span class=\"m\">1000px<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"k\">@media<\/span> <span class=\"p\">(<\/span><span class=\"n\">max-width<\/span><span class=\"o\">:<\/span><span class=\"m\">1023px<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n   <span class=\"nl\">display<\/span><span class=\"p\">:<\/span> <span class=\"n\">grid<\/span><span class=\"p\">;<\/span>\n   <span class=\"na\">grid-template-columns<\/span><span class=\"p\">:<\/span> <span class=\"nf\">repeat<\/span><span class=\"p\">(<\/span><span class=\"m\">2<\/span><span class=\"o\">,<\/span> <span class=\"m\">1fr<\/span><span class=\"p\">);<\/span>\n   <span class=\"nl\">max-width<\/span><span class=\"p\">:<\/span> <span class=\"n\">unset<\/span><span class=\"p\">;<\/span>\n   <span class=\"nl\">justify-content<\/span><span class=\"p\">:<\/span> <span class=\"nb\">center<\/span><span class=\"p\">;<\/span>\n   <span class=\"nl\">align-items<\/span><span class=\"p\">:<\/span> <span class=\"nb\">center<\/span><span class=\"p\">;<\/span>\n   <span class=\"nl\">width<\/span><span class=\"p\">:<\/span> <span class=\"m\">100%<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.hidden<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">display<\/span><span class=\"p\">:<\/span> <span class=\"nb\">none<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.gallery<\/span> <span class=\"nt\">img<\/span><span class=\"o\">,<\/span>\n<span class=\"nc\">.gallery-initial<\/span> <span class=\"nt\">img<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">width<\/span><span class=\"p\">:<\/span> <span class=\"m\">150px<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">height<\/span><span class=\"p\">:<\/span> <span class=\"m\">100px<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">border-radius<\/span><span class=\"p\">:<\/span> <span class=\"m\">5px<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">box-shadow<\/span><span class=\"p\">:<\/span> <span class=\"m\">0<\/span> <span class=\"m\">2px<\/span> <span class=\"m\">5px<\/span> <span class=\"nf\">rgba<\/span><span class=\"p\">(<\/span><span class=\"m\">0<\/span><span class=\"o\">,<\/span> <span class=\"m\">0<\/span><span class=\"o\">,<\/span> <span class=\"m\">0<\/span><span class=\"o\">,<\/span> <span class=\"m\">0<\/span><span class=\"mi\">.1<\/span><span class=\"p\">);<\/span>\n  <span class=\"nl\">cursor<\/span><span class=\"p\">:<\/span> <span class=\"nb\">pointer<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">transition<\/span><span class=\"p\">:<\/span> <span class=\"n\">transform<\/span> <span class=\"m\">0<\/span><span class=\"mi\">.2s<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.gallery<\/span> <span class=\"nt\">img<\/span><span class=\"nd\">:hover<\/span><span class=\"o\">,<\/span>\n<span class=\"nc\">.gallery-initial<\/span> <span class=\"nt\">img<\/span><span class=\"nd\">:hover<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">transform<\/span><span class=\"p\">:<\/span> <span class=\"nf\">scale<\/span><span class=\"p\">(<\/span><span class=\"m\">1<\/span><span class=\"mi\">.05<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.modal<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">display<\/span><span class=\"p\">:<\/span> <span class=\"nb\">none<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">position<\/span><span class=\"p\">:<\/span> <span class=\"nb\">fixed<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">top<\/span><span class=\"p\">:<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">left<\/span><span class=\"p\">:<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">width<\/span><span class=\"p\">:<\/span> <span class=\"m\">100%<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">height<\/span><span class=\"p\">:<\/span> <span class=\"m\">100%<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">background<\/span><span class=\"p\">:<\/span> <span class=\"nf\">rgba<\/span><span class=\"p\">(<\/span><span class=\"m\">0<\/span><span class=\"o\">,<\/span> <span class=\"m\">0<\/span><span class=\"o\">,<\/span> <span class=\"m\">0<\/span><span class=\"o\">,<\/span> <span class=\"m\">0<\/span><span class=\"mi\">.8<\/span><span class=\"p\">);<\/span>\n  <span class=\"nl\">justify-content<\/span><span class=\"p\">:<\/span> <span class=\"nb\">center<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">align-items<\/span><span class=\"p\">:<\/span> <span class=\"nb\">center<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.modal<\/span> <span class=\"nt\">img<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">max-width<\/span><span class=\"p\">:<\/span> <span class=\"m\">90%<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">max-height<\/span><span class=\"p\">:<\/span> <span class=\"m\">90%<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">border-radius<\/span><span class=\"p\">:<\/span> <span class=\"m\">10px<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.modal.active<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">display<\/span><span class=\"p\">:<\/span> <span class=\"n\">flex<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.pagination<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">margin<\/span><span class=\"p\">:<\/span> <span class=\"m\">20px<\/span> <span class=\"m\">0<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">display<\/span><span class=\"p\">:<\/span> <span class=\"n\">flex<\/span><span class=\"p\">;<\/span>\n  <span class=\"na\">gap<\/span><span class=\"p\">:<\/span> <span class=\"m\">10px<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">align-items<\/span><span class=\"p\">:<\/span> <span class=\"nb\">center<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">justify-content<\/span><span class=\"p\">:<\/span> <span class=\"nb\">center<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.pagination<\/span> <span class=\"nt\">button<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">padding<\/span><span class=\"p\">:<\/span> <span class=\"m\">10px<\/span> <span class=\"m\">20px<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">border<\/span><span class=\"p\">:<\/span> <span class=\"nb\">none<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">background-color<\/span><span class=\"p\">:<\/span> <span class=\"mh\">#333<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">color<\/span><span class=\"p\">:<\/span> <span class=\"mh\">#fff<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">border-radius<\/span><span class=\"p\">:<\/span> <span class=\"m\">5px<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">cursor<\/span><span class=\"p\">:<\/span> <span class=\"nb\">pointer<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">transition<\/span><span class=\"p\">:<\/span> <span class=\"n\">background-color<\/span> <span class=\"m\">0<\/span><span class=\"mi\">.2s<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.pagination<\/span> <span class=\"nt\">button<\/span><span class=\"nd\">:hover<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">background-color<\/span><span class=\"p\">:<\/span> <span class=\"mh\">#555<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"nc\">.pagination<\/span> <span class=\"nt\">button<\/span><span class=\"nd\">:disabled<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">background-color<\/span><span class=\"p\">:<\/span> <span class=\"mh\">#ccc<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">cursor<\/span><span class=\"p\">:<\/span> <span class=\"ow\">not<\/span><span class=\"o\">-<\/span><span class=\"n\">allowed<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u0628\u06a9 \u0647\u0627 \u0645\u06cc\u0646\u06cc\u0645\u0627\u0644 \u0647\u0633\u062a\u0646\u062f\u060c \u0641\u0642\u0637 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u06a9\u0647 \u06af\u0627\u0644\u0631\u06cc \u06a9\u0645 \u0648 \u0628\u06cc\u0634 \u0642\u0627\u0628\u0644 \u0627\u0631\u0627\u0626\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0628\u0631\u0633\u062f.<\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0645\u0646 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0627\u0632 \u0645\u062c\u0645\u0648\u0639\u0647 \u0647\u0627\u06cc \u0622\u0645\u0627\u062f\u0647 \u0648\u0628 \u067e\u06a9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0645\u062f\u062a \u0647\u0627 \u067e\u06cc\u0634 \u0633\u0627\u062e\u062a\u0647 \u0628\u0648\u062f\u0645 (\u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0628\u0631\u0627\u06cc \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0628\u0633\u0627\u0632\u0645)\u060c \u0627\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u062f\u06cc\u06af\u0631 \u0647\u06cc\u0686 \u0641\u0627\u06cc\u062f\u0647 \u0627\u06cc \u0646\u062f\u0627\u0631\u062f \u06a9\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u0645\u0648\u0627\u0631\u062f\u06cc \u06a9\u0647 \u0645\u0633\u0626\u0648\u0644 \u0686\u0647 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u0635\u062d\u0628\u062a \u06a9\u0646\u0645. <code>webpack.config.js<\/code>. \u0641\u0627\u06cc\u0644 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0642\u0627\u0628\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0622\u0646 \u0631\u0633\u06cc\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0633\u0645\u062a \u0628\u0627\u0637\u0646 \u062d\u0631\u06a9\u062a \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Backend\"><\/span>\n<p>  Backend<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 Backend\u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0627 \u0622\u0631\u0627\u0645\u0634 \u0628\u0647 \u0645\u0634\u062a\u0631\u06cc \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0631 \u0627\u06cc\u0646 \u0627\u0633\u0627\u0633 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0622\u0646 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645. \u0641\u0631\u0636 \u06a9\u0646\u06cc\u062f \u0645\u0646 \u06cc\u06a9 \u06af\u0627\u0644\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0645 &#8211; \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0633\u067e\u0633 \u0628\u0627\u06cc\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u0645 \u0648 \u0645\u0633\u06cc\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0622\u0646\u062c\u0627 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u0645.<\/p>\n<p>\u0645\u06cc \u0628\u06cc\u0646\u06cc\u0645 \u06a9\u0647 \u0645\u0633\u06cc\u0631\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f \u0647\u0645\u06cc\u0646 \u0627\u0633\u062a <code>\/api\/images<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight html\"><code>src: \"http:\/\/localhost:8000\/api\/images\", \n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u0628\u0631\u0627\u06cc \u0622\u0646\u060c \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0646\u0634\u0627\u0646\u0647 \u06af\u0630\u0627\u0631\u06cc HTML \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u067e\u0627\u0633\u062e \u0635\u0627\u062f\u0631 \u0645\u06cc \u0634\u0648\u062f\u060c \u0622\u0645\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0631\u0648\u0634 \u0628\u0631\u0627\u06cc \u0645\u0633\u06cc\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f <code>POST<\/code>\u060c \u0632\u06cc\u0631\u0627 \u062f\u0631 <code>body<\/code> \u0627\u0632 <code>RequestInit<\/code> \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0639\u0628\u0648\u0631 \u06a9\u0646\u06cc\u062f <code>page<\/code> \u0628\u0627 \u0645\u0642\u062f\u0627\u0631 \u0644\u0627\u0632\u0645 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u0645\u0634\u0627\u0628\u0647 \u0631\u0627 \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u0645:<\/p>\n<p><strong>routes\/post.js<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">express<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">express<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">expressRouter<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">express<\/span><span class=\"p\">.<\/span><span class=\"nc\">Router<\/span><span class=\"p\">();<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">imagePaths<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img1.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img2.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img3.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img4.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img5.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img6.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img7.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img8.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img9.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n  <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">http:\/\/localhost:8000\/images\/img10.jpg<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">];<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">imagesController<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">req<\/span><span class=\"p\">,<\/span> <span class=\"nx\">res<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">page<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">req<\/span><span class=\"p\">.<\/span><span class=\"nx\">body<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">page<\/span> <span class=\"o\">||<\/span> <span class=\"nf\">isNaN<\/span><span class=\"p\">(<\/span><span class=\"nx\">page<\/span><span class=\"p\">))<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">res<\/span><span class=\"p\">.<\/span><span class=\"nf\">status<\/span><span class=\"p\">(<\/span><span class=\"mi\">400<\/span><span class=\"p\">).<\/span><span class=\"nf\">send<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">Page number error<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">pageNumber<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">parseInt<\/span><span class=\"p\">(<\/span><span class=\"nx\">page<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">itemsPerPage<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">5<\/span><span class=\"p\">;<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">startIndex<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">pageNumber<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">1<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span> <span class=\"nx\">itemsPerPage<\/span><span class=\"p\">;<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"nx\">endIndex<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">startIndex<\/span> <span class=\"o\">+<\/span> <span class=\"nx\">itemsPerPage<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">startIndex<\/span> <span class=\"o\">&gt;=<\/span> <span class=\"nx\">imagePaths<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span> <span class=\"o\">||<\/span> <span class=\"nx\">pageNumber<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">1<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">res<\/span><span class=\"p\">.<\/span><span class=\"nf\">status<\/span><span class=\"p\">(<\/span><span class=\"mi\">404<\/span><span class=\"p\">).<\/span><span class=\"nf\">send<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">Page not found<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">imagesForPage<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">imagePaths<\/span><span class=\"p\">.<\/span><span class=\"nf\">slice<\/span><span class=\"p\">(<\/span><span class=\"nx\">startIndex<\/span><span class=\"p\">,<\/span> <span class=\"nx\">endIndex<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">htmlResponse<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">`\n      <\/span><span class=\"p\">${<\/span><span class=\"nx\">imagesForPage<\/span>\n        <span class=\"p\">.<\/span><span class=\"nf\">map<\/span><span class=\"p\">((<\/span><span class=\"nx\">img<\/span><span class=\"p\">,<\/span> <span class=\"nx\">index<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s2\">`<img decoding=\"async\" src=\"https:\/\/dev.to\/anthonymax\/&lt;\/span&gt;&lt;span class=\" p=\"\" alt=\"\" title=\"\">${<\/span><span class=\"nx\">img<\/span><span class=\"p\">}<\/span><span class=\"s2\">\" alt=\"\u062a\u0635\u0648\u06cc\u0631<\/span><span class=\"p\">${<\/span><span class=\"nx\">index<\/span><span class=\"p\">}<\/span><span class=\"s2\">\"\/&gt;`<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"se\">\\n<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">)}<\/span><span class=\"s2\">\n  `<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"nx\">res<\/span><span class=\"p\">.<\/span><span class=\"nf\">send<\/span><span class=\"p\">(<\/span><span class=\"nx\">htmlResponse<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"nx\">expressRouter<\/span><span class=\"p\">.<\/span><span class=\"nf\">post<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">\/images<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"nx\">imagesController<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">exports<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">expressRouter<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0633\u062a\u0647 \u0628\u0647 \u0635\u0641\u062d\u0647\u060c \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u067e\u0648\u06cc\u0627 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u06cc\u0645. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0634\u0627\u06cc\u0627\u0646 \u0630\u06a9\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0633\u06cc\u0631 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0628\u0647 \u067e\u0648\u0634\u0647 \u0647\u0627 \u0622\u062f\u0631\u0633 \u062f\u0627\u062f\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f\u060c \u0628\u0644\u06a9\u0647 \u0622\u062f\u0631\u0633 \u062e\u0648\u062f \u0622\u062f\u0631\u0633 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u062f\u0631 <code>app.js<\/code> \u0641\u0627\u06cc\u0644\u060c \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u062a\u0627 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0632 \u067e\u0648\u0634\u0647 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u062d\u0627\u0644\u0627\u060c \u062e\u06cc\u0644\u06cc \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0627 \u06cc\u06a9 <code>GET<\/code> \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0639\u0646\u0648\u0627\u0646\u060c \u0645\u0627 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 html \u0633\u0627\u062f\u0647 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u06a9\u062f \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f:<\/p>\n<p><strong>routes\/get.js<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">express<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">express<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">expressRouter<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">express<\/span><span class=\"p\">.<\/span><span class=\"nc\">Router<\/span><span class=\"p\">();<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">path<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">path<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">titleController<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">req<\/span><span class=\"p\">,<\/span> <span class=\"nx\">res<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">res<\/span><span class=\"p\">.<\/span><span class=\"nf\">sendFile<\/span><span class=\"p\">(<\/span><span class=\"nx\">path<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">..\/components\/GET\/title.html<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">));<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"nx\">expressRouter<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">\/title<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"nx\">titleController<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nx\">module<\/span><span class=\"p\">.<\/span><span class=\"nx\">exports<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">expressRouter<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0641\u0627\u06cc\u0644 html \u0641\u0642\u0637 \u06cc\u06a9 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a <code>span<\/code> \u0628\u0627 \u0645\u062a\u0646 <em>\u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc<\/em> \u0648 \u0628\u0633 \u062f\u0631 \u0627\u0635\u0644\u060c \u0627\u0645\u06a9\u0627\u0646 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 <code>POST<\/code> \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0686\u0646\u062f\u0632\u0628\u0627\u0646\u06af\u06cc \u0631\u0627 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0631 \u0631\u0648\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a. \u0645\u06cc \u062e\u0648\u0627\u0633\u062a\u0645 \u0622\u0646 \u0631\u0627 \u06a9\u0645 \u0648 \u0628\u06cc\u0634 \u0633\u0627\u062f\u0647 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0632\u06cc\u0628\u0627 \u0648 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u06a9\u0646\u0645.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u062a\u0646\u0647\u0627 \u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0645\u062a\u0635\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u0645. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631\u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645 \u0648 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06a9\u0633\u067e\u0631\u0633 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645:<\/p>\n<p><strong>app.js<\/strong><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">express<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">express<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">path<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">path<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">bodyParser<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">body-parser<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">cors<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">cors<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">PORT<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">8000<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">app<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">express<\/span><span class=\"p\">();<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">getRoutes<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">.\/routes\/get<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"kd\">const<\/span> <span class=\"nx\">postRoutes<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">require<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">.\/routes\/post<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">express<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">());<\/span>\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">bodyParser<\/span><span class=\"p\">.<\/span><span class=\"nf\">urlencoded<\/span><span class=\"p\">({<\/span> <span class=\"na\">extended<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span> <span class=\"p\">}));<\/span>\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nf\">cors<\/span><span class=\"p\">({<\/span> <span class=\"na\">origin<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span> <span class=\"na\">credentials<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span> <span class=\"p\">}));<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">imagesFolder<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">path<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">.\/images<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">\/images<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"nx\">express<\/span><span class=\"p\">.<\/span><span class=\"nf\">static<\/span><span class=\"p\">(<\/span><span class=\"nx\">imagesFolder<\/span><span class=\"p\">));<\/span>\n\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"nx\">express<\/span><span class=\"p\">.<\/span><span class=\"nf\">static<\/span><span class=\"p\">(<\/span><span class=\"nx\">path<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">src<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">)));<\/span>\n\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">\/<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"p\">(<\/span><span class=\"nx\">req<\/span><span class=\"p\">,<\/span> <span class=\"nx\">res<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">res<\/span><span class=\"p\">.<\/span><span class=\"nf\">sendFile<\/span><span class=\"p\">(<\/span><span class=\"nx\">path<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">src\/index.html<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">));<\/span>\n<span class=\"p\">});<\/span>\n\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">\/api<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"nx\">getRoutes<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">\/api<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"nx\">postRoutes<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">listen<\/span><span class=\"p\">(<\/span><span class=\"nx\">PORT<\/span><span class=\"p\">,<\/span> <span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"s2\">`Server is running on http:\/\/localhost:<\/span><span class=\"p\">${<\/span><span class=\"nx\">PORT<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">);<\/span>\n<span class=\"p\">});<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u0645 <code>CORS<\/code> \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u062f\u06cc\u06af\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u0645 <code>localhost<\/code> \u067e\u0648\u0631\u062a\u060c \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062a\u0635\u0627\u0648\u06cc\u0631 \u0627\u0632 \u06cc\u06a9 \u067e\u0648\u0634\u0647. \u0628\u0647 \u0637\u0648\u0631 \u062e\u0627\u0635\u060c \u0645\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"kd\">const<\/span> <span class=\"nx\">imagesFolder<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">path<\/span><span class=\"p\">.<\/span><span class=\"nf\">join<\/span><span class=\"p\">(<\/span><span class=\"nx\">__dirname<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">.\/images<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">);<\/span>\n<span class=\"nx\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">use<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"s2\">\/images<\/span><span class=\"dl\">\"https:\/\/dev.to\/anthonymax\/<\/span><span class=\"p\">,<\/span> <span class=\"nx\">express<\/span><span class=\"p\">.<\/span><span class=\"nf\">static<\/span><span class=\"p\">(<\/span><span class=\"nx\">imagesFolder<\/span><span class=\"p\">));<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062e\u0648\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f <code>PORT<\/code> \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631\u060c \u0627\u0645\u0627 \u0645\u0646 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0631\u062f\u0645 <code>8000<\/code>. \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0627\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f <code>bodyParser<\/code> \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0631\u0627\u062d\u062a \u0628\u0627 HTML \u0648 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0641\u0642\u0637 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 api \u0645\u062a\u0635\u0644 \u06a9\u0646\u06cc\u062f. \u0648 \u0627\u06a9\u0646\u0648\u0646\u060c \u0645\u0646 \u0641\u06a9\u0631 \u0645\u06cc \u06a9\u0646\u0645\u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87_%DA%AF%DB%8C%D8%B1%DB%8C\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647 \u06af\u06cc\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u062d\u062a\u06cc \u0686\u0646\u06cc\u0646 \u0628\u0647 \u0638\u0627\u0647\u0631 \u06a9\u0648\u0686\u06a9\u060c \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u062d\u062f\u0627\u0642\u0644 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0628\u0648\u062f\u060c \u0628\u0633\u06cc\u0627\u0631 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0628\u0648\u062f. \u0627\u0645\u0627\u060c \u0627\u06cc\u0646 \u0646\u06cc\u0632 \u062c\u0627\u0644\u0628 \u0627\u0633\u062a\u060c \u0632\u06cc\u0631\u0627 \u0632\u0645\u06cc\u0646\u0647 \u0627\u06cc \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0645\u0648\u0646\u062a\u0627\u0698 \u0628\u0627 \u06a9\u06cc\u0641\u06cc\u062a \u0628\u0627\u0644\u0627 \u0648 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u0633\u0627\u062f\u0647 \u0645\u062f\u0631\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f backend \u0631\u0627 \u062f\u0631 PHP \u06cc\u0627 \u0686\u06cc\u0632 \u062f\u06cc\u06af\u0631\u06cc \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0645\u0639\u0646\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a \u062a\u063a\u06cc\u06cc\u0631 \u0686\u0646\u062f\u0627\u0646\u06cc \u0646\u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0641\u06a9\u0631 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062d\u06cc\u0648\u0627\u0646 \u062e\u0627\u0646\u06af\u06cc \u0646\u06cc\u0632 \u0628\u0647 \u062e\u0648\u0628\u06cc \u067e\u06cc\u0634 \u0628\u0631\u0648\u062f.<\/p>\n<p>\u0627\u0632 \u0647\u0645\u0647 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0633\u067e\u0627\u0633\u06af\u0632\u0627\u0631\u0645! \u062e\u06cc\u0644\u06cc \u0628\u0632\u0631\u06af \u0628\u0648\u062f\u060c \u062d\u062a\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f\u06cc \u06a9\u0647 \u0633\u0639\u06cc \u06a9\u0631\u062f\u0645 \u0631\u0648\u0627\u06cc\u062a \u0631\u0627 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u06a9\u0648\u062a\u0627\u0647 \u06a9\u0646\u0645\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0638\u0631\u0627\u0641\u062a \u0647\u0627 \u0631\u0627 \u067e\u0648\u0634\u0634 \u0646\u062f\u0647\u062f\u060c \u0627\u0645\u0627 \u0628\u0627 \u0627\u06cc\u0646 \u0648\u062c\u0648\u062f \u0628\u0633\u06cc\u0627\u0631 \u0632\u06cc\u0627\u062f \u0628\u0648\u062f\u060c \u0627\u0645\u0627\u060c \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645\u060c \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u062c\u0627\u0644\u0628 \u0648 \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AE%D8%B2%D9%86_%D9%BE%D8%B1%D9%88%DA%98%D9%87\"><\/span>\n<p>  \u0645\u062e\u0632\u0646 \u067e\u0631\u0648\u0698\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u062f\u0631 GitHub \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f. \u062f\u0631 \u0622\u0646\u062c\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u0628\u0627 \u06a9\u062f \u0622\u0634\u0646\u0627 \u0634\u0648\u06cc\u062f. \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0646\u06cc\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u06a9\u0647 \u0645\u0634\u0627\u0628\u0647 \u0648 \u06cc\u0627 \u062d\u062a\u06cc \u0633\u0631\u062f\u062a\u0631 \u0628\u0627\u0634\u0646\u062f.<\/p>\n<div class=\"ltag-github-readme-tag\">\n<div class=\"readme-overview\">\n<h3><span class=\"ez-toc-section\" id=\"%D9%84%DB%8C%D8%B3%D8%AA_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%87%D8%A7%DB%8C_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C_%D8%AF%D8%B1_HMPL\"><\/span>\n<p>      \u0644\u06cc\u0633\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062f\u0631 HMPL<br \/>\n    <span class=\"ez-toc-section-end\"><\/span><\/h3>\n<\/p><\/div>\n<div class=\"ltag-github-body\">\n<div id=\"readme\" class=\"md\" data-path=\"README.md\">\n<article class=\"markdown-body entry-content container-lg\" itemprop=\"text\">\n<p dir=\"auto\">\u0627\u06cc\u0646 \u0645\u062e\u0632\u0646 \u0634\u0627\u0645\u0644 \u0644\u06cc\u0633\u062a\u06cc \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0632\u0628\u0627\u0646 \u0642\u0627\u0644\u0628 HMPL \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0646\u062f. \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u062f \u0648 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f (\u0641\u0642\u0637 \u062a\u0635\u0627\u0648\u06cc\u0631 \u0628\u0627\u06cc\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0634\u0648\u0646\u062f).<\/p>\n<p><h2 class=\"heading-element\" dir=\"auto\"><span class=\"ez-toc-section\" id=\"%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%DA%AF%D8%A7%D9%84%D8%B1%DB%8C\"><\/span>\u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<\/p>\n<p dir=\"auto\">\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc \u06af\u0644 \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a \u0635\u0641\u062d\u0647 \u0628\u0646\u062f\u06cc. \u062a\u0635\u0627\u0648\u06cc\u0631 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0646\u0627\u0645 \u062e\u0648\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0632 \u0633\u0631\u0648\u0631 \u0622\u067e\u0644\u0648\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p dir=\"auto\"><img decoding=\"async\" alt=\"\u0639\u06a9\u0633 1\" src=\"https:\/\/dev.to\/anthonymax\/max-width: 100%;\" loading=\"lazy\" title=\"\"><br \/>\n<img decoding=\"async\" alt=\"\u0639\u06a9\u0633 2\" src=\"https:\/\/dev.to\/anthonymax\/max-width: 100%;\" loading=\"lazy\" title=\"\"><br \/>\n<img decoding=\"async\" alt=\"\u0639\u06a9\u0633 3\" src=\"https:\/\/dev.to\/anthonymax\/max-width: 100%;\" loading=\"lazy\" title=\"\"><\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<p><\/p>\n<hr\/>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gzjoz0i37ru46xvcawu.png\" alt=\"\u0645\u0627\u0646\u0646\u062f\" loading=\"lazy\" width=\"186\" height=\"100\" title=\"\"><\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u062e\u0648\u0634\u062d\u0627\u0644 \u062e\u0648\u0627\u0647\u0645 \u0634\u062f \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u062d\u0645\u0627\u06cc\u062a \u06a9\u0646\u06cc\u062f <strong>\u067e\u0631\u0648\u0698\u0647 \u0628\u0627 \u0633\u062a\u0627\u0631\u0647 \u0634\u0645\u0627<\/strong>. \u0645\u062a\u0634\u06a9\u0631\u0645<\/p>\n<p>\u0633\u062a\u0627\u0631\u0647 HMPL \u2606\n <\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0633\u0644\u0627\u0645 \u0628\u0647 \u0647\u0645\u0647! \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0631\u0648\u0646\u062f \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06af\u0627\u0644\u0631\u06cc \u0631\u0627 \u0634\u0631\u062d \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0627\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0631\u062f\u0627\u0631\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f (\u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646\u062c\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f\u060c \u0632\u06cc\u0631\u0627 \u0645\u062c\u0648\u0632 \u0648\u062c\u0648\u062f &hellip;<\/p>\n","protected":false},"author":2,"featured_media":88816,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-88815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/88815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=88815"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/88815\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/88816"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=88815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=88815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=88815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}