diff --git a/README.md b/README.md
index 0eab3678..7bdbb380 100644
--- a/README.md
+++ b/README.md
@@ -4,3 +4,5 @@ CodeMetropolis
See your software as never before.
Official community page: https://plus.google.com/communities/110235162339639686953
+
+BlockModifier-API aviable at: https://github.com/blip24/BlockModifier-API
diff --git a/examples/gitstats/Test/a.dat b/examples/gitstats/Test/a.dat
new file mode 100644
index 00000000..5a5a738d
--- /dev/null
+++ b/examples/gitstats/Test/a.dat
@@ -0,0 +1,2 @@
+elso 34
+masodik 56
\ No newline at end of file
diff --git a/examples/gitstats/Test/b.dat b/examples/gitstats/Test/b.dat
new file mode 100644
index 00000000..3a8dbeea
--- /dev/null
+++ b/examples/gitstats/Test/b.dat
@@ -0,0 +1,2 @@
+harmadik 65
+negyedik 18
\ No newline at end of file
diff --git a/examples/gitstats/activity.html b/examples/gitstats/activity.html
new file mode 100644
index 00000000..2859c96f
--- /dev/null
+++ b/examples/gitstats/activity.html
@@ -0,0 +1,616 @@
+
+
+
+
+ GitStats - RF2
+
+
+
+
+
+ Activity
+
+
+ Last 32 weeks
+
+ | 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+
+
+ | 32 |
+ 31 |
+ 30 |
+ 29 |
+ 28 |
+ 27 |
+ 26 |
+ 25 |
+ 24 |
+ 23 |
+ 22 |
+ 21 |
+ 20 |
+ 19 |
+ 18 |
+ 17 |
+ 16 |
+ 15 |
+ 14 |
+ 13 |
+ 12 |
+ 11 |
+ 10 |
+ 9 |
+ 8 |
+ 7 |
+ 6 |
+ 5 |
+ 4 |
+ 3 |
+ 2 |
+ 1 |
+
+
+
+
+
+ | Hour |
+ 0 |
+ 1 |
+ 2 |
+ 3 |
+ 4 |
+ 5 |
+ 6 |
+ 7 |
+ 8 |
+ 9 |
+ 10 |
+ 11 |
+ 12 |
+ 13 |
+ 14 |
+ 15 |
+ 16 |
+ 17 |
+ 18 |
+ 19 |
+ 20 |
+ 21 |
+ 22 |
+ 23 |
+
+
+ | Commits |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 0 |
+ 2 |
+ 7 |
+ 17 |
+ 7 |
+ 6 |
+ 4 |
+ 9 |
+ 8 |
+ 8 |
+ 3 |
+ 0 |
+ 0 |
+ 0 |
+ 3 |
+ 0 |
+ 2 |
+
+
+ | % |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 2.63 |
+ 9.21 |
+ 22.37 |
+ 9.21 |
+ 7.89 |
+ 5.26 |
+ 11.84 |
+ 10.53 |
+ 10.53 |
+ 3.95 |
+ 0.00 |
+ 0.00 |
+ 0.00 |
+ 3.95 |
+ 0.00 |
+ 2.63 |
+
+
+
+
+
+ | Day |
+ Total (%) |
+
+
+ | 1 |
+ 8 (10.53%) |
+
+
+ | 2 |
+ 6 (7.89%) |
+
+
+ | 3 |
+ 10 (13.16%) |
+
+
+ | 4 |
+ 31 (40.79%) |
+
+
+ | 5 |
+ 16 (21.05%) |
+
+
+ | 6 |
+ 2 (2.63%) |
+
+
+ | 7 |
+ 3 (3.95%) |
+
+
+
+
+
+ | Weekday |
+ 0 |
+ 1 |
+ 2 |
+ 3 |
+ 4 |
+ 5 |
+ 6 |
+ 7 |
+ 8 |
+ 9 |
+ 10 |
+ 11 |
+ 12 |
+ 13 |
+ 14 |
+ 15 |
+ 16 |
+ 17 |
+ 18 |
+ 19 |
+ 20 |
+ 21 |
+ 22 |
+ 23 |
+
+
+ | 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 1 |
+ 1 |
+ 2 |
+ 1 |
+ 1 |
+ |
+ |
+ 1 |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+ | 2 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 1 |
+ 1 |
+ |
+ |
+ |
+ |
+ 1 |
+ 2 |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+ | 3 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 1 |
+ |
+ 2 |
+ 3 |
+ |
+ 1 |
+ 3 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+ | 4 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 1 |
+ 3 |
+ 10 |
+ 2 |
+ 2 |
+ |
+ 5 |
+ 4 |
+ 2 |
+ 2 |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+ | 5 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 2 |
+ 3 |
+ 4 |
+ 1 |
+ 1 |
+ 3 |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ 1 |
+ |
+ |
+
+
+ | 6 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 1 |
+ |
+ |
+ |
+ |
+ |
+ |
+ 1 |
+ |
+ |
+
+
+ | 7 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ 1 |
+ |
+ 2 |
+
+
+
+
+
+ | Month |
+ Commits (%) |
+
+
+ | 1 |
+ 7 (9.21 %) |
+
+
+ | 2 |
+ 32 (42.11 %) |
+
+
+ | 3 |
+ 25 (32.89 %) |
+
+
+ | 4 |
+ 12 (15.79 %) |
+
+
+ | 5 |
+ 0 (0.00 %) |
+
+
+ | 6 |
+ 0 (0.00 %) |
+
+
+ | 7 |
+ 0 (0.00 %) |
+
+
+ | 8 |
+ 0 (0.00 %) |
+
+
+ | 9 |
+ 0 (0.00 %) |
+
+
+ | 10 |
+ 0 (0.00 %) |
+
+
+ | 11 |
+ 0 (0.00 %) |
+
+
+ | 12 |
+ 0 (0.00 %) |
+
+
+
+
+
+ | Month |
+ Commits |
+
+
+ | 2017-02 |
+ 2 |
+
+
+ | 2016-04 |
+ 11 |
+
+
+ | 2016-03 |
+ 25 |
+
+
+ | 2016-02 |
+ 30 |
+
+
+ | 2016-01 |
+ 7 |
+
+
+ | 2014-04 |
+ 1 |
+
+
+
+
+
+ | Year |
+ Commits (% of all) |
+
+
+ | 2017 |
+ 2 (2.63%) |
+
+
+ | 2016 |
+ 73 (96.05%) |
+
+
+ | 2014 |
+ 1 (1.32%) |
+
+
+
+
+
+ | Timezone |
+ Commits |
+
+ | +0100 |
+ 56 |
+
+
+ | +0200 |
+ 20 |
+
+
+
+
diff --git a/examples/gitstats/arrow-down.gif b/examples/gitstats/arrow-down.gif
new file mode 100644
index 00000000..997f02f6
Binary files /dev/null and b/examples/gitstats/arrow-down.gif differ
diff --git a/examples/gitstats/arrow-none.gif b/examples/gitstats/arrow-none.gif
new file mode 100644
index 00000000..d011a499
Binary files /dev/null and b/examples/gitstats/arrow-none.gif differ
diff --git a/examples/gitstats/arrow-up.gif b/examples/gitstats/arrow-up.gif
new file mode 100644
index 00000000..15eabb35
Binary files /dev/null and b/examples/gitstats/arrow-up.gif differ
diff --git a/examples/gitstats/authors.html b/examples/gitstats/authors.html
new file mode 100644
index 00000000..9eaa332d
--- /dev/null
+++ b/examples/gitstats/authors.html
@@ -0,0 +1,167 @@
+
+
+
+
+ GitStats - RF2
+
+
+
+
+
+ Authors
+
+
+
+
+ | Author |
+ Commits (%) |
+ + lines |
+ - lines |
+ First commit |
+ Last commit |
+ Age |
+ Active days |
+ # by commits |
+
+
+ | Attila Szabolics |
+ 60 (78.95%) |
+ 5835 |
+ 2215 |
+ 2016-01-17 |
+ 2016-04-14 |
+ 87 days, 13:01:01 |
+ 22 |
+ 1 |
+
+
+ | berika |
+ 11 (14.47%) |
+ 1487 |
+ 349 |
+ 2016-02-02 |
+ 2016-03-04 |
+ 30 days, 23:03:52 |
+ 7 |
+ 2 |
+
+
+ | Gergő Balogh |
+ 4 (5.26%) |
+ 8 |
+ 6 |
+ 2014-04-08 |
+ 2017-02-16 |
+ 1045 days, 5:33:20 |
+ 3 |
+ 3 |
+
+
+ | Balogh Gergõ |
+ 1 (1.32%) |
+ 0 |
+ 0 |
+ 2016-01-18 |
+ 2016-01-18 |
+ 0:00:00 |
+ 1 |
+ 4 |
+
+
+
+
+
+ | Month |
+ Author |
+ Commits (%) |
+ Next top 5 |
+
+
+ | 2017-02 |
+ Gergő Balogh |
+ 2 (100.00% of 2) |
+ |
+
+
+ | 2016-04 |
+ Attila Szabolics |
+ 11 (100.00% of 11) |
+ |
+
+
+ | 2016-03 |
+ Attila Szabolics |
+ 22 (88.00% of 25) |
+ berika |
+
+
+ | 2016-02 |
+ Attila Szabolics |
+ 22 (73.33% of 30) |
+ berika |
+
+
+ | 2016-01 |
+ Attila Szabolics |
+ 5 (71.43% of 7) |
+ Gergő Balogh, Balogh Gergõ |
+
+
+ | 2014-04 |
+ Gergő Balogh |
+ 1 (100.00% of 1) |
+ |
+
+
+
+
+
+ | Year |
+ Author |
+ Commits (%) |
+ Next top 5 |
+
+
+ | 2017 |
+ Gergő Balogh |
+ 2 (100.00% of 2) |
+ |
+
+
+ | 2016 |
+ Attila Szabolics |
+ 60 (82.19% of 73) |
+ berika, Gergő Balogh, Balogh Gergõ |
+
+
+ | 2014 |
+ Gergő Balogh |
+ 1 (100.00% of 1) |
+ |
+
+
+
+
+
+ | Domains |
+ Total (%) |
+
+
+ | inf.u-szeged.hu |
+ 72 (94.74%) |
+
+
+ | gmail.com |
+ 4 (5.26%) |
+
+
+
diff --git a/examples/gitstats/commits_by_year.dat b/examples/gitstats/commits_by_year.dat
new file mode 100644
index 00000000..d047c5d9
--- /dev/null
+++ b/examples/gitstats/commits_by_year.dat
@@ -0,0 +1,3 @@
+2014 1
+2016 73
+2017 2
diff --git a/examples/gitstats/commits_by_year.plot b/examples/gitstats/commits_by_year.plot
new file mode 100644
index 00000000..b2577aa4
--- /dev/null
+++ b/examples/gitstats/commits_by_year.plot
@@ -0,0 +1,10 @@
+set terminal svg
+set size 1.0,0.5
+
+set output 'commits_by_year.svg'
+unset key
+set xtics 1 rotate by 90
+set grid y
+set ylabel "Commits"
+set yrange [0:]
+plot 'commits_by_year.dat' using 1:2:(0.5) w boxes fs solid
diff --git a/examples/gitstats/commits_by_year_month.dat b/examples/gitstats/commits_by_year_month.dat
new file mode 100644
index 00000000..af627be9
--- /dev/null
+++ b/examples/gitstats/commits_by_year_month.dat
@@ -0,0 +1,6 @@
+2014-04 1
+2016-01 7
+2016-02 30
+2016-03 25
+2016-04 11
+2017-02 2
diff --git a/examples/gitstats/commits_by_year_month.plot b/examples/gitstats/commits_by_year_month.plot
new file mode 100644
index 00000000..f819b176
--- /dev/null
+++ b/examples/gitstats/commits_by_year_month.plot
@@ -0,0 +1,13 @@
+set terminal svg
+set size 1.0,0.5
+
+set output 'commits_by_year_month.svg'
+unset key
+set xdata time
+set timefmt "%Y-%m"
+set format x "%Y-%m"
+set xtics rotate by 90 15768000
+set bmargin 5
+set grid y
+set ylabel "Commits"
+plot 'commits_by_year_month.dat' using 1:2:(0.5) w boxes fs solid
diff --git a/examples/gitstats/day_of_week.dat b/examples/gitstats/day_of_week.dat
new file mode 100644
index 00000000..b3425c60
--- /dev/null
+++ b/examples/gitstats/day_of_week.dat
@@ -0,0 +1,7 @@
+1 8
+2 6
+3 10
+4 31
+5 16
+6 2
+7 3
diff --git a/examples/gitstats/day_of_week.plot b/examples/gitstats/day_of_week.plot
new file mode 100644
index 00000000..dcfe6abc
--- /dev/null
+++ b/examples/gitstats/day_of_week.plot
@@ -0,0 +1,10 @@
+set terminal svg
+set size 1.0,0.5
+
+set output 'day_of_week.svg'
+unset key
+set xrange [0.5:7.5]
+set xtics 1
+set grid y
+set ylabel "Commits"
+plot 'day_of_week.dat' using 1:2:(0.5) w boxes fs solid
diff --git a/examples/gitstats/domains.dat b/examples/gitstats/domains.dat
new file mode 100644
index 00000000..dfac244a
--- /dev/null
+++ b/examples/gitstats/domains.dat
@@ -0,0 +1,2 @@
+inf.u-szeged.hu 1 72
+gmail.com 2 4
diff --git a/examples/gitstats/domains.plot b/examples/gitstats/domains.plot
new file mode 100644
index 00000000..fdd0597f
--- /dev/null
+++ b/examples/gitstats/domains.plot
@@ -0,0 +1,9 @@
+set terminal svg
+set size 1.0,0.5
+
+set output 'domains.svg'
+unset key
+unset xtics
+set grid y
+set ylabel "Commits"
+plot 'domains.dat' using 2:3:(0.5) with boxes fs solid, '' using 2:3:1 with labels rotate by 45 offset 0,1
diff --git a/examples/gitstats/files.html b/examples/gitstats/files.html
new file mode 100644
index 00000000..7196bc61
--- /dev/null
+++ b/examples/gitstats/files.html
@@ -0,0 +1,107 @@
+
+
+
+
+ GitStats - RF2
+
+
+
+
+
+ Files
+
+
+ - Total files
+ - 164
+ - Total lines
+ - 4205
+ - Average file size
+ - 2564.02 bytes
+
+
+
+
+
+
+ | Extension |
+ Files (%) |
+ Lines (%) |
+ Lines/file |
+
+
+ |
+ 6 (3.66%) |
+ 30 (0.71%) |
+ 5 |
+
+
+ | classpath |
+ 5 (3.05%) |
+ 178 (4.23%) |
+ 35 |
+
+
+ | csv |
+ 1 (0.61%) |
+ 170 (4.04%) |
+ 170 |
+
+
+ | jar |
+ 2 (1.22%) |
+ 355 (8.44%) |
+ 177 |
+
+
+ | java |
+ 122 (74.39%) |
+ 7925 (188.47%) |
+ 64 |
+
+
+ | md |
+ 1 (0.61%) |
+ 8 (0.19%) |
+ 8 |
+
+
+ | project |
+ 6 (3.66%) |
+ 132 (3.14%) |
+ 22 |
+
+
+ | properties |
+ 2 (1.22%) |
+ 93 (2.21%) |
+ 46 |
+
+
+ | txt |
+ 4 (2.44%) |
+ 864 (20.55%) |
+ 216 |
+
+
+ | xml |
+ 13 (7.93%) |
+ 2856 (67.92%) |
+ 219 |
+
+
+ | xsd |
+ 1 (0.61%) |
+ 49 (1.17%) |
+ 49 |
+
+
+
diff --git a/examples/gitstats/files_by_date.dat b/examples/gitstats/files_by_date.dat
new file mode 100644
index 00000000..66c43008
--- /dev/null
+++ b/examples/gitstats/files_by_date.dat
@@ -0,0 +1,46 @@
+2014-04-08 1
+2016-01-11 1
+2016-01-17 115
+2016-01-18 111
+2016-01-18 115
+2016-01-18 117
+2016-02-02 130
+2016-02-04 130
+2016-02-04 131
+2016-02-05 130
+2016-02-17 131
+2016-02-22 131
+2016-02-22 132
+2016-02-23 131
+2016-02-24 131
+2016-02-24 136
+2016-02-25 131
+2016-02-25 138
+2016-02-25 139
+2016-02-26 139
+2016-02-27 139
+2016-02-27 142
+2016-02-28 142
+2016-03-01 141
+2016-03-01 142
+2016-03-04 143
+2016-03-09 145
+2016-03-11 145
+2016-03-11 146
+2016-03-16 147
+2016-03-16 149
+2016-03-16 152
+2016-03-17 152
+2016-03-17 153
+2016-03-18 153
+2016-03-30 157
+2016-03-31 158
+2016-03-31 159
+2016-03-31 160
+2016-03-31 162
+2016-04-01 162
+2016-04-04 163
+2016-04-07 163
+2016-04-08 163
+2016-04-14 163
+2017-02-16 163
diff --git a/examples/gitstats/files_by_date.plot b/examples/gitstats/files_by_date.plot
new file mode 100644
index 00000000..62e8a671
--- /dev/null
+++ b/examples/gitstats/files_by_date.plot
@@ -0,0 +1,14 @@
+set terminal svg
+set size 1.0,0.5
+
+set output 'files_by_date.svg'
+unset key
+set xdata time
+set timefmt "%Y-%m-%d"
+set format x "%Y-%m-%d"
+set grid y
+set ylabel "Files"
+set xtics rotate by 90
+set ytics autofreq
+set bmargin 6
+plot 'files_by_date.dat' using 1:2 w steps
diff --git a/examples/gitstats/gitstats.cache b/examples/gitstats/gitstats.cache
new file mode 100644
index 00000000..33ef9b0e
Binary files /dev/null and b/examples/gitstats/gitstats.cache differ
diff --git a/examples/gitstats/gitstats.css b/examples/gitstats/gitstats.css
new file mode 100644
index 00000000..8c9ac30a
--- /dev/null
+++ b/examples/gitstats/gitstats.css
@@ -0,0 +1,142 @@
+/**
+ * GitStats - default style
+ */
+body{
+ color: black;
+ background-color: #dfd;
+}
+
+dt{
+ font-weight: bold;
+ float: left;
+ margin-right: 1em;
+}
+
+dt:after{
+ content: ': ';
+}
+
+dd{
+ display: block;
+ clear: left;
+}
+
+table{
+ border: 1px solid black;
+ border-collapse: collapse;
+ font-size: 80%;
+ margin-bottom: 1em;
+}
+
+table.noborders{
+ border: none;
+}
+
+table.noborders td{
+ border: none;
+}
+
+.vtable{
+ float: right;
+ clear: both;
+}
+
+table.tags td{
+ vertical-align: top;
+}
+
+th{
+ background-color: #ddf;
+}
+
+th a{
+ text-decoration: none;
+}
+
+tr:hover{
+ background-color: #ddf;
+}
+
+td{
+ border: 1px solid black;
+ padding: 0.2em;
+ padding-left: 0.3em;
+ padding-right: 0.2em;
+}
+
+/* Navigation bar; tabbed style */
+.nav{
+ border-bottom: 1px solid black;
+ padding: 0.3em;
+}
+
+.nav ul{
+ list-style-type: none;
+ display: inline;
+ margin: 0;
+ padding: 0;
+}
+
+.nav li{
+ display: inline;
+}
+
+.nav li a{
+ padding: 0.3em;
+ text-decoration: none;
+ color: black;
+ border: 1px solid black;
+ margin: 0.5em;
+ background-color: #ddf;
+}
+
+.nav li a:hover{
+ background-color: #ddd;
+ border-bottom: 1px solid #ddf;
+}
+
+img{
+ border: 1px solid black;
+ padding: 0.5em;
+ background-color: white;
+}
+
+th img{
+ border: 0px;
+ padding: 0px;
+ background-color: #ddf;
+}
+
+h1 a,
+h2 a{
+ color: black;
+ text-decoration: none;
+}
+
+h1:hover a:after,
+h2:hover a:after{
+ content: '¶';
+ color: #555;
+}
+
+h1{
+ font-size: x-large;
+}
+
+h2{
+ background-color: #564;
+ border: 1px solid black;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ color: white;
+ font-size: large;
+ clear: both;
+}
+
+h2 a{
+ color: white;
+}
+
+.moreauthors{
+ font-size: 80%;
+}
diff --git a/examples/gitstats/hour_of_day.dat b/examples/gitstats/hour_of_day.dat
new file mode 100644
index 00000000..389abd35
--- /dev/null
+++ b/examples/gitstats/hour_of_day.dat
@@ -0,0 +1,24 @@
+1 0
+2 0
+3 0
+4 0
+5 0
+6 0
+7 0
+8 0
+9 2
+10 7
+11 17
+12 7
+13 6
+14 4
+15 9
+16 8
+17 8
+18 3
+19 0
+20 0
+21 0
+22 3
+23 0
+24 2
diff --git a/examples/gitstats/hour_of_day.plot b/examples/gitstats/hour_of_day.plot
new file mode 100644
index 00000000..02c9243c
--- /dev/null
+++ b/examples/gitstats/hour_of_day.plot
@@ -0,0 +1,10 @@
+set terminal svg
+set size 1.0,0.5
+
+set output 'hour_of_day.svg'
+unset key
+set xrange [0.5:24.5]
+set xtics 4
+set grid y
+set ylabel "Commits"
+plot 'hour_of_day.dat' using 1:2:(0.5) w boxes fs solid
diff --git a/examples/gitstats/index.html b/examples/gitstats/index.html
new file mode 100644
index 00000000..3131ad4f
--- /dev/null
+++ b/examples/gitstats/index.html
@@ -0,0 +1,42 @@
+
+
+
+
+ GitStats - RF2
+
+
+
+
+
+ GitStats - RF2
+
+
+ - Project name
+ - RF2
+ - Generated
+ - 2018-03-22 09:49:02 (in 26 seconds)
+ - Generator
+ - GitStats (version 0432da3)
+ - Report Period
+ - 2014-04-08 09:25:21 to 2017-02-16 14:58:41
+ - Age
+ - 1046 days, 30 active days (2.87%)
+ - Total Files
+ - 164
+ - Total Lines of Code
+ - 4205 (6412 added, 2207 removed)
+ - Total Commits
+ - 76 (average 2.5 commits per active day, 0.1 per all days)
+ - Authors
+ - 4
+
+
diff --git a/examples/gitstats/lines.html b/examples/gitstats/lines.html
new file mode 100644
index 00000000..c1166796
--- /dev/null
+++ b/examples/gitstats/lines.html
@@ -0,0 +1,28 @@
+
+
+
+
+ GitStats - RF2
+
+
+
+
+
+ Lines
+
+
+ - Total lines
+ - 4205
+
+
+
+
diff --git a/examples/gitstats/lines_of_code.dat b/examples/gitstats/lines_of_code.dat
new file mode 100644
index 00000000..3fa5f6e5
--- /dev/null
+++ b/examples/gitstats/lines_of_code.dat
@@ -0,0 +1,76 @@
+1396941921 0
+1452504811 0
+1453060938 0
+1453068424 0
+1453102121 0
+1453104098 -217
+1453126093 -217
+1453130990 -217
+1454405253 442
+1454427553 434
+1454576709 434
+1454579063 462
+1454582958 431
+1454594118 401
+1454597133 415
+1454598586 415
+1454678086 415
+1454679615 415
+1455709118 518
+1456136886 582
+1456141544 2837
+1456242593 2874
+1456316164 2987
+1456327721 2990
+1456392069 3098
+1456392194 3098
+1456393248 3098
+1456409001 3076
+1456412351 3076
+1456416701 3062
+1456418280 3062
+1456484025 3074
+1456485496 3074
+1456489011 3074
+1456519663 3106
+1456580378 3156
+1456603758 3256
+1456696878 3276
+1456842492 3276
+1456849729 3399
+1457080285 3548
+1457533152 3595
+1457703860 3662
+1457707720 3713
+1458128143 3727
+1458131273 3739
+1458132805 3795
+1458141379 3795
+1458142029 3795
+1458204586 3814
+1458205356 3813
+1458222783 3880
+1458226862 3944
+1458292814 3944
+1458297739 3944
+1459327406 3921
+1459413328 3989
+1459414771 4010
+1459416626 4010
+1459418656 4058
+1459420073 4058
+1459426128 4063
+1459430029 4093
+1459498049 4088
+1459499948 4088
+1459502395 4106
+1459503115 4106
+1459758884 4185
+1460016249 4185
+1460101920 4197
+1460616408 4197
+1460619190 4204
+1460619943 4205
+1460620999 4205
+1487253511 4205
+1487253521 4205
diff --git a/examples/gitstats/lines_of_code.plot b/examples/gitstats/lines_of_code.plot
new file mode 100644
index 00000000..7bca54c9
--- /dev/null
+++ b/examples/gitstats/lines_of_code.plot
@@ -0,0 +1,13 @@
+set terminal svg
+set size 1.0,0.5
+
+set output 'lines_of_code.svg'
+unset key
+set xdata time
+set timefmt "%s"
+set format x "%Y-%m-%d"
+set grid y
+set ylabel "Lines"
+set xtics rotate by 90
+set bmargin 6
+plot 'lines_of_code.dat' using 1:2 w lines
diff --git a/examples/gitstats/month_of_year.dat b/examples/gitstats/month_of_year.dat
new file mode 100644
index 00000000..55894acc
--- /dev/null
+++ b/examples/gitstats/month_of_year.dat
@@ -0,0 +1,12 @@
+1 7
+2 32
+3 25
+4 12
+5 0
+6 0
+7 0
+8 0
+9 0
+10 0
+11 0
+12 0
diff --git a/examples/gitstats/month_of_year.plot b/examples/gitstats/month_of_year.plot
new file mode 100644
index 00000000..c2cf2949
--- /dev/null
+++ b/examples/gitstats/month_of_year.plot
@@ -0,0 +1,10 @@
+set terminal svg
+set size 1.0,0.5
+
+set output 'month_of_year.svg'
+unset key
+set xrange [0.5:12.5]
+set xtics 1
+set grid y
+set ylabel "Commits"
+plot 'month_of_year.dat' using 1:2:(0.5) w boxes fs solid
diff --git a/examples/gitstats/sortable.js b/examples/gitstats/sortable.js
new file mode 100644
index 00000000..006a12f8
--- /dev/null
+++ b/examples/gitstats/sortable.js
@@ -0,0 +1,340 @@
+/*
+Table sorting script by Joost de Valk, check it out at http://www.joostdevalk.nl/code/sortable-table/.
+Based on a script from http://www.kryogenix.org/code/browser/sorttable/.
+Distributed under the MIT license: http://www.kryogenix.org/code/browser/licence.html .
+
+Copyright (c) 1997-2007 Stuart Langridge, Joost de Valk.
+
+Version 1.5.7
+ */
+
+/* You can change these values */
+var image_path = "";
+var image_up = "arrow-up.gif";
+var image_down = "arrow-down.gif";
+var image_none = "arrow-none.gif";
+var europeandate = true;
+var alternate_row_colors = true;
+
+/* Don't change anything below this unless you know what you're doing */
+addEvent(window, "load", sortables_init);
+
+var SORT_COLUMN_INDEX;
+var thead = false;
+
+function sortables_init() {
+ // Find all tables with class sortable and make them sortable
+ if (! document.getElementsByTagName) return;
+ tbls = document.getElementsByTagName("table");
+ for (ti = 0; ti < tbls.length; ti++) {
+ thisTbl = tbls[ti];
+ if (((' ' + thisTbl.className + ' ').indexOf("sortable") != -1) && (thisTbl.id)) {
+ ts_makeSortable(thisTbl);
+ }
+ }
+}
+
+function ts_makeSortable(t) {
+ if (t.rows && t.rows.length > 0) {
+ if (t.tHead && t.tHead.rows.length > 0) {
+ var firstRow = t.tHead.rows[t.tHead.rows.length -1];
+ thead = true;
+ } else {
+ var firstRow = t.rows[0];
+ }
+ }
+ if (! firstRow) return;
+
+ // We have a first row: assume it's the header, and make its contents clickable links
+ for (var i = 0; i < firstRow.cells.length; i++) {
+ var cell = firstRow.cells[i];
+ var txt = ts_getInnerText(cell);
+ if (cell.className != "unsortable" && cell.className.indexOf("unsortable") == -1) {
+ cell.innerHTML = '';
+ }
+ }
+ if (alternate_row_colors) {
+ alternate(t);
+ }
+}
+
+function ts_getInnerText(el) {
+ if (typeof el == "string") return el;
+ if (typeof el == "undefined") {
+ return el
+ };
+ if (el.innerText) return el.innerText;
+ //Not needed but it is faster
+ var str = "";
+
+ var cs = el.childNodes;
+ var l = cs.length;
+ for (var i = 0; i < l; i++) {
+ switch (cs[i].nodeType) {
+ case 1: //ELEMENT_NODE
+ str += ts_getInnerText(cs[i]);
+ break;
+ case 3: //TEXT_NODE
+ str += cs[i].nodeValue;
+ break;
+ }
+ }
+ return str;
+}
+
+function ts_resortTable(lnk, clid) {
+ var span;
+ for (var ci = 0; ci < lnk.childNodes.length; ci++) {
+ if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci];
+ }
+ var spantext = ts_getInnerText(span);
+ var td = lnk.parentNode;
+ var column = clid || td.cellIndex;
+ var t = getParent(td, 'TABLE');
+ // Work out a type for the column
+ if (t.rows.length <= 1) return;
+ var itm = "";
+ var i = 1;
+ while (itm == "" && i < t.tBodies[0].rows.length) {
+ var itm = ts_getInnerText(t.tBodies[0].rows[i].cells[column]);
+ itm = trim(itm);
+ if (itm.substr(0, 4) == "