"Fossies" - the Fresh Open Source Software Archive

Member "darkstat-3.0.721/html.c" (12 Jan 2022, 2012 Bytes) of package /linux/privat/darkstat-3.0.721.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /* darkstat 3
    2  *
    3  * html.c: HTML header/footer templating for web interface.
    4  * copyright (c) 2006 Ben Stewart.
    5  * copyright (c) 2010 Malte S. Stretz.
    6  *
    7  * You may use, modify and redistribute this file under the terms of the
    8  * GNU General Public License version 2. (see COPYING.GPL)
    9  */
   10 
   11 #include "config.h"
   12 #include "str.h"
   13 #include "html.h"
   14 #include "opt.h"
   15 
   16 #include <assert.h>
   17 
   18 static const char *relpaths[] = {
   19     ".",
   20     "..",
   21     "../.."
   22 };
   23 
   24 void html_open(struct str *buf, const char *title,
   25     const unsigned int path_depth, const int want_graph_js)
   26 {
   27     const char *root;
   28     assert(path_depth < (sizeof(relpaths)/sizeof(*relpaths)));
   29     root = relpaths[path_depth];
   30 
   31     str_appendf(buf,
   32         "<!DOCTYPE html>\n"
   33         "<html>\n"
   34         "<head>\n"
   35          "<title>%s (darkstat %s)</title>\n"
   36          "<meta name=\"generator\" content=\"" PACKAGE_STRING "\">\n"
   37          "<meta name=\"robots\" content=\"noindex, noarchive\">\n"
   38          "<meta name=\"viewport\" "
   39                "content=\"width=device-width, initial-scale=1\">\n"
   40          "<link rel=\"stylesheet\" href=\"%s/style.css\" type=\"text/css\">\n",
   41         title, title_interfaces, root);
   42 
   43     if (want_graph_js)
   44         str_appendf(buf,
   45             "<script src=\"%s/graph.js\" type=\"text/javascript\"></script>\n"
   46             , root);
   47 
   48     str_appendf(buf,
   49         "</head>\n"
   50         "<body>\n"
   51         "<div class=\"menu\">\n"
   52         "<ul class=\"menu\">" /* no whitespace (newlines) in list */
   53          "<li class=\"label\">" PACKAGE_STRING "</li>"
   54          "<li><a href=\"%s/\">graphs</a></li>"
   55          "<li><a href=\"%s/hosts/\">hosts</a></li>"
   56          "<li><a href=\"" PACKAGE_URL "\">homepage</a></li>"
   57         "</ul>\n"
   58         "</div>\n"
   59         "<div class=\"content\">\n"
   60          "<h2 class=\"pageheader\">%s</h2>\n"
   61         , root, root, title);
   62 }
   63 
   64 void html_close(struct str *buf)
   65 {
   66     str_append(buf, 
   67         "</div>\n"
   68         "</body>\n"
   69         "</html>\n");
   70 }
   71 
   72 /* vim:set ts=4 sw=4 tw=80 et: */