הצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?
-
@מים-אחרונים
אתה צודק, אבל זה לא כ"כ אפשרי כי כל אחד מעוניין בתוסף אחד והשני רק מציק לו@קראנץ-ונילה כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים
אתה צודק, אבל זה לא כ"כ אפשרי כי כל אחד מעוניין בתוסף אחד והשני רק מציק לוכמובן שבפופאפ פשוט, אתה יכול לבטל או להפעיל את כל מה שאתה רוצה.
-
מה שאפשר לעשות אולי - באמת להפוך את התוספים האלו לקוד לטמפרמונקי, לא יודע איך עושים זאת בפועל אבל אולי זה אפשרי.
כך תוכל לשלוט עליהם -דרכו -
מה שאפשר לעשות אולי - באמת להפוך את התוספים האלו לקוד לטמפרמונקי, לא יודע איך עושים זאת בפועל אבל אולי זה אפשרי.
כך תוכל לשלוט עליהם -דרכומי המתנדב?
-
מי המתנדב?
@קראנץ-ונילה אני אראה אם אצליח לעשות משהו.
@מים-אחרונים רעיון יפה! -
מי המתנדב?
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
מה שאפשר לעשות אולי - באמת להפוך את התוספים האלו לקוד לטמפרמונקי, לא יודע איך עושים זאת בפועל אבל אולי זה אפשרי.
כך תוכל לשלוט עליהם -דרכוזה לדעתי לא אפשרי, יש דברים שפשוט לא ניתנים להפעלה בטרמונסקי כקוד, ככה אני מבין.
-
טוב, זה הרעיון על פי GPT קצת יותר מסודר, וציני, כמו שאני אוהב

טוב, אתה מנסה לעשות סדר בבלאגן של האינטרנט. שאפתני. כמעט חמוד. בוא נעשה את זה נקי וברור, בלי פנטזיות מיותרות.
הרעיון בקצרה
במקום:
- אלף תוספי כרום חצי-מתים
- עוד אלף סקריפטים של Tampermonkey שאף אחד לא יודע מאיפה הגיעו
- כל אחד ממציא גלגל מחדש, אבל מרובע
אתה מקים פלטפורמה אחת מרכזית בגיטהב, עם:
- ריפו ראשי אחד
- תוספים / סקריפטים מחולקים למודולים
- ממשק אחד (GitHub Pages) שמנהל את הכול
למה זה נצרך
כי היום המצב כזה:
- משתמש רגיל לא מתקין 10 תוספים. הוא מתקין 1 ואז מתייאש.
- תוספים מתנגשים אחד עם השני.
- אין מקום אחד שמרכז פיצ'רים קטנים ושימושיים.
- כל שינוי קטן = תוסף חדש = עוד בלאגן.
המערכת שלך פותרת:
- עומס
- כפילויות
- תחזוקה
- בלבול של משתמשים
הרעיון בגדול
1. ריפו־על אחד (Monorepo)
ריפו אחד גדול, שבתוכו:
/core engine.js // מנוע שמנהל הכול settings.js // מערכת הגדרות כללית ui.js // ממשק אחיד /modules rtl/ translate/ emoji-helper/ forum-tools/ /docs (GitHub Pages) index.html catalog.html2. תוסף אחד – אינסוף פיצ'רים
- המשתמש מתקין תוסף אחד
- בפנים יש כיבוי/הדלקה של פיצ'רים
- כל פיצ'ר הוא מודול עצמאי
- אין צורך לעדכן 20 תוספים, רק אחד
3. GitHub Pages כמרכז שליטה
-
אתר gh-pages שמציג:
- רשימת מודולים
- תיעוד
- התקנה בלחיצה
- קישורי Tampermonkey / Chrome
-
משמש גם כ־Landing וגם כ־Docs
4. קהילה ולא אוסף קבצים
-
כל אחד יכול:
- להוסיף מודול
- לשפר מודול קיים
- בלי לפתוח “תוסף חדש”
-
סטנדרט אחד לכולם:
- API אחיד
- מבנה קבוע
- בדיקות בסיסיות
למה זה רעיון טוב באמת
- זה סקיילבילי
- זה לא תלוי בדפדפן אחד
- זה מתאים גם ל־Chrome וגם ל־Tampermonkey
- זה פרויקט שאנשים רוצים להצטרף אליו
- וזה סוף-סוף מרגיש כמו מערכת, לא אוסף פלסטרים
בשורה התחתונה:
אתה לא בונה “עוד תוסף”.
אתה בונה תשתית לתוספים.
וזה ההבדל בין צעצוע לפרויקט רציני.אם תרצה, בשלב הבא:
- נגדיר שם לפרויקט
- נבנה מבנה ריפו מדויק
- נחליט האם זה מתחיל כתוסף כרום או כ־userscript חכם
לאט, מסודר, בלי לשרוף את העולם ביום הראשון.
-
היי.
כמו שכולכם יודעים, כל תוסף מכביד על הזיכרון של הכרום ועל טעינת האתרים!
וכמו שכולכם יודעים, כמעט לכל משתמש כאן בפורום יש רעיון לתוסף... ותוסף פעיל עם כמות משתמשים...
השאלה היא מה אפשר לעשות, בשביל ליצור מהכל תוסף אחד גדול ואחיד?
שיחבר את כל מה שהעלו כאן בפורום, וכל הזמן יהיה ניתן לעדכן אותו. ממשק כל שהוא כמו גיטהב.
ככה שיהיה ניתן כל הזמן להשבית או להפעיל תוספים ישירות מדשבורד פשוט בפופאפ.
בעצם זה אמור לעבוד כמו tampermonkey
אם יש למישהו דרך לשכלל את הרעיון ולהביא אותו לכדי מעש, זה יהיה מעולה.
התחלתי לבנות משהו פעם, יצא משהו חמוד, אבל לא היה מאופין, ככה שלא הגעתי לכלל משהו מוגמר.צריך להחליט מה בדיוק צריך, אח"כ לבצע.
רעיון שאני מוסיף, אם יש תוספים שעושים את אותו דבר, פשוט לאחד אותם למשהו אחד טוב יותר, ולצמצם משאבים.
אשמח לתגובות שלכם.
@מים-אחרונים זה לא עובד ככה,
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.בנוגע לניהול ריפו מרכזי לא רואה מישהו מוכן לכאב ראש הזה (מה הרווחת כאן פשוט יצרת את הweb store שוב פעם)
קיצער לא רואה כאן רווח משמעותי,
חוץ מהרבה כאב ראש. -
הנה הקוד שGPT נתן לי לטמפרמונקי - לתוסף @מגנוס-קרלסן לפתקים לדפדפן
כתוב לי שזה נטען בהצלחה - רק שאני לא רואה מה יוצא מזה- מישהו יוכל לבדוק את זה?// ==UserScript==
// @name Sticky Notes - פתקים חכמים
// @namespace http://tampermonkey.net/
// @version 1.0
// @description צור פתקים נצמדים לכל דף אינטרנט או דומיין
// @author השם שלך
// @match <all_urls>
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==document.addEventListener('DOMContentLoaded', () => {
const addBtn = document.createElement('button');
addBtn.innerText = "
הוסף פתק לדף זה";
addBtn.style.position = 'fixed';
addBtn.style.bottom = '10px';
addBtn.style.right = '10px';
addBtn.style.background = '#ffeb3b';
addBtn.style.border = 'none';
addBtn.style.padding = '10px 20px';
addBtn.style.cursor = 'pointer';
addBtn.style.borderRadius = '5px';
addBtn.style.fontWeight = 'bold';
addBtn.style.boxShadow = '0 2px 5px rgba(0, 0, 0, 0.1)';
document.body.appendChild(addBtn);addBtn.addEventListener('click', () => { createNewNote(); }); loadNotes();});
function loadNotes() {
const notes = JSON.parse(GM_getValue('stickyNotes', '[]'));
const currentUrl = window.location.href;
const currentDomain = window.location.hostname;// סינון פתקים לדף הנוכחי או לאתר הנוכחי const filteredNotes = notes.filter(note => { if (note.scope === 'page' && note.url === currentUrl) return true; if (note.scope === 'domain' && note.domain === currentDomain) return true; return false; }); filteredNotes.forEach(note => renderNote(note));}
function createNewNote() {
const note = {
id: Date.now().toString(),
content: '',
top: '100px',
left: '100px',
width: '200px',
height: '200px',
color: '#ffeb3b', // צבע ברירת מחדל
url: window.location.href,
domain: window.location.hostname,
scope: 'page' // "page" או "domain"
};saveNoteToStorage(note); renderNote(note);}
function renderNote(noteData) {
const container = document.createElement('div');
container.className = 'sticky-note-container';
container.id = noteData.id;
container.style.position = 'absolute';
container.style.top = noteData.top;
container.style.left = noteData.left;
container.style.width = noteData.width;
container.style.height = noteData.height;
container.style.backgroundColor = noteData.color;
container.style.zIndex = '2147483647';// כותרת (כוללת כפתור סגירה ובורר צבעים) const header = document.createElement('div'); header.className = 'sticky-header'; const closeBtn = document.createElement('span'); closeBtn.innerHTML = '✖'; closeBtn.className = 'sticky-btn'; closeBtn.onclick = () => deleteNote(noteData.id, container); const colorBtn = document.createElement('input'); colorBtn.type = 'color'; colorBtn.value = noteData.color; colorBtn.className = 'sticky-color-picker'; colorBtn.oninput = (e) => { container.style.backgroundColor = e.target.value; noteData.color = e.target.value; updateNote(noteData); }; const scopeBtn = document.createElement('button'); scopeBtn.className = 'sticky-scope-btn'; scopeBtn.innerText = noteData.scope === 'page' ? '📄 דף' : '🌐 אתר'; scopeBtn.onclick = () => { noteData.scope = noteData.scope === 'page' ? 'domain' : 'page'; scopeBtn.innerText = noteData.scope === 'page' ? '📄 דף' : '🌐 אתר'; updateNote(noteData); }; header.appendChild(colorBtn); header.appendChild(scopeBtn); header.appendChild(closeBtn); // אזור תוכן const content = document.createElement('div'); content.className = 'sticky-content'; content.contentEditable = true; content.innerHTML = noteData.content; let timeout; content.addEventListener('input', () => { clearTimeout(timeout); timeout = setTimeout(() => { noteData.content = content.innerHTML; updateNote(noteData); }, 500); }); container.appendChild(header); container.appendChild(content); document.body.appendChild(container); dragElement(container, noteData);}
function saveNoteToStorage(newNote) {
const notes = JSON.parse(GM_getValue('stickyNotes', '[]'));
notes.push(newNote);
GM_setValue('stickyNotes', JSON.stringify(notes));
}function updateNote(updatedNote) {
const notes = JSON.parse(GM_getValue('stickyNotes', '[]'));
const index = notes.findIndex(n => n.id === updatedNote.id);
if (index !== -1) {
notes[index] = updatedNote;
GM_setValue('stickyNotes', JSON.stringify(notes));
}
}function deleteNote(id, element) {
if (!confirm('למחוק את הפתק?')) return;element.remove(); const notes = JSON.parse(GM_getValue('stickyNotes', '[]')); const filteredNotes = notes.filter(n => n.id !== id); GM_setValue('stickyNotes', JSON.stringify(filteredNotes));}
function dragElement(elmnt, noteData) {
let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
const header = elmnt.getElementsByClassName("sticky-header")[0];header.onmousedown = dragMouseDown; function dragMouseDown(e) { e.preventDefault(); pos3 = e.clientX; pos4 = e.clientY; document.onmouseup = closeDragElement; document.onmousemove = elementDrag; } function elementDrag(e) { e.preventDefault(); pos1 = pos3 - e.clientX; pos2 = pos4 - e.clientY; pos3 = e.clientX; pos4 = e.clientY; const newTop = (elmnt.offsetTop - pos2) + "px"; const newLeft = (elmnt.offsetLeft - pos1) + "px"; elmnt.style.top = newTop; elmnt.style.left = newLeft; } function closeDragElement() { document.onmouseup = null; document.onmousemove = null; noteData.top = elmnt.style.top; noteData.left = elmnt.style.left; updateNote(noteData); }}
אבל אצלי יש בעיה כלשהי בטמפרמונקי - כך שזה לא ראיה
-
@מים-אחרונים זה לא עובד ככה,
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.בנוגע לניהול ריפו מרכזי לא רואה מישהו מוכן לכאב ראש הזה (מה הרווחת כאן פשוט יצרת את הweb store שוב פעם)
קיצער לא רואה כאן רווח משמעותי,
חוץ מהרבה כאב ראש.@cfopuser כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.
למה? אם אני מבטל טעינה בשניה, דרך הפופאפ?
-
@cfopuser כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.
למה? אם אני מבטל טעינה בשניה, דרך הפופאפ?
@מים-אחרונים למה שהטעינה תתשנה?
-
@cfopuser כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
הצריכת משאבים תהיה זהה ככה שלא הרווחת כלום במובן הזה.
למה? אם אני מבטל טעינה בשניה, דרך הפופאפ?
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
-
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
@יאיר-דניאל זוהי הנקודה שרציתי לומר ברגע שאתה רוצה להגיע לגדלים כאלו,
אתה פשוט גדול מידי שאתה נהפך למיותר במקום פשוט להוריד מהחנות. -
@יאיר-דניאל זוהי הנקודה שרציתי לומר ברגע שאתה רוצה להגיע לגדלים כאלו,
אתה פשוט גדול מידי שאתה נהפך למיותר במקום פשוט להוריד מהחנות.@cfopuser כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@יאיר-דניאל זוהי הנקודה שרציתי לומר ברגע שאתה רוצה להגיע לגדלים כאלו,
אתה פשוט גדול מידי שאתה נהפך למיותר במקום פשוט להוריד מהחנות.האמת משפט מסובך - קראתי פעמיים ואני לא בטוח שירדתי לעומק דעתך...
-
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
מה שהופך לקצת יותר מסובך.
-
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
מה שהופך לקצת יותר מסובך.
@מים-אחרונים כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
מה שהופך לקצת יותר מסובך.
יותר מסובך מאשר להיכנס לתוך טמפרמונקי ולכבות את הפונקציות???
-
@מים-אחרונים כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
@מים-אחרונים אתה יכול באותה הצורה לכבות כל תוסף דרך דף התוספים
מה שהופך לקצת יותר מסובך.
יותר מסובך מאשר להיכנס לתוך טמפרמונקי ולכבות את הפונקציות???
@יאיר-דניאל כתב בהצעת ייעול | תוסף שמאחד את כל התוספים... הכמות כאן לא הזויה?:
יותר מסובך מאשר להיכנס לתוך טמפרמונקי ולכבות את הפונקציות???
לא דיברתי רק על טמפרמונסקי.
אני מדבר עם פופאפ משלך, שמכבה או מפעיל את הפונקציות.