Do you not know Russian? English Chinese
Поделится: В Telegram
Это официальная документация RussiaScript.
Она придерживается RussiaScript 1.2.
RussiaScript не является экспериментальным языком программирования и не является альтернативной JavaScript/TypeScript. RussiaScript предназначен для web-разработчки на русском языке
оставить информацию о своих проектах можно тут: https://github.com/shaman2016scratch/Docs/issues/1
Каждый код RussiaScript содержит этот код:
{
"libs": [],
"terminal": {},
"code": [],
}
Давайте разберём каждый элемент: libs — массив используемых библиотек
terminal — для выполнения одной команды терминала RussiaScript, вот пример содержимого этого объекта: {"com":"get os","par":""}, com — комманда терминала RussiaScript, par — параменты команды
code — массив строк кода
Один элемент массива code это объект в виде {"command":"команда","params":{"пример":"да"}}
В этой документации в встретите такие слова как репортёры, репортёры это типы данных RussiaScript, они могут использоваться в типах и командах RussiaScript.
Также тут немного будет описана структура исходного кода RussiaScript.
RussiaScript написан на JavaScript 9-летним программистом из Марий-Эл который знает web (html + css), JavaScript а также является Скретчером, он известен как SHAMAN2016 а его реальное имя — Ильхам.
RussiaScript написан на браузерном JavaScript но не на Node.js или TypeScript или чем-то ещё. node.js не поддерживает RussiaScript из-за использования браузерных Api
В этой документации будут все типы в RussiaScript, команды а также будет описан терминал RussiaScript.
Расширение файлов RussiaScript — .rsf (RussiaScript File)
Значок RussiaScript:
RussiaScript сделан 22 октября 2025 года, 23:38:54
Команда вывести выводит в внутренний output RussiaScript определённый текст, получить output RussiaScript можно с помощью специального типа.
В params указывается объект с ключем 'Текст вывода' в котором указан текст вывода в виде типа
Очищает внутренний RussiaScript output, output RussiaScript хранится в массиве
Отправляет запрос на адрес, ответ никуда не записывается, типы не обрабатываюся
в params находится объект с ключами 'url' для указания url и 'params' для указания параментов http-запроса
Для взаимодействия с Html-документом.
в params: метод — выбор метода из TextContent и innerHTML, элемент — id/класс html-элемента, значение — что задать
Задаёт переменной значение
В params: per — переменная, value — значение
Для импорта расширения. УСТАРЕЛО
Для вывода в консоль браузера
В params: метод — выбрать метод лога: лог, ошибка или предупреждение, значение — содержимое лога
Команда для выполнения конкретного кода если верно иначе другого конкретного кода
в params: bol — оператор для получения значения, то — код RussiaScript если условие верное (без объекта, только сам массив команд), иначе — код RussiaScript если значение не верное (без объекта, только сам массив команд)
Для создания пользовательской функции (на JavaScript)
в params: name — имя функции, code — код функции
Для создания пользовательской функции (на RussiaScript)
в params: name — имя функции, code — код функции (только массив команд RussiaScript)
Команда для выполнения функций которые хранятся в объекте RussiaScriptUser.
В объекте RussiaScriptUser хранятся: пользовальскре функции (RussiaScriptUser.func), библиотеки (RussiaScriptUser.libs, RussiaScriptUser.libsInfo и RussiaScriptUser.LibsList), внутренняя конаоль RussiaScript, config и sysModules
Команда 'пользователь' или 'user' позволяет только выполнять пользовательские функции.
В params: type — тип (вырианты: функция), func — пользовательская функция (если type равен 'функция')
Для выполнения команд из библиотек
в params: name — имя библиотеки (при установке библиотеки через терминал RussiaScript), func — команда библиотеки
Внимание! Скоро может потерять поддержку!
цикл для повторения кода пока оператор (bol в params) равен true
в params: bol — оператор, code — код который будет повторяться (только массив строк кода)
Команда для всплывающих окон (текст окна это и есть params)
Встроенный модуль чат-бот.
Документация по модулю: shaman2016scratch.github.io/Docs/RussiaScript#modules_1
Для вывода текста в JavaScript консоль
в params: метод — метод лога (выбор из лог, ошибка, предупреждение и запрос), значение — значение лога
разберём методы: лог — выводит лог 'RussiaScript: {значение в params}', предупреждение — выводит предупреждение 'RussiaScript warn: {значение в params}', ошибка — выводит ошибку 'RussiaScript error: {значение в params}' и запрос — показывает всплывающее окно с 'значение' в params а потом отправляет лог 'RussiaScript: {значение в params}' и лог 'RussiaScript input: {ввод в окне}'.
цикл для повторения кода указанное количество раз
в params: раз — количество раз повторения, код — код RussiaScript который повторяется
Для пользовательский функций на RussiaScript, то что return'ится что и есть params
для ожидания времени
в params: миллисекунды — сколько миллисекунд ждать
Запускает код RussiaScript (с Json'ом), params это и есть код который будет выполнен
если условие равно то код выполняется иначе будут ошибка в консоли и ошибка в переменной err (как значение true/false)
В params: bol — условие, code — код если условие равно чему-то
Для упрощения условий, если одно из условий верные следущие условия не бвдкт выполнятся даже если они верные (прям как elif в python)
В params: codes — мини скрипты 'если', else — код RussiaScript (массив команд) если ни одно из условий неверно
в parmas.codes: массив элементов 'если', в каждом элементе массива: bol — условие, code — код RussiaScript (массив команд)
Работает также как и 'большой если иначе' только там нету.кода который будет выполняться если ниодно из сюусловий неверно.
Запускает первый public (о них: shaman2016scratch.github.io/Docs/RussiaScript/#public )
Все поля и данные в RussiaScript проходят через RussiaScriptGetValue(), то есть обрабатывается репортёрами, RussiaScriptGetValue() определяет какой тип использован, выполняет код для получения значения и выводит результат обработки ответа
К примеру в RussiaScript 1.2 пропало немного типов из-за изменения структуры типов
Начиная от RussiaScript 1.2 если в типе задать обычный текст, число или true/false то он сразу же выведет этот текст
Типы RussiaScript это json (все кроме простого водда текста, цифр и Boolean) в формате
{
"type": "название типа",
"value":"текст для типа",
}
репортёр для возрата любого типа, хоть array/object хоть null, хоть undefined, хоть Boolean, хоть String/Number.
value — то что вернуть
Возращает значение указанной переменной RussiaScript, в value указывайте имя переменной
отправляет http-запрос и возвращает результат. в value: url — url запроса, metod — метод запроса, headers — заголовки запроса
Возвращает пустой массив
Возращает пустой объект
Он слишком большой подробнее в shaman2016scratch.github.io/Docs/RussiaScript/#reportm_1
Объединяет значения несколько раз. в value: массив элементов которые нужно объединить (они должны быть равны N)
Он слишком большой подробнее в shaman2016scratch.github.io/Docs/RussiaScript/#reportm_2
Возвращает число пи
Возвращает число Эйлера
Ищет в DOM элемент и выводит его содержимое. в value: значение — элемент dom
Ищет в DOM элемент и выводит его водд (для форм водда). в value: значение — элемент dom
Возвращает объект DOM
Выполняет команду терминала и выводит результат. Подробнее: shaman2016scratch.github.io/Docs/RussiaScript/#terminRs в value: com — команда терминала, par — параменты команды
Выводит true если оба значения равны иначе false. в value: массив из друх элементов: первое условие и второе
Также как и 'и' только возращает true если хотябы одно условие верно и false если не одно из них.
Также как и 'и' работает но, выводит true если первое значение равно второму
С ними и так все понятно, только добавлю для тех кто не хорошо знает математику: знак '<' значит меньше а '>' значит больше (хотя это тема первого класса)
работает также как и 'и' но в массиве только один элемент, выводит true если оператор не верен а false если он верен
выводит true
Выводит false
Работает анологично команде 'пользователь' но возвращает то что возвращает пользовательская функция или другой обьект RussiaScriptUser.
Работает аналогично команде 'lib' но возвращает результат выполнения функции из расширения (библиотеки)
возвращает внутренни вывод RussiaScript
Делает всплывающее окно с запросом текста а потом возвращает его. value и есть текст окна
Делает всплывающее окно с выбором 'да' или 'нет' возвращает 'true' если выбрал 'да' а если 'нет' то true. value и есть текст окна
Документация по модулю: shaman2016scratch.github.io/Docs/RussiaScript#modules_1
Возращает парамент url. value — название парамента
Всем понятно
Для кодировки base64. в value: type - decode/encode, текст — текст который зашифровать в base64/расшифровать из base64
Работает как 'или' только как xor
Создает безопасный slug
Работает также как и 'base64' только кодирует и разкодирует с url шифровки
Возвращает длину текста. value — текст длина которого должна быть определена
После обработки типов дополнительно обрабатывает шаблоны RussiaScript, см ниже. value — текст который обработан
Возращает результат выполнения кода RussiaScript
Терминал RussiaScript — один из важнейших компонентов RussiaScript.
С помощью него можно добавлять библиотеки и многое другое!
Базовое выполнение команд терминала RussiaScript: js: RussiaScriptTerminal(комадна, параменты) или rs: тип Terminal о нём я уже говорил в прошлом разделе
Команды терминала RussiaScript могут просто выполнить команду а могут выполнить команду и вернуть конкретное значение.
Загружает расширения для RussiaScript. Их импортировать не надо. в параментах: ext — объект расширения (библиотеки)
в ext: url — ссылка на код расширения, name — название расширения (назовите как хотите, например 'расширение 1', оно не связано с названием расширения в его коде)
Возвращает ос пользователя (как указано в объекте sys, он обычно не содержит информацию о реальной Операционной системе пользователя).
Возращает SessionRussiaScript, см в api и коде
Возращает объект sys
Задает объекту sys заданное значение. Внимание! Для этого рекомендуется изучить Api и код иначе изменение объекта sys может привести к неожиданным ошибкам! параменты — содержимое sys
Возращает массив файлов
Создает новый файл в filesRS. в параментах: name — название файла, type — тип файла
Потом возвращает объект filesDataRS
работает также как и new file но создает файл в определённом файл в корне filesRS (для создания файлов в фафле который в файле и т.д. надо значит api, JavaScript (браузерный) и был ознакомленным с кодом RussiaScript). в параментах: in — внутри какого файла будет находится файл, file — информация о файле
в file тоже самое что и в параментах 'new file'
Возращает объект filesDataRs
Возращает язык пользователя (по данным из объекта sys)
возвращает реальный user-agent пользователя
возращает объект RussiaScript из объекта sys
возвращает версию RussiaScript из объекта RussiaScript в объекте sys
Возращает версию терминала
Добавляет библиотеку из RussiaScript libs. параменты: ext
В ext: url — адрес к библиотеке, pocket — покет библиотки, name — имя библиотеки для каталога установленных библиотек
добавляет библиотеку из списка библиотек от разработчиков RussiaScript. в params: libName — имя библиотеки, ext
в ext: name — имя библиотеки для каталога установленных библиотек.
Берет список всех библиотек в базе search'а и возвращает найденную библиотеку если есть. в параментах: ext
в ext: name — имя библиотеки
Удаляет библиотеку. в параментах: ext — имя библиотеки под которых сохранена библиотека в катологе установленных библиотек
Возращает массив строк вывода
выполняет код RussiaScript из указанного репозитория. в параментах: file — имя репозитория
выполняет код RussiaScript из указанного url. в параментах: url — url ресурса откуда взять код
берет информацию о библиотект с каталога установленных библиотек, в параментах: ext. в ext: name — имя библиотеки в каталоге установленных библиотек
Возращает список установленных библиотек
Удаляет все библиотеки и переменные
Библиотеки для RussiaScript — простые дополнения для RussiaScript
Они создаются на языке программирования JavaScript.
Вот пример библиотеки для версии 1.2:
ExtLibRS = {
"version": "1.0",
"name": "Example Extension",
"id": "exampleExt",
"docs": "example.com",
"created by": "ExampleUser12345",
};
Ext_exampleExt = {
"data": ExtLibRS,
"commands": {
"command": "function\(args\) \{ alert(args) \}"
},
"commandList": [
"command"
],
"reporters": {
"reporter": "function\(args\) \{ return args.return \}"
},
"reportersList": [
"reporter"
],
}
Разберет код по полочкам: обьявление переменной ExtLibRS которая содержит информацию о расширении, там указаны ключи version — версия расширения, name — название расширения, id — id расширения, docs — ссылка на документацию по библиотеке, created by — кто создал. дальше объявляет переменная Ext_*id библиотеки* в ней ключ data значение которого равен переменной ExtLibRS, дальше commands — команды в виде "*название команды*": "function(args) { *код команды на js* }" а дальше 'commandList' — список комманд, дальше тоже самое с репортерами: reporter — репортер и его код и reportersList это список репортёров.
Именно так создаются библиотеки для RussiaScript.
filesRS — Внутренняя файловая система RussiaScript состоящая из двух переменных: filesRS — массив файлов которые находятся в корне проекта, filesDataRS — структура данных фацлов ввиде json.
Структура переменной filesDataRS является такой: {"имя файла":{"type":"тип","args":[],"args2":{}}}
type — тип файла, args — аналогичен переменной filesRS только хранит файлы внутри папки, args2 — аналогичен filesDataRD только хранит структуру фаылов внутри файлов (а напомню, ключ args2 находится в каждом ключе объекта filesDataRS.)
Тут находятся Фреймворки и языки программирования написанные на исходном коде RussiaScript
type.rsf — написан на основе RussiaScript 1.1, вторая версия будет написана на основе RussiaScript 1.2. функционал такой же но с новыми функциями
Eng.rsf — Английско-язычная версия RussiaScript
Тут находятся другие Фреймворки RussiaScript, например RussiaScript переписанный на C или Python или Node.js
NodeRsJs.rsf — RussiaScript переписанный под Node.js
Языки программирования написанные на RussiaScript
Пока ещё никто не писал яыки программирования на RussiaScript
Модули RussiaScript — встроенные модули RussiaScript находящиеся в одной команде
Небольшой модуль для создания мини-чат ботов.
Для команд: в params: metod — команда модуля
Задает ответ на вопрос
В params: запрос — на какой прос будет ответ, ответ — ответ на запрос
В value: metod — репортер модуля
Получает ответ на запрос
в value: запрос — текст запроса
Тут список разработчиков RussiaScript
SHAMAN2016 • сайт: shaman2016scratch.github.io
SHAMAN2016 • сайт: shaman2016scratch.github.io
SHAMAN2016 • сайт: shaman2016scratch.github.io
Кажется, кроме RussiaScript и Type.rsf а также Eng.rsf и NodeRsJs.rsf никаких языков программирования не существует
public RussiaScript — встроенный язык программирования. Такой пока один, но скоро будет больше
В js они запускаются так: publicRS(args, n)
args: {"code":"код"}
Синтакс: Английский, Формат синтаксиса: строка кода (не массив) а дальше параменты если один то просто текст обычный иначе json в одну строку.
То есть, вот так выглядит типичный код 1-ого public'а:
{"code":"let a main()\nКоманда\nПарамент"}
Внутри let a main() находятся команды: System.out.printf (вывод, выводит в внутренний ввывод RussiaScript, название совмещение команды вывода java (System.out.println) и c++ (prinf)), System.RunTermianl (запускает команду терминала RussiaScript), set var — задает переменной значение (но у public и RussiaScript разные переменные)
RSNJ — RussiaScript Not Json, RSML — RussiaScript Markup Language, SLRS — Style Language RussiaScript
Все троя не доделаны и не встроены в RussiaScript (то есть через RussiaScript нельзя с ними взаимодействовать)
TakeError() — это пользовательская функция в JavaScript для того чтобы RussiaScript мог выявлять ошибки
в value: операция — математическая операция, значение — как параменты операции.
Для сложения чисел. в значение: массив из двух элементов, первый прибавляется ко второму
Для уменьшения чисел. в значение: массив из двух элементов, первое уменьшаться на второе
Для деления чисел. в значение: массив из двух элементов, первое делится на второе
Для умножения чисел. в значение: массив из двух элементов, первое умножается на второе
Для получения остатка от деления. в значение: массив их двух элементов, первое делится на второе пока не определяется остаток.
Для степени чисел. в значение: массив из двух элементов, возращается степерь первого числа от второго
Возращает абсолютное число от 'значение'
Возращает минимальное число от 'значение'
Возращает максимальное число от 'значение'
Округляет 'значение'
округляет вниз
округляет вверх
выдает рандомное число. значение это массив и двух элементов
выдает pow. значение это массив и двух элементов
Также в модуле 'математика': квадратный корень, синус, косинус, тангенс, арксинус, арккосинус, арктангенс
В value: действие, значение
Превращает JavaScript-объект ('значение') в json
'в json строку' наоборот
задает элемент в объекте и возращает объект. в 'значение': json — объект, key — ключ, value — значение
{{переменная}} выводит значение переменной, ${тип} возвращает репортер. ВНИМАНИЕ! Шаблоны работают только в типе 'шаблон'.
Вы ответственны за то что происходит на вашем сайте.
RussiaScript не использует белые списки сайтов для закрузки кода из других источников, терминал RussiaScript не использует белые списки сайтов для загрузки библиотек и кода и т.д. Что гарантирует свободу выбора. Разработчики RussiaScript не несут ответственность за установленные библиотеки и выполненый код. RussiaScript не имеет сайта для выполнения кода по соображениям безопасности. терминал RussiaScript использует eval для получения данных библиотеках, но библиотеки которые устанавливаете выбираете вы а не мы или другие, и вы сами выбираете доверится библиотеке или нет. любая библиотека может изменить контент страницы даже при установке библиотеки, может передать информацию важную кому-то, но вы сами отвечаете за то что происходит на сайте, вы отвечаете за библиотеки которые.устанавливаете, если установили опасную библиотеку на сайт и она сломает его структуру то это в любрм случае будет ваша ответственность, Потому-что это ваш сайт а не сайт создателя библиотеки или создателя RussiaScript. Вы несёте ответственность за код RussiaScript который установили с другого сайта потому что вы выбрали его установить а не вас заставили. Если код который вы установите с другого сайта сломает структуру вашего сайта то ответственность будет на вас. Разрбаотчики RussiaScript не несут ответственность за то что просходит на сайте, за библиотеки или код вымолняемый из другого источника. Помните — За ваш сайт ответственность несёте вы, а не разработчики дополнительных используемых инструментов или библиотек.
репозиторий: https://github.com/shaman2016scratch/RussiaScript
1.0: https://shaman2016scratch.github.io/RussiaScript/1.0.js
1.1: https://shaman2016scratch.github.io/RussiaScript/1.1.js
1.2: https://shaman2016scratch.github.io/RussiaScript/1.2.js
Для создания библиотеки для RussiaScript: https://github.com/shaman2016scratch/RussiaScript/blob/main/example-lib.1.1.js
Версия для java: https://github.com/shaman2016scratch/RussiaScript/tree/main/java
Вам код RussiaScript 1.2: (1.2.js)
Loading