mirror of
https://github.com/adulau/passive-dns-atlas.git
synced 2025-01-04 23:13:17 +00:00
Template for the D3js added
This commit is contained in:
parent
cdf0701b5c
commit
fa207a7546
1 changed files with 225 additions and 0 deletions
225
bin/stats/template.html
Normal file
225
bin/stats/template.html
Normal file
|
@ -0,0 +1,225 @@
|
|||
<!DOCTYPE html>
|
||||
<style>
|
||||
|
||||
text {
|
||||
font: 10px sans-serif;
|
||||
}
|
||||
|
||||
header,
|
||||
footer,
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
p,
|
||||
aside {
|
||||
color: #000;
|
||||
font-family: "PT Sans", sans-serif;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 64px;
|
||||
font-weight: 300;
|
||||
letter-spacing: -2px;
|
||||
margin: .3em 0 .1em 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 2em;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
h2 a {
|
||||
color: #ccc;
|
||||
left: -20px;
|
||||
position: absolute;
|
||||
width: 740px;
|
||||
}
|
||||
|
||||
footer {
|
||||
font-size: small;
|
||||
margin-top: 8em;
|
||||
}
|
||||
|
||||
header aside {
|
||||
margin-top: 80px;
|
||||
}
|
||||
|
||||
header aside,
|
||||
footer aside {
|
||||
color: #636363;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
aside {
|
||||
font-size: small;
|
||||
right: 0;
|
||||
position: absolute;
|
||||
width: 180px;
|
||||
}
|
||||
|
||||
|
||||
.attribution {
|
||||
font-size: small;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
body > p, li > p {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
body > p {
|
||||
width: 920px;
|
||||
}
|
||||
|
||||
body > blockquote {
|
||||
width: 640px;
|
||||
}
|
||||
|
||||
li {
|
||||
width: 680px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: steelblue;
|
||||
}
|
||||
|
||||
a:not(:hover) {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
pre, code, textarea {
|
||||
font-family: "Menlo", monospace;
|
||||
}
|
||||
|
||||
code {
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
textarea {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
body > pre {
|
||||
border-left: solid 2px #ccc;
|
||||
padding-left: 18px;
|
||||
margin: 2em 0 2em -20px;
|
||||
}
|
||||
|
||||
.html .value,
|
||||
.javascript .string,
|
||||
.javascript .regexp {
|
||||
color: #756bb1;
|
||||
}
|
||||
|
||||
.html .tag,
|
||||
.css .tag,
|
||||
.javascript .keyword {
|
||||
color: #3182bd;
|
||||
}
|
||||
|
||||
.comment {
|
||||
color: #636363;
|
||||
}
|
||||
|
||||
.html .doctype,
|
||||
.javascript .number {
|
||||
color: #31a354;
|
||||
}
|
||||
|
||||
.html .attribute,
|
||||
.css .attribute,
|
||||
.javascript .class,
|
||||
.javascript .special {
|
||||
color: #e6550d;
|
||||
}
|
||||
|
||||
svg {
|
||||
font: 10px sans-serif;
|
||||
}
|
||||
|
||||
.axis path, .axis line {
|
||||
fill: none;
|
||||
stroke: #000;
|
||||
shape-rendering: crispEdges;
|
||||
}
|
||||
|
||||
sup, sub {
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
|
||||
blockquote:before {
|
||||
position: absolute;
|
||||
left: 2em;
|
||||
}
|
||||
|
||||
blockquote:after {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
</style>
|
||||
<h2>##FIELD##</h2>
|
||||
<svg width="960" height="960" font-family="sans-serif" font-size="10" text-anchor="middle"></svg>
|
||||
|
||||
<script src="https://d3js.org/d3.v4.min.js"></script>
|
||||
<script src="https://www.foo.be/cve/colorbrewer.js"></script>
|
||||
<script>
|
||||
|
||||
var svg = d3.select("svg"),
|
||||
width = +svg.attr("width"),
|
||||
height = +svg.attr("height");
|
||||
|
||||
var format = d3.format(",d");
|
||||
|
||||
//var color = d3.scaleOrdinal(d3.schemeCategory20c);
|
||||
|
||||
var color = d3.scaleOrdinal().range(colorbrewer.YlOrBr[9]);
|
||||
|
||||
var pack = d3.pack()
|
||||
.size([width, height])
|
||||
.padding(1.5);
|
||||
|
||||
d3.csv("##FIELD##.csv", function(d) {
|
||||
d.value = +d.value;
|
||||
if (d.value) return d;
|
||||
}, function(error, classes) {
|
||||
if (error) throw error;
|
||||
|
||||
var root = d3.hierarchy({children: classes})
|
||||
.sum(function(d) { return d.value; })
|
||||
.each(function(d) {
|
||||
if (id = d.data.id) {
|
||||
var id, i = id.lastIndexOf(".");
|
||||
d.id = id;
|
||||
d.package = id.slice(0, i);
|
||||
d.class = id.slice(i + 1);
|
||||
}
|
||||
});
|
||||
|
||||
var node = svg.selectAll(".node")
|
||||
.data(pack(root).leaves())
|
||||
.enter().append("g")
|
||||
.attr("class", "node")
|
||||
.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
|
||||
|
||||
node.append("circle")
|
||||
.attr("id", function(d) { return d.id; })
|
||||
.attr("r", function(d) { return d.r; })
|
||||
.style("fill", function(d) { return color(d.package); });
|
||||
|
||||
node.append("clipPath")
|
||||
.attr("id", function(d) { return "clip-" + d.id; })
|
||||
.append("use")
|
||||
.attr("xlink:href", function(d) { return "#" + d.id; });
|
||||
|
||||
node.append("text")
|
||||
.text(function(d) { return d.id.substring(0, d.r / 3) ; });
|
||||
node.append("title")
|
||||
.text(function(d) { return d.id + "\n" + format(d.value); });
|
||||
});
|
||||
</script>
|
||||
|
Loading…
Reference in a new issue