# 主菜单（汉堡包）链接/面板是如何生成的？

**URL:** <https://meta.discourse.org/t/how-is-the-main-menu-hamburger-link-panel-generated/225775>\
**Category:** Support\
**Created:** [2022年四月30日 22:36 UTC](https://meta.discourse.org/t/how-is-the-main-menu-hamburger-link-panel-generated/225775 "2022-04-30T22:36:04Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)\
**Post date:** [2022年五月2日 14:48 UTC](https://meta.discourse.org/t/how-is-the-main-menu-hamburger-link-panel-generated/225775/3 "2022-05-02T14:48:16Z")

</div>

菜单在点击按钮时使用 Javascript 附加到文档中，因此很难将其转换为适用于纯 HTML 版本的网站。\n\n这是添加按钮的位置，您可以看到它有一个名为 `toggleHamburger` 的操作：\n\n[https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/widgets/header.js#L246\n\n`toggleHamburger`](https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/widgets/header.js#L246%5Cn%5Cn%60toggleHamburger%60) 操作在同一文件稍后的位置定义，此处：\n\n[https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/widgets/header.js#L483\n\n`toggleHamburger`](https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/widgets/header.js#L483%5Cn%5Cn%60toggleHamburger%60) 更改 `hamburgerVisible` 状态，因此菜单最终使用 `panels.push(this.attach(\"hamburger-menu\"));` 添加，您可以在此处看到：\n\n[https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/widgets/header.js#L379](https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/widgets/header.js#L379)

---

_[View the full topic](https://meta.discourse.org/t/how-is-the-main-menu-hamburger-link-panel-generated/225775)._
