Нет, это разные скрипты у меня, что бы не путаться кто и какие правки вносит.
Воот!.
Этого я от вас и добивался столько времени!
Попробуйте взять кусок кода
и заменить наКод:for(i=0; i<found.length; i++) { var report = report+found[i].contents+"\n"; var source = doc.hyperlinkTextSources.add(found[i]); var dest=doc.hyperlinkURLDestinations.add(found[i].contents); doc.hyperlinks.add(source,dest, {visible:false, name:found[i].contents+"("+(i+1)+")"}); }
Код:for(i=0; i<found.length; i++) try { var report = report+found[i].contents+"\n"; var source = doc.hyperlinkTextSources.add(found[i]); var dest=doc.hyperlinkURLDestinations.add(found[i].contents); doc.hyperlinks.add(source,dest, {visible:false, name:found[i].contents+"("+(i+1)+")"}); } catch ( err) {};
http://vip-basa.fvds.ru/%D0%9F%D1%80%D0%B8%D0%BA%D0%B0%D0%B7+%D0%9C%D0%9E+%D0%A0%D0%A4+%E2%84%96+250%D0%B4%D1%81%D0%BF.html.
Почему по факту три? И по факту у вас 4, https скрипт съел нормально. Почему то не воспринял ссылку vip-basa.fvds.ru - это даОтчет говорит, что создал 4 сноски, по факту 3 (без https).
Потому что там нет www.Почему по факту три? И по факту у вас 4, https скрипт съел нормально. Почему то не воспринял ссылку vip-basa.fvds.ru - это да
Да нет www ни при чемПотому что там нет www.
Вот странно. На одном компьютере у меня 21-я строка с изменениямиОн снова отъел подстроку %D0%9F... видимо чтото в запросе все таки не так
app.findGrepPreferences.findWhat = 'https?\\:\\/\\/([\\w\\-\\?\\=\\&]+([\\.\\/]?[\\%\\+]?)+)+';
https?\:\/\/([\w\-\?\=\&]+([\.\/]?[\%\+]?)+)+
Ну разумеется. Он же мои правки с Вашими не смешиваетЕсли судить по коду из #36 у него эта строка закомментирована
Вот и я ж о том!Он же мои правки с Вашими не смешивает
Возьмите версию леонида и внесите в нее это - после этого отпишитесь что получитсяСкиньте сюда версию скрипта единую для всех и я буду ее тестить и в нее вносить правки...
#target Indesign
// --- Assumptions --- //
//https://forums.adobe.com/message/3187356
// One document open
// Hyperlinks not necessarily labeled by character style
// You want all hyperlinks to be live
// Typesetter sometimes inserts a space or return in middle of URL to force a line break
// Space or return comes before period or slash per style manual
var doc=app.activeDocument;
// Compress stray www .'s
fn_grepChange (doc, "www(\\s|\\n)\\.", "www.", "hyper");
// Normalize to http://
fn_grepChange (doc, "(http\\:\\/\\/)?(www\\.([\\w\\-\\?\\=\\&]+[\\.\\/]?)+)", "http://$2", "hyper");
// Remove ( space or return ) before ( period or slash )
fn_grepChange (doc, "(https?\\:\\/\\/([\\w\\-\\?\\=\\&]+[\\.\\/]?)+)(\\s|\\n)(\\.|\\/)", "$1$4", "hyper");
// ---- Main ---- //
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findChangeGrepOptions.includeFootnotes = true;
// Regardless of character styles, find hyperlinks
app.findGrepPreferences.findWhat = 'https?\\:\\/\\/([\\w\\-\\?\\=\\&]+([\\.\\/]?[\\%\\+]?)+)+';
var found = app.findGrep();
var report = "found and activated "+String(found.length)+" links\n";
// make hyperlinks
for(i=0; i<found.length; i++)
try {
var report = report+found[i].contents+"\n";
var source = doc.hyperlinkTextSources.add(found[i]);
var dest=doc.hyperlinkURLDestinations.add(found[i].contents);
doc.hyperlinks.add(source,dest, {visible:false, name:found[i].contents+"("+(i+1)+")"});
} catch ( err) {};
// If exporting to PDF set include hyperlinks to true
PDFExportPreset.includeHyperlinks = true;
// To export to html, choose File-->Export for Dreamweaver
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
alert ( report );
function fn_grepChange (myDocument, regexFind, regexChange, cStyle) {
// purpose: execute a grep change, otherwise known as a regex s///;
//Initialize.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
//Set the find options.
app.findChangeGrepOptions.includeFootnotes = true;
app.findChangeGrepOptions.includeHiddenLayers = false;
app.findChangeGrepOptions.includeLockedLayersForFind = false;
app.findChangeGrepOptions.includeLockedStoriesForFind = false;
app.findChangeGrepOptions.includeMasterPages = false;
//Search and change
app.findGrepPreferences.findWhat = regexFind;
app.changeGrepPreferences.changeTo = regexChange;
app.changeGrepPreferences.appliedCharacterStyle= cStyle;
myDocument.changeGrep();
//Clear the find/change preferences.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
}
// --- end of script --- //
Потому и не взял что с ошибкойСсылку 2 взял не полность (хоть она и с ошибкой.)
В моей версии пока не всё отрабатывается нормально - я ещё продолжаю думать насчёт греп-замен.
#target Indesign
// --- Assumptions --- //
//https://forums.adobe.com/message/3187356
// One document open
// Hyperlinks not necessarily labeled by character style
// You want all hyperlinks to be live
// Typesetter sometimes inserts a space or return in middle of URL to force a line break
// Space or return comes before period or slash per style manual
var doc=app.activeDocument;
// Compress stray www .'s
fn_grepChange (doc, "www(\\s|\\n)\\.", "www.", "hyper");
// Normalize to http://
fn_grepChange (doc, "(?<!\\/\\/)(www\\.([\\w\\-\\?\\=\\&]+([\\.\\/]?[\\%\\+]?)+)+)", "http://$0", "hyper");
fn_grepChange (doc, "(https?\\:\\/\\/)((www\\.)?([\\w\\-\\?\\=\\&]+([\\.\\/]?[\\%\\+]?)+)+)", "$1$2", "hyper");
// Remove ( space or return ) before ( period or slash )
fn_grepChange (doc, "(https?\\:\\/\\/([\\w\\-\\?\\=\\&]+[\\.\\/]?)+)(\\s|\\n)(\\.|\\/)", "$1$4", "hyper");
// ---- Main ---- //
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
app.findChangeGrepOptions.includeFootnotes = true;
// Regardless of character styles, find hyperlinks
app.findGrepPreferences.findWhat = 'https?\\:\\/\\/([\\w\\-\\?\\=\\&]+([\\.\\/]?[\\%\\+]?)+)+';
var found = app.findGrep();
var report = "found and activated "+String(found.length)+" links\n";
// make hyperlinks
for(i=0; i<found.length; i++)
try {
var report = report+found[i].contents+"\n";
var source = doc.hyperlinkTextSources.add(found[i]);
var dest=doc.hyperlinkURLDestinations.add(found[i].contents);
doc.hyperlinks.add(source,dest, {visible:false, name:found[i].contents+"("+(i+1)+")"});
} catch ( err) {};
// If exporting to PDF set include hyperlinks to true
PDFExportPreset.includeHyperlinks = true;
// To export to html, choose File-->Export for Dreamweaver
app.changeGrepPreferences = NothingEnum.nothing;
app.findGrepPreferences = NothingEnum.nothing;
alert ( report );
function fn_grepChange (myDocument, regexFind, regexChange, cStyle) {
// purpose: execute a grep change, otherwise known as a regex s///;
//Initialize.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
//Set the find options.
app.findChangeGrepOptions.includeFootnotes = true;
app.findChangeGrepOptions.includeHiddenLayers = false;
app.findChangeGrepOptions.includeLockedLayersForFind = false;
app.findChangeGrepOptions.includeLockedStoriesForFind = false;
app.findChangeGrepOptions.includeMasterPages = false;
//Search and change
app.findGrepPreferences.findWhat = regexFind;
app.changeGrepPreferences.changeTo = regexChange;
app.changeGrepPreferences.appliedCharacterStyle= cStyle;
myDocument.changeGrep();
//Clear the find/change preferences.
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
}
// --- end of script --- //
Проверять на валидностьа можно ли к этому скрипту прикрутить проверку на существование символьного стиля hyper
app.activeDocument.paragraphStyles.itemByName("hyper")
try{
var cshyp = doc.characterStyles.add({name:"hyper"});
alert("Создан символьный стиль hyper");
}
catch (e){
var cshyp = doc.characterStyles.item("hyper");
}
Уфф... Вот такое соорудил на базе скрипта от azz с исправлениями от _MBK_: