import { resolve, relative } from 'path'
import visit from 'unist-util-visit'
import { RE_LOCALE } from './i18n'

const DOCS_DIR = resolve(__dirname, '../docs')

export default function attacher () {
  return (tree, { path }) => {
    let localPath = `/${relative(DOCS_DIR, path)}`
    let [, locale] = localPath.match(RE_LOCALE) || []
    if (!locale) {
      return
    }

    visit(tree, 'element', node => {
      let { tagName, properties, properties: { href } } = node
      if (tagName !== 'a' || href.match(/^\w+:\/\//)) {
        return
      }

      if (locale && href.indexOf('/') === 0) {
        properties.href = `/${locale}${href}`
      }
    })
  }
}