[{"data":1,"prerenderedAt":1504},["ShallowReactive",2],{"post:\u002Fposts\u002F2020\u002Fpython-tkinter":3,"posts:catalog":1232},{"id":4,"title":5,"aiSummary":6,"audio":7,"body":8,"categories":1213,"cover":1215,"description":1216,"extension":1217,"meta":1218,"navigation":6,"path":1219,"pin":1220,"publish":1221,"seo":1222,"series":7,"seriesOrder":7,"stem":1223,"summary":7,"summarySource":1224,"tags":1225,"theme":1228,"update":7,"wip":1229,"wordCount":1230,"__hash__":1231},"posts\u002Fposts\u002F2020\u002Fpython-tkinter.md","Python图形用户界面(Tkinter)",true,null,{"type":9,"value":10,"toc":1199},"minimark",[11,16,21,45,49,53,57,62,234,237,248,317,320,323,327,333,350,354,360,371,375,381,389,393,396,411,415,421,424,430,433,436,997,1003,1011,1014,1178,1183,1186,1192,1195],[12,13,15],"h1",{"id":14},"python-gui-简介","Python GUI 简介",[17,18,20],"h4",{"id":19},"python-提供了多个图形开发界面的库几个常用-python-gui-库如下","Python 提供了多个图形开发界面的库，几个常用 Python GUI 库如下：",[22,23,24,33,39],"ul",{},[25,26,27,32],"li",{},[28,29,31],"font",{"color":30},"tomato","\nTkinter\n","\n： Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。\n",[25,34,35,38],{},[28,36,37],{"color":30},"\nwxPython\n","\n：wxPython 是一款开源软件，是 Python 语言的一套优秀的 GUI 图形库，允许 Python 程序员很方便的创建完整的、功能健全的 GUI 用户界面。\n",[25,40,41,44],{},[28,42,43],{"color":30},"\nJython\n","\n：Jython 程序可以和 Java 无缝集成。除了一些标准模块，Jython 使用 Java 的模块。Jython 几乎拥有标准的 Python 中不依赖于 C 语言的全部模块。比如，Jython 的用户界面将使用 Swing，AWT 或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。\n",[46,47,48],"p",{},"下面介绍运用 Tkinter 进行",[12,50,52],{"id":51},"python-gui-编程tkinter","Python GUI 编程(Tkinter)",[54,55,56],"h2",{"id":56},"常用控件及属性",[58,59,61],"h3",{"id":60},"tkinter-控件","Tkinter 控件",[63,64,65,78],"table",{},[66,67,68],"thead",{},[69,70,71,75],"tr",{},[72,73,74],"th",{},"控件",[72,76,77],{},"描述",[79,80,81,90,98,106,114,122,130,138,146,154,162,170,178,186,194,202,210,218,226],"tbody",{},[69,82,83,87],{},[84,85,86],"td",{},"Button",[84,88,89],{},"按钮控件；在程序中显示按钮。",[69,91,92,95],{},[84,93,94],{},"Canvas",[84,96,97],{},"画布控件；显示图形元素如线条或文本",[69,99,100,103],{},[84,101,102],{},"Checkbutton",[84,104,105],{},"多选框控件；用于在程序中提供多项选择框",[69,107,108,111],{},[84,109,110],{},"Entry",[84,112,113],{},"输入控件；用于显示简单的文本内容",[69,115,116,119],{},[84,117,118],{},"Frame",[84,120,121],{},"框架控件；在屏幕上显示一个矩形区域，多用来作为容器",[69,123,124,127],{},[84,125,126],{},"Label",[84,128,129],{},"标签控件；可以显示文本和位图",[69,131,132,135],{},[84,133,134],{},"Listbox",[84,136,137],{},"列表框控件；在 Listbox 窗口小部件是用来显示一个字符串列表给用户",[69,139,140,143],{},[84,141,142],{},"Menubutton",[84,144,145],{},"菜单按钮控件，用于显示菜单项。",[69,147,148,151],{},[84,149,150],{},"Menu",[84,152,153],{},"菜单控件；显示菜单栏,下拉菜单和弹出菜单",[69,155,156,159],{},[84,157,158],{},"Message",[84,160,161],{},"消息控件；用来显示多行文本，与 label 比较类似",[69,163,164,167],{},[84,165,166],{},"Radiobutton",[84,168,169],{},"单选按钮控件；显示一个单选的按钮状态",[69,171,172,175],{},[84,173,174],{},"Scale",[84,176,177],{},"范围控件；显示一个数值刻度，为输出限定范围的数字区间",[69,179,180,183],{},[84,181,182],{},"Scrollbar",[84,184,185],{},"滚动条控件，当内容超过可视化区域时使用，如列表框。.",[69,187,188,191],{},[84,189,190],{},"Text",[84,192,193],{},"文本控件；用于显示多行文本",[69,195,196,199],{},[84,197,198],{},"Toplevel",[84,200,201],{},"容器控件；用来提供一个单独的对话框，和 Frame 比较类似",[69,203,204,207],{},[84,205,206],{},"Spinbox",[84,208,209],{},"输入控件；与 Entry 类似，但是可以指定输入范围值",[69,211,212,215],{},[84,213,214],{},"PanedWindow",[84,216,217],{},"PanedWindow 是一个窗口布局管理的插件，可以包含一个或者多个子控件。",[69,219,220,223],{},[84,221,222],{},"LabelFrame",[84,224,225],{},"labelframe 是一个简单的容器控件。常用与复杂的窗口布局。",[69,227,228,231],{},[84,229,230],{},"tkMessageBox",[84,232,233],{},"用于显示你应用程序的消息框。",[58,235,236],{"id":236},"标准属性",[238,239,244],"pre",{"className":240,"code":242,"language":243},[241],"language-text","标准属性也就是所有控件的共同属性，如大小，字体和颜色等等。\n","text",[245,246,242],"code",{"__ignoreMap":247},"",[63,249,250,259],{},[66,251,252],{},[69,253,254,257],{},[72,255,256],{},"属性",[72,258,77],{},[79,260,261,269,277,285,293,301,309],{},[69,262,263,266],{},[84,264,265],{},"Dimension",[84,267,268],{},"控件大小；",[69,270,271,274],{},[84,272,273],{},"Color",[84,275,276],{},"控件颜色；",[69,278,279,282],{},[84,280,281],{},"Font",[84,283,284],{},"控件字体；",[69,286,287,290],{},[84,288,289],{},"Anchor",[84,291,292],{},"锚点；",[69,294,295,298],{},[84,296,297],{},"Relief",[84,299,300],{},"控件样式；",[69,302,303,306],{},[84,304,305],{},"Bitmap",[84,307,308],{},"位图；",[69,310,311,314],{},[84,312,313],{},"Cursor",[84,315,316],{},"光标；",[54,318,319],{"id":319},"几何布局管理器",[46,321,322],{},"在 GUI 编程中，放好每个组件时很繁琐的，不仅要调整自身大小，还要调整和其他组件的相对位置。Tk 提供了三个管理器来帮助我们：pack()|grid()和 place().",[17,324,326],{"id":325},"pack-几何布局","pack 几何布局",[238,328,331],{"className":329,"code":330,"language":243},[241],"pack()\n",[245,332,330],{"__ignoreMap":247},[22,334,335,338,341,344,347],{},[25,336,337],{},"简单，代码量少，系统按从上往下自动摆放",[25,339,340],{},"side(停靠在父组件的某边上)",[25,342,343],{},"anchor(对齐方式)",[25,345,346],{},"expand(在窗口有剩余空间时扩展)",[25,348,349],{},"fill(填充剩余空间)",[17,351,353],{"id":352},"grid-几何布局","grid 几何布局",[238,355,358],{"className":356,"code":357,"language":243},[241],"grid()\n",[245,359,357],{"__ignoreMap":247},[22,361,362,365,368],{},[25,363,364],{},"按行列布局，像表格一样摆放控件",[25,366,367],{},"row 行 column 列",[25,369,370],{},"rowspan 行跨度 columnspan 列跨度",[17,372,374],{"id":373},"place-几何布局","place 几何布局",[238,376,379],{"className":377,"code":378,"language":243},[241],"place()\n",[245,380,378],{"__ignoreMap":247},[22,382,383,386],{},[25,384,385],{},"相对布局中，拉伸窗口，控件位置可能会改变。",[25,387,388],{},"绝对布局，控件位置不会改变",[12,390,392],{"id":391},"使用-tkinter","使用 Tkinter",[46,394,395],{},"创建一个 GUI 程序至少需要 4 步:",[397,398,399,402,405,408],"ol",{},[25,400,401],{},"导入 tkinter 模块",[25,403,404],{},"创建控件",[25,406,407],{},"添加交互控件并编写函数",[25,409,410],{},"在主事件循环中等待刷新",[58,412,414],{"id":413},"导入-tkinter-库","导入 tkinter 库",[238,416,419],{"className":417,"code":418,"language":243},[241],"from tkinter import *\n",[245,420,418],{"__ignoreMap":247},[58,422,423],{"id":423},"主界面绘制",[238,425,428],{"className":426,"code":427,"language":243},[241],"#将tkinter对象实例化\nroot = TK()\n#设置标题\nroot.title(\"标题\")\n#设置窗口大小\nroot.geometry('600x400')\n#进入循环等待交互事件\nroot.mainloop()\n",[245,429,427],{"__ignoreMap":247},[12,431,432],{"id":432},"实例绘制简单登陆界面",[46,434,435],{},"代码部分：",[238,437,441],{"className":438,"code":439,"language":440,"meta":247,"style":247},"language-python shiki shiki-themes catppuccin-mocha catppuccin-latte","#引入库\nfrom tkinter import *\nlogin = Tk()\nlogin.title(\"登陆界面\")\nlogin.geometry('600x400')\n#添加控件\nLabel(login, text='欢迎登陆', font=('', 20), width=20, bg='grey', fg='yellow').place(x=150, y=0)\nLabel(login, text='用户名:', width=12, bg='lightgreen').place(x=100, y=100)\nLabel(login, text='密   码:', width=12, bg='lightgreen').place(x=100, y=140)\ninput1 = Entry(login, width=30)\ninput1.place(x=220, y=100)\ninput2 = Entry(login, show='*', width=30)\ninput2.place(x=220, y=140)\nButton(login, text='确定', width=10, height=2, ).place(x=180, y=220)\nButton(login, text='取消', width=10, height=2, ).place(x=320, y=220)\nlogin.mainloop()\n","python",[245,442,443,452,470,487,509,526,532,630,689,746,772,801,835,863,926,985],{"__ignoreMap":247},[444,445,448],"span",{"class":446,"line":447},"line",1,[444,449,451],{"class":450},"s0D_2","#引入库\n",[444,453,455,459,463,466],{"class":446,"line":454},2,[444,456,458],{"class":457},"sDkzg","from",[444,460,462],{"class":461},"szT_X"," tkinter ",[444,464,465],{"class":457},"import",[444,467,469],{"class":468},"siJSA"," *\n",[444,471,473,476,479,483],{"class":446,"line":472},3,[444,474,475],{"class":461},"login ",[444,477,478],{"class":468},"=",[444,480,482],{"class":481},"sZBvu"," Tk",[444,484,486],{"class":485},"sxk1D","()\n",[444,488,490,493,496,499,502,506],{"class":446,"line":489},4,[444,491,492],{"class":461},"login",[444,494,495],{"class":485},".",[444,497,498],{"class":481},"title",[444,500,501],{"class":485},"(",[444,503,505],{"class":504},"ssZzq","\"登陆界面\"",[444,507,508],{"class":485},")\n",[444,510,512,514,516,519,521,524],{"class":446,"line":511},5,[444,513,492],{"class":461},[444,515,495],{"class":485},[444,517,518],{"class":481},"geometry",[444,520,501],{"class":485},[444,522,523],{"class":504},"'600x400'",[444,525,508],{"class":485},[444,527,529],{"class":446,"line":528},6,[444,530,531],{"class":450},"#添加控件\n",[444,533,535,537,539,541,544,548,550,553,555,558,560,562,565,567,571,574,577,579,582,584,587,589,592,594,597,599,602,605,608,610,613,615,618,620,623,625,628],{"class":446,"line":534},7,[444,536,126],{"class":481},[444,538,501],{"class":485},[444,540,492],{"class":461},[444,542,543],{"class":485},",",[444,545,547],{"class":546},"sYNyg"," text",[444,549,478],{"class":468},[444,551,552],{"class":504},"'欢迎登陆'",[444,554,543],{"class":485},[444,556,557],{"class":546}," font",[444,559,478],{"class":468},[444,561,501],{"class":485},[444,563,564],{"class":504},"''",[444,566,543],{"class":485},[444,568,570],{"class":569},"s_wmW"," 20",[444,572,573],{"class":485},"),",[444,575,576],{"class":546}," width",[444,578,478],{"class":468},[444,580,581],{"class":569},"20",[444,583,543],{"class":485},[444,585,586],{"class":546}," bg",[444,588,478],{"class":468},[444,590,591],{"class":504},"'grey'",[444,593,543],{"class":485},[444,595,596],{"class":546}," fg",[444,598,478],{"class":468},[444,600,601],{"class":504},"'yellow'",[444,603,604],{"class":485},").",[444,606,607],{"class":481},"place",[444,609,501],{"class":485},[444,611,612],{"class":546},"x",[444,614,478],{"class":468},[444,616,617],{"class":569},"150",[444,619,543],{"class":485},[444,621,622],{"class":546}," y",[444,624,478],{"class":468},[444,626,627],{"class":569},"0",[444,629,508],{"class":485},[444,631,633,635,637,639,641,643,645,648,650,652,654,657,659,661,663,666,668,670,672,674,676,679,681,683,685,687],{"class":446,"line":632},8,[444,634,126],{"class":481},[444,636,501],{"class":485},[444,638,492],{"class":461},[444,640,543],{"class":485},[444,642,547],{"class":546},[444,644,478],{"class":468},[444,646,647],{"class":504},"'用户名:'",[444,649,543],{"class":485},[444,651,576],{"class":546},[444,653,478],{"class":468},[444,655,656],{"class":569},"12",[444,658,543],{"class":485},[444,660,586],{"class":546},[444,662,478],{"class":468},[444,664,665],{"class":504},"'lightgreen'",[444,667,604],{"class":485},[444,669,607],{"class":481},[444,671,501],{"class":485},[444,673,612],{"class":546},[444,675,478],{"class":468},[444,677,678],{"class":569},"100",[444,680,543],{"class":485},[444,682,622],{"class":546},[444,684,478],{"class":468},[444,686,678],{"class":569},[444,688,508],{"class":485},[444,690,692,694,696,698,700,702,704,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739,741,744],{"class":446,"line":691},9,[444,693,126],{"class":481},[444,695,501],{"class":485},[444,697,492],{"class":461},[444,699,543],{"class":485},[444,701,547],{"class":546},[444,703,478],{"class":468},[444,705,706],{"class":504},"'密   码:'",[444,708,543],{"class":485},[444,710,576],{"class":546},[444,712,478],{"class":468},[444,714,656],{"class":569},[444,716,543],{"class":485},[444,718,586],{"class":546},[444,720,478],{"class":468},[444,722,665],{"class":504},[444,724,604],{"class":485},[444,726,607],{"class":481},[444,728,501],{"class":485},[444,730,612],{"class":546},[444,732,478],{"class":468},[444,734,678],{"class":569},[444,736,543],{"class":485},[444,738,622],{"class":546},[444,740,478],{"class":468},[444,742,743],{"class":569},"140",[444,745,508],{"class":485},[444,747,749,752,754,757,759,761,763,765,767,770],{"class":446,"line":748},10,[444,750,751],{"class":461},"input1 ",[444,753,478],{"class":468},[444,755,756],{"class":481}," Entry",[444,758,501],{"class":485},[444,760,492],{"class":461},[444,762,543],{"class":485},[444,764,576],{"class":546},[444,766,478],{"class":468},[444,768,769],{"class":569},"30",[444,771,508],{"class":485},[444,773,775,778,780,782,784,786,788,791,793,795,797,799],{"class":446,"line":774},11,[444,776,777],{"class":461},"input1",[444,779,495],{"class":485},[444,781,607],{"class":481},[444,783,501],{"class":485},[444,785,612],{"class":546},[444,787,478],{"class":468},[444,789,790],{"class":569},"220",[444,792,543],{"class":485},[444,794,622],{"class":546},[444,796,478],{"class":468},[444,798,678],{"class":569},[444,800,508],{"class":485},[444,802,804,807,809,811,813,815,817,820,822,825,827,829,831,833],{"class":446,"line":803},12,[444,805,806],{"class":461},"input2 ",[444,808,478],{"class":468},[444,810,756],{"class":481},[444,812,501],{"class":485},[444,814,492],{"class":461},[444,816,543],{"class":485},[444,818,819],{"class":546}," show",[444,821,478],{"class":468},[444,823,824],{"class":504},"'*'",[444,826,543],{"class":485},[444,828,576],{"class":546},[444,830,478],{"class":468},[444,832,769],{"class":569},[444,834,508],{"class":485},[444,836,838,841,843,845,847,849,851,853,855,857,859,861],{"class":446,"line":837},13,[444,839,840],{"class":461},"input2",[444,842,495],{"class":485},[444,844,607],{"class":481},[444,846,501],{"class":485},[444,848,612],{"class":546},[444,850,478],{"class":468},[444,852,790],{"class":569},[444,854,543],{"class":485},[444,856,622],{"class":546},[444,858,478],{"class":468},[444,860,743],{"class":569},[444,862,508],{"class":485},[444,864,866,868,870,872,874,876,878,881,883,885,887,890,892,895,897,900,902,905,907,909,911,913,916,918,920,922,924],{"class":446,"line":865},14,[444,867,86],{"class":481},[444,869,501],{"class":485},[444,871,492],{"class":461},[444,873,543],{"class":485},[444,875,547],{"class":546},[444,877,478],{"class":468},[444,879,880],{"class":504},"'确定'",[444,882,543],{"class":485},[444,884,576],{"class":546},[444,886,478],{"class":468},[444,888,889],{"class":569},"10",[444,891,543],{"class":485},[444,893,894],{"class":546}," height",[444,896,478],{"class":468},[444,898,899],{"class":569},"2",[444,901,543],{"class":485},[444,903,904],{"class":485}," ).",[444,906,607],{"class":481},[444,908,501],{"class":485},[444,910,612],{"class":546},[444,912,478],{"class":468},[444,914,915],{"class":569},"180",[444,917,543],{"class":485},[444,919,622],{"class":546},[444,921,478],{"class":468},[444,923,790],{"class":569},[444,925,508],{"class":485},[444,927,929,931,933,935,937,939,941,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,975,977,979,981,983],{"class":446,"line":928},15,[444,930,86],{"class":481},[444,932,501],{"class":485},[444,934,492],{"class":461},[444,936,543],{"class":485},[444,938,547],{"class":546},[444,940,478],{"class":468},[444,942,943],{"class":504},"'取消'",[444,945,543],{"class":485},[444,947,576],{"class":546},[444,949,478],{"class":468},[444,951,889],{"class":569},[444,953,543],{"class":485},[444,955,894],{"class":546},[444,957,478],{"class":468},[444,959,899],{"class":569},[444,961,543],{"class":485},[444,963,904],{"class":485},[444,965,607],{"class":481},[444,967,501],{"class":485},[444,969,612],{"class":546},[444,971,478],{"class":468},[444,973,974],{"class":569},"320",[444,976,543],{"class":485},[444,978,622],{"class":546},[444,980,478],{"class":468},[444,982,790],{"class":569},[444,984,508],{"class":485},[444,986,988,990,992,995],{"class":446,"line":987},16,[444,989,492],{"class":461},[444,991,495],{"class":485},[444,993,994],{"class":481},"mainloop",[444,996,486],{"class":485},[998,999,1000],"blockquote",{},[46,1001,1002],{},"代码中使用了 place 布局",[46,1004,1005,1006],{},"示例如下:\n",[1007,1008],"img",{"alt":1009,"src":1010},"avatar","\u002Fimages\u002F2020\u002Fpython-tkinter\u002Flogin-example.png",[46,1012,1013],{},"可为按钮添设回调函数:",[238,1015,1017],{"className":438,"code":1016,"language":440,"meta":247,"style":247},"def LoginCallBack():\n    t1 = input1.get()\n    t2 = input2.get()\n    if (t1 == ''):\n        showinfo('提示', '用户名不能为空')\n    elif (len(t2) \u003C 6):\n        showinfo('提示', '密码不能小于6位')\n    else:\n        showinfo('提示', '登入成功')\n        login.quit()\n",[245,1018,1019,1031,1048,1064,1084,1101,1128,1143,1151,1166],{"__ignoreMap":247},[444,1020,1021,1024,1028],{"class":446,"line":447},[444,1022,1023],{"class":457},"def",[444,1025,1027],{"class":1026},"s3Fsb"," LoginCallBack",[444,1029,1030],{"class":485},"():\n",[444,1032,1033,1036,1038,1041,1043,1046],{"class":446,"line":454},[444,1034,1035],{"class":461},"    t1 ",[444,1037,478],{"class":468},[444,1039,1040],{"class":461}," input1",[444,1042,495],{"class":485},[444,1044,1045],{"class":481},"get",[444,1047,486],{"class":485},[444,1049,1050,1053,1055,1058,1060,1062],{"class":446,"line":472},[444,1051,1052],{"class":461},"    t2 ",[444,1054,478],{"class":468},[444,1056,1057],{"class":461}," input2",[444,1059,495],{"class":485},[444,1061,1045],{"class":481},[444,1063,486],{"class":485},[444,1065,1066,1069,1072,1075,1078,1081],{"class":446,"line":489},[444,1067,1068],{"class":457},"    if",[444,1070,1071],{"class":485}," (",[444,1073,1074],{"class":461},"t1 ",[444,1076,1077],{"class":468},"==",[444,1079,1080],{"class":504}," ''",[444,1082,1083],{"class":485},"):\n",[444,1085,1086,1089,1091,1094,1096,1099],{"class":446,"line":511},[444,1087,1088],{"class":481},"        showinfo",[444,1090,501],{"class":485},[444,1092,1093],{"class":504},"'提示'",[444,1095,543],{"class":485},[444,1097,1098],{"class":504}," '用户名不能为空'",[444,1100,508],{"class":485},[444,1102,1103,1106,1108,1112,1114,1117,1120,1123,1126],{"class":446,"line":528},[444,1104,1105],{"class":457},"    elif",[444,1107,1071],{"class":485},[444,1109,1111],{"class":1110},"sZpqd","len",[444,1113,501],{"class":485},[444,1115,1116],{"class":461},"t2",[444,1118,1119],{"class":485},")",[444,1121,1122],{"class":468}," \u003C",[444,1124,1125],{"class":569}," 6",[444,1127,1083],{"class":485},[444,1129,1130,1132,1134,1136,1138,1141],{"class":446,"line":534},[444,1131,1088],{"class":481},[444,1133,501],{"class":485},[444,1135,1093],{"class":504},[444,1137,543],{"class":485},[444,1139,1140],{"class":504}," '密码不能小于6位'",[444,1142,508],{"class":485},[444,1144,1145,1148],{"class":446,"line":632},[444,1146,1147],{"class":457},"    else",[444,1149,1150],{"class":485},":\n",[444,1152,1153,1155,1157,1159,1161,1164],{"class":446,"line":691},[444,1154,1088],{"class":481},[444,1156,501],{"class":485},[444,1158,1093],{"class":504},[444,1160,543],{"class":485},[444,1162,1163],{"class":504}," '登入成功'",[444,1165,508],{"class":485},[444,1167,1168,1171,1173,1176],{"class":446,"line":748},[444,1169,1170],{"class":461},"        login",[444,1172,495],{"class":485},[444,1174,1175],{"class":481},"quit",[444,1177,486],{"class":485},[998,1179,1180],{},[46,1181,1182],{},"showinfo 需要引入 tkinter.messagebox 库",[46,1184,1185],{},"调用的话则需要",[238,1187,1190],{"className":1188,"code":1189,"language":243},[241],"Button(login, text='确定', width=10, height=2, ).place(x=180, y=220)\n加上command = LoginCallBack属性\n即Button(login, text='确定', width=10, height=2, command = LoginCallBack).place(x=180, y=220)\n",[245,1191,1189],{"__ignoreMap":247},[1193,1194],"hr",{},[1196,1197,1198],"style",{},"html pre.shiki code .s0D_2, html code.shiki .s0D_2{--shiki-default:#9399B2;--shiki-default-font-style:italic;--shiki-light:#7C7F93;--shiki-light-font-style:italic}html pre.shiki code .sDkzg, html code.shiki .sDkzg{--shiki-default:#CBA6F7;--shiki-light:#8839EF}html pre.shiki code .szT_X, html code.shiki .szT_X{--shiki-default:#CDD6F4;--shiki-light:#4C4F69}html pre.shiki code .siJSA, html code.shiki .siJSA{--shiki-default:#94E2D5;--shiki-light:#179299}html pre.shiki code .sZBvu, html code.shiki .sZBvu{--shiki-default:#89B4FA;--shiki-light:#1E66F5}html pre.shiki code .sxk1D, html code.shiki .sxk1D{--shiki-default:#9399B2;--shiki-light:#7C7F93}html pre.shiki code .ssZzq, html code.shiki .ssZzq{--shiki-default:#A6E3A1;--shiki-light:#40A02B}html pre.shiki code .sYNyg, html code.shiki .sYNyg{--shiki-default:#EBA0AC;--shiki-default-font-style:italic;--shiki-light:#E64553;--shiki-light-font-style:italic}html pre.shiki code .s_wmW, html code.shiki .s_wmW{--shiki-default:#FAB387;--shiki-light:#FE640B}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html pre.shiki code .s3Fsb, html code.shiki .s3Fsb{--shiki-default:#89B4FA;--shiki-default-font-style:italic;--shiki-light:#1E66F5;--shiki-light-font-style:italic}html pre.shiki code .sZpqd, html code.shiki .sZpqd{--shiki-default:#FAB387;--shiki-default-font-style:italic;--shiki-light:#FE640B;--shiki-light-font-style:italic}",{"title":247,"searchDepth":803,"depth":511,"links":1200},[1201,1202,1206],{"id":19,"depth":489,"text":20},{"id":56,"depth":454,"text":56,"children":1203},[1204,1205],{"id":60,"depth":472,"text":61},{"id":236,"depth":472,"text":236},{"id":319,"depth":454,"text":319,"children":1207},[1208,1209,1210,1211,1212],{"id":325,"depth":489,"text":326},{"id":352,"depth":489,"text":353},{"id":373,"depth":489,"text":374},{"id":413,"depth":472,"text":414},{"id":423,"depth":472,"text":423},[1214],"笔记","\u002Fimages\u002F2020\u002Fpython-tkinter\u002Fpython-tkinter.jpg","本文简介Python常用GUI库，重点说明Tkinter的标准控件、共同属性及pack、grid、place三种几何布局管理器。使用Tkinter需导入模块、创建控件、添加交互并编写函数、进入主事件循环。文中以简单登录界面为例，演示标签、输入框、按钮的放置，以及为按钮设置回调函数进行输入校验和登录提示。","md",{},"\u002Fposts\u002F2020\u002Fpython-tkinter",0,"2020-05-25",{"title":5,"description":1216},"posts\u002F2020\u002Fpython-tkinter","ai",[1226,1227],"Python","GUI","#a369ff",false,965,"UQbIXGC7AAFyt2LhGPLnEa-UVcqrG36COIpHnyjHBy0",[1233,1249,1263,1271,1284,1299,1312,1324,1334,1347,1359,1370,1382,1393,1405,1416,1425,1439,1451,1454,1467,1476,1486,1495],{"path":1234,"stem":1235,"title":1236,"description":1237,"wordCount":1238,"publish":1239,"update":1239,"cover":1240,"tags":1241,"categories":1247,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2026\u002Fwsl3","posts\u002F2026\u002Fwsl3","WSL 3 正式发布~","微软发布 WSL 3.0.1，正式提供稳定的 WSL 容器功能，无需 Docker 即可原生创建和运行 Linux 容器。该版本改进包括跨操作系统文件访问性能最高提升至原来的两倍（采用 virtiofs），以及网络模式 Consomme 优化端口映射和 VPN 兼容性。文章介绍了 WSL 安装、从 WSL 2 升级的方法，并示例使用 wslc 运行 Ubuntu、Nginx 容器及构建自定义镜像。",1038,"2026-10-01","\u002Fimages\u002F2026\u002Fwsl3\u002Fwsl3.png",[1242,1243,1244,1245,1246],"WSL","Linux","Windows","Docker","容器",[1248],"工具",{"path":1250,"stem":1251,"title":1252,"description":1253,"wordCount":1254,"publish":1255,"update":7,"cover":1256,"tags":1257,"categories":1262,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2026\u002Fcodex-prompt","posts\u002F2026\u002Fcodex-prompt","Codex 的 GPT-6 Sol 提示词泄露了？","文章围绕网传Codex GPT-6 Sol提示词泄露展开，选取部分内容解读。提示词要求像同事一样交流、降低认知负担，用具体描述并说明改动、原因、测试与风险；明确禁止使用AI套话；通过高质量和低质量示例约束输出。摘要表还涵盖沟通、执行、权限、长期任务、工具与界面、质量与证据等核心要求。",1073,"2026-09-25","\u002Fimages\u002F2026\u002Fcodex-prompt\u002Fcodex-prompt.png",[1258,1259,1260,1261],"AI","Codex","提示词","Agent",[1258],{"path":1264,"stem":1265,"title":1266,"description":1267,"wordCount":1268,"publish":1255,"update":7,"cover":7,"tags":1269,"categories":1270,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2026\u002Fcodex-prompt-translation","posts\u002F2026\u002Fcodex-prompt-translation","Codex GPT-6 Sol 提示词完整中文译文","第三方仓库收录的 Codex GPT-6 Sol 提示词中文译文，按原顺序保留全部 54 个模板。",34261,[1258,1259,1260,1261],[1258],{"path":1272,"stem":1273,"title":1274,"description":1275,"wordCount":1276,"publish":1277,"update":1278,"cover":1279,"tags":1280,"categories":1283,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2026\u002Fjev","posts\u002F2026\u002Fjev","JEV 是好模型吗？","本文评析JEV模型，认为其并非通用大模型，而是专做预定义判断的System One模型，通过选择、评分、是非题返回结构化结果，不生成文本。其快与便宜源于非自回归并行输出，但“零幻觉”仅指输出结构合规，判断仍可能出错。该思路适用于答案范围明确、需频繁调用的场景，也可用普通大模型近似实现，核心在于把任务收窄为单一判断。",2429,"2026-09-21","2026-09-23","\u002Fimages\u002F2026\u002Fjev\u002Fjev.webp",[1258,1281,1282],"JEV","LLM",[1258],{"path":1285,"stem":1286,"title":1287,"description":1288,"wordCount":1289,"publish":1290,"update":1291,"cover":7,"tags":1292,"categories":1297,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002Fblog\u002Foverview","posts\u002F2.blog\u002F01.overview","新版博客已上线！","新版博客“mukuchi”上线，具备文章写作、标签分类、全文搜索、阅读目录、代码复制、图片缩放、深浅主题切换及移动端适配等功能。内容以Markdown和MDC编写，后台支持草稿、上传、预览与发布，并可生成AI摘要、朗读和双人播客。技术栈采用Nuxt、Vue、UnoCSS、Nuxt Content及Cloudflare服务，文章存于GitHub仓库。后续计划增加工具、重做账号系统并改为站内评论。",1059,"2026-09-14","2026-09-22",[1293,1294,1295,1296],"博客","Nuxt","Vue","Cloudflare",[1298],"建站记录",{"path":1300,"stem":1301,"title":1302,"description":1303,"wordCount":1304,"publish":1305,"update":7,"cover":7,"tags":1306,"categories":1310,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2026\u002Fgame-dlss5","posts\u002F2026\u002Fgame-dlss5","哦，我的上帝！这是真实的！ —— DLSS 5 渲染实测","文章以《崩坏3rd》和《崩坏：星穹铁道》为例，展示DLSS 5渲染在多个场景下开启与关闭的画面对比。教程说明通过XXMI-Launcher注入ReShade的d3d12.dll，启动游戏后按Home键配置RenoDX DLSS参数，并提示下线前需手动关闭。文末附相关工具与网盘资源下载方式。",390,"2026-09-08",[1307,1308,1309],"DLSS5","mod","xxmi",[1311],"游戏",{"path":1313,"stem":1314,"title":1315,"description":1316,"wordCount":1317,"publish":1318,"update":1319,"cover":7,"tags":1320,"categories":1323,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2026\u002Fmilanote-api","posts\u002F2026\u002Fmilanote-api","Milanote API","本文介绍了作者开发的 Milanote API 项目，用于在外部使用 Milanote 分享 Board 的内容。项目已完成根据分享链接获取完整 API 数据、解析卡片内容与布局、构建 Playground 在线可视化示例、部署至 Cloudflare Workers 并提供字段筛选功能；待实现免密钥在线解析。文章还说明了获取 Milanote 只读分享链接的步骤，并展示了 Playground 界面效果。",234,"2026-07-22","2026-07-23",[1321,1322],"Milanote","API",[1248],{"path":1325,"stem":1326,"title":1327,"description":1328,"wordCount":1329,"publish":1330,"update":7,"cover":1331,"tags":1332,"categories":1333,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2026\u002Fduolingo","posts\u002F2026\u002Fduolingo","今天你 Duolingo 了吗？","本文介绍使用 Cloudflare Workers 构建 Duolingo 用户信息接口，解决跨域与缓存问题。接口支持按环境变量查询固定用户，返回昵称、头像、经验及连续学习天数，并提供搜索和其他用户详情接口。通过 KV 缓存和定时任务减少上游请求，支持带鉴权的手动刷新，并包含超时和错误处理。",1581,"2026-07-14","\u002Fimages\u002F2026\u002Fduolingo\u002Fduolingo.png",[1322,1296],[1248],{"path":1335,"stem":1336,"title":1337,"description":1338,"wordCount":1339,"publish":1340,"update":7,"cover":7,"tags":1341,"categories":1346,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002Fblender","posts\u002Fblender\u002Findex","Blender 专题","本文介绍Blender这一免费开源3D建模软件，涵盖建模、动画、渲染、视频剪辑等功能，适合从入门到高级开发。文档提供官网地址；教程部分包含动画大师课VV purple、角色建模课Zimon3D，并附B站链接；素材推荐BlenderKit官方素材库、Sketchfab及模之屋等免费资源平台。",158,"2026-06-18",[1342,1343,1344,1345],"Blender","3D","建模","动画",[1342],{"path":1348,"stem":1349,"title":1350,"description":1351,"wordCount":1352,"publish":1340,"update":7,"cover":7,"tags":1353,"categories":1358,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002Fthreejs","posts\u002Fthreejs\u002Findex","Three.js 专题","本文介绍Three.js作为Web端主流3D图形库，封装WebGL\u002FWebGPU，用于构建3D场景、动画、游戏和数据可视化等。文章汇总官方资源，包括官网、示例、文档、教程、在线编辑器和GitHub仓库。基础使用方面，说明在Vue3中通过TresJS、React中通过React Three Fiber进行组件化开发，并提及GSAP动画库和Blender建模软件。其他资源推荐Three.js Journey系统教程、The Book of Shaders书籍和Kenney免费游戏素材，AI与问题部分尚在完善中。",418,[1354,1355,1356,1357],"Three.js","WebGL","WebGPU","Shader",[1354],{"path":1360,"stem":1361,"title":1362,"description":1363,"wordCount":1364,"publish":1365,"update":1365,"cover":1366,"tags":1367,"categories":1369,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2025\u002Fmagic-js","posts\u002F2025\u002Fmagic-js","你能看懂这些 JavaScript 表达式吗？","本文解析了JavaScript中多个怪异表达式结果的原因，指出其源于IEEE 754浮点数表示、隐式类型转换及同一符号在不同语法环境中的歧义。例如NaN为number、大整数舍入、0.1+0.2不等于0.3、空数组与对象相加、布尔值运算及宽松相等等行为，均可据此解释。建议工程中使用严格相等和明确转换以避免陷阱。",2035,"2025-07-31","\u002Fimages\u002F2025\u002Fmagic-js\u002Fmagic-js.png",[1368],"JavaScript",[1368],{"path":1371,"stem":1372,"title":1373,"description":1374,"wordCount":1375,"publish":1376,"update":1377,"cover":1378,"tags":1379,"categories":1381,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2021\u002Fgit","posts\u002F2021\u002Fgit","Git 笔记","本文介绍Git的安装与基础配置，涵盖用户名邮箱设置及配置作用域优先级；解释工作区、暂存区和本地仓库的工作流；列举git add、commit、branch、switch、log、diff、stash、rm、mv等常用命令；说明查看日志、比较差异、对象关系、搁置改动、忽略文件等操作；并回答删除分支、修改提交信息、合并提交、取消暂存、丢弃改动和删除文件等常见问题。",878,"2021-09-07","2026-05-17","https:\u002F\u002Fgit-scm.com\u002Fimages\u002Flogo@2x.png",[1380],"Git",[1248],{"path":1383,"stem":1384,"title":1385,"description":1386,"wordCount":1387,"publish":1388,"update":7,"cover":1389,"tags":1390,"categories":1392,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2021\u002Fhexo-editor","posts\u002F2021\u002Fhexo-editor","HexoEditor(适用于Hexo的专用编辑器)","本文介绍了专为Hexo优化的Markdown编辑器HexoEditor。该编辑器预览效果与Hexo生成页面高度相似，支持快速执行Hexo命令。软件开源，可从GitHub获取安装程序及中英文手册。配置包括通用、编辑、Hexo路径设置、渲染主题（支持GitHub和Next）以及图片云存储（如SM.MS、腾讯云等）。还提供右键快捷操作Hexo命令。",587,"2021-03-22","\u002Fimages\u002F2021\u002Fhexo-editor\u002Fhexo-editor.jpg",[1248,1391],"Hexo",[1248],{"path":1394,"stem":1395,"title":1396,"description":1397,"wordCount":1398,"publish":1388,"update":7,"cover":1399,"tags":1400,"categories":1404,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2021\u002Ftomcat-servlet","posts\u002F2021\u002Ftomcat-servlet","Tomcat和Servlet应用配置及部分问题","本文介绍Tomcat与Servlet的配置及常见问题。Tomcat部分涵盖安装、环境变量、启动关闭、乱码与端口占用处理、项目部署及IDEA集成。Servlet部分说明实现方式、生命周期、请求与响应对象、乱码处理、请求转发与重定向，以及Cookie、Session、ServletContext等对象和三大域对象的作用范围。",4196,"\u002Fimages\u002F2021\u002Ftomcat-servlet\u002Ftomcat-servlet.jpg",[1401,1402,1403],"JavaWEb","Tomcat","Servlet",[1214],{"path":1406,"stem":1407,"title":1408,"description":1409,"wordCount":1410,"publish":1411,"update":7,"cover":1412,"tags":1413,"categories":1415,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2021\u002Fgithub-actions","posts\u002F2021\u002Fgithub-actions","使用Github Action实现全自动部署","本文介绍使用GitHub Action实现Hexo博客全自动部署的流程。需先获取GitHub与Coding的个人访问令牌，创建存放源码的私有仓库，并在站点配置中设置部署仓库地址和令牌。接着在.github\u002Fworkflows目录创建自动部署工作流文件，配置检出、安装Node与Hexo、缓存依赖、生成静态文件和部署步骤。随后更新远程仓库分支，添加.gitignore屏蔽项并推送源码，最后通过Actions查看部署状态。",910,"2021-01-26","\u002Fimages\u002F2021\u002Fgithub-actions\u002Fgithub-actions.jpg",[1414],"博客优化",[1414],{"path":1417,"stem":1418,"title":1419,"description":1420,"wordCount":1421,"publish":1411,"update":7,"cover":1422,"tags":1423,"categories":1424,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2021\u002Fhexo-auto-open-editor","posts\u002F2021\u002Fhexo-auto-open-editor","Hexo添加文章时自动打开编辑器","本文介绍Hexo新建文章后自动打开编辑器的方法。通过监听Hexo的new事件并在scripts目录下添加脚本，利用child_process.exec执行系统命令，Windows使用start、macOS使用open -a启动指定编辑器并打开新文章路径。用户需替换脚本中的编辑器绝对地址，保存后执行hexo new即可自动打开对应文件。",269,"\u002Fimages\u002F2021\u002Fhexo-auto-open-editor\u002Fhexo-auto-open-editor.webp",[1414],[1414],{"path":1426,"stem":1427,"title":1428,"description":1429,"wordCount":1430,"publish":1431,"update":7,"cover":1432,"tags":1433,"categories":1438,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2021\u002Fhttp-canary-ca","posts\u002F2021\u002Fhttp-canary-ca","解决部分安卓11HttpCanary无法安装证书及其他诸多问题","本文分享安卓11下HttpCanary证书安装失败等问题的解决方法，需root或虚拟机。MIUI系统点击安装根证书无反应时，将指定缓存路径的HttpCanary.pem复制为HttpCanary.jks并重启应用，再以root权限安装到系统；无效则先导出带.0证书再安装。抓https失败或提示证书不可信，可安装Xposed框架和JustTrustMe插件关闭SSL认证。资源可从酷安或应用商店获取，免费版与付费版主要区别为插件支持。",506,"2021-01-16","\u002Fimages\u002F2021\u002Fhttp-canary-ca\u002Fhttp-canary-ca.png",[1434,1435,1436,1437],"Android","HttpCanary","抓包","问题",[1436],{"path":1440,"stem":1441,"title":1442,"description":1443,"wordCount":1444,"publish":1445,"update":7,"cover":1446,"tags":1447,"categories":1450,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002F2020\u002Fmysql-basics","posts\u002F2020\u002Fmysql-basics","MySQL 基础","本文介绍MySQL关系型数据库管理系统基础知识，包括数据库、数据库管理系统、数据库系统和数据库应用系统的概念，及其数据结构化、共享性高、冗余度低、独立性强和统一管理等特点；简述数据库的创建、查看、打开、修改和删除操作，以及数据表的创建、修改、删除和表数据的添加、更新、删除方法，并提及图形化管理工具。",1825,"2020-06-05","\u002Fimages\u002F2020\u002Fmysql-basics\u002Fmysql-basics.png",[1448,1449],"mysql","数据库",[1214],{"path":1219,"stem":1223,"title":5,"description":1216,"wordCount":1230,"publish":1221,"update":7,"cover":1215,"tags":1452,"categories":1453,"series":7,"seriesOrder":7,"pin":1220,"wip":1229,"theme":1228},[1226,1227],[1214],{"path":1455,"stem":1456,"title":1457,"description":1458,"wordCount":1459,"publish":1460,"update":1461,"cover":7,"tags":1462,"categories":1465,"series":1466,"seriesOrder":511,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002Fmarkdown\u002Fcollapse","posts\u002F1.markdown\u002F05.collapse","在正文中使用折叠内容","本文说明正文中折叠内容的使用方法：折叠块适合放置补充说明、较长代码或可选阅读内容，标题始终可见，点击整行展开，各折叠块独立记录状态。支持默认收起，也可通过 open 属性设置初始展开。折叠内部可包含 Markdown、列表、代码、表格、图片等，目录或锚点访问内部标题会先展开所属折叠块。还支持嵌套折叠，外层使用三个冒号、内层使用两个冒号，内外层独立控制；访问嵌套目标可一次展开沿途两层。",428,"1970-01-01","2026-09-26",[1463,1464],"Markdown","MDC",[1466],"文章示例",{"path":1468,"stem":1469,"title":1470,"description":1471,"wordCount":1472,"publish":1460,"update":1278,"cover":7,"tags":1473,"categories":1475,"series":1466,"seriesOrder":489,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002Fmarkdown\u002Fvideo","posts\u002F1.markdown\u002F04.video","在文章中嵌入视频","本文介绍在文章与关于页中嵌入Bilibili和YouTube视频的MDC组件用法，无需API密钥或手写iframe。播放器按16:9自适应宽度，接近可视区域时加载，默认不自动播放。Bilibili可通过BV号或视频链接指定分P与开始时间，YouTube可通过11位视频ID或链接指定开始时间，标题由title参数设置。组件会过滤分享追踪参数与自动播放设置，无效参数仅显示提示，不影响正文。",597,[1463,1464,1474],"视频",[1466],{"path":1477,"stem":1478,"title":1479,"description":1480,"wordCount":1481,"publish":1460,"update":1482,"cover":7,"tags":1483,"categories":1485,"series":1466,"seriesOrder":472,"pin":1220,"wip":6,"theme":1228},"\u002Fposts\u002Fmarkdown\u002Fmarkdown-extended","posts\u002F1.markdown\u002F03.markdown-extended","Markdown 扩展功能","本文介绍Markdown扩展功能。已实现多风格提醒框，支持GitHub、Obsidian、VitePress、Docusaurus四种主题及折叠嵌套，可通过参数或全站配置设置；同时提供GitHub仓库卡片、Bilibili\u002FYouTube视频卡片与正文图片预览。图片画廊与作品集仍在计划中，当前采用标准图片语法配合图注和链接。GitHub仓库卡片在构建时获取公开仓库数据快照，不可用字段显示短横线。后续将实现图片画廊与作品集。",1822,"2026-09-27",[1463,1464,1484],"功能规划",[1466],{"path":1487,"stem":1488,"title":1489,"description":1490,"wordCount":1491,"publish":1460,"update":1482,"cover":7,"tags":1492,"categories":1494,"series":1466,"seriesOrder":454,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002Fmarkdown\u002Fmdc-tutorial","posts\u002F1.markdown\u002F02.mdc-tutorial","MDC 教程","本文介绍 MDC（Markdown Components）在 Nuxt Content 中的语法与用法，涵盖块级容器、行内属性、Props 传递、插槽、嵌套、绑定文章数据，以及代码块与代码组、图片预览、GitHub 仓库卡片、视频卡片、提醒框和文章自动提醒等已接入功能。文末说明自定义组件需实现并注册，并解答组件不显示、插槽误识别等常见问题。",2594,[1464,1493,1295],"Nuxt Content",[1466],{"path":1496,"stem":1497,"title":1498,"description":1499,"wordCount":1500,"publish":1460,"update":1290,"cover":7,"tags":1501,"categories":1503,"series":1466,"seriesOrder":447,"pin":1220,"wip":1229,"theme":1228},"\u002Fposts\u002Fmarkdown\u002Fmarkdown","posts\u002F1.markdown\u002F01.markdown","Markdown 教程","本文为 Markdown 教程，系统介绍常用语法：段落与换行、标题与目录生成、引用、无序\u002F有序\u002F任务列表、强调与行内代码、普通\u002F引用式\u002F自动链接、图片、代码块、表格、分隔线与转义，并说明本站 Nuxt Content 环境下文章文件位置、frontmatter 要求及后续扩展内容。",1449,[1463,1502],"写作",[1466],1791108778914]