<commit_before>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Personal Kanban</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <!-- Might be handy for deeper UX -->
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="<KEY>" crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="<KEY>" crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="<KEY>" crossorigin="anonymous"></script>

    <script src="js/bootstrap-wysiwyg.js"></script>
    <script src="js/jquery.hotkeys.js"></script>

    <style>
    body {background: white;}
    .editor {
      width: 100%;
      font-weight: 200;
      font-size: 18px;
      line-height: 18px;
      max-height: 250px;
    	height: 250px;
    	background-color: white;
    	border-collapse: separate;
    	border: 1px solid rgb(204, 204, 204);
    	padding: 4px;
      box-sizing: content-box;
      overflow: scroll;
    }
    .todo {}
    .doing {font-size: 24px; line-height: 30px;}
    .done {text-decoration: line-through;}
    .work textarea {height: 250px;}
    .home textarea {height: 150px;}
    .people textarea {height: 200px;}
    .work .cell {height: 250px;}
    .home .cell {height: 150px;}
    .people .cell, .people .cell .editor {height: 200px;}
    .container {width: 100%;}
    .cell {padding: 0px; margin: 0px;}
    .navbar {margin-bottom: 0px; font-family: monospace;}
    #last-saved{height: 30px; }
    .cell .badge {position: absolute; right: 0; margin: 2px;}
    </style>

    <script>
    // helper function to gracefully handle lack of LocalStroage support
    function withLocalStorageSupport(fn) {
      // Check browser support
      if (typeof(Storage) !== "undefined") {
        fn()
      } else {
        alert("No local storage");
      }
    }

    // Persist notes
    function save() {
      withLocalStorageSupport(function(){
        console.log("Saving state to localStorage")
        var elements = document.querySelectorAll('.editor');
        Array.prototype.forEach.call(elements, function(el, i){
          if (el.tagName == 'DIV') {
            localStorage.setItem(el.id, el.innerHTML);
          } else {
            localStorage.setItem(el.id, el.value);
          }
        });
        var currentColor = $('.navbar-brand')[0].style['color'];
        $(".navbar-brand").animate({color: "#99ff99"}, 150 ).animate({color: currentColor}, 100);
      });
    }

    // Load notes
    function load() {
      withLocalStorageSupport(function() {
        console.log("Loading state from localStorage");
        var elements = document.querySelectorAll('.editor');
        Array.prototype.forEach.call(elements, function(el, i){
          if (el.tagName == 'DIV') {
            el.innerHTML = localStorage.getItem(el.id);
          } else {
            el.value = localStorage.getItem(el.id);
          }
        });
      });
    }

    // Helper function for running code on page load.
    function ready(fn) {
      if (document.readyState != 'loading'){
        fn();
      } else {
        document.addEventListener('DOMContentLoaded', fn);
      }
    }

    function changeEventHandler(event) {
      updateLineCount(event.target.parentElement)
    }

    function updateLineCount(cell) {
      var textarea = cell.querySelectorAll('textarea')[0]
      if (textarea) {
        var badge = cell.querySelectorAll('.badge')[0]
        var line_count = $.trim(textarea.value).split("\n").filter(function(el){
          return el != '';
        }).length;
        badge.innerHTML = line_count
      }
    }

    ready(function(){
      // Load notes
      load();

      // Save regularly
      setInterval(save, 10000);


      var elements = document.querySelectorAll('.cell');
      Array.prototype.forEach.call(elements, function(cell, i){
        updateLineCount(cell)
      });

      // Watch for note changes so we can update counter badges
      var elements = document.querySelectorAll('textarea');
      Array.prototype.forEach.call(elements, function(textarea, i){
        textarea.addEventListener('input', changeEventHandler);
      });

      $(window).keydown(function (e){
        if ((e.metaKey || e.ctrlKey) && e.keyCode == 83) { /*ctrl+s or command+s*/
          console.log("Trapped ctrl-s")
          save();
          e.preventDefault();
          return false;
        }
      });

      $(document).on('keydown', null, 'ctrl+]', function(e) {
        console.log('Caught actgion')
      });

      $('div.editor').wysiwyg({
        hotKeys: {
          'ctrl+b meta+b': 'bold',
          'ctrl+u meta+u': 'insertunorderedlist',
          'tab': 'insertunorderedlist',
          'shift+tab': 'insertunorderedlist'
        }
      });
    });
    </script>
  </head>

  <body>

    <nav class="navbar navbar-inverse">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Personal Kanban</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <h4 id="last-saved" class="navbar-right navbar-brand"></h4>
        </div><!--/.navbar-collapse -->
      </div>
    </nav>

    <div class="top"></div>

    <div class="container">
      <div class="row work">
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <div id="work_todo" class="editor todo">WAITING TO LOAD DATA</div>
        </div>
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <textarea id="work_doing" class="editor doing">WAITING TO LOAD DATA</textarea>
       </div>
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <textarea id="work_done" class="editor done">WAITING TO LOAD DATA</textarea>
        </div>
      </div>
      <!-- Example row of columns -->
      <div class="row home">
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <div id="home_todo" class="editor todo">WAITING TO LOAD DATA</div>
        </div>
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <textarea id="home_doing" class="editor doing">WAITING TO LOAD DATA</textarea>
       </div>
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <textarea id="home_done" class="editor done">WAITING TO LOAD DATA</textarea>
        </div>
      </div>

      <!-- Example row of columns -->
      <div class="row people">
        <div class="cell col-md-12">
          <span class="badge badge-info"></span>
          <div id="context_people" class="editor"></div>
        </div>
      </div>
    </div> <!-- /container -->


  </body>
</html>
<commit_msg>Cleaner row heights.<commit_after>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Personal Kanban</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <!-- Might be handy for deeper UX -->
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="<KEY>" crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="<KEY>" crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="<KEY>" crossorigin="anonymous"></script>

    <script src="js/bootstrap-wysiwyg.js"></script>
    <script src="js/jquery.hotkeys.js"></script>

    <style>
    body {background: white;}
    .editor {
      width: 100%;
      font-weight: 200;
      font-size: 18px;
      line-height: 18px;
    	height: 100%;
    	background-color: white;
    	border-collapse: separate;
    	border: 1px solid rgb(204, 204, 204);
    	padding: 4px;
      box-sizing: content-box;
      overflow: scroll;
    }
    .todo {}
    .doing {font-size: 24px; line-height: 30px;}
    .done {text-decoration: line-through;}
    .cell {height: 100%;}
    .work {height: 300px;}
    .home {height: 150px;}
    .people {height: 150px;}
    .container {width: 100%;}
    .cell {padding: 0px; margin: 0px;}
    .navbar {margin-bottom: 0px; font-family: monospace;}
    .cell .badge {position: absolute; right: 0; margin: 2px;}
    </style>

    <script>
    // helper function to gracefully handle lack of LocalStroage support
    function withLocalStorageSupport(fn) {
      // Check browser support
      if (typeof(Storage) !== "undefined") {
        fn()
      } else {
        alert("No local storage");
      }
    }

    // Persist notes
    function save() {
      withLocalStorageSupport(function(){
        console.log("Saving state to localStorage")
        var elements = document.querySelectorAll('.editor');
        Array.prototype.forEach.call(elements, function(el, i){
          if (el.tagName == 'DIV') {
            localStorage.setItem(el.id, el.innerHTML);
          } else {
            localStorage.setItem(el.id, el.value);
          }
        });
        var currentColor = $('.navbar-brand')[0].style['color'];
        $(".navbar-brand").animate({color: "#99ff99"}, 150 ).animate({color: currentColor}, 100);
      });
    }

    // Load notes
    function load() {
      withLocalStorageSupport(function() {
        console.log("Loading state from localStorage");
        var elements = document.querySelectorAll('.editor');
        Array.prototype.forEach.call(elements, function(el, i){
          if (el.tagName == 'DIV') {
            el.innerHTML = localStorage.getItem(el.id);
          } else {
            el.value = localStorage.getItem(el.id);
          }
        });
      });
    }

    // Helper function for running code on page load.
    function ready(fn) {
      if (document.readyState != 'loading'){
        fn();
      } else {
        document.addEventListener('DOMContentLoaded', fn);
      }
    }

    function changeEventHandler(event) {
      updateLineCount(event.target.parentElement)
    }

    function updateLineCount(cell) {
      var textarea = cell.querySelectorAll('textarea')[0]
      if (textarea) {
        var badge = cell.querySelectorAll('.badge')[0]
        var line_count = $.trim(textarea.value).split("\n").filter(function(el){
          return el != '';
        }).length;
        badge.innerHTML = line_count
      }
    }

    ready(function(){
      // Load notes
      load();

      // Save regularly
      setInterval(save, 10000);


      var elements = document.querySelectorAll('.cell');
      Array.prototype.forEach.call(elements, function(cell, i){
        updateLineCount(cell)
      });

      // Watch for note changes so we can update counter badges
      var elements = document.querySelectorAll('textarea');
      Array.prototype.forEach.call(elements, function(textarea, i){
        textarea.addEventListener('input', changeEventHandler);
      });

      $(window).keydown(function (e){
        if ((e.metaKey || e.ctrlKey) && e.keyCode == 83) { /*ctrl+s or command+s*/
          console.log("Trapped ctrl-s")
          save();
          e.preventDefault();
          return false;
        }
      });

      $(document).on('keydown', null, 'ctrl+]', function(e) {
        console.log('Caught actgion')
      });

      $('div.editor').wysiwyg({
        hotKeys: {
          'ctrl+b meta+b': 'bold',
          'ctrl+u meta+u': 'insertunorderedlist',
          'tab': 'insertunorderedlist',
          'shift+tab': 'insertunorderedlist'
        }
      });
    });
    </script>
  </head>

  <body>

    <nav class="navbar navbar-inverse">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Personal Kanban</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <h4 id="last-saved" class="navbar-right navbar-brand"></h4>
        </div><!--/.navbar-collapse -->
      </div>
    </nav>

    <div class="top"></div>

    <div class="container">
      <div class="row work">
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <div id="work_todo" class="editor todo">WAITING TO LOAD DATA</div>
        </div>
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <textarea id="work_doing" class="editor doing">WAITING TO LOAD DATA</textarea>
       </div>
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <textarea id="work_done" class="editor done">WAITING TO LOAD DATA</textarea>
        </div>
      </div>
      <!-- Example row of columns -->
      <div class="row home">
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <div id="home_todo" class="editor todo">WAITING TO LOAD DATA</div>
        </div>
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <textarea id="home_doing" class="editor doing">WAITING TO LOAD DATA</textarea>
       </div>
        <div class="cell col-md-4">
          <span class="badge badge-info"></span>
          <textarea id="home_done" class="editor done">WAITING TO LOAD DATA</textarea>
        </div>
      </div>

      <!-- Example row of columns -->
      <div class="row people">
        <div class="cell col-md-12">
          <span class="badge badge-info"></span>
          <div id="context_people" class="editor"></div>
        </div>
      </div>
    </div> <!-- /container -->


  </body>
</html>

{'fraction_non_alphanumeric': 0.16557169930511687, 'fraction_numerical': 0.013581806696146557, 'mean_word_length': 2.4207000864304233, 'pattern_counts': {'":': 0, '<': 237, '<?xml version=': 0, '>': 237, 'https://': 12, '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': '2670508', 'n_tokens_mistral': 5044, 'n_tokens_neox': 4723, 'n_words': 1039}