[{"data":1,"prerenderedAt":1077},["ShallowReactive",2],{"lit-docx-doc:\u002Fguide\u002Flitast":3},{"id":4,"title":5,"body":6,"description":1063,"extension":1064,"keywords":1065,"locale":1069,"meta":1070,"navigation":1071,"order":203,"path":1072,"section":1073,"seo":1074,"stem":1075,"__hash__":1076},"docs\u002Fguide\u002Flitast.zh-CN.md","LitAST 节点模型",{"type":7,"value":8,"toc":1052},"minimark",[9,26,30,33,136,153,160,163,166,345,348,516,519,560,569,614,617,639,642,677,684,691,702,705,744,750,757,760,777,936,947,950,956,1045,1048],[10,11,12,13,17,18,21,22,25],"p",{},"LitAST 是一棵普通 JSON 对象组成的树，可以直接 ",[14,15,16],"code",{},"JSON.stringify"," 保存，再 ",[14,19,20],{},"JSON.parse"," 回来交给 ",[14,23,24],{},"generateDocx","。",[27,28,29],"h2",{"id":29},"通用字段",[10,31,32],{},"每个节点都可能带有以下字段：",[34,35,36,49],"table",{},[37,38,39],"thead",{},[40,41,42,46],"tr",{},[43,44,45],"th",{},"字段",[43,47,48],{},"含义",[50,51,52,63,73,83,97,108,123],"tbody",{},[40,53,54,60],{},[55,56,57],"td",{},[14,58,59],{},"type",[55,61,62],{},"节点类型，必填",[40,64,65,70],{},[55,66,67],{},[14,68,69],{},"children",[55,71,72],{},"子节点",[40,74,75,80],{},[55,76,77],{},[14,78,79],{},"attrs",[55,81,82],{},"节点属性，例如段落对齐、表格列宽、图片尺寸",[40,84,85,90],{},[55,86,87],{},[14,88,89],{},"marks",[55,91,92,93,96],{},"只出现在 ",[14,94,95],{},"text"," 上，表示加粗、链接等文字格式",[40,98,99,103],{},[55,100,101],{},[14,102,95],{},[55,104,92,105,107],{},[14,106,95],{}," 上，文字内容",[40,109,110,115],{},[55,111,112],{},[14,113,114],{},"rawXml",[55,116,117,118],{},"原样保留的 OOXML，见",[119,120,122],"a",{"href":121},"\u002Fguide\u002Fround-trip","往返与保留",[40,124,125,130],{},[55,126,127],{},[14,128,129],{},"meta",[55,131,132,133,135],{},"附加数据；根节点的 ",[14,134,129],{}," 存放包级数据",[10,137,138,141,142,145,146,148,149,152],{},[14,139,140],{},"parseDocx"," 返回可修改的 ",[14,143,144],{},"LitNode","；",[14,147,24],{}," 接收只读的 ",[14,150,151],{},"LitAstNode","，两者结构相同。",[10,154,155,156,159],{},"以下划线开头的属性（如 ",[14,157,158],{},"_pPrPreservation","）是为了写回原文件而保存的内部数据。读取时可以忽略；修改文档时保留它们，原有格式才能完整写回。",[27,161,162],{"id":162},"一个例子",[10,164,165],{},"一段含加粗文字的段落：",[167,168,173],"pre",{"className":169,"code":170,"language":171,"meta":172,"style":172},"language-json shiki shiki-themes github-light github-light github-dark","{\n  \"type\": \"document\",\n  \"attrs\": { \"version\": 1 },\n  \"children\": [\n    {\n      \"type\": \"paragraph\",\n      \"children\": [\n        { \"type\": \"text\", \"text\": \"Hello \" },\n        { \"type\": \"text\", \"text\": \"world\", \"marks\": [{ \"type\": \"bold\" }] }\n      ]\n    }\n  ]\n}\n","json","",[14,174,175,184,201,221,230,236,249,257,283,321,327,333,339],{"__ignoreMap":172},[176,177,180],"span",{"class":178,"line":179},"line",1,[176,181,183],{"class":182},"sVPnS","{\n",[176,185,187,191,194,198],{"class":178,"line":186},2,[176,188,190],{"class":189},"sUNQB","  \"type\"",[176,192,193],{"class":182},": ",[176,195,197],{"class":196},"s-HEn","\"document\"",[176,199,200],{"class":182},",\n",[176,202,204,207,210,213,215,218],{"class":178,"line":203},3,[176,205,206],{"class":189},"  \"attrs\"",[176,208,209],{"class":182},": { ",[176,211,212],{"class":189},"\"version\"",[176,214,193],{"class":182},[176,216,217],{"class":189},"1",[176,219,220],{"class":182}," },\n",[176,222,224,227],{"class":178,"line":223},4,[176,225,226],{"class":189},"  \"children\"",[176,228,229],{"class":182},": [\n",[176,231,233],{"class":178,"line":232},5,[176,234,235],{"class":182},"    {\n",[176,237,239,242,244,247],{"class":178,"line":238},6,[176,240,241],{"class":189},"      \"type\"",[176,243,193],{"class":182},[176,245,246],{"class":196},"\"paragraph\"",[176,248,200],{"class":182},[176,250,252,255],{"class":178,"line":251},7,[176,253,254],{"class":189},"      \"children\"",[176,256,229],{"class":182},[176,258,260,263,266,268,271,274,276,278,281],{"class":178,"line":259},8,[176,261,262],{"class":182},"        { ",[176,264,265],{"class":189},"\"type\"",[176,267,193],{"class":182},[176,269,270],{"class":196},"\"text\"",[176,272,273],{"class":182},", ",[176,275,270],{"class":189},[176,277,193],{"class":182},[176,279,280],{"class":196},"\"Hello \"",[176,282,220],{"class":182},[176,284,286,288,290,292,294,296,298,300,303,305,308,311,313,315,318],{"class":178,"line":285},9,[176,287,262],{"class":182},[176,289,265],{"class":189},[176,291,193],{"class":182},[176,293,270],{"class":196},[176,295,273],{"class":182},[176,297,270],{"class":189},[176,299,193],{"class":182},[176,301,302],{"class":196},"\"world\"",[176,304,273],{"class":182},[176,306,307],{"class":189},"\"marks\"",[176,309,310],{"class":182},": [{ ",[176,312,265],{"class":189},[176,314,193],{"class":182},[176,316,317],{"class":196},"\"bold\"",[176,319,320],{"class":182}," }] }\n",[176,322,324],{"class":178,"line":323},10,[176,325,326],{"class":182},"      ]\n",[176,328,330],{"class":178,"line":329},11,[176,331,332],{"class":182},"    }\n",[176,334,336],{"class":178,"line":335},12,[176,337,338],{"class":182},"  ]\n",[176,340,342],{"class":178,"line":341},13,[176,343,344],{"class":182},"}\n",[27,346,347],{"id":347},"节点类型",[34,349,350,360],{},[37,351,352],{},[40,353,354,357],{},[43,355,356],{},"类别",[43,358,359],{},"类型",[50,361,362,382,418,434,474,503],{},[40,363,364,367],{},[55,365,366],{},"结构",[55,368,369,372,373,372,376,372,379],{},[14,370,371],{},"document","、",[14,374,375],{},"section",[14,377,378],{},"header",[14,380,381],{},"footer",[40,383,384,387],{},[55,385,386],{},"块",[55,388,389,372,392,372,395,372,398,372,401,372,404,372,407,372,410,372,412,372,415],{},[14,390,391],{},"paragraph",[14,393,394],{},"heading",[14,396,397],{},"blockquote",[14,399,400],{},"codeBlock",[14,402,403],{},"horizontalRule",[14,405,406],{},"list",[14,408,409],{},"listItem",[14,411,34],{},[14,413,414],{},"tableRow",[14,416,417],{},"tableCell",[40,419,420,423],{},[55,421,422],{},"分隔",[55,424,425,372,428,372,431],{},[14,426,427],{},"pageBreak",[14,429,430],{},"columnBreak",[14,432,433],{},"lastRenderedPageBreak",[40,435,436,439],{},[55,437,438],{},"行内",[55,440,441,372,443,372,446,372,449,372,452,455,456,372,459,372,462,372,465,372,468,372,471],{},[14,442,95],{},[14,444,445],{},"image",[14,447,448],{},"textBox",[14,450,451],{},"field",[14,453,454],{},"sdt","（内容控件）、",[14,457,458],{},"footnoteRef",[14,460,461],{},"endnoteRef",[14,463,464],{},"math",[14,466,467],{},"ruby",[14,469,470],{},"watermark",[14,472,473],{},"backgroundImage",[40,475,476,479],{},[55,477,478],{},"范围标记",[55,480,481,484,485,372,488,484,491,372,494,484,497,372,500],{},[14,482,483],{},"commentStart"," \u002F ",[14,486,487],{},"commentEnd",[14,489,490],{},"bookmarkStart",[14,492,493],{},"bookmarkEnd",[14,495,496],{},"permStart",[14,498,499],{},"permEnd",[14,501,502],{},"revision",[40,504,505,508],{},[55,506,507],{},"无法识别",[55,509,510,372,513],{},[14,511,512],{},"unknownBlock",[14,514,515],{},"unknownInline",[27,517,518],{"id":518},"标记类型",[10,520,521,372,524,372,527,372,530,372,533,372,536,372,539,372,542,372,544,372,547,372,550,553,554,484,557,25],{},[14,522,523],{},"bold",[14,525,526],{},"italic",[14,528,529],{},"underline",[14,531,532],{},"strike",[14,534,535],{},"doubleStrike",[14,537,538],{},"superscript",[14,540,541],{},"subscript",[14,543,14],{},[14,545,546],{},"link",[14,548,549],{},"highlight",[14,551,552],{},"textStyle","，以及修订用的 ",[14,555,556],{},"insertion",[14,558,559],{},"deletion",[10,561,562,563,565,566,568],{},"字号、颜色、字体等都放在 ",[14,564,552],{}," 标记的 ",[14,567,79],{}," 中，例如：",[167,570,572],{"className":169,"code":571,"language":171,"meta":172,"style":172},"{ \"type\": \"textStyle\", \"attrs\": { \"fontSize\": \"14pt\", \"color\": \"#C00000\" } }\n",[14,573,574],{"__ignoreMap":172},[176,575,576,579,581,583,586,588,591,593,596,598,601,603,606,608,611],{"class":178,"line":179},[176,577,578],{"class":182},"{ ",[176,580,265],{"class":189},[176,582,193],{"class":182},[176,584,585],{"class":196},"\"textStyle\"",[176,587,273],{"class":182},[176,589,590],{"class":189},"\"attrs\"",[176,592,209],{"class":182},[176,594,595],{"class":189},"\"fontSize\"",[176,597,193],{"class":182},[176,599,600],{"class":196},"\"14pt\"",[176,602,273],{"class":182},[176,604,605],{"class":189},"\"color\"",[176,607,193],{"class":182},[176,609,610],{"class":196},"\"#C00000\"",[176,612,613],{"class":182}," } }\n",[27,615,616],{"id":616},"段落与标题",[10,618,619,620,622,623,372,626,372,629,25,632,634,635,638],{},"段落格式放在 ",[14,621,79],{}," 中，例如 ",[14,624,625],{},"textAlign",[14,627,628],{},"spacing",[14,630,631],{},"indent",[14,633,394],{}," 用 ",[14,636,637],{},"attrs.level","（1–6）表示级别。",[27,640,641],{"id":641},"列表",[10,643,644,645,648,649,652,653,655,656,372,658,660,661,663,664,667,668,670,671,673,674,676],{},"列表是 ",[14,646,647],{},"list > listItem","，",[14,650,651],{},"list.attrs.ordered"," 区分有序和无序。每个 ",[14,654,409],{}," 就是一个带编号的段落，直接包含行内节点（",[14,657,95],{},[14,659,451],{}," 等），不再包一层 ",[14,662,391],{},"。列表项的层级记在 ",[14,665,666],{},"listItem.attrs.level"," 上（从 0 开始）；不同层级或不同编号定义的项会拆成多个相邻的 ",[14,669,406],{},"，而不是把 ",[14,672,406],{}," 嵌套在 ",[14,675,409],{}," 内部：",[167,678,682],{"className":679,"code":681,"language":95,"meta":172},[680],"language-text","list {\"ordered\":true}\n  listItem {\"level\":0} > text \"one\"\nlist {\"ordered\":false}\n  listItem {\"level\":1} > text \"nested\"\nlist {\"ordered\":true}\n  listItem {\"level\":0} > text \"two\"\n",[14,683,681],{"__ignoreMap":172},[10,685,686,687,690],{},"解析时传入 ",[14,688,689],{},"numberingMode: \"flat-numbered-paragraphs\""," 可以改为保留 Word 原本的扁平编号段落。",[10,692,693,694,696,697,372,699,701],{},"生成时也按这个形状书写。",[14,695,409],{}," 里不能放 ",[14,698,391],{},[14,700,406],{}," 等块级节点，否则会生成非法的嵌套段落。",[27,703,704],{"id":704},"拼音指南",[10,706,707,709,710,712,713,716,717,719,720,723,724,727,728,731,732,735,736,739,740,743],{},[14,708,467],{}," 是行内节点：",[14,711,69],{}," 是被注音的正文，",[14,714,715],{},"attrs.rubyText"," 是注音，两者都是行内节点数组，各自带文字格式。\n其余 ",[14,718,79],{}," 是 Word 的注音属性：",[14,721,722],{},"rubyAlign","（对齐）、",[14,725,726],{},"hps","（注音字号）、",[14,729,730],{},"hpsRaise","（抬升量）、\n",[14,733,734],{},"hpsBaseText","（正文参考字号）、",[14,737,738],{},"lid","（语言）与 ",[14,741,742],{},"dirty","，字号与距离的单位是半磅：",[167,745,748],{"className":746,"code":747,"language":95,"meta":172},[680],"ruby {\"rubyAlign\":\"center\",\"hps\":12,\"hpsRaise\":24,\"hpsBaseText\":24,\"lid\":\"zh-CN\",\"rubyText\":[text \"hàn\"]}\n  text \"汉\"\n",[14,749,747],{"__ignoreMap":172},[10,751,752,753,25],{},"读音不会自动生成，lit-docx 只读写文件中已有的注音。新建方式见",[119,754,756],{"href":755},"\u002Fguide\u002Fgenerating#%E6%8B%BC%E9%9F%B3%E6%8C%87%E5%8D%97","生成 DOCX",[27,758,759],{"id":759},"分节",[10,761,762,764,765,768,769,773,774,776],{},[14,763,375],{}," 不是包住内容的容器，而是 ",[14,766,767],{},"document.children"," 中的一个兄弟节点：它表示",[770,771,772],"strong",{},"之前","的内容到此结束一节，并携带这一节的页面设置。每个 Word 文档至少以一个 ",[14,775,375],{}," 结尾：",[167,778,780],{"className":169,"code":779,"language":171,"meta":172,"style":172},"{\n  \"type\": \"section\",\n  \"attrs\": {\n    \"pageWidth\": 11906, \"pageHeight\": 16838, \"orientation\": \"portrait\", \"paperSize\": \"A4\",\n    \"margins\": { \"top\": 1440, \"right\": 1440, \"bottom\": 1440, \"left\": 1440, \"header\": 708, \"footer\": 708, \"gutter\": 0 }\n  },\n  \"children\": []\n}\n",[14,781,782,786,797,804,846,920,925,932],{"__ignoreMap":172},[176,783,784],{"class":178,"line":179},[176,785,183],{"class":182},[176,787,788,790,792,795],{"class":178,"line":186},[176,789,190],{"class":189},[176,791,193],{"class":182},[176,793,794],{"class":196},"\"section\"",[176,796,200],{"class":182},[176,798,799,801],{"class":178,"line":203},[176,800,206],{"class":189},[176,802,803],{"class":182},": {\n",[176,805,806,809,811,814,816,819,821,824,826,829,831,834,836,839,841,844],{"class":178,"line":223},[176,807,808],{"class":189},"    \"pageWidth\"",[176,810,193],{"class":182},[176,812,813],{"class":189},"11906",[176,815,273],{"class":182},[176,817,818],{"class":189},"\"pageHeight\"",[176,820,193],{"class":182},[176,822,823],{"class":189},"16838",[176,825,273],{"class":182},[176,827,828],{"class":189},"\"orientation\"",[176,830,193],{"class":182},[176,832,833],{"class":196},"\"portrait\"",[176,835,273],{"class":182},[176,837,838],{"class":189},"\"paperSize\"",[176,840,193],{"class":182},[176,842,843],{"class":196},"\"A4\"",[176,845,200],{"class":182},[176,847,848,851,853,856,858,861,863,866,868,870,872,875,877,879,881,884,886,888,890,893,895,898,900,903,905,907,909,912,914,917],{"class":178,"line":232},[176,849,850],{"class":189},"    \"margins\"",[176,852,209],{"class":182},[176,854,855],{"class":189},"\"top\"",[176,857,193],{"class":182},[176,859,860],{"class":189},"1440",[176,862,273],{"class":182},[176,864,865],{"class":189},"\"right\"",[176,867,193],{"class":182},[176,869,860],{"class":189},[176,871,273],{"class":182},[176,873,874],{"class":189},"\"bottom\"",[176,876,193],{"class":182},[176,878,860],{"class":189},[176,880,273],{"class":182},[176,882,883],{"class":189},"\"left\"",[176,885,193],{"class":182},[176,887,860],{"class":189},[176,889,273],{"class":182},[176,891,892],{"class":189},"\"header\"",[176,894,193],{"class":182},[176,896,897],{"class":189},"708",[176,899,273],{"class":182},[176,901,902],{"class":189},"\"footer\"",[176,904,193],{"class":182},[176,906,897],{"class":189},[176,908,273],{"class":182},[176,910,911],{"class":189},"\"gutter\"",[176,913,193],{"class":182},[176,915,916],{"class":189},"0",[176,918,919],{"class":182}," }\n",[176,921,922],{"class":178,"line":238},[176,923,924],{"class":182},"  },\n",[176,926,927,929],{"class":178,"line":251},[176,928,226],{"class":189},[176,930,931],{"class":182},": []\n",[176,933,934],{"class":178,"line":259},[176,935,344],{"class":182},[10,937,938,939,484,941,943,944,25],{},"这一节的页眉页脚是它的 ",[14,940,378],{},[14,942,381],{}," 子节点。尺寸单位见",[119,945,756],{"href":946},"\u002Fguide\u002Fgenerating",[27,948,949],{"id":949},"文档元数据",[10,951,952,953,955],{},"根节点的 ",[14,954,129],{}," 存放不属于正文的包级数据，常见的键有：",[34,957,958,968],{},[37,959,960],{},[40,961,962,965],{},[43,963,964],{},"键",[43,966,967],{},"内容",[50,969,970,992,1002,1012,1022,1032],{},[40,971,972,977],{},[55,973,974],{},[14,975,976],{},"rawXmlFiles",[55,978,979,980,372,983,372,986,372,989],{},"原样保留的部件 XML，键名如 ",[14,981,982],{},"stylesXml",[14,984,985],{},"numberingXml",[14,987,988],{},"settingsXml",[14,990,991],{},"fontTableXml",[40,993,994,999],{},[55,995,996],{},[14,997,998],{},"coreProperties",[55,1000,1001],{},"创建者、最后修改者、创建与修改时间、修订号等核心属性",[40,1003,1004,1009],{},[55,1005,1006],{},[14,1007,1008],{},"settings",[55,1010,1011],{},"文档设置",[40,1013,1014,1019],{},[55,1015,1016],{},[14,1017,1018],{},"fieldData",[55,1020,1021],{},"域可以引用的核心属性、自定义属性与文档变量",[40,1023,1024,1029],{},[55,1025,1026],{},[14,1027,1028],{},"comments",[55,1030,1031],{},"批注内容",[40,1033,1034,1042],{},[55,1035,1036,484,1039],{},[14,1037,1038],{},"footnotes",[14,1040,1041],{},"endnotes",[55,1043,1044],{},"脚注与尾注内容",[10,1046,1047],{},"只有文档里实际存在的数据才会出现对应的键。",[1049,1050,1051],"style",{},"html pre.shiki code .sVPnS, html code.shiki .sVPnS{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sUNQB, html code.shiki .sUNQB{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s-HEn, html code.shiki .s-HEn{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":172,"searchDepth":186,"depth":186,"links":1053},[1054,1055,1056,1057,1058,1059,1060,1061,1062],{"id":29,"depth":186,"text":29},{"id":162,"depth":186,"text":162},{"id":347,"depth":186,"text":347},{"id":518,"depth":186,"text":518},{"id":616,"depth":186,"text":616},{"id":641,"depth":186,"text":641},{"id":704,"depth":186,"text":704},{"id":759,"depth":186,"text":759},{"id":949,"depth":186,"text":949},"LitAST 节点的通用字段、节点与标记类型，以及段落、列表、分节、文档元数据的表示方式。","md",[1066,1067,1068,89,375,406,129],"LitAST","节点","标记","zh-CN",{},true,"\u002Fguide\u002Flitast","指南",{"title":5,"description":1063},"guide\u002Flitast.zh-CN","DCTf4bgjkO3LhAoEylCvwFgWg6Gqz-JE9sVI2vA_Ogw",1793045344143]