qiita-hide-noisy-sections

qiita の目障りな項目を非表示にする

23.09.2024 itibariyledir. En son verisyonu görün.

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

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

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

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.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name         qiita-hide-noisy-sections
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  qiita の目障りな項目を非表示にする
// @author      tamura
// @match       https://qiita.com/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// @license      CC0-1.0
// ==/UserScript==

(function () {
  "use strict";

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

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

    [...noisy_sections].forEach((e) => {
      e.closest("section").remove();
    });
    const register_links = Array.from(document.querySelectorAll("p")).find(
      (el) => el.textContent.includes("新規登録して")
    );
    register_links && register_links.closest("div").remove();

    const footer = document.querySelector(".st-footer_navigation");
    footer && footer.remove();
  };
  // 遅延描画される項目どうすればよいかわからないので1秒ごとに探して消す
  setInterval(removeSections, 1000);
})();