MCPcopy Index your code
hub / github.com/github/awesome-copilot / renderCookbookSection

Function renderCookbookSection

website/src/scripts/pages/samples-render.ts:92–131  ·  view source on GitHub ↗
(
  cookbook: Cookbook,
  recipes: { recipe: Recipe; highlightedName?: string }[],
  selectedLanguage: string | null
)

Source from the content-addressed store, hash-verified

90}
91
92function renderCookbookSection(
93 cookbook: Cookbook,
94 recipes: { recipe: Recipe; highlightedName?: string }[],
95 selectedLanguage: string | null
96): string {
97 const languageTabs = cookbook.languages
98 .map(
99 (language) => `
100 <button class="lang-tab${selectedLanguage === language.id ? " active" : ""}"
101 data-lang="${escapeHtml(language.id)}"
102 title="${escapeHtml(language.name)}">
103 ${escapeHtml(language.icon)}
104 </button>
105 `
106 )
107 .join("");
108
109 const recipeCards = recipes
110 .map(({ recipe, highlightedName }) =>
111 renderRecipeCard(cookbook, recipe, selectedLanguage, highlightedName)
112 )
113 .join("");
114
115 return `
116 <div class="cookbook-section" data-cookbook="${escapeHtml(cookbook.id)}">
117 <div class="cookbook-header">
118 <div class="cookbook-info">
119 <h2>${escapeHtml(cookbook.name)}</h2>
120 <p>${escapeHtml(cookbook.description)}</p>
121 </div>
122 <div class="cookbook-languages">
123 ${languageTabs}
124 </div>
125 </div>
126 <div class="recipes-grid">
127 ${recipeCards}
128 </div>
129 </div>
130 `;
131}
132
133function renderRecipeCard(
134 cookbook: Cookbook,

Callers 1

Calls 2

escapeHtmlFunction · 0.90
renderRecipeCardFunction · 0.85

Tested by

no test coverage detected