Skip to content

san-smith/USSRHTML

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

USSRHTML

USSRHTML - это компилятор для языка гипертекстовой разметки (ЯГТР), написанный на python.

Компилятор принимает код на языке ЯГТР и выдает файл с кодом на HTML.

ЯГТР - это фантазия на тему того, что было бы, если бы интернет придумали в СССР. Особенность данного языка - все вводимые команды должны быть доступны на стандартной ЙЦУКЕН клавиатуре, т.е. для ввода команд не нужно переключаться на английскую раскладку. Кроме того, вместо двойных тегов типа <body>...</body> используются команды вида \тело(...), что упрощает набор текста.

Некоторые команды имеют "короткую" и "длинную" запись. Например, команды \абзац и фактически являются одной и той же командой и переводятся в тег <p>.

Редактор ЯГТР

Синтаксис ЯГТР

Исходный код файла должен иметь следующую структуру:

\голова(...)
\тело(...)

Тег \голова() является необязательным, \тело() - обязательный. Содержимое документа пишется внутри скобок "\тело(" и ")".

Служебные символы

Для ввода служебных символов используется символ \:

  • % - введите \%
  • \ - введите \\
  • ( - введите \( (это связано с тем, что символ ( используется как левая граница команд)
  • ) - введите \) (это связано с тем, что символ ) используется как правая граница команд)

Команды заголовочной части

\стиль - Стиль.
Команда \стиль применяется для определения стилей элементов веб-страницы. \стиль необходимо использовать внутри контейнера \голова. Можно задавать более чем одну команду \стиль.

\мета - Мета-информация.
\мета определяет метатеги, которые используются для хранения информации предназначенной для браузеров и поисковых систем. Например, механизмы поисковых систем обращаются к метатегам для получения описания сайта, ключевых слов и других данных. Разрешается использовать более чем один метатег, все они размещаются в контейнере \голова. Как правило, атрибуты любого метатега сводятся к парам «имя=значение», которые определяются ключевыми словами content, name или http-equiv.

\титул - Заголовок документа.
Определяет заголовок документа. Элемент \титул не является частью документа и не показывается напрямую на веб-странице. Допускается использовать только один тег \титул на документ и размещать его в контейнере \голова.

\скрипт - Скрипт.
Тег \скрипт предназначен для описания скриптов, может содержать ссылку на программу или ее текст на определенном языке. Скрипты могут располагаться во внешнем файле и связываться с любым HTML-документом.

Команды тела документа

% - Комментарий.
Комментарий начинается с символа % и действует до конца строки

\абзац - Абзац.
Абзац обозначается с помощью команды \пар(...какой-то текст...) Короткая запись этой команды записывается так:

- Полужирный текст.
Полужирный текст выделяется с помощью команды \ж(...какой-то текст...)

- Курсив.
Текст выделяется курсивом с помощью команды \к(...какой-то текст...)

\ссылка - Ссылка.
Команда предназначена для создания ссылок. \ссылка::href="адрес_страницы::(текст ссылки). Короткая версия: .

\пдч - Подчеркнутый текст.
Добавляет подчеркивание к тексту. \пдч(...какой-то текст...)

\зч - Зачеркнутый текст.
Отображает текст как перечеркнутый. \зч(...какой-то текст...)

\под - Подстрочный текст.
Отображает шрифт в виде нижнего индекса. Текст при этом располагается ниже базовой линии остальных символов строки и уменьшенного размера. \под(...какой-то текст...)

\над - Надстрочный текст.
Отображает шрифт в виде верхнего индекса. Шрифт при этом отображается выше базовой линии текста и уменьшенного размера. \над(...какой-то текст...)

\зг1 ... \зг6 - Заголовки.
HTML предлагает шесть заголовков разного уровня, которые показывают относительную важность секции, расположенной после заголовка. Так, тег <h1> представляет собой наиболее важный заголовок первого уровня, а тег <h6> служит для обозначения заголовка шестого уровня и является наименее значительным. В ЯГТР для реализации заголовков также есть шесть комманд, которые соответствуют заголовкам HTML: \зг1, \зг2, \зг3, \зг4, \зг5, \зг6

\рис - Изображение.
Элемент рис предназначен для отображения на веб-странице изображений в графическом формате GIF, JPEG, SVG или PNG. Адрес файла с картинкой задаётся через атрибут src.

\блок - Блок-контейнер.
Элемент \блок является универсальным блочным элементом и предназначен для группирования элементов документа с целью изменения вида содержимого через стили.

\мсп - Маркированный список.
Тег \мсп устанавливает маркированный список. Каждый элемент списка должен начинаться с тега \эл.

\нсп - Нумерованный список.
Тег \мсп устанавливает нумерованный список. Каждый элемент списка должен начинаться с тега \эл.

\эл - Элемент списка.
Тег \эл определяет отдельный элемент списка.

\связка - Связь с внешними элементами.
Устанавливает связь с внешним документом вроде файла со стилями или со шрифтами.

\адрес - Адрес.
Тег \адрес предназначен для хранения информации об авторе и может включать в себя любые элементы ЯГТР вроде ссылок, текста, выделений и т.д.

\таблица - Таблица.
Элемент \таблица служит контейнером для элементов, определяющих содержимое таблицы. Любая таблица состоит из строк и ячеек, которые задаются с помощью тегов \строка или \стр и \стобец или \стлб. Короткая запись: \табл.

\строка - Строка.
Тег \строка служит контейнером для создания строки таблицы. Короткая запись: \стр.

\столбец - Столбец.
Предназначен для создания одной ячейки таблицы. Короткая запись: \стлб.

\нс - Новая строка.
Тег \нс устанавливает перевод строки в том месте, где этот тег находится.

\пре - Преформатированный текст.
Элемент \пре определяет блок предварительно форматированного текста. Такой текст отображается обычно моноширинным шрифтом и со всеми пробелами между словами. По умолчанию, любое количество пробелов идущих в коде подряд, на веб-странице показывается как один.

\код - Код.
Тег \код предназначен для отображения одной или нескольких строк текста, который представляет собой программный код. Сюда относятся имена переменных, ключевые слова, тексты функции и т.д. Браузеры обычно отображают содержимое контейнера \код как моноширинный текст уменьшенного размера.

\цитата - Цитата.
Тег \цитата помечает текст как цитату или сноску на другой материал.

\заголовок - Заголовок.
Тег \заголовок задает «шапку» сайта или раздела, в которой обычно располагается заголовок.

\нав - Навигация.
Тег \нав задает навигацию по сайту.

\секция - Секция.
Задаёт раздел документа, может применяться для блока новостей, контактной информации, глав текста, вкладок в диалоговом окне и др. Раздел обычно содержит заголовок.

\ремарка - Ремарка.
Определяет блок сбоку от контента для размещения рубрик, ссылок на архив, меток и другой информации. Такой блок, как правило, называется «сайдбар» или «боковая панель».

\подвал - Подвал.
Тег \подвал задаёт «подвал» сайта или раздела, в нём может располагаться имя автора, дата документа, контактная и правовая информация.

\статья - Статья.
Тег \статья задает содержание сайта вроде новости, статьи, записи блога, форума или др.

\аббр - Аббревиатура.
Тег \аббр указывает, что последовательность символов является аббревиатурой. С помощью атрибута title дается расшифровка сокращения, что позволяет понимать аббревиатуру тем людям, которые с ней не знакомы.

\форма - Форма.
Тег \форма устанавливает форму на веб-странице. Форма предназначена для обмена данными между пользователем и сервером.

\ввод - Ввод.
Тег \ввод является одним из разносторонних элементов формы и позволяет создавать разные элементы интерфейса и обеспечить взаимодействие с пользователем. Главным образом \ввод предназначен для создания текстовых полей, различных кнопок, переключателей и флажков.

\холст - Холст.
Создает область, в которой при помощи JavaScript можно рисовать разные объекты, выводить изображения, трансформировать их и менять свойства.

\аудио - Аудио.
Добавляет, воспроизводит и управляет настройками аудиозаписи на веб-странице.

\видео - Видео.
Добавляет, воспроизводит и управляет настройками видеоролика на веб-странице.

Атрибуты команд

Атрибуты команд можно ввести с помощью конструкции вида:
\команда::атрибуты_и_их_значения::(какой-то текст)

Атрибуты должны быть описаны в синтаксисе html.

Пример:
\пар::style="color: green; font-size: 2em"::(Этот текст будет зеленым)

Привет, Мир!

Минимальный текст, который может быть скомпилирован, выглядит примерно так:

\тело(Привет, Мир!)

Выходной файл будет иметь вид:

<html>
<body>
Привет, Мир!
</body>
</html>

Запуск

Командная строка

Для запуска из коммандной строки выполните:

$python <путь-к-файлу>/HTMLUSSR.py <путь-к-файлу-с-текстом-на-ЯГТР>/<имя-файла>.txt

ЯГТР-редактор на Python

В папке расположен файл YaGTR.pyw, который является редактором кода с подсветкой синтаксиса и возможностью компиляции/запуска, написанный на python с использованием PyQt5. Для использования этого редактора необходимо, чтобы был установлен пакет PyQt5.

ЯГТР-редактор на С Sharp

Файл YaGTREditor.exe является ещё одним редактором кода с подсветкой синтаксиса для ЯГТР. Написан с использованием FastColoredTextBox.

Редактор ЯГТР

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages