gpt4 book ai didi

zurb-foundation - 响应式/JavaScript 框架的 Tritium 函数设计

转载 作者:行者123 更新时间:2023-12-04 07:14:41 29 4
gpt4 key购买 nike

我正在使用 Moovweb/Tritium 通过 Zurb Foundation 框架使常规桌面站点响应。

作为其中的一部分,我想创建辅助函数来启用 Foundation 小部件,例如 Uranium integrations已经在 Moovweb 中了。但是一些 Foundation 组件,比如 top bar具有复杂的布局,需要比在单个函数调用中看起来合理的配置更多的配置。

例如,启用顶部栏需要类似以下结构:

# Use the foundation topbar
insert_top("nav", class: "top-bar") {

# Create the title area
insert("ul", class: "title-area") {
inject("<li class='name'><h1><a href='/'>Website Name</a></h1></li>")
inject("<li class='toggle-topbar menu-icon'><a href='#'><span>Menu</span></a></li>")
}

# Grab the header links and put them in the top bar
insert("section", class: "top-bar-section") {
insert("ul", class: "left") {

# Move the original header links here
move_here("//span[@class='pagetop']//a"){
wrap("li")
}
}
}
}

将其抽象为可重用的 triitium 函数的正确方法是什么,该函数可最大限度地减少样板代码但又具有灵 active ?

最佳答案

在我的用例中,我通过将布局分解为相互嵌套的相关函数来处理这个问题。于是上面的原代码就变成了:

# enable the foundation top bar
zurb_topbar() {
zurb_topbar_title("Website Name", "Menu", "menu-icon")
zurb_topbar_left() {
move_here("//span[@class='pagetop']//a"){
wrap("li")
}
}
}

函数定义为:

@func XMLNode.zurb_topbar() {   
insert_top("nav", class: "top-bar") {
yield()
}
}

@func XMLNode.zurb_topbar_title(Text %name, Text %menu_btn_name, Text %menu_icon) {
insert("ul", class: "title-area") {
inject("<li class='name'><h1><a href='/'>" +%name +"</a></h1></li>")
inject("<li class='toggle-topbar "+%menu_icon+"'><a href='#'><span>"+%menu_btn_name+"</span></a></li>")
}
}

@func XMLNode.zurb_topbar_left() {
insert("section", class: "top-bar-section") {
insert("ul", class: "left") {
yield()
}
}
}

你可以想象一个 zurb_topbar_right可以选择用于定义顶部栏右侧部分的函数。

注意 zurb_topbar_title <LI> 的 href 和结构s 是硬编码的,因为您通常不太可能希望将 href 指向除 root 以外的任何地方。相反,您可能想要自定义的部分是顶部栏的标题、菜单按钮的标题以及菜单栏图标的存在。

鉴于 zurb_topbar_left <LI>内容可能会由程序员填充,因此产量。

权衡似乎是自动强制以正确的方式使用正确的功能组合变得更加棘手,即

  • 你必须同时使用 zurb_topbarzurb_topbar_title
  • 但只有一个 zurb_topbar_leftzurb_topbar_right
  • zurb_topbar 必须包含 zurb_topbar_left
  • 等等等等

关于zurb-foundation - 响应式/JavaScript 框架的 Tritium 函数设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205836/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com