{"id":28,"date":"2026-01-02T17:39:46","date_gmt":"2026-01-02T09:39:46","guid":{"rendered":"https:\/\/www.tom-thu.cn:18434\/?page_id=28"},"modified":"2026-04-25T22:40:43","modified_gmt":"2026-04-25T14:40:43","slug":"%e5%be%80%e6%9c%9f%e5%9b%9e%e9%a1%be","status":"publish","type":"page","link":"https:\/\/www.tom-thu.cn\/?page_id=28","title":{"rendered":"\u5f80\u671f\u56de\u987e"},"content":{"rendered":"<p><!DOCTYPE html><br \/>\n<html><br \/>\n<head><br \/>\n<title>main.md<\/title><br \/>\n<meta http-equiv=\"Content-type\" content=\"text\/html;charset=UTF-8\"><\/p>\n<style>\n\/* https:\/\/github.com\/microsoft\/vscode\/blob\/master\/extensions\/markdown-language-features\/media\/markdown.css *\/\n\/*---------------------------------------------------------------------------------------------\n *  Copyright (c) Microsoft Corporation. All rights reserved.\n *  Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*\/<\/p>\n<p>body {\n\tfont-family: var(--vscode-markdown-font-family, -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"Ubuntu\", \"Droid Sans\", sans-serif);\n\tfont-size: var(--vscode-markdown-font-size, 14px);\n\tpadding: 0 26px;\n\tline-height: var(--vscode-markdown-line-height, 22px);\n\tword-wrap: break-word;\n}<\/p>\n<p>#code-csp-warning {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tcolor: white;\n\tmargin: 16px;\n\ttext-align: center;\n\tfont-size: 12px;\n\tfont-family: sans-serif;\n\tbackground-color:#444444;\n\tcursor: pointer;\n\tpadding: 6px;\n\tbox-shadow: 1px 1px 1px rgba(0,0,0,.25);\n}<\/p>\n<p>#code-csp-warning:hover {\n\ttext-decoration: none;\n\tbackground-color:#007acc;\n\tbox-shadow: 2px 2px 2px rgba(0,0,0,.25);\n}<\/p>\n<p>body.scrollBeyondLastLine {\n\tmargin-bottom: calc(100vh - 22px);\n}<\/p>\n<p>body.showEditorSelection .code-line {\n\tposition: relative;\n}<\/p>\n<p>body.showEditorSelection .code-active-line:before,\nbody.showEditorSelection .code-line:hover:before {\n\tcontent: \"\";\n\tdisplay: block;\n\tposition: absolute;\n\ttop: 0;\n\tleft: -12px;\n\theight: 100%;\n}<\/p>\n<p>body.showEditorSelection li.code-active-line:before,\nbody.showEditorSelection li.code-line:hover:before {\n\tleft: -30px;\n}<\/p>\n<p>.vscode-light.showEditorSelection .code-active-line:before {\n\tborder-left: 3px solid rgba(0, 0, 0, 0.15);\n}<\/p>\n<p>.vscode-light.showEditorSelection .code-line:hover:before {\n\tborder-left: 3px solid rgba(0, 0, 0, 0.40);\n}<\/p>\n<p>.vscode-light.showEditorSelection .code-line .code-line:hover:before {\n\tborder-left: none;\n}<\/p>\n<p>.vscode-dark.showEditorSelection .code-active-line:before {\n\tborder-left: 3px solid rgba(255, 255, 255, 0.4);\n}<\/p>\n<p>.vscode-dark.showEditorSelection .code-line:hover:before {\n\tborder-left: 3px solid rgba(255, 255, 255, 0.60);\n}<\/p>\n<p>.vscode-dark.showEditorSelection .code-line .code-line:hover:before {\n\tborder-left: none;\n}<\/p>\n<p>.vscode-high-contrast.showEditorSelection .code-active-line:before {\n\tborder-left: 3px solid rgba(255, 160, 0, 0.7);\n}<\/p>\n<p>.vscode-high-contrast.showEditorSelection .code-line:hover:before {\n\tborder-left: 3px solid rgba(255, 160, 0, 1);\n}<\/p>\n<p>.vscode-high-contrast.showEditorSelection .code-line .code-line:hover:before {\n\tborder-left: none;\n}<\/p>\n<p>img {\n\tmax-width: 100%;\n\tmax-height: 100%;\n}<\/p>\n<p>a {\n\ttext-decoration: none;\n}<\/p>\n<p>a:hover {\n\ttext-decoration: underline;\n}<\/p>\n<p>a:focus,\ninput:focus,\nselect:focus,\ntextarea:focus {\n\toutline: 1px solid -webkit-focus-ring-color;\n\toutline-offset: -1px;\n}<\/p>\n<p>hr {\n\tborder: 0;\n\theight: 2px;\n\tborder-bottom: 2px solid;\n}<\/p>\n<p>h1 {\n\tpadding-bottom: 0.3em;\n\tline-height: 1.2;\n\tborder-bottom-width: 1px;\n\tborder-bottom-style: solid;\n}<\/p>\n<p>h1, h2, h3 {\n\tfont-weight: normal;\n}<\/p>\n<p>table {\n\tborder-collapse: collapse;\n}<\/p>\n<p>table > thead > tr > th {\n\ttext-align: left;\n\tborder-bottom: 1px solid;\n}<\/p>\n<p>table > thead > tr > th,\ntable > thead > tr > td,\ntable > tbody > tr > th,\ntable > tbody > tr > td {\n\tpadding: 5px 10px;\n}<\/p>\n<p>table > tbody > tr + tr > td {\n\tborder-top: 1px solid;\n}<\/p>\n<p>blockquote {\n\tmargin: 0 7px 0 5px;\n\tpadding: 0 16px 0 10px;\n\tborder-left-width: 5px;\n\tborder-left-style: solid;\n}<\/p>\n<p>code {\n\tfont-family: Menlo, Monaco, Consolas, \"Droid Sans Mono\", \"Courier New\", monospace, \"Droid Sans Fallback\";\n\tfont-size: 1em;\n\tline-height: 1.357em;\n}<\/p>\n<p>body.wordWrap pre {\n\twhite-space: pre-wrap;\n}<\/p>\n<p>pre:not(.hljs),\npre.hljs code > div {\n\tpadding: 16px;\n\tborder-radius: 3px;\n\toverflow: auto;\n}<\/p>\n<p>pre code {\n\tcolor: var(--vscode-editor-foreground);\n\ttab-size: 4;\n}<\/p>\n<p>\/** Theming *\/<\/p>\n<p>.vscode-light pre {\n\tbackground-color: rgba(220, 220, 220, 0.4);\n}<\/p>\n<p>.vscode-dark pre {\n\tbackground-color: rgba(10, 10, 10, 0.4);\n}<\/p>\n<p>.vscode-high-contrast pre {\n\tbackground-color: rgb(0, 0, 0);\n}<\/p>\n<p>.vscode-high-contrast h1 {\n\tborder-color: rgb(0, 0, 0);\n}<\/p>\n<p>.vscode-light table > thead > tr > th {\n\tborder-color: rgba(0, 0, 0, 0.69);\n}<\/p>\n<p>.vscode-dark table > thead > tr > th {\n\tborder-color: rgba(255, 255, 255, 0.69);\n}<\/p>\n<p>.vscode-light h1,\n.vscode-light hr,\n.vscode-light table > tbody > tr + tr > td {\n\tborder-color: rgba(0, 0, 0, 0.18);\n}<\/p>\n<p>.vscode-dark h1,\n.vscode-dark hr,\n.vscode-dark table > tbody > tr + tr > td {\n\tborder-color: rgba(255, 255, 255, 0.18);\n}<\/p>\n<\/style>\n<style>\n\/* Tomorrow Theme *\/\n\/* http:\/\/jmblog.github.com\/color-themes-for-google-code-highlightjs *\/\n\/* Original theme - https:\/\/github.com\/chriskempson\/tomorrow-theme *\/<\/p>\n<p>\/* Tomorrow Comment *\/\n.hljs-comment,\n.hljs-quote {\n\tcolor: #8e908c;\n}<\/p>\n<p>\/* Tomorrow Red *\/\n.hljs-variable,\n.hljs-template-variable,\n.hljs-tag,\n.hljs-name,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-regexp,\n.hljs-deletion {\n\tcolor: #c82829;\n}<\/p>\n<p>\/* Tomorrow Orange *\/\n.hljs-number,\n.hljs-built_in,\n.hljs-builtin-name,\n.hljs-literal,\n.hljs-type,\n.hljs-params,\n.hljs-meta,\n.hljs-link {\n\tcolor: #f5871f;\n}<\/p>\n<p>\/* Tomorrow Yellow *\/\n.hljs-attribute {\n\tcolor: #eab700;\n}<\/p>\n<p>\/* Tomorrow Green *\/\n.hljs-string,\n.hljs-symbol,\n.hljs-bullet,\n.hljs-addition {\n\tcolor: #718c00;\n}<\/p>\n<p>\/* Tomorrow Blue *\/\n.hljs-title,\n.hljs-section {\n\tcolor: #4271ae;\n}<\/p>\n<p>\/* Tomorrow Purple *\/\n.hljs-keyword,\n.hljs-selector-tag {\n\tcolor: #8959a8;\n}<\/p>\n<p>.hljs {\n\tdisplay: block;\n\toverflow-x: auto;\n\tcolor: #4d4d4c;\n\tpadding: 0.5em;\n}<\/p>\n<p>.hljs-emphasis {\n\tfont-style: italic;\n}<\/p>\n<p>.hljs-strong {\n\tfont-weight: bold;\n}\n<\/style>\n<style>\n\/*\n * Markdown PDF CSS\n *\/<\/p>\n<p> body {\n\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"Ubuntu\", \"Droid Sans\", sans-serif, \"Meiryo\";\n\tpadding: 0 12px;\n}<\/p>\n<p>pre {\n\tbackground-color: #f8f8f8;\n\tborder: 1px solid #cccccc;\n\tborder-radius: 3px;\n\toverflow-x: auto;\n\twhite-space: pre-wrap;\n\toverflow-wrap: break-word;\n}<\/p>\n<p>pre:not(.hljs) {\n\tpadding: 23px;\n\tline-height: 19px;\n}<\/p>\n<p>blockquote {\n\tbackground: rgba(127, 127, 127, 0.1);\n\tborder-color: rgba(0, 122, 204, 0.5);\n}<\/p>\n<p>.emoji {\n\theight: 1.4em;\n}<\/p>\n<p>code {\n\tfont-size: 14px;\n\tline-height: 19px;\n}<\/p>\n<p>\/* for inline code *\/\n:not(pre):not(.hljs) > code {\n\tcolor: #C9AE75; \/* Change the old color so it seems less like an error *\/\n\tfont-size: inherit;\n}<\/p>\n<p>\/* Page Break : use <\/p>\n<div class=\"page\"\/> to insert page break\n-------------------------------------------------------- *\/\n.page {\n\tpage-break-after: always;\n}<\/p>\n<\/style>\n<p><script src=\"https:\/\/unpkg.com\/mermaid\/dist\/mermaid.min.js\"><\/script><br \/>\n<\/head><br \/>\n<body><br \/>\n  <script>\n    mermaid.initialize({\n      startOnLoad: true,\n      theme: document.body.classList.contains('vscode-dark') || document.body.classList.contains('vscode-high-contrast')\n          ? 'dark'\n          : 'default'\n    });\n  <\/script><\/p>\n<h1 id=\"%E5%BE%80%E6%9C%9F%E5%9B%9E%E9%A1%BE\">\u5f80\u671f\u56de\u987e<\/h1>\n<blockquote>\n<p>\u957f\u591c\u65e0\u57a0\uff0c\u661f\u4e3a\u6d77<\/p>\n<p>\u4e00\u706f\u5b64\u660e\uff0c\u5411\u65e0\u7a79<\/p>\n<\/blockquote>\n<h2 id=\"%E4%B8%BB%E9%A1%B5\">\u4e3b\u9875<\/h2>\n<p><a href=\"https:\/\/www.tom-thu.cn\/\">\u9ed8\u7b19\u7684\u4e2a\u4eba\u5c0f\u7ad9<\/a><\/p>\n<h2 id=\"20261-3\">2026.1-3<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.tom-thu.cn\/?p=19\">\u7a0b\u5e8f\u8c03\u8bd5\u7ecf\u9a8c<\/a><\/li>\n<li><a href=\"https:\/\/www.tom-thu.cn\/?p=38\">\u3010\u8f6c\u8f7d\u3011\u673a\u623fVS CODE\u4f7f\u7528\u6307\u5317<\/a><\/li>\n<li><a href=\"https:\/\/www.tom-thu.cn\/?p=81\">\u4fbf\u643a\u7248VS Code\uff08C++\u7248\uff09<\/a><\/li>\n<li><a href=\"https:\/\/www.tom-thu.cn\/?p=88\">ESP32\u7269\u7406\u8fde\u70b9\u5668\uff08\u4e0a\uff09<\/a><\/li>\n<\/ul>\n<h2 id=\"20264\">2026.4<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.tom-thu.cn\/?p=111\">\u3010\u535a\u5ba2\u3011\u8ba9AI\u505aPPT\uff0c\u4e00\u573a\u4e0e\u7f29\u653e\u903b\u8f91\u7684\u6301\u4e45\u6218<\/a><\/li>\n<li><a href=\"https:\/\/www.tom-thu.cn\/?p=109\">\u3010\u5de5\u5177\u3011AI\u5199PPT\u6837\u5f0fHTML\u6ce8\u610f\u4e8b\u9879<\/a><\/li>\n<\/ul>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"<p>main.md \u5f80\u671f\u56de\u987e \u957f\u591c\u65e0\u57a0\uff0c\u661f\u4e3a\u6d77 \u4e00\u706f\u5b64\u660e\uff0c\u5411\u65e0\u7a79 \u4e3b\u9875 \u9ed8\u7b19\u7684\u4e2a\u4eba\u5c0f\u7ad9 2026.1-3 \u7a0b\u5e8f\u8c03\u8bd5\u7ecf\u9a8c \u3010\u8f6c\u8f7d\u3011\u673a\u623fVS CODE\u4f7f\u7528\u6307\u5317 \u4fbf\u643a\u7248VS Code\uff08C++\u7248\uff09 ESP32\u7269\u7406\u8fde\u70b9\u5668\uff08\u4e0a\uff09 ","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"class_list":["post-28","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.tom-thu.cn\/index.php?rest_route=\/wp\/v2\/pages\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tom-thu.cn\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.tom-thu.cn\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.tom-thu.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tom-thu.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28"}],"version-history":[{"count":9,"href":"https:\/\/www.tom-thu.cn\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions"}],"predecessor-version":[{"id":113,"href":"https:\/\/www.tom-thu.cn\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions\/113"}],"wp:attachment":[{"href":"https:\/\/www.tom-thu.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}