{"id":6995,"date":"2023-11-10T16:48:55","date_gmt":"2023-11-10T07:48:55","guid":{"rendered":"https:\/\/engineering.webstudio168.jp\/?p=6995"},"modified":"2023-11-13T01:22:53","modified_gmt":"2023-11-12T16:22:53","slug":"diff-tool","status":"publish","type":"post","link":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/","title":{"rendered":"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_86 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u76ee\u6b21<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%AF%94%E8%BC%83%EF%BC%88Diff%EF%BC%89%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" >\u30c6\u30ad\u30b9\u30c8\u6bd4\u8f03\uff08Diff\uff09\u306b\u3064\u3044\u3066<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#%E7%B0%A1%E6%98%93%E7%94%BB%E5%83%8F%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E6%A9%9F%E8%83%BD%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" >\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u306b\u3064\u3044\u3066<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#%E7%89%B9%E9%95%B7\" >\u7279\u9577<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#%E6%9B%B4%E6%96%B0%E5%B1%A5%E6%AD%B4\" >\u66f4\u65b0\u5c65\u6b74<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#%E3%83%90%E3%82%B0%E5%A0%B1%E5%91%8A%E3%83%BB%E6%A9%9F%E8%83%BD%E3%81%AE%E8%BF%BD%E5%8A%A0%E4%BE%9D%E9%A0%BC%E3%81%AA%E3%81%A9%E3%81%AF%E6%98%AF%E9%9D%9E%E3%81%8A%E5%95%8F%E5%90%88%E3%81%9B%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84\" >\u30d0\u30b0\u5831\u544a\u30fb\u6a5f\u80fd\u306e\u8ffd\u52a0\u4f9d\u983c\u306a\u3069\u306f\u662f\u975e\u304a\u554f\u5408\u305b\u304f\u3060\u3055\u3044<\/a><\/li><\/ul><\/nav><\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/diff_match_patch\/20121119\/diff_match_patch.js\"\n    integrity=\"sha512-5YZxUisfaneUbwv58nPp10qwt6DefHuJ+iAfvPoABZAYwLg4WGJHITaLpyyxJdrljfc0ggUoWc87Z0lfoDS84Q==\"\n    crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"\n    integrity=\"sha512-BNaRQnYJYiPSqHHDb58B0yaPfCu+Wgds8Gp\/gU33kqBtgNS4tSPHuGibyoeqMV\/TJlSKda6FXzoEyYGjTe+vXA==\"\n    crossorigin=\"anonymous\" referrerpolicy=\"no-referrer\"><\/script>\n<style>\n    #text-container {\n        display: flex;\n        justify-content: space-between;\n    }\n\n    #text-container span {\n        background-color: #ccc;\n    }\n\n    .input-container {\n        display: flex;\n        justify-content: space-between;\n    }\n\n    .input-container textarea {\n        width: 45%;\n        height: 50vh;\n        margin: 0 2%;\n        padding: 5px;\n        border: 1px solid #ccc;\n        white-space: pre-wrap;\n    }\n\n    .text-output {\n        width: 45%;\n        margin: 0 2%;\n        padding: 5px;\n        border: 1px solid #ccc;\n        white-space: pre-wrap;\n    }\n\n    .highlight {\n        background-color: #ffff99;\n    }\n\n    .compute-button {\n        text-align: center;\n    }\n\n    .compute-button button {\n        padding: 0.5rem;\n        cursor: pointer;\n    }\n\n    #captureDiffButton {\n        text-align: center;\n        display: none;\n        position: relative;\n    }\n\n    #captureDiffButton button {\n        padding: 0.5rem;\n        cursor: pointer;\n    }\n\n    @media screen and (max-width: 800px) {\n\n        .compute-button button,\n        #captureDiffButton button {\n            font-size: 100%;\n        }\n    }\n\n    #okCapture {\n        display: none;\n        position: absolute;\n        background-color: #d90368;\n        color: #FFF;\n        bottom: 1rem;\n        right: 50%;\n        padding: 0.5em;\n        border-radius: 0.5rem;\n        transform: translateX(50%);\n        width: max-content;\n    }\n\n    #okCapture.show {\n        display: block;\n    }\n<\/style>\n\n<div class=\"input-container\">\n    <textarea id=\"text1\" placeholder=\"Original text\"><\/textarea>\n    <textarea id=\"text2\" placeholder=\"Changed text\"><\/textarea>\n<\/div>\n<div class=\"compute-button\">\n    <button onclick=\"computeDiff()\">\u6bd4\u8f03\u3092\u5b9f\u884c<\/button>\n<\/div>\n<div id=\"text-container\">\n    <p id=\"originalText\" class=\"text-output\"><\/p>\n    <p id=\"changedText\" class=\"text-output\"><\/p>\n<\/div>\n<div id=\"captureDiffButton\">\n    <p id=\"okCapture\">\u6bd4\u8f03\u7d50\u679c\u3092\u753b\u50cf\u3068\u3057\u3066\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f<\/p>\n    <button onclick=\"captureDiff()\">\u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc<\/button>\n<\/div>\n<div id=\"diffSummary\"><\/div>\n\n<script>\n    function escapeHtml(text) {\n        return text.replace(\/&\/g, \"&amp;\")\n            .replace(\/<\/g, \"&lt;\")\n            .replace(\/>\/g, \"&gt;\");\n    }\n\n    function computeDiff() {\n        var text1 = document.getElementById('text1').value;\n        var text2 = document.getElementById('text2').value;\n\n        var dmp = new diff_match_patch();\n        var diffs = dmp.diff_main(text1, text2);\n        dmp.diff_cleanupSemantic(diffs);\n\n        var originalTextHtml = '';\n        var changedTextHtml = '';\n        var diffSummary = [];\n        diffs.forEach(function (part) {\n            var text = part[1];\n            var escapedText = escapeHtml(text);\n            if (part[0] === -1) {\n                originalTextHtml += '<span>' + escapedText + '<\/span>';\n                diffSummary.push('- ' + escapedText);\n            } else if (part[0] === 1) {\n                changedTextHtml += '<span>' + escapedText + '<\/span>';\n                diffSummary.push('+ ' + escapedText);\n            } else {\n                originalTextHtml += escapedText;\n                changedTextHtml += escapedText;\n            }\n        });\n\n        document.getElementById('originalText').innerHTML = originalTextHtml;\n        document.getElementById('changedText').innerHTML = changedTextHtml;\n\n        var summaryHtml = '<ul>';\n        diffSummary.forEach(function (diff) {\n            summaryHtml += '<li>' + diff + '<\/li>';\n        });\n        summaryHtml += '<\/ul>';\n\n        document.getElementById('diffSummary').innerHTML = summaryHtml;\n        document.getElementById('captureDiffButton').style.display = 'block';\n    }\n    document.addEventListener('DOMContentLoaded', (event) => {\n        if (isMobileDevice()) {\n            document.getElementById('captureDiffButton').querySelector('button').textContent = '\u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9';\n        } else {\n            document.getElementById('captureDiffButton').querySelector('button').textContent = '\u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc';\n        }\n    });\n    function captureDiff() {\n        const viewportMeta = document.querySelector('meta[name=\"viewport\"]');\n        const originalViewportContent = viewportMeta.getAttribute('content');\n\n        if (viewportMeta) {\n            console.log(originalViewportContent);\n        } else {\n            console.log('no viewport');\n        }\n\n        function isMobileDevice() {\n            return (typeof window.orientation !== \"undefined\") || (navigator.userAgent.indexOf('IEMobile') !== -1);\n        };\n\n        \/\/ \u30e2\u30d0\u30a4\u30eb\u30c7\u30d0\u30a4\u30b9\u306e\u5834\u5408\u3001viewport\u3092\u8abf\u6574\n        if (isMobileDevice()) {\n            viewportMeta.setAttribute(\"content\", \"width=800\");\n        }\n\n        html2canvas(document.getElementById('text-container')).then(canvas => {\n            \/\/ viewport\u3092\u5143\u306b\u623b\u3059\n            viewportMeta.setAttribute(\"content\", originalViewportContent);\n\n            if (isMobileDevice()) {\n                \/\/ \u30b9\u30de\u30fc\u30c8\u30d5\u30a9\u30f3\u306e\u5834\u5408\u3001\u753b\u50cf\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\n                var link = document.createElement('a');\n                link.download = 'diff-capture.png';\n                link.href = canvas.toDataURL(\"image\/png\").replace(\"image\/png\", \"image\/octet-stream\");\n                link.click();\n            } else {\n                \/\/ PC\u306e\u5834\u5408\u3001\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\n                canvas.toBlob(blob => {\n                    navigator.clipboard.write([new ClipboardItem({ 'image\/png': blob })])\n                        .then(() => {\n                            var okCapture = document.getElementById('okCapture');\n                            okCapture.classList.add('show');\n                            setTimeout(() => {\n                                okCapture.classList.remove('show');\n                            }, 2000);\n                        });\n                });\n            }\n        });\n    }\n\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%AF%94%E8%BC%83%EF%BC%88Diff%EF%BC%89%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\"><\/span>\u30c6\u30ad\u30b9\u30c8\u6bd4\u8f03\uff08Diff\uff09\u306b\u3064\u3044\u3066<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001<a href=\"https:\/\/github.com\/google\/diff-match-patch\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">diff-match-patch<\/a>\u3068\u3044\u3046Google\u304c\u63d0\u4f9b\u3059\u308bJavaScript\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002\u5dee\u5206\u306e\u5224\u5b9a\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306fdiff-match-path\u306b\u57fa\u3065\u3044\u3066\u3044\u307e\u3059\u3002\u6570\u4ef6\u30c6\u30b9\u30c8\u3057\u307e\u3057\u305f\u304c\u7279\u306b\u554f\u984c\u306f\u306a\u304f\u3001\u7cbe\u5ea6\u306f\u975e\u5e38\u306b\u826f\u3055\u305d\u3046\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u753b\u9762\u9077\u79fb\u306f\u3057\u306a\u3044\u306e\u3067\u3001\u30b9\u30c8\u30ec\u30b9\u30d5\u30ea\u30fc\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5de6\u30a8\u30ea\u30a2\u3001\u53f3\u30a8\u30ea\u30a2\u306b\u305d\u308c\u305e\u308c\u6bd4\u8f03\u3057\u305f\u3044\u6587\u7ae0\u3092\u5165\u529b\u3057\u3001\u300c\u6bd4\u8f03\u3092\u5b9f\u884c\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u5dee\u5206\u306e\u3042\u308b\u7b87\u6240\u304c\u30ab\u30e9\u30fc\u30ea\u30f3\u30b0\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%B0%A1%E6%98%93%E7%94%BB%E5%83%8F%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E6%A9%9F%E8%83%BD%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\"><\/span>\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u306b\u3064\u3044\u3066<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"red\">\u203biPhone, Android\u7b49\u306e\u30b9\u30de\u30db\u306e\u5834\u5408\u306f\u4ed6\u4eba\u3068\u5171\u6709\u3057\u3084\u3059\u3044\u3088\u3046\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u3057\u3066\u3044\u307e\u3059<\/span><br>\u5dee\u5206\u306e\u7d50\u679c\u3092\u753b\u50cf\u3068\u3057\u3066\u30ad\u30e3\u30d7\u30c1\u30e3\u3059\u308b\u3053\u3068\u304c\u51fa\u6765\u307e\u3059\u3002\u3053\u3061\u3089\u306f<a href=\"https:\/\/html2canvas.hertzen.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">html2canvas<\/a>\u3068\u3044\u3046JavaScript\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u307e\u3057\u305f\u3002\u300c\u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u3001\u753b\u50cf\u304c\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u3055\u308c\u307e\u3059\u3002\u30da\u30a4\u30f3\u30c8\u30c4\u30fc\u30eb\u3084Photoshop\u3001Powepoint\u306a\u3069\u306b\u8cbc\u308a\u4ed8\u3051\u3089\u308c\u307e\u3059\u3002\uff08\u3042\u307e\u308a\u77e5\u3089\u308c\u3066\u306a\u3044\u3067\u3059\u304c\u3001Chatwork\u3084Slack\u306a\u3069\u306e\u30c1\u30e3\u30c3\u30c8\u30c4\u30fc\u30eb\u306b\u3082Ctrl + V\u3067\u6dfb\u4ed8\u3067\u304d\u305f\u308a\u3057\u307e\u3059\uff09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f53\u30da\u30fc\u30b8\u304c\u53ef\u5909\u5bfe\u5fdc\u3057\u3066\u3044\u308b\uff08\u30ec\u30b9\u30dd\u30f3\u30b7\u30d6\uff09\u306e\u3067\u3001\u6570\u5024\u304c\u76f8\u5bfe\u8868\u73fe\u306b\u306a\u3063\u3066\u3044\u308b\u305b\u3044\u304b\u3001\u6642\u3005\u30ad\u30e3\u30d7\u30c1\u30e3\u3055\u308c\u305f\u753b\u50cf\u304c\u304a\u304b\u3057\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u3054\u5bb9\u8d66\u9802\u3051\u308c\u3070\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305f\u3060\u3001\u5358\u7d14\u306a\u6587\u5b57\u5217\u3084\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u5229\u7528\u3059\u308b\u6587\u5b57\u306e\u7f85\u5217\u306a\u3069\u3067\u3042\u308c\u3070\u30d0\u30c3\u30c1\u30ea\u30ad\u30e3\u30d7\u30c1\u30e3\u51fa\u6765\u308b\u306e\u3067\u662f\u975e\u3054\u5229\u7528\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E7%89%B9%E9%95%B7\"><\/span>\u7279\u9577<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uff12\u3064\u306e\u6587\u7ae0\u306e\u5dee\u5206\u3092\u30cf\u30a4\u30e9\u30a4\u30c8\u3057\u307e\u3059\uff08\u76ee\u304c\u75db\u304f\u306a\u3044\u3088\u3046\u306b\u30b0\u30ec\u30fc\u306b\u3057\u307e\u3057\u305f\uff09<\/li>\n\n\n\n<li>\u5dee\u5206\u3092\u5358\u8a9e\u30ec\u30d9\u30eb\u3067\u4e00\u89a7\u8868\u793a\u3057\u307e\u3059<\/li>\n\n\n\n<li>\u5dee\u5206\u8868\u793a\u30a8\u30ea\u30a2\u3092\u753b\u50cf\u3068\u3057\u3066\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u51fa\u6765\u307e\u3059<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E6%9B%B4%E6%96%B0%E5%B1%A5%E6%AD%B4\"><\/span>\u66f4\u65b0\u5c65\u6b74<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">2023-11-10 ver.1.0.0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%83%90%E3%82%B0%E5%A0%B1%E5%91%8A%E3%83%BB%E6%A9%9F%E8%83%BD%E3%81%AE%E8%BF%BD%E5%8A%A0%E4%BE%9D%E9%A0%BC%E3%81%AA%E3%81%A9%E3%81%AF%E6%98%AF%E9%9D%9E%E3%81%8A%E5%95%8F%E5%90%88%E3%81%9B%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84\"><\/span>\u30d0\u30b0\u5831\u544a\u30fb\u6a5f\u80fd\u306e\u8ffd\u52a0\u4f9d\u983c\u306a\u3069\u306f\u662f\u975e\u304a\u554f\u5408\u305b\u304f\u3060\u3055\u3044<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Diff\u30c4\u30fc\u30eb\u306f\u7d50\u69cb\u3042\u308a\u307e\u3059\u304c\u3001\u753b\u50cf\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u306f\u306a\u304b\u306a\u304b\u7121\u3044\u306e\u3067\u306f\u3068\u601d\u3044\u307e\u3059\u3002\u3053\u306e\u30c4\u30fc\u30eb\u306f\u7d50\u69cb\u5b9f\u7528\u7684\u306b\u306a\u308b\u3068\u8003\u3048\u3066\u3044\u307e\u3059\u306e\u3067\u3069\u3093\u3069\u3093\u4f7f\u3063\u3066\u3001\u3044\u308d\u3093\u306a\u4eba\u306b\u5e83\u3081\u3066\u304f\u3060\u3055\u3044\u306d\uff01<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u5177\u5408\u3084\u6a5f\u80fd\u306e\u62e1\u5f35\u4f9d\u983c\u306a\u3069\u3054\u63d0\u6848\u3054\u3056\u3044\u307e\u3057\u305f\u3089\u3001<a href=\"https:\/\/engineering.webstudio168.jp\/contact\/\">\u304a\u554f\u3044\u5408\u308f\u305b<\/a>\u304b\u3089\u304a\u9858\u3044\u3057\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6bd4\u8f03\u3092\u5b9f\u884c \u6bd4\u8f03\u7d50\u679c\u3092\u753b\u50cf\u3068\u3057\u3066\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f \u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc \u30c6\u30ad\u30b9\u30c8\u6bd4\u8f03\uff08Diff\uff09\u306b\u3064\u3044\u3066 \u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001diff-match-patch\u3068\u3044\u3046Google\u304c\u63d0\u4f9b\u3059\u308bJavaS [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7022,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":[],"rop_publish_now_history":[],"rop_publish_now_status":"pending","_themeisle_gutenberg_block_has_review":false,"sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"common","vkexunit_cta_each_option":"","footnotes":""},"categories":[55,43],"tags":[8,39],"class_list":["post-6995","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","category-43","tag-javascript","tag-39"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011 | QooTechWEB-\u958b\u767a\u30ed\u30b0\u30fb\u5b9f\u52d9\u8a18\u9332\u30d6\u30ed\u30b0<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011 | QooTechWEB-\u958b\u767a\u30ed\u30b0\u30fb\u5b9f\u52d9\u8a18\u9332\u30d6\u30ed\u30b0\" \/>\n<meta property=\"og:description\" content=\"\u6bd4\u8f03\u3092\u5b9f\u884c \u6bd4\u8f03\u7d50\u679c\u3092\u753b\u50cf\u3068\u3057\u3066\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f \u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc \u30c6\u30ad\u30b9\u30c8\u6bd4\u8f03\uff08Diff\uff09\u306b\u3064\u3044\u3066 \u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001diff-match-patch\u3068\u3044\u3046Google\u304c\u63d0\u4f9b\u3059\u308bJavaS [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/\" \/>\n<meta property=\"og:site_name\" content=\"QooTechWEB-\u958b\u767a\u30ed\u30b0\u30fb\u5b9f\u52d9\u8a18\u9332\u30d6\u30ed\u30b0\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kenichi.yoshimura.735\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kenichi.yoshimura.735\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-10T07:48:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-12T16:22:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2023\/11\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1150\" \/>\n\t<meta property=\"og:image:height\" content=\"649\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"\u559c\u591a\u5ddd\u8ce2\u4e00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u559c\u591a\u5ddd\u8ce2\u4e00\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/\"},\"author\":{\"name\":\"\u559c\u591a\u5ddd\u8ce2\u4e00\",\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/#\\\/schema\\\/person\\\/6d312dfa5e9a00aa7a3575e6dec37ddb\"},\"headline\":\"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011\",\"datePublished\":\"2023-11-10T07:48:55+00:00\",\"dateModified\":\"2023-11-12T16:22:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/\"},\"wordCount\":23,\"publisher\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/#\\\/schema\\\/person\\\/6d312dfa5e9a00aa7a3575e6dec37ddb\"},\"image\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg\",\"keywords\":[\"JavaScript\",\"\u52b9\u7387\u5316\"],\"articleSection\":[\"JavaScript\",\"\u696d\u52d9\u52b9\u7387\u5316\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/\",\"url\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/\",\"name\":\"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011 | QooTechWEB-\u958b\u767a\u30ed\u30b0\u30fb\u5b9f\u52d9\u8a18\u9332\u30d6\u30ed\u30b0\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg\",\"datePublished\":\"2023-11-10T07:48:55+00:00\",\"dateModified\":\"2023-11-12T16:22:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/#primaryimage\",\"url\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg\",\"contentUrl\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg\",\"width\":1150,\"height\":649},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/diff-tool\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"QooTechWEB\",\"item\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/\",\"name\":\"QooTechWEB\",\"description\":\"\u73fe\u5f79\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u30a8\u30f3\u30b8\u30cb\u30a2\u304cJavaScript\u3092\u4e2d\u5fc3\u306bWeb\u958b\u767a\u306b\u4f7f\u3048\u308b\u60c5\u5831\u3092\u767a\u4fe1\u3057\u3066\u3044\u307e\u3059\uff01\u203b\u30b5\u30a4\u30c8\u5185\u306b\u30a2\u30d5\u30a3\u30ea\u30a8\u30a4\u30c8\u3092\u542b\u307f\u307e\u3059\",\"publisher\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/#\\\/schema\\\/person\\\/6d312dfa5e9a00aa7a3575e6dec37ddb\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/#\\\/schema\\\/person\\\/6d312dfa5e9a00aa7a3575e6dec37ddb\",\"name\":\"\u559c\u591a\u5ddd\u8ce2\u4e00\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/prof.png\",\"url\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/prof.png\",\"contentUrl\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/prof.png\",\"width\":514,\"height\":514,\"caption\":\"\u559c\u591a\u5ddd\u8ce2\u4e00\"},\"logo\":{\"@id\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/prof.png\"},\"description\":\"\u65e9\u7a32\u7530\u5927\u5b66\u7b2c\u4e00\u6587\u5b66\u90e8\u5352\u696d\u5f8c\u3001JAVA\u3067\u91d1\u878d\u7cfb\u30b7\u30b9\u30c6\u30e0\u30a8\u30f3\u30b8\u30cb\u30a2\u306b\u306a\u308b\u3002\u75d9\u6027\u659c\u9838\uff08\u3051\u3044\u305b\u3044\u3057\u3083\u3051\u3044\uff09\u3068\u3044\u3046\u5947\u75c5\u306b\u304b\u304b\u308a\u3001\u9996\u304c\u66f2\u304c\u3063\u305f\u3063\u307e\u307e\u306e\u751f\u6d3b\u309210\u5e74\u4ee5\u4e0a\u7d4c\u9a13\u3002\u30d7\u30fc\u30eb\u306b\u901a\u3044\u81ea\u529b\u3067\u76f4\u3057\u3001\u4eca\u306f\u307b\u307c\u5b8c\u6cbb\u3002 \u305d\u3093\u306a\u3053\u3068\u3082\u3042\u3063\u3066\u3001\u30b7\u30b9\u30c6\u30e0\u30a8\u30f3\u30b8\u30cb\u30a2\u304b\u3089\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u30a8\u30f3\u30b8\u30cb\u30a2\u306b\u8ee2\u8eab\u3057\u3001\u73fe\u5728\u306fWEB\u306e\u4e16\u754c\u3067\u751f\u6d3b\u3002 \u696d\u52d9\u3067\u5229\u7528\u3057\u305f\u8a00\u8a9e\u306f \u30fbJAVA\uff083\u5e74\u7a0b\u5ea6\uff09 \u30fbPHP\uff085\u5e74\u7a0b\u5ea6\uff09 \u30fbPython\uff081\u5e74\uff09 \u30fbHTML\uff0815\u5e74\uff09\u30fbCSS\uff0815\u5e74\uff09\u30fbJavaScript\uff0815\u5e74\uff09\u30fbAppScript\uff081\u5e74\uff09 \u597d\u304d\u306a\u3082\u306e\u306fJavaScript\u3002\",\"sameAs\":[\"https:\\\/\\\/engineering.webstudio168.jp\",\"https:\\\/\\\/www.facebook.com\\\/kenichi.yoshimura.735\\\/\",\"https:\\\/\\\/www.instagram.com\\\/qoo_sphynx\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/--20a9a4190\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCSZ3BHtlV0CqU296Y5lXoXw\"],\"url\":\"https:\\\/\\\/engineering.webstudio168.jp\\\/blog\\\/author\\\/ichi0726\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011 | QooTechWEB-\u958b\u767a\u30ed\u30b0\u30fb\u5b9f\u52d9\u8a18\u9332\u30d6\u30ed\u30b0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/","og_locale":"ja_JP","og_type":"article","og_title":"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011 | QooTechWEB-\u958b\u767a\u30ed\u30b0\u30fb\u5b9f\u52d9\u8a18\u9332\u30d6\u30ed\u30b0","og_description":"\u6bd4\u8f03\u3092\u5b9f\u884c \u6bd4\u8f03\u7d50\u679c\u3092\u753b\u50cf\u3068\u3057\u3066\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc\u3057\u307e\u3057\u305f \u30ad\u30e3\u30d7\u30c1\u30e3\u3092\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u306b\u30b3\u30d4\u30fc \u30c6\u30ad\u30b9\u30c8\u6bd4\u8f03\uff08Diff\uff09\u306b\u3064\u3044\u3066 \u3053\u306e\u30c4\u30fc\u30eb\u3067\u306f\u3001diff-match-patch\u3068\u3044\u3046Google\u304c\u63d0\u4f9b\u3059\u308bJavaS [&hellip;]","og_url":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/","og_site_name":"QooTechWEB-\u958b\u767a\u30ed\u30b0\u30fb\u5b9f\u52d9\u8a18\u9332\u30d6\u30ed\u30b0","article_publisher":"https:\/\/www.facebook.com\/kenichi.yoshimura.735\/","article_author":"https:\/\/www.facebook.com\/kenichi.yoshimura.735\/","article_published_time":"2023-11-10T07:48:55+00:00","article_modified_time":"2023-11-12T16:22:53+00:00","og_image":[{"width":1150,"height":649,"url":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2023\/11\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg","type":"image\/jpeg"}],"author":"\u559c\u591a\u5ddd\u8ce2\u4e00","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"\u559c\u591a\u5ddd\u8ce2\u4e00"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#article","isPartOf":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/"},"author":{"name":"\u559c\u591a\u5ddd\u8ce2\u4e00","@id":"https:\/\/engineering.webstudio168.jp\/blog\/#\/schema\/person\/6d312dfa5e9a00aa7a3575e6dec37ddb"},"headline":"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011","datePublished":"2023-11-10T07:48:55+00:00","dateModified":"2023-11-12T16:22:53+00:00","mainEntityOfPage":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/"},"wordCount":23,"publisher":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/#\/schema\/person\/6d312dfa5e9a00aa7a3575e6dec37ddb"},"image":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#primaryimage"},"thumbnailUrl":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2023\/11\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg","keywords":["JavaScript","\u52b9\u7387\u5316"],"articleSection":["JavaScript","\u696d\u52d9\u52b9\u7387\u5316"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/","url":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/","name":"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011 | QooTechWEB-\u958b\u767a\u30ed\u30b0\u30fb\u5b9f\u52d9\u8a18\u9332\u30d6\u30ed\u30b0","isPartOf":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#primaryimage"},"image":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#primaryimage"},"thumbnailUrl":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2023\/11\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg","datePublished":"2023-11-10T07:48:55+00:00","dateModified":"2023-11-12T16:22:53+00:00","breadcrumb":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#primaryimage","url":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2023\/11\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg","contentUrl":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2023\/11\/\u540d\u79f0\u672a\u8a2d\u5b9a-2.jpg","width":1150,"height":649},{"@type":"BreadcrumbList","@id":"https:\/\/engineering.webstudio168.jp\/blog\/diff-tool\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"QooTechWEB","item":"https:\/\/engineering.webstudio168.jp\/blog\/"},{"@type":"ListItem","position":2,"name":"\u3010\u7c21\u6613\u753b\u50cf\u30ad\u30e3\u30d7\u30c1\u30e3\u6a5f\u80fd\u4ed8\u304d\u3011\u30c6\u30ad\u30b9\u30c8\u3092\u6bd4\u8f03\u3057\u3066\u5dee\u5206\u3092\u8868\u793a\u3059\u308bdiff\u30c4\u30fc\u30eb\u3010JavaScript\u3067Web\u30c4\u30fc\u30eb\u3011"}]},{"@type":"WebSite","@id":"https:\/\/engineering.webstudio168.jp\/blog\/#website","url":"https:\/\/engineering.webstudio168.jp\/blog\/","name":"QooTechWEB","description":"\u73fe\u5f79\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u30a8\u30f3\u30b8\u30cb\u30a2\u304cJavaScript\u3092\u4e2d\u5fc3\u306bWeb\u958b\u767a\u306b\u4f7f\u3048\u308b\u60c5\u5831\u3092\u767a\u4fe1\u3057\u3066\u3044\u307e\u3059\uff01\u203b\u30b5\u30a4\u30c8\u5185\u306b\u30a2\u30d5\u30a3\u30ea\u30a8\u30a4\u30c8\u3092\u542b\u307f\u307e\u3059","publisher":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/#\/schema\/person\/6d312dfa5e9a00aa7a3575e6dec37ddb"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/engineering.webstudio168.jp\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":["Person","Organization"],"@id":"https:\/\/engineering.webstudio168.jp\/blog\/#\/schema\/person\/6d312dfa5e9a00aa7a3575e6dec37ddb","name":"\u559c\u591a\u5ddd\u8ce2\u4e00","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2022\/02\/prof.png","url":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2022\/02\/prof.png","contentUrl":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2022\/02\/prof.png","width":514,"height":514,"caption":"\u559c\u591a\u5ddd\u8ce2\u4e00"},"logo":{"@id":"https:\/\/engineering.webstudio168.jp\/blog\/wp-content\/uploads\/2022\/02\/prof.png"},"description":"\u65e9\u7a32\u7530\u5927\u5b66\u7b2c\u4e00\u6587\u5b66\u90e8\u5352\u696d\u5f8c\u3001JAVA\u3067\u91d1\u878d\u7cfb\u30b7\u30b9\u30c6\u30e0\u30a8\u30f3\u30b8\u30cb\u30a2\u306b\u306a\u308b\u3002\u75d9\u6027\u659c\u9838\uff08\u3051\u3044\u305b\u3044\u3057\u3083\u3051\u3044\uff09\u3068\u3044\u3046\u5947\u75c5\u306b\u304b\u304b\u308a\u3001\u9996\u304c\u66f2\u304c\u3063\u305f\u3063\u307e\u307e\u306e\u751f\u6d3b\u309210\u5e74\u4ee5\u4e0a\u7d4c\u9a13\u3002\u30d7\u30fc\u30eb\u306b\u901a\u3044\u81ea\u529b\u3067\u76f4\u3057\u3001\u4eca\u306f\u307b\u307c\u5b8c\u6cbb\u3002 \u305d\u3093\u306a\u3053\u3068\u3082\u3042\u3063\u3066\u3001\u30b7\u30b9\u30c6\u30e0\u30a8\u30f3\u30b8\u30cb\u30a2\u304b\u3089\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u30a8\u30f3\u30b8\u30cb\u30a2\u306b\u8ee2\u8eab\u3057\u3001\u73fe\u5728\u306fWEB\u306e\u4e16\u754c\u3067\u751f\u6d3b\u3002 \u696d\u52d9\u3067\u5229\u7528\u3057\u305f\u8a00\u8a9e\u306f \u30fbJAVA\uff083\u5e74\u7a0b\u5ea6\uff09 \u30fbPHP\uff085\u5e74\u7a0b\u5ea6\uff09 \u30fbPython\uff081\u5e74\uff09 \u30fbHTML\uff0815\u5e74\uff09\u30fbCSS\uff0815\u5e74\uff09\u30fbJavaScript\uff0815\u5e74\uff09\u30fbAppScript\uff081\u5e74\uff09 \u597d\u304d\u306a\u3082\u306e\u306fJavaScript\u3002","sameAs":["https:\/\/engineering.webstudio168.jp","https:\/\/www.facebook.com\/kenichi.yoshimura.735\/","https:\/\/www.instagram.com\/qoo_sphynx\/","https:\/\/www.linkedin.com\/in\/--20a9a4190\/","https:\/\/www.youtube.com\/channel\/UCSZ3BHtlV0CqU296Y5lXoXw"],"url":"https:\/\/engineering.webstudio168.jp\/blog\/author\/ichi0726\/"}]}},"_links":{"self":[{"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/posts\/6995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/comments?post=6995"}],"version-history":[{"count":57,"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/posts\/6995\/revisions"}],"predecessor-version":[{"id":7068,"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/posts\/6995\/revisions\/7068"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/media\/7022"}],"wp:attachment":[{"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/media?parent=6995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/categories?post=6995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/engineering.webstudio168.jp\/blog\/wp-json\/wp\/v2\/tags?post=6995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}