/* Helper functions */
void href(const char *url);
-void print_link(char *path, char *name, int cur);
+void print_link(char *path, char *name, int cur, int dir);
void print_menu(menu_t *menu, int first, int last);
+void print_menu_start(void);
+void print_menu_end(void);
/* Global functions */
void print_header(page_t *page);
#endif
}
+int get_slashes(char *path)
+{
+ int slashes = 0;
+ for (int i = 0; path[i]; i++) {
+ if (path[i] == '/')
+ slashes += 1;
+ if (path[i] != '/' && !path[i+1])
+ slashes *= -1;
+ }
+ return slashes;
+}
+
void print_menu(menu_t *menu, int first, int last)
{
for (menu_t *cur = menu; cur; cur = cur->next) {
if (first <= 0 && cur->show != SHOW_HIDDEN)
print_link(cur->path, cur->name,
- cur->show == SHOW_ACTIVE);
- if (cur->kids && last != 0)
+ cur->show == SHOW_ACTIVE,
+ get_slashes(cur->path));
+ if (cur->kids && last != 0) {
+ if (first == 0)
+ print_menu_start();
print_menu(cur->kids, first-1, last-1);
+ if (first == 0)
+ print_menu_end();
+ }
}
}
<% } %>
-<% void print_link(char *path, char *name, int cur) { %>
- <a href="<% href(path); %>"<% if (cur) { %> class="cur"<% } %>><%= name %></a>
+<% void print_menu_start(void) { %>
+ <div class="nav">
+<% } %>
+
+<% void print_menu_end(void) { %>
+ </div>
+<% } %>
+
+<% void print_link(char *path, char *name, int cur, int dir) { %>
+ <a href="<% href(path); %>"<%
+ if (cur) { %> class="cur"<% }
+ %>><%= name %><%
+ if (dir > 1) { %>/<% }
+ %></a>
<% } %>
<% void print_page(page_t *page, menu_t *menu) { %>
font-weight: bold;
}
+h2.nav .nav {
+ margin-left: 1em;
+}
+
/* Content */
.content {
padding: 20px 20px 20px 220px;