# -*- coding: utf-8 -*-
import pelican
import sys

python3 = sys.version_info >= (3, 0, 0)


def init(pelican_object):
    # I have no good idea. Pass settings to replace function.
    global replaces
    replaces = pelican_object.settings.get('REPLACES', ())


def replace(path, context):
    with open(path, 'r') as f:
        s = f.read()
        for src, tgt in replaces:
            if python3:
                s = s.replace(src, tgt)
            else:
                s = s.decode('utf-8').replace(src.decode('utf-8'), tgt.decode('utf-8'))

    with open(path, 'w') as f:
        if python3:
            f.write(s)
        else:
            f.write(s.encode('utf-8'))


def register():
    pelican.signals.initialized.connect(init)
    pelican.signals.content_written.connect(replace)
