<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gtypist on Лаборатория Баз знаний</title><link>https://rabrain.ru/tags/gtypist/</link><description>Recent content in Gtypist on Лаборатория Баз знаний</description><generator>Hugo</generator><language>ru</language><lastBuildDate>Tue, 21 Jul 2026 08:30:41 +0300</lastBuildDate><atom:link href="https://rabrain.ru/tags/gtypist/index.xml" rel="self" type="application/rss+xml"/><item><title>Создание собственных уроков для GNU Typist</title><link>https://rabrain.ru/special/handbook/linux/gtypist/</link><pubDate>Mon, 20 Jul 2026 17:24:48 +0300</pubDate><guid>https://rabrain.ru/special/handbook/linux/gtypist/</guid><description>&lt;h2 id="создание-собственных-уроков-для-gnu-typist"&gt;Создание собственных уроков для GNU Typist&lt;a class="td-heading-self-link" href="#%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d1%81%d0%be%d0%b1%d1%81%d1%82%d0%b2%d0%b5%d0%bd%d0%bd%d1%8b%d1%85-%d1%83%d1%80%d0%be%d0%ba%d0%be%d0%b2-%d0%b4%d0%bb%d1%8f-gnu-typist" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Это руководство объясняет, как создавать собственные уроки для программы GNU Typist (gtypist). Уроки создаются с помощью простого скриптового языка, что позволяет легко их модифицировать и адаптировать под любые нужды .&lt;/p&gt;
&lt;h3 id="структура-файла-уроков"&gt;Структура файла уроков&lt;a class="td-heading-self-link" href="#%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b0-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d1%83%d1%80%d0%be%d0%ba%d0%be%d0%b2" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Файл уроков имеет расширение &lt;code&gt;.typ&lt;/code&gt; и состоит из строк, каждая из которых начинается с однобуквенной команды, за которой следует двоеточие (&lt;code&gt;:&lt;/code&gt;) и данные команды.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-typ" data-lang="typ"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a40000"&gt;#&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Это&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;комментарий.&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Строки,&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;начинающиеся&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;с&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&amp;#39;&lt;span style="color:#a40000"&gt;#&lt;/span&gt;&amp;#39;,&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;игнорируются.&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a40000"&gt;*&lt;/span&gt;:НАЧАЛО&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#a40000"&gt;#&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Это&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;метка.&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Она&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;должна&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;быть&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;уникальной&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;в&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;файле.&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;B:Мой&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;тренажёр&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#a40000"&gt;#&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Отображает&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;баннер&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;в&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;верхней&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;части&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;экрана.&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;T:Это&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;текст&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;урока.&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#a40000"&gt;#&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Отображает&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;текст&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;и&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;ждёт&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;нажатия&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;клавиши.&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;:Это&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;продолжение&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;текста&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;урока.&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;I:Краткая&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;инструкция.&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#a40000"&gt;#&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Отображает&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;инструкцию&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;перед&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;упражнением.&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;D:asdf&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;jkl;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;&lt;span style="color:#a40000"&gt;#&lt;/span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Упражнение-тренировка&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;(drill).&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;Нужно&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;печатать&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;в&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;промежуточных&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;строках.&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;:qwer&lt;span style="color:#f8f8f8"&gt; &lt;/span&gt;uiop&lt;span style="color:#f8f8f8"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="основные-команды"&gt;Основные команды&lt;a class="td-heading-self-link" href="#%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d1%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th style="text-align: left"&gt;Команда&lt;/th&gt;
					&lt;th style="text-align: left"&gt;Описание&lt;/th&gt;
					&lt;th style="text-align: left"&gt;Пример&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;#&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;Комментарий. Вся строка игнорируется.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;# Это комментарий&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;*&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;Метка. Точка перехода для команд &lt;code&gt;G&lt;/code&gt;, &lt;code&gt;Y&lt;/code&gt;, &lt;code&gt;N&lt;/code&gt;, &lt;code&gt;F&lt;/code&gt;.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;*:УРОК_1&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;B&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Banner&lt;/strong&gt; (Баннер). Очищает экран и отображает текст в верхней строке.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;B:Основы слепой печати&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;T&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Tutorial&lt;/strong&gt; (Урок). Отображает многострочный текст и ждёт нажатия любой клавиши для продолжения.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;T:Это обучающий текст.&lt;/code&gt;&lt;br&gt;&lt;code&gt; :Он может занимать несколько строк.&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;I&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Instruction&lt;/strong&gt; (Инструкция). Отображает до двух строк инструкции над упражнением. Не ждёт нажатия клавиши.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;I:Напечатайте строку ниже:&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;D&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Drill&lt;/strong&gt; (Тренировка). Основное упражнение, где текст отображается в каждой второй строке, а пользователь печатает в промежуточных.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;D:aaa sss ddd fff&lt;/code&gt;&lt;br&gt;&lt;code&gt; :jjj kkk lll ;;;&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Practice-only drill&lt;/strong&gt;. То же, что и &lt;code&gt;D&lt;/code&gt;, но пользователь не обязан повторять упражнение при большом количестве ошибок.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;d:тренировочный текст&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;S&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Speed test&lt;/strong&gt; (Тест скорости). Текст отображается на экране, и пользователь печатает поверх него. Ошибки можно исправлять, но они учитываются.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;S:Это предложение для теста скорости.&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Practice-only speed test&lt;/strong&gt;. Аналогично &lt;code&gt;S&lt;/code&gt;, но без обязательного повторения.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;s:Текст для практики.&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;G&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Go to label&lt;/strong&gt; (Перейти к метке). Безусловный переход к указанной метке.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;G:СЛЕДУЮЩИЙ_УРОК&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;Q&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Question&lt;/strong&gt; (Вопрос). Отображает вопрос и ждёт ввода &lt;code&gt;Y&lt;/code&gt; или &lt;code&gt;N&lt;/code&gt;.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;Q:Повторить урок? (Y/N)&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;Y&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Yes&lt;/strong&gt; (Да). Переход к метке, если на последний вопрос &lt;code&gt;Q&lt;/code&gt; был дан ответ &lt;code&gt;Y&lt;/code&gt;.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;Y:ПОВТОР&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;N&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;No&lt;/strong&gt; (Нет). Переход к метке, если на последний вопрос &lt;code&gt;Q&lt;/code&gt; был дан ответ &lt;code&gt;N&lt;/code&gt;.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;N:СЛЕДУЮЩИЙ&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;M&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Menu&lt;/strong&gt; (Меню). Создаёт меню для навигации.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;M: UP=ВЫХОД &amp;quot;Главное меню&amp;quot;&lt;/code&gt;&lt;br&gt;&lt;code&gt; :УРОК_1 &amp;quot;Урок 1&amp;quot;&lt;/code&gt;&lt;br&gt;&lt;code&gt; :УРОК_2 &amp;quot;Урок 2&amp;quot;&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;X&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Exit&lt;/strong&gt; (Выход). Завершает программу.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;X:&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;E&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Error rate&lt;/strong&gt; (Допустимый процент ошибок). Устанавливает максимальный процент ошибок для упражнения.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;E:5.0%&lt;/code&gt;&lt;br&gt;&lt;code&gt;E:2.0%*&lt;/code&gt; (действует для всех последующих упражнений)&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;F&lt;/code&gt;&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;strong&gt;Failure label&lt;/strong&gt; (Метка при неудаче). Указывает метку, куда переходить при провале упражнения.&lt;/td&gt;
					&lt;td style="text-align: left"&gt;&lt;code&gt;F:ПОВТОР&lt;/code&gt;&lt;br&gt;&lt;code&gt;F:ЗАВЕРШЕНИЕ*&lt;/code&gt; (действует для всех последующих упражнений)&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="пошаговое-руководство-по-созданию-урока"&gt;Пошаговое руководство по созданию урока&lt;a class="td-heading-self-link" href="#%d0%bf%d0%be%d1%88%d0%b0%d0%b3%d0%be%d0%b2%d0%be%d0%b5-%d1%80%d1%83%d0%ba%d0%be%d0%b2%d0%be%d0%b4%d1%81%d1%82%d0%b2%d0%be-%d0%bf%d0%be-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d1%8e-%d1%83%d1%80%d0%be%d0%ba%d0%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="1-создание-файла"&gt;1. Создание файла&lt;a class="td-heading-self-link" href="#1-%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d0%bd%d0%b8%d0%b5-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Создайте новый текстовый файл с расширением &lt;code&gt;.typ&lt;/code&gt;, например, &lt;code&gt;moj_urok.typ&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>