Рандомизация текста.
-
-
выполняешь действие "Расположение ресурса" указав ресурс который ссылается на текстовый документ. На выходе получишь переменную [[RESOURCE_LOCATION]] (это имя по умолчанию) которая содержит полный путь до файла.
-
выполняешь действие "Читать файл" в качестве пути к файлу указываешь переменную [[RESOURCE_LOCATION]]. Это действие вернет переменную в которой будет содержимое файла, по умолчанию [[FILE_CONTENT]]
-
в действие "Выполнить код" вставляешь следующий код. Функцию писал не я) нашел в инете.
//Вложенные {} эта функция не поддерживает var spin = function (text) { var SPINTAX_PATTERN = /\{[^"\r\n\}]*\}/; var match; while (match = text.match(SPINTAX_PATTERN)) { match = match[0]; var candidates = match.substring(1, match.length - 1).split("|"); text = text.replace(match, candidates[Math.floor(Math.random() * candidates.length)]) } return text; } //[[FILE_CONTENT]] содержит {Привет,|Здаров,} {как дела?|что нового?|как жизнь?} {увидимся|нужно встретится} {сегодня|завтра|вечером} VAR_TEXT = spin([[FILE_CONTENT]]); //в переменной [[TEXT]] будет рандомизированный текст log([[TEXT]]) //Здаров, как дела? нужно встретится завтра
-
-
@Canine Добавлю спинтакс в виде действия, сейчас можно через ресурсы типа "Генератор строк" или через js
-
@santilo
нечто странное. Выдает syntax_error parse error в режиме запуска
В режиме отладки работает отлично
-
@Viktor код который выше рабочий, а вы уверены что эта ошибка происходит в действие "Выполнить код"
-
@santilo да, на 100 %
Без него работает, с ним нет. Переменная file_content туда передается. Код без моих правок.
Что-то я наверное сделал не так, но что непонятно. В режиме отладки, подчеркну, работает и код. Странное что-то.
-
@Viktor said in Рандомизация текста.:
@santilo да, на 100 %
Без него работает, с ним нет. Переменная file_content туда передается. Код без моих правок.
Что-то я наверное сделал не так, но что непонятно. В режиме отладки, подчеркну, работает и код. Странное что-то.Да вы правы, действительно эта функция работает только в режиме записи, я наверное только в этом режиме и проверял ее, когда публиковал код. Ошибка происходит из за этой строчки, var SPINTAX_PATTERN = /{[^"\r\n}]*}/, бас воспринимает квадратные скобки, как часть синтаксиса вызова ресурса(мне так кажется), их наверное нужно как то экранировать , но я не знаю как это сделать.
Костыль: Вы можете заменить квадратные скобки на любой другой символ, например на #.
#Привет,|Здаров,# #как дела?|что нового?|как жизнь?# var SPINTAX_PATTERN = /\#[^"\r\n\#]*\#/
-
@santilo попробую..
-
@santilo прошу прощения, может ошибка вот здесь:
{[^"\r\n**}*]}
Одна из фигурных скобок только закрывается...
-
@Viktor said in Рандомизация текста.:
@santilo прошу прощения, может ошибка вот здесь:
{[^"\r\n**}*]}
Одна из фигурных скобок только закрывается...А вы проверьте какой тогда будет результат) он вас не порадует)
-
Добавлен новый метод апи
_spintax
Использовать так[[SPINTAX_RESULT]] = _spintax("{Привет|Как дела}")
Действие Шаблон теперь поддерживает спинтакс.
Например, такой шаблон{Текст|[[VARIABLE]]|{{Resource}}}
Означает текст или значение переменной или значение из ресурса.
Билд будет через пол часа.
-
-
@support всегда зотел спросить, а что значит Доп. обработка в действии шаблон?
-
@DrPrime Это если шаблон грузится из файла. Он попадает в переменную [[FILE_CONTENT]] и если применить к этой переменной действие Шаблон, то в результате получим просто содержимое файла как результат. А если установить эту галку, то действие раскроет шаблон 2 раза
-
@support понял, тоесть она заменит переменные в тесте файла
-
@DrPrime Да и ресурсы и теперь спинтакс.
-
@support как этим пользоваться тО?)))
-
@dornporn около 5 сообщений выше есть описание как это использовать.