get_main_page :: () -> string {
builder : String_Builder;
add_navbar(*builder);
print_to_builder(*builder, "
\n");
add_sidebar(*builder);
print_to_builder(*builder, start_grid, state.recipes.count, state.recipes.count);
for recipe : state.recipes {
print_to_builder(*builder, card, recipe.id, recipe.image, recipe.name, recipe.category, recipe.duration);
}
print_to_builder(*builder, "%", end_grid);
print_to_builder(*builder, "
\n");
return builder_to_string(*builder);
}
#scope_file
start_grid : string = #string DONE
DONE
card : string = #string DONE
%
% %
DONE
end_grid : string = #string DONE
DONE
add_sidebar :: (builder: *String_Builder) {
categories : Table(string, int);
for recipe : state.recipes {
categoryptr := table_find_pointer(*categories, recipe.category);
if categoryptr {
table_set(*categories, recipe.category, categoryptr.* + 1);
} else {
table_set(*categories, recipe.category, 1);
}
}
print_to_builder(builder, "\n");
}