[ID CC2023] При наличии "@" Индизайн меняет гиперссылку с URL на Email

Serik64

Участник
Топикстартер
Сообщения
23
Реакции
1
Привет. С недавних пор, ютуб очеловечил ссылки на каналы пользователей и теперь в УРЛе присутствует символ "@". Но когда вставляешь такую ссылку в верстку и нажимаешь "new hyperlink from url", индизайн автоматом ее распознает как email.
Вопрос, а можно как-то настроить, что бы он не распознавал как почту и делал как урл?
Можно, конечно, ручками делать, но иногда бывают большие списки с ссылками на каналы.
 

Serik64

Участник
Топикстартер
Сообщения
23
Реакции
1

densen

15 лет на форуме
Сообщения
756
Реакции
644
Вот например какой-то ноунейм канал https://www.youtube.com/@bowhouseprimary1241
Да, без "собачки" на этот канал только такой доступ: https://www.youtube.com/channel/UCggKXqt2BEyd930hBxoR-8Q
Тогда нужно смотреть, если в настройках формирования ссылок запрет на принудительную трактовку символа "@" как принадлежность к e-mail. Если нет, то только скриптом принудительно задавать нужный URL текстовой строке.
 

Serik64

Участник
Топикстартер
Сообщения
23
Реакции
1
Вот собственно мы и вернулись к изначальному вопросу
 

densen

15 лет на форуме
Сообщения
756
Реакции
644
Попробуй тогда так:
JavaScript:
var myDoc = app.activeDocument;
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = "https://.+@.+?(?=\\s)";
app.findGrepPreferences.appliedParagraphStyle = "myParagraphStyle"; // Если Paragraph Style находится вне группы
//app.findGrepPreferences.appliedParagraphStyle = app.activeDocument.paragraphStyleGroups.itemByName("myGroup").paragraphStyles.item("myParagraphStyle"); // Если Paragraph Style находится в группе
app.changeGrepPreferences.changeTo = "$0";

app.changeGrep();
var myFound = myDoc.findGrep();
for(i=0; i<myFound.length; i++)
    {
    try{
        var j = i + 1;
        var k = ("00" + j).slice(-3);
        var myURL = myFound[i].contents;
        var source = app.documents[0].hyperlinkTextSources.add(myFound[i]);
        var dest = app.documents[0].hyperlinkURLDestinations.add(myURL, {name: "URL " + k});
        app.documents[0].hyperlinks.add(source, dest, {name: k + " • " + myURL});
        }catch(e){}
    }

Изменить в скрипте Paragraph Style на тот, который присвоен тексту.
 
  • Спасибо
Реакции: Serik64

Serik64

Участник
Топикстартер
Сообщения
23
Реакции
1
Изменить в скрипте Paragraph Style на тот, который присвоен тексту.
Спасибо, попробую. Он применяется ко всему документу или надо выделять каждую ссылку и запускать скрипт?
 

densen

15 лет на форуме
Сообщения
756
Реакции
644
Спасибо, попробую. Он применяется ко всему документу или надо выделять каждую ссылку и запускать скрипт?
Это применяется ко всему документу к тексту, имеющему абзацный стиль "myParagraphStyle". Если есть несколько стилей, в которых есть ссылки, то эту строку можно убрать вообще. Цвет ссылки остается цветом текста, но можно добавить и цветовую раскраску по желанию. Запуск один раз для всего текста.