dweb v0.2: horizontal side bar configuration, optional chevrons (the bloat begins.)
authorJacob Parker <j3parker@csclub.uwaterloo.ca>
Sun, 19 Feb 2012 21:44:03 +0000 (16:44 -0500)
committerJacob Parker <j3parker@csclub.uwaterloo.ca>
Sun, 19 Feb 2012 21:46:22 +0000 (16:46 -0500)
pub/style/style.css
src/config.d
src/web.d
srv/.dweb

index 9080bbc..a0b7517 100644 (file)
@@ -1,5 +1,3 @@
-/* Default werc style */\r
-\r
 /* General style guidelines:\r
     - All font-size at least 14px (recommended 16px)\r
     - Line-height: 1.5 for paragraph body, 1.1 for header\r
@@ -14,7 +12,6 @@ body {
   padding: 0;\r
 }\r
 \r
-\r
 /* # Header # */\r
 .superHeader {\r
   color: white;\r
@@ -88,6 +85,55 @@ a:hover { text-decoration: underline; }
   background-color: transparent;\r
 }\r
 \r
+/* # Horiz-side # */\r
+#horiz-side-bar {\r
+  width:100%;\r
+  float left;\r
+  clear: both;\r
+  border: 0;\r
+  margin: 0;\r
+  padding: 0;\r
+}\r
+\r
+#horiz-side-bar ul {\r
+  margin: 0;\r
+  padding: 0.3em;\r
+  list-style-type: none;\r
+  list-style-image: none;\r
+  background: #eeeeee;\r
+  border: 0;\r
+}\r
+\r
+#horiz-side-bar ul:nth-child(even) { \r
+  background-color: #dddddd;\r
+}\r
+\r
+#horiz-side-bar li {\r
+  display: inline;\r
+  white-space: nowrap;\r
+  line-height: 1.6em;\r
+}\r
+\r
+#horiz-side-bar li.thisPage a {\r
+  color: black!important;\r
+  font-weight: bold;\r
+}\r
+#horiz-side-bar ul li a {\r
+  margin: 0;\r
+  padding: 0.1em 1ex 0.1em 1ex;\r
+  color: #336699;\r
+  background-color: transparent;\r
+  text-decoration: none;\r
+  font-size: 1em;\r
+  border: 0;\r
+}\r
+\r
+#horiz-side-bar ul li a:hover {\r
+  color: black;\r
+  text-decoration: none;\r
+  text-transform: none;\r
+}\r
+\r
 \r
 /* # Side # */\r
 #side-bar {\r
@@ -120,7 +166,6 @@ li ul {
 \r
 #side-bar li {\r
   margin: 0;\r
-  padding: 0.1ex 0;  /* Circumvents a rendering bug (?) in MSIE 6.0  XXX should move to iehacks.css, this causes an ugly gap */\r
 }\r
 \r
 #side-bar a {\r
@@ -135,10 +180,10 @@ li ul {
   border-left: white solid 0.2em;\r
 }\r
 \r
-.thisPage, .thisPage a {\r
+#side-bar li.thisPage a {\r
   color: black!important;\r
   background-color: white;\r
-  padding-left: 5mm;\r
+  font-style:italic;\r
 }\r
 \r
 #side-bar a:hover {\r
@@ -170,11 +215,15 @@ li ul {
 \r
 /* # Main Copy # */\r
 #main-copy {\r
-  max-width: 70em;\r
+  padding: 0.5mm 5mm 5mm 5mm;\r
   color: black;\r
   background-color: transparent;\r
   text-align: justify;\r
   line-height: 1.5em;\r
+}\r
+\r
+.main-copy-side-bar {\r
+  max-width: 70em;\r
   margin: 0em 0 0 16em;\r
   padding: 0.5mm 5mm 5mm 5mm;\r
   border-left: 1px solid #ddd;\r
index 768e4b4..8763cc2 100644 (file)
@@ -2,5 +2,8 @@ const string url_root = "/~j3parker/";
 const string dweb_root = "/users/j3parker/www/";
 const string site_root = dweb_root ~ "srv/";
 
-const string site_title = "Test Title";
-const string site_subtitle = "this is a subtitle";
+const string site_title = "This is a Title";
+const string site_subtitle = "but this is a subtitle";
+
+const bool nav_tree_vert = false;
+const bool nav_tree_chev = false;
index a930892..3616241 100755 (executable)
--- a/src/web.d
+++ b/src/web.d
@@ -14,35 +14,46 @@ void html_push(string s) { html(s); indent ~= "    "; }
 
 void write_link(string root, string file, bool expand) {
   bool isdir = dirExists(file);
-  html_push("<li>");
-  html("<a href=\"" ~ construct_rel_link(root, file) ~ "\"" ~
-        (expand? " class=\"thisPage\">&raquo; <i>" : ">&rsaquo; ")
-        ~ last_in_path(file) ~ (isdir ? "/" : "")
-        ~ (expand? "</i>" : "") ~ "</a>");
+  string flair = nav_tree_chev? (expand? "&raquo; " : "&rsaquo; ") : "";
+  html_push("<li" ~ (expand? " class=\"thisPage\" " : "") ~ ">");
+  html("<a href=\"" ~ construct_rel_link(root, file) ~ "\">"
+        ~ flair ~last_in_path(file) ~ (isdir ? "/" : "")
+        ~ "</a>");
   html_pop("</li>");
 }
 
 void nav_tree_r(string root, string cur_loc, string[] subdirs) {
+  string[] dirs = dir(cur_loc);
+  if (dirs.length == 0) return;
   html_push("<ul>");
-  foreach(string s; dir(cur_loc)) {
-    if (s[max(0,$-8)..$]=="index.md") continue;
+  bool next = false;
+  string next_loc;
+  foreach(string s; dirs) {
     bool hidden = last_in_path(s).length > 0 && last_in_path(s)[0] == '.';
     bool expand = s[cur_loc.length..$] == (subdirs.length == 0 ? "" : subdirs[0]);
     if (hidden && !expand) continue;
     write_link(root, s, expand);
     if (expand && isDir(cur_loc ~ subdirs[0])) {
-      html_push("<li>");
-      nav_tree_r(root, cur_loc ~ subdirs[0] ~ "/", subdirs[1..$]);
-      html_pop("</li>");
+      if (nav_tree_vert) {
+        html_push("<li>");
+        nav_tree_r(root, cur_loc ~ subdirs[0] ~ "/", subdirs[1..$]);
+        html_pop("</li>");
+      } else {
+        next = true;
+        next_loc = cur_loc ~ subdirs[0] ~ "/";
+      }
     }
   }
   html_pop("</ul>");
+  if (next) nav_tree_r(root, next_loc, subdirs[1..$]);
 }
 
 // this could be better
 string[] dir(string path) {
   string[] files;
-  foreach(string s; dirEntries(path, SpanMode.shallow)) files ~= s;
+  foreach(string s; dirEntries(path, SpanMode.shallow)) {
+    if (s[max(0,$-8)..$] != "index.md") files ~= s;
+  }
   sort(files);
   return files;
 }
@@ -51,11 +62,12 @@ void do_nav_tree(string path) {
   try { if (isDir(path) && path[path.length - 1] != '/') { path = site_root; } }
   catch (Exception e) { path = site_root; }
 
-  html_push("<div id=\"side-bar\">");
+  html_push("<div id=\"" ~ (nav_tree_vert ? "" : "horiz-") ~ "side-bar\">");
 
   string root = get_root_dir(path);
   string[] subdirs = explode_slashes(path[site_root.length..$]);
   nav_tree_r(root, site_root, subdirs);
+
   html_pop("</div>\n");
 }
 
@@ -124,7 +136,7 @@ bool fileExists(string path) { try { if (isFile(path)) return true; else return
 bool dirExists(string path)  { try { if (isDir(path))  return true; else return false; } catch (Exception e) { return false; } }
 
 void do_content(string path) {
-  html_push("<div id=\"main-copy\">");
+  html_push("<div id=\"main-copy\"" ~ (nav_tree_vert? " class=\"main-copy-side-bar\"" : "")  ~ ">");
   string url = path[site_root.length..$];
   switch (url) {
     case "changelog":
index 3bdf689..5a392e4 100644 (file)
--- a/srv/.dweb
+++ b/srv/.dweb
@@ -36,7 +36,7 @@ Source
 
 You can get the source code on [github](https://github.com/j3parker/dweb) or by running
 
-     git clone git://github.com/j3parker/Go-OpenGL.git
+     git clone git://github.com/j3parker/dweb.git
 
 Contact
 --------