Emphasis Generalissimo

장군님의 이름을 강조합니다.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Emphasis Generalissimo
// @namespace    https://twitter.com/fiboooo_
// @version      1.0
// @description  장군님의 이름을 강조합니다.
// @author        Fibon
// @match         https://*/*
// @match         http://*/*
// @exclude       https://www.google.com/*
// @exclude       https://twitter.com/*
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    var generalissimos = ["김일성","김정일","김정은","金日成","金正日","金正恩","Kim Il Sung","Kim Jong Il","Kim Jong Un"];

    function boldifyTextNodes(node) {
        if (node.nodeType === Node.TEXT_NODE) {
            var content = node.nodeValue;

            generalissimos.forEach(function(generalissimo) {
                var regex = new RegExp(generalissimo, 'gi');
                content = content.replace(regex, function(match) {
                    return '<strong>' + match + '</strong>';
                });
            });

            var span = document.createElement('span');
            span.innerHTML = content;
            node.parentNode.replaceChild(span, node);
        } else if (node.nodeType === Node.ELEMENT_NODE) {
            for (var i = 0; i < node.childNodes.length; i++) {
                boldifyTextNodes(node.childNodes[i]);
            }
        }
    }

    boldifyTextNodes(document.body);

})();