Кнопки панели инструментов «копировать как markdown» и «чистый URL»
JS-правила JustZix запускаются автоматически при загрузке страницы. Действия — другое: это кнопки панели инструментов, чей код запускается только когда вы их кликаете. Это делает действия идеальными для инструментов по запросу: скопировать текущую страницу как markdown, убрать мусор отслеживания из URL или переписать ссылки. Вот три, которыми вы будете пользоваться каждый день.
Действие 1: скопировать заголовок и URL страницы как markdown
Когда вы собираете ссылки для заметок или документов, вам нужна аккуратная markdown-ссылка, а не сырой URL. Это действие строит её и копирует в буфер обмена.
var title = (document.title || location.hostname).trim();
var url = location.href;
var markdown = '[' + title + '](' + url + ')';
navigator.clipboard.writeText(markdown).then(function () {
console.log('Скопировано: ' + markdown);
}).catch(function () {
console.log('Буфер обмена заблокирован — скопируйте вручную: ' + markdown);
});
Поскольку действия запускаются по клику, браузер трактует запись в буфер обмена как пользовательский жест, так что navigator.clipboard.writeText разрешён. JS-правило, работающее при загрузке страницы, не смогло бы сделать это надёжно.
Действие 2: скопировать выделенный текст как markdown
Выделите заголовок и немного текста, кликните кнопку и получите markdown обратно. Эта версия определяет, находится ли выделение внутри элемента-заголовка.
var sel = window.getSelection();
var text = sel ? sel.toString().trim() : '';
if (!text) {
console.log('Сначала выделите текст.');
} else {
var node = sel.anchorNode;
var el = node && node.nodeType === 3 ? node.parentElement : node;
var tag = el ? (el.tagName || '').toLowerCase() : '';
var prefix = '';
if (tag === 'h1') prefix = '# ';
else if (tag === 'h2') prefix = '## ';
else if (tag === 'h3') prefix = '### ';
navigator.clipboard.writeText(prefix + text);
console.log('Скопировано как markdown.');
}
Действие 3: убрать параметры отслеживания из URL
Расшаренные ссылки часто захламлены utm_*, fbclid, gclid и похожими параметрами отслеживания. Это действие убирает их и копирует чистый URL — без перезагрузки страницы.
var JUNK = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content',
'fbclid','gclid','mc_eid','ref','ref_src','igshid','_hsenc'];
var u = new URL(location.href);
JUNK.forEach(function (param) {
u.searchParams.delete(param);
});
var clean = u.toString();
navigator.clipboard.writeText(clean);
console.log('Чистый URL скопирован: ' + clean);
Если вы также хотите, чтобы адресная строка обновилась, добавьте history.replaceState(null, '', clean); — это бесшумно переписывает URL без дополнительного запроса.
Бонус: открывать все внешние ссылки в новых вкладках
Это лучше подходит как JS-правило (работает при загрузке), чем как действие, но оно естественно сочетается с инструментами выше. Оно находит ссылки, указывающие на другие домены, и помечает их для безопасного открытия в новой вкладке.
var here = location.hostname;
var links = document.querySelectorAll('a[href^="http"]');
links.forEach(function (a) {
try {
if (new URL(a.href).hostname !== here) {
a.target = '_blank';
a.rel = 'noopener noreferrer';
}
} catch (e) { /* пропустить некорректный href */ }
});
Установка rel="noopener noreferrer" — хорошая практика — она не даёт новой странице получить ссылку обратно на вашу вкладку.
Когда использовать действие, а когда правило
- Используйте действие для всего, что вы запускаете вручную: копирование, экспорт, очистка текущего URL. Клик считается пользовательским жестом, что разблокирует доступ к буферу обмена.
- Используйте JS-правило для всего, что должно происходить всегда: переписывание ссылок, разблокировка копирования, закрытие баннеров.
- Действия появляются как кнопки в панели инструментов JustZix, так что называйте их ясно — «Копировать как MD», «Чистый URL».
- Каждый сниппет здесь локален: он читает страницу и пишет в буфер обмена, ничего больше.
Просмотрите готовые кнопки в готовых примерах или скачайте JustZix, чтобы их настроить. Для автоматических правок при загрузке смотрите собственные сочетания клавиш.
Оцени эту статью
Оценок пока нет — оцени первым.