qiita-hide-noisy-sections

qiita の見た目をシンプルにします

От 04.10.2024. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         qiita-hide-noisy-sections
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  qiita の見た目をシンプルにします
// @author
// @match       https://qiita.com/*/items/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
  "use strict";

  // うるさいポップアップや項目を非表示に
  document.head.insertAdjacentHTML(
    "beforeend",
    `
<style>
  [data-testid^="popup-"]{ display: none !important; }
  div.coins-optin-dialog{ display: none !important; }
</style>
`
  );

  // うるさいセクションを非表示に
  var removeSections = function () {
    const noisy_sections = Array.from(document.querySelectorAll("h2, h3")).find(
      (el) =>
        el.textContent.includes("トレンド") ||
        el.textContent.includes("キャンペーン") ||
        el.textContent.includes("ピックアップ")

    );
    if (!!noisy_sections) {
      noisy_sections.closest("section").remove();
    }
    //コメントより後のセクションは削除
     const commentsNode=document.getElementById("comments");
     if(commentsNode){
         const noisy_=[];
         let section=commentsNode.parentNode.nextSibling;
         while(section){
             noisy_.push(section);
             section=section.nextSibling;
         }
         noisy_.forEach((e) => {
             e.remove();
         });
     }

    const register_links = Array.from(document.querySelectorAll("p")).find(
      (el) => el.textContent.includes("新規登録して")
    );
    if (!!register_links) {
      register_links.closest("div").remove();
    }

    const iine_login_links = Array.from(document.querySelectorAll("h3")).find(
       (el) => el.textContent.includes("いいね以上の気持ちはコメント")
    );
    // レイアウトくずれるので display none に
    if(iine_login_links) {iine_login_links.closest("div").style.display="none"};

     const footer = document.querySelector("[id^='GlobalFooter']");
     if(footer && footer.querySelector("footer")){
         [...footer.querySelector("footer").children].forEach((e) => {
             e.remove();
         });
     }
  };

  setInterval(removeSections, 1000);
})();