This commit is contained in:
parent
d958a65978
commit
ad15acbce0
4 changed files with 75 additions and 5 deletions
|
|
@ -118,7 +118,7 @@ void classic_stylesheet(FILE* out, const char* top) {
|
|||
fprintf(out, "}\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, ".linkgroup {\n");
|
||||
fprintf(out, " padding-left: 16px;\n");
|
||||
fprintf(out, " padding-left: 12px;\n");
|
||||
fprintf(out, "}\n");
|
||||
fprintf(out, "\n");
|
||||
fprintf(out, ".linkgrouptitle {\n");
|
||||
|
|
@ -225,6 +225,20 @@ void classic_body(FILE* out, const char* top, const char* title, xl_node_t* body
|
|||
fprintf(out, " <tr>\n");
|
||||
fprintf(out, " <td width=\"150\" valign=\"top\">\n");
|
||||
fprintf(out, " <div id=\"nav\">\n");
|
||||
|
||||
if((nodes = xl_get_path(skinconf->root, "nav")) != NULL) {
|
||||
int i;
|
||||
|
||||
child = nodes[0]->first_child;
|
||||
while(child != NULL) {
|
||||
default_nav(out, top, child, 6);
|
||||
|
||||
child = child->next;
|
||||
}
|
||||
|
||||
free(nodes);
|
||||
}
|
||||
|
||||
fprintf(out, " </div>\n");
|
||||
fprintf(out, " </td>\n");
|
||||
fprintf(out, " <td valign=\"top\">\n");
|
||||
|
|
@ -232,7 +246,7 @@ void classic_body(FILE* out, const char* top, const char* title, xl_node_t* body
|
|||
|
||||
child = body->first_child;
|
||||
while(child != NULL) {
|
||||
default_node(out, top, child, 0);
|
||||
default_node(out, top, child, 6);
|
||||
|
||||
child = child->next;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,18 +132,58 @@ void default_node(FILE* out, const char* top, xl_node_t* element, int indent) {
|
|||
sprintf(tag, "<%s>", element->name);
|
||||
}
|
||||
|
||||
if(tag[0] != 0) print(out, tag, indent + 6);
|
||||
if(tag[0] != 0) print(out, tag, indent);
|
||||
|
||||
child = element->first_child;
|
||||
while(child != NULL) {
|
||||
if(child->type == XL_NODE_NODE && child->name != NULL) {
|
||||
default_node(out, top, child, indent + 1 + add);
|
||||
} else if(child->type == XL_NODE_TEXT && child->text != NULL) {
|
||||
print(out, child->text, indent + 7 + add);
|
||||
print(out, child->text, indent + 1 + add);
|
||||
}
|
||||
|
||||
child = child->next;
|
||||
}
|
||||
|
||||
if(end[0] != 0) print(out, end, indent + 6);
|
||||
if(end[0] != 0) print(out, end, indent);
|
||||
}
|
||||
|
||||
void default_nav(FILE* out, const char* top, xl_node_t* element, int indent) {
|
||||
int i;
|
||||
|
||||
if(element->name == NULL) return;
|
||||
|
||||
if(strcmp(element->name, "link") == 0) {
|
||||
char* link;
|
||||
char* name;
|
||||
|
||||
if((link = xl_get_attribute(element, "href")) == NULL) link = "https://invalid.link";
|
||||
if((name = xl_get_attribute(element, "name")) == NULL) name = "";
|
||||
|
||||
for(i = 0; i < indent; i++) fprintf(out, "\t");
|
||||
fprintf(out, " - <a href=\"%s\">%s</a><br>", link, name);
|
||||
} else if(strcmp(element->name, "group") == 0) {
|
||||
char* title;
|
||||
xl_node_t* child;
|
||||
|
||||
if((title = xl_get_attribute(element, "title")) == NULL) title = "";
|
||||
|
||||
if(title != NULL) {
|
||||
for(i = 0; i < indent; i++) fprintf(out, "\t");
|
||||
fprintf(out, "<div class=\"linkgrouptitle\"> - %s</div>\n", title);
|
||||
}
|
||||
|
||||
for(i = 0; i < indent; i++) fprintf(out, "\t");
|
||||
fprintf(out, "<div class=\"linkgroup\">\n");
|
||||
|
||||
child = element->first_child;
|
||||
while(child != NULL) {
|
||||
default_nav(out, top, child, indent + 1);
|
||||
|
||||
child = child->next;
|
||||
}
|
||||
|
||||
for(i = 0; i < indent; i++) fprintf(out, "\t");
|
||||
fprintf(out, "</div>\n");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
15
src/seed.c
15
src/seed.c
|
|
@ -27,6 +27,21 @@ int action_seed(int argc, char** argv) {
|
|||
fprintf(f, " <link name=\"Example Co, Ltd\" href=\"https://example.com\" />\n");
|
||||
fprintf(f, " <link name=\"Example Project\" href=\"https://example.com\" />\n");
|
||||
fprintf(f, " </breadcrumb>\n");
|
||||
fprintf(f, " <project>\n");
|
||||
fprintf(f, " <name>Example Project</name>\n");
|
||||
fprintf(f, " <description>Example Project Description</description>\n");
|
||||
fprintf(f, " <link href=\"https://example.com\" />\n");
|
||||
fprintf(f, " </project>\n");
|
||||
fprintf(f, " <nav>\n");
|
||||
fprintf(f, " <group title=\"Example Project\">\n");
|
||||
fprintf(f, " <link name=\"Home\" href=\"/\" />\n");
|
||||
fprintf(f, " <link name=\"Example Co, Ltd.\" href=\"https://example.com\" />\n");
|
||||
fprintf(f, " <group title=\"Example Project\">\n");
|
||||
fprintf(f, " <link name=\"Home\" href=\"/\" />\n");
|
||||
fprintf(f, " <link name=\"Example Co, Ltd.\" href=\"https://example.com\" />\n");
|
||||
fprintf(f, " </group>\n");
|
||||
fprintf(f, " </group>\n");
|
||||
fprintf(f, " </nav>\n");
|
||||
fprintf(f, " <copyright>\n");
|
||||
fprintf(f, " <holder>Example Co, Ltd</holder>\n");
|
||||
fprintf(f, " <year>2026</year>\n");
|
||||
|
|
|
|||
|
|
@ -63,5 +63,6 @@ void classic_body(FILE* out, const char* top, const char* title, xl_node_t* body
|
|||
|
||||
/* default.c */
|
||||
void default_node(FILE* out, const char* top, xl_node_t* element, int indent);
|
||||
void default_nav(FILE* out, const char* top, xl_node_t* element, int indent);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue