tampermonkey/.rules
2025-12-15 19:42:21 +01:00

98 lines
3.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ===========================
# Tampermonkey zasady ogólne
# ===========================
- file-type: "Zawsze generuj userscript jako plik .user.js"
- header-block: |
Każdy skrypt musi zaczynać się od pełnego bloku nagłówka Tampermonkey, np.:
// ==UserScript==
// @name Example Script
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Krótki opis działania skryptu
// @author Adam
// @match https://example.com/*
// @icon https://example.com/favicon.ico
// @grant none
// @run-at document-end
// ==/UserScript==
- comments: "Dodawaj komentarze do głównych sekcji skryptu"
# ===========================
# Styl kodu
# ===========================
- naming:
variables: "camelCase"
functions: "camelCase"
classes: "PascalCase"
- prefer-use: "const i let zamiast var"
- async: "Preferuj async/await zamiast then()"
- strict-mode: "Zawsze używaj 'use strict'; na początku"
- formatting: "Stosuj ESLint/Prettier style (2 spacje, średnik na końcu)"
# ===========================
# Struktura userscriptu
# ===========================
- main-entry: "Opakuj kod w IIFE (() => { ... }) aby uniknąć globalnych kolizji"
- dom-ready: "Stosuj document-end lub waitForElement zamiast ręcznych timeoutów"
- logging: "Używaj console.log tylko w trybie debug, dodając [Tampermonkey] jako prefix"
# ===========================
# Najlepsze praktyki
# ===========================
- selectors: "Preferuj querySelector/querySelectorAll zamiast jQuery"
- mutation-observer: "Do dynamicznych stron używaj MutationObserver zamiast setInterval"
- storage: "Używaj GM_setValue i GM_getValue do przechowywania ustawień"
- security: "Unikaj eval() i dynamicznego wykonywania kodu"
- updates: "Dodaj @updateURL i @downloadURL jeśli skrypt ma być hostowany"
# ===========================
# Testy i debug
# ===========================
- debug-flag: "Dodaj stałą DEBUG = true/false i używaj jej w logach"
- error-handling: "Każdy główny blok async powinien mieć try/catch"
# ===========================
# Wersja i opisy
# ===========================
- po każdej zmianie podnieś numer wersji, np. z 3.0 na 3.1
- każda zmiana kodu (dodanie funkcji, poprawka błędu, refaktoryzacja) MUSI kończyć się zmianą wersji
- nawet najmniejsze poprawki wymagają podwyższenia numeru wersji
- po każdej dodanej funkcjonalności opisz to w sekcji OPIS
- po każdej zmienie dodaj to, co zostało zrobione w danej wersji
# ===========================
# Ustawienia dodatkowe
# ===========================
- odpowiadaj zawsze w języku polskim
- przy wyszukiwaniu kolumn w tabelach zawsze używać nazwy kolumny (atrybut title, data-name lub textContent) zamiast indeksu kolumny
- indeksy kolumn mogą się zmieniać, ale nazwy pozostają stabilne
- funkcja findColumnByName powinna sprawdzać kolejno: title, data-name, textContent
# ===========================
# Nagłówek userscriptu - wymagane pola
# ===========================
- icon: "Zawsze dodawaj @icon z favicon strony docelowej"
- downloadURL: "Dodaj @downloadURL dla automatycznych aktualizacji"
- updateURL: "Dodaj @updateURL dla automatycznych aktualizacji"
- grants: "Dodaj odpowiednie @grant dla używanych funkcji GM_*"
# ===========================
# Dokumentacja w skrypcie
# ===========================
- opis-sekcja: |
Każdy skrypt musi mieć sekcję OPIS z:
- Wymaganymi parametrami URL
- Wymaganymi kolumnami w tabeli
- Opisem działania skryptu
- Listą funkcji kopiowania/przetwarzania
- Informacjami o zapamiętywaniu ustawień
- Informacjami o automatycznych aktualizacjach
- changelog-sekcja: |
Każdy skrypt musi mieć sekcję CHANGELOG z:
- Numerem wersji i datą
- Szczegółowym opisem zmian
- Informacją o podwyższeniu numeru wersji
- Format: "vX.Y (YYYY) - NAZWA ZMIANY"