uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 419
Obunachilar
Ma'lumot yo'q24 soatlar
-17 kunlar
+230 kunlar
Postlar arxiv
ToCode
1 419
ืžื” ืžืขื ื™ื™ืŸ ืื•ืชื™ ื‘ Vue
Anonymous voting

ToCode
1 419
ื”ื™ ื—ื‘ืจื™ื ืื ื™ ืจื•ืฆื” ืฉื‘ื•ืข ื”ื‘ื ืœื”ืขื‘ื™ืจ ื•ื•ื‘ื™ื ืจ ืขืœ ื•ื™ื• ืื‘ืœ ืื ื™ ืœื ื‘ื˜ื•ื— ื‘ื“ื™ื•ืง ืขืœ ืื™ื–ื” ื—ืœืง ืฉืœื• ื™ืขื ื™ื™ืŸ ืืชื›ื ืœืฉืžื•ืข. ื”ื ื” ื›ืžื” ืืคืฉืจื•ื™ื•ืช ืื ื‘ื ืœื›ื ืœืฉืžื•ืข ืžืฉื”ื• ืขืœ ื•ื™ื• ืคืฉื•ื˜ ืชืœื—ืฆื• ืขืœ ื”ืืคืฉืจื•ืช ืฉืžืชืื™ืžื” ืœื›ื

ToCode
1 419
# ื”ื™ื•ื ืœืžื“ืชื™: ืคืงื•ื“ื•ืช ืฉืžืชื—ื™ืœื• ื‘ git ืžื—ืคืฉื™ื ื“ืจืš ืงืœื” ืœื”ืจื™ืฅ Shell Script ื‘ืชื•ืจ git alias? ืžืกืชื‘ืจ ืฉื›ืœ ืžื” ืฉืฆืจื™ืš ื–ื” ืœืฉื ื•ืช ืืช ื”ืฉื ืฉืœ ื”ืกืงืจื™ืคื˜. ื›ืฉื’ื™ื˜ ืžืงื‘ืœ ืคืงื•ื“ื” ืฉื”ื•ื ืœื ืžื›ื™ืจ ื”ื•ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืžื ืกื” ืœื—ืคืฉ ืชื•ื›ื ื™ืช ืขืœ ื”ืžื—ืฉื‘ ืฉืžืชื—ื™ืœื” ื‘ืžื™ืœื” git ืื—ืจื™ื” ืžืงืฃ ื•ืื– ืฉื ื”ืคืงื•ื“ื”, ื•ืื ืžื•ืฆื ื”ื•ื ืคืฉื•ื˜ ื™ืจื™ืฅ ืื•ืชื”. ื›ืœ ื›ืš ืฉืžื—ืชื™ ืœื’ืœื•ืช ืืช ื–ื” ืฉื™ืฆืจืชื™ ืกืงืจื™ืคื˜ ื‘ืฉื git-visit, ื ืชืชื™ ืœื• ื”ืจืฉืื•ืช ื”ืจืฆื” ื•ืฉืžืจืชื™ ื‘ืžืงื•ื ื ื’ื™ืฉ ื‘ืชื•ืš ื” PATH:
#!/bin/bash

xdg-open $(git remote -v | cut -d @ -f 2 | cut -d ' ' -f 1 | head -1 | sed 's/:/\//' | sed 's/.git$//' | sed s'/^/https:\/\//') >& /dev/null &
ื•ืขื›ืฉื™ื• ืžื›ืœ ืชื™ืงื™ื” ืขื ืคืจื•ื™ืงื˜ ื’ื™ื˜ ืฉืžื—ื•ื‘ืจ ืœื’ื™ื˜ื”ืื‘ ืืคืฉืจ ืœื›ืชื•ื‘:
$ git visit
ื•ื“ืฃ ื”ืคืจื•ื™ืงื˜ ื‘ื’ื™ื˜ื”ืื‘ ื™ื™ืคืชื— ื‘ื“ืคื“ืคืŸ.

ToCode
1 419
ื”ื‘ืขื™ื” ืขื Tailwind ื”ื™ื ืฉื‘ืขื‘ื•ื“ื” ืจื’ื™ืœื” ืขื ื”ืคืจื™ื™ืžื•ื•ืจืง ื™ืฉ ื ื˜ื™ื” ืœื›ืชื•ื‘ ืืช ื›ืœ ื”ืขื™ืฆื•ื‘ ื‘ืชื•ืš ื” HTML ื•ืื– ื›ืฉื™ืฉ ืžืกืคืจ ืืœืžื ื˜ื™ื ืขื ืขื™ืฆื•ื‘ ื–ื”ื” ื ื•ืฆืจืช ื›ืคื™ืœื•ืช ื‘ HTML ื•ืงืฉื” ื‘ืฉื™ื ื•ื™ ืื—ื“ ืœื”ืฉืคื™ืข ืขืœ ื›ื•ืœื. ืื ื ื™ืงื— ืืช ื”ื“ื•ื’ืžื” ืฉื”ื“ื‘ืงืชื™ ื‘ืชื—ื™ืœืช ื”ืคื•ืกื˜, ื”ื™ื ืชื™ืืจื” ื›ืจื˜ื™ืก ืื—ื“ ื‘ื˜ื‘ืœืช ืžื—ื™ืจื™ื. ืงืœ ืœื“ืžื™ื™ืŸ ืฉื ืจืฆื” ืขื•ื“ ืฉื ื™ ื›ืจื˜ื™ืกื™ื ื›ื“ื™ ืœื”ืฉื•ื•ืช ื•ื›ื›ื” ื ืงื‘ืœ ืขืจื™ืžื” ืฉืœ ืงื•ื“ ื›ืคื•ืœ. ืœื”ื’ื ืชื ืฉืœ ื˜ื™ื™ืœื•ื™ื ื“ ืฆืจื™ืš ืœื”ื’ื™ื“ ืฉื”ื ื›ืŸ ื—ืฉื‘ื• ืขืœ ื”ื‘ืขื™ื” ื•ื™ืฆืจื• ืžื ื’ื ื•ืŸ ื‘ืฉื apply ืฉื‘ื“ื™ื•ืง ืžืืคืฉืจ ืœื”ื•ืฆื™ื ืื•ืกืฃ ืฉืœ ื”ื’ื“ืจื•ืช tailwind ืœืชื•ืš ืงืœืืก ื—ื“ืฉ. ื–ื” ืžื—ื–ื™ืจ ืืช ื”ื‘ืขื™ื” ืืœื™ื ื• ื”ืžืชื›ื ืชื™ื ืฉื ื•ื˜ื™ื ืœื ืœื”ืฉืชืžืฉ ืžืกืคื™ืง ื‘ืžื ื’ื ื•ื ื™ื ื’ื ืจื™ื™ื ื‘ืžืฆื‘ื™ื ื›ืžื• ื›ืชื™ื‘ืช CSS. ## ื”ืžื›ื•ืขืจ - ืชื–ื›ื™ืจ ืœื™ ืฉื•ื‘ ืžื” ื–ื” p-2 ื”ื‘ืขื™ื” ื”ืฉื ื™ื” ืขื Tailwind ื ื•ื’ืขืช ืœ Workflow. ื‘ื”ื ื—ื” ืฉืื™ืŸ ืœื›ื ืชืžื™ื›ื” ืžืกืคื™ืง ื˜ื•ื‘ื” ื‘ IDE, ืืชื ื”ื•ืœื›ื™ื ืœื‘ืœื•ืช ื”ืจื‘ื” ื–ืžืŸ ื‘ืชื™ืขื•ื“ ืฉืœื”ื ื›ื“ื™ ืœื”ื‘ื™ืŸ ืื™ื–ื” ืงืœืืก ื‘ื“ื™ื•ืง ืื•ืžืจ "ืจื™ืคื•ื“ ืฉืœ 8 ืคื™ืงืกืœื™ื". ื‘ืชื™ืขื•ื“ ืจืฉื™ืžืช ื”ืงืœืืกื™ื ืœืจื™ืคื•ื“ ืื• ื‘ืื•ืคืŸ ื›ืœืœื™ ืœื’ื“ืœื™ื ืžืฆื™ื’ื” ืืช ื”ืขืจื›ื™ื ื‘ rem-ื™ื:
p-0     padding: 0px;
p-px padding: 1px;
p-0.5 padding: 0.125rem;
p-1     padding: 0.25rem;
p-1.5 padding: 0.375rem;
p-2     padding: 0.5rem;
p-2.5 padding: 0.625rem;
p-3     padding: 0.75rem;
p-3.5 padding: 0.875rem;
p-4     padding: 1rem;
ื•ืขื›ืฉื™ื• ืืชื ืฆืจื™ื›ื™ื ืœื—ืฉื‘ ื›ืžื” rem-ื™ื ื™ื•ืฆืื™ื ื” 8 ืคื™ืงืกืœื™ื ืฉืœื›ื ื•ืื™ื–ื” ืงืœืืก ื‘ื“ื™ื•ืง ืžืชืื™ื ืœืจื™ืคื•ื“ ืฉื”ืžืขืฆื‘ ืจืฆื” (ื•ื–ื” ื‘ืžืงืจื” ื”ื˜ื•ื‘ ืฉืงื™ื™ื ืงืœืืก ื›ื–ื”, ืื—ืจืช ืฆืจื™ืš ืœื™ืฆื•ืจ ื—ื“ืฉ). ืกืš ื”ื›ืœ Tailwind ื”ื•ื ื›ืŸ ืคืจื™ื™ืžื•ื•ืจืง ืžืื•ื“ ื ื•ื— ื•ื›ืฉืžืชื—ื™ืœื™ื ืœืขื‘ื•ื“ ืื™ืชื• ื™ืฉ ื‘ื–ื” ืžืฉื”ื• ืžืžื›ืจ. ื”ื“ืจืš ื”ื›ื™ ื˜ื•ื‘ื” ืœื”ื‘ื™ืŸ ืื ื”ื•ื ื™ืชืื™ื ืœื›ื ืœืคืจื•ื™ืงื˜ ื”ื‘ื ื”ื™ื ืœื‘ื—ื•ืจ ืขืžื•ื“ ืื• ืฉื ื™ื™ื ืฉืžืขื ื™ื™ื ื™ื ืืชื›ื ื•ืœืžืžืฉ ื‘ืืžืฆืขื•ืช Tailwind. ืื—ืจื™ ืฉืชืขืฉื• ืืช ื–ื” ืžื•ื–ืžื ื™ื ืœืฉืชืฃ ื‘ืชื’ื•ื‘ื•ืช ืžื” ื”ื™ืชื” ื“ืขืชื›ื ื•ืื™ื–ื” ืขืžื•ื“ื™ื ื‘ื ื™ืชื.

ToCode
1 419
# ื”ื˜ื•ื‘, ื”ืจืข ื•ื”ืžื›ื•ืขืจ ืขื Tailwind CSS ื˜ื™ื™ืœื•ื•ื™ื ื“ ืกื™ ืืก ืืก ื”ื•ื ื›ื ืจืื” ืกืคืจื™ื™ืช ื” CSS ื”ื˜ืจื ื“ื™ืช ื‘ื™ื•ืชืจ ื›ื™ื•ื. ืืคืฉืจ ืœื—ืฉื•ื‘ ืขืœื™ื• ื›ืชื’ื•ื‘ืช ื ื’ื“ ืœืกืคืจื™ื•ืช ื›ืžื• Antd ื•ืœื“ื•ืžื™ื ื ื˜ื™ื•ืช ืฉืœ JavaScript Frameworks: ื‘ื’ื™ืฉื” ืฉืœ antd ืืชื” ืžืžื™ืœื ื”ื•ืœืš ืœื”ืฉืชืžืฉ ื‘ืคืจื™ื™ืžื•ื•ืจืง ืื– ื”ื ื” ืกืคืจื™ื™ืช ืงื•ื ืคื•ื ื ื˜ื•ืช ืฉืชืชืื™ื ืœื›ืœ ืคืจื™ื™ืžื•ื•ืจืง ืฉืชื‘ื—ืจ; ื‘ื’ื™ืฉื” ืฉืœ ื˜ื™ื™ืœื•ื•ื™ื ื“ ื”ื ื” ื“ืจืš ืœื›ืชื•ื‘ CSS ืžื•ื“ืจื ื™ ื‘ืœื™ JavaScript ื•ืœืฉืชืฃ ืืช ื”ืขื‘ื•ื“ื” ืขื ืื—ืจื™ื. ืื‘ืœ ื”ืชื™ืื•ืจื™ื” ื”ื–ืืช ืžืงื‘ืœืช ื‘ Tailwind ืžื™ืžื•ืฉ ื“ื™ ืžื•ื–ืจ ืฉืžืชื‘ืกืก ืขืœ Utility Classes. ื–ื” ืื•ืžืจ ืฉื‘ืžืงื•ื ืกืคืจื™ื™ืช ืงื•ืžืคื•ื ื ื˜ื•ืช ืฉื ื•ืชื ืช ืงืœืืก ืœ"ื’ืœืจื™ื™ืช ืชืžื•ื ื•ืช", ืงืœืืก ืœ"ื˜ื‘ืœื”" ื•ืงืœืืก ืœ"ื›ืจื˜ื™ืก", ืื ื—ื ื• ืžืงื‘ืœื™ื ื‘ื˜ื™ื™ืœื•ื™ื ื“ ืงืœืืก ืœ-"ืจื™ืคื•ื“ ืฉืœ 32 ืคื™ืงืกืœื™ื" ืื• ืงืœืืก ืœ"ืฆื‘ืข ืจืงืข ืืคื•ืจ". ืื ืœื ืจืื™ืชื ืืฃ ืคืขื ืงื•ื“ HTML ืฉืžืฉืชืžืฉ ื‘ื˜ื™ื™ืœื•ื™ื ื“ ื”ื ื” ื“ื•ื’ืžื” ืœืื—ื“, ืจืง ืฉื™ืžื• ืœื‘ ืœืงื—ืช ืื•ื•ื™ืจ ืœืคื ื™ ืฉืงื•ืจืื™ื:
<div class="relative flex pb-5 space-x-5 border-b border-gray-200 lg:space-x-3 xl:space-x-5">
    <svg class="w-16 h-16 text-green-400 rounded-2xl" viewBox="0 0 150 150" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><rect x="0" y="0" width="150" height="150" rx="15"></rect></defs><g fill="none" fill-rule="evenodd"><mask fill="#fff"><use xlink:href="#plan1"></use></mask><use fill="currentColor" xlink:href="#plan1"></use><circle fill-opacity=".3" fill="#FFF" mask="url(#plan1)" cx="125" cy="25" r="50"></circle><path fill-opacity=".3" fill="#FFF" mask="url(#plan1)" d="M-33 83H67v100H-33z"></path></g></svg>
    <div class="relative flex flex-col items-start">
        <h3 class="text-xl font-bold">Basic Plan</h3>
        <p class="tracking-tight text-gray-500">
            <span class="text-sm transform inline-block -translate-y-2.5 relative">$</span>
            <span class="text-3xl font-bold text-gray-800">10</span>
            <span class="text-sm -translate-y-0.5 inline-block transform">/ user</span>
        </p>
    </div>
</div>
ื”ืงืœืืก border-gray-200 ืงื•ื‘ืข ืืช ืฆื‘ืข ื”ืจืงืข ืœื’ื•ื•ืŸ ืžืกื•ื™ื ืฉืœ ืืคื•ืจ ื•ื”ืงืœืืก text-green-400 ืงื•ื‘ืข ืืช ืฆื‘ืข ื”ื˜ืงืกื˜ ืœื’ื•ื•ืŸ ืžืกื•ื™ื ืฉืœ ื™ืจื•ืง. ืืชื ืžื•ื–ืžื ื™ื ืœื ืกื•ืช ืœื ื—ืฉ ืžื” ืื•ืžืจ ื›ืœ ืื—ื“ ืžื”ืงืœืืกื™ื ื”ืื—ืจื™ื. ืื– ื”ืื ืฉื•ื•ื” ืœื›ื ืœื ืกื•ืช ืืช ื˜ื™ื™ืœื•ื™ื ื“ ืœืคืจื•ื™ืงื˜ ื”ื‘ื ืฉืœื›ื? ื”ื ื” ื”ื˜ื•ื‘ ื”ืจืข ื•ื”ืžื›ื•ืขืจ ืฉืœ ื”ืกืคืจื™ื”. ## ื”ื˜ื•ื‘ - ื–ื” ืขื•ื‘ื“ ื ืชื—ื™ืœ ื‘ื—ื“ืฉื•ืช ื”ื˜ื•ื‘ื•ืช - ื˜ื™ื™ืœื•ื™ื ื“ ืขื•ื‘ื“. ื›ืฉืœื ืฆืจื™ื›ื™ื ืœื—ืคืฉ ืื™ื–ื” ืงื•ืžืคื•ื ื ื˜ืช antd ื‘ื“ื™ื•ืง ืชืชืื™ื, ืืคืฉืจ ืœื”ืกืชื›ืœ ืขืœ ื”ืขืžื•ื“, ืœื›ืชื•ื‘ ืืช ื›ืœืœื™ ื”ืขื™ืฆื•ื‘ ื›ืžื• Inline Styles ื•ืœืจืื•ืช ืื™ืš ื“ื‘ืจื™ื ื ื‘ื ื™ื ืœืื˜ ืฆืขื“ ืื—ืจ ืฆืขื“. ื•ื‘ืชื•ืจ ื‘ื•ื ื•ืก ืžื™ื•ื—ื“ ืืชื ืœื ืฆืจื™ื›ื™ื ืœื”ืžืฆื™ื ืฉืžื•ืช ืžื•ื–ืจื™ื ืœืงืœืืกื™ื ืจืง ื‘ืฉื‘ื™ืœ ืฉืชื•ื›ืœื• ืœื”ื“ื‘ื™ืง ืงืฆืช CSS ืขืœ ืืœืžื ื˜. ืื‘ืœ ืžื” ืฉื™ื•ืชืจ ื˜ื•ื‘ ื›ืืŸ ืž Inline Style ื”ื•ื ืฉื‘ Inline Style ื›ืœ ืžืกืคืจ ืื• ื›ืœ ืขืจืš ื”ื•ื "ืงืกื•ื", ื”ื•ื ื”ื’ื™ืข ืžืฉื•ื ืžืงื•ื ื•ืœื ืชืžื™ื“ ื‘ืจื•ืจ ื‘ืื™ื–ื” ืขืจืš ืœื”ืฉืชืžืฉ ื‘ืžืงื•ื ื—ื“ืฉ. ืื ื ื™ืงื— ืืช ื“ื•ื’ืžืช ื”ืฆื‘ืขื™ื, ืื– ื”ืขื•ื‘ื“ื” ืฉื™ืฉ ืœื™ ืงืœืืก text-green-200 ืื‘ืœ ืื™ืŸ ืœื™ ืงืœืืก text-blue-200 ืื•ืžืจืช ืฉื‘ืคืœื˜ืช ื”ืฆื‘ืขื™ื ื‘ืคืจื•ื™ืงื˜ ืฉืœื™ ื™ืฉ ืฆื‘ืข ื™ืจื•ืง ื•ื”ื•ื ืžื•ื’ื“ืจ ืœื”ื™ื•ืช ื‘ืขืจืš ืžืกื•ื™ื. ืื’ื‘ ืืช ื”ืฆื‘ืขื™ื ื•ื”ืคื•ื ื˜ื™ื ืื ื—ื ื• ืžื’ื“ื™ืจื™ื ื‘ืงื•ื‘ืฅ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืฉืœ tailwind ื•ื™ืฉ ืœื ื• ืฉืœื™ื˜ื” ืžืœืื” ืขืœ ื”ืขืจื›ื™ื. ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ื›ืืŸ ื”ื•ื ืฉ Tailwind ืขื•ื–ืจ ืœื ื• ืœืกื“ืจ ืื™ื–ื” "ื›ืœืœื™ CSS" ืžื•ืชืจ ืœื›ืชื•ื‘ ื‘ืคืจื•ื™ืงื˜, ื›ืœื•ืžืจ ื‘ืื™ื–ื” ืฆื‘ืขื™ื ืžื•ืชืจ ืœื”ืฉืชืžืฉ, ืžื” ื”ืจื™ืคื•ื“ื™ื ื”ืžืงื•ื‘ืœื™ื, ืžื” ื’ื“ืœื™ ื”ื’ื•ืคืŸ ืฉื ืฉืชืžืฉ ื‘ื”ื ื•ื›ืš ื”ืœืื”. ื‘ืฆื•ืจื” ื›ื–ืืช ืื ื—ื ื• ื›ื•ืชื‘ื™ื Inline Style ืื‘ืœ ืขื ืงืฆืช ื™ื•ืชืจ ืกื“ืจ ื•ืงืฆืช ื™ื•ืชืจ ื›ืœืœื™ื ืžืืฉืจ ืžืืคื™ื™ืŸ style ืจื’ื™ืœ. ื’ื ืฉื™ืชื•ืฃ ืงื•ื“ ืขื ื—ื‘ืจื™ื ื”ื•ื ืžืžืฉ ืคืฉื•ื˜ ื•ืœื ืฆืจื™ืš ืฉื”ื—ื‘ืจ ื™ืฉืชืžืฉ ื‘ืื•ืชื• JavaScript Framework ืฉืœื™ (ืœืžืขืฉื” ืื™ืŸ ื›ืืŸ JavaScript Framework ื‘ื›ืœืœ), ื•ื™ืฉ ื”ืžื•ืŸ ื“ื•ื’ืžืื•ืช ื‘ืจืฉืช ืœืขื™ืฆื•ื‘ื™ื ืฉืื ืฉื™ื ื”ื›ื™ื ื• ืขื ื˜ื™ื™ืœื•ื™ื ื“. ื•ืื ืืชื ืžืืœื” ืฉืžืขื“ื™ืคื™ื ืœื”ืฉืชืžืฉ ื‘ืงื•ืžืคื•ื ื ื˜ื•ืช ืžื•ื›ื ื•ืช ืื– ืคืจื•ื™ืงื˜ ืžืฉืœื™ื ื‘ืฉื Tailwind UI ื›ื•ืœืœ ืื•ืกืฃ ืฉืœ ืื™ื ืกื•ืฃ ืงื•ืžืคื•ื ื ื˜ื•ืช ื˜ื™ื™ืœื•ื™ื ื“ (ื‘ืชืฉืœื•ื ื•ื‘ืจื™ืฉื™ื•ืŸ ื“ืจืงื•ื ื™) ืฉืชื•ื›ืœื• ืœืงื ื•ืช ืœืคืจื•ื™ืงื˜ ืฉืœื›ื. ื™ืฉ ื’ื ืคืจื•ื™ืงื˜ ืงื•ื“ ืคืชื•ื— ื‘ืฉื Daisy UI ืฉืžืฆื™ืข ืงื•ืžืคื•ื ื ื˜ื•ืช ืคื—ื•ืช ื™ืคื•ืช ืื‘ืœ ื‘ื—ื™ื ื. ื‘ืขื‘ื•ื“ื” ืขื ื˜ื™ื™ืœื•ื™ื ื“ ืงืœ ืœื”ื™ื›ื ืก ืœืจืฆืฃ ืขื‘ื•ื“ื” ื•ืœืขืฆื‘ ื‘ื›ื™ืฃ ืืช ื”ืขืžื•ื“ ื‘ืœื™ ืœืคื—ื“ ืฉื›ืœ ื—ืœืง ื—ื“ืฉ ืฉืื ื—ื ื• ืžื›ื ื™ืกื™ื ืœื ื™ื”ื™ื” ืชื•ืื ืœืฉืืจ ื”ื“ืฃ, ืื‘ืœ ื’ื ื‘ืœื™ ืœื”ืชืขืฆื‘ืŸ ืฉืงื•ืžืคื•ื ื ื˜ื” ืžืกื•ื™ืžืช ืฉืžืฆืื ื• ืœื ืขื•ื‘ื“ืช ื‘ื“ื™ื•ืง ื›ืžื• ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ื‘ืžืขืจื›ืช ืฉืœื ื•. ## ื”ืจืข - ืžื ื’ื ื•ืŸ Extracting Components ื“ื•ืจืฉ ืžืฉืžืขืช ืฉืื™ืŸ ืœื ื•

ToCode
1 419
# ื•ืœืžื” ื–ื” ื”ื’ื™ื•ื ื™ ืœืคืชื•ืจ ืืช ื–ื” ื‘ืฉืขืชื™ื™ื? ืžืกืคื™ืง ืฉืžืฉื™ืžื” ืชื•ืคื™ืข ืคื” ื‘ืื—ื“ ื”ืชืจื’ื™ืœื™ื ื‘ืฉื‘ื™ืœ ืœื™ื™ืฆืจ ืฆื™ืคื™ื”: ื”ืฆื™ืคื™ื” ืœื”ืฆืœื™ื— ืœืคืชื•ืจ ืืช ื”ืžืฉื™ืžื” ื•ื‘ื–ืžืŸ ืกื‘ื™ืจ. ืคื’ืฉืชื™ ื’ื ืžืชื›ื ืชื™ื ืฉืœืงื—ื• ืืช ื”ืžืฉื—ืง ื”ื–ื” ืฉืœ ื”ืชืจื’ื™ืœื™ื ืœืขื•ืœื ื”ืืžื™ืชื™, ื•ื—ืฉื‘ื• ืฉื‘ื’ืœืœ ืฉื”ื ืงื™ื‘ืœื• ืžื”ืจืืฉ ืฆื•ื•ืช ืžืฉื™ืžื” ื”ื ืืžื•ืจื™ื ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœืคืชื•ืจ ืื•ืชื” ืชื•ืš ื›ืžื” ืฉืขื•ืช ืื• ื™ืžื™ื. ื‘ืชื™ ืกืคืจ ืขื‘ื“ื• ืงืฉื” ื›ื“ื™ ืœื™ืฆื•ืจ ืืช ื”ืชื ื™ื™ืช ื”ืฆ'ืง ืœื™ืกื˜ - ื›ืœื•ืžืจ ืœื”ื›ื™ืŸ ืื•ืชื ื• ืœืคืชื•ืจ ืžื‘ื—ืŸ. ื”ืžื‘ื—ืŸ ื”ื•ื ืขืœ ื–ืžืŸ ื›ืžื•ื‘ืŸ ื•ื›ื›ื” ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ื™ืขืจืš ืœืคืชื•ืจ ืฉืืœื” ื‘ืขืฉืจื™ื ื“ืงื•ืช ื›ื“ื™ ืœื”ืกืคื™ืง ืœืคืชื•ืจ ืืช ื›ืœ ื”ืžื‘ื—ืŸ ื‘ืฉืขืชื™ื™ื ื•ืจื‘ืข (ืขื ืขื•ื“ 5 ื“ืงื•ืช ืœื›ืชื•ื‘ ืืช ื”ืฉื ื•ืœื ืฉื•ื ื‘ืืžืฆืข). ืื‘ืœ ื”ืขื•ืœื ื”ืืžื™ืชื™ ืœื ืขื•ื‘ื“ ื›ื›ื”. ื‘ืขื•ืœื ื”ืืžื™ืชื™ ื™ืฉ ืžืฉื™ืžื•ืช ืฉืœื•ืงื—ื•ืช ืฉื‘ื•ืขื•ืช ื•ื—ื•ื“ืฉื™ื. ืžืฉื™ืžื•ืช ื‘ื”ืŸ ืื ื—ื ื• ืžืชืงื“ืžื™ื ื›ืœ ื™ื•ื ืงืฆืช ื•ืื– ืคืชืื•ื ืžื‘ื™ื ื™ื ืฉืœื ื”ื‘ื ื• ื›ืœื•ื ื•ื—ื•ื–ืจื™ื ื”ืจื‘ื” ืื—ื•ืจื” ืื• ืคืชืื•ื ืžื‘ื™ื ื™ื ืฉื™ืฉ ื“ืจืš ื™ื•ืชืจ ืงืœื” ื•ืงื•ืคืฆื™ื 5 ืฆืขื“ื™ื ืงื“ื™ืžื”. ืžืฉื™ืžื•ืช ืžืขื ื™ื™ื ื•ืช ื‘ืขื•ืœื ื”ืืžื™ืชื™ ื›ื•ืœืœื•ืช ืžื—ืงืจ ื•ื’ื™ืœื•ื™ ื•ืฉื™ื ื•ื™ื™ ื›ื™ื•ื•ืŸ ื•ืื– ืขื•ื“ ื ื™ืกื™ื•ืŸ ื•ืื– ืขื•ื“ ื—ืžื™ืฉื”. ื”ืฆื™ืคื™ื” ืœืคืชื•ืจ ืืช ื”ืชืจื’ื™ืœ ืื• ื”ืžืฉื™ืžื” ื‘ืฉืขืชื™ื™ื ืจืง ืขื•ืฉื” ื ื–ืง. ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ืื™ื ื• ืœื”ื’ื™ืข ืœืคื™ืชืจื•ืŸ, ืืœื ืœื ืฆืœ ืืช ื”ืชืจื’ื™ืœ ื›ื“ื™ ืœืœืžื•ื“ ื›ืžื” ืฉื™ื•ืชืจ ื“ื‘ืจื™ื. ื›ืžื• ืขื ื™ื™ืŸ ื˜ื•ื‘, ื’ื ื”ืžื˜ืจื” ืฉืœ ืชืจื’ื™ืœ ื˜ื•ื‘ ื”ื™ื ืœื ืœื”ื’ื™ืข ืœืกื•ืฃ. ื”ืœื™ืžื•ื“ ื–ื” ืžื” ืฉืงื•ืจื” ื‘ื“ืจืš.

ToCode
1 419
# ื”ื–ืžื ื” ืœื•ื•ื‘ื™ื ืจ: ื‘ื ื™ื™ืช ืคืจื•ื™ืงื˜ ืฆื“-ืœืงื•ื— ืขื Vite ืคื™ืชื•ื— ืคืจื•ื™ืงื˜ื™ ืฆื“ ืœืงื•ื— ื”ื™ื” ืคืขื ื”ื“ื‘ืจ ื”ื›ื™ ืงืœ ื‘ืขื•ืœื - ื™ื•ืฆืจื™ื ืงื•ื‘ืฅ ืขื ืกื™ื•ืžืช html, ืฉื•ืžืจื™ื ื•ืคื•ืชื—ื™ื ื‘ื“ืคื“ืคืŸ. ืื‘ืœ ื”ื’ื™ืฉื” ื”ื–ืืช ื”ืคืกื™ืงื” ืœืขื‘ื•ื“ ื›ื›ืœ ืฉื”ืคืจื•ื™ืงื˜ื™ื ื”ืคื›ื• ืžื•ืจื›ื‘ื™ื ื™ื•ืชืจ. ื”ื“ืจื™ืฉื” ืœื›ืชื•ื‘ ืื™ื ืกื•ืฃ ืงื‘ืฆื™ JavaScript ื‘ืคืจื•ื™ืงื˜ ื”ื‘ื™ืื” ืœืคื™ืชื•ื— ืฉืœ ื›ืœื™ื ืฉืžืื—ื“ื™ื ืืช ื›ืœ ื”ืงื‘ืฆื™ื ื”ืืœื” ืœืงื•ื‘ืฅ ืื—ื“. ื”ื“ืจื™ืฉื” ืœ CSS ื™ื•ืชืจ ืžืชื•ื—ื›ื ื”ื‘ื™ืื” ืœืคื™ืชื•ื— ืฉืœ scss, ื•ื‘ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช ื”ื“ืจื™ืฉื” ืœ JavaScript ื™ื•ืชืจ ืžืชื•ื—ื›ื ื”ื‘ื™ืื” ืœืคื™ืชื•ื— ืฉืคื•ืช ืฉืžืชืงืžืคืœื•ืช ืœ JavaScript ื•ืœื›ืœื™ื ืฉืจืฆื™ื ืขืœ ืงื‘ืฆื™ ื”ืžืงื•ืจ ืœืคื ื™ ืฉืืœื” ืžื’ื™ืขื™ื ืœื“ืคื“ืคืŸ. ื‘ืžืงื‘ื™ืœ ื™ื•ืชืจ ื•ื™ื•ืชืจ ืคื™ืฆ'ืจื™ื ืฉืœ ืขื•ืœื ื”ื•ื•ื‘ ืคืฉื•ื˜ ืœื ืขื‘ื“ื• ื›ืฉื”ื“ืฃ ื ื˜ืขืŸ ืž file-url ื•ื“ืจืฉื• ืฉื™ืžื•ืฉ ื‘ืฉืจืช, ืืคื™ืœื• ืฉืจืช ืžืงื•ืžื™, ืจืง ื‘ืฉื‘ื™ืœ ืœืขื‘ื•ื“ ื‘ืกื‘ื™ื‘ืช ื”ืคื™ืชื•ื—. ื”ื™ื•ื ื›ืžืขื˜ ื›ืœ ืคืจื™ื™ืžื•ื•ืจืง ืœืคื™ืชื•ื— ื•ื•ื‘ ืžื’ื™ืข ืขื ื›ืœื™ ืžืฉืœื• ืœื‘ื ื™ื™ืช ืชื‘ื ื™ืช ืœืคืจื•ื™ืงื˜, ืฉืœืจื•ื‘ ืžื‘ื•ืกืกืช ืขืœ webpack. ื•ื•ื‘ืคืืง ื”ื•ื ืžืขื•ืœื” ื•ืžืกืคืง ืื™ื ืกื•ืฃ ืืคืฉืจื•ื™ื•ืช ืœื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ืคืจื•ื™ืงื˜, ืื‘ืœ ื‘ื’ืœืœ ื–ื” ื”ื•ื ื’ื ืžืกื•ื‘ืš ื•ืงืฆืช ืื™ื˜ื™. ื”ื›ืœื™ vite ืฉืคื™ืชื•ื— Evan You (ื”ื™ื•ืฆืจ ืฉืœ vue) ื ื•ืขื“ ืœืชืช ืชื‘ื ื™ืช ืื—ื™ื“ื” ืœื‘ื ื™ื™ืช ืคืจื•ื™ืงื˜ื™ื, ืœื›ืœ ื”ืคืจื™ื™ืžื•ื•ืจืงื™ื ื”ืžืจื›ื–ื™ื™ื, ื•ืขื ื—ื•ื•ื™ืช ืžืชื›ื ืช ื˜ื•ื‘ื” ื™ื•ืชืจ ืžื–ื• ืฉืื ื—ื ื• ืžืงื‘ืœื™ื ืžื›ืœื™ื ื›ืžื• create-react-app. ื”ืคืจื•ื™ืงื˜ ืงื˜ืŸ ื™ื•ืชืจ, ื ื‘ื ื” ื™ื•ืชืจ ืžื”ืจ, ืฉืจืช ื”ืคื™ืชื•ื— ื™ื”ื™ื” ืžื”ื™ืจ ื™ื•ืชืจ ื•ืื•ืชื• ื”ื›ืœื™ ื™ืขื–ื•ืจ ืœื ื• ืœื‘ื ื•ืช ืคืจื•ื™ืงื˜ื™ื ืœืจื™ืืงื˜, ืœ Vue, ืœ Svelte ืื• ืœืคืจื•ื™ืงื˜ ืœืœื ืคืจื™ื™ืžื•ื•ืจืง ื‘ื›ืœืœ. ืื ื‘ื ืœื›ื ืœืจืื•ืช ืืช ื”ืงืกื ื‘ืคืขื•ืœื”, ืœืจืื•ืช ืื™ืš ืœื”ืชื—ื™ืœ ืคืจื•ื™ืงื˜ื™ื ืžื›ืœ ื”ืกื•ื’ื™ื ื•ืœื”ื‘ื™ืŸ ืžื” ื”ื•ืคืš ืืช ื•ื™ื˜ ืœื›ืœ ื›ืš ืžื”ื™ืจ ืžื•ื–ืžื ื™ื ืœื”ืฆื˜ืจืฃ ืืœื™ื™ ื‘ื™ื•ื ื—ืžื™ืฉื™ ื‘ื‘ื•ืงืจ ืœื•ื•ื‘ื™ื ืจ ืฉืœ ืฉืขื” ืขืœ ื•ื™ื˜. ื‘ืžื”ืœืš ื”ื•ื•ื‘ื™ื ืจ ืื ื™ ืžืชื›ื ืŸ: 1. ืœื”ืจืื•ืช ืื™ืš ืžืชืงื™ื ื™ื ืืช ื•ื™ื˜ ืขืœ ื”ืžื›ื•ื ื”. 2. ืœื”ืจืื•ืช ืื™ืš ื‘ื•ื ื™ื ืคืจื•ื™ืงื˜ื™ื ื‘ืคืจื™ื™ืžื•ื•ืจืงื™ื ื”ืžืจื›ื–ื™ื™ื. 3. ืœื”ืจืื•ืช ืžื” ืžื™ื•ื—ื“ ื‘ vite ื•ืžื” ื”ืงืกื ืฉื’ื•ืจื ืœื• ืœืขื‘ื•ื“ ื›ืœ ื›ืš ืžื”ืจ. 4. ืœื“ื‘ืจ ืงืฆืช ืขืœ ืกื•ื’ื™ ืคืจื•ื™ืงื˜ื™ื ืžื™ื•ื—ื“ื™ื ื•ืื™ื–ื” ื”ืชืืžื•ืช ืฆืจื™ืš ืœื‘ืฆืข ื‘ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื‘ืฉื‘ื™ืœ ืœืชืžื•ืš ื‘ื”ื. 5. ืœืขื ื•ืช ืขืœ ืฉืืœื•ืช ืฉืœื›ื ืœื’ื‘ื™ ื”ื›ืœื™. ื”ื•ื•ื‘ื™ื ืจ ื™ืชืงื™ื™ื ื‘ื™ื•ื ื—ืžื™ืฉื™ ื”ืงืจื•ื‘ (ื” 30.9) ื‘ืฉืขื” ืขืฉืจ ื‘ื‘ื•ืงืจ. ืชื”ื™ื” ื”ืงืœื˜ื” ืื‘ืœ ื™ื•ืชืจ ื›ื™ืฃ ืœื”ื’ื™ืข ืœืœื™ื™ื‘ ื›ื™ ืื– ืืคืฉืจ ืœืฉืื•ืœ ืฉืืœื•ืช ื•ืœื”ืชืคืจืฅ. ื”ืฉืชืชืคื•ืช ื‘ื—ื™ื ื ื•ื”ืจื™ืฉื•ื ื‘ื“ืฃ ื”ืื™ืจื•ืข ื›ืืŸ: https://www.tocode.co.il/workshops/106 ื ืชืจืื” ื‘ื—ืžื™ืฉื™ ื™ื ื•ืŸ

ToCode
1 419
      <action name="Execute">
        <command>brightnessctl set +2000</command>
      </action>
    </keybind>

    <keybind key="XF86MonBrightnessDown">
      <action name="Execute">
        <command>brightnessctl set 2000-</command>
      </action>
    </keybind>

ื–ื” ืžืชื—ื™ืœ ื‘ื›ืคืชื•ืจื™ ื” Winkey+ื—ืฅ ื›ื“ื™ ืœืชืคื•ืก ืืช ื—ืฆื™ ื”ืžืกืš ื”ื™ืžื ื™ ืื• ื”ืฉืžืืœื™, Winkey+ืœืžืขืœื” ื›ื“ื™ ืœืžืงืกื ืืช ื”ื—ืœื•ืŸ ื• Winkey+ืœืžื˜ื” ื›ื“ื™ ืœื‘ื˜ืœ ืืช ื”ืžื™ืงืกื•ื. ืื—ืจ ื›ืš ืฉื ื™ ื›ืคืชื•ืจื™ ื”ื‘ื”ื™ืจื•ืช (ื™ืฉ ืœื™ ืื•ืชื ื‘ืžืงืœื“ืช) ื›ื“ื™ ืœืฉืœื•ื˜ ื‘ืชื™ืื•ืจื” ื”ืื—ื•ืจื™ืช ืฉืœ ื”ืžืกืš ื‘ืืžืฆืขื•ืช ืชื•ื›ื ืช brightnessctl. ืœืžืจื•ืช ืฉ xml ื”ื•ื ืขื“ื™ื™ืŸ ื“ืจืš ืžื™ื•ืฉื ืช ืœืชืืจ ืงื•ื ืคื™ื’ื•ืจืฆื™ื•ืช, ืงื•ื‘ืฅ ื”ื”ื’ื“ืจื•ืช ืฉืœ ืื•ืคื ื‘ื•ืงืก ื“ื™ ืื™ื ื˜ื•ืื™ื˜ื™ื‘ื™ ื•ืื ืžืกืชื‘ื›ื™ื ื™ืฉ ื’ื ืชื•ื›ื ื” ื‘ืฉื obconf ืฉื ื•ืชื ืช ืžืžืฉืง ื’ืจืคื™ ืœืขื“ื›ื•ืŸ ื”ื”ื’ื“ืจื•ืช. ืžืฉืชืžืฉื™ื ื‘ืื•ืคื ื‘ื•ืงืก ื•ื™ืฉ ืœื›ื ื˜ื™ืคื™ื ื ื•ืกืคื™ื ืœืฉืชืฃ? ืืœ ืชืฉืžืจื• ื‘ื‘ื˜ืŸ ื•ืกืคืจื• ืคื” ื‘ืชื’ื•ื‘ื•ืช, ื‘ืžื™ื™ืœ ืื• ื‘ื˜ืœื’ืจื.

ToCode
1 419
# ื”ืื Openbox ื”ื•ื ืžื ื”ืœ ื”ื—ืœื•ื ื•ืช ื”ืžื•ืฉืœื? ืื—ืจื™ ืชืงื•ืคื” ืืจื•ื›ื” ืขื i3 ื• gnome ืœืกื™ืจื•ื’ื™ืŸ ื”ืชื—ืœืชื™ ืœื’ืœื•ืช ืืช Openbox, ืฉื ืจืื” ืฉืžืฆืœื™ื— ืœืคืชื•ืจ ืืช ื›ืœ ื”ื‘ืขื™ื•ืช ืฉื”ื™ื• ืœื™ ืขื ื”ืฉื ื™ื™ื ื”ืงื•ื“ืžื™ื. ื”ื ื” ื‘ืงืฆืจื” ื”ื“ื‘ืจื™ื ืฉ Openbox ืขื•ืฉื” ื ื›ื•ืŸ ืขื‘ื•ืจื™ ื•ืงืฆืช ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืœืžื™ ืฉืจื•ืฆื” ืœื”ืชื—ื™ืœ ืœืฉื—ืง ืื™ืชื•. ## ืžื” ื”ื‘ืขื™ื” ืฉืœืš ืขื i3? ื›ืฉืจืง ืขื‘ืจืชื™ ืœืœื™ื ื•ืงืก ื”ืฉืงืขืชื™ ื”ืจื‘ื” (ืžืื•ื“) ื–ืžืŸ ื‘ืœื™ืžื•ื“ ื•ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืฉืœ i3 ื•ื‘ืืžืช ื—ืฉื‘ืชื™ ืฉื”ืงื•ื ืกืคื˜ ืฉืœ Tiling Window Manager ื”ื•ื ื—ื™ืกื›ื•ืŸ ื’ื“ื•ืœ ื‘ื–ืžืŸ ื•ืžื—ืฉื‘ื”. ื•ื”ื•ื ื‘ืืžืช ื›ื–ื” ืœืชื•ื›ื ื™ื•ืช ืžืกื•ื™ืžื•ืช ืื‘ืœ ืขื ื”ื–ืžืŸ ืžืกืชื‘ืจ ืฉืœื ืœื›ืœ ื”ืชื•ื›ื ื™ื•ืช: ื–ื•ื, ืชื•ื›ื ื•ืช ืžืกืจื™ื ืžื™ื™ื“ื™ื™ื, ืžื ื”ืœ ืงื‘ืฆื™ื - ื›ืœ ืืœื” ืขื•ื‘ื“ื™ื ื˜ื•ื‘ ื™ื•ืชืจ ื‘ืชื•ืจ ื—ืœื•ื ื•ืช ืงื˜ื ื™ื ื•ืžื•ื“ืืœื™ื™ื ืฉืžืจื—ืคื™ื ืžืขืœ ื”ื—ืœื•ื ื•ืช ื”ืงื™ื™ืžื™ื ื›ืฉืฆืจื™ืš ืื•ืชื ื•ื ืขืœืžื™ื ื›ืฉืœื ืฆืจื™ืš ืื•ืชื. ืœ i3 ื™ืฉ ืชืžื™ื›ื” ื‘ื—ืœื•ื ื•ืช ืฆืคื™ื ืื‘ืœ ื”ื™ื ืžื•ื’ื‘ืœืช. ื–ื•ื ืืฃ ืคืขื ืœื ืขื‘ื“ ืœื™ ืฉื ื˜ื•ื‘ ื•ื—ืœื•ื ื•ืช ื ืขืœืžื• ื›ืœ ื”ื–ืžืŸ, ื•ื’ื ืชื•ื›ื ื•ืช ืื—ืจื•ืช ื”ืชื ื”ื’ื• ื‘ื“ืจื›ื™ื ื™ืฆื™ืจืชื™ื•ืช ืžื“ื™ ืคืขื. ื‘ืชื™ืื•ืจื™ื” ืืคืฉืจ ืœืขืฉื•ืช ื”ืจื‘ื” ืขื‘ื•ื“ืช ื”ื›ื ื” ื•ืœื”ื’ื“ื™ืจ ืžืจืืฉ ืื™ื–ื” ื—ืœื•ื ื•ืช ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืชืžื™ื“ ืฆืคื™ื ื•ืื™ื–ื” ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืชืžื™ื“ Tiled, ืื‘ืœ ื‘ืคื•ืขืœ ื–ื” ืขื‘ื“ ืจืง ืจื•ื‘ ื”ื–ืžืŸ. ื‘ืขื™ื” ื ื•ืกืคืช ืฉื”ื™ืชื” ืœื™ ืขื i3 ืงืฉื•ืจื” ืœืžืขื‘ืจ ื‘ื™ืŸ Workspaces. ืžืื—ืจ ื•ื›ืœ ืžืกืš ืžื—ื•ืœืง ืœืืจื™ื—ื™ื ืื– ืขืฉื™ืชื™ ืœื™ ื”ืจื’ืœ ืœืฉื™ื ืืคืœื™ืงืฆื™ื•ืช ืžืกื•ื™ืžื•ืช ื‘ Workspaces ืžืกื•ื™ืžื™ื. ื”ื‘ืขื™ื” ืฉืื ื™ ืœื ื”ื‘ืŸ ืื“ื ื”ื›ื™ ืžืกื•ื“ืจ ื‘ืขื•ืœื ื•ืžื”ืจ ืžืื•ื“ ื”ืืคืœื™ืงืฆื™ื•ืช ื”ื™ื• ืžื•ืฆืื•ืช ืืช ื”ื“ืจืš ืœ Workspaces ืื—ืจื™ื - ื•ื›ืš ืžืฆืืชื™ ืืช ืขืฆืžื™ ืžืฉื•ื˜ื˜ ื‘ื™ืŸ Workspaces ืœืžืฆื•ื ืืช ื”ื—ืœื•ื ื•ืช ืฉืจืฆื™ืชื™. ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืื—ืจื™ ื—ื•ื“ืฉื™ื ืขื i3 ื”ื•ื ืœื ื”ื•ื›ื™ื— ืชืจื•ืžื” ืžืฉืžืขื•ืชื™ืช ืœืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืฉืœื™. ืืช ื”ืžืกื•ืฃ ืžืžื™ืœื ืื ื™ ื™ื•ื“ืข ืœื—ืœืง ืœืืจื™ื—ื™ื ื‘ืืžืฆืขื•ืช tmux, ื•ืฉืืจ ื”ืชื•ื›ื ื•ืช ืขื‘ื“ื• ื™ื•ืชืจ ื˜ื•ื‘ ื‘ืชื•ืจ ื—ืœื•ื ื•ืช ืฆืคื™ื. ## ืžื” ื”ื‘ืขื™ื” ืฉืœืš ืขื gnome? ืื—ืจื™ ืฉื”ืืกื™ืžื•ืŸ ืœื’ื‘ื™ i3 ื ืคืœ ืขื‘ืจืชื™ ืœื—ืคืฉ ืžื ื”ืœ ื—ืœื•ื ื•ืช "ืฉื’ืจืชื™" ื™ื•ืชืจ ื•ื›ืžื•ื‘ืŸ ืฉื ืคืœืชื™ ืขืœ gnome. ืขื›ืฉื™ื• ื’ื ื•ื ืฉืœ ืื•ื‘ื•ื ื˜ื• ื‘ืืžืช ืžืขื•ืœื”: ื™ืฉ ืœื• ืืช ื” gnome shell ืขื ื”ืžื•ืŸ ื™ื›ื•ืœื•ืช ื•ืชื•ืกืคื™ื, ื•ืืคืฉืจ ืœื”ื’ื“ื™ืจ ืฉื ืžื™ืคื•ื™ื™ ืžืงืฉื™ื ื‘ืงืœื•ืช ื•ื‘ืืžืช ืœื”ืชืื™ื ืืช ื”ืžืจืื” ื•ื”ื”ืชื ื”ื’ื•ืช ื‘ื“ื™ื•ืง ืœืžื” ืฉืืชื ืฆืจื™ื›ื™ื. ืื—ืจื™ ืฉืกื™ื“ืจืชื™ ืืช ื›ืœ ื”ื—ืœื•ื ื•ืช ื‘ืžืงื•ื ื•ืœืžื“ืชื™ ืืช ืงื™ืฆื•ืจื™ ื”ืžืงืฉื™ื ื›ื‘ืจ ื”ื™ื™ืชื™ ืžื•ื›ืŸ ืœื—ืชื•ื ืขื ื’ื ื•ื ืขืœ ื”ืชื—ื™ื™ื‘ื•ืช ืฉื™ืžื•ืฉ ืœืขืฉืจ ืฉื ื™ื. ืื‘ืœ ืื– ื”ื•ื ื ื–ื›ืจ ืœืกืคืจ ืœื™ ืฉื›ืฉืฉืžื™ื ื›ืœ ื›ืš ื”ืจื‘ื” ื™ื›ื•ืœื•ืช ื‘ืžื ื”ืœ ื—ืœื•ื ื•ืช ืื– ื’ื ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ืœืื˜ ืœืื˜ ืชืขืœื”, ื•ืฉื›ืฉื ื•ืชื ื™ื ืœื›ืœ ืื—ื“ ืœื›ืชื•ื‘ ืชื•ืกืฃ ืœ gnome-shell ืื– ื—ืœืง ืžื”ืชื•ืกืคื™ื ื”ืืœื” ื™ื”ื™ื• ื’ืจื•ืขื™ื ื•ื™ืฉื‘ืจื• ื“ื‘ืจื™ื ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื ื•ืจื—ื•ืงื™ื. ื‘ื”ืชื—ืœื” ื—ืฉื‘ืชื™ ืœื•ื•ืชืจ ืขืœ ืชื•ืกืคื™ื ืื‘ืœ ื‘ืœืขื“ื™ื”ื ืืคืฉืจื•ื™ื•ืช ื”ืงืกื˜ื•ืžื™ื–ืฆื™ื” ืฉืœ ื’ื ื•ื ื™ื—ืกื™ืช ืžื•ื’ื‘ืœื•ืช. ืื—ืจื™ ื–ื” ื—ืฉื‘ืชื™ ืฉืื ื™ ื™ื›ื•ืœ ืœื—ื™ื•ืช ืขื ื”ืชื•ืกืคื™ื ื•ืคืฉื•ื˜ ืœืขืฉื•ืช Restart ืœ Session ื›ืœ ื›ืžื” ื™ืžื™ื. ื‘ืกื•ืฃ ื”ืžืฉื›ืชื™ ื”ืœืื” ื‘ื—ื™ืคื•ืฉื™ื. ## ืฉืœื•ื Openbox ื•ื›ื›ื” ื”ื’ืขืชื™ ืœ Openbox ืฉื”ื•ื ืฉื™ืœื•ื‘ ืžืขื ื™ื™ืŸ ื‘ื™ืŸ ื”ืฉื ื™ื™ื: ืžืฆื“ ืื—ื“ ืžื ื”ืœ ื—ืœื•ื ื•ืช ืžื™ื ื™ืžืœื™ืกื˜ื™, ื‘ืขืœ ืงื•ื‘ืฅ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืžืจื›ื–ื™ ืื—ื“ ื•ื‘ืœื™ ืฉื•ื "ืงื™ืฉื•ื˜ื™ื", ืื‘ืœ ืžืฆื“ ืฉื ื™ ืกื˜ื ื“ืจื˜ื™ ื‘ื’ื™ืฉื” ืฉืœื• ืœื—ืœื•ื ื•ืช ื•ืœื ืžืกื“ืจ ืื•ืชื ื‘ืฉื‘ื™ืœื›ื. ืคืฉื•ื˜ ืื‘ืœ ืขื•ื‘ื“. ื›ืจื’ืข ื”ื‘ืขื™ื” ื”ื™ื—ื™ื“ื” ืฉืœื™ ืขื ืื•ืคื ื‘ื•ืงืก ื”ื™ื ื”ืžืžืฉืง ื‘ Alt Tab (ื›ืœื•ืžืจ ื”ืžืขื‘ืจ ื‘ื™ืŸ ื—ืœื•ื ื•ืช) ืฉืžืฆื™ื’ ืืช ื”ื—ืœื•ื ื•ืช ืื—ื“ ืžืชื—ืช ืœืฉื ื™ ื‘ืžืงื•ื ืื—ื“ ืœื™ื“ ื”ืฉื ื™. ## ืงืฆืช ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื‘ืฉื‘ื™ืœ ืœื™ื”ื ื•ืช ืžืื•ืคื ื‘ื•ืงืก ื”ื™ื™ืชื™ ืฆืจื™ืš ืžืžืฉ ืžืขื˜ ืฉื™ื ื•ื™ื™ื ืžื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื”ืกื˜ื ื“ืจื˜ื™ืช. ื‘ืื•ืคืŸ ืจื’ื™ืœ ืงื‘ืฆื™ ื”ื”ื’ื“ืจื•ืช ื ืฉืžืจื™ื ื‘ืชื™ืงื™ื™ืช ~/.config/openbox. ืงื•ื‘ืฅ ื”ื”ื’ื“ืจื•ืช ื”ืจืืฉื™ ื ืงืจื rc.xml ื•ื™ืฉ ื’ื ืงื•ื‘ืฅ ื‘ืฉื autostart ืฉืงื•ื‘ืข ืื™ื–ื” ื™ื™ืฉื•ืžื™ื ื™ื™ืคืชื—ื• ื›ืฉืชื™ื›ื ืกื• ืœืžืขืจื›ืช. ืื’ื‘ ื‘ื ื•ืกืฃ ืืœื™ื• ืื•ืคื ื‘ื•ืงืก ื’ื ืงื•ืจื ืืช ืจืฉื™ืžืช ื”ื™ื™ืฉื•ืžื™ื ืž ~/.config/autostart ื•ื™ืจื™ืฅ ื’ื ืื•ืชื. ื‘ autostart ืฉืœื™ ืฉืžืชื™ ืจืง ืฉื•ืจื” ืื—ืช ืฉืžืคืขื™ืœื” ืืช xfce4-panel :
/usr/bin/xfce4-panel &
ื›ื™ ืื•ืคื ื‘ื•ืงืก ืขืฆืžื• ืžื’ื™ืข ื‘ืœื™ ืคืื ืœ ื•ืื ื™ ื›ืŸ ืจื’ื™ืœ ืœืื—ื“. ื‘ rc.xml ื›ื‘ืจ ื”ื•ืกืคืชื™ ืงืฆืช ื™ื•ืชืจ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื‘ืขื™ืงืจ ื‘ื—ืœืง ืฉืœ ื” keyboard ื›ื“ื™ ืœืžืคื•ืช ืžืงืฉื™ื ื—ืฉื•ื‘ื™ื. ืืœื” ื”ืžื™ืคื•ื™ื™ื ื”ืžืจื›ื–ื™ื™ื ืฉื”ื•ืกืคืชื™:
    <keybind key="A-space">
      <action name="Execute">
          <command>/home/ynon/bin/switchkblayout.sh</command>
      </action>
    </keybind>

    <keybind key="W-Left">
      <action name="Unmaximize"/>
      <action name="MoveResizeTo">
        <x>0</x>
        <y>0</y>
        <width>50%</width>
        <height>100%</height>
      </action>
    </keybind>
    <keybind key="W-Right">
      <action name="Unmaximize"/>
      <action name="MoveResizeTo">
        <x>-0</x>
        <y>0</y>
        <width>50%</width>
        <height>100%</height>
      </action>
    </keybind>
    <keybind key="W-Up">
      <action name="Maximize"/>
    </keybind>
    <keybind key="W-Down">
      <action name="Unmaximize"/>
    </keybind>

    <keybind key="XF86MonBrightnessUp">

ToCode
1 419
# ื“ื•ืงืจ: ืžื” ืฉืœื ืฆืจื™ืš ืœื“ืขืช ื”ืงื•ื‘ืฅ ื”ื‘ื ื”ื•ื ืงื•ื‘ืฅ Dockerfile ืชืงื™ืŸ ืœื’ืžืจื™ ืฉืื ื™ ืžืฉืชืžืฉ ื‘ื• ื‘ืžืฆื‘ ืคื™ืชื•ื— ืœืคืจื•ื™ืงื˜ Node.JS:
FROM node:16

WORKDIR /app
ื”ื•ื ืขื•ื‘ื“ ืื ืžืฆืžื™ื“ื™ื ืืœื™ื• ืงื•ื‘ืฅ docker-compose.yml ืฉืžืžืคื” ืืช ืชื™ืงื™ื™ืช ื”ืคืจื•ื™ืงื˜ ืœืชื™ืงื™ื™ืช /app ืขืœ ื”ืงื•ื ื˜ื™ื™ื ืจ, ืžื’ื“ื™ืจ ืืช ื”ืคืงื•ื“ื” ืœื”ืจืฆื” ื•ืคื•ืชื— ืืช ื”ืคื•ืจื˜ื™ื ื”ืžืชืื™ืžื™ื. ืื‘ืœ ื”ืžืจื—ืง ื‘ื™ืŸ ื” Dockerfile ื”ืงื˜ื ืฆ'ื™ืง ืฉืœื™ ืœ Dockerfile ืืžื™ืชื™ ืฉืœ ืžืฆื‘ ืคืจื•ื“ืงืฉืŸ ื”ื•ื ืขืฆื•ื. ื‘ืชื•ืจ ื”ืชื—ืœื” ื“ื•ืงืจืคื™ื™ืœ ืฉืœ ืคืจื•ื“ืงืฉืŸ ืฆืจื™ืš ื‘ืืžืช ืœื‘ื ื•ืช ืื™ืžื’', ื”ื•ื ืฆืจื™ืš ืœื”ืขืชื™ืง ืืช ื”ืงื‘ืฆื™ื ื”ืจืœื•ื•ื ื˜ื™ื ืžื”ืคืจื•ื™ืงื˜ ืœืชื™ืงื™ื™ืช /app, ื”ื•ื ืฆืจื™ืš ืœื”ืชืงื™ืŸ ืืช ื”ืชืœื•ื™ื•ืช ื‘ืชื•ืš ื”ืื™ืžื’' ื›ื“ื™ ืฉืœื ื™ื™ื•ื•ืฆืจื• ื‘ืขื™ื•ืช ืชืื™ืžื•ืช, ื”ื•ื ืฆืจื™ืš ืœืืชื—ืœ ืงื‘ืฆื™ื ืฉืืคืฉืจ ืœืืชื—ืœ ื‘ืขืช ื™ืฆื™ืจืช ื”ืื™ืžื’', ื”ื•ื ืฆืจื™ืš ืœื›ืœื•ืœ ืงื•ื‘ืฅ Entrypoint ืžืกื•ื“ืจ ืฉื™ื•ื›ืœ ืœื”ืจื™ืฅ ืงื•ื“ ืื™ืชื—ื•ืœ ืœืงื•ื ื˜ื™ื™ื ืจ ื›ืฉื–ื” ืขื•ืœื”, ื•ืขื•ื“ ื•ืขื•ื“. ื•ื’ื ืื—ืจื™ ืฉืชืฆืœื™ื—ื• ืœื’ืจื•ื ืœื–ื” ืœืขื‘ื•ื“ ืื ื—ื ื• ืขื“ื™ื™ืŸ ืจื—ื•ืงื™ื ืžืื•ื“ ืžื“ื•ืงืจืคื™ื™ืœ ืฉืœ ื’ื“ื•ืœื™ื - ื›ื™ ื”ื’ื“ื•ืœื™ื ืžืชื—ื™ืœื™ื ื‘ื›ืœืœ ื‘ืœื™ ื“ื™ืกื˜ืจื•, ืžื™ื™ืฆืจื™ื ื“ื•ืงืจืคื™ื™ืœ ื ืคืจื“ ืœืคื™ ืžืขืจื›ืช ื”ืคืขืœื”, ืžืงืคื™ื“ื™ื ืœื”ืฉืชืžืฉ ื›ืžื• ืฉืฆืจื™ืš ื‘ืฉื›ื‘ื•ืช ื•ื‘ Multi Stage Builds ื•ืžื‘ื™ื ื™ื ืื™ื–ื” ื—ืœืงื™ื ื‘ืื™ืžื’' ืฆืจื™ื›ื™ื ืœืืคืฉืจ ืงืกื˜ื•ืžื™ื–ืฆื™ื”. ื•ื‘ื—ื–ืจื” ืœืฉืืœื” ืžื”ื›ื•ืชืจืช- ื‘ื ื™ื™ืช Dockerfile ืžืกื•ื“ืจ ืœืคืจื•ื“ืงืฉืŸ ืœืžืขืจื›ืช ื“ื•ืจืฉืช ืžื™ื•ืžื ื•ืช ื•ื”ืฉืงืขืช ื–ืžืŸ. ื–ื• ื‘ื“ื™ื•ืง ืžื” ืฉ Devops ื™ื•ื“ืขื™ื ื•ืื•ื”ื‘ื™ื ืœืขืฉื•ืช. ื›ืžืคืชื—ื™ื ืฉื‘ื•ื ื™ื ืžืขืจื›ืช ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืœื“ืขืช ื”ื›ืœ ืขืœ Docker, ืื‘ืœ ื›ืŸ ื™ืฉ ื›ืžื” ื“ื‘ืจื™ื ืฉื‘ืœืขื“ื™ื”ื ืื ื—ื ื• ืื‘ื•ื“ื™ื: 1. ื—ืฉื•ื‘ ืœื”ื›ื™ืจ ืืช ื” "ืžื”" - ืžื” ื–ื” ืื•ืžืจ ืœืจื•ืฅ ื‘ืชื•ืš ืงื•ื ื˜ื™ื™ื ืจ, ืžื” ื”ืžื’ื‘ืœื•ืช ืฉืœ ื”ืงื•ื ื˜ื™ื™ื ืจ. 2. ื—ืฉื•ื‘ ืœื“ืขืช ืœืขื‘ื•ื“ ืขื Docker ืžืฉื•ืจืช ื”ืคืงื•ื“ื”: ืœื”ืชื—ื‘ืจ ืœืงื•ื ื˜ื™ื™ื ืจ, ืœืจืื•ืช ืืช ื”ืœื•ื’ื™ื, ืœื”ื™ื›ื ืก ืœืงื•ื ื˜ื™ื™ื ืจ ืžืกื•ื™ื ื‘ืกื‘ื™ื‘ืช ืคืจื•ื“ืงืฉืŸ, ืœื™ืฆื•ืจ Volumes ื•ืœืžื—ื•ืง ืื•ืชื, ืœื™ืฆื•ืจ ืจืฉืชื•ืช ื•ืœืžื—ื•ืง ืื•ืชืŸ, ืœืคืจืกื ืื™ืžื’' ืœืžืื’ืจ ื•ืœื”ื‘ื™ืŸ ืžื” ื–ื” ื‘ื›ืœืœ ืžืื’ืจ. ืœื”ื‘ื™ืŸ ืื™ืš ื‘ื•ื ื™ื ื•ืžื•ื—ืงื™ื ืื™ืžื’'ื™ื ื•ืงื•ื ื˜ื™ื™ื ืจื™ื, ืžื” ื ืฉืžืจ ื‘ Cache ื•ืžืชื™ ืฆืจื™ืš ืœืžื—ื•ืง ืื•ืชื•. 3. ื—ืฉื•ื‘ ืœื“ืขืช ืœืขื‘ื•ื“ ืขื docker-compose, ื›ื™ ื–ื” ื›ืœื™ ืฉื‘ืขื™ืงืจ ืžืชื›ื ืชื™ื ืžืฉืชืžืฉื™ื ื‘ื• ื›ื“ื™ ืœื™ืฆื•ืจ ืœืขืฆืžื ื• ืกื‘ื™ื‘ืช ืคื™ืชื•ื— ืžื”ื™ืจื” ืœืžืขืจื›ืช ืฉืžื•ืจื›ื‘ืช ืžื”ืจื‘ื” ืกืจื‘ื™ืกื™ื. ืฆืจื™ืš ืœื“ืขืช ืœื›ืชื•ื‘ ืืช ืงื‘ืฆื™ ื”ื”ื’ื“ืจื•ืช ืฉืœื• ื•ืœื”ื‘ื™ืŸ ืื™ื–ื” ืืคืฉืจื•ื™ื•ืช ืงืกื˜ื•ืžื™ื–ืฆื™ื” ืงื™ื™ืžื•ืช ืœื›ืœ ืกืจื‘ื™ืก. ืืชื ืจื•ืฆื™ื ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœื›ืชื•ื‘ ืงื•ื‘ืฅ ื”ื’ื“ืจื•ืช ืฉื™ื”ื™ื” ื›ืžื” ืฉื™ื•ืชืจ ืงืจื•ื‘ ืœืžืขืจื›ืช ื”ืคืจื•ื“ืงืฉืŸ ื”ืืžื™ืชื™ืช, ื›ื•ืœืœ ื”ืขื‘ืจืช ื‘ืงืฉื•ืช ื ื›ื ืกื•ืช ื“ืจืš Nginx ื•ื›ืชื™ื‘ื” ืœืœื•ื’ ืžืจื›ื–ื™. 4. ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ืื™ืš ื ืฉืžืจ ืžื™ื“ืข ืจื’ื™ืฉ, ืžื” ื–ื” Secrets ื•ืื™ืš ืœื ื”ืœ ืื•ืชื. 5. ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ืืช ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ืงื•ื ื˜ื™ื™ื ืจ ืœืื™ืžื’': ืžื” ืงื•ืจื” ื›ืฉื‘ื•ื ื™ื ืื™ืžื’'? ืžื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ืื™ืžื’'? ืžื” ืงื•ืจื” ื›ืฉืงื•ื ื˜ื™ื™ื ืจ ืขื•ืœื”? ืžื” ื–ื” Entrypoint Script ื•ืžื” ื”ื”ื‘ื“ืœ ื‘ื™ื ื• ืœื‘ื™ืŸ Dockerfile? ืื™ืš ืžื—ื›ื™ื ืฉืกืจื‘ื™ืกื™ื ืžืกื•ื™ืžื™ื ื™ื”ื™ื• ื–ืžื™ื ื™ื ืœืคื ื™ ืฉืงื•ื ื˜ื™ื™ื ืจ ืขื•ืœื”, ื•ืื™ืš ืžืจื™ืฆื™ื ืงื•ื“ ืื™ืชื—ื•ืœ ื‘ืขืœื™ื” ืฉืœ ืงื•ื ื˜ื™ื™ื ืจื™ื. 6. ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ืื™ืš ืงื•ื ื˜ื™ื™ื ืจื™ื ืžืชืงืฉืจื™ื ืื—ื“ ืขื ื”ืฉื ื™ ื•ืขื ื”ืขื•ืœื ื”ื—ื™ืฆื•ืŸ, ืขืœ ืื™ื–ื” ืจืฉืช ื”ื ืžื“ื‘ืจื™ื ื•ืื™ืš ืคื•ืชืจื™ื ื‘ืขื™ื•ืช DNS ืื• ื‘ืขื™ื•ืช ืชืงืฉื•ืจืช ื‘ื™ืŸ ืงื•ื ื˜ื™ื™ื ืจื™ื ื‘ืžืฆื‘ ืคื™ืชื•ื—. ืชื›ืกื• ืืช ืฉืฉืช ื”ืกืขื™ืคื™ื ื”ืืœื” ื•ืœืื ืฉื™ ื” Devops ืืฆืœื›ื ื™ื”ื™ื• ื—ื™ื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืงืœื™ื ื›ืฉื”ื ื™ื‘ื•ืื• ืœื”ืคื•ืš ืืช ืงื‘ืฆื™ ื” Dockerfile ื”ืงื˜ื ื™ื ืฉืชื›ืชื‘ื• ืœืงื‘ืฆื™ ื”ื’ื“ืจื•ืช ืืžื™ืชื™ื™ื, ื•ืืช ืงื‘ืฆื™ ื” docker-compose.yml ื”ืงื˜ื ื™ื ืฉืœื›ื ืœื”ื’ื“ืจื•ืช ืงื•ื‘ืจื ื˜ืก.

ToCode
1 419
ื”ืชื—ื‘ื™ืจ ืžื–ื›ื™ืจ ื›ืœ ืกืคืจื™ื™ืช ื‘ื“ื™ืงื•ืช ืื—ืจืช ื‘ืขื•ืœื, ืื‘ืœ ืื™ืŸ ื›ืžื• ืจื™ื™ืœืก ื›ื“ื™ ืœืืคืฉืจ ื›ืชื™ื‘ื” ืชืžืฆื™ืชื™ืช ื•ืžื”ื™ืจื” ืฉืœ ืงื•ื“ ื”ื‘ื“ื™ืงื•ืช. ืื ื™ ืœื ื™ื›ื•ืœ ืœื”ื‘ื˜ื™ื— ืฉื›ืœ ื”ืชื•ื›ืŸ ื™ื•ืคื™ืข ื‘ืคื•ืกื˜ื™ื ื‘ืฆื•ืจื” ื ื›ื•ื ื” ื‘ื”ืขืœืืช ื”ื’ื™ืจืกื” ื”ื‘ืื”, ืื‘ืœ ืœืคื—ื•ืช ื ื•ื›ืœ ืœื”ื™ื•ืช ื‘ื˜ื•ื—ื™ื ืฉื”ื“ืฃ ื”ืจืืฉื™ ืฉืœ ื”ื‘ืœื•ื’ ื•ื“ืฃ ืคื•ืกื˜ ื™ืขืœื• ื›ืžื• ืฉืฆืจื™ืš. ื .ื‘. ื•ืžื” ืœื’ื‘ื™ ื”ื’ื™ืจืกื”? ืื– ื”ืกื™ืคื•ืจ ื”ื•ื ืฉื”ืจื‘ื” ื–ืžืŸ ืื ื™ ืžืชื›ื ืŸ ืœื—ื–ื•ืจ ืœื”ืขื‘ื™ืจ ื•ื•ื‘ื™ื ืจื™ื ืื—ืจื™ ื”ื—ื’ื™ื. ื›ืฉื›ืชื‘ืชื™ ืืช ื”ืงื•ื“ ื”ืžืงื•ืจื™ ืฉืžืชืžืžืฉืง ืขื ื–ื•ื ื–ื” ื”ื™ื” ืœืคื ื™ ื”ืงื•ืจื•ื ื” ื•ืœืคื ื™ ื›ืœ ืืžืฆืขื™ ื”ื”ื’ื ื” ืฉืœ ื–ื•ื, ื•ื”ื™ื” ืฆืจื™ืš ืฉื™ื“ืจื•ื’ ืœืงื•ื“ ื›ื“ื™ ืฉื”ืคื’ื™ืฉื•ืช ืฉื”ื•ื ื™ื•ืฆืจ ืฉื ื™ื”ื™ื• ืžื•ื’ื ื•ืช ื‘ืกื™ืกืžื” ื•ื‘ืœื™ Waiting Room. ืขืœ ื”ื“ืจืš ืชื™ืงื ืชื™ ื‘ืื’ ื™ืฉืŸ ื‘ืื™ื ื˜ื’ืจืฆื™ื” ื”ื–ืืช ืฉืžืื•ื“ ื”ืจื’ื™ื– ืื•ืชื™: ืืฆืœื™ ื‘ืžืขืจื›ืช ืื•ืจืš ื”ืคื’ื™ืฉื” ื ืฉืžืจ ื‘ืฉืขื•ืช, ืื‘ืœ ื‘ API ืฉืœ ื–ื•ื ืฆืจื™ืš ืœื“ื•ื•ื— ืืช ืžืฉืš ื”ืคื’ื™ืฉื” ื‘ื“ืงื•ืช, ื•ืœื›ืŸ ื›ืœ ื”ืคื’ื™ืฉื•ืช ืฉื ื•ืฆืจื• ืื•ื˜ื•ืžื˜ื™ืช ื ื•ืฆืจื• ื‘ืื•ืจืš ื“ืงื” ื•ื—ืฆื™ ื‘ืžืงื•ื ืฉืขื” ื•ื—ืฆื™. ื .ื‘.ื‘. ื•ื•ื‘ื™ื ืจ? ืื™ื–ื” ื•ื•ื‘ื™ื ืจ? ื˜ื•ื‘ ืฉืฉืืœืชื. ื‘ื™ื•ื ื—ืžื™ืฉื™ ื”ื‘ื ื‘ืขืฉืจ ื‘ื‘ื•ืงืจ ืืขื‘ื™ืจ ืฉื™ืขื•ืจ ืคืชื•ื— ื‘ื–ื•ื ืขืœ vite, ื‘ื”ืžืฉืš ืœืคื•ืกื˜ ืฉื›ืชื‘ืชื™ ืขืœื™ื• ืœืคื ื™ ืžืกืคืจ ื™ืžื™ื. ืืคืฉืจ ืœืžืฆื•ื ืืช ื›ืœ ื”ืคืจื˜ื™ื ื•ืœื”ื™ืจืฉื ื‘ื“ืฃ ื”ืื™ืจื•ืข.

ToCode
1 419
# ืื™ืš ื ืฉื‘ืจ ืœื™ ืืชืžื•ืœ ื”ื‘ืœื•ื’ ื™ืฉ ืœื™ ืžืกื•ืจืช ืคื” ื‘ื‘ืœื•ื’ ืฉื›ืœ ืคืขื ืฉืื ื™ ืžืขืœื” ืขื“ื›ื•ืŸ ืœืžืขืจื›ืช ื•ืฉื•ื‘ืจ ื“ื‘ืจื™ื ืื ื™ ื›ื•ืชื‘ ืขืœ ื–ื” ืคื•ืกื˜ ืงืฆืจ. ื–ื” ืขื•ื–ืจ ืœื™ ืœืชืงืŸ ืืช ื”ื‘ืขื™ื•ืช ื‘ืฆื•ืจื” ืžืกื•ื“ืจืช ื•ืื ื™ ืžืงื•ื•ื” ืฉืขื•ื–ืจ ืœื›ื ืœืœืžื•ื“ ืžื” ืœื ืœืขืฉื•ืช. ืื ื ื™ืกื™ืชื ืœื”ื™ื›ื ืก ืœืงืจื•ื ืืช ืื—ื“ ื”ืคื•ืกื˜ื™ื ืืชืžื•ืœ ื‘ื‘ื•ืงืจ ื”ื™ื™ืชื ืคื•ื’ืฉื™ื ื‘ื“ืฃ ืฉื’ื™ืื” ืœื ืื•ืคื™ื™ื ื™. ื”ื“ืคื“ืคืŸ ื”ื™ื” ืžืกืคืจ ืœื›ื ืฉืืชื ืžื ืกื™ื ืœื’ืฉืช ืœืชื•ื›ืŸ ืœื ืžืื•ื‘ื˜ื— ื•ืœื›ืŸ ื”ื•ื ืœื ืžื•ื›ืŸ ืœื”ืžืฉื™ืš ืœื”ื›ื ื™ืก ืืชื›ื ืœืขืžื•ื“ ืฉืืชื ืจื•ืฆื™ื. ื–ื” ืžื•ื–ืจ, ื›ื™ ื›ืœ ืฉืืจ ื”ืืชืจ ื›ืŸ ืขื‘ื“ ื›ืžื• ืฉืฆืจื™ืš. ืกื™ืคื•ืจ ื”ืจืงืข ืื’ื‘ ื”ื•ื ืฉืžืžืฉ ื›ืžื” ื“ืงื•ืช ืœืคื ื™ ืฉื”ืชื—ื™ืœ ื”ื‘ืœืื’ืŸ ืื ื™ ื”ืขืœื™ืชื™ ื’ื™ืจืกื” ื—ื“ืฉื” (ืขืœื™ื” ืืกืคืจ ืงืฆืช ื‘ืกื•ืฃ ื”ืคื•ืกื˜). ืœื ืœืงื— ื”ืจื‘ื” ื–ืžืŸ ืœื”ื‘ื™ืŸ ืฉื”ืฉื’ื™ืื” ืงืฉื•ืจื” ืœื’ื™ืจืกื” ื”ื—ื“ืฉื”, ืื‘ืœ ืื™ืš ื‘ื“ื™ื•ืง? ื”ืœื•ื’ ืœื ื”ืจืื” ืฉื•ื ื“ื‘ืจ ื—ืฉื•ื“ ืื– ืขื‘ืจืชื™ ืœื”ืขืœื•ืช ืืช ื”ืžืขืจื›ืช ืžืงื•ืžื™ืช ืืฆืœื™ ืขืœ ื”ืžื›ื•ื ื” ื‘ืžืฆื‘ ืคื™ืชื•ื— ื•ื ื™ืกื™ืชื™ ืœื”ื™ื›ื ืก ืœื‘ืœื•ื’. ืคื” ื›ื‘ืจ ืฉืžืขืชื™ ืืช ื”ื‘ื•ื. ื”ื•ื ื ืจืื” ื‘ืขืจืš ื›ืš:
/var/lib/gems/1.9.1/gems/nokogumbo-1.1.2/lib/nokogumbo.rb:24: [BUG] Segmentation fault
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0026 p:---- s:0094 b:0094 l:000093 d:000093 CFUNC  :parse
c:0025 p:0094 s:0090 b:0090 l:000089 d:000089 METHOD /var/lib/gems/1.9.1/gems/nokogumbo-1.1.2/lib/nokogumbo.rb:24
c:0024 p:0021 s:0086 b:0086 l:000085 d:000085 METHOD /var/lib/gems/1.9.1/gems/nokogumbo-1.1.2/lib/nokogumbo.rb:8
c:0023 p:0016 s:0082 b:0082 l:001fb8 d:000081 EVAL   (irb):4
c:0022 p:---- s:0080 b:0080 l:000079 d:000079 FINISH
c:0021 p:---- s:0078 b:0078 l:000077 d:000077 CFUNC  :eval
c:0020 p:0028 s:0071 b:0071 l:000070 d:000070 METHOD /usr/lib/ruby/1.9.1/irb/workspace.rb:80
c:0019 p:0033 s:0064 b:0063 l:000062 d:000062 METHOD /usr/lib/ruby/1.9.1/irb/context.rb:254
c:0018 p:0031 s:0058 b:0058 l:001b48 d:000057 BLOCK  /usr/lib/ruby/1.9.1/irb.rb:159
c:0017 p:0042 s:0050 b:0050 l:000049 d:000049 METHOD /usr/lib/ruby/1.9.1/irb.rb:273
c:0016 p:0011 s:0045 b:0045 l:001b48 d:000044 BLOCK  /usr/lib/ruby/1.9.1/irb.rb:156
c:0015 p:0144 s:0041 b:0041 l:000024 d:000040 BLOCK  /usr/lib/ruby/1.9.1/irb/ruby-lex.rb:243
c:0014 p:---- s:0038 b:0038 l:000037 d:000037 FINISH
c:0013 p:---- s:0036 b:0036 l:000035 d:000035 CFUNC  :loop
c:0012 p:0009 s:0033 b:0033 l:000024 d:000032 BLOCK  /usr/lib/ruby/1.9.1/irb/ruby-lex.rb:229
c:0011 p:---- s:0031 b:0031 l:000030 d:000030 FINISH
c:0010 p:---- s:0029 b:0029 l:000028 d:000028 CFUNC  :catch
c:0009 p:0023 s:0025 b:0025 l:000024 d:000024 METHOD /usr/lib/ruby/1.9.1/irb/ruby-lex.rb:228
c:0008 p:0046 s:0022 b:0022 l:001b48 d:001b48 METHOD /usr/lib/ruby/1.9.1/irb.rb:155
c:0007 p:0011 s:0019 b:0019 l:000fd8 d:000018 BLOCK  /usr/lib/ruby/1.9.1/irb.rb:70
c:0006 p:---- s:0017 b:0017 l:000016 d:000016 FINISH
c:0005 p:---- s:0015 b:0015 l:000014 d:000014 CFUNC  :catch
c:0004 p:0183 s:0011 b:0011 l:000fd8 d:000fd8 METHOD /usr/lib/ruby/1.9.1/irb.rb:69
c:0003 p:0039 s:0006 b:0006 l:0008b8 d:0011c8 EVAL   /usr/bin/irb:12
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0008b8 d:0008b8 TOP   
ืื– ื”ืœื›ืชื™ ืœื‘ื“ื•ืง ืžื™ ื–ื” ื”ื ื•ืงื•ื’ื•ืžื‘ื• ื”ื–ื” ื•ืžืกืชื‘ืจ ืฉื–ื” ื’'ื ืฉืžืฉืชืžืฉื™ื ื‘ื• ืžื’'ื ืฉื ืงืจื sanity ื•ื‘ื• ืื ื™ ืžืฉืชืžืฉ ื›ื“ื™ ืœื ืงื•ืช ืชื•ื•ื™ HTML ืœืคื ื™ ืฉืื ื™ ืžื›ื ื™ืก ืื•ืชื ืœืžืกืš. ื”ืชื™ืงื•ืŸ? ื‘ืจื’ืข ืฉืื ื—ื ื• ืžื‘ื™ื ื™ื ื•ืžื•ืฆืื™ื ืืช ื”ื‘ืขื™ื” ื–ื” ื”ื—ืœืง ื”ืงืœ - ืคืฉื•ื˜ ืžืฉื“ืจื’ื™ื ื’ื™ืจืกื” ืฉืœ Sanity ื•ื”ื›ืœ ื”ืชื—ื™ืœ ืœืขื‘ื•ื“. ืœื ืคื—ื•ืช ืžืขื ื™ื™ืŸ ืžื”ืชื™ืงื•ืŸ ื–ื” ืžื” ืขื•ืฉื™ื ื›ื“ื™ ืฉื”ื‘ืขื™ื” ืœื ืชืงืจื” ืคืขื ื”ื‘ืื” ืฉืื ื™ ืžืขืœื” ื’ื™ืจืกื”. ืื– ื™ืฉ ืœื™ ืกื˜ ื‘ื“ื™ืงื•ืช ืžืกื•ื™ื ืขืœ ื”ืืชืจ ืฉื‘ื•ื“ืง flow-ื™ื ืžืจื›ื–ื™ื™ื ื›ืžื• ืฉื”ืงื•ืจืกื™ื ืขื•ื‘ื“ื™ื, ืื‘ืœ ื”ืืžืช ืฉืขื“ ืขื›ืฉื™ื• ืœื ื—ืฉื‘ืชื™ ืฉื”ื‘ืœื•ื’ ื™ื™ืฉื‘ืจ ื•ื‘ืืžืช ืœื ื”ื™ืชื” ืขืœื™ื• ืืฃ ื‘ื“ื™ืงื”. ืื ื™ ืื•ื”ื‘ ืœื›ืชื•ื‘ ื‘ื“ื™ืงื•ืช ืขืœ ืชืจื—ื™ืฉื™ื ืฉื ืฉื‘ืจื™ื ื•ืจืง ืื—ืจื™ ืฉื“ื‘ืจื™ื ื ืฉื‘ืจื™ื ื›ื™ ืื—ืจืช ืœื ื™ื•ืฆืื™ื ืžื–ื”, ืื– ื›ื‘ืจ ืขื ื”ืชื™ืงื•ืŸ ื”ื•ืกืคืชื™ ืืช ืงื•ื‘ืฅ ื”ื‘ื“ื™ืงื•ืช ื”ื‘ื:
# coding: utf-8
require 'rails_helper'

describe 'Blog', type: :system do
  before do
    create(:blog_post, slug: 'post1', title: 'post 1')
    create(:blog_post, slug: 'post2', title: 'post 2')
  end

  it 'shows index page' do
    visit blog_index_path
    expect(page).to have_title 'tocode | ื”ื‘ืœื•ื’ ืฉืœ ื™ื ื•ืŸ ืคืจืง'
  end

  it 'shows a post page' do
    visit blog_path(id: :post1)
    expect(page).to have_title 'tocode | post 1'
  end
end

ToCode
1 419
ื”ื™ ื—ื‘ืจื™ื ืœืคื ื™ ื›ืžื” ื™ืžื™ื ื›ืชื‘ืชื™ ื›ืืŸ ืขืœ ื”ื›ืœื™ vite ืฉืžืืคืฉืจ ื—ื•ื•ื™ืช ืคื™ืชื•ื— ื˜ื•ื‘ื” ื•ืžื”ื™ืจื” ื™ื•ืชืจ ืœืคืจื•ื™ืงื˜ื™ ื•ื•ื‘ ื‘ืฉื‘ื•ืข ื”ื‘ื ื™ื•ื ื—ืžื™ืฉื™ ื‘ืขืฉืจ ื‘ื‘ื•ืงืจ ืืขื‘ื™ืจ ื•ื•ื‘ื™ื ืจ ืฉืœ ืฉืขื” ื‘ื• ืืจืื” ืืช ื”ื›ืœื™, ื‘ืžื” ื”ื•ื ืฉื•ื ื” ืž webpack ื•ืื™ืš ื”ื•ื ืขื•ื–ืจ ืœื›ื ืœืคืชื— ื™ื•ืชืจ ื‘ืงืœื•ืช ืคืจื•ื™ืงื˜ื™ื. ืื ื‘ื ืœื›ื ืœื”ืฆื˜ืจืฃ (ื–ื” ื—ื™ื ื, ืชื”ื™ื” ื’ื ื”ืงืœื˜ื”) ืžื•ื–ืžื ื™ื ื“ืจืš ื”ืงื™ืฉื•ืจ: https://www.tocode.co.il/workshops/106