<commit_before><!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Force Directed Graph</title>
        <script type="text/javascript" src="https://d3js.org/d3.v4.min.js"></script>
        <style>
            .links line {
              stroke: #aaa;
            }

            .nodes circle {
              pointer-events: all;
              stroke: none;
              stroke-width: 40px;
            }
        </style>
    </head>
    <body>
        <svg width="960" height="600"></svg>

        <script type="text/javascript">
            var svg = d3.select("svg"),
            width = +svg.attr("width"),
            height = +svg.attr("height");

            var simulation = d3.forceSimulation();
            
            d3.json("friends.json", function(error, graph) {
              if (error) throw error;

              var link = svg.append("g")
                .attr("class", "links")
                .selectAll("line")
                .data(graph.links)
                .enter().append("line");

              var node = svg.append("g")
                .attr("class", "nodes")
                .selectAll("circle")
                .data(graph.nodes)
                .enter().append("circle")
                  .attr("r", 3);

              
              simulation
                  .nodes(graph.nodes)
                  .on("tick", ticked);

              simulation
                  .force("link", d3.forceLink().id(function(d) { return d.id; }))
                  .links(graph.links);

              function ticked() {
                link
                    .attr("x1", function(d) { return d.source.x; })
                    .attr("y1", function(d) { return d.source.y; })
                    .attr("x2", function(d) { return d.target.x; })
                    .attr("y2", function(d) { return d.target.y; });

                node
                    .attr("cx", function(d) { return d.x; })
                    .attr("cy", function(d) { return d.y; });
              }

            });             
        </script>
    </body>
</html>   
<commit_msg>some css<commit_after><!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Force Directed Graph</title>
        <script type="text/javascript" src="https://d3js.org/d3.v4.min.js"></script>
        <style>
            .links line {
              stroke: #aaa;
            }

            .nodes circle {
              pointer-events: all;
              stroke: none;
              stroke-width: 40px;
            }
        </style>
    </head>
    <body>
        <svg width="960" height="600"></svg>

        <script type="text/javascript">
            var svg = d3.select("svg"),
            width = +svg.attr("width"),
            height = +svg.attr("height");

            var simulation = d3.forceSimulation().force("link", d3.forceLink().id(function(d) { return d.id; }));
            
            d3.json("friends.json", function(error, graph) {
              if (error) throw error;

              var link = svg.append("g")
                .attr("class", "links")
                .selectAll("line")
                .data(graph.links)
                .enter().append("line");

              var node = svg.append("g")
                .attr("class", "nodes")
                .selectAll("circle")
                .data(graph.nodes)
                .enter().append("circle")
                  .attr("r", 3);

              
              simulation
                  .nodes(graph.nodes)
                  .on("tick", ticked);

              simulation
                  .force("link")
                  .links(graph.links);

              function ticked() {
                link
                    .attr("x1", function(d) { return d.source.x; })
                    .attr("y1", function(d) { return d.source.y; })
                    .attr("x2", function(d) { return d.target.x; })
                    .attr("y2", function(d) { return d.target.y; });

                node
                    .attr("cx", function(d) { return d.x; })
                    .attr("cy", function(d) { return d.y; });
              }

            });             
        </script>
    </body>
</html>   

{'fraction_non_alphanumeric': 0.15546119367775418, 'fraction_numerical': 0.009907997169143666, 'mean_word_length': 1.1511922881785897, 'pattern_counts': {'":': 0, '<': 39, '<?xml version=': 0, '>': 39, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2322785', 'n_tokens_mistral': 1231, 'n_tokens_neox': 1149, 'n_words': 221}