SitePages

Saturday, April 29, 2023

gif для wordpress з послідовним відтворенням команд як в терміналі

Існують різні плагіни для WordPress, які дозволяють відтворювати послідовність команд у блоках коду. Один з них - WP-CLI Beautiful CLI. Цей плагін дозволяє вставляти блоки коду з командами, які будуть відтворюватися в терміналі в режимі реального часу. Є також інші плагіни, такі як Termify та WP Shell, які також забезпечують схожі функції.

Або можна зробити вручну декількома способами.

Щоб зробити gif з послідовним відтворенням команд як в терміналі, вам знадобиться записати екран терміналу у вигляді відео та конвертувати його у формат gif. Ось декілька кроків, які вам допоможуть:


1. Відкрийте термінал та виконайте потрібні команди, які ви хочете записати.

2. Встановіть програму для запису екрану, таку як OBS Studio або ScreenToGif.

3. Налаштуйте програму для запису екрану таким чином, щоб вона записувала тільки потрібну частину екрану, на якій знаходиться термінал.

4. Виконайте команди, які ви хочете записати, та зупиніть запис екрану.

5. Конвертуйте відео у формат gif, використовуючи програму для створення gif, таку як Ezgif.com або Giphy.

6. Вставте gif-файл на вашу сторінку WordPress, використовуючи стандартну функціональність додавання зображень.

Зауважте, що для збільшення якості gif-файлу, ви можете скористатися додатковими налаштуваннями конвертування у програмі для створення gif, такими як зменшення кількості кадрів на секунду або збільшення кількості кольорів у палітрі.


Це може бути реалізовано за допомогою HTML, CSS та JavaScript. Можна використати бібліотеку, наприклад, TypewriterJS або інші, щоб відтворити набір тексту у блоку коду, як у терміналі.


Ось приклад коду на HTML та JavaScript, який можна використати для цієї мети:


```html

<div class="terminal">

  <div class="header">

    <div class="button red"></div>

    <div class="button yellow"></div>

    <div class="button green"></div>

  </div>

  <div class="body">

    <p><span class="user">user@localhost:</span><span class="directory">~$</span><span class="command">ls</span></p>

  </div>

</div>

```


```javascript

const commands = [

  "file1.txt",

  "file2.txt",

  "file3.txt",

  "file4.txt",

  "file5.txt"

];


const body = document.querySelector('.terminal .body');


function writeCommand(command) {

  const p = document.createElement('p');

  const userSpan = document.createElement('span');

  const directorySpan = document.createElement('span');

  const commandSpan = document.createElement('span');

  

  userSpan.classList.add('user');

  userSpan.innerText = 'user@localhost:';

  directorySpan.classList.add('directory');

  directorySpan.innerText = '~/';

  commandSpan.classList.add('command');

  

  p.appendChild(userSpan);

  p.appendChild(directorySpan);

  p.appendChild(commandSpan);

  body.appendChild(p);

  

  const typewriter = new TypewriterJS(commandSpan, {

    delay: 80,

    deleteSpeed: 40,

  });

  

  typewriter.typeString(command)

    .start();

}


commands.forEach((command, index) => {

  setTimeout(() => {

    writeCommand(command);

  }, 2000 * index);

});

```


У цьому коді ми створили блок коду та додали кнопки для закриття, максимізації та мінімізації. Далі, ми створили функцію `writeCommand`, яка приймає команду, яку потрібно відтворити. Ми створили елементи `span` для різних частин команди (користувач, директорія та команда) та додали їх до нового елемента `p`. Потім ми створили новий об'єкт `TypewriterJS` та використали його, щоб відтворити команду, використовуючи анімацію письма. Нарешті, ми запустили цю функцію для кожної команди в масиві команд, використовуючи `setTimeout`, щоб затримати виконання кожної ком