Блог пишется на Vue.js. В постах блога будут попадаться ссылки на внешние ресурсы. Нужно сделать страницу, на которой будет следующая информация:
"Вы переходите по внешней ссылке. Если не хотите ждать, то нажмите сюда. Если не хотите переходить, то нажмите туда, иначе через 10 секунды перейдете туда автоматически."
Текст поста в редакторе я оформляется с помощью BB-кода, который потом переводится в html-теги. Внешние ссылки обретают вид
текст.
Вот вырезка из функции переводящей BB-код в html-теги:
// BB-код
$in = array(
...
'/\[url\="?(.*?)"?\](.*?)\[\/url\]/ms',
...
);
// html-теги
$out = array(
...
'<a href="#/go/\1">\2</a>',
...
);
$text = preg_replace($in, $out, $text);
Вопрос, собственно, в том, как заставить vue-router их воспринимать. Пробовал три варианта:
{ path: '/go/:p1/:p2/:p3/:p4/:p5/:p6/:p7/:p8/:p9/:p10', component: AppGoAway },
{ path: '/go/:link', component: AppGoAway },
{ path: '/go/', component: AppGoAway },
но ни один не дал результат, и ссылка
"/#/go/https://lenta.ru/news/2017/11/07/pochtagoda/" определяется как ошибка 404, подпадая под параметры этой настройки
{ path: '*', component: App404 }
Предположительно мои варианты настройки Vue-router не увенчались успехом, потому что он видит в ссылке несколько параметров после
go.В официальной документации Vue.js и Vue-router на русском я не нашел ничего о динамическом количестве параметров в
$route.params, или чего-то подобного.
Возможно следует при переводе ссылки из BB-кода в html кодировать url, но я не силён в регулярных выражениях. Функцию перевода я взял с сайта редактора markItUp.