<commit_before>import Vue from 'vue'
import '../../dist/clair.css'
import Clair from '../../'

import Header from '../layouts/includes/header.vue'
import Footer from '../layouts/includes/footer.vue'

import RunOnline from '../assets/vue/run-online.vue'

Vue.use(Clair)
Vue.component('c-header', Header)
Vue.component('c-footer', Footer)
Vue.component('c-run-online', RunOnline)
Vue.directive('effect', {
  inserted (el) {
    if (el.parentNode && el.parentNode.parentNode) {
      el.parentNode.parentNode.classList.add('hide-source')
    }
  }
})<commit_msg>docs(directive): more accurate parentNode detection<commit_after>import Vue from 'vue'
import '../../dist/clair.css'
import Clair from '../../'

import Header from '../layouts/includes/header.vue'
import Footer from '../layouts/includes/footer.vue'

import RunOnline from '../assets/vue/run-online.vue'

Vue.use(Clair)
Vue.component('c-header', Header)
Vue.component('c-footer', Footer)
Vue.component('c-run-online', RunOnline)
Vue.directive('effect', {
  inserted (el) {
    let node = el.parentNode

    while (node) {
      if (node.classList.contains('vue-demo-block')) {
        node.classList.add('hide-source')
        break
      }
      node = node.parentNode
    }
  }
})
{'fraction_non_alphanumeric': 0.17580645161290323, 'fraction_numerical': 0.0, 'mean_word_length': 3.5127272727272727, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, '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': '314315', 'n_tokens_mistral': 411, 'n_tokens_neox': 419, 'n_words': 81}