您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Document is almost unreadable with all its acronyms and abbreviations
当前为
// ==UserScript== // @name ageverification.dev — Abbreviation Helper // @namespace fabulous.cupcake.jp.net // @version 2025.07.27.1 // @description Document is almost unreadable with all its acronyms and abbreviations // @author FabulousCupcake // @match https://ageverification.dev/Technical%20Specification/architecture-and-technical-specifications/ // @grant none // ==/UserScript== const ABBREVS = [ ["AP", "Attestation Provider"], ["ARF", "Architecture and Reference Framework"], ["AV app", "Age Verification App"], ["AVI", "Age Verification App Instance"], ["AVAP", "Age Verification App Provider"], ["CA", "Certificate Authority"], ["DG CNECT", "Directorate General Network, Content and Technology"], ["eIDAS", "Electronic Identification, Authentication and Trust Services"], ["EU", "European Union"], ["EUDI", "European Digital Identity"], ["EUDIW /EUDI Wallet", "European Digital Identity Wallet"], ["LoA", "Level of Assurance"], ["U", "User"], ["RP", "Relying Party"], ["T-Scy", "Scytáles & T-Systems Age consortium"], ["WB", "Web Browser (or web app)"], ["ZKP", "Zero Knowledge Proof"], ["ETSI", "European Telecommunications Standards Institute"], ]; const applyAbbreviationHints = (string) => { let result = string; ABBREVS.forEach(a => { const [abbr, title] = a; const el = `<abbr title="${title}">${abbr}</abbr>`; const pattern = new RegExp(`([ (])${abbr}([ .,;?!)])`, "g"); result = result.replaceAll(pattern, `$1${el}$2`); }); return result; } const processAllParagraphs = () => { const paragraphs = Array.from(document.querySelectorAll(`article p`)); paragraphs.forEach(p => { p.innerHTML = applyAbbreviationHints(p.innerHTML) }); } const main = () => { processAllParagraphs(); } main();