[{"data":1,"prerenderedAt":621},["ShallowReactive",2],{"footer-links":3,"content-\u002Ffooter":12},[4,9],{"path":5,"title":6,"type":7,"isExternal":8},"https:\u002F\u002Fgithub.com\u002Flife-and-dev\u002Fmdsite","GitHub Repo","link",true,{"path":10,"title":11,"type":7,"isExternal":8},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@life-and-dev\u002Fmdsite","NPM Registry",{"id":13,"title":14,"body":15,"description":614,"extension":615,"meta":616,"navigation":8,"path":617,"seo":618,"stem":619,"__hash__":620},"content\u002Ffooter.md","Footer Configuration",{"type":16,"value":17,"toc":600},"minimark",[18,22,35,50,55,69,142,148,152,157,163,176,199,203,210,226,240,249,253,268,295,299,306,353,362,381,385,415,419,432,483,507,514,518,524,546,572,575,578,596],[19,20,14],"h1",{"id":21},"footer-configuration",[23,24,25,26,30,31,34],"p",{},"This is a reference for the ",[27,28,29],"code",{},"features.footer"," section in ",[27,32,33],{},"mdsite.yml",". Use it to populate the bottom bar of every page with links to selected pages on your site (or to external sites).",[36,37,39],"markdown-alert",{"type":38},"important",[23,40,41,42,30,44,46,47,49],{},"Edit the ",[27,43,29],{},[27,45,33],{}," when changing your site's bottom bar. The renderer reads it directly from ",[27,48,33],{}," and regenerates the link list whenever you save a markdown file.",[51,52,54],"h2",{"id":53},"_1-basic-structure","1. Basic Structure",[23,56,57,58,60,61,64,65,68],{},"The ",[27,59,29],{}," section is a YAML list nested under the ",[27,62,63],{},"features"," block. Each item becomes a link, a separator, or a labelled link in the bottom bar. The syntax mirrors the ",[27,66,67],{},"menu"," section, except sub-menus are not supported.",[70,71,76],"pre",{"className":72,"code":73,"language":74,"meta":75,"style":75},"language-yaml shiki shiki-themes github-light github-dark","features:\n  footer:\n    - about\n    - contacts\n    - \"About Page\": about\n    - \"GitHub Repo\": https:\u002F\u002Fgithub.com\u002Flife-and-dev\u002Fmdsite\n","yaml","",[27,77,78,90,98,108,116,129],{"__ignoreMap":75},[79,80,83,86],"span",{"class":81,"line":82},"line",1,[79,84,63],{"class":85},"s9eBZ",[79,87,89],{"class":88},"sVt8B",":\n",[79,91,93,96],{"class":81,"line":92},2,[79,94,95],{"class":85},"  footer",[79,97,89],{"class":88},[79,99,101,104],{"class":81,"line":100},3,[79,102,103],{"class":88},"    - ",[79,105,107],{"class":106},"sZZnC","about\n",[79,109,111,113],{"class":81,"line":110},4,[79,112,103],{"class":88},[79,114,115],{"class":106},"contacts\n",[79,117,119,121,124,127],{"class":81,"line":118},5,[79,120,103],{"class":88},[79,122,123],{"class":106},"\"About Page\"",[79,125,126],{"class":88},": ",[79,128,107],{"class":106},[79,130,132,134,137,139],{"class":81,"line":131},6,[79,133,103],{"class":88},[79,135,136],{"class":106},"\"GitHub Repo\"",[79,138,126],{"class":88},[79,140,141],{"class":106},"https:\u002F\u002Fgithub.com\u002Flife-and-dev\u002Fmdsite\n",[23,143,144,145,147],{},"The renderer resolves each entry against the content root, reads the file's ",[27,146,19],{}," for the link text (unless a custom label is supplied), and builds the URL from the file path. External URLs are passed through unchanged and open in a new tab.",[51,149,151],{"id":150},"_2-item-types","2. Item Types",[153,154,156],"h3",{"id":155},"a-simple-link-string","A. Simple Link (String)",[23,158,159,160,162],{},"If you just provide a filename, the system will look up that file's ",[27,161,19],{}," title and use it as the link text.",[70,164,166],{"className":72,"code":165,"language":74,"meta":75,"style":75},"- my-page\n",[27,167,168],{"__ignoreMap":75},[79,169,170,173],{"class":81,"line":82},[79,171,172],{"class":88},"- ",[79,174,175],{"class":106},"my-page\n",[177,178,179,191],"ul",{},[180,181,182,186,187,190],"li",{},[183,184,185],"strong",{},"Link Text",": (Title from ",[27,188,189],{},"my-page.md",")",[180,192,193,126,196],{},[183,194,195],{},"href",[27,197,198],{},"\u002Fmy-page",[153,200,202],{"id":201},"b-custom-label-key-value","B. Custom Label (Key-Value)",[23,204,205,206,209],{},"Override the title shown in the footer by providing a key-value pair. The key is the link text, the value is the file path (without ",[27,207,208],{},".md",") or an external URL.",[70,211,213],{"className":72,"code":212,"language":74,"meta":75,"style":75},"- \"About Us\": about\n",[27,214,215],{"__ignoreMap":75},[79,216,217,219,222,224],{"class":81,"line":82},[79,218,172],{"class":88},[79,220,221],{"class":106},"\"About Us\"",[79,223,126],{"class":88},[79,225,107],{"class":106},[177,227,228,233],{},[180,229,230,232],{},[183,231,185],{},": \"About Us\"",[180,234,235,126,237],{},[183,236,195],{},[27,238,239],{},"\u002Fabout",[241,242,243],"blockquote",{},[23,244,245,246,248],{},"Custom labels always win — the file's ",[27,247,19],{}," is ignored when a label is supplied.",[153,250,252],{"id":251},"c-external-links","C. External Links",[23,254,255,256,259,260,263,264,267],{},"Paste an ",[27,257,258],{},"http:\u002F\u002F"," or ",[27,261,262],{},"https:\u002F\u002F"," URL as the value. External links open in a new tab and show an inline ",[27,265,266],{},"open-in-new"," icon.",[70,269,271],{"className":72,"code":270,"language":74,"meta":75,"style":75},"- \"GitHub Repo\": https:\u002F\u002Fgithub.com\u002Flife-and-dev\u002Fmdsite\n- \"NPM Registry\": https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@life-and-dev\u002Fmdsite\n",[27,272,273,283],{"__ignoreMap":75},[79,274,275,277,279,281],{"class":81,"line":82},[79,276,172],{"class":88},[79,278,136],{"class":106},[79,280,126],{"class":88},[79,282,141],{"class":106},[79,284,285,287,290,292],{"class":81,"line":92},[79,286,172],{"class":88},[79,288,289],{"class":106},"\"NPM Registry\"",[79,291,126],{"class":88},[79,293,294],{"class":106},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@life-and-dev\u002Fmdsite\n",[153,296,298],{"id":297},"d-separators","D. Separators",[23,300,301,302,305],{},"Use ",[27,303,304],{},"null"," to insert a vertical separator between groups of links.",[70,307,309],{"className":72,"code":308,"language":74,"meta":75,"style":75},"features:\n  footer:\n    - about\n    - contacts\n    - null\n    - \"GitHub Repo\": https:\u002F\u002Fgithub.com\u002Flife-and-dev\u002Fmdsite\n",[27,310,311,317,323,329,335,343],{"__ignoreMap":75},[79,312,313,315],{"class":81,"line":82},[79,314,63],{"class":85},[79,316,89],{"class":88},[79,318,319,321],{"class":81,"line":92},[79,320,95],{"class":85},[79,322,89],{"class":88},[79,324,325,327],{"class":81,"line":100},[79,326,103],{"class":88},[79,328,107],{"class":106},[79,330,331,333],{"class":81,"line":110},[79,332,103],{"class":88},[79,334,115],{"class":106},[79,336,337,339],{"class":81,"line":118},[79,338,103],{"class":88},[79,340,342],{"class":341},"sj4cs","null\n",[79,344,345,347,349,351],{"class":81,"line":131},[79,346,103],{"class":88},[79,348,136],{"class":106},[79,350,126],{"class":88},[79,352,141],{"class":106},[153,354,356,357,361],{"id":355},"e-what-is-not-supported","E. What Is ",[358,359,360],"em",{},"Not"," Supported",[23,363,364,365,367,368,370,371,374,375,377,378,380],{},"Unlike ",[27,366,67],{},", the ",[27,369,29],{}," section does ",[183,372,373],{},"not"," support nested sub-menus (a value can only be a string or ",[27,376,304],{},", never a list). Use ",[27,379,67],{}," for grouped navigation.",[51,382,384],{"id":383},"_3-path-resolution","3. Path Resolution",[177,386,387,404],{},[180,388,389,392,393,396,397,400,401,403],{},[183,390,391],{},"Relative paths"," — ",[27,394,395],{},"about"," and ",[27,398,399],{},"features\u002Fsource-edit"," resolve against the content root. The ",[27,402,208],{}," extension is implied.",[180,405,406,409,410,259,412,414],{},[183,407,408],{},"External URLs"," — Anything starting with ",[27,411,258],{},[27,413,262],{}," is passed through unchanged.",[51,416,418],{"id":417},"_4-menu-deduplication","4. Menu Deduplication",[23,420,421,422,424,425,431],{},"Any internal file listed in ",[27,423,29],{}," is ",[183,426,427,428],{},"excluded from ",[27,429,430],{},"menu:",". The renderer removes the matching entry from the sidebar so a page does not appear twice.",[70,433,435],{"className":72,"code":434,"language":74,"meta":75,"style":75},"menu:\n  - index\n  - guide\nfeatures:\n  footer:\n    - about\n    - contacts\n",[27,436,437,443,451,458,464,470,476],{"__ignoreMap":75},[79,438,439,441],{"class":81,"line":82},[79,440,67],{"class":85},[79,442,89],{"class":88},[79,444,445,448],{"class":81,"line":92},[79,446,447],{"class":88},"  - ",[79,449,450],{"class":106},"index\n",[79,452,453,455],{"class":81,"line":100},[79,454,447],{"class":88},[79,456,457],{"class":106},"guide\n",[79,459,460,462],{"class":81,"line":110},[79,461,63],{"class":85},[79,463,89],{"class":88},[79,465,466,468],{"class":81,"line":118},[79,467,95],{"class":85},[79,469,89],{"class":88},[79,471,472,474],{"class":81,"line":131},[79,473,103],{"class":88},[79,475,107],{"class":106},[79,477,479,481],{"class":81,"line":478},7,[79,480,103],{"class":88},[79,482,115],{"class":106},[23,484,485,486,396,489,492,493,396,495,498,499,503,504,506],{},"With this configuration the sidebar shows ",[27,487,488],{},"index",[27,490,491],{},"guide",", and the bottom bar shows ",[27,494,395],{},[27,496,497],{},"contacts",". If a file is listed in both places it is dropped from the sidebar. External URLs are not affected. See ",[500,501,502],"a",{"href":67},"Menu Configuration"," for the full ",[27,505,430],{}," syntax.",[23,508,509,510,513],{},"The \"Edit\" link in the bottom bar is controlled separately by ",[27,511,512],{},"features.source-edit"," (a non-empty URL prefix enables the link; an empty string disables it). It is only rendered inside the bar when the bar itself is visible (see below).",[51,515,517],{"id":516},"_5-when-the-bar-is-hidden","5. When the Bar Is Hidden",[23,519,520,521,523],{},"The entire bottom bar (including the Edit button) is hidden when ",[27,522,29],{}," is missing, set to an empty array, or contains no renderable items. The bar only appears when at least one link or separator is configured.",[70,525,527],{"className":72,"code":526,"language":74,"meta":75,"style":75},"features:\n  footer: []   # bar is hidden\n",[27,528,529,535],{"__ignoreMap":75},[79,530,531,533],{"class":81,"line":82},[79,532,63],{"class":85},[79,534,89],{"class":88},[79,536,537,539,542],{"class":81,"line":92},[79,538,95],{"class":85},[79,540,541],{"class":88},": []   ",[79,543,545],{"class":544},"sJ8bj","# bar is hidden\n",[70,547,549],{"className":72,"code":548,"language":74,"meta":75,"style":75},"features:\n  footer:\n    - about    # bar is visible with one link\n",[27,550,551,557,563],{"__ignoreMap":75},[79,552,553,555],{"class":81,"line":82},[79,554,63],{"class":85},[79,556,89],{"class":88},[79,558,559,561],{"class":81,"line":92},[79,560,95],{"class":85},[79,562,89],{"class":88},[79,564,565,567,569],{"class":81,"line":100},[79,566,103],{"class":88},[79,568,395],{"class":106},[79,570,571],{"class":544},"    # bar is visible with one link\n",[23,573,574],{},"While the renderer is loading the footer index on the client, the bar is also hidden. This avoids a brief flash of an empty bar before the JSON arrives.",[576,577],"hr",{},[36,579,581],{"type":580},"tip",[23,582,583,586,587,589,590,592,593,595],{},[183,584,585],{},"Output",": When you set ",[27,588,29],{}," in ",[27,591,33],{}," to a non-empty list, the bottom bar of every page lists each entry as a link (or a separator). With no entries (or no ",[27,594,29],{}," key) the bar is not rendered at all.",[597,598,599],"style",{},"html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#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 .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);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":75,"searchDepth":92,"depth":92,"links":601},[602,603,611,612,613],{"id":53,"depth":92,"text":54},{"id":150,"depth":92,"text":151,"children":604},[605,606,607,608,609],{"id":155,"depth":100,"text":156},{"id":201,"depth":100,"text":202},{"id":251,"depth":100,"text":252},{"id":297,"depth":100,"text":298},{"id":355,"depth":100,"text":610},"E. What Is Not Supported",{"id":383,"depth":92,"text":384},{"id":417,"depth":92,"text":418},{"id":516,"depth":92,"text":517},"This is a reference for the features.footer section in mdsite.yml. Use it to populate the bottom bar of every page with links to selected pages on your site (or to external sites).","md",{},"\u002Ffooter",{"title":14,"description":614},"footer","j5EcWC6m4XQzGmi9dr88-FDorZEOupNYgRfkxBDK48g",1784017753074]