PageSourceSearch

https://garymk.cn/categories/

html garymk.cn collected 2026-10-09 22:07:45 UTC 34,693 bytes, 359 lines download raw bytes

1<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>分类 | GaryMK</title><meta name="author" content="Gary MK,[email protected]"><meta name="copyright" content="Gary MK"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="ffffff"><meta name="description" content="程序开发与算法研究">
2<meta property="og:type" content="website">
3<meta property="og:title" content="分类">
4<meta property="og:url" content="https://garymk.cn/categories/index.html">
5<meta property="og:site_name" content="GaryMK">
6<meta property="og:description" content="程序开发与算法研究">
7<meta property="og:locale" content="zh_CN">
8<meta property="og:image" content="https://file.crazywong.com/gh/jerryc127/CDN@latest/cover/default_bg.png">
9<meta property="article:published_time" content="2020-11-03T04:38:37.000Z">
10<meta property="article:modified_time" content="2020-11-03T04:38:37.000Z">
11<meta property="article:author" content="Gary MK">
12<meta name="twitter:card" content="summary">
13<meta name="twitter:image" content="https://file.crazywong.com/gh/jerryc127/CDN@latest/cover/default_bg.png"><link rel="shortcut icon" href="/img/favicon.ico"><link rel="canonical" href="https://garymk.cn/categories/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//www.google-analytics.com" crossorigin=""/><link rel="preconnect" href="//hm.baidu.com"/><link rel="preconnect" href="//fonts.googleapis.com" crossorigin=""/><meta name="google-site-verification" content="HEHvITU5ivSY_I-Y28VZuf7PUipzf-qPR7w9Uz1csDA"/><meta name="baidu-site-verification" content="codeva-f6yev5EHVP"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'">
13<script>var _hmt = _hmt || [];
14(function() {
15  var hm = document.createElement("script");
16  hm.src = "https://hm.baidu.com/hm.js?1d3a6cf1a7d8ae018523cb3684a27486";
17  var s = document.getElementsByTagName("script")[0]; 
18  s.parentNode.insertBefore(hm, s);
19})();
20</script>
vendor: 71 bytes, line 20
20<script async="async" src="https://www.googletagmanager.com/gtag/js?id=
20G-5G6KHDXYS9
vendor: 11 bytes, line 20
20"></script>
20<script>
vendor: 127 bytes, lines 20-23
20window.dataLayer = window.dataLayer || [];
21function gtag(){dataLayer.push(arguments);}
22gtag('js', new Date());
23gtag('config', '
23G-5G6KHDXYS9
vendor: 4 bytes, line 23
23');
24</script>
24<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium+Web&amp;display=swap" media="print" onload="this.media='all'">
24<script>const GLOBAL_CONFIG = {
25  root: '/',
26  algolia: undefined,
27  localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":false,"languages":{"hits_empty":"找不到您查询的内容:${query}","hits_stats":"共找到 ${hits} 篇文章"}},
28  translate: {"defaultEncoding":1,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"簡"},
29  noticeOutdate: {"limitDay":1000,"position":"top","messagePrev":"It has been","messageNext":"days since the last update, the content of the article may be outdated."},
30  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
31  copy: {
32    success: '复制成功',
33    error: '复制错误',
34    noSupport: '浏览器不支持'
35  },
36  relativeDate: {
37    homepage: true,
38    post: false
39  },
40  runtime: '天',
41  dateSuffix: {
42    just: '刚刚',
43    min: '分钟前',
44    hour: '小时前',
45    day: '天前',
46    month: '个月前'
47  },
48  copyright: {"limitCount":50,"languages":{"author":"作者: Gary MK","link":"链接: ","source":"来源: GaryMK","info":"著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。"}},
49  lightbox: 'fancybox',
50  Snackbar: {"chs_to_cht":"你已切换为繁体","cht_to_chs":"你已切换为简体","day_to_night":"你已切换为深色模式","night_to_day":"你已切换为浅色模式","bgLight":"#49b1f5","bgDark":"#1f1f1f","position":"bottom-left"},
51  source: {
52    justifiedGallery: {
53      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
54      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
55    }
56  },
57  isPhotoFigcaption: true,
58  islazyload: false,
59  isAnchor: false,
60  percent: {
61    toc: true,
62    rightside: true,
63  },
64  autoDarkmode: false
65}</script>
65<script id="config-diff">var GLOBAL_CONFIG_SITE = {
66  title: '分类',
67  isPost: false,
68  isHome: false,
69  isHighlightShrink: false,
70  isToc: false,
71  postUpdate: '2020-11-03 12:38:37'
72}</script>
72<noscript><style type="text/css">
73  #nav {
74    opacity: 1
75  }
76  .justified-gallery img {
77    opacity: 1
78  }
79
80  #recent-posts time,
81  #post-meta time {
82    display: inline !important
83  }
84</style></noscript>
84<script>(win=>{
85    win.saveToLocal = {
86      set: function setWithExpiry(key, value, ttl) {
87        if (ttl === 0) return
88        const now = new Date()
89        const expiryDay = ttl * 86400000
90        const item = {
91          value: value,
92          expiry: now.getTime() + expiryDay,
93        }
94        localStorage.setItem(key, JSON.stringify(item))
95      },
96
97      get: function getWithExpiry(key) {
98        const itemStr = localStorage.getItem(key)
99
100        if (!itemStr) {
101          return undefined
102        }
103        const item = JSON.parse(itemStr)
104        const now = new Date()
105
106        if (now.getTime() > item.expiry) {
107          localStorage.removeItem(key)
108          return undefined
109        }
110        return item.value
111      }
112    }
113  
114    win.getScript = url => new Promise((resolve, reject) => {
115      const script = document.createElement('script')
116      script.src = url
117      script.async = true
118      script.onerror = reject
119      script.onload = script.onreadystatechange = function() {
120        const loadState = this.readyState
121        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
122        script.onload = script.onreadystatechange = null
123        resolve()
124      }
125      document.head.appendChild(script)
126    })
127  
128    win.getCSS = (url,id = false) => new Promise((resolve, reject) => {
129      const link = document.createElement('link')
130      link.rel = 'stylesheet'
131      link.href = url
132      if (id) link.id = id
133      link.onerror = reject
134      link.onload = link.onreadystatechange = function() {
135        const loadState = this.readyState
136        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
137        link.onload = link.onreadystatechange = null
138        resolve()
139      }
140      document.head.appendChild(link)
141    })
142  
143      win.activateDarkMode = function () {
144        document.documentElement.setAttribute('data-theme', 'dark')
145        if (document.querySelector('meta[name="theme-color"]') !== null) {
146          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
147        }
148      }
149      win.activateLightMode = function () {
150        document.documentElement.setAttribute('data-theme', 'light')
151        if (document.querySelector('meta[name="theme-color"]') !== null) {
152          document.querySelector('meta[name="theme-color"]').setAttribute('content', 'ffffff')
153        }
154      }
155      const t = saveToLocal.get('theme')
156    
157          if (t === 'dark') activateDarkMode()
158          else if (t === 'light') activateLightMode()
159        
160      const asideStatus = saveToLocal.get('aside-status')
161      if (asideStatus !== undefined) {
162        if (asideStatus === 'hide') {
163          document.documentElement.classList.add('hide-aside')
164        } else {
165          document.documentElement.classList.remove('hide-aside')
166        }
167      }
168    
169    const detectApple = () => {
170      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
171        document.documentElement.classList.add('apple')
172      }
173    }
174    detectApple()
175    })(window)</script>
175<meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="GaryMK" type="application/atom+xml">
176</head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://wx.qlogo.cn/mmhead/Q3auHgzwzM40NV46MrdfnryFg6EIMAlt8uO7tfbtbs6XH9W2Z1Opfw/0" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">36</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">19</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">13</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div><div class="menus_item"><a class="site-page group hide" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> List</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li><li><a class="site-page child" href="/movies/"><i class="fa-fw fas fa-video"></i><span> Movie</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Link</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="not-home-page fixed" id="page-header" style="background-image: url('/img/messageboard.jpg')"><nav id="nav"><span id="blog-info"><a href="/" title="GaryMK"><span class="site-name">GaryMK</span></a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search" href="javascript:void(0);"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div><div class="menus_item"><a class="site-page group hide" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> List</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li><li><a class="site-page child" href="/movies/"><i class="fa-fw fas fa-video"></i><span> Movie</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Link</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="page-site-info"><h1 id="site-title">分类</h1></div></header><main class="layout" id="content-inner"><div id="page"><div class="category-lists"><ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/Debug/">Debug</a><span class="category-list-count">2</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/categories/Debug/Web/">Web</a><span class="category-list-count">1</span></li></ul></li><li class="category-list-item"><a class="category-list-link" href="/categories/MStar/">
176MStar</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%B7%A5%E4%BD%9C/">工作</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%BC%80%E5%8F%91/">开发</a><span class="category-list-count">7</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/">环境配置</a><span class="category-list-count">5</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E7%AE%97%E6%B3%95/">算法</a><span class="category-list-count">4</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/categories/%E7%AE%97%E6%B3%95/%E6%9C%9F%E5%88%8A/">期刊</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E7%AE%97%E6%B3%95/%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B/">目标检测</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E7%AE%97%E6%B3%95/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86/">自然语言处理</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E7%AE%97%E6%B3%95/%E8%AE%BA%E6%96%87%E9%98%85%E8%AF%BB/">论文阅读</a><span class="category-list-count">1</span></li></ul></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E9%9A%8F%E8%AE%B0/">随记</a><span class="category-list-count">11</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E9%9D%A2%E7%BB%8F/">面经</a><span class="category-list-count">2</span></li></ul></div><hr class="custom-hr"/><div id="post-comment"><div class="comment-head"><div class="comment-headline"><i class="fas fa-comments fa-fw"></i><span> 评论</span></div></div><div class="comment-wrap"><div><div id="waline-wrap"></div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://wx.qlogo.cn/mmhead/Q3auHgzwzM40NV46MrdfnryFg6EIMAlt8uO7tfbtbs6XH9W2Z1Opfw/0" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">Gary MK</div><div class="author-info__description">
176程序开发与算法研究</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">36</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">19</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">13</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/GaryMK"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="/img/weixin.png" target="_blank" title="WeChat"><i class="fa-brands fa-weixin" style="color: #4a7dbe;"></i></a><a class="social-icon" href="https://github.com/garymk" target="_blank" title="Github"><i class="fab fa-github" style="color: #4a7dbe;"></i></a><a class="social-icon" href="mailto:[email protected]" target="_blank" title="Email"><i class="fas fa-envelope" style="color: #4a7dbe;"></i></a><a class="social-icon" href="/atom.xml" target="_blank" title="RSS"><i class="fa-solid fa-rss" style="color: #4a7dbe;"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2025/05/08/Mac%EF%BC%88ARM%EF%BC%89%E4%B8%8B%E7%BC%96%E8%AF%91OLLVM%E5%B9%B6%E9%9B%86%E6%88%90NDK25/" title="Mac(ARM)下编译OLLVM并集成NDK25">Mac(ARM)下编译OLLVM并集成NDK25</a><time datetime="2025-05-08T13:32:16.000Z" title="发表于 2025-05-08 21:32:16">2025-05-08</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/12/13/ProjectA/" title="ProjectA">ProjectA</a><time datetime="2023-12-13T09:29:11.000Z" title="发表于 2023-12-13 17:29:11">2023-12-13</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/12/13/MAC%E8%AE%BE%E7%BD%AE%E6%98%BE%E7%A4%BA%E9%9A%90%E8%97%8F%E6%96%87%E4%BB%B6/" title="MAC设置显示隐藏文件">MAC设置显示隐藏文件</a><time datetime="2023-12-13T06:49:03.000Z" title="发表于 2023-12-13 14:49:03">2023-12-13</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/12/11/RN%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/" title="RN环境配置">RN环境配置</a><time datetime="2023-12-11T13:49:48.000Z" title="发表于 2023-12-11 21:49:48">2023-12-11</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2023/12/11/zsh%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE/" title="zsh安装及配置">zsh安装及配置</a><time datetime="2023-12-11T13:24:32.000Z" title="发表于 2023-12-11 21:24:32">2023-12-11</time></div></div></div></div><div class="card-widget" id="card-newest-comments"><div class="item-headline"><i class="fas fa-comment-dots"></i><span>最新评论</span></div><div class="aside-list"><span>正在加载中...</span></div></div><div class="card-widget card-categories"><div class="item-headline">
177            <i class="fas fa-folder-open"></i>
178            <span>分类</span>
179            <a class="card-more-btn" href="/categories/" title="查看更多">
180    <i class="fas fa-angle-right"></i></a>
181            </div>
182            <ul class="card-category-list" id="aside-cat-list">
183            <li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Debug/"><span class="card-category-list-name">Debug</span><span class="card-category-list-count">2</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Debug/Web/"><span class="card-category-list-name">Web</span><span class="card-category-list-count">1</span></a></li></ul></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/MStar/"><span class="card-category-list-name">MStar</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%B7%A5%E4%BD%9C/"><span class="card-category-list-name">工作</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%BC%80%E5%8F%91/"><span class="card-category-list-name">开发</span><span class="card-category-list-count">7</span></a></li><li class="card-category-list-item ">
183<a class="card-category-list-link" href="/categories/%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE/"><span class="card-category-list-name">环境配置</span><span class="card-category-list-count">5</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E7%AE%97%E6%B3%95/"><span class="card-category-list-name">算法</span><span class="card-category-list-count">4</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E7%AE%97%E6%B3%95/%E6%9C%9F%E5%88%8A/"><span class="card-category-list-name">期刊</span><span class="card-category-list-count">1</span></a></li></ul></li>
184            </ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/%E9%9A%8F%E8%AE%B0/" style="font-size: 1.15em; color: rgb(131, 138, 120)">随记</a><a href="/tags/Android/" style="font-size: 1.15em; color: rgb(24, 45, 43)">Android</a><a href="/tags/Java/" style="font-size: 1.15em; color: rgb(44, 32, 97)">Java</a><a href="/tags/CV/" style="font-size: 1.45em; color: rgb(58, 26, 84)">CV</a><a href="/tags/Git/" style="font-size: 1.45em; color: rgb(112, 126, 66)">Git</a><a href="/tags/Javascript/" style="font-size: 1.15em; color: rgb(82, 5, 138)">Javascript</a><a href="/tags/Python/" style="font-size: 1.15em; color: rgb(19, 173, 142)">Python</a><a href="/tags/Qt%E5%BC%80%E5%8F%91/" style="font-size: 1.15em; color: rgb(40, 31, 118)">Qt开发</a><a href="/tags/SCI/" style="font-size: 1.15em; color: rgb(82, 123, 83)">SCI</a><a href="/tags/Typora/" style="font-size: 1.15em; color: rgb(27, 126, 178)">Typora</a><a href="/tags/PicGo/" style="font-size: 1.15em; color: rgb(77, 151, 9)">PicGo</a><a href="/tags/Redis/" style="font-size: 1.15em; color: rgb(1, 164, 9)">Redis</a><a href="/tags/zsh/" style="font-size: 1.15em; color: rgb(65, 41, 177)">zsh</a><a href="/tags/%E9%87%91%E8%9E%8D%E5%AD%A6/" style="font-size: 1.15em; color: rgb(45, 100, 165)">金融学</a><a href="/tags/%E6%A1%86%E6%9E%B6/" style="font-size: 1.15em; color: rgb(167, 137, 189)">框架</a><a href="/tags/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/" style="font-size: 1.15em; color: rgb(175, 48, 196)">强化学习</a><a href="/tags/BERT%E6%A8%A1%E5%9E%8B/" style="font-size: 1.15em; color: rgb(51, 192, 155)">BERT模型</a><a href="/tags/%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F/" style="font-size: 1.15em; color: rgb(197, 106, 59)">推荐系统</a><a href="/tags/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/" style="font-size: 1.15em; color: rgb(122, 165, 141)">项目管理</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
185    <i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2025/05/"><span class="card-archive-list-date">五月 2025</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/12/"><span class="card-archive-list-date">十二月 2023</span><span class="card-archive-list-count">4</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/08/"><span class="card-archive-list-date">八月 2023</span><span class="card-archive-list-count">4</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/07/"><span class="card-archive-list-date">七月 2023</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/06/"><span class="card-archive-list-date">六月 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/02/"><span class="card-archive-list-date">二月 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/09/"><span class="card-archive-list-date">九月 2021</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/08/"><span class="card-archive-list-date">八月 2021</span><span class="card-archive-list-count">1</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">36</div></div><div class="webinfo-item"><div class="item-name">已运行时间 :</div><div class="item-count" id="runtimeshow" data-publishDate="2020-12-25T16:00:00.000Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">53.1k</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2025-12-23T17:07:04.071Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer" style="background-image: url('/img/messageboard.jpg')"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2025 By Gary MK</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div><div class="footer_custom_text">Hi, welcome to my <a target="_blank" rel="noopener" href="https://garymk.github.io/GaryMK.github.io/">blog</a>!</div></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><a id="to_comment" href="#post-comment" title="直达评论"><i class="fas fa-comments"></i></a><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div>
185<script src="/js/utils.js"></script>
185<script src="/js/main.js"></script>
185<script src="/js/tw_cn.js"></script>
185<script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.umd.min.js"></script>
185<script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script>
185<script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script>
185<div class="js-pjax">
185<script>function loadWaline () {
186  function initWaline () {
187    const waline = Waline.init(Object.assign({
188      el: '#waline-wrap',
189      serverURL: 'https://waline.garymk.cn',
190      pageview: true,
191      dark: 'html[data-theme="dark"]',
192      path: window.location.pathname,
193      comment: false,
194    }, null))
195  }
196
197  if (typeof Waline === 'object') initWaline()
198  else {
199    getCSS('https://cdn.jsdelivr.net/npm/@waline/client/dist/waline.min.css').then(() => {
200      getScript('https://cdn.jsdelivr.net/npm/@waline/client/dist/waline.min.js').then(initWaline)
201    })
202  }
203}
204
205if ('Waline' === 'Waline' || !false) {
206  if (false) btf.loadComment(document.getElementById('waline-wrap'),loadWaline)
207  else setTimeout(loadWaline, 0)
208} else {
209  function loadOtherComment () {
210    loadWaline()
211  }
212}</script>
212</div>
212<script>window.addEventListener('load', () => {
213  const changeContent = content => {
214    if (content === '') return content
215
216    content = content.replace(/<img.*?src="(.*?)"?[^\>]+>/ig, '[图片]') // replace image link
217    content = content.replace(/<a[^>]+?href=["']?([^"']+)["']?[^>]*>([^<]+)<\/a>/gi, '[链接]') // replace url
218    content = content.replace(/<pre><code>.*?<\/pre>/gi, '[代码]') // replace code
219    content = content.replace(/<[^>]+>/g,"") // remove html tag
220
221    if (content.length > 150) {
222      content = content.substring(0,150) + '...'
223    }
224    return content
225  }
226
227  const generateHtml = array => {
228    let result = ''
229
230    if (array.length) {
231      for (let i = 0; i < array.length; i++) {
232        result += '<div class=\'aside-list-item\'>'
233
234        if (true) {
235          const name = 'src'
236          result += `<a href='${array[i].url}' class='thumbnail'><img ${name}='${array[i].avatar}' alt='${array[i].nick}'></a>`
237        }
238
239        result += `<div class='content'>
240        <a class='comment' href='${array[i].url}' title='${array[i].content}'>${array[i].content}</a>
241        <div class='name'><span>${array[i].nick} / </span><time datetime="${array[i].date}">${btf.diffDate(array[i].date, true)}</time></div>
242        </div></div>`
243      }
244    } else {
245      result += '没有评论'
246    }
247
248    let $dom = document.querySelector('#card-newest-comments .aside-list')
249    $dom.innerHTML= result
250    window.lazyLoadInstance && window.lazyLoadInstance.update()
251    window.pjax && window.pjax.refresh($dom)
252  }
253
254  const getComment = async () => {
255    try {
256      const res = await fetch('https://waline.garymk.cn/api/comment?type=recent&count=6', { method: 'GET' })
257      const result = await res.json()
258      const walineArray = result.data.map(e => {
259        return {
260          'content': changeContent(e.comment),
261          'avatar': e.avatar,
262          'nick': e.nick,
263          'url': e.url + '#' + e.objectId,
264          'date': e.time || e.insertedAt
265        }
266      })
267      saveToLocal.set('waline-newest-comments', JSON.stringify(walineArray), 10/(60*24))
268      generateHtml(walineArray)
269    } catch (err) {
270      console.error(err)
271      const $dom = document.querySelector('#card-newest-comments .aside-list')
272      $dom.textContent= "无法获取评论,请确认相关配置是否正确"
273    }
274  }
275
276  const newestCommentInit = () => {
277    if (document.querySelector('#card-newest-comments .aside-list')) {
278      const data = saveToLocal.get('waline-newest-comments')
279      if (data) {
280        generateHtml(JSON.parse(data))
281      } else {
282        getComment()
283      }
284    }
285  }
286
287  newestCommentInit()
288  document.addEventListener('pjax:complete', newestCommentInit)
289})</script>
289<script defer="defer" id="ribbon" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-ribbon.min.js" size="150" alpha="0.6" zIndex="-1" mobile="false" data-click="true"></script>
289<script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/activate-power-mode.min.js"></script>
289<script>POWERMODE.colorful = true;
290POWERMODE.shake = true;
291POWERMODE.mobile = false;
292document.body.addEventListener('input', POWERMODE);
293</script>
293<script id="click-heart" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/click-heart.min.js" async="async" mobile="false"></script>
293<script src="https://cdn.jsdelivr.net/npm/pjax/pjax.min.js"></script>
293<script>let pjaxSelectors = ["head > title","#config-diff","#body-wrap","#rightside-config-hide","#rightside-config-show",".js-pjax"]
294
295var pjax = new Pjax({
296  elements: 'a:not([target="_blank"]):not([href="/music/"]):not([href="/no-pjax/"])',
297  selectors: pjaxSelectors,
298  cacheBust: false,
299  analytics: true,
300  scrollRestoration: false
301})
302
303document.addEventListener('pjax:send', function () {
304
305  // removeEventListener scroll 
306  window.tocScrollFn && window.removeEventListener('scroll', window.tocScrollFn)
307  window.scrollCollect && window.removeEventListener('scroll', scrollCollect)
308
309  document.getElementById('rightside').style.cssText = "opacity: ''; transform: ''"
310  
311  if (window.aplayers) {
312    for (let i = 0; i < window.aplayers.length; i++) {
313      if (!window.aplayers[i].options.fixed) {
314        window.aplayers[i].destroy()
315      }
316    }
317  }
318
319  typeof typed === 'object' && typed.destroy()
320
321  //reset readmode
322  const $bodyClassList = document.body.classList
323  $bodyClassList.contains('read-mode') && $bodyClassList.remove('read-mode')
324
325  typeof disqusjs === 'object' && disqusjs.destroy()
326})
327
328document.addEventListener('pjax:complete', function () {
329  window.refreshFn()
330
331  document.querySelectorAll('script[data-pjax]').forEach(item => {
332    const newScript = document.createElement('script')
333    const content = item.text || item.textContent || item.innerHTML || ""
334    Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
335    newScript.appendChild(document.createTextNode(content))
336    item.parentNode.replaceChild(newScript, item)
337  })
338
339  GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update()
340
341  typeof panguInit === 'function' && panguInit()
342
343  // google analytics
344  typeof gtag === 'function' && gtag('config', 'G-5G6KHDXYS9', {'page_path': window.location.pathname});
345
346  // baidu analytics
347  typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]);
348
349  typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting()
350
351  // prismjs
352  typeof Prism === 'object' && Prism.highlightAll()
353})
354
355document.addEventListener('pjax:error', (e) => {
356  if (e.request.status === 404) {
357    pjax.loadUrl('/404.html')
358  }
359})</script>
359<script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
359<div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span>  数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div class="no-result" id="local-search-results"></div><div id="local-search-stats-wrap"></div></div></div><div id="search-mask"></div>
359<script src="/js/search/local-search.js"></script>
359</div></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.