1<!DOCTYPE html><html lang="zh-CN" data-theme="dark"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta http-equiv="content-language" content="zh-cn"><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"><title>æ´ªç»æ²æ¨é±¼App - æèææ²é³æè§£åç¥å¨ | å¼ æ´ªHeo</title><meta name="keywords" content="å¿ ç,çé¨,å¼å,Swift"><meta name="author" content="å¼ æ´ªHeo"><meta name="apple-mobile-web-app-title" content="å¼ æ´ªHeo"><meta name="copyright" content="å¼ æ´ªHeo"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="var(--heo-main)"><meta name="cover-color" content="#59a4e7"><meta name="p:domain_verify" content="91cce50c0366a08ee8d5bd729406de4d"><meta property="og:image" content="https://p.zhheo.com/20234681e06b8e086aa5b15481cb89fd38c7071002.png!plog"><link rel="dns-prefetch" href="//blog.zhheo.com"><link rel="dns-prefetch" href="//p.zhheo.com"><link rel="icon" href="/img/favicon4.0.webp"><link rel="apple-touch-icon" href="/apple-touch-icon.webp"><link rel="bookmark" href="/apple-touch-icon.webp"><link rel="apple-touch-icon-precomposed" sizes="180x180" href="/apple-touch-icon.webp"><meta name="description" content="ä¸å¼å§åæ²æ¨é±¼çæ¶å乿¯åå°ç½ä¸å¾å¤çµåæ¨é±¼çå¯åï¼ç¨äºä¸ä¸ç®åçå 个æ¨é±¼è½¯ä»¶ï¼ä¸ä¸ªæ¯çé¢ä»¤äººçªæ¯ï¼äº¤äºä½éªä»¤äººå´©æºï¼è¿æé³æå°è䏿ç¹å¤ªè´µäºã æä»¥æ³çè½å¤æ ¹æ®èªå·±çå好åç»éªä¸æå®åï¼æå»ºåºç°æå¨ç¨æ·ä½éªååè½æ§ä¸ä¹è®¸æ¯æå¼ºç鳿æ²å»åºç¨ã 设计å¨è¿ä¸ªè½¯ä»¶è®¾è®¡ç®æ´ï¼ä¿è¯å¨éç¼ç²æä½çæ åµä¸ç¹å»å±å¹ä»ç¶å¯ä»¥æ£å¸¸ç使ç¨ã å¹¶ä¸å¨åæ¢ä¸åç鳿ä¸ï¼å¨å好设置æä¸äºå°å¨ç»ï¼èä¸ä¸åç鳿è¿é åäºä¸åç"> 2<meta property="og:type" content="article"> 3<meta property="og:title" content="æ´ªç»æ²æ¨é±¼App - æèææ²é³æè§£åç¥å¨"> 4<meta property="og:url" content="https://blog.zhheo.com/p/671f98c8.html"> 5<meta property="og:site_name" content="å¼ æ´ªHeo"> 6<meta property="og:description" content="ä¸å¼å§åæ²æ¨é±¼çæ¶å乿¯åå°ç½ä¸å¾å¤çµåæ¨é±¼çå¯åï¼ç¨äºä¸ä¸ç®åçå 个æ¨é±¼è½¯ä»¶ï¼ä¸ä¸ªæ¯çé¢ä»¤äººçªæ¯ï¼äº¤äºä½éªä»¤äººå´©æºï¼è¿æé³æå°è䏿ç¹å¤ªè´µäºã æä»¥æ³çè½å¤æ ¹æ®èªå·±çå好åç»éªä¸æå®åï¼æå»ºåºç°æå¨ç¨æ·ä½éªååè½æ§ä¸ä¹è®¸æ¯æå¼ºç鳿æ²å»åºç¨ã 设计å¨è¿ä¸ªè½¯ä»¶è®¾è®¡ç®æ´ï¼ä¿è¯å¨éç¼ç²æä½çæ åµä¸ç¹å»å±å¹ä»ç¶å¯ä»¥æ£å¸¸ç使ç¨ã å¹¶ä¸å¨åæ¢ä¸åç鳿ä¸ï¼å¨å好设置æä¸äºå°å¨ç»ï¼èä¸ä¸åç鳿è¿é åäºä¸åç"> 7<meta property="og:locale" content="zh_CN"> 8<meta property="og:image" content="https://p.zhheo.com/wrUReo24490481714022264296.png!cover"> 9<meta property="article:published_time" content="2022-10-14T01:50:28.000Z"> 10<meta property="article:modified_time" content="2022-10-14T01:50:28.000Z"> 11<meta property="article:author" content="å¼ æ´ªHeo"> 12<meta property="article:tag" content="Swift"> 13<meta property="article:tag" content="å¼å"> 14<meta property="article:tag" content="å¿ ç"> 15<meta property="article:tag" content="çé¨"> 16<meta name="twitter:card" content="summary"> 17<meta name="twitter:image" content="https://p.zhheo.com/wrUReo24490481714022264296.png!cover"><link rel="shortcut icon" href="https://p.zhheo.com/20234681e06b8e086aa5b15481cb89fd38c7071002.png!plog"><link rel="canonical" href="https://blog.zhheo.com/p/671f98c8.html"><link rel="preconnect" href="//p.zhheo.com"/><link rel="preconnect" href="//s3.zhheo.com"/><link rel="preconnect" href="//twikoo.zhheo.com" crossorigin=""/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="manifest" href="/manifest.json"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-touch-fullscreen" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta name="msapplication-TileColor" content="#000000"/><link rel="apple-touch-icon" sizes="180x180" href="/img/pwa/apple-touch-icon.webp"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2048x2732.webp" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2732x2048.webp" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1668x2388.webp" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2388x1668.webp" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1536x2048.webp" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2048x1536.webp" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1668x2224.webp" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2224x1668.webp" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1620x2160.webp" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2160x1620.webp" media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1290x2796.webp" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2796x1290.webp" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1179x2556.webp" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2556x1179.webp" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1248x2778.webp" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2778x1248.webp" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1170x2532.webp" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2532x1170.webp" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1125x2436.webp" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2436x1125.webp" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1242x2688.webp" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2688x1242.webp" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-828x1792.webp" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1792x828.webp" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1242x2208.webp" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-2208x1242.webp" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-750x1334.webp" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1334x750.webp" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-640x1136.webp" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"/><link rel="apple-touch-startup-image" href="/img/pwa/splash-1136x640.webp" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"/><link rel="preload" as="image" href="https://p.zhheo.com/wrUReo24490481714022264296.png!cover" fetchpriority="high"><style type="text/css">:root { 18 --heo-white: #fff; 19 --heo-white-op: rgba(255, 255, 255, 0.15); 20 --heo-black: #000; 21 --heo-black-op: rgba(0, 0, 0, 0.15); 22 --heo-none: #00000000; 23 --heo-gray-op: #9999992b; 24 --heo-gray-op-deep: #99999996; 25 --heo-vip: #e5a80d; 26 --heo-main: var(--heo-theme); 27 --heo-main-op: var(--heo-theme-op); 28 --heo-main-op-deep: var(--heo-theme-op-deep); 29 --heo-main-op-light: var(--heo-theme-op-light); 30 --heo-main-none: var(--heo-theme-none); 31 --heo-shadow-theme: 0 8px 12px -3px var(--heo-theme-op); 32 --heo-shadow-blackdeep: 0 2px 16px -3px rgba(0, 0, 0, .15); 33 --heo-shadow-main: 0 8px 12px -3px var(--heo-main-op); 34 --heo-shadow-blue: 0 8px 12px -3px rgba(40, 109, 234, .20); 35 --heo-shadow-white: 0 8px 12px -3px rgba(255, 255, 255, .20); 36 --heo-shadow-black: 0 0 12px 4px rgba(0, 0, 0, .05); 37 --heo-shadow-yellow: 0 38px 77px -26px rgba(255, 201, 62, .12); 38 --heo-shadow-red: 0 8px 12px -3px #ee7d7936; 39 --heo-shadow-green: 0 8px 12px -3px #87ee7936; 40 --heo-logo-color: linear-gradient(215deg, #4584ff 0%, #cf0db9 100%); 41 --heo-snackbar-time: 5s; 42 --heo-musicColor: var(--heo-main); 43 --heo-musicColor-op: var(--heo-main-op); 44 --heo-bottom-float-gap: 4px; 45 --heo-need-end-hide-offset: 320px; 46 --heo-dock-right: 20px; 47 --heo-dock-bottom: 20px; 48 --heo-dock-width: 300px; 49 --heo-dock-duration: 0.6s; 50 --heo-dock-ease: cubic-bezier(0.42, 0, 0.3, 1.11); 51 --heo-dock-blur: saturate(180%) blur(20px); 52 --global-bg: #fff; 53 --hr-border: #97bcfb;
54 --hr-before-color: #6ea2f9; 55 --search-bg: #f6f8fa; 56 --search-input-color: var(--heo-fontcolor); 57 --search-result-title: #4c4948; 58 --preloader-bg: #37474f; 59 --preloader-color: #fff; 60 --tab-border-color: #f0f0f0; 61 --tab-botton-bg: #f0f0f0; 62 --tab-botton-color: #1f2d3d; 63 --tab-button-hover-bg: #dcdcdc; 64 --tab-button-active-bg: #fff; 65 --sidebar-bg: #f6f8fa; 66 --btn-hover-color: #ff7242; 67 --btn-color: #fff; 68 --btn-bg: #307af6; 69 --text-bg-hover: #307af6; 70 --light-grey: #eee; 71 --text-highlight-color: #1f2d3d; 72 --blockquote-color: #6a737d; 73 --blockquote-bg: rgba(73, 177, 245, 0.1); 74 --reward-pop: #f5f5f5; 75 --toc-link-color: #666261; 76 --card-box-shadow: 0 3px 8px 6px rgba(7, 17, 27, 0.06); 77 --card-hover-box-shadow: 0 3px 8px 6px rgba(7, 17, 27, 0.15); 78 --hl-color: #eff; 79 --hl-bg: #212121; 80 --hltools-bg: #1c1c1c; 81 --hltools-color: rgba(238, 255, 255, 0.8); 82 --hlnumber-bg: #212121; 83 --hlnumber-color: rgba(238, 255, 255, 0.5); 84 --hlscrollbar-bg: #121212; 85 --hlexpand-bg: linear-gradient(180deg, rgba(33, 33, 33, 0.6), rgba(33, 33, 33, 0.9)); 86 --offset: 0; 87} 88[data-theme=light] { 89 --heo-theme: #425AEF; 90 --heo-theme-op: #4259ef23; 91 --heo-theme-op-deep: #4259efdd; 92 --heo-theme-op-light: #4259ef0d; 93 --heo-theme-none: #4259ef01; 94 --heo-blue: #425AEF; 95 --heo-red: #d80020; 96 --heo-red-op: #d800201a; 97 --heo-red-op-deep: #d8002056; 98 --heo-pink: #FF7C7C; 99 --heo-green: #57bd6a; 100 --heo-green-op: #57bd6a1a; 101 --heo-green-op-deep: #57bd6a56; 102 --heo-yellow: #936900; 103 --heo-yellow-op: #d99c001a; 104 --heo-orange: #e38100; 105 --heo-purple: #7a60d2; 106 --heo-fontcolor: #363636; 107 --heo-background: #f7f9fe; 108 --heo-reverse: #000; 109 --heo-maskbg: rgba(255, 255, 255, 0.6); 110 --heo-maskbgdeep: rgba(255, 255, 255, 0.85); 111 --heo-hovertext: var(--heo-main); 112 --heo-ahoverbg: #F7F7FA; 113 --heo-lighttext: var(--heo-main); 114 --heo-secondtext: rgba(60, 60, 67, 0.8); 115 --heo-scrollbar: rgba(60, 60, 67, 0.4); 116 --heo-card-btn-bg: #edf0f7; 117 --heo-post-blockquote-bg: #fafcff; 118 --heo-post-tabs-bg: #f2f5f8; 119 --heo-secondbg: #f7f7f9; 120 --heo-shadow-nav: 0 5px 12px -5px rgba(102, 68, 68, 0.05); 121 --heo-card-bg: #fff; 122 --heo-card-bg-op: var(--heo-white-op); 123 --heo-card-bg-op-deep: #ffffff45; 124 --heo-card-bg-none: rgba(255, 255, 255, 0); 125 --heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0.00); 126 --heo-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0.00); 127 --heo-shadow-glass: 0 5px 100px -5px rgb(140 140 140 / 55%); 128 --heo-shadow-glass-deep: 0 5px 100px -5px rgb(0 0 0 / 60%); 129 --heo-card-border: #e3e8f7; 130 --heo-shadow-border: 0 8px 16px -4px #2c2d300c; 131} 132[data-theme=light],[data-theme=dark] { 133 --style-border: 1px solid var(--heo-card-border); 134 --style-border-always: 1px solid var(--heo-card-border); 135 --style-border-hover: 1px solid var(--heo-lighttext); 136 --style-border-hover-always: 1px solid var(--heo-lighttext); 137 --style-border-dashed: 1px dashed var(--heo-theme-op); 138 --style-border-forever: 2px solid var(--heo-lighttext); 139} 140[data-theme=dark] { 141 --heo-theme: #ffc848; 142 --heo-theme-op: #f2b94b23; 143 --heo-theme-op-deep: #f2b94bdd; 144 --heo-theme-none: #f2b94b00; 145 --heo-blue: #0084FF; 146 --heo-red: #FF3842; 147 --heo-red-op: #ff38421a; 148 --heo-red-op-deep: #ff38426e; 149 --heo-pink: #d44040; 150 --heo-green: #3e9f50; 151 --heo-green-op: #3e9f501a; 152 --heo-green-op-deep: #3e9f506e; 153 --heo-purple: #7a60d2; 154 --heo-yellow: #ffc93e; 155 --heo-yellow-op: #ffc93e30; 156 --heo-orange: #ff953e; 157 --heo-fontcolor: #F7F7FA; 158 --heo-background: #17191d; 159 --heo-reverse: #fff; 160 --heo-maskbg: rgba(0, 0, 0, 0.6); 161 --heo-maskbgdeep: rgba(0, 0, 0, 0.85); 162 --heo-hovertext: #0A84FF; 163 --heo-ahoverbg: #fff; 164 --heo-lighttext: var(--heo-theme); 165 --heo-secondtext: #a1a2b8; 166 --heo-scrollbar: rgba(200, 200, 223, 0.4); 167 --heo-card-btn-bg: #30343f; 168 --heo-post-blockquote-bg: #000; 169 --heo-post-tabs-bg: #121212; 170 --heo-secondbg: #21232a; 171 --heo-shadow-nav: 0 5px 20px 0 rgba(28, 28, 28, 0.4); 172 --heo-card-bg: #1b1c20; 173 --heo-card-bg-op: var(--heo-black-op); 174 --heo-card-bg-op-deep: #00000045; 175 --heo-card-bg-none: #1d1b2600; 176 --heo-shadow-lightblack: 0 5px 12px -5px rgba(102, 68, 68, 0.0); 177 --heo-shadow-light2black: 0 5px 12px -5px rgba(102, 68, 68, 0.0); 178 --heo-shadow-glass: 0 5px 100px -5px rgba(0, 0, 0, 0.55); 179 --heo-shadow-glass-deep: 0 5px 100px -5px rgba(0, 0, 0, 0.90); 180 --heo-card-border: #3d3d3f; 181 --heo-shadow-border: 0 8px 16px -4px #00000050; 182} 183html, body { 184 background: transparent; 185 margin: 0; 186 height: 100%; 187} 188body { 189 position: relative; 190 min-height: 100%; 191 background: var(--heo-background); 192 color: var(--heo-fontcolor); 193 font-size: 16px;
194 font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei"; 195 line-height: 2; 196 -webkit-tap-highlight-color: transparent; 197} 198* { 199 box-sizing: border-box; 200} 201//- æ¡é¢ç«¯ Banner å ³é®å¸å±ï¼ä» >768px çæï¼ 202//- 让 LCP å¾çæ éçå¾ heoblogmain.css å³å¯è¢«ç»å¶å°å±å¹ 203.homePage #home_top_blur.home-top-blur { 204 position: absolute; 205 top: 0; 206 left: 0; 207 right: 0; 208 height: 320px; 209 overflow: hidden; 210 background: var(--heo-background); 211 pointer-events: none; 212 z-index: 0; 213} 214.home_barAndPosts:has(#home_top_blur) { 215 animation: none; 216} 217.home_barAndPosts:has(#home_top_blur) #recent-posts, 218.home_barAndPosts:has(#home_top_blur) #recent-posts .recent-post-item { 219 animation: slide-in 0.6s 0.6s backwards; 220} 221.homePage #home_top_blur .home-top-blur-bg { 222 position: absolute; 223 inset: -32px; 224 background-color: var(--heo-main-op); 225 background-size: cover; 226 background-position: center 30%; 227 filter: blur(28px) saturate(1.25) brightness(1.05); 228 transform: scale(1.1); 229 opacity: 0.2; 230} 231@media (min-width: 769px) { 232 #home_center.home-center { 233 position: relative; 234 width: 100%; 235 margin: 0; 236 padding: 0; 237 z-index: 1; 238 } 239 .home-center-content { 240 position: relative; 241 width: 100%; 242 display: flex; 243 background: var(--heo-card-bg); 244 border: var(--style-border-always); 245 border-radius: 12px; 246 overflow: hidden; 247 height: 320px; 248 } 249 .home-center-left { 250 flex: 1; 251 position: relative; 252 height: 100%; 253 overflow: hidden; 254 } 255 .home-center-banner { 256 position: relative; 257 width: 100%; 258 height: 100%; 259 overflow: hidden; 260 } 261 .home-center-banner-item { 262 position: absolute; 263 top: 0; 264 left: 0; 265 width: 100%; 266 height: 100%; 267 opacity: 0; 268 visibility: hidden; 269 display: flex; 270 flex-direction: column; 271 justify-content: center; 272 align-items: center; 273 padding: 2rem; 274 background-color: var(--heo-card-bg); 275 } 276 .home-center-banner-item.active { 277 opacity: 1; 278 visibility: visible; 279 z-index: 1; 280 } 281 .home-center-cover { 282 width: 80%; 283 max-width: 80%; 284 flex-shrink: 0; 285 overflow: visible; 286 display: flex; 287 align-items: center; 288 justify-content: center; 289 } 290 .home-center-cover-img { 291 max-width: 100%; 292 height: auto; 293 width: auto; 294 max-height: 100%; 295 object-fit: contain; 296 } 297 .home-center-banner-item.has-banner-cover { 298 padding: 0; 299 } 300 .home-center-banner-item.has-banner-cover .home-center-cover { 301 width: 100%; 302 max-width: 100%; 303 height: 100%; 304 } 305 .home-center-banner-item.has-banner-cover .home-center-cover-img { 306 width: 100%; 307 height: 100%; 308 max-width: 100%; 309 max-height: 100%; 310 object-fit: cover; 311 } 312 .home-center-indicators { 313 display: flex; 314 align-items: center; 315 gap: 6px; 316 pointer-events: none; 317 } 318 .home-center-indicator { 319 pointer-events: auto; 320 } 321 //- 主 CSS å è½½åéèç®å¤´æé®ï¼é¿å æ æ ·å¼éªç 322 .home-center-banner-arrow { 323 display: none; 324 } 325}</style><style type="text/css">@media (max-width: 768px) { 326 .homePage .layout#content-inner { 327 padding: 0 !important; 328 } 329 .home-center-content { 330 flex-direction: column !important; 331 height: auto !important; 332 overflow: hidden !important; 333 } 334 .home-center-left { 335 width: 100% !important; 336 overflow: hidden !important; 337 } 338 .homePage #home_top_blur.home-top-blur { 339 display: none !important; 340 } 341 .home-center-banner { 342 height: 200px !important; 343 display: flex !important; 344 overflow-x: auto !important; 345 overflow-y: hidden !important; 346 scroll-snap-type: x mandatory !important; 347 scroll-behavior: auto !important; 348 } 349 .home-center-banner-item { 350 position: relative !important; 351 min-width: 100% !important; 352 width: 100% !important; 353 flex-shrink: 0 !important; 354 opacity: 1 !important; 355 visibility: visible !important; 356 } 357 .home-center-banner-item .home-center-cover { 358 width: 100% !important; 359 max-width: 100% !important; 360 height: 100% !important; 361 } 362 .home-center-banner-item .home-center-cover-img { 363 width: 100% !important; 364 height: 100% !important; 365 max-width: 100% !important; 366 max-height: 100% !important; 367 object-fit: cover !important; 368 mask-image: none !important; 369 -webkit-mask-image: none !important; 370 } 371 #recent-posts .recent-post-item { 372 flex-direction: column !important; 373 display: block !important; 374 width: 100% !important; 375 } 376 #recent-posts .recent-post-item .post_cover { 377 width: 100% !important; 378 height: 170px !important; 379 order: 1 !important; 380 } 381 #recent-posts .recent-post-item .recent-post-info { 382 width: 100% !important; 383 order: 2 !important; 384 }
385 .homePage #recent-posts { 386 padding: 0 1rem !important; 387 } 388 .homePage .layout.layout--home > .home-category-bar { 389 margin: 0 !important; 390 width: 100% !important; 391 max-width: 100% !important; 392 padding: 0 !important; 393 } 394 .home-category-bar .category-bar-items { 395 padding: 0 1rem !important; 396 } 397}</style><link rel="stylesheet" href="/zhheo/heoblogmain.css?v=20af8e82"><link rel="stylesheet" href="/zhheo/nav.css?v=0492bd48"><link rel="stylesheet" href="/zhheo/aside.css?v=8cd71fb1"><link rel="stylesheet" href="/zhheo/remixicon.subset.css?v=13edd92b" media="print" onload="this.media='all'"><link rel="stylesheet" href="/zhheo/codesign/iconfont.css?v=c6afd756" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="/zhheo/remixicon.subset.css?v=13edd92b"></noscript><link rel="stylesheet" href="/zhheo/heoblogmw1300.css?v=6e42e8d8" media="screen and (max-width: 1299px)"><link rel="stylesheet" href="/zhheo/heoblogmw1200.css?v=a4abd672" media="screen and (max-width: 1200px)"><link rel="stylesheet" href="/zhheo/heoblogmw768.css?v=1fe5cd12" media="screen and (max-width: 767px)"><link rel="stylesheet" href="/zhheo/post.css?v=6143b484"><link rel="stylesheet" href="/plugin/snackbar/snackbar.min.css?v=4220368a" media="print" onload="this.media='all'"><meta http-equiv="origin-trial" content="AsNhuTHBds89dnZ1YJp8huYFBh3YO8Syt/WoFJrtNDx9vid7e/vZezN13yHCsI7nw56f5hrTusi7bwBXWpOcOwAAAABceyJvcmlnaW4iOiJodHRwczovL3poaGVvLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViTUNQIiwiZXhwaXJ5IjoxNzk0ODczNjAwLCJpc1N1YmRvbWFpbiI6dHJ1ZX0="><meta http-equiv="origin-trial" content="A1HD36CMfK7i1lH6opeCrC0YEwicEgywhWV8kunUwKJoMZj/yf/hPaKxMnM3EvJPmSXeWmT49tX72ajlj8W23u4AAABceyJvcmlnaW4iOiJodHRwczovL3poaGVvLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViTUNQIiwiZXhwaXJ5IjoxNzg5ODc3MTU2LCJpc1N1YmRvbWFpbiI6dHJ1ZX0=">
397<script>var GLOBAL_CONFIG = { 398 root: '/', 399 // PHP æ¥å£çº¿ä¸åºåï¼æ¬å°é¢è§æ¶å端æ¹ç¨æ¤å°åï¼è§ inject_head_js ç window.apiUrlï¼ 400 apiBase: 'https://blog.zhheo.com', 401 assetVer: 'mum3m06l', 402 algolia: undefined, 403 localSearch: undefined, 404 phpSearch: {"apiUrl":"https://blog.zhheo.com/api/search/search.php","hitsPerPage":10,"skyApiUrl":"https://sky.zhheo.com/api/search","skyLimit":20,"siteHost":"blog.zhheo.com","jsUrl":"/zhheo/php-search.js?v=9c6f34d0","cssUrl":"/zhheo/php-search.css?v=9c8da890","commentEnvId":"https://twikoo.zhheo.com","languages":{"hits_empty":"æ¾ä¸å°ä½ æ¥è¯¢çå 容ï¼${query}","hits_stats":"æ¾å° ${hits} æ¡ç»æï¼ç¨æ¶ ${time} 毫ç§"}}, 405 console: {"jsUrl":"/zhheo/console.js?v=e7b51d10","cssUrl":"/zhheo/console.css?v=23f7ca55","twikooEnvId":"https://twikoo.zhheo.com"}, 406 translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"ç®","msgToSimplifiedChinese":"ç¹"}, 407 noticeOutdate: undefined, 408 highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":400}, 409 radio: {"welcomeUrl":"https://s3.zhheo.com/heoblog/radio/radio_mode_welcome.mp3?v=8b5bed17","indexUrl":"/radio/podcast-index.json","skipSeconds":9.35,"defaultCover":"https://blog.zhheo.com/img/avatar.png","artist":"å¼ æ´ªHeo","albumWelcome":"çµå°æ¨¡å¼","albumPodcast":"æç« æå®¢"}, 410 copy: { 411 success: 'å¤å¶æå', 412 error: 'å¤å¶é误', 413 noSupport: 'æµè§å¨ä¸æ¯æ' 414 }, 415 relativeDate: { 416 homepage: true, 417 post: false 418 }, 419 runtime: '天', 420 date_suffix: { 421 just: 'åå', 422 min: 'åéå', 423 hour: 'å°æ¶å', 424 day: '天å', 425 month: '个æå' 426 }, 427 copyright: undefined, 428 lightbox: 'fancybox', 429 Snackbar: {"chs_to_cht":"ä½ å·²åæ¢ä¸ºç¹ä½","cht_to_chs":"ä½ å·²åæ¢ä¸ºç®ä½","day_to_night":"ä½ å·²åæ¢ä¸ºæ·±è²æ¨¡å¼","night_to_day":"ä½ å·²åæ¢ä¸ºæµ è²æ¨¡å¼","bgLight":"#49b1f5","bgDark":"#121212","position":"top-center"}, 430 source: { 431 fancybox: { 432 js: '/plugin/heoimgviewer/heoimgviewer.min.js?v=a894be09', 433 css: '/plugin/heoimgviewer/heoimgviewer.min.css?v=1d001c35' 434 } 435 }, 436 isPhotoFigcaption: true, 437 islazyload: true, 438 isanchor: false, 439 twikoo: {"envId":"https://twikoo.zhheo.com"}, 440 webmcp: true, 441 pwa: true, 442 postScripts: { 443 heoGpt: '/js/heo_gpt.js?v=3eadb3ad', 444 postAudio: '/js/post_audio.js?v=52fe32a1' 445 }, 446 // 页é¢çº§èµæºè·¯å¾ï¼head ä¸å®¢æ·ç«¯ ensure* å ±ç¨å䏿¥æºï¼é¿å æ¸ åæ¼ç§»ï¼è§ head.pugï¼ 447 pagePaths: { 448 home: '/zhheo/home.css?v=91a2b1a4', 449 aside: '/zhheo/aside.css?v=8cd71fb1', 450 post: '/zhheo/post.css?v=6143b484', 451 pageTypes: {"tags":"/zhheo/tags.css?v=264799bb","link":"/zhheo/flink.css?v=26b2a5c5","categories":"/zhheo/categories.css?v=4776d6b4","about":"/zhheo/about.css?v=a0f78680","rss":"/rss/rss.css?v=4625ce48","equipment":"/equipment/equipment.css?v=34e4b304","recentcomments":"/recentcomments/recentcomments.css?v=a42c10fd","skill":"/zhheo/skill.css?v=4f10db94","stats":"/stats/stats.css?v=bbaf6635","cc":"/cc/cc.css?v=80e435e3"} 452 } 453} 454// 注ï¼window.assetUrl / window.getScript / window.loadStyleSheet ç»ä¸ç± inject_head_js æ³¨å ¥</script>
454<script id="config-diff">var GLOBAL_CONFIG_SITE = { 455 title: 'æ´ªç»æ²æ¨é±¼App - æèææ²é³æè§£åç¥å¨', 456 isPost: true, 457 isHome: false, 458 isHighlightShrink: false, 459 isToc: true, 460 postUpdate: '2022-10-14 09:50:28', 461 pageType: "" 462}</script>
462<noscript><style type="text/css"> 463 #nav { 464 opacity: 1 465 } 466 467 #recent-posts time, 468 #post-meta time { 469 display: inline !important 470 } 471</style></noscript>
471<script>(win=>{ 472 win.saveToLocal = { 473 set: function setWithExpiry(key, value, ttl) { 474 if (ttl === 0) return 475 const now = new Date() 476 const expiryDay = ttl * 86400000 477 const item = { 478 value: value, 479 expiry: now.getTime() + expiryDay, 480 } 481 localStorage.setItem(key, JSON.stringify(item)) 482 }, 483 484 get: function getWithExpiry(key) { 485 const itemStr = localStorage.getItem(key) 486 487 if (!itemStr) { 488 return undefined 489 } 490 const item = JSON.parse(itemStr) 491 const now = new Date() 492 493 if (now.getTime() > item.expiry) { 494 localStorage.removeItem(key) 495 return undefined 496 } 497 return item.value 498 } 499 } 500 501 win.assetUrl = url => { 502 if (!url || /^https?:\/\//i.test(url)) return url 503 if (/\bv=/.test(url)) return url 504 const sep = url.includes('?') ? '&' : '?' 505 return url + sep + 'v=' + 'mum3m06l' 506 } 507 // åä¸ URL åé£ï¼å¤ä¸ªè°ç¨æ¹ï¼è¯è®º / ææ°è¯è®º / è¯è®ºå¤´åç»ï¼å¹¶åæ¶åªå è½½ä¸æ¬¡ï¼ 508 // é¿å éå¤æå ¥åä¸èæ¬å¯¼è´é夿§è¡ã 509 win.__getScriptCache = win.__getScriptCache || {} 510 win.getScript = url => { 511 const src = win.assetUrl(url) 512 if (win.__getScriptCache[src]) return win.__getScriptCache[src] 513 win.__getScriptCache[src] = new Promise((resolve, reject) => { 514 const script = document.createElement('script') 515 script.src = src 516 script.async = true 517 script.onerror = function (err) { 518 delete win.__getScriptCache[src] 519 reject(err) 520 } 521 script.onload = script.onreadystatechange = function () { 522 const loadState = this.readyState 523 if (loadState && loadState !== 'loaded' && loadState !== 'complete') return 524 script.onload = script.onreadystatechange = null 525 resolve() 526 } 527 document.head.appendChild(script) 528 }) 529 return win.__getScriptCache[src] 530 } 531 // æ ·å¼è¡¨æéæ³¨å ¥ï¼åä¸ URL åªæ³¨å ¥ä¸æ¬¡ï¼è¦ç PJAX åºæ¯ï¼ï¼ç»ä¸æ¿ä»£å夿å createElement('link') 532 win.__styleCache = win.__styleCache || {} 533 win.loadStyleSheet = url => { 534 const href = win.assetUrl(url) 535 if (win.__styleCache[href]) return win.__styleCache[href] 536 const existing = document.querySelector('link[rel="stylesheet"][href="' + href + '"]') 537 if (existing) { win.__styleCache[href] = existing; return existing } 538 const link = document.createElement('link') 539 link.rel = 'stylesheet' 540 link.href = href 541 document.head.appendChild(link) 542 win.__styleCache[href] = link 543 return link 544 } 545 // ç»ä¸ API åºåï¼æ¬å°é¢è§ï¼hexo server 䏿§è¡ PHPï¼èªå¨æåçº¿ä¸ apiBaseï¼å ¶ä½ç¯å¢ç¨åæºç¸å¯¹è·¯å¾ 546 win.__isLocalHost = location.protocol === 'file:' || ['localhost', '127.0.0.1', '0.0.0.0', '[::1]'].indexOf(location.hostname) !== -1 547 win.apiUrl = path => { 548 if (/^https?:\/\//i.test(path)) return path 549 if (!win.__isLocalHost) return path 550 const base = (win.GLOBAL_CONFIG && win.GLOBAL_CONFIG.apiBase) || location.origin 551 return String(base).replace(/\/$/, '') + (path.charAt(0) === '/' ? path : '/' + path) 552 } 553 554 win.activateDarkMode = function () { 555 document.documentElement.setAttribute('data-theme', 'dark') 556 if (typeof heo !== 'undefined' && heo.initThemeColor) heo.initThemeColor() 557 } 558 win.activateLightMode = function () { 559 document.documentElement.setAttribute('data-theme', 'light') 560 if (typeof heo !== 'undefined' && heo.initThemeColor) heo.initThemeColor() 561 } 562 const t = saveToLocal.get('theme') 563 564 const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches 565 const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches 566 const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches 567 const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified 568 569 if (t === undefined) { 570 if (isLightMode) activateLightMode() 571 else if (isDarkMode) activateDarkMode() 572 else if (isNotSpecified || hasNoSupport) { 573 const now = new Date() 574 const hour = now.getHours() 575 const isNight = hour <= 8 || hour >= 22 576 isNight ? activateDarkMode() : activateLightMode() 577 } 578 window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) { 579 if (saveToLocal.get('theme') === undefined) { 580 e.matches ? activateDarkMode() : activateLightMode() 581 } 582 }) 583 } else if (t === 'light') activateLightMode() 584 else activateDarkMode() 585 586 const asideStatus = saveToLocal.get('aside-status') 587 if (asideStatus !== undefined) { 588 if (asideStatus === 'hide') { 589 document.documentElement.classList.add('hide-aside') 590 } else { 591 document.documentElement.classList.remove('hide-aside') 592 } 593 } 594 })(window)</script>
594<script>let tianliGPT_postURL = '*/p/*'; let tianliGPT_postSelector = '\#article-container';</script>
594<meta name="generator" content="Hexo 8.1.2"><link rel="alternate" href="/rss.xml" title="å¼ æ´ªHeo" type="application/atom+xml"> 595<link rel="alternate" href="/atom.xml" title="å¼ æ´ªHeo" type="application/rss+xml"> 596</head><body class="post"><style type="text/css">#loading-box { 597 -webkit-user-select: none; 598} 599#loading-box .loading-bg{ 600 display: flex; 601 width: 100%; 602 height: 100%; 603 position: fixed; 604 background: var(--heo-card-bg); 605 z-index: 1999; 606 opacity: 1; 607 pointer-events: all; 608} 609#loading-box.loaded .loading-bg{ 610 display: none; 611} 612body:has(#loading-box:not(.loaded)) { 613 background: var(--heo-card-bg) !important; 614} 615#loading-box .loading-img{ 616 width: 100px; 617 height: 100px; 618 margin: auto; 619 animation-duration: 0.2s; 620 animation-name: loadingAction; 621 animation-iteration-count: infinite; 622 animation-direction: alternate; 623} 624@keyframes loadingAction { 625 from { 626 opacity: 1; 627 } 628 to { 629 opacity: 0.6; 630 } 631} 632</style><div id="loading-box" onclick="heo.hideLoading();"><div class="loading-bg"><img class="loading-img nolazyload" alt="loading image" src="data:image/webp;base64,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"/></div></div><div id="web_bg"></div><div id="console"><div class="console_content"><div class="console-row console-row--top"><div class="console-user" id="consoleUser"><div class="console-user__skeleton" aria-hidden="true"><div class="console-user__skeleton-avatar"></div><div class="console-user__skeleton-meta"><div class="console-user__skeleton-line" style="width:42%"></div><div class="console-user__skeleton-line" style="width:64%"></div><span class="console-user__skeleton-tip">æ£å¨å è½½ä½ çæ°æ®â¦</span></div><div class="console-user__skeleton-actions"><span class="console-user__skeleton-chip"></span><span class="console-user__skeleton-btn"></span><span class="console-user__skeleton-btn"></span></div></div></div><div class="console-metrics console-metrics--hidden" id="consoleMetrics" style="display:none"><div class="console-metrics__cell console-metrics__cell--level"><span class="console-metrics__label">è¯è®ºç级</span><span class="console-metrics__lv" id="consoleMetricLv">â</span><div class="console-metrics__bar"><span class="console-metrics__progress" id="consoleMetricFill" style="width:0%"></span></div><span class="console-metrics__hint" id="consoleMetricHint"></span></div><div class="console-metrics__cell"><span class="console-metrics__label">è¯è®ºæ¬¡æ°</span><span class="console-metrics__num" id="consoleMetricCount">â</span></div><div class="console-metrics__cell"><span class="console-metrics__label">é¦è¯æ¬¡æ°</span><span class="console-metrics__num" id="consoleMetricFirst">â</span></div><div class="console-metrics__cell"><span class="console-metrics__label">é«è´¨éè¯è®º</span><span class="console-metrics__num" id="consoleMetricQuality">â</span></div></div></div><div class="console-notice" id="consoleUserNotice" style="display:none"></div><div class="console-row console-row--main"><div class="console-card console-posts"><div class="card-content"><div class="author-content-item-tips">å客</div><div class="card-hor-content"><span class="author-content-item-title">æè¿æç« </span><a class="go_to_recent_comments" href="/archives/" title="æè¿æç« " heotip="æ¥çå
¨é¨æç« "><i class="heoblogIcon icon-arrow-right-circle-fill"></i></a></div></div><ul class="console-posts__list"><li class="console-posts__item"><a class="console-posts__link" href="/p/kp6o6mwu.html" title="OpenClaw æ¥ç®¡ä½ çæ²¹ç´èæ¬ï¼è®© AI ç´æ¥è¯»æ¹ç½é¡µèæ¬ï¼
632ä¸ç¨åå¤å¶ç²è´´"><span class="console-posts__title">OpenClaw æ¥ç®¡ä½ çæ²¹ç´èæ¬ï¼è®© AI ç´æ¥è¯»æ¹ç½é¡µèæ¬ï¼ä¸ç¨åå¤å¶ç²è´´</span><time class="console-posts__date">09/14</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/kq0qyc9y.html" title="为 iPhone Duo å设计ï¼è¹æå®æ¹è®¾è®¡ååå
¨è§£è¯»"><span class="console-posts__title">为 iPhone Duo å设计ï¼è¹æå®æ¹è®¾è®¡ååå
¨è§£è¯»</span><time class="console-posts__date">09/11</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/0vmg6q9j.html" title="çå°äºæ·å®éªè´çAIè¯è®ºï¼å¼åäºæçæè"><span class="console-posts__title">çå°äºæ·å®éªè´çAIè¯è®ºï¼å¼åäºæçæè</span><time class="console-posts__date">09/11</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/j5ns9clc.html" title="å¦ä½å¨ç½é¡µæå
¥ livephoto ï¼å®åµç
§ç PVT å¨çº¿çæã卿JPGçæå·¥å
·ä¸åµå
¥å·¥å
·"><span class="console-posts__title">å¦ä½å¨ç½é¡µæå
¥ livephoto ï¼å®åµç
§ç PVT å¨çº¿çæã卿JPGçæå·¥å
·ä¸åµå
¥å·¥å
·</span><time class="console-posts__date">09/09</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/8p5a0k56.html" title="MacBookä¸è¿å
¥ä¼ç å
¨æ°éªä¿®ï¼åå åé±ç绿èHDMI欺éªå¨"><span class="console-posts__title">MacBookä¸è¿å
¥ä¼ç å
¨æ°éªä¿®ï¼åå åé±ç绿èHDMI欺éªå¨</span><time class="console-posts__date">09/04</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/5r2g9ie4.html" title="OpenClaw 2.0ï¼ç¨³å®æ§æåä¸å°ï¼æè¿è¿ç§»äºæçè®°å¿ç³»ç»"><span class="console-posts__title">OpenClaw 2.0ï¼ç¨³å®æ§æåä¸å°ï¼æè¿è¿ç§»äºæçè®°å¿ç³»ç»</span><time class="console-posts__date">09/03</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/6b10yftj.html" title="å°ä½ ç HeoID å¡çæ·»å å° Apple é±å
"><span class="console-posts__title">å°ä½ ç HeoID å¡çæ·»å å° Apple é±å
</span><time class="console-posts__date">08/31</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/c0jzc71f.html" title="æºè°±codingplanèç¨ç¨åº¦åæï¼åªç¨ GLM-5.3-Flash å¤ä¸å¤ç¨ï¼"><span class="console-posts__title">æºè°±codingplanèç¨ç¨åº¦åæï¼åªç¨ GLM-5.3-Flash å¤ä¸å¤ç¨ï¼</span><time class="console-posts__date">08/28</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/mrlh0a7v.html" title="软路ç±å
ç½ç©¿éè®¿é®æ¹æ¡å
¨é¾è·¯æç¨ï¼ä» ZeroTier å° Nginx åå° certd è¯ä¹¦ç®¡ç"><span class="console-posts__title">软路ç±å
ç½ç©¿éè®¿é®æ¹æ¡å
¨é¾è·¯æç¨ï¼ä» ZeroTier å° Nginx åå° certd è¯ä¹¦ç®¡ç</span><time class="console-posts__date">08/28</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/q6b3774w.html" title="BrowserSkill䏿ï¼è®©AIæ¥å
¥æµè§å¨ï¼è¿è½å½å¶å¨ä½æå®å¦ä¹ "><span class="console-posts__title">BrowserSkill䏿ï¼è®©AIæ¥å
¥æµè§å¨ï¼è¿è½å½å¶å¨ä½æå®å¦ä¹ </span><time class="console-posts__date">08/27</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/npa0251o.html" title="æä¸æç OpenClaw åéäºç¦èåè§£äº"><span class="console-posts__title">æä¸æç OpenClaw åéäºç¦èåè§£äº</span><time class="console-posts__date">08/27</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/ucrz6hhg.html" title="ntfsmac 䏿ï¼ä¸å
³ SIP 让 Mac 读å NTFS å ext 硬ç"><span class="console-posts__title">ntfsmac 䏿ï¼ä¸å
³ SIP 让 Mac 读å NTFS å ext 硬ç</span><time class="console-posts__date">08/24</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/1bwuf82b.html" title="个人å°é¡¹ç®vibecodingæ¹æ¡æ¨èï¼opencode spark 1.2 å zcode"><span class="console-posts__title">个人å°é¡¹ç®vibecodingæ¹æ¡æ¨èï¼opencode spark 1.2 å zcode</sp
632an><time class="console-posts__date">08/20</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/mgii3qy1.html" title="å享ä¸ä¸å客çå
¨æ°èåæç´¢"><span class="console-posts__title">å享ä¸ä¸å客çå
¨æ°èåæç´¢</span><time class="console-posts__date">08/19</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/3gr7k8xj.html" title="ç»DeepSeek-V4-Flashåä¸åç¼çï¼ZCodeè§è§åAgentæ¹æ¡"><span class="console-posts__title">ç»DeepSeek-V4-Flashåä¸åç¼çï¼ZCodeè§è§åAgentæ¹æ¡</span><time class="console-posts__date">08/14</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/lgodvfdh.html" title="Mole Mac 䏿ï¼çé¢ç²¾ç¾ï¼ä¼ç§å¥½ç¨çMacæ¸
çå·¥å
·"><span class="console-posts__title">Mole Mac 䏿ï¼çé¢ç²¾ç¾ï¼ä¼ç§å¥½ç¨çMacæ¸
çå·¥å
·</span><time class="console-posts__date">08/14</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/wh8h2uop.html" title="Agentation æ²¹ç´èæ¬ï¼è®©AIæåªæ¹åª,é
å Claude Code çå¼åç¥å¨"><span class="console-posts__title">Agentation æ²¹ç´èæ¬ï¼è®©AIæåªæ¹åª,é
å Claude Code çå¼åç¥å¨</span><time class="console-posts__date">08/12</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/tbp0pls8.html" title="æ´ªç»åå¾ç½é¡µçä¸çº¿ï¼è¿ä¸å¯ä»¥éæ¶éå°å¨çº¿å缩å¾çäº"><span class="console-posts__title">æ´ªç»åå¾ç½é¡µçä¸çº¿ï¼è¿ä¸å¯ä»¥éæ¶éå°å¨çº¿å缩å¾çäº</span><time class="console-posts__date">08/10</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/4c5g2me1.html" title="å享ä¸ä¸ææè¿å¶ä½çä¸äºAIé³ä¹ï¼ä»¥åè§£å³å±æéååé³è´¨çä¸äºå°æå·§"><span class="console-posts__title">å享ä¸ä¸ææè¿å¶ä½çä¸äºAIé³ä¹ï¼ä»¥åè§£å³å±æéååé³è´¨çä¸äºå°æå·§</span><time class="console-posts__date">08/10</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/0zlnja8m.html" title="æ´ªç»æ²æ¨é±¼æ¯æâ竹ç¥äºâ模å¼äºï¼å¯ä»¥èªå®ä¹é³æççµå竹ç¥äºApp"><span class="console-posts__title">æ´ªç»æ²æ¨é±¼æ¯æâ竹ç¥äºâ模å¼äºï¼å¯ä»¥èªå®ä¹é³æççµå竹ç¥äºApp</span><time class="console-posts__date">08/07</time></a></li></ul></div><div class="console-card console-posts" console-must-read="console-must-read"><div class="card-content"><div class="author-content-item-tips">å客</div><div class="card-hor-content"><span class="author-content-item-title">å¿
çæç« </span><a class="go_to_recent_comments" href="/must-read/" title="å¿
çæç« " heotip="æ¥çå¿
çç²¾é"><i class="heoblogIcon icon-arrow-right-circle-fill"></i></a></div></div><ul class="console-posts__list"><li class="console-posts__item"><a class="console-posts__link" href="/p/7a59rx04.html" title="è¿ä¸æ¬¡ï¼æä»¬å¬ç¹æææç"><span class="console-posts__title">è¿ä¸æ¬¡ï¼æä»¬å¬ç¹æææç</span><time class="console-posts__date">05/21</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/bp85fpdb.html" title="æ´ªç»åå¾åå¸ï¼æ¹é转å¾çæ ¼å¼ï¼æ¹éå缩å¾çå·¥å
·ï¼Mac/Windowsï¼"><span class="console-posts__title">æ´ªç»åå¾åå¸ï¼æ¹é转å¾çæ ¼å¼ï¼æ¹éå缩å¾çå·¥å
·ï¼Mac/Windowsï¼</span><time class="console-posts__date">04/15</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/drqm39ob.html" title="æ´ªç»åå¾åå¸ï¼ä¿åæµè§å¨å¾ç为æå®æ ¼å¼ãæåç½é¡µææå¾çãå±å¹æªå¾æä»¶"><span class="console-posts__title">æ´ªç»åå¾åå¸ï¼ä¿åæµè§å¨å¾ç为æå®æ ¼å¼ãæåç½é¡µææå¾çãå±å¹æªå¾æä»¶</span><time class="console-posts__date">03/29</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/iu5f3hvj.html" title="æ´ªç»æç©ºåå¸ï¼ä¸ä¸ªå¼å¾éçå客å龿åå"><span class="console-posts__title">æ´ªç»æç©ºåå¸ï¼ä¸ä¸ªå¼å¾éçå客å龿åå</span><time class="console-posts__date">03/20</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/cpw1bogx.html" title="å¦ä½åä½AIææ²ï¼ä»çææè¯ãææ²åä½ãä¸è¾å°é¢å°é³ä¹åè¡"><span class="console-posts__title">å¦ä½åä½AIææ²ï¼ä»çææè¯ãææ²åä½ãä¸è¾å°é¢å°é³ä¹åè¡</span><time class="console-posts__date">03/03</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/0tr5lmby.html" title="æ´ªç»åå²è®°å½åå¸ï¼æ éåå¨ä½ çæµè§å¨åå²è®°å½ï¼é²æ¢åå²è®°å½è¢«èªå¨å é¤"><span class="console-posts__title">æ´ªç»åå²è®°å½åå¸ï¼æ éåå¨ä½ çæµè§å¨åå²è®°å½ï¼é²æ¢åå²è®°å½è¢«èªå¨å é¤</span><time class="console-posts__date">02/25</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/5zo43meo.html" title="HeoAwards2025ï¼å¹´åº¦æå欢çå主"><span class="console-posts__title">HeoAwards2025ï¼å¹´åº¦æå欢çå主</span><time class="console-posts__date">11/04</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/a8cqpj9s.html" title="å客å
å¨å¹´è®°"><span class="console-posts__title">å客å
å¨å¹´è®°</span><time class="console-posts__date">10/31</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/j0xcp072.html" title="æ´ªç»çµåç« åå¸ï¼å¨çº¿ç»ä½ çPDFå¿«éçä¸çµåç« ãé
632ªç¼ç« ï¼ä½ ççç« å©æ"><span class="console-posts__title">æ´ªç»çµåç« åå¸ï¼å¨çº¿ç»ä½ çPDFå¿«éçä¸çµåç« ãéªç¼ç« ï¼ä½ ççç« å©æ</span><time class="console-posts__date">09/03</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/eq9bc5bn.html" title="æ´ªç»éå¡«åå¸ï¼æ ç»å½è¯è®ºç³»ç»èªå¨å¡«åä¿¡æ¯æä»¶ï¼Twikooçè¯è®ºç³»ç»èªå¨å¡«ä¿¡æ¯"><span class="console-posts__title">æ´ªç»éå¡«åå¸ï¼æ ç»å½è¯è®ºç³»ç»èªå¨å¡«åä¿¡æ¯æä»¶ï¼Twikooçè¯è®ºç³»ç»èªå¨å¡«ä¿¡æ¯</span><time class="console-posts__date">08/20</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/hun646rc.html" title="æ´ªç»éªååå¸ï¼è®ºåå¿«æ·åå¤ï¼èªå¨å¡«å
éæºçè¯ï¼æµè§å¨æä»¶"><span class="console-posts__title">æ´ªç»éªååå¸ï¼è®ºåå¿«æ·åå¤ï¼èªå¨å¡«å
éæºçè¯ï¼æµè§å¨æä»¶</span><time class="console-posts__date">08/01</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/d3go8ajr.html" title="å¦ä½ç»ææ¬æ·»å éèä¿¡æ¯ï¼æ´ªç»ææ¬ç²æ°´å°ç»æåæ·»å ä¸äºéèå
容"><span class="console-posts__title">å¦ä½ç»ææ¬æ·»å éèä¿¡æ¯ï¼æ´ªç»ææ¬ç²æ°´å°ç»æåæ·»å ä¸äºéèå
容</span><time class="console-posts__date">02/14</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/no66tkfp.html" title="å¨Macä¸é¨ç½²DeepSeek R1模åï¼è®¾ç½®ç¥è¯åºå¯¹è¯ãPromptç"><span class="console-posts__title">å¨Macä¸é¨ç½²DeepSeek R1模åï¼è®¾ç½®ç¥è¯åºå¯¹è¯ãPromptç</span><time class="console-posts__date">02/02</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/qs34pfrn.html" title="æå¨2025å¹´æ¨èçMac软件"><span class="console-posts__title">æå¨2025å¹´æ¨èçMac软件</span><time class="console-posts__date">12/23</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/f0d4.html" title="æ´ªç»ç
èåå¸ï¼ä¸ä¸ªæä»¶æå®å
å¤ç½åæ¢ï¼æ ¹æ®ç¯å¢èªå¨åæ¢æä½³Urlæè
IPå°å"><span class="console-posts__title">æ´ªç»ç
èåå¸ï¼ä¸ä¸ªæä»¶æå®å
å¤ç½åæ¢ï¼æ ¹æ®ç¯å¢èªå¨åæ¢æä½³Urlæè
IPå°å</span><time class="console-posts__date">11/06</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/d0b6.html" title="HeoAwards2024ï¼å¹´åº¦æå欢çå主"><span class="console-posts__title">HeoAwards2024ï¼å¹´åº¦æå欢çå主</span><time class="console-posts__date">10/30</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/ce30.html" title="å客äºå¨å¹´è®°"><span class="console-posts__title">å客äºå¨å¹´è®°</span><time class="console-posts__date">10/29</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/80f4b396.html" title="Textoutæä»¶ï¼å°ä½ çSketch设计稿æ¬å°åï¼ç¿»è¯ï¼æ¹éææ¬æ¿æ¢"><span class="console-posts__title">Textoutæä»¶ï¼å°ä½ çSketch设计稿æ¬å°åï¼ç¿»è¯ï¼æ¹éææ¬æ¿æ¢</span><time class="console-posts__date">04/24</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/463d306b.html" title="å客æç« å°é¢çåè¿ï¼ææ¯å¦ä½å¶ä½å客å°é¢ç"><span class="console-posts__title">å客æç« å°é¢çåè¿ï¼ææ¯å¦ä½å¶ä½å客å°é¢ç</span><time class="console-posts__date">06/29</time></a></li><li class="console-posts__item"><a class="console-posts__link" href="/p/f0d9c27a.html" title="æ°çsketch mirroræ æ³ä½¿ç¨ï¼æ¾ä¸å°è®¾å¤æä¹åï¼å¦ä½å®æ¶é¢è§sketchææ¡£ï¼"><span class="console-posts__title">æ°çsketch mirroræ æ³ä½¿ç¨ï¼æ¾ä¸å°è®¾å¤æä¹åï¼å¦ä½å®æ¶é¢è§sketchææ¡£ï¼</span><time class="console-posts__date">06/29</time></a></li></ul></div><div class="console-card" id="card-newest-comments"><div class="card-content"><div class="author-content-item-tips">äºå¨</div><div class="card-hor-content"><span class="author-content-item-title">æè¿è¯è®º</span><a class="go_to_recent_comments" href="/recentcomments/" title="æè¿è¯è®º" heotip="æ¥çæ´å¤æè¿è¯è®º"><i class="heoblogIcon icon-arrow-right-circle-fill"></i></a></div></div><div class="console-recent--list" id="console_recentcomments"><div class="console-comment-skeleton" aria-hidden="true"><div class="console-comment-skeleton__head"><span class="console-comment-skeleton__avatar"></span><span class="console-comment-skeleton__line" style="width:27%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--dim" style="width:34%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--time" style="width:12%"></span></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:86%"></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:62%"></div></div><div class="console-comment-skeleton" aria-hidden="true"><div class="console-comment-skeleton__head"><span class="console-comment-skeleton__avatar"></span><span class="console-comment-skeleton__line" style="width:27%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--dim" style="width:34%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--time" style="width:12%"></span></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:86%"></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:62%"></div></div><div class="console-comment-skeleton" aria-hidden="true"><div class="console-comment-skeleton__head"><span class="console-comment-skeleton__avatar"></span><span class="console-comment-skeleton__line" style="width:27%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--dim" style="width:34%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--time" style="width:12%"></span></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:86%"></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:62%"></div></div><div class="console-comment-skeleton" aria-hidden="true"><div class="console-comment-skeleton__head"><span class="console-comment-skeleton__avatar"></span><span class="console-comment-skeleton__line" style="width:27%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--dim" style="width:34%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--time" style="width:12%"></span></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:86%"></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:62%"></div></div><div class="console-comment-skeleton" aria-hidden="true"><div class="console-comment-skeleton__head"><span class="console-comment-skeleton__avatar"></span><span class="console-comment-skeleton__line" style="width:27%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--dim" style="width:34%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--time" style="width:12%"></span></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:86%"></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:62%"></div></div><div class="console-comment-skeleton" aria-hidden="true"><div class="console-comment-skeleton__head"><span class="console-comment-skeleton__avatar"></span><span class="console-comment-skeleton__line" style="width:27%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--dim" style="width:34%"></span><span class="console-comment-skeleton__line console-comment-skeleton__line--time" style="width:12%"></span></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:86%"></div><div class="console-comment-skeleton__line console-comment-skeleton__line--content" style="width:62%"></div></div></div></div></div><div class="button-group"><div class="console-btn-item" id="consoleDarkMode"> <button class="darkmode_switchbutton" onclick="rm.switchDarkMode()" title="æ¾ç¤ºæ¨¡å¼åæ¢" href="javascript:void(0);" heotip="æ¾ç¤ºæ¨¡å¼åæ¢"><i class="heoblogIcon icon-moon-clear-fill" style="font-size: 1rem;"></i></button></div><div class="console-btn-item" id="consoleHideAside"><button class="asideSwitch" onclick="heo.hideAsideBtn()" title="è¾¹æ æ¾ç¤ºæ§å¶" heotip="è¾¹æ æ¾ç¤ºæ§å¶"><i class="heoblogIcon icon-side-bar-fill"></i></button></div><div class="console-btn-item" id="consoleKeyboard">
632<button class="keyboard-switch" onclick="heo.keyboardToggle()" title="å¿«æ·é®å¼å
³" heotip="å¿«æ·é®å¼å
³"><i class="heoblogIcon icon-keyboard-box-fill"></i></button></div><div class="console-btn-item" id="consoleMusic"><button class="music-switch" onclick="heo.musicToggle()" title="é³ä¹å¼å
³" heotip="é³ä¹å¼å
³"><i class="heoblogIcon icon-disc-fill"></i></button></div></div></div><div class="console-mask" onclick="heo.hideConsole()" href="javascript:void(0);"></div></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="site-data"><div class="data-item is-center"><div class="data-item-link"><a href="/archives/"><div class="headline">æç« </div><div class="length-num">1091</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/tags/"><div class="headline">æ ç¾</div><div class="length-num">77</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/categories/"><div class="headline">åç±»</div><div class="length-num">10</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/recentcomments/"><div class="headline">è¯è®º</div><div class="length-num twikoo_allcount"></div></a></div></div></div><div class="card-widget heo-right-widget wechat" id="card-wechat-sidebar" onclick="typeof pjax !== 'undefined' && pjax.loadUrl ? pjax.loadUrl('/rss/') : (window.location.href = '/rss/')"><div class="wechat-card-left"><svg class="wechat-card-icon" viewBox="0 0 120 116" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><g fill="currentColor"><path d="M47.5360966,2.11813832 C82.1030966,-8.42086168 99.7190966,23.7951383 99.7190966,23.7951383 C93.3530966,20.3221383 74.2520966,16.4641383 53.8020966,27.0751383 C33.3520966,37.6861383 29.1070966,60.8391383 29.1070966,60.8391383 C20.7940966,51.9691383 20.4170966,37.6691383 20.4170966,37.6691383 C21.4000966,10.8301383 47.5360966,2.11813832 47.5360966,2.11813832 Z"></path><path d="M36.8570966,112.563138 C-13.1669034,102.868138 -1.78590339,59.1671383 10.7210966,39.9161383 C10.7210966,39.9161383 10.1580966,66.8951383 36.1550966,81.7911383 C36.1550966,81.7911383 39.2460966,83.1961383 38.2630966,87.6921383 L37.2790966,93.4531383 C37.2790966,93.4531383 35.9790966,97.3881383 38.4560966,97.8091383 C38.4560966,97.8091383 39.2470966,97.8091383 41.0730966,96.5441383 L50.6290966,90.2211383 C50.6290966,90.2211383 52.5960966,88.8161383 55.1250966,89.2371383 C57.6540966,89.6591383 73.8140966,93.8751383 89.8330966,80.5261383 C89.8320966,80.5261383 86.8820966,122.259138 36.8570966,112.563138 Z"></path><path d="M87.0220966,108.770138 C90.2540966,107.225138 105.992097,88.6751383 98.5430966,63.5231383 C91.0940966,38.3711383 65.8030966,32.7501383 65.8030966,32.7501383 C78.7310966,27.2701383 93.9070966,31.3441383 93.9070966,31.3441383 C116.952097,38.0891383 119.622097,60.0111383 119.622097,60.0111383 C124.118097,99.2141383 87.0220966,108.770138 87.0220966,108.770138 L87.0220966,108.770138 Z"></path></g></svg><div class="wechat-card-text">å
¬ä¼å·è®¢é
</div></div><i class="wechat-card-arrow heoblogIcon icon-arrow-right-line" aria-hidden="true"></i></div><hr/><span class="sidebar-menu-item-title">åè½</span><div class="sidebar-menu-item"><a class="darkmode_switchbutton menu-child" onclick="rm.switchDarkMode()" title="æ¾ç¤ºæ¨¡å¼åæ¢" href="javascript:void(0);" rel="external nofollow"><i class="heoblogIcon icon-moon-clear-fill" style="font-size: 1rem;"></i><span>æ¾ç¤ºæ¨¡å¼</span></a></div><div class="back-menu-list-groups"><div class="back-menu-list-group"><div class="back-menu-list-title">å客</div><div class="back-menu-list"><a class="back-menu-item" href="https://zhheo.com/" rel="external nofollow" title="访é®ä¸»é¡µ" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/20232e121c3fb2daa71897d26a515e030f49073402.png!cover_mini" alt="䏻页徿 "/><span class="back-menu-item-text">主页</span></a><a class="back-menu-item" href="/" title="访é®å客" target="_self"><img class="back-menu-item-icon" src="https://p.zhheo.com/20234681e06b8e086aa5b15481cb89fd38c7071002.png!cover_mini" alt="å客徿 "/><span class="back-menu-item-text">å客</span></a><a class="back-menu-item" href="https://log.zhheo.com/" rel="external nofollow" title="访é®HeoLog" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/ohhrmU24190881786350701280.avif!cover_mini" alt="HeoLog徿 "/><span class="back-menu-item-text">HeoLog</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">åºç¨</div><div class="back-menu-list"><a class="back-menu-item" href="/p/671f98c8.html" title="è®¿é®æ´ªç»æ²æ¨é±¼" target="_self"><img class="back-menu-item-icon" src="https://p.zhheo.com/20238366720da498fb5755e8c714128097fc074102.png!cover_mini" alt="æ´ªç»æ²æ¨é±¼å¾æ "/><span class="back-menu-item-text">æ´ªç»æ²æ¨é±¼</span></a><a class="back-menu-item" href="https://apps.apple.com/cn/app/dns%E6%B5%8B%E9%80%9F/id6470105015" rel="external nofollow" title="访é®DNSæµé" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/xnbgWd22890381711434808769.png!cover_mini" alt="DNSæµé徿 "/><span class="back-menu-item-text">DNSæµé</span></a><a class="back-menu-item" href="https://yatu.zhheo.com/" rel="external nofollow" title="è®¿é®æ´ªç»åå¾" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/2700020260810082606.webp!cover_mini" alt="æ´ªç»åå¾å¾æ "/><span class="back-menu-item-text">æ´ªç»åå¾</span></a><a class="back-menu-item" href="https://blog.zhheo.com/p/9yuhxjpl.html" title="è®¿é®æ´ªç»å¨å¾" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/9511820260810082629.webp!cover_mini" alt="æ´ªç»å¨å¾å¾æ "/><span class="back-menu-item-text">æ´ªç»å¨å¾</span></a><a class="back-menu-item" href="https://pdf.zhheo.com/" rel="external nofollow" title="è®¿é®æ´ªç»çµåç« " target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/0621720260810082655.webp!cover_mini" alt="æ´ªç»çµåç« å¾æ "/><span class="back-menu-item-text">æ´ªç»çµåç« </span></a><a class="back-menu-item" href="https://blog.zhheo.com/p/0tr5lmby.html" title="è®¿é®æ´ªç»åå²è®°å½" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/4622420260810082719.webp!cover_mini" alt="æ´ªç»åå²è®°å½å¾æ "/><span class="back-menu-item-text">æ´ªç»åå²è®°å½</span></a><a class="back-menu-item" href="https://sky.zhheo.com/" rel="external nofollow" title="è®¿é®æ´ªç»æç©º" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/0hcpzw25790881786416297110.png!cover_mini" alt="æ´ªç»æç©ºå¾æ "/><span class="back-menu-item-text">æ´ªç»æç©º</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">æå¡</div><div class="back-menu-list"><a class="back-menu-item" href="https://ai.zhheo.com/" rel="external nofollow" title="è®¿é®æ´ªå¢¨AI" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/EOjpsa22490781720592484600.png!cover_mini" alt="洪墨AI徿 "/><span class="back-menu-item-text">洪墨AI</span></a><a class="back-menu-item" href="https://wechat.zhheo.com/" rel="external nofollow" title="访é®å
¬ä¼å·" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/202319c8ac4827b3c198908bfebf6867d971074702.png!cover_mini" alt="å
¬ä¼å·å¾æ "/><span class="back-menu-item-text">å
¬ä¼å·</span></a><a class="back-menu-item" href="https://zhheo.com/music/" rel="external nofollow" title="访é®é³ä¹ææ¾" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/3543920260810082730.webp!cover_mini" alt="é³ä¹ææ¾å¾æ "/><span class="back-menu-item-text">é³ä¹ææ¾</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">表æ
</div><div class="back-menu-list"><a class="back-menu-item" href="/p/2daa6a7b.html" title="访é®Heo" target="_self"><img class="back-menu-item-icon" src="https://p.zhheo.com/2023af0657c4847e2b4ebc558f382ca5119c073402.png!cover_mini" alt="Heo徿 "/><span class="back-menu-item-text">Heo</span></a><a class="back-menu-item" href="/p/5115d869.html" title="访é®çç«äºæ¨" target="_self"><img class="back-menu-item-icon" src="https://p.zhheo.com/2023ce09680d1c1b2c334a6f832a7db9336f074402.png!cover_mini" alt="çç«äºæ¨å¾æ "/><span class="back-menu-item-text">çç«äºæ¨</span></a></div></div><a class="back-menu-bottom-btn" href="https://zhheo.com/" rel="external nofollow" target="_blank"><img class="back-menu-bottom-btn-icon" src="https://p.zhheo.com/8DSTSS20990281646044689944.PNG!cover_mini" alt="è¿å主ç«å¾æ "/><span class="back-menu-bottom-btn-text">æ´å¤æç项ç®</span></a></div><div class="menus_items"><div class="menus_item"><button class="site-page" type="button" aria-haspopup="true" aria-expanded="false"><span> æåº</span><i class="fas fa-chevron-down expand"></i></button><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw ri-file-list-3-fill"></i><span> å
¨é¨æç« </span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw ri-folders-fill"></i><span>
632 åç±»å表</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw ri-price-tag-3-fill"></i><span> æ ç¾å表</span></a></li></ul></div><div class="menus_item"><button class="site-page" type="button" aria-haspopup="true" aria-expanded="false"><span> 䏿 </span><i class="fas fa-chevron-down expand"></i></button><ul class="menus_item_child"><li><a class="site-page child" href="/categories/%E6%88%91%E7%9A%84%E9%A1%B9%E7%9B%AE/"><i class="fa-fw ri-apps-2-fill"></i><span> æç项ç®</span></a></li><li><a class="site-page child" href="/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"><i class="fa-fw ri-lightbulb-fill"></i><span> ç»éªå享</span></a></li><li><a class="site-page child" href="/categories/%E8%BD%AF%E4%BB%B6%E6%8E%A8%E8%8D%90/"><i class="fa-fw ri-download-cloud-fill"></i><span> 软件æ¨è</span></a></li></ul></div><div class="menus_item"><button class="site-page" type="button" aria-haspopup="true" aria-expanded="false"><span> åé¾</span><i class="fas fa-chevron-down expand"></i></button><ul class="menus_item_child"><li><a class="site-page child" target="_blank" rel="noopener external nofollow" href="https://sky.zhheo.com"><i class="fa-fw ri-rss-fill"></i><span> æç« æ¨è</span></a></li><li><a class="site-page child" href="/link/"><i class="fa-fw ri-group-fill"></i><span> åé¾å表</span></a></li></ul></div><div class="menus_item"><button class="site-page" type="button" aria-haspopup="true" aria-expanded="false"><span> æç</span><i class="fas fa-chevron-down expand"></i></button><ul class="menus_item_child"><li><a class="site-page child" href="/equipment/"><i class="fa-fw ri-device-fill"></i><span> æçè£
å¤</span></a></li><li><a class="site-page child" href="/stats/"><i class="fa-fw ri-bar-chart-fill"></i><span> æ°æ®ç»è®¡</span></a></li><li><a class="site-page child" href="/about/"><i class="fa-fw ri-contacts-fill"></i><span> å
³äºæ¬ç«</span></a></li></ul></div></div><span class="sidebar-menu-item-title">æ ç¾</span><div class="card-widget card-tags card-archives card-webinfo card-allinfo"><div class="item-headline"><i class="heoblogIcon icon-price-tag-3-fill"></i><span>æ ç¾</span></div><div class="card-tag-cloud"><a href="/tags/%E5%A3%81%E7%BA%B8/" style="font-size: 1em;">å£çº¸<sup>1</sup></a> <a href="/tags/%E8%BF%90%E7%BB%B4/" style="font-size: 1em;">è¿ç»´<sup>35</sup></a> <a href="/tags/%E4%BD%93%E9%AA%8C%E5%AE%98/" style="font-size: 1em;">ä½éªå®<sup>4</sup></a> <a href="/tags/iOS/" style="font-size: 1em;">iOS<sup>53</sup></a> <a href="/tags/%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0/" style="font-size: 1em;">读书ç¬è®°<sup>6</sup></a> <a href="/tags/%E8%A1%A8%E6%83%85/" style="font-size: 1em;">表æ
<sup>4</sup></a> <a href="/tags/AIGC/" style="font-size: 1em;">AIGC<sup>77</sup></a> <a href="/tags/Docker/" style="font-size: 1em;">Docker<sup>7</sup></a> <a href="/tags/Photoshop/" style="font-size: 1em;">Photoshop<sup>28</sup></a></div></div><span class="sidebar-menu-item-title">ç±åçµèµå©<a class="sidebar-menu-item-title-link" href="https://afdian.com/a/zhheo" rel="external nofollow" target="_blank">èµå©</a></span><div class="sidebar-menu-item"><div class="power-list"><div class="power-item"><div class="power-item-body"><div class="power-item-link"><a href="https://www.gaicas.com/" rel="external nofollow" target="_blank" title="è䏿¥è®°"><img class="power-item-avatar" src="https://p.zhheo.com/XtMtWK21190581715332271128.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>è䏿¥è®°</span></a></div><div class="power-item-link"><a href="https://blog.adil.com.cn/" rel="external nofollow" target="_blank" title="Adil"><img class="power-item-avatar" src="https://p.zhheo.com/KKKL6z23990381615774419596.jpg!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>Adil</span></a></div><div class="power-item-link"><a href="https://blog.528688.cn/" rel="external nofollow" target="_blank" title="HaoUp"><img class="power-item-avatar" src="https://p.zhheo.com/ibaU5h25590281771288615542.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/>
632<span>HaoUp</span></a></div><div class="power-item-link"><a href="https://apizero.cn/" rel="external nofollow" target="_blank" title="ææ°æ¬æº"><img class="power-item-avatar" src="https://p.zhheo.com/5c28me20490681780846024839.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>ææ°æ¬æº</span></a></div><div class="power-item-link"><a href="https://yayatool.com/" rel="external nofollow" target="_blank" title="é¸é¸å·¥å
·"><img class="power-item-avatar" src="https://p.zhheo.com/XyVRgf25290881786348432234.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>é¸é¸å·¥å
·</span></a></div><div class="power-item-link"><a href="https://www.mysticstars.cn/" rel="external nofollow" target="_blank" title="MysticStars"><img class="power-item-avatar" src="https://p.zhheo.com/FVZw4022790481711968147995.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>MysticStars</span></a></div><div class="power-item-link"><a href="https://tempmail100.com/" rel="external nofollow" target="_blank" title="Temp Mail"><img class="power-item-avatar" src="https://p.zhheo.com/7PCfvp24590681749693705414.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>Temp Mail</span></a></div><div class="power-item-link"><a href="https://wangkay.top/" rel="external nofollow" target="_blank" title="å°å¦å®¢æ "><img class="power-item-avatar" src="https://p.zhheo.com/vGJj7g25390281739507333970.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>å°å¦å®¢æ </span></a></div><div class="power-item-link"><a href="https://www.haozhuji.net/" rel="external nofollow" target="_blank" title="好主æº"><img class="power-item-avatar" src="https://p.zhheo.com/hYVS8m23390181767925293219.webp!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>好主æº</span></a></div><div class="power-item-link"><a href="https://liyinwaihe.com/" rel="external nofollow" target="_blank" title="çä¼"><img class="power-item-avatar" src="https://p.zhheo.com/5D9YA723390581746698433839.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>çä¼</span></a></div><div class="power-item-link"><a href="https://webfem.com/" rel="external nofollow" target="_blank" title="webfem"><img class="power-item-avatar" src="https://p.zhheo.com/xGl0kW2439098
6321758181243260.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>webfem</span></a></div><div class="power-item-link"><a href="https://www.tsycdn.com/" rel="external nofollow" target="_blank" title="èæäºCDN"><img class="power-item-avatar" src="https://p.zhheo.com/1IHJIH22790481776675567193.png!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>èæäºCDN</span></a></div><div class="power-item-link"><a href="https://xifeng.net/" rel="external nofollow" target="_blank" title="西é£å¾äº"><img class="power-item-avatar" src="https://p.zhheo.com/HQJZDR23491181762744594785.webp!cover" alt="" loading="lazy" onerror="this.style.display='none'"/><span>西é£å¾äº</span></a></div></div></div></div></div><span class="sidebar-menu-item-title">ç½ç«ä¿¡æ¯</span><div class="webinfo"><div class="webinfo-item"><div class="webinfo-item-title"><i class="item-icon heoblogIcon icon-file-word-fill"></i><div class="item-name">å
¨ç«åæ° :</div></div><div class="item-count">923.7k</div></div></div></div></div><div id="keyboard-tips"> <div class="keyboardTitle">å客快æ·é®</div><div class="keybordList"> <div class="keybordItem" data-action="keyboard"><div class="keyGroup"><div class="key">shift </div><div class="key">K </div></div><div class="keyContent"> <div class="content">å
³éå¿«æ·é®åè½</div></div></div><div class="keybordItem" data-action="console"><div class="keyGroup"><div class="key">shift </div><div class="key">A </div></div><div class="keyContent"> <div class="content">æå¼ä¸æ§å°</div></div></div><div class="keybordItem" data-action="music"><div class="keyGroup"><div class="key">shift </div><div class="key">M</div></div><div class="keyContent"> <div class="content" id="keyboard_Tips_Music">ææ¾é³ä¹</div></div></div><div class="keybordItem" data-action="darkmode"><div class="keyGroup"><div class="key">shift </div><div class="key">D</div></div><div class="keyContent"> <div class="content" id="keyboard_Tips_Darkmode">æ·±è²/æµ
è²æ¾ç¤ºæ¨¡å¼</div></div></div><div class="keybordItem" data-action="search"><div class="keyGroup"><div class="key">â/Ctrl</div><div class="key">F</div></div><div class="keyContent"> <div class="content">ç«å
æç´¢</div></div></div><div class="keybordItem keyboard-shortcut-tts" data-action="tts" hidden="hidden"><div class="keyGroup"><div class="key">shift </div><div class="key">T</div></div><div class="keyContent"> <div class="content">æç« å
¨ææè¯»</div></div></div><div class="keybordItem keyboard-shortcut-podcast" data-action="podcast" hidden="hidden"><div class="keyGroup"><div class="key">shift </div><div class="key">P</div></div><div class="keyContent"> <div class="content">æç« æå®¢éªè¯»</div></div></div><div class="keybordItem" data-action="chat"><div class="keyGroup"><div class="key">shift </div><div class="key">C</div></div><div class="keyContent"> <div class="content">æå¼AIæºè½å¯¹è¯</div></div></div><div class="keybordItem" data-action="home"><div class="keyGroup"><div class="key">shift </div><div class="key">H</div></div><div class="keyContent"> <div class="content">è¿åé¦é¡µ</div></div></div><div class="keybordItem" data-action="links"><div class="keyGroup"><div class="key">shift </div><div class="key">L</div></div><div class="keyContent"> <div class="content">åé¾é¡µé¢</div></div></div></div></div><div class="post" id="body-wrap"><button class="post-audio-prompt sr-only" type="button" data-audio-target="post-tts" aria-label="æ¬ææ¯æå
¨æè¯é³æè¯»ãæç©ºæ ¼é®æè
åè½¦é®ææ¾åæåã"></button><header class="post-bg" id="page-header" style="background-image: url('https://p.zhheo.com/wrUReo24490481714022264296.png!cover')"><nav id="nav" onclick="heo.onNavBlankClickCloseConsole(event)"><div id="nav-inner"><div id="nav-left"><div id="toggle-menu"><a class="site-page" rel="nofollow" href="javascript:void(0);" title="èå" role="button"><i class="ri-menu-5-fill"></i></a></div><div class="back-home-button"><i class="back-home-button-icon heoblogIcon icon-apps-fill"></i><div class="back-menu-list-groups"><div class="back-menu-list-group"><div class="back-menu-list-title">å客</div><div class="back-menu-list"><a class="back-menu-item" href="https://zhheo.com/" rel="external nofollow" title="访é®ä¸»é¡µ" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/20232e121c3fb2daa71897d26a515e030f49073402.png!cover_mini" alt="䏻页徿 "/><span class="back-menu-item-text">主页</span></a><a class="back-menu-item" href="/" title="访é®å客" target="_self"><img class="back-menu-item-icon" src="https://p.zhheo.com/20234681e06b8e086aa5b15481cb89fd38c7071002.png!cover_mini" alt="å客徿 "/><span class="back-menu-item-text">å客</span></a><a class="back-menu-item" href="https://log.zhheo.com/" rel="external nofollow" title="访é®HeoLog" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/ohhrmU24190881786350701280.avif!cover_mini" alt="HeoLog徿 "/><span class="back-menu-item-text">HeoLog</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">åºç¨</div><div class="back-menu-list"><a class="back-menu-item" href="/p/671f98c8.html" title="è®¿é®æ´ªç»æ²æ¨é±¼" target="_self"><img class="back-menu-item-icon" src="https://p.zhheo.com/20238366720da498fb5755e8c714128097fc074102.png!cover_mini" alt="æ´ªç»æ²æ¨é±¼å¾æ "/><span class="back-menu-item-text">æ´ªç»æ²æ¨é±¼</span></a><a class="back-menu-item" href="https://apps.apple.com/cn/app/dns%E6%B5%8B%E9%80%9F/id6470105015" rel="external nofollow" title="访é®DNSæµé" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/xnbgWd22890381711434808769.png!cover_mini" alt="DNSæµé徿 "/><span class="back-menu-item-text">DNSæµé</span></a><a class="back-menu-item" href="https://yatu.zhheo.com/" rel="external nofollow" title="è®¿é®æ´ªç»åå¾" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/2700020260810082606.webp!cover_mini" alt="æ´ªç»åå¾å¾æ "/><span class="back-menu-item-text">æ´ªç»åå¾</span></a><a class="back-menu-item" href="https://blog.zhheo.com/p/9yuhxjpl.html" title="è®¿é®æ´ªç»å¨å¾" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/9511820260810082629.webp!cover_mini" alt="æ´ªç»å¨å¾å¾æ "/><span class="back-menu-item-text">æ´ªç»å¨å¾</span></a><a class="back-menu-item" href="https://pdf.zhheo.com/" rel="external nofollow" title="è®¿é®æ´ªç»çµåç« " target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/0621720260810082655.webp!cover_mini" alt="æ´ªç»çµåç« å¾æ "/><span class="back-menu-item-text">æ´ªç»çµåç« </span></a><a class="back-menu-item" href="https://blog.zhheo.com/p/0tr5lmby.html" title="è®¿é®æ´ªç»åå²è®°å½" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/4622420260810082719.webp!cover_mini" alt="æ´ªç»åå²è®°å½å¾æ "/><span class="back-menu-item-text">æ´ªç»åå²è®°å½</span></a><a class="back-menu-item" href="https://sky.zhheo.com/" rel="external nofollow" title="è®¿é®æ´ªç»æç©º" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/0hcpzw25790881786416297110.png!cover_mini" alt="æ´ªç»æç©ºå¾æ "/><span class="back-menu-item-text">æ´ªç»æç©º</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">æå¡</div><div class="back-menu-list"><a class="back-menu-item" href="https://ai.zhheo.com/" rel="external nofollow" title="è®¿é®æ´ªå¢¨AI" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/EOjpsa22490781720592484600.png!cover_mini" alt="洪墨AI徿 "/><span class="back-menu-item-text">洪墨AI</span></a><a class="back-menu-item" href="https://wechat.zhheo.com/" rel="external nofollow" title="访é®å
¬ä¼å·" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/202319c8ac4827b3c198908bfebf6867d971074702.png!cover_mini" alt="å
¬ä¼å·å¾æ "/><span class="back-menu-item-text">å
¬ä¼å·</span></a><a class="back-menu-item" href="https://zhheo.com/music/" rel="external nofollow" title="访é®é³ä¹ææ¾" target="_blank"><img class="back-menu-item-icon" src="https://p.zhheo.com/upload/2026/08/10/webp/3543920260810082730.webp!cover_mini" alt="é³ä¹ææ¾å¾æ "/><span class="back-menu-item-text">é³ä¹ææ¾</span></a></div></div><div class="back-menu-list-group"><div class="back-menu-list-title">表æ
</div><div class="back-menu-list"><a class="back-menu-item" href="/p/2daa6a7b.html" title="访é®Heo" target="_self"><img class="back-menu-item-icon" src="https://p.zhheo.com/2023af0657c4847e2b4ebc558f382ca5119c073402.png!cover_mini" alt="Heo徿 "/><span class="back-menu-item-text">Heo</span></a><a class="back-menu-item" href="/p/5115d869.html" title="访é®çç«äºæ¨" target="_self"><img class="back-menu-item-icon" src="https://p.zhheo.com/2023ce09680d1c1b2c334a6f832a7db9336f074402.png!cover_mini" alt="çç«äºæ¨å¾æ "/><span class="back-menu-item-text">çç«äºæ¨</span></a></div></div><a class="back-menu-bottom-btn" href="https://zhheo.com/" rel="external nofollow" target="_blank"><img class="back-menu-bottom-btn-icon" src="https://p.zhheo.com/8DSTSS20990281646044689944.PNG!cover_mini" alt="è¿å主ç«å¾æ "/><span class="back-menu-bottom-btn-text">æ´å¤æç项ç®</span></a></div></div><a id="site-name" href="/" title="è¿åå客主页" heotip="è¿åå客主页"><i class="heoblogIcon icon-heologo" style="font-size: 16px;"></i></a><div class="nav-button" id="nav-update" style="display:none"><a class="site-page" href="javascript:void(0);" title="åç°æ°çæ¬ï¼ç¹å»æ´æ°" heotip="åç°æ°çæ¬ï¼ç¹å»æ´æ°" rel="nofollow"><i class="heoblogIcon icon-arrow-up-line"></i><span class="nav-update-text">æ°æ´æ°</span></a></div></div><div id="page-name"><a id="page-name-text" onclick="btf.scrollToDest(0, 500)" title="è¿åé¡¶é¨"></a></div><div id="nav-middle"><div class="menus_items"><div class="menus_item"><button class="site-page" type="button" aria-haspopup="true" aria-expanded="false"><span> æåº</span><i class="fas fa-chevron-down expand"></i></button><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw ri-file-list-3-fill"></i><span> å
¨é¨æç« </span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw ri-folders-fill"></i><span>
632 åç±»å表</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw ri-price-tag-3-fill"></i><span> æ ç¾å表</span></a></li></ul></div><div class="menus_item"><button class="site-page" type="button" aria-haspopup="true" aria-expanded="false"><span> 䏿 </span><i class="fas fa-chevron-down expand"></i></button><ul class="menus_item_child"><li><a class="site-page child" href="/categories/%E6%88%91%E7%9A%84%E9%A1%B9%E7%9B%AE/"><i class="fa-fw ri-apps-2-fill"></i><span> æç项ç®</span></a></li><li><a class="site-page child" href="/categories/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/"><i class="fa-fw ri-lightbulb-fill"></i><span> ç»éªå享</span></a></li><li><a class="site-page child" href="/categories/%E8%BD%AF%E4%BB%B6%E6%8E%A8%E8%8D%90/"><i class="fa-fw ri-download-cloud-fill"></i><span> 软件æ¨è</span></a></li></ul></div><div class="menus_item"><button class="site-page" type="button" aria-haspopup="true" aria-expanded="false"><span> åé¾</span><i class="fas fa-chevron-down expand"></i></button><ul class="menus_item_child"><li><a class="site-page child" target="_blank" rel="noopener external nofollow" href="https://sky.zhheo.com"><i class="fa-fw ri-rss-fill"></i><span> æç« æ¨è</span></a></li><li><a class="site-page child" href="/link/"><i class="fa-fw ri-group-fill"></i><span> åé¾å表</span></a></li></ul></div><div class="menus_item"><button class="site-page" type="button" aria-haspopup="true" aria-expanded="false"><span> æç</span><i class="fas fa-chevron-down expand"></i></button><ul class="menus_item_child"><li><a class="site-page child" href="/equipment/"><i class="fa-fw ri-device-fill"></i><span> æçè£
å¤</span></a></li><li><a class="site-page child" href="/stats/"><i class="fa-fw ri-bar-chart-fill"></i><span> æ°æ®ç»è®¡</span></a></li><li><a class="site-page child" href="/about/"><i class="fa-fw ri-contacts-fill"></i><span> å
³äºæ¬ç«</span></a></li></ul></div></div></div><div id="nav-right"><div class="nav-button" id="travellings_button"><a class="site-page" target="_blank" rel="noopener external nofollow" href="https://www.travellings.cn/train.html" title="åå¾å¼å¾é¡¹ç®" heotip="åå¾å¼å¾é¡¹ç®"><i class="heoblogIcon icon-train-line"></i></a></div><div class="nav-button" id="randomPost_button"><a class="site-page" onclick="toRandomPost()" title="éæºåå¾ä¸ä¸ªæç« " heotip="éæºåå¾ä¸ä¸ªæç« " rel="nofollow"><i class="heoblogIcon icon-dice-line"></i></a></div><div class="nav-button" id="search-button"><a class="site-page social-icon search" title="ç«å
æç´¢" href="javascript:void(0);" heotip="æç´¢" rel="nofollow"><i class="heoblogIcon icon-search-2-line"></i><span class="search-btn-spinner" aria-hidden="true"></span></a></div><div class="nav-button" id="postChatNav-button"><a class="site-page social-icon search" title="AI æºè½å¯¹è¯" href="javascript:togglePostChatContainer();" heotip="AI æºè½å¯¹è¯" rel="nofollow"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" style="width:22px;height:22px"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1558 7.11947 20.7134 8.12811ZM10 3H14V5H10C6.68629 5 4 7.68629 4 11C4 14.61 6.46208 16.9656 12 19.4798V17H14C17.3137 17 20 14.3137 20 11H22C22 15.4183 18.4183 19 14 19V22.5C9 20.5 2 17.5 2 11C2 6.58172 5.58172 3 10 3Z"></path></svg></a></div><div class="nav-button" id="nav-console"><a class="console_switchbutton" onclick="heo.toggleConsole()" title="䏿§å°" href="javascript:void(0);" rel="external nofollow" heotip="䏿§å°"><img class="console-icon-avatar" id="navConsoleAvatar" alt="ç¨æ·å¤´å" style="display:none"/><i class="heoblogIcon icon-dashboard-fill console-icon-dashboard"></i><i class="heoblogIcon icon-guanbi console-icon-close"></i></a></div><div class="nav-button" id="nav-totop" onclick="btf.scrollToDest(0, 500)" heotip="è¿åé¡¶é¨"><a class="totopbtn" rel="nofollow" href="javascript:void(0);" title="è¿åé¡¶é¨"><i class="heoblogIcon icon-arrow-up-line"></i><span id="percent">0</span></a></div></div></div></nav><div class="coverdiv" id="coverdiv"><img class="nolazyload" id="post-cover" src="https://p.zhheo.com/wrUReo24490481714022264296.png!cover" alt="cover" fetchpriority="high" decoding="async"></div>
632<div class="post-cover-aside"><a class="fancybox post-cover-aside-link" target="_blank" rel="noopener external nofollow" href="https://p.zhheo.com/wrUReo24490481714022264296.png!cover" data-fancybox="images" data-caption="æ´ªç»æ²æ¨é±¼App - æèææ²é³æè§£åç¥å¨"><img class="post-cover-aside-img nolazyload" src="https://p.zhheo.com/wrUReo24490481714022264296.png!cover" alt="cover"></a></div><div id="post-info"><div id="post-firstinfo"><div class="meta-firstline"><a class="post-meta-original" title="该æç« 为ååæç« ï¼æ³¨æçæåè®®" href="/cc/" heotip="该æç« 为ååæç« ï¼æ³¨æçæåè®®">åå</a><span class="post-meta-categories"><a class="post-meta-categories" href="/categories/%E6%88%91%E7%9A%84%E9%A1%B9%E7%9B%AE/" title="æç项ç®" heotip="æ¥çæ´å¤ æçé¡¹ç® åç±»çæç« ">æç项ç®</a></span></div></div><h1 class="post-title">æ´ªç»æ²æ¨é±¼App - æèææ²é³æè§£åç¥å¨</h1><div id="post-meta"><div class="meta-secondline"><span class="post-meta-date" heotip="è¿ç¯æç« åå»ºäº 6332022-10-14"><i class="heoblogIcon icon-calendar-todo-fill fas fa-calendar"></i><time datetime="2022-10-14T01:50:28.000Z" title="2022-10-14">2022-10-14</time></span><span class="post-meta-ttstime" heotip="ç¹å»ææ¾å ¨ææå®¢éªè¯»" data-tts-target="post-podcast" title="ç¹å»ææ¾å ¨ææå®¢éªè¯»"><i class="ri-mic-2-ai-fill" title="æå®¢éªè¯»"></i><div class="post-meta-ttstime-bars" role="progressbar" aria-label="æå®¢éªè¯»è¿åº¦"></div><span class="post-meta-ttstime-toggle" aria-hidden="true"><i class="ri-pause-fill post-meta-ttstime-icon-pause" hidden="hidden"></i><i class="ri-play-fill post-meta-ttstime-icon-play"></i></span></span><span class="post-meta-wechat" title="该æç« å·²å¨å ¬ä¼å·ä¸æ´æ°" heotip="该æç« å·²å¨å ¬ä¼å·ä¸æ´æ°" onclick="pjax.loadUrl('/rss/')"><i class="heoblogIcon icon-wechat-2-fill"></i>å ¬ä¼å·åæ¥</span><span class="post-meta-position" title="ä½è IPå±å°ä¸ºå京" heotip="ä½è IPå±å°ä¸ºå京"><i class="heoblogIcon icon-map-pin-fill"></i>å京</span><a class="post-meta-pv" id="" data-flag-title="ç度" href="/p/b7bb7832.html" title="ç度" heotip="ç度"><i class="heoblogIcon icon-fire-fill"></i><span class="post-meta-label">ç度:</span><span id="busuanzi_page_pv"><span class="heo-loading-spin" aria-hidden="true"><i></i></span></span></a><span class="post-meta-commentcount" title="è¯è®ºæ°" heotip="è¯è®ºæ°" onclick="heo.scrollTo('post-comment');"><i class="heoblogIcon icon-chat-1-fill"></i><span class="post-meta-label">è¯è®º:</span><a href="/p/671f98c8.html#post-comment"><span id="twikoo-count">0</span></a></span></div></div></div><div class="post-radius-bottom"></div></header><main class="layout" id="content-inner"><div id="post"><div class="post-ai" data-nosnippet="data-nosnippet"><div class="ai-title"><a class="ai-title-left" href="/p/ec57d8b2.html" title="æ¥ç详æ " heotip="äºè§£éè¿äººå·¥æºè½çææç« æè¦"><i class="heoblogIcon icon-jiqiren ai-title-icon"></i><div class="ai-title-text">æç« æè¦</div><div class="ai-link"><i class="heoblogIcon icon-arrow-right-s-line"></i></div></a><div class="ai-tag" id="ai-tag" heotip="äºè§£HeoGPT">HeoGPT</div></div><div class="ai-explanation">æ¬æä»ç»äºä½è å¼åç<strong>æ²æ¨é±¼åºç¨</strong>ã该åºç¨æ¯ä¸æ¬¾ç®æ´æç¨çæ²æ¨é±¼è½¯ä»¶ï¼æ¥ææ¼äº®ççé¢åä¼ç§ç交äºï¼æ¯æ<strong>èªå®ä¹é³æ</strong>ã<strong>èªå¨æ²å»</strong>ã<strong>鳿åå</strong>çå¤ç§åè½ï¼å¹¶å·²ä¸æ¶<strong>App Store</strong>ãæç« ä¸è¿æä¾äº<strong>å°ç¨åºç</strong>çæ²æ¨é±¼åºç¨ä¾ç¨æ·ä½éªã</div><div class="ai-suggestions"></div><div class="ai-input"><input class="ai-input-field" type="text" name="ai-question" id="ai-input-field" placeholder="é对è¿ä¸ªæç« æä»ä¹æ³é®çï¼"/><button class="ai-input-send ai-input-send-disabled" type="button" title="åé">åé<span class="ai-input-shortcut-mod"></span><i class="ri-corner-down-left-line ai-input-shortcut-enter"></i></button></div></div><div class="post-audio post-tts is-suppressed-by-podcast" id="post-tts" data-nosnippet="data-nosnippet" data-audio-channel="tts" data-audio-title="æ´ªç»æ²æ¨é±¼App - æèææ²é³æè§£åç¥å¨" data-audio-artist="å¼ æ´ªHeo" data-audio-cover="https://p.zhheo.com/wrUReo24490481714022264296.png!cover" data-audio-album="æç« æè¯»" data-audio-play-title="å ¨ææè¯»" data-audio-aria-play="ææ¾å ¨ææè¯»" data-audio-aria-pause="æåå ¨ææè¯»" data-audio-tip-play="ç¹å»ææ¾å ¨ææè¯»" data-audio-tip-pause="ç¹å»æåå ¨ææè¯»" data-audio-tip-continue="ç¹å»ç»§ç»ææ¾å ¨ææè¯»" data-audio-label-loading="å è½½ä¸..." data-audio-label-playing="æè¯»ä¸..." data-audio-label-continue="ç»§ç»ææ¾" data-audio-float-dock="heoTts"><div class="post-audio-progress" aria-hidden="true"></div><div class="post-audio-label"><i class="ri-speak-ai-line" aria-hidden="true"></i><span>æ¬ææ¯æå ¨ææè¯»</span></div><div class="post-audio-controls"><button class="post-audio-btn post-audio-speed" type="button" title="åæ¢ææ¾åé" aria-label="ææ¾åé x1" heotip="åæ¢ææ¾åé"><span class="post-audio-btn-label">x1</span></button><button class="post-audio-btn post-audio-play" type="button" title="ææ¾" aria-label="ææ¾å ¨ææè¯»" heotip="ææ¾å ¨ææè¯»"><span class="post-audio-btn-icon-slot"><i class="ri-play-fill post-audio-btn-play-icon"></i><span class="post-audio-btn-loader" aria-hidden="true"></span></span><span class="post-audio-btn-label">ææ¾</span></button><button class="post-audio-btn post-audio-pause" type="button" title="æå" aria-label="æåå ¨ææè¯»" hidden="hidden"><span class="post-audio-btn-icon-slot"><i class="ri-pause-fill"></i></span><span class="post-audio-btn-label">æå</span></button></div><audio class="post-audio-audio" preload="none" src="https://s3.zhheo.com/heoblog/tts/671f98c8.mp3?v=d22a8dd6"></audio></div><div class="post-audio post-podcast" id="post-podcast" data-nosnippet="data-nosnippet" data-audio-channel="podcast" data-audio-title="æ´ªç»æ²æ¨é±¼App - æèææ²é³æè§£åç¥å¨" data-audio-artist="å¼ æ´ªHeo" data-audio-cover="https://p.zhheo.com/wrUReo24490481714022264296.png!cover" data-audio-album="æç« æå®¢" data-audio-play-title="æå®¢éªè¯»" data-audio-aria-play="ææ¾å ¨ææå®¢éªè¯»" data-audio-aria-pause="æåå ¨ææå®¢éªè¯»" data-audio-tip-play="ç¹å»ææ¾å ¨ææå®¢éªè¯»" data-audio-tip-pause="ç¹å»æåå ¨ææå®¢éªè¯»" data-audio-tip-continue="ç¹å»ç»§ç»ææ¾å ¨ææå®¢éªè¯»" data-audio-label-loading="å è½½ä¸..." data-audio-label-playing="éªè¯»ä¸..." data-audio-label-continue="ç»§ç»ææ¾" data-audio-float-dock="heoPodcast" data-audio-lrc="https://s3.zhheo.com/heoblog/podcast/671f98c8.lrc?v=8e55c7ca"><div class="post-audio-progress" aria-hidden="true"></div><div class="post-audio-label"><i class="ri-mic-2-ai-line" aria-hidden="true"></i><span>æ¬ææ¯ææå®¢éªè¯»</span></div><div class="post-audio-controls"><button class="post-audio-btn post-audio-speed" type="button" title="åæ¢ææ¾åé" aria-label="ææ¾åé x1" heotip="åæ¢ææ¾åé"><span class="post-audio-btn-label">x1</span></button><button class="post-audio-btn post-audio-play" type="button" title="ææ¾" aria-label="ææ¾å ¨ææå®¢éªè¯»" heotip="ææ¾å ¨ææå®¢éªè¯»"><span class="post-audio-btn-icon-slot"><i class="ri-play-fill post-audio-btn-play-icon"></i><span class="post-audio-btn-loader" aria-hidden="true"></span></span><span class="post-audio-btn-label">ææ¾</span></button><button class="post-audio-btn post-audio-pause" type="button" title="æå" aria-label="æåå ¨ææå®¢éªè¯»" hidden="hidden"><span class="post-audio-btn-icon-slot"><i class="ri-pause-fill"></i></span><span class="post-audio-btn-label">æå</span></button></div><audio class="post-audio-audio" preload="none" src="https://s3.zhheo.com/heoblog/podcast/671f98c8.mp3?v=531c2233"></audio></div><article class="post-content" id="article-container"><p>ä¸å¼å§åæ²æ¨é±¼çæ¶å乿¯åå°ç½ä¸å¾å¤çµåæ¨é±¼çå¯åï¼ç¨äºä¸ä¸ç®åçå 个æ¨é±¼è½¯ä
633»¶ï¼ä¸ä¸ªæ¯çé¢ä»¤äººçªæ¯ï¼äº¤äºä½éªä»¤äººå´©æºï¼è¿æé³æå°è䏿ç¹å¤ªè´µäºã</p> 634<p>æä»¥æ³çè½å¤æ ¹æ®èªå·±çå好åç»éªä¸æå®åï¼æå»ºåºç°æå¨ç¨æ·ä½éªååè½æ§ä¸ä¹è®¸æ¯æå¼ºç鳿æ²å»åºç¨ã</p> 635<h2 id="设计"><a href="#设计" class="headerlink" title="设计"></a>设计</h2><p>å¨è¿ä¸ªè½¯ä»¶è®¾è®¡ç®æ´ï¼ä¿è¯å¨éç¼ç²æä½çæ åµä¸ç¹å»å±å¹ä»ç¶å¯ä»¥æ£å¸¸ç使ç¨ã</p> 636<p>å¹¶ä¸å¨åæ¢ä¸åç鳿ä¸ï¼å¨å好设置æä¸äºå°å¨ç»ï¼èä¸ä¸åç鳿è¿é åäºä¸åçèæ¯è²å½©ãæåè²å½©ã让人使ç¨èµ·æ¥æèµå¿æ¦ç®çæè§ã</p> 637<p>æææç»å为æèªå·±ç»å¶çï¼é³æä¹æ¯èªå·±éæ ·è°é³çï¼ç¸ä¿¡è½ç»ä½ 带æ¥ç¬ä¸æ äºçæè¶£ä½éªã</p> 638<p><img src= "/img/b_ld.png" data-lazy-src="https://p.zhheo.com/Fcn55Y21690281675909996936.jpeg!blogimg" alt="鸡å¥"></p> 639<p>并䏿¯æå¤ä¸ªè¯è¨ã</p> 640<p>æ¿è¯ºæ 广åã</p> 641<h2 id="交äº"><a href="#交äº" class="headerlink" title="交äº"></a>交äº</h2><p>å¨äº¤äºä¸ä¸»è¦ä»ç¶éè¿ç¹å»æä½æ¥è§¦åé³æï¼æ¯è¾å°é¾çæ¯ç¹å»æ¯å¨æä¸æ¶è§¦å鳿ï¼è䏿¯æ¬èµ·ï¼è¿æ ·ææ´å¥½çææãå¨SwiftUIä¸å¶ä½è¿ç§è¿æ¯è¾å°é¾ãæåè¿æ¯å æäºã</p> 642<p>æ¯è¾æ¹ä¾¿çç¹æ¯æ¯å¦æ²æ¨é±¼æ¶ï¼æå¼å§äººä»¬çå¿æ æ»æ¯ææå¹³éï¼ä¸å¼å§ä¼æ¯è¾æ ¢ä¸äºï¼éçæ¶é´çæ¨ç§»ä¼è¶æ¥è¶å¿«ããæ²æ¨é±¼ãå ç½®äºå个é度ï¼åå«åä¸ºãæ·±éããçå½ããä¹ç« ãã迸åããå个é度å¯ä»¥å¨ä¸»çé¢å°±å¯ä»¥ç¹å»åæ¢ãä¸éè¦æ¯æ¬¡è°èé度é½è¦ç¹å¼è®¾ç½®ã</p> 643<p><img src= "/img/b_ld.png" data-lazy-src="https://p.zhheo.com/zACz9j20790281675910047006.jpeg!blogimg" alt="å好设置"></p> 644<p>å¹¶ä¸å¯ä»¥å¨ä¸»çé¢å°±å¯ä»¥åæ¢èªå¨ææ¾ï¼ä¸éè¦è¿å ¥è®¾ç½®ä¸ï¼ä¹ä¸éè¦è¿å¤ä»»å¡ç»ææç¨åºãä½ å¯ä»¥å¨è®¾ç½®æé®æè¾¹å°±ç¹å»åæ¢ã</p> 645<p>ææ¶åè¿äºäº¤äºç»èå°±åå³äºå·¥å ·ç±»è½¯ä»¶ç好ç¨ä¸å¦ã</p> 646<h2 id="åè½"><a href="#åè½" class="headerlink" title="åè½"></a>åè½</h2><ul> 647<li><strong>ä¸ç¾æ¬¾</strong>鳿ï¼<strong>æ°ç¾ä¸ª</strong>é³é¢æä»¶æ éç ç©</li> 648<li>èªå®ä¹é³æï¼æ¯æå½é³åå¯¼å ¥é³é¢æä»¶ãèªå®ä¹é¢è²ä¸å¾æ¡ï¼</li> 649<li>æ¯æé³ä¹åå¥ï¼è®©æ²æ¨é±¼åææå»ä¹ä¸é³ä¹é å</li> 650<li>æ¯æèªå¨æ²å»ï¼åèªå¨åæ¢ï¼ï¼å¹¶æ¯æéè¿å¥åº·Appè®°å½æ£å¿µæ¶é´</li> 651<li>æ¯æçµå¨å²ãæ¡é¢ç»ä»¶ãéå±ç»ä»¶ãéå±å®æ¶æ´»å¨ãmacèåæ ãmacéç¥ä¸å¿ç»ä»¶</li> 652<li>æ¯æé³ä¹æ¨¡å¼ï¼æ¯æ¬¡æ²å»é½ä¸å鳿ï¼ä» é¨åé³ææ¯æï¼</li> 653<li>æ¯æä¼´å¥æ¨¡å¼ï¼Lv.10ï¼ï¼æ²å»é³ææ¶å¯ä»¥æbgmé é³ï¼ä» é¨åé³ææ¯æï¼</li> 654<li>æ¯æé³æååï¼å¤ä¸ªé³ææç §ä½ 设置çè§åèªå¨æ¼å¥</li> 655<li>æ¯ææææ£æµ</li> 656<li>æ¯æé卿§å¶</li> 657<li>æ¼äº®ççé¢åä¼ç§ç交äº</li> 658<li>ææ¬æ¾ç¤º</li> 659<li>Apple Watchæ¯æ</li> 660<li>Macæ¯æ</li> 661</ul> 662<h2 id="䏿¶"><a href="#䏿¶" class="headerlink" title="䏿¶"></a>䏿¶</h2><p>ç®ååºç¨å·²ç»ä¸æ¶å°App Storeï¼å欢çå°ä¼ä¼´ä¸è¦éè¿ã</p> 663<p>ç³»ç»è¦æ±iOS15+ï¼watchOS 8+ï¼macOS 13.0+</p> 664<p>æåæè°¢æ¯æçå°ä¼ä¼´ä»¬ã</p> 665<p><a target="_blank" rel="noopener external nofollow" href="https://apps.apple.com/cn/app/%E6%95%B2%E6%9C%A8%E9%B1%BC/id6443798663">å¨App Store䏿¥çãæ²æ¨é±¼ã</a></p> 666<p><img src= "/img/b_ld.png" data-lazy-src="https://p.zhheo.com/upload/2026/08/03/png/1288020260803091547.png!blogimg" alt="æ²æ¨é±¼"></p> 667<h2 id="å°ç¨åº"><a href="#å°ç¨åº" class="headerlink" title="å°ç¨åº"></a>å°ç¨åº</h2><p>åæ¶ç»æ³è¦å°é²çå°ä¼ä¼´æä¾äºå°ç¨åºçï¼æ éä¸è½½å è´¹å®è£ ãå°ç¨åºçéå²äºå¤ç§é³æãå¤ç¹è§¦æ§ãèªå¨æ²å»ï¼å忢ï¼çå 乿æç¹è²åè½ï¼åªä¿çæ²æ¨é±¼ã妿åªåæ¬¢æ²æ¨é±¼çè¯å°ç¨åºä¹å®å ¨å¤ç¨äºã</p> 668<p><img src= "/img/b_ld.png" data-lazy-src="https://p.zhheo.com/l0tRxo20991181668212949932.png!blogimg" alt="å°ç¨åº"></p> 669<h2 id="微信å°ç¨åº"><a href="#微信å°ç¨åº" class="headerlink" title="微信å°ç¨åº"></a>微信å°ç¨åº</h2><p>ç®ååªæiOSçæ¬ï¼å®åç¨æ·å¯ä»¥ä½¿ç¨å¾®ä¿¡å°ç¨åºãä¸è¿ç®å微信å°ç¨åº<strong>åªæåºç¡åè½</strong>ï¼æªæ¥ä¼éæ¥å®åã</p> 670<p><img src= "/img/b_ld.png" data-lazy-src="https://p.zhheo.com/2025786b3e74df5bbda1514039700c424490250312.webp!blogimg" alt="å°ç¨åºçæ¬"></p> 671</article><div class="post-copyright"><div class="post-copyright__author_group"><a class="post-copyright__author_img" href="/about/" title="å ³äºå主" heotip="å ³äºå主"><img class="post-copyright__author_img_back" src="https://p.zhheo.com/zMSk5X24291281735177602587.png!cover" alt="头åèæ¯"><img class="post-copyright__author_img_front" src="https://p.zhheo.com/hLS9mH22191281735177701087.png!cover" alt="Guli形象"></a><div class="post-copyright__author_name">å¼ æ´ªHeo</div><div class="post-copyright__author_desc">å享设计ä¸ç§æçæ´»</div></div><div class="post-tools" id="post-tools"><div class="post-tools-left"><div class="post-reward"><a class="reward-button button--animated" href="https://zhheo.com/rewards/" rel="external nofollow" target="_blank" title="æèµä½è "><span class="reward-button-content"><i class="heoblogIcon icon-hand-heart-fill"></i> æèµä½è </span></a></div><div class="reward-link mode"><a class="reward-link-button" href="/rss/"><i class="heoblogIcon icon-plant-fill"></i>订é </a></div></div></div><div class="post-copyright__notice"><span class="post-copyright-info">ä¸»è§æåï¼ä» ä¾åèãæ¬ææ¯ååæç« ï¼éç¨ <a href="https://blog.zhheo.com/cc/" target="_blank">CC BY-NC-ND 4.0</a> åè®®ï¼å®æ´è½¬è½½è¯·æ³¨ææ¥èª <a href="https://blog.zhheo.com" target="_blank">å¼ æ´ªHeo</a></span></div></div><div class="post-bottom-tools"><div class="post-tools-left"><div class="tag_share"><div class="post-meta__tag-list"><a class="post-meta__tags" href="/tags/%E5%BF%85%E7%9C%8B/"><span class="tags-punctuation">å¿ ç</span><span class="tagsPageCount">81</span></a><a class="post-meta__tags" href="/tags/%E7%83%AD%E9%97%A8/"><span class="tags-punctuation">çé¨</span><span class="tagsPageCount">75</span></a><a class="post-meta__tags" href="/tags/%E5%BC%80%E5%8F%91/"><span class="tags-punctuation">å¼å</span><span class="tagsPageCount">254</span></a><a class="post-meta__tags" href="/tags/Swift/"><span class="tags-punctuation">
671Swift</span><span class="tagsPageCount">127</span></a></div></div></div><div class="post-tools-right"> <a class="post-report" href="https://id.zhheo.com/me?view=report-create&url=https%3A%2F%2Fblog.zhheo.com%2Fp%2F671f98c8.html&work_name=%E6%B4%AA%E7%BB%98%E6%95%B2%E6%9C%A8%E9%B1%BCApp%20-%20%E6%89%93%E8%8A%82%E6%8B%8D%E6%95%B2%E9%9F%B3%E6%95%88%E8%A7%A3%E5%8E%8B%E7%A5%9E%E5%99%A8" rel="external nofollow" title="åé¦ä¸æè¯" target="_blank">åé¦ä¸æè¯</a></div></div><nav class="pagination-post" id="pagination"><div class="heo-dock-surface"><div class="prev-post pull-left"><a href="/p/86d6e9f2.html"><div class="pagination-info"><div class="label">ä¸ä¸ç¯</div><div class="prev_info">漫æ¥è
-W820NBåéæ ç䏿ï¼éåªä»¤äººæåï¼æ§ä»·æ¯ä¸é</div></div></a></div><div class="next-post pull-right"><a href="/p/17b59afa.html"><div class="pagination-info"><div class="label">ä¸ä¸ç¯</div><div class="next_info">Macå¦ä½è¿æ¥ä¸åWiFi使ç¨ä¸åçç½ç»ä½ç½®ï¼èªå¨åæ¢ç½ç»ä½ç½®æç¨</div></div></a></div></div></nav><div class="relatedPosts"><div class="headline"><i class="heoblogIcon icon-star-smile-fill"></i><span> 忬¢è¿ç¯æç« ç人ä¹çäº</span><div class="relatedPosts-link"><a onclick="event.preventDefault(); toRandomPost();" href="javascript:void(0);" rel="external nofollow" data-pjax-state="">é便éé</a></div></div><div class="relatedPosts-list"><div style="--heo-related-color:#e4573e"><a href="/p/ec57d8b2.html" title="å¦ä½è®©åå®¢æ¯æAIæè¦ï¼ä½¿ç¨TianliGPTèªå¨çææç« çAIæè¦"><img class="cover" src="https://p.zhheo.com/QtoFUU22990481681533269291.png!cover" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2023-04-15</div><div class="title">å¦ä½è®©åå®¢æ¯æAIæè¦ï¼ä½¿ç¨TianliGPTèªå¨çææç« çAIæè¦</div></div></a></div><div style="--heo-related-color:#434046"><a href="/p/ae8b3423.html" title="SwiftUIå¦ä½è¿è¡å¤è¯è¨è®¾ç½®ï¼å¦ä½è¿è¡æ¬å°åï¼å夿°åæ¢ï¼"><img class="cover" src="https://p.zhheo.com/PGJwe620690781625201166573.png!cover" alt="cover"><div class="content is-center"><div class="date"><i class="far fa-calendar-alt fa-fw"></i> 2021-07-02</div><div class="title">SwiftUIå¦ä½è¿è¡å¤è¯è¨è®¾ç½®ï¼å¦ä½è¿è¡æ¬å°åï¼å夿°åæ¢ï¼</div></div></a></div></div></div><hr/><div id="post-comment"><div class="comment-head"><div class="comment-headline"><i class="heoblogIcon icon-chat-1-fill"></i><span> è¯è®º</span></div></div><div class="comment-wrap"><div><div id="twikoo-wrap"></div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info heo-pointer-glow-host"><div class="heo-pointer-glow" aria-hidden="true"></div><div class="card-content"><div class="card-info-avatar is-center"><div class="author-info__top-group"> <div class="author-info__sayhi" id="author-info__sayhi" onclick="heo.changeSayHelloText()">ä½ å¥½åï¼</div></div></div><div class="avatar-img-group"><div class="avatar-img css-anim-avatar" id="lottie_avatar" aria-hidden="true"><div class="lottie-stage"><img class="av-bg" src="/lottie/lottie_avatar/images/img_8.webp" alt="" aria-hidden="true"/><div class="av-rig"><img class="av-ear-r" src="/lottie/lottie_avatar/images/img_7.webp" alt="" aria-hidden="true"/><img class="av-ear-l" src="/lottie/lottie_avatar/images/img_6.webp" alt="" aria-hidden="true"/><img class="av-hand-l" src="/lottie/lottie_avatar/images/img_5.png" alt="" aria-hidden="true"/><img class="av-hand-r" src="/lottie/lottie_avatar/images/img_4.webp" alt="" aria-hidden="true"/><img class="av-ahoge" src="/lottie/lottie_avatar/images/img_3.webp" alt="" aria-hidden="true"/><img class="av-body" src="/lottie/lottie_avatar/images/img_2.webp" alt="" aria-hidden="true"/><img class="av-eyeball" src="/lottie/lottie_avatar/images/img_1.webp" alt="" aria-hidden="true"/><img class="av-pupil" src="/lottie/lottie_avatar/images/img_0.png" alt="" aria-hidden="true"/></div></div></div><div class="avatar-sticker" id="author-avatar-sticker"><span class="avatar-sticker-emoji" id="author-avatar-sticker-emoji" aria-hidden="true" hidden="hidden"></span><img class="avatar-sticker-img" id="author-avatar-sticker-img" src="https://p.zhheo.com/omxo3N22290781690363822143.png!cover" onerror="this.onerror=null;this.src='/img/b_av.webp'" alt=""/></div></div><div class="author-info__description_group"><div class="author-info__description">è¿æå
³äº<b>产åã设计ãå¼å</b>ç¸å
³çé®é¢åçæ³ï¼è¿æ<b>æç« ç¿»è¯</b>å<b>å享</b>ã</div><div class="author-info__description">ç¸ä¿¡ä½ å¯ä»¥å¨è¿éæ¾å°å¯¹ä½ æç¨ç<b>ç¥è¯</b>å<b>æç¨</b>ã</div></div><div class="author-info__bottom-group"><a class="author-info__bottom-group-left" href="/about"><div class="author-info__name">å¼ æ´ªHeo</div><div class="author-info__desc">å享设计ä¸ç§æçæ´»</div></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://space.bilibili.com/4218173" rel="external nofollow" target="_blank" title="Bilibili" heotip="Bilibili"><i class="heoblogIcon icon-bilibili-line"></i></a><a class="social-icon" href="https://github.com/zhheo" rel="external nofollow" target="_blank" title="Github" heotip="Github"><i class="heoblogIcon icon-github-line"></i></a></div></div></div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="heoblogIcon icon-menu-fill"></i><span>æç« ç®å½</span></div><div class="toc-content"><ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E8%AE%BE%E8%AE%A1"><span class="toc-text">设计</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%BA%A4%E4%BA%92"><span class="toc-text">交äº</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%8A%9F%E8%83%BD"><span class="toc-text">åè½</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%B8%8A%E6%9E%B6"><span class="toc-text">䏿¶</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%B0%8F%E7%A8%8B%E5%BA%8F"><span class="toc-text">å°ç¨åº</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F"><span class="toc-text">微信å°ç¨åº</span></a></li></ol></div></div><div class="card-widget heo-right-widget wechat" id="card-wechat" onclick="pjax.loadUrl('/rss/')"><div class="wechat-card-left">
671<svg class="wechat-card-icon" viewBox="0 0 120 116" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><g fill="currentColor"><path d="M47.5360966,2.11813832 C82.1030966,-8.42086168 99.7190966,23.7951383 99.7190966,23.7951383 C93.3530966,20.3221383 74.2520966,16.4641383 53.8020966,27.0751383 C33.3520966,37.6861383 29.1070966,60.8391383 29.1070966,60.8391383 C20.7940966,51.9691383 20.4170966,37.6691383 20.4170966,37.6691383 C21.4000966,10.8301383 47.5360966,2.11813832 47.5360966,2.11813832 Z"></path><path d="M36.8570966,112.563138 C-13.1669034,102.868138 -1.78590339,59.1671383 10.7210966,39.9161383 C10.7210966,39.9161383 10.1580966,66.8951383 36.1550966,81.7911383 C36.1550966,81.7911383 39.2460966,83.1961383 38.2630966,87.6921383 L37.2790966,93.4531383 C37.2790966,93.4531383 35.9790966,97.3881383 38.4560966,97.8091383 C38.4560966,97.8091383 39.2470966,97.8091383 41.0730966,96.5441383 L50.6290966,90.2211383 C50.6290966,90.2211383 52.5960966,88.8161383 55.1250966,89.2371383 C57.6540966,89.6591383 73.8140966,93.8751383 89.8330966,80.5261383 C89.8320966,80.5261383 86.8820966,122.259138 36.8570966,112.563138 Z"></path><path d="M87.0220966,108.770138 C90.2540966,107.225138 105.992097,88.6751383 98.5430966,63.5231383 C91.0940966,38.3711383 65.8030966,32.7501383 65.8030966,32.7501383 C78.7310966,27.2701383 93.9070966,31.3441383 93.9070966,31.3441383 C116.952097,38.0891383 119.622097,60.0111383 119.622097,60.0111383 C124.118097,99.2141383 87.0220966,108.770138 87.0220966,108.770138 L87.0220966,108.770138 Z"></path></g></svg><div class="wechat-card-text">å
¬ä¼å·è®¢é
</div></div><i class="wechat-card-arrow heoblogIcon icon-arrow-right-line" aria-hidden="true"></i></div><div class="card-widget card-power"><div class="item-headline"><i class="heoblogIcon icon-hand-heart-fill"></i><span>æ£å¨èµå©æ¬ç«</span><a class="power-charge" href="https://zhheo.com/sponsor/" rel="external nofollow" target="_blank" title="èµå©å主">èµå©<i class="ri-arrow-right-up-line"></i></a></div><a id="power-star" href="https://zhheo.com/sponsor/" rel="external nofollow" target="_blank" title="æ¨èå主"> <div id="power-star-image"> </div><div class="power-star-body"><div id="power-star-title">ç±åçµå è½½ä¸...</div><div id="power-star-desc">èµå©å主ï¼è®©ä½ ä¹åºç°å¨è¿éï¼</div></div></a><div class="power-list"> <div class="power-item"><div class="power-item-body"><div class="power-item-link"><a href="https://www.gaicas.com/" rel="external nofollow" target="_blank" title="è䏿¥è®°">è䏿¥è®°</a></div><div class="power-item-link"><a href="https://blog.adil.com.cn/" rel="external nofollow" target="_blank" title="Adil">Adil</a></div><div class="power-item-link"><a href="https://blog.528688.cn/" rel="external nofollow" target="_blank" title="HaoUp">HaoUp</a></div><div class="power-item-link"><a href="https://apizero.cn/" rel="external nofollow" target="_blank" title="ææ°æ¬æº">ææ°æ¬æº</a></div><div class="power-item-link"><a href="https://yayatool.com/" rel="external nofollow" target="_blank" title="é¸é¸å·¥å
·">é¸é¸å·¥å
·</a></div><div class="power-item-link"><a href="https://www.mysticstars.cn/" rel="external nofollow" target="_blank" title="MysticStars">MysticStars</a></div><div class="power-item-link"><a href="https://tempmail100.com/" rel="external nofollow" target="_blank" title="Temp Mail">Temp Mail</a></div><div class="power-item-link"><a href="https://wangkay.top/" rel="external nofollow" target="_blank" title="å°å¦å®¢æ ">å°å¦å®¢æ </a></div><div class="power-item-link"><a href="https://www.haozhuji.net/" rel="external nofollow" target="_blank" title="好主æº">好主æº</a></div><div class="power-item-link"><a href="https://liyinwaihe.com/" rel="external nofollow" target="_blank" title="çä¼">çä¼</a></div><div class="power-item-link"><a href="https://webfem.com/" rel="external nofollow" target="_blank" title="webfem">webfem</a></div><div class="power-item-link"><a href="https://www.tsycdn.com/" rel="external nofollow" target="_blank" title="èæäºCDN">èæäºCDN</a></div><div class="power-item-link"><a href="https://xifeng.net/" rel="external nofollow" target="_blank" title="西é£å¾äº">西é£å¾äº</a></div></div></div></div></div><div class="card-widget card-hotpost"><div class="item-headline"><i class="heoblogIcon icon-fire-fill"></i><span>仿¥çé¨</span><a class="power-charge" href="/hot/" title="æ´å¤">æ´å¤<i class="ri-arrow-right-up-line"></i></a></div><div id="card-hotpost"></div></div><div class="card-widget card-recent-post"><div class="item-headline"><i class="heoblogIcon icon-map-2-line"></i><span>æè¿åå¸</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/p/kp6o6mwu.html" title="OpenClaw æ¥ç®¡ä½ çæ²¹ç´èæ¬ï¼è®© AI ç´æ¥è¯»æ¹ç½é¡µèæ¬ï¼
671ä¸ç¨åå¤å¶ç²è´´"><img src="https://p.zhheo.com/dUxFek24490981789358264065.webp!cover_mini" onerror="this.onerror=null;this.src='/img/b_av.webp'" alt="OpenClaw æ¥ç®¡ä½ çæ²¹ç´èæ¬ï¼è®© AI ç´æ¥è¯»æ¹ç½é¡µèæ¬ï¼ä¸ç¨åå¤å¶ç²è´´å¤´å"/></a><div class="content"><a class="title" href="/p/kp6o6mwu.html" title="OpenClaw æ¥ç®¡ä½ çæ²¹ç´èæ¬ï¼è®© AI ç´æ¥è¯»æ¹ç½é¡µèæ¬ï¼ä¸ç¨åå¤å¶ç²è´´">OpenClaw æ¥ç®¡ä½ çæ²¹ç´èæ¬ï¼è®© AI ç´æ¥è¯»æ¹ç½é¡µèæ¬ï¼ä¸ç¨åå¤å¶ç²è´´</a><time datetime="2026-09-14T04:30:00.000Z" title="å建 2026-09-14 12:30:00">2026-09-14</time><a class="article-recent_post_categories" href="/p/kp6o6mwu.html">ç»éªå享</a></div></div><div class="aside-list-item"><a class="thumbnail" href="/p/kq0qyc9y.html" title="为 iPhone Duo å设计ï¼è¹æå®æ¹è®¾è®¡ååå
¨è§£è¯»"><img src="https://p.zhheo.com/aTmeqV25090981789119710464.webp!cover_mini" onerror="this.onerror=null;this.src='/img/b_av.webp'" alt="为 iPhone Duo å设计ï¼è¹æå®æ¹è®¾è®¡ååå
¨è§£è¯»å¤´å"/></a><div class="content"><a class="title" href="/p/kq0qyc9y.html" title="为 iPhone Duo å设计ï¼è¹æå®æ¹è®¾è®¡ååå
¨è§£è¯»">为 iPhone Duo å设计ï¼è¹æå®æ¹è®¾è®¡ååå
¨è§£è¯»</a><time datetime="2026-09-11T08:59:56.000Z" title="å建 2026-09-11 16:59:56">2026-09-11</time><a class="article-recent_post_categories" href="/p/kq0qyc9y.html">ç»éªå享</a></div></div><div class="aside-list-item"><a class="thumbnail" href="/p/0vmg6q9j.html" title="çå°äºæ·å®éªè´çAIè¯è®ºï¼å¼åäºæçæè"><img src="https://p.zhheo.com/Ym24cH24590981789116945773.webp!cover_mini" onerror="this.onerror=null;this.src='/img/b_av.webp'" alt="çå°äºæ·å®éªè´çAIè¯è®ºï¼å¼åäºæçæè头å"/></a><div class="content"><a class="title" href="/p/0vmg6q9j.html" title="çå°äºæ·å®éªè´çAIè¯è®ºï¼å¼åäºæçæè">çå°äºæ·å®éªè´çAIè¯è®ºï¼å¼åäºæçæè</a><time datetime="2026-09-11T08:07:52.000Z" title="å建 2026-09-11 16:07:52">2026-09-11</time><a class="article-recent_post_categories" href="/p/0vmg6q9j.html">é²èæè°</a></div></div><div class="aside-list-item"><a class="thumbnail" href="/p/j5ns9clc.html" title="å¦ä½å¨ç½é¡µæå
¥ livephoto ï¼å®åµç
§ç PVT å¨çº¿çæã卿JPGçæå·¥å
·ä¸åµå
¥å·¥å
·"><img src="https://p.zhheo.com/rd3Uac25390981788948233393.webp!cover_mini" onerror="this.onerror=null;this.src='/img/b_av.webp'" alt="å¦ä½å¨ç½é¡µæå
¥ livephoto ï¼å®åµç
§ç PVT å¨çº¿çæã卿JPGçæå·¥å
·ä¸åµå
¥å·¥å
·å¤´å"/></a><div class="content"><a class="title" href="/p/j5ns9clc.html" title="å¦ä½å¨ç½é¡µæå
¥ livephoto ï¼å®åµç
§ç PVT å¨çº¿çæã卿JPGçæå·¥å
·ä¸åµå
¥å·¥å
·">å¦ä½å¨ç½é¡µæå
¥ livephoto ï¼å®åµç
§ç PVT å¨çº¿çæã卿JPGçæå·¥å
·ä¸åµå
¥å·¥å
·</a><time datetime="2026-09-09T08:27:20.000Z" title="å建 2026-09-09 16:27:20">2026-09-09</time><a class="article-recent_post_categories" href="/p/j5ns9clc.html">æç项ç®</a></div></div><div class="aside-list-item"><a class="thumbnail" href="/p/8p5a0k56.html" title="MacBookä¸è¿å
¥ä¼ç å
¨æ°éªä¿®ï¼åå åé±ç绿èHDMI欺éªå¨"><img src="https://p.zhheo.com/eej5sN20690981788502446578.webp!cover_mini" onerror="this.onerror=null;this.src='/img/b_av.webp'" alt="MacBookä¸è¿å
¥ä¼ç å
¨æ°éªä¿®ï¼åå åé±ç绿èHDMI欺éªå¨å¤´å"/></a><div class="content"><a class="title" href="/p/8p5a0k56.html" title="MacBookä¸è¿å
¥ä¼ç å
¨æ°éªä¿®ï¼åå åé±ç绿èHDMI欺éªå¨">MacBookä¸è¿å
¥ä¼ç å
¨æ°éªä¿®ï¼åå åé±ç绿èHDMI欺éªå¨</a><time datetime="2026-09-04T06:00:00.000Z" title="å建 2026-09-04 14:00:00">2026-09-04</time><a class="article-recent_post_categories" href="/p/8p5a0k56.html">ç»éªå享</a></div></div></div></div></div></div></main><footer id="footer"><div id="heo-footer-bar"><div class="footer-logo"> <i class="heoblogIcon icon-heologo"></i></div><div class="footer-bar-description">æ¥èª å¼ æ´ªHeo ææ°è®¾è®¡ä¸ç§æçæç« </div><a class="footer-bar-link" href="/archives/">æ¥çå
¨é¨</a></div><div id="footer_deal"><a class="deal_link" href="mailto:[email protected]" rel="external nofollow" title="mail" heotip="ç»æåé®ä»¶"><i class="heoblogIcon icon-mail-line"></i></a>
671<a class="deal_link" target="_blank" href="https://weibo.com/zhheo" title="å¾®å" rel="noopener external nofollow noreferrer" heotip="å¾®å"><i class="heoblogIcon icon-weibo-line"></i></a><a class="deal_link" target="_blank" href="https://twitter.com/zhheocom" rel="noopener external nofollow noreferrer" title="X" heotip="X"><i class="heoblogIcon icon-twitterx"></i></a><a class="deal_link" target="_blank" href="https://dribbble.com/zhheo/" rel="noopener external nofollow noreferrer" title="Dribbble" heotip="Dribbble"><i class="heoblogIcon icon-dribbble-line"></i></a><div class="footer_mini_logo css-anim-mini" id="footer_mini_logo" title="è¿åé¡¶é¨" onclick="btf.scrollToDest(0, 500)" heotip="è¿åé¡¶é¨"><div class="lottie-stage"><img class="fm-bg" src="/lottie/footer_mini_logo/images/img_0.webp" alt="" aria-hidden="true"/><div class="fm-rig"><img class="fm-ahoge" src="/lottie/footer_mini_logo/images/img_6.webp" alt="" aria-hidden="true"/><img class="fm-ear-r" src="/lottie/footer_mini_logo/images/img_5.webp" alt="" aria-hidden="true"/><img class="fm-ear-l" src="/lottie/footer_mini_logo/images/img_4.webp" alt="" aria-hidden="true"/><img class="fm-body" src="/lottie/footer_mini_logo/images/img_3.webp" alt="" aria-hidden="true"/><img class="fm-eyeball" src="/lottie/footer_mini_logo/images/img_2.webp" alt="" aria-hidden="true"/><img class="fm-pupil" src="/lottie/footer_mini_logo/images/img_1.webp" alt="" aria-hidden="true"/></div></div></div><a class="deal_link" target="_blank" href="https://github.com/zhheo/" rel="noopener external nofollow noreferrer" title="Github" heotip="Github"><i class="heoblogIcon icon-github-line"></i></a><a class="deal_link" target="_blank" href="https://www.pinterest.com/zhheocom/_created/" title="Pinterest" rel="noopener external nofollow noreferrer" heotip="Pinterest"><i class="heoblogIcon icon-pinterest-line"></i></a><a class="deal_link" target="_blank" href="https://space.bilibili.com/4218173/" rel="noopener external nofollow noreferrer" title="Bilibili" heotip="Bilibili"><i class="heoblogIcon icon-bilibili-line"></i></a><a class="deal_link" target="_blank" href="https://v.douyin.com/6SMbLRQ/" rel="noopener external nofollow noreferrer" title="Tiktok" heotip="Tiktok"><i class="heoblogIcon icon-tiktok"></i></a></div><div id="heo-footer"> <div class="footer-group"><h3 class="footer-title">软件</h3><div class="footer-links"><a class="footer-item" href="/p/671f98c8.html" title="æ²æ¨é±¼" target="_blank" rel="noopener external nofollow noreferrer">æ²æ¨é±¼</a><a class="footer-item" href="/p/4db484b3.html" title="è½»èé£" target="_blank" rel="noopener external nofollow noreferrer">è½»èé£</a><a class="footer-item" href="/p/9df485ea.html" title="æ¯ä¾è®¡" target="_blank" rel="noopener external nofollow noreferrer">æ¯ä¾è®¡</a></div></div><div class="footer-group"><h3 class="footer-title">产å</h3><div class="footer-links"><a class="footer-item" href="/tags/%E8%AE%BE%E8%AE%A1%E6%8A%A5%E5%91%8A/" title="设计æ¥å" target="_blank" rel="noopener external nofollow noreferrer">设计æ¥å</a><a class="footer-item" href="/tags/%E4%BA%A7%E5%93%81/" title="ä¼è´¨æ¥å" target="_blank" rel="noopener external nofollow noreferrer">ä¼è´¨æ¥å</a></div></div><div class="footer-group"><h3 class="footer-title">设计</h3><div class="footer-links"><a class="footer-item" href="/tags/Heocan/" title="Heocan" target="_blank" rel="noopener external nofollow noreferrer">Heocan</a><a class="footer-item" href="/tags/Sketch/" title="Sketch" target="_blank" rel="noopener external nofollow noreferrer">Sketch</a><a class="footer-item" href="/tags/%E4%BC%98%E8%B4%A8%E6%8A%A5%E5%91%8A/" title="设计æ¥å" target="_blank" rel="noopener external nofollow noreferrer">设计æ¥å</a><a class="footer-item" href="/tags/Photoshop/" title="Photoshop" target="_blank" rel="noopener external nofollow noreferrer">Photoshop</a></div></div><div class="footer-group"><h3 class="footer-title">å¼å</h3><div class="footer-links"><a class="footer-item" href="/tags/Hexo/" title="Hexoéæ¹" target="_blank" rel="noopener external nofollow noreferrer">Hexoéæ¹</a><a class="footer-item" href="/tags/Swift/" title="Swiftå¼å" target="_blank" rel="noopener external nofollow noreferrer">Swiftå¼å</a><a class="footer-item" href="/tags/%E7%BD%91%E9%A1%B5%E5%89%8D%E7%AB%AF/" title="ç½é¡µå端" target="_blank" rel="noopener external nofollow noreferrer">ç½é¡µå端</a></div></div><div class="footer-group"><h3 class="footer-title">çæ´»</h3><div class="footer-links"><a class="footer-item" href="/equipment/" title="æçè£
å¤" target="_blank" rel="noopener external nofollow noreferrer">æçè£
å¤</a><a class="footer-item" href="/tags/%E8%AF%84%E6%B5%8B/" title="æçè¯æµ" target="_blank" rel="noopener external nofollow noreferrer">æçè¯æµ</a><a class="footer-item" href="/tags/%E6%B7%B7%E5%89%AA/" title="è
671§é¢åªè¾" target="_blank" rel="noopener external nofollow noreferrer">è§é¢åªè¾</a></div></div><div class="footer-group"><h3 class="footer-title">æå¡</h3><div class="footer-links"><a class="footer-item" href="https://zhheo.com/yinheluxiangju/" title="è´¦å·åç§" target="_blank" rel="noopener external nofollow noreferrer">è´¦å·åç§</a><a class="footer-item" href="https://ai.zhheo.com/" title="洪墨AI" target="_blank" rel="noopener external nofollow noreferrer">洪墨AI</a></div></div><div class="footer-group"><h3 class="footer-title">èå</h3><div class="footer-links"><a class="footer-item" href="https://sky.zhheo.com/" title="æ´ªç»æç©º" target="_blank" rel="noopener external nofollow noreferrer">æ´ªç»æç©º</a><a class="footer-item" href="https://bf.zzxworld.com/s/612" title="BlogFinder" target="_blank" rel="noopener external nofollow noreferrer">BlogFinder</a><a class="footer-item" href="https://www.blogsclub.org/blog/718.html" title="BlogsClub" target="_blank" rel="noopener external nofollow noreferrer">BlogsClub</a></div></div><div class="footer-group"><h3 class="footer-title">åè®®</h3><div class="footer-links"><a class="footer-item" href="https://zhheo.com/agreement/privacy/" title="éç§åè®®" target="_blank" rel="noopener external nofollow noreferrer">éç§åè®®</a><a class="footer-item" href="/cookies/" title="Cookies" target="_blank" rel="noopener external nofollow noreferrer">Cookies</a><a class="footer-item" href="/cc/" title="çæåè®®" target="_blank" rel="noopener external nofollow noreferrer">çæåè®®</a></div></div><div class="footer-group"><div class="footer-title-group"><h3 class="footer-title">åé¾</h3><a class="random-friends-btn" href="javascript:heo.addFriendLinksInFooter();" rel="external nofollow" title="æ¢ä¸æ¹åæ
龿¥" heotip="æ¢ä¸æ¹åæ
龿¥"><i class="heoblogIcon icon-refresh-line"></i></a></div><div class="footer-links" id="friend-links-in-footer"><a class="footer-item" href="/link/" title="åæ
龿¥" heotip="跳转å°åæ
龿¥">éæºçæä¸..</a><a class="footer-item" href="/link/" title="åæ
龿¥" heotip="跳转å°åæ
龿¥">éæºçæä¸..</a><a class="footer-item" href="/link/" title="åæ
龿¥" heotip="跳转å°åæ
龿¥">éæºçæä¸..</a><a class="footer-item" href="/link/" title="åæ
龿¥" heotip="跳转å°åæ
龿¥">éæºçæä¸..</a></div></div></div><div id="footer-bar"><div class="footer-bar-links"><div class="footer-bar-left"><div id="footer-bar-tips"><div class="copyright">©2019 - 2026 By <a class='footer-bar-link' target="_blank" title="å徿ç主页" heotip="å徿ç主页" href="https://zhheo.com/" rel="external nofollow"><img class="author-avatar" src="https://p.zhheo.com/8DSTSS20990281646044689944.PNG!cover_mini" alt="avatar" width="20" height="20">å¼ æ´ªHeo</a></div><div class="beian-group"><a class="footer-bar-link" href="https://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11011402054421" target="_blank" rel="noopener external nofollow noreferrer" title="京å
¬ç½å®å¤11011402054421å·" heotip="åå¾å
¨å½äºèç½å®å
¨ç®¡çæå¡å¹³å°"><img class="beian-icon" src="https://p.zhheo.com/VPiMHH24891181731917988329.png!cover" alt="" aria-hidden="true" width="13" height="14"/><span>京å
¬ç½å®å¤11011402054421å·</span></a><a class="footer-bar-link" href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank" rel="noopener external nofollow noreferrer" title="京ICPå¤19051325å·-2" heotip="åå¾å·¥ä¸åä¿¡æ¯å鍿¿å¡æå¡å¹³å°">京ICPå¤19051325å·-2</a><a class="footer-bar-link" href="https://status.zhheo.com/" target="_blank" rel="noopener external nofollow noreferrer" id="allsite_status" title="æ¥çæç项ç®ç¶æ" heotip="æ¥çæç项ç®ç¶æ"><div class="status-light"></div><span>å è½½ä¸...</span></a></div></div></div><div class="footer-bar-right"><a class="footer-bar-link" href="/about/#post-comment">çè¨</a><a class="footer-bar-link" href="/rss/">订é
</a><a class="footer-bar-link" href="https://zhheo.com/rewards/" rel="external nofollow" target="_blank">æèµ</a><a class="footer-bar-link" href="/update/">主é¢</a><a class="footer-bar-link footer-report-link" href="https://id.zhheo.com/me?view=report-create" rel="external nofollow" target="_blank">举æ¥ä¸åé¦</a><a class="footer-bar-link cc" href="/cc/" title="ccåè®®" heotip="ç½ç«éç¨ ç½²å-éå䏿§ä½¿ç¨-ç¦æ¢æ¼ç» 4.0 å½é
æ å"><i class="heoblogIcon icon-copyright-line"></i><i class="heoblogIcon icon-creative-commons-by-line"></i><i class="heoblogIcon icon-creative-commons-nc-line"></i><i class="heoblogIcon icon-creative-commons-nd-line"></i></a></div></div></div><div id="quit-box" onclick="RemoveRewardMask()"></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="ç®ç¹è½¬æ¢">ç®</button><button id="darkmode" type="button" title="æµ
è²åæ·±è²æ¨¡å¼è½¬æ¢"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="åæ ååæ åæ¢"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="ç®å½"><i class="fas fa-list-ul"></i></button><a id="to_comment" href="#post-comment" title="ç´è¾¾è¯è®º"><i class="fas fa-comments"></i></a><button id="go-up" type="button" title="åå°é¡¶é¨"><i class="fas fa-arrow-up"></i></button></div></div><a class="needEndHide" id="ai-chat-fab" href="javascript:void(0);" rel="external nofollow" onclick="togglePostChatContainer(); return false;" title="AI æºè½å¯¹è¯" heotip="AI æºè½å¯¹è¯"><img src="/img/ai-fab.webp" alt="AI æºè½å¯¹è¯"></a><div id="heosearch"><div class="search-dialog"><div id="heosearch-navbar"><div class="search-dialog__title" id="heosearch-title">æç´¢</div><span class="search-close-button"><i class="heoblogIcon icon-close-fill"></i></span></div><div id="heosearch-input-panel"><div id="heosearch-input"><div class="ais-search-box"><input class="ais-search-box--input" placeholder="è¾å
¥å
³é®è¯æç´¢" type="text" autocomplete="off"/></div><button id="heosearch-search-btn" type="button" title="æç´¢" heotip="æç´¢"><i class="heoblogIcon icon-search-2-line"></i></button></div></div><div id="heosearch-tabs"><span class="php-search-tab active" data-type="all">综å</span><span class="php-search-tab" data-type="post">æç« </span><span class="php-search-tab" data-type="friend">åé¾</span><span class="php-search-tab" data-type="sky">æ´ªç»æç©º</span><span class="php-search-tab" data-type="comment">è¯è®º</span><span class="php-search-tab" data-type="page">å½å页é¢</span></div><div id="heosearch-results"><div id="heosearch-hits"></div><div id="heosearch-suggests"></div><div id="heosearch-stats"></div></div></div><div id="search-mask"></div></div><div id="rightMenu"><div class="rightMenu-group rightMenu-small"><div class="rightMenu-item" id="menu-backward" heotip="è¿åä¸ä¸é¡µ"><i class="heoblogIcon icon-arrow-left-line"></i></div><div class="rightMenu-item" id="menu-forward" heotip="åå¾ä¸ä¸é¡µ"><i class="heoblogIcon icon-arrow-right-line"></i></div><div class="rightMenu-item" id="menu-refresh" heotip="å·æ°é¡µé¢"><i class="heoblogIcon icon-restart-line" style="font-size: 19px;"></i></div><div class="rightMenu-item" id="menu-top" heotip="è¿åé¡¶é¨"><i class="heoblogIcon icon-arrow-up-line"></i></div></div><div class="rightMenu-group rightMenu-line rightMenuPlugin"><div class="rightMenu-item" id="menu-askPostChat"><i class="heoblogIcon icon-PostChat"></i><span>è¿æ¯ä»ä¹ææï¼</span></div></div><div class="rightMenu-group rightMenu-line rightMenuPlugin"><div class="rightMenu-item" id="menu-copytext"><i class="heoblogIcon icon-file-copy-fill"></i><span>å¤å¶é䏿æ¬</span></div><div class="rightMenu-item" id="menu-pastetext">
671<i class="heoblogIcon icon-clipboard-fill"></i><span>ç²è´´ææ¬</span></div><a class="rightMenu-item" id="menu-commenttext"><i class="heoblogIcon icon-chat-new-fill"></i><span>å¼ç¨å°è¯è®º</span></a><div class="rightMenu-item" id="menu-newwindow"><i class="heoblogIcon icon-window-fill"></i><span>æ°çªå£æå¼</span></div><div class="rightMenu-item" id="menu-copylink"><i class="heoblogIcon icon-link"></i><span>å¤å¶é¾æ¥å°å</span></div><div class="rightMenu-item" id="menu-copyimg"><i class="heoblogIcon icon-file-copy-fill"></i><span>å¤å¶æ¤å¾ç</span></div><div class="rightMenu-item" id="menu-downloadimg"><i class="heoblogIcon icon-download-cloud-fill"></i><span>ä¸è½½æ¤å¾ç</span></div><div class="rightMenu-item" id="menu-search"><i class="heoblogIcon icon-search-2-line"></i><span>ç«å
æç´¢</span></div><div class="rightMenu-item" id="menu-searchBaidu"><i class="heoblogIcon icon-baidu-fill"></i><span>ç¾åº¦æç´¢</span></div><div class="rightMenu-item" id="menu-music-toggle"><i class="heoblogIcon icon-play-fill"></i><span>ææ¾é³ä¹</span></div><div class="rightMenu-item" id="menu-music-back"><i class="heoblogIcon icon-skip-back-fill"></i><span>忢å°ä¸ä¸é¦</span></div><div class="rightMenu-item" id="menu-music-forward"><i class="heoblogIcon icon-skip-forward-fill"></i><span>忢å°ä¸ä¸é¦</span></div><div class="rightMenu-item" id="menu-music-copyMusicName"> <i class="heoblogIcon icon-file-copy-fill"></i><span>å¤å¶æå</span></div></div><div class="rightMenu-group rightMenu-line rightMenuOther"><a class="rightMenu-item menu-Link" id="menu-randomPost" rel="nofollow"><i class="heoblogIcon icon-signal-tower-fill"></i><span>é便éé</span></a></div><div class="rightMenu-group rightMenu-line rightMenuOther" id="menu-tts-group"><div class="rightMenu-item" id="menu-tts"><i class="ri-mic-2-ai-fill"></i><span>å
¨ææè¯»</span></div><div class="rightMenu-item" id="menu-podcast"><i class="ri-speak-ai-fill"></i><span>æå®¢éªè¯»</span></div><div class="rightMenu-item" id="menu-radio"><i class="ri-radio-line"></i><span>çµå°æ¨¡å¼</span></div></div><div class="rightMenu-group rightMenu-line rightMenuOther"><div class="rightMenu-item" id="menu-copy"><i class="heoblogIcon icon-external-link-fill"></i><span>å¤å¶å°å</span></div><div class="rightMenu-item" id="menu-darkmode"><i class="heoblogIcon icon-moon-clear-fill"></i><span class="menu-darkmode-text">æ¾ç¤ºæ¨¡å¼</span></div><div class="rightMenu-item" id="menu-translate"><i class="heoblogIcon icon-panben"></i><span>è½çºç¹é«</span></div></div></div><div id="rightmenu-mask"></div><div class="bottom-dock needEndHide" id="bottom-dock"><a class="heo-pointer-glow-host" id="heoTts" href="#" onclick="heoPostTts.toggleFloatPlayback(); return false;" title="ææ¾å
¨ææè¯»" data-tts-target="post-tts" aria-label="ææ¾å
¨ææè¯»"><div class="heo-pointer-glow" aria-hidden="true"></div><span class="heoTtsIconSlot" aria-hidden="true"><i class="ri-speak-ai-line heoTtsIcon heoTtsIcon-speak"></i></span><span class="heoTtsPauseSlot" aria-hidden="true"><i class="ri-pause-fill heoTtsIcon heoTtsIcon-pause" hidden="hidden"></i><span class="heoTtsLoader" aria-hidden="true" hidden="hidden"></span></span><span class="heoTtsTitle">å
¨ææè¯»</span></a><a class="heo-pointer-glow-host" id="heoPodcast" href="#" onclick="heoPostAudio.toggleFloatPlayback("post-podcast"); return false;" title="ææ¾å
¨ææå®¢éªè¯»" aria-label="ææ¾å
¨ææå®¢éªè¯»"><div class="heo-pointer-glow" aria-hidden="true"></div><span class="heoPodcastIconSlot" aria-hidden="true"><i class="ri-mic-2-ai-line heoPodcastIcon heoPodcastIcon-speak"></i></span><span class="heoPodcastPauseSlot" aria-hidden="true"><i class="ri-pause-fill heoPodcastIcon heoPodcastIcon-pause" hidden="hidden"></i><span class="heoPodcastLoader" aria-hidden="true" hidden="hidden"></span></span><span class="heoPodcastTitle">æå®¢éªè¯»</span></a><div class="heo-pointer-glow-host" id="heoRadio" role="group" aria-label="çµå°æ¨¡å¼" hidden="hidden"><div class="heo-pointer-glow" aria-hidden="true"></div><span class="heoRadioIconSlot" aria-hidden="true"><i class="ri-radio-line heoRadioIcon heoRadioIcon-speak"></i></span><span class="heoRadioPauseSlot" aria-hidden="true"><i class="ri-pause-fill heoRadioIcon heoRadioIcon-pause" hidden="hidden"></i><span class="heoRadioIcon-loader" aria-hidden="true" hidden="hidden"></span></span><button class="heoRadioNext" type="button" title="ä¸ä¸æ²" aria-label="çµå°ä¸ä¸æ²"><i class="ri-skip-forward-fill" aria-hidden="true"></i></button><span class="heoRadioTitle">çµå°æ¨¡å¼</span></div><div class="heo-pointer-glow-host" id="nav-music" onclick="heo.handleMusicClick(event)"><div class="heo-pointer-glow" aria-hidden="true"></div><div id="nav-music-hoverTips"><div class="music-control-btn heoblogIcon icon-shangyiqu" id="music-prev" title="ä¸ä¸æ²" onclick="heo.musicSkipBack()"></div><div class="music-control-btn heoblogIcon icon-zanting" id="music-pause" title="æå" onclick="heo.musicToggle(
671)" style="display: none;"></div><div class="music-control-btn heoblogIcon icon-bofang" id="music-play" title="ææ¾" onclick="heo.musicToggle()"></div><div class="music-control-btn heoblogIcon icon-xiayiqu" id="music-next" title="ä¸ä¸æ²" onclick="heo.musicSkipForward()"></div><div class="music-control-btn" id="music-share" title="å享" onclick="heo.musicShare()"><i class="ri-share-circle-line"></i></div></div><div id="heo-music" data-music-list="https://s3.zhheo.com/heomusic/music-list.json" data-api-origin="https://s3.zhheo.com/heomusic/" data-resource-path="https://s3.zhheo.com/heomusic/music" data-share-base="https://zhheo.com/music"></div></div></div><div>
671<script defer src="/js/heo.js?v=74122ce8"></script>
671<script defer src="/js/heo-comments.js?v=32731363"></script>
671<script defer src="/js/heo_media_session.js?v=9e3265e8"></script>
671<script defer src="/js/heo_radio.js?v=75fb23c1"></script>
671<script defer src="/zhheo/um.js?v=d7022b12" data-website-id="4d84f9a3-9e4f-4fa4-8e54-cc26a0efb3f6"></script>
671<script defer src="/js/utils.js?v=3e7b348f"></script>
671<script defer src="/js/main.js?v=4ef1357b"></script>
671<script>(function () { 672 var KEY = 'translate-chn-cht'; 673 var saved = (typeof saveToLocal !== 'undefined' && saveToLocal.get) ? saveToLocal.get(KEY) : undefined; 674 function loadTranslate () { 675 if (typeof window.__heoTranslateBoot === 'function') { window.__heoTranslateBoot(); return Promise.resolve(); } 676 return getScript('/js/tw_cn.js?v=8dd463c1').then(function () { 677 if (typeof window.__heoTranslateBoot === 'function') window.__heoTranslateBoot(); 678 }); 679 } 680 // ä¹åéæ©è¿ç¹ä½ï¼ç´æ¥å 载并åºç¨ 681 if (String(saved) === '1') { loadTranslate(); return; } 682 // 馿¬¡ç¹å»ã转为ç¹ä½ãæ¶æå è½½ï¼å¹¶è¡¥è§¦å䏿¬¡åæ¢ 683 document.addEventListener('click', function (e) { 684 var t = e.target && e.target.closest ? e.target.closest('#menu-translate') : null; 685 if (!t) return; 686 if (typeof window.__heoTranslateBoot === 'function') return; 687 e.preventDefault(); 688 e.stopPropagation(); 689 loadTranslate().then(function () { 690 if (typeof window.__heoTranslateToggle === 'function') window.__heoTranslateToggle(); 691 }); 692 }, true); 693})(); 694</script>
694<script defer src="/plugin/instant_page/instantpage.min.js?v=3ad5caa5" type="module"></script>
694<script defer src="/plugin/lazyload/lazyload.iife.min.js?v=0ce36d6b"></script>
694<script defer src="/plugin/snackbar/snackbar.min.js?v=8f19a352"></script>
694<script>var preloader; 695document.addEventListener('DOMContentLoaded', function () { 696 preloader = { 697 loadingEnded: false, 698 endLoading: function () { 699 if (typeof $ !== 'undefined') { 700 $(window).off('keydown.preloader'); 701 } 702 if (typeof heo !== 'undefined' && heo.hideLoading) { 703 heo.hideLoading(); 704 } 705 preloader.loadingEnded = true; 706 }, 707 initLoading: function () { 708 preloader.loadingEnded = false; 709 var loadingBox = document.getElementById('loading-box'); 710 if (loadingBox) loadingBox.classList.remove('loaded'); 711 if (typeof Pace !== 'undefined') Pace.restart(); 712 if (typeof heo !== 'undefined' && heo.showLoading) { 713 heo.showLoading(); 714 } 715 if (typeof $ !== 'undefined') { 716 $(window).off('keydown.preloader').on('keydown.preloader', function (e) { 717 e.stopImmediatePropagation(); 718 }); 719 $('.custom-tooltip').remove(); 720 } 721 } 722 }; 723 724 window.addEventListener('load', preloader.endLoading); 725 window.addEventListener('pjax:complete', preloader.endLoading); 726 setTimeout(function () { 727 if (!preloader.loadingEnded) { 728 preloader.endLoading(); 729 } 730 }, 2000); 731});</script>
731<div class="js-pjax">
731<script>(() => { 732 const AVATAR_SELECTOR = '.article-meta.comment-avatars[data-url]' 733 const DEFAULT_LIMIT = 6 734 735 // transitions.dev avatar-group-hoverï¼æ¬ååä¸ªå¤´åæ¶ï¼ç¸é»å¤´åæè·ç¦»è¡°å䏿µ®ï¼ 736 // æ¬åç头åé¢å¤æ¾å¤§ï¼ç§»å¼å¼¹æ§åè½ãç¼å¨æ¹åæç¥ï¼è¿å ¥å¹³æ»ï¼è¿å带弹æ§ã 737 const bindHover = (root) => { 738 const avatars = Array.prototype.slice.call(root.querySelectorAll('.comment-avatar')) 739 if (!avatars.length) return 740 const docEl = document.documentElement 741 const readNum = (name, fallback) => { 742 const value = parseFloat(getComputedStyle(docEl).getPropertyValue(name)) 743 return isNaN(value) ? fallback : value 744 } 745 const readEase = (name, fallback) => { 746 const value = getComputedStyle(docEl).getPropertyValue(name).trim() 747 return value || fallback 748 } 749 const setShifts = (activeIndex, phase) => { 750 const lift = readNum('--comment-avatar-lift', -4) 751 const falloff = readNum('--comment-avatar-falloff', 0.45) 752 const scale = readNum('--comment-avatar-scale', 1.05) 753 const ease = phase === 'out' 754 ? readEase('--comment-avatar-ease-out', 'cubic-bezier(0.34, 3.85, 0.64, 1)') 755 : readEase('--comment-avatar-ease-in', 'cubic-bezier(0.22, 1, 0.36, 1)') 756 avatars.forEach((el, i) => { 757 // å å transition-timing-functionï¼åååéï¼è®©è¯¥é¶æ®µè¿æ¸¡ç¨å¯¹åºç¼å¨ 758 el.style.transitionTimingFunction = ease 759 if (activeIndex == null) { 760 el.style.setProperty('--comment-avatar-shift', '0px') 761 el.style.setProperty('--comment-avatar-scale-active', '1') 762 return 763 } 764 const distance = Math.abs(i - activeIndex) 765 el.style.setProperty('--comment-avatar-shift', (lift * Math.pow(falloff, distance)).toFixed(3) + 'px') 766 el.style.setProperty('--comment-avatar-scale-active', i === activeIndex ? String(scale) : '1') 767 }) 768 } 769 avatars.forEach((el, i) => { 770 el.addEventListener('mouseenter', function () { setShifts(i, 'in') }) 771 }) 772 root.addEventListener('mouseleave', function () { setShifts(null, 'out') }) 773 } 774 775 // 渲æåç¯æç« ç头åç» 776 const renderGroup = (el, item) => { 777 el.innerHTML = '' 778 if (!item || !Array.isArray(item.avatars) || !item.avatars.length) { 779 // æ è¯è®ºï¼æ¾ç¤ºæµ ç°è¶åå ä½ 780 const empty = document.createElement('span') 781 empty.className = 'comment-no-comment' 782 empty.textContent = 'ææ è¯è®º' 783 el.appendChild(empty) 784 return 785 } 786 item.avatars.forEach((avatar) => { 787 const wrap = document.createElement('span') 788 wrap.className = 'comment-avatar' 789 const img = document.createElement('img') 790 img.src = avatar.avatar || '' 791 img.alt = avatar.nick || '' 792 img.title = avatar.nick || '' 793 img.loading = 'lazy' 794 img.decoding = 'async' 795 img.onerror = function () { if (this.parentNode) this.parentNode.remove() } 796 wrap.appendChild(img) 797 el.appendChild(wrap) 798 }) 799 if (item.count > item.avatars.length) { 800 const more = document.createElement('span') 801 more.className = 'comment-avatar-more' 802 more.textContent = '+' + (item.count - item.avatars.length) 803 el.appendChild(more) 804 } 805 bindHover(el) 806 } 807 808 // 䏿¬¡è¯·æ±è·åæ¬é¡µæææç« å¡ççè¯è®ºå¤´åç»ï¼èµ°ç»ä¸è¯è®º APIï¼æ éå 载渲æåºï¼ 809 const run = () => { 810 const items = Array.prototype.slice.call(document.querySelectorAll(AVATAR_SELECTOR)) 811 if (!items.length) return 812 const urls = items.map(function (el) { return el.getAttribute('data-url') }) 813 heo.commentApi.avatars(urls, { excludeBlogger: true, limit: DEFAULT_LIMIT }).then(function (data) { 814 const map = {} 815 data.forEach(function (item) { map[item.url] = item }) 816 items.forEach(function (el) { 817 renderGroup(el, map[el.getAttribute('data-url')]) 818 }) 819 }).catch(function (err) { 820 console.error('è¯è®ºå¤´åç»å 载失败ï¼', err) 821 }) 822 } 823 824 // 头åç»å¨æç« å¡çä¸ï¼ç§»å¨ç«¯é¦å±å¤ï¼ï¼è¿å ¥è§å£åæå 825 const start = () => { 826 const first = document.querySelector(AVATAR_SELECTOR) 827 if (!first) return 828 if (typeof btf !== 'undefined' && typeof btf.loadComment === 'function') { 829 btf.loadComment(first, run) 830 } else { 831 run() 832 } 833 } 834 835 // pjax åºæ¯ä¸ .js-pjax 容卿¯æ¬¡å¯¼èªé½ä¼éæ°æ§è¡æ¬èæ¬ï¼é¦å±åç window load 836 window.pjax ? start() : window.addEventListener('load', start) 837})()</script>
837<script>(()=>{ 838 // è¯è®ºæ·±é¾ï¼URL 带éç¹ï¼å¦ #<commentId>ï¼æ¶ï¼è¯è®ºæ¯æå è½½çï¼ 839 // æµè§å¨è§£ææ¶ç®æ å ç´ è¿æ²¡æ¸²æï¼å¯¼è´ä¸ä¼èªå¨è·³è½¬ãè¿éè§£æéç¹ï¼ 840 // è¯è®ºæ¸²æå®æååæ»å¨è¿å»ï¼è§ onCommentLoadedï¼ã 841 const getHashId = () => { 842 const raw = (window.location.hash || '').replace(/^#/, '') 843 if (!raw) return '' 844 try { return decodeURIComponent(raw) } catch (e) { return raw } 845 } 846 const scrollToHashTarget = () => { 847 const id = getHashId() 848 if (!id) return 849 const run = () => { 850 const el = document.getElementById(id) 851 if (!el) return 852 if (typeof btf !== 'undefined' && typeof btf.getEleTop === 'function' && typeof btf.scrollToDest === 'function') { 853 btf.scrollToDest(btf.getEleTop(el), 300) 854 } else { 855 try { el.scrollIntoView({ behavior: 'smooth', block: 'center' }) } catch (e) { el.scrollIntoView() } 856 } 857 } 858 // è¯è®ºå¤´å / emoji 弿¥å è½½ä¼æ¹åé«åº¦ï¼ç¨ååæ»ï¼å¹¶è¡¥ä¸æ¬¡å åº 859 setTimeout(run, 120) 860 setTimeout(run, 600) 861 } 862 863 const init = () => { 864 // pjax 跳转æ¶å 鿝æ§å®ä¾ï¼é¿å ç¶ææ®ç 865 try { twikoo.destroy && twikoo.destroy(); } catch (e) {} 866 const pageOpts = {} 867 if (window.location.pathname.indexOf('/link') !== -1) { 868 pageOpts.hideSubmit = true 869 } 870 twikoo.init(Object.assign({ 871 el: '#twikoo-wrap', 872 envId: 'https://twikoo.zhheo.com', 873 region: '', 874 onCommentLoaded: function (comments) { 875 if (window.location.pathname.indexOf('/link') !== -1 && typeof twikooHideSubmit === 'function') { 876 twikooHideSubmit() 877 } 878 // è¯è®ºæ¸²æå®æåæ»å¨å°éç¹ç®æ ï¼è¯è®ºæ·±é¾ï¼ 879 scrollToHashTarget() 880 } 881 }, null, pageOpts)) 882 } 883 884 const getCount = () => { 885 heo.commentApi.pageCount(window.location.pathname).then(function (count) { 886 const el = document.getElementById('twikoo-count'); 887 if (el) el.innerText = count; 888 heo.addCommentCount(count); 889 }).catch(function (err) { 890 console.error(err); 891 }); 892 } 893 894 const runFn = () => { 895 init() 896 GLOBAL_CONFIG_SITE.isPost && getCount() 897 } 898 899 const loadTwikoo = () => { 900 if (typeof twikoo === 'object') { 901 setTimeout(runFn,0) 902 return 903 } 904 getScript('https://twikoo.zhheo.com/twikoo.min.js').then(runFn) 905 } 906 907 if ('Twikoo' === 'Twikoo' || false) { 908 // è¯è®ºåºï¼~140KBï¼æ æ¡ä»¶æ¹ä¸ºãè¿å ¥è§å£åå è½½ãï¼ä¸ä¾èµ comments.lazyload å¼å ³ï¼ 909 // 该å¼å ³åæ¶æ§å¶æç« 头é¨è¯è®ºæ°çå ç´ çæ¸²æï¼ç½® true ä¼ç´æ¥ä¸æ¸²æè¿äºå ç´ ã 910 // btf ç± defer ç utils.js æä¾ï¼å èèæ¬è§£ææ¶å¯è½å°æªå°±ç»ªï¼æ å»¶è¿å° DOMContentLoadedã 911 const startComments = () => { 912 // è§å¯å¸¦å®é é«åº¦çè¯è®ºå®¹å¨ï¼#twikoo-wrap 为空æ¶é«åº¦ä¸º 0ï¼IO ä¼è¯¯å¤ä¸ºå·²è¿å ¥è§å£ï¼ 913 const anchor = document.getElementById('post-comment') || document.getElementById('twikoo-wrap') 914 // éç¹ç®æ å°æªåºç°å¨ DOMï¼å¤ä¸ºè¯è®ºæ·±é¾ #<commentId>ï¼æ¶ç«å³å è½½ï¼ 915 // å¦åæå è½½ä¼è®©æµè§å¨æ¾ä¸å°ç®æ ï¼éç¹æ æ³è·³è½¬ 916 const hashId = getHashId() 917 const hasPendingAnchor = !!hashId && !document.getElementById(hashId) 918 if (hasPendingAnchor || !(anchor && typeof btf !== 'undefined' && typeof btf.loadComment === 'function')) { 919 loadTwikoo() 920 return 921 } 922 btf.loadComment(anchor, loadTwikoo) 923 } 924 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', startComments) 925 else startComments() 926 } else { 927 window.loadOtherComment = () => { 928 loadTwikoo() 929 } 930 } 931 932 933})()</script>
933</div>
933<script>window.addEventListener('load', () => { 934 const changeContent = (content) => { 935 if (content === '') return content 936 937 content = content.replace(/<img.*?src="(.*?)"?[^\>]+>/ig, '[å¾ç]') // replace image link 938 content = content.replace(/<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi, '[龿¥]') // replace url 939 content = content.replace(/<pre><code>.*?<\/pre>/gi, '[代ç ]') // replace code 940 content = content.replace(/<[^>]+>/g,"") // remove html tag 941 942 if (content.length > 150) { 943 content = content.substring(0,150) + '...' 944 } 945 return content 946 } 947 948 const getComment = () => { 949 // èµ°ç»ä¸è¯è®º APIï¼ä¸ä¾èµè¯è®ºæ¸²æåº 950 heo.commentApi.recent(6, { 951 region: '', 952 includeReply: true, 953 excludeBlogger: false, 954 excludeEmpty: false 955 }).then(function (res) { 956 const twikooArray = res.map(e => { 957 return { 958 'content': changeContent(e.comment), 959 'avatar': e.avatar, 960 'nick': e.nick, 961 'url': e.url + '#' + e.id, 962 'date': new Date(e.created).toISOString() 963 } 964 }) 965 966 saveToLocal.set('twikoo-newest-comments', JSON.stringify(twikooArray), 10/(60*24)) 967 generateHtml(twikooArray) 968 }).catch(function (err) { 969 const $dom = document.querySelector('#card-newest-comments .aside-list') 970 if ($dom) $dom.innerHTML = "æ æ³è·åè¯è®ºï¼è¯·ç¡®è®¤ç¸å ³é ç½®æ¯å¦æ£ç¡®" 971 }) 972 } 973 974 const generateHtml = array => { 975 let result = '' 976 977 if (array.length) { 978 for (let i = 0; i < array.length; i++) { 979 result += '<div class=\'aside-list-item\'>' 980 981 if (true) { 982 const name = 'data-lazy-src' 983 result += `<a href='${array[i].url}' class='thumbnail'><img ${name}='${array[i].avatar}' alt='${array[i].nick}ç头å'><div class='name'><span>${array[i].nick}</span></div></a>` 984 } 985 986 result += `<div class='content'> 987 <a class='comment' href='${array[i].url}'>${array[i].content}</a> 988 <time datetime="${array[i].date}">${btf.diffDate(array[i].date, true)}</time></div> 989 </div>` 990 } 991 } else { 992 result += '没æè¯è®º' 993 } 994 995 let $dom = document.querySelector('#card-newest-comments .aside-list') 996 $dom.innerHTML= result 997 window.lazyLoadInstance && window.lazyLoadInstance.update() 998 window.pjax && window.pjax.refresh($dom) 999 } 1000 1001 const newestCommentInit = () => { 1002 if (document.querySelector('#card-newest-comments .aside-list')) { 1003 const data = saveToLocal.get('twikoo-newest-comments') 1004 if (data) { 1005 generateHtml(JSON.parse(data)) 1006 } else { 1007 getComment() 1008 } 1009 } 1010 } 1011 1012 // ææ°è¯è®ºå¡çä½äºä¸æ§å°ï¼é»è®¤éèï¼ï¼é¶å°ºå¯¸æ¶ IntersectionObserver ä¼è¯¯å¤ä¸ºå¯è§ï¼ 1013 // ä»èå¨é¦å±å°±æå ~140KB è¯è®ºåºãè¿éä» å½å¡ççå®å¯è§æ¶æåå§åï¼ 1014 // éèæ¶ç±æå¼ä¸æ§å°çè·¯å¾ï¼console.js çæè¿è¯è®ºï¼è´è´£å è½½ã 1015 const isCardVisible = () => { 1016 const el = document.getElementById('card-newest-comments') 1017 if (!el || el.offsetParent === null) return false 1018 const r = el.getBoundingClientRect() 1019 return r.width > 0 && r.height > 0 1020 } 1021 const safeInit = () => { if (isCardVisible()) newestCommentInit() } 1022 if (isCardVisible()) { 1023 const target = document.getElementById('card-newest-comments') 1024 if (typeof btf !== 'undefined' && typeof btf.loadComment === 'function') { 1025 btf.loadComment(target, newestCommentInit) 1026 } else { 1027 newestCommentInit() 1028 } 1029 } 1030 document.addEventListener('pjax:complete', safeInit) 1031})</script>
1031<link rel="stylesheet" href="/plugin/aplayer/APlayer.min.css?v=348805c2" media="print" onload="this.media='all'">
1031<script>(function () { 1032 var src = '/plugin/aplayer/APlayer.min.js?v=11efc866'; 1033 var load = function () { 1034 if (window.__heoAplayerLoaded) return; 1035 window.__heoAplayerLoaded = true; 1036 var s = document.createElement('script'); 1037 s.src = src; 1038 s.async = true; 1039 document.head.appendChild(s); 1040 }; 1041 if ('requestIdleCallback' in window) window.requestIdleCallback(load, { timeout: 3000 }); 1042 else window.addEventListener('load', load); 1043})();</script>
1043<script src="/plugin/pjax/pjax.min.js?v=d810aff1"></script>
1043<script>// ä¿®å¤å岿 é¢éä¹±ï¼ä¸æåæ¢ titleï¼ç pushState ä¹ååæ´æ° document.titleï¼æ° title ä» og:title ææ£æåï¼ 1044// å«æä» å¨ pjax å¯¼èªæé´çæï¼__pjaxInFlightï¼è§ä¸æ¹ pjax:send / pjax:completeï¼ï¼ 1045// 叏驻嫿伿 page-list-core ççé hash 忥ãmain.js TOC éç¹ç䏿¹ replaceState 1046// ç URL é黿¹åå½åå°åï¼æ¶çªåè¿äºåè½æ¢å¤ï¼pjax å é¨çæ é¢/URL ä¿æ¤ä¸åå½±å 1047(function () { 1048 var origReplaceState = history.replaceState; 1049 var origPushState = history.pushState; 1050 if (typeof origReplaceState === 'function') { 1051 history.replaceState = function (state, title, url) { 1052 if (!window.__pjaxInFlight) return origReplaceState.call(this, state, title, url); 1053 var currentUrl = window.location.href; 1054 if (url !== undefined && url !== null && String(url) !== currentUrl) { 1055 url = currentUrl; 1056 if (state && typeof state === 'object') state = Object.assign({}, state, { url: currentUrl }); 1057 } 1058 if (url === currentUrl && window.history.state && window.history.state.title) { 1059 title = window.history.state.title; 1060 if (state && typeof state === 'object') state = Object.assign({}, state, { title: title }); 1061 } 1062 return origReplaceState.call(this, state, title, url); 1063 }; 1064 } 1065 if (typeof origPushState === 'function') { 1066 history.pushState = function (state, title, url) { 1067 if (!window.__pjaxInFlight) return origPushState.call(this, state, title, url); 1068 // ä¼å ç¨ titleSwitch éåçæ°é¡µå®æ´æ é¢ï¼é¿å 被 document.title=prev è¦çåç <title>ï¼ï¼å ¶æ¬¡ og:titleã.post-title 1069 var saved = window.__pjaxNextTitle; 1070 var titleEl = document.querySelector('title'); 1071 var og = document.querySelector('meta[property="og:title"]'); 1072 var pt = document.querySelector('.post-title'); 1073 var newTitle = (saved && saved.trim()) || (titleEl && titleEl.textContent) || (og && og.getAttribute('content')) || (pt && pt.textContent) || document.title || title; 1074 if (typeof newTitle === 'string') newTitle = newTitle.trim(); 1075 if (window.__pjaxNextTitle) window.__pjaxNextTitle = ''; 1076 if (state && typeof state === 'object') state = Object.assign({}, state, { title: newTitle }); 1077 var ret = origPushState.call(this, state, newTitle, url); 1078 document.title = newTitle; 1079 return ret; 1080 }; 1081 } 1082})(); 1083let pjaxSelectors = [ 1084 'title', 1085 'meta[property="og:title"]', 1086 '#config-diff', 1087 '#body-wrap', 1088 '#rightside-config-hide', 1089 '#rightside-config-show', 1090 '.js-pjax', 1091 'meta[name="cover-color"]' 1092] 1093 1094if (false) { 1095 pjaxSelectors.unshift('meta[property="og:image"]', 'meta[property="og:url"]') 1096} 1097 1098// 忢 <title> æ¶å å䏿°é¡µæ é¢ï¼å åé¢ document.title=prev ä¼è¦ç <title> å 容ï¼ï¼åæ¢å¤ document.title é¿å å½åå岿¡è¢«æ¹ 1099window.__pjaxNextTitle = ''; 1100// MoOx éè¿ bind æ options ä¼ ç» switchï¼popstate åè¿/åéæ¶ options.history === falseï¼ 1101// 龿¥å¯¼èªæ¶ä¸º trueãdocument.title çèµå¼ä¼åæ¥è¦ç <title> å ç´ å 容ââ 1102// å æ¤ãæ¢å ç´ åå document.title=prevãå®é 伿å ç´ ä¸å¹¶æ¹åæ§æ é¢ï¼ 1103// åè¿å¯¼èªé pushState å«æè¡¥åæ°æ é¢ï¼åé/åè¿ä¸ç»è¿ pushStateï¼å¿ é¡»å¨è¿éç´æ¥è½æ°æ é¢ 1104function titleSwitch(oldEl, newEl, options) { 1105 var nextTitle = (newEl && newEl.textContent) ? newEl.textContent.trim() : ''; 1106 if (options && options.history === false) { 1107 // åè¿/åéï¼ç´æ¥éç¨æ°é¡µæ é¢ãè¥èµ° prev æ¢å¤åæ¯ï¼document.title 伿®ç 1108 // åè¿æ¹åç页颿 é¢ï¼å®æµï¼åéå tab ä¸å岿¡å ¨é¨éä¹±ï¼ 1109 oldEl.outerHTML = newEl.outerHTML; 1110 if (nextTitle) document.title = nextTitle; 1111 this.onSwitch(); 1112 return; 1113 } 1114 var prevTitle = document.title; 1115 oldEl.outerHTML = newEl.outerHTML; 1116 if (nextTitle) window.__pjaxNextTitle = nextTitle; 1117 document.title = prevTitle; 1118 this.onSwitch(); 1119} 1120var pjax = new Pjax({ 1121 elements: 'a:not([target="_blank"])', 1122 selectors: pjaxSelectors, 1123 switches: { title: titleSwitch }, 1124 cacheBust: false,
1125 analytics: false, 1126 scrollRestoration: false 1127}) 1128 1129// ââ pjax:complete éåå§åèè´£è¡¨ï¼æ¹å¨åå§åé»è¾æ¶è¯·åæ¥æ¤æ¸ åï¼ââââ 1130// 1) æ¬æä»¶ complete åè°ï¼éæ§è¡ #config-diffã忥 body 页é¢ç±»å classã 1131// å°é¢ä¸»è²ãéæ§è¡ script[data-pjax]ï¼busuanzi 计æ°ï¼ãlazyLoadInstance.updateãç»è®¡ä¸æ¥ç 1132// 2) heo.js ç complete ç嬿¯ã页é¢éåå§ååä¸å ¥å£ãï¼å heo.refreshFn()ï¼DOM å±ï¼main.js å®ä¹ï¼ï¼ 1133// å initBlog({ isPjax: true })ï¼åºç¨å±ï¼blogex.js å®ä¹ï¼ââé¦é¡µèµæºè¡¥è½½ãaside/post CSS 补载ã 1134// tilt/glow/tooltip éç»ãæç« èæ¬å è½½å¨ãçæ/éä»·å·æ°ç 1135// 3) 模åèªç®¡ï¼èªå¸¦å¹çå®å«ï¼ï¼home.js / console.js / page-list-core.js / 1136// php-search.js / heo-webmcp.js / funds.js / loading-js.pugï¼endLoadingï¼ 1137 1138document.addEventListener('pjax:send', function () { 1139 // PJAX 导èªå¼å§æ¶ç»ä¸æ¶èµ·ä¸æ§å°ï¼é¿å 颿¿è¦çæ°é¡µé¢å 容 1140 if (typeof heo !== 'undefined' && typeof heo.hideConsole === 'function') heo.hideConsole() 1141 1142 // è¿å ¥å¯¼èªæï¼history 嫿å¼å§æ¥ç®¡ï¼è§é¡¶é¨ IIFEï¼ 1143 window.__pjaxInFlight = true 1144 1145 // ä¿åå½å主é¢è²ï¼é¿å pjax 忢æ¶éªç 1146 if (typeof heo !== 'undefined' && heo._cachedCoverColor === null) { 1147 const coverColorMeta = document.querySelector('meta[name="cover-color"]'); 1148 if (coverColorMeta) { 1149 const coverColor = coverColorMeta.getAttribute('content'); 1150 if (coverColor && coverColor.trim()) { 1151 heo._cachedCoverColor = coverColor.trim(); 1152 } 1153 } 1154 } 1155 1156 // removeEventListener toc scroll 1157 window.removeEventListener('scroll', window.tocScrollFn) 1158 1159 typeof preloader === 'object' && preloader.initLoading() 1160 1161 if (window.aplayers) { 1162 for (let i = 0; i < window.aplayers.length; i++) { 1163 if (!window.aplayers[i].options.fixed) { 1164 window.aplayers[i].destroy() 1165 } 1166 } 1167 } 1168 1169 typeof typed === 'object' && typed.destroy() 1170 1171 //reset readmode 1172 const $bodyClassList = document.body.classList 1173 $bodyClassList.contains('read-mode') && $bodyClassList.remove('read-mode') 1174}) 1175 1176document.addEventListener('pjax:complete', function () { 1177 // 导èªç»æï¼è§£é¤ history 嫿ãpopstate åè¿/åéä¸ç»è¿ pushStateï¼ 1178 // __pjaxNextTitle 伿®çï¼è¿éä¸å¹¶æ¸ æé¿å 污æä¹åçæ®é pushState 1179 window.__pjaxInFlight = false 1180 window.__pjaxNextTitle = '' 1181 1182 // æ¾å¼éæ§è¡æ°é¡µé¢ç config-diff å èé ç½®ï¼ 1183 // pjax åªæ¿æ¢äº script#config-diff èç¹ï¼ä¸ä¿è¯éæ°æ§è¡å ¶ä¸ä»£ç ï¼ 1184 // è¥ä¸éè·ï¼window.GLOBAL_CONFIG_SITE 仿¯ä¸ä¸é¡µé¢ï¼å¦æç« 页ï¼çå¼ï¼ 1185 // 䏿¹åæ¥ body class æ¶ä¼æ home é¡µè¯¯æ æ .postï¼å¯¼è´ 1186 // .post #nav #site-name:hover çæç« é¡µæ ·å¼æ®çå°é¦é¡µã 1187 var __cfgScript = document.querySelector('script#config-diff') 1188 if (__cfgScript) { 1189 try { 1190 var __cfgRunner = document.createElement('script') 1191 __cfgRunner.text = __cfgScript.text 1192 document.head.appendChild(__cfgRunner) 1193 __cfgRunner.parentNode.removeChild(__cfgRunner) 1194 } catch (e) {} 1195 } 1196 1197 // 忥 body 页é¢ç±»å classï¼body ä¸å¨ pjax æ¿æ¢å表éï¼ 1198 // ç¬ç«é¡µï¼pageï¼ä¸æç« 页ï¼postï¼äºç¸åæ¢æ¶è¥ä¸åæ¥ï¼ 1199 // .page åç¼çæ ·å¼ï¼å¦ .page #post-comment çå¤è¾¹æ¡åå è¾¹è·ï¼ä¼é误æ®çå°å¦ä¸ç±»é¡µé¢ 1200 var __siteCfg = window.GLOBAL_CONFIG_SITE || {} 1201 var __bodyPageType = __siteCfg.isHome ? 'homePage page' : (__siteCfg.isPost ? 'post' : 'page') 1202 document.body.classList.remove('homePage', 'page', 'post') 1203 __bodyPageType.split(' ').forEach(function (cls) { 1204 if (cls) document.body.classList.add(cls) 1205 }) 1206 1207 typeof heo !== 'undefined' && heo.coverColor && heo.coverColor() 1208 // DOM å± + åºç¨å±éåå§åç»ä¸å¨ heo.js ç pjax:complete åä¸å ¥å£ï¼heo.refreshFn â initBlogï¼ 1209 1210 document.querySelectorAll('script[data-pjax]').forEach(item => { 1211 const newScript = document.createElement('script') 1212 const content = item.text || item.textContent || item.innerHTML || ""
1213 Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value)) 1214 newScript.appendChild(document.createTextNode(content)) 1215 item.parentNode.replaceChild(newScript, item) 1216 }) 1217 1218 var hotListPath = window.location.pathname 1219 if (hotListPath === '/hot/' || hotListPath === '/must-read/' || hotListPath === '/archives/' || /^\/archives\/page\/\d+\/?$/.test(hotListPath)) { 1220 window.scrollTo(0, 0) 1221 } 1222 1223 GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update() 1224 1225 typeof chatBtnFn === 'function' && chatBtnFn() 1226 typeof panguInit === 'function' && panguInit() 1227 1228 // google analytics 1229 typeof gtag === 'function' && gtag('config', '', {'page_path': window.location.pathname}); 1230 1231 // baidu analytics 1232 typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]); 1233 1234 typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting(); 1235 1236 // Analytics 1237 if (false) { 1238 MtaH5.pgv() 1239 } 1240 1241 // prismjs 1242 typeof Prism === 'object' && Prism.highlightAll() 1243 1244}) 1245 1246document.addEventListener('pjax:error', (e) => { 1247 window.__pjaxInFlight = false 1248 if (e.request && e.request.status === 404) { 1249 pjax.loadUrl('/404.html') 1250 return 1251 } 1252 // é 404 失败ï¼ç½ç»æå¼/è¶ æ¶/5xx/DOM ç»æä¸å¹é ï¼ï¼MoOx ä¸ä¼æ´é¡µè·³è½¬ï¼ 1253 // 页é¢åçå¨åå 容䏿 ä»»ä½åé¦ï¼è¿éæ¾å¼æç¤ºï¼å è½½é®ç½©ç± pjax:complete ç endLoading æ¶å°¾ 1254 if (typeof btf !== 'undefined' && btf.snackbarShow) { 1255 btf.snackbarShow('页é¢å 载失败ï¼è¯·æ£æ¥ç½ç»åéè¯', false, 3000) 1256 } 1257 typeof preloader === 'object' && preloader.endLoading && preloader.endLoading() 1258})</script>
1258<script async data-pjax src="/plugin/busuanzi/busuanzi.js?v=a1caea8f"></script>
1258<script defer charset="utf-8" src="/zhheo/blogex.js?v=b840fe53"></script>
1258</div></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.