钦定字体

指定网页的 UI 字体和代码字体,忽略图标

  1. // ==UserScript==
  2. // @name 钦定字体
  3. // @description 指定网页的 UI 字体和代码字体,忽略图标
  4. // @license MIT
  5. // @namespace http://tampermonkey.net/
  6. // @version 0.5
  7. // @author chenh
  8. // @match *://*/*
  9. // @grant GM_addStyle
  10. // @run-at document-start
  11. // ==/UserScript==
  12.  
  13. ;(() => {
  14. 'use strict'
  15.  
  16. // UI 字体
  17. const UI_FONT = 'Microsoft YaHei UI'
  18. // 代码字体
  19. const CODE_FONT = 'Sarasa Mono SC'
  20.  
  21. // 忽略项,用于忽略字体图标
  22. const GLOBAL_IGNORES = [
  23. 'i',
  24. '[class*=ifont]',
  25. '[class*=ifont] *',
  26. '[class*=vjs]',
  27. '[class*=vjs] *',
  28. '[class*=icon]',
  29. '[class*=icon] *',
  30. '[class*=photo]',
  31. '[class*=photo] *',
  32. '[class*=image]',
  33. '[class*=image] *',
  34. '[class*=picture]',
  35. '[class*=picture] *',
  36. ]
  37.  
  38. // UI 选择器
  39. const UI_SELECTORS = ['*']
  40. // 代码选择器
  41. const CODE_SELECTORS = [
  42. 'pre',
  43. 'pre *',
  44. 'code',
  45. 'code *',
  46. '[id*=highlighted]',
  47. '[id*=highlighted] *',
  48. '[class*=highlighted]',
  49. '[class*=highlighted] *',
  50. ]
  51.  
  52. /**
  53. * 将选择器和忽略结合成选择器
  54. * @param {string[]} selectors 普通选择器
  55. * @param {string[]} ignores 忽略项选择器
  56. * @returns {string} 选择器字符串
  57. */
  58. function buildIgnoreStyle(selectors, ignores) {
  59. return selectors.map(sel => `${sel}:not(${ignores.join(', ')})`).join(', ')
  60. }
  61.  
  62. // 设置 CSS
  63. GM_addStyle(`
  64. ${buildIgnoreStyle(UI_SELECTORS, [...CODE_SELECTORS, ...GLOBAL_IGNORES])} {
  65. font-family: '${UI_FONT}' !important;
  66. }
  67.  
  68. ${buildIgnoreStyle(CODE_SELECTORS, GLOBAL_IGNORES)} {
  69. font-family: '${CODE_FONT}' !important;
  70. }
  71. `)
  72. })()

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址