「COLOR」を含む日記 RSS

はてなキーワード: COLORとは

2024-06-26

非エンジニアだけどClaude3に増田ミュート作ってもらったよ

これを改善してってお願いした。何書いてあるかわからないけど動いたよ。

https://anond.hatelabo.jp/20240125203115

// ==UserScript==
// @name         増田ミュート(白塗り版)
// @namespace    http://tampermonkey.net/
// @version      2024-06-26
// @description  ミューワードを含む最小限の範囲白塗りにする
// @author       You
// @match        https://anond.hatelabo.jp/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=hatelabo.jp
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const muteWords = [
        "弱者男性",
        "弱男",
        "弱者",
        "婚活",
        "男",
        "女",
        "年収",
        "下方婚",
        "発達障害",
        "発達",
        "ハッタツ",
        "ハッタショ",
        "ハッタショ",
        "競プロ",
        "競技プログラミング",
        "AtCoder",
    ];

    function whiteoutElement(element) {
        element.style.backgroundColor = 'white';
        element.style.color = 'white';
        element.style.textShadow = 'none';
        element.style.cursor = 'default';
        element.style.userSelect = 'none';  // テキスト選択を防止
        element.style.borderBottom = '1px dashed #ccc'; // 枠線を追加してテキストがあることを示す

        // リンク場合クリック無効化
        if (element.tagName === 'A') {
            element.style.pointerEvents = 'none';
            element.removeAttribute('href');
        }

        // 子要素にも適用
        Array.from(element.children).forEach(child => {
            child.style.backgroundColor = 'white';
            child.style.color = 'white';
            child.style.textShadow = 'none';
        });

        // ツールチップを追加
        element.title = 'この内容にはミューワードが含まれています';
    }

    function shouldMute(text) {
        return muteWords.some(word => {
            const parts = word.split('');
            const regex = new RegExp(parts.map(char => `${char}\\s*`).join(''), 'i');
            return regex.test(text);
        });
    }

    function findSmallestMuteableElement(element) {
        if (element.nodeType === Node.TEXT_NODE) {
            return shouldMute(element.textContent) ? element.parentElement : null;
        }

        if (element.tagName === 'PRE' || element.tagName === 'CODE') {
            return shouldMute(element.textContent) ? element : null;
        }

        for (let child of element.childNodes) {
            const result = findSmallestMuteableElement(child);
            if (result) return result;
        }

        return shouldMute(element.textContent) ? element : null;
    }

    function processElement(element) {
        const muteableElement = findSmallestMuteableElement(element);
        if (muteableElement) {
            whiteoutElement(muteableElement);
        }
    }

    function processAllElements(root = document.body) {
        const walker = document.createTreeWalker(
            root,
            NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,
            null,
            false
        );

        let node;
        while (node = walker.nextNode()) {
            if (node.nodeType === Node.ELEMENT_NODE) {
                processElement(node);
            } else if (node.nodeType === Node.TEXT_NODE && node.parentElement) {
                processElement(node.parentElement);
            }
        }
    }

    function handleClickEvent(event) {
        setTimeout(() => {
            processAllElements(event.target);
        }, 100);
    }

    // 初回実行
    processAllElements();

    // クリックイベント監視
    document.body.addEventListener('click', handleClickEvent);

    // DOM変更の監視
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            if (mutation.type === 'childList') {
                mutation.addedNodes.forEach(node => {
                    if (node.nodeType === Node.ELEMENT_NODE) {
                        processAllElements(node);
                    }
                });
            } else if (mutation.type === 'characterData') {
                processElement(mutation.target.parentNode);
            }
        });
    });

    observer.observe(document.body, { childList: true, subtree: true, characterData: true });
})();

2024-06-25

anond:20240625094852 anond:20240708032959

はてな ユーザー72% が30歳以上。おっさんおばさんメディア(はてなメディアガイド)
年代男性 女性  感想
104%   4% おれって異端
20代22%   30%  うごメモ(DS3DS)の生き残り。20代の設定の創作が増えそう
30代⭐️38%   36%  最多ユーザーblogといえば “はてな” 、エンジニアといえば “はてな” を知る世代・作った世代
40代27%   21%   blogといえばエンジニアといえば “はてな” を作った世代
50代以上 9%   9%   40代と同じく作った世代だけど意外と少ない。盛っていないガチでおハイソな方々が多いイメージ

2024-06-24

anond:20240624083854

わかりやすいウーンヘイターで草

ン屁

2024-06-20

anond:20240620141838

default noun (STANDARD SETTING)

[ U ] US /ˈdi·fɔlt, dɪˈfɔlt/

a standard setting esp. of computer software, such as of type size or style:

The default color of text on the screen is black.

(Definition of default from the Cambridge Academic Content Dictionary © Cambridge University Press)

ワイは日本語英語も堪能なので、増田の「デフォルト意味最後に落ちるところ=債務不履行だけ」という主張が全く欠片も理解できない

ワイは増田よりも↑のケンブリッジ英英辞典を信じるやで

2024-06-13

[]

バ ト ル ド ー ム !! 
ボ ォ ル を ア イ テ の ゴ ォ ル に シ ィ ゥ ゥ ゥ ゥ ツ ッ !! チ ョ ォ ゥ ! エ キ サ イ テ ェ ァ ン !! ス リ ー デ ィ イ ・ ア ク シ ョ ン グ ェ ァ ム 。  バ ト ル ド オ ム 。 ツ ク ダ オ リ ジ ナ ル か ら !

ボォルをアイテのゴォルに シィゥゥゥツ!! チョォゥエ キ サ イ テ ェ ァ ン!! ス リ ー ディ ア ク シ ョ ンゲェムゥ、ツ ク ダ オ リ ジ ナ ル・バトル ドオム!  ド ラ え も ん・バトル ドオム もでたぁ!
ログイン ユーザー登録
ようこそ ゲスト さん