Upload files to "/"

This commit is contained in:
2026-01-19 15:50:27 +00:00
parent 91321993d4
commit f38484b5dd
5 changed files with 1030 additions and 0 deletions

29
.gitignore vendored Normal file
View File

@@ -0,0 +1,29 @@
# OS files
.DS_Store
Thumbs.db
# Editor files
.vscode/
.idea/
*.swp
*.swo
*~
# Logs
*.log
# Temporary files
*.tmp
*.bak
# Node modules (if you add build tools later)
node_modules/
package-lock.json
# Distribution files (if you build minified versions)
dist/
build/
# Test files (if you add tests later)
coverage/
.nyc_output/

310
GITEA-SETUP-GUIDE.md Normal file
View File

@@ -0,0 +1,310 @@
# 🚀 Gitea Setup Guide - LinkedIn AI-Text Generator
## Steg-för-steg installation på din Gitea-server
---
## Steg 1: Skapa Repository i Gitea
1. **Logga in** på din Gitea-server (t.ex. `https://wolfnova.ai/gitea`)
2. Klicka på **"+"** → **"New Repository"**
3. **Repository name:** `linkedin-ai-tools`
4. **Visibility:** Public (viktigt! annars fungerar inte bookmarklet)
5. **Initialize repository:**
- ✅ Kryssa i "Initialize Repository"
- ✅ Add README: (vi ersätter den senare)
- License: None (eller välj en)
6. **Create Repository**
---
## Steg 2: Ladda upp filer
Du har tre alternativ:
### Alternativ A: Via Gitea Web UI (Enklast)
1. I ditt nya repo, klicka **"Upload file"**
2. Dra och släpp dessa filer:
- `linkedin-ai.js`
- `version.json`
- `README.md` (ersätter befintlig)
3. **Commit message:** "Initial upload v2.0.0"
4. **Commit Changes**
### Alternativ B: Via Git CLI
```bash
# Klona repot
git clone https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools.git
cd linkedin-ai-tools
# Kopiera filerna till mappen
cp /path/to/linkedin-ai.js .
cp /path/to/version.json .
cp /path/to/README.md .
# Commit och pusha
git add .
git commit -m "Initial upload v2.0.0"
git push origin main
```
### Alternativ C: Direkt redigera i Gitea
1. Klicka på varje fil i repot
2. Klicka **"Edit"**
3. Klistra in innehållet
4. **Commit Changes**
---
## Steg 3: Hitta Raw URL
1. I Gitea-repot, klicka på **`linkedin-ai.js`**
2. Klicka på **"Raw"**-knappen
3. Kopiera URL:en från adressfältet
**URL-format blir:**
```
https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js
```
**Exempel:**
```
https://wolfnova.ai/gitea/wolfnova/linkedin-ai-tools/raw/branch/main/linkedin-ai.js
```
---
## Steg 4: Skapa Bookmarklet
Nu skapar du bookmarklet som laddar från din Gitea:
### Bookmarklet-kod:
```javascript
javascript:(function(){var s=document.createElement('script');s.src='https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js';document.body.appendChild(s);})();
```
**⚠️ VIKTIGT:** Byt ut `DITTANVÄNDARNAMN` och domänen mot din faktiska Gitea-URL!
### Skapa bokmärket:
1. **Högerklicka** i bokmärkesfältet
2. **"Add bookmark"** eller **"Lägg till bokmärke"**
3. **Name:** `✨ LinkedIn AI`
4. **URL:** Klistra in bookmarklet-koden ovan (med din URL!)
5. **Save**
---
## Steg 5: Testa
1. Gå till **LinkedIn.com**
2. **Markera vilken text som helst**
3. **Klicka på `✨ LinkedIn AI`** i bokmärkesfältet
4. **Popup ska dyka upp!**
Om det fungerar: 🎉 **Grattis!**
---
## Steg 6: Dela med teamet
### Intern distribution:
**Skapa en guide för ditt team:**
```markdown
# Använd LinkedIn AI-Text Generator
1. Högerklicka i bokmärkesfältet
2. Välj "Add bookmark"
3. Namn: ✨ LinkedIn AI
4. URL: [din bookmarklet-kod här]
5. Spara
Klart! Nu kan du markera text och klicka på bokmärket.
```
### Eller skapa en "installer-sida":
Skapa `install.html` i Gitea-repot:
```html
<!DOCTYPE html>
<html>
<head>
<title>LinkedIn AI - Installation</title>
<style>
body { font-family: system-ui; max-width: 800px; margin: 50px auto; padding: 20px; }
.bookmarklet {
display: inline-block;
background: #2c5aa0;
color: white;
padding: 12px 24px;
border-radius: 8px;
text-decoration: none;
font-weight: bold;
}
.bookmarklet:hover { background: #1e3a6b; }
</style>
</head>
<body>
<h1>✨ LinkedIn AI-Text Generator</h1>
<p>Dra detta till ditt bokmärkesfält:</p>
<a href="javascript:(function(){var s=document.createElement('script');s.src='https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js';document.body.appendChild(s);})();" class="bookmarklet">
✨ LinkedIn AI
</a>
<h2>Användning</h2>
<ol>
<li>Gå till LinkedIn</li>
<li>Markera text</li>
<li>Klicka på bokmärket</li>
<li>Välj funktion</li>
</ol>
</body>
</html>
```
Dela länken: `https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/src/branch/main/install.html`
---
## Hantera CORS (Om problem uppstår)
Om bookmarklet inte kan ladda scriptet på grund av CORS, lägg till dessa headers i Gitea:
### Nginx config (om du använder Nginx framför Gitea):
```nginx
location /gitea/wolfnova/linkedin-ai-tools/raw/ {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods "GET, OPTIONS";
proxy_pass http://localhost:3000;
}
```
### Alternativt: Använd CDN
Om CORS är ett problem, använd en CDN som automatiskt lägger till CORS-headers:
1. Lägg scriptet på **jsDelivr** eller **cdnjs**
2. Eller använd din egen Nginx/Apache med CORS-headers
---
## Uppdatera Scriptet
När du vill uppdatera:
1. **Redigera `linkedin-ai.js`** i Gitea
2. **Uppdatera `version.json`:**
```json
{
"version": "2.1.0",
"released": "2026-01-20",
...
}
```
3. **Commit changes**
4. **✅ Alla användare får automatiskt uppdateringen!**
Ingen behöver uppdatera sitt bokmärke manuellt!
---
## Felsökning
### Problem: Script laddar inte
**Kontrollera:**
```bash
# Testa om URL:en är tillgänglig
curl https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js
# Ska returnera JavaScript-kod, inte HTML
```
**Lösning:**
- Kontrollera att repot är Public
- Verifiera att filen heter exakt `linkedin-ai.js`
- Kolla att branch heter `main` (inte `master`)
### Problem: CORS-fel i Console
**Fel:**
```
Access to script at '...' from origin 'https://linkedin.com' has been blocked by CORS policy
```
**Lösning:**
1. Lägg till CORS-headers (se ovan)
2. Eller använd **fallback inline bookmarklet** (se nedan)
### Problem: CSP-blockering
Vissa sidor (LinkedIn, GitHub) blockerar externa scripts.
**Lösning: Hybrid Bookmarklet**
```javascript
javascript:(function(){
fetch('https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js')
.then(r => r.text())
.then(code => eval(code))
.catch(e => {
alert('❌ Kunde inte ladda script. Kontrollera att servern är tillgänglig.');
console.error(e);
});
})();
```
---
## Backup: Fallback Inline Bookmarklet
Om Gitea-lösningen inte fungerar på grund av CORS/CSP, ha denna som backup:
**Minifierad inline-version** (ingen server behövs):
```javascript
[Din nuvarande inline bookmarklet-kod här som backup]
```
---
## Fördelar med Gitea-lösningen
✅ **Centraliserad uppdatering** - Uppdatera en gång, alla får uppdateringen
✅ **Versionskontroll** - Git-historik över alla ändringar
✅ **Collaboration** - Flera kan bidra till utvecklingen
✅ **Self-hosted** - Full kontroll över koden
✅ **Privat eller public** - Du bestämmer
✅ **CI/CD möjligt** - Kan koppla på automatiska tester
---
## Nästa steg
Efter basic setup, överväg:
1. **Lägg till fler funktioner** i `linkedin-ai.js`
2. **Skapa installer-sida** för enklare distribution
3. **Sätt upp monitoring** - logga hur ofta scriptet laddas
4. **Version check** - Notifiera användare om nya versioner
5. **A/B testing** - Testa olika prompts och UI-varianter
---
## Support
Problem? Kontakta:
- **Email:** [din email]
- **Gitea:** https://wolfnova.ai/gitea/DITTANVÄNDARNAMN/linkedin-ai-tools/issues
---
**Lycka till! 🚀**
Wolfnova Innovation

125
QUICKSTART.md Normal file
View File

@@ -0,0 +1,125 @@
# 🚀 SNABBSTART - Gitea Setup
## I 5 minuter är du igång!
### Steg 1: Skapa repo i Gitea (2 min)
1. Logga in på din Gitea: `https://wolfnova.ai/gitea`
2. Klicka "+" → "New Repository"
3. Namn: `linkedin-ai-tools`
4. Visibility: **Public** (viktigt!)
5. Initialize: Kryssa i
6. Create Repository
### Steg 2: Ladda upp filer (2 min)
Packa upp `gitea-linkedin-ai-tools.zip` och ladda upp dessa filer till repot:
- ✅ linkedin-ai.js
- ✅ version.json
- ✅ README.md
- ✅ install.html
- ✅ .gitignore
**Snabbast:** Dra och släpp alla filer på en gång i Gitea web UI
### Steg 3: Hämta din URL (30 sek)
1. Klicka på `linkedin-ai.js` i repot
2. Klicka "Raw"
3. Kopiera URL från adressfältet
**Din URL blir typ:**
```
https://wolfnova.ai/gitea/DITTNAMN/linkedin-ai-tools/raw/branch/main/linkedin-ai.js
```
### Steg 4: Skapa bookmarklet (30 sek)
1. Högerklicka i bokmärkesfältet
2. "Add bookmark"
3. Namn: `✨ LinkedIn AI`
4. URL:
```javascript
javascript:(function(){var s=document.createElement('script');s.src='DIN-URL-HÄR';document.body.appendChild(s);})();
```
**Byt ut `DIN-URL-HÄR` mot din faktiska URL!**
5. Spara
### Steg 5: Testa! (30 sek)
1. Gå till LinkedIn
2. Markera text
3. Klicka `✨ LinkedIn AI`
4. 🎉 Fungerar det? Grattis!
---
## 🎯 Alternativ: Använd install.html
**Enklare för teamet:**
1. Dela denna länk med teamet:
```
https://wolfnova.ai/gitea/DITTNAMN/linkedin-ai-tools/src/branch/main/install.html
```
2. De drar bara knappen till bokmärkesfältet
3. Klart! ✨
---
## ⚡ Fördelar med Gitea-lösningen
**En uppdatering → alla får den** (ingen manuell uppdatering)
**Versionskontroll** med Git
**Self-hosted** - du kontrollerar allt
**Dela internt** enkelt med teamet
---
## 📝 Uppdatera senare
1. Redigera `linkedin-ai.js` i Gitea
2. Uppdatera version i `version.json`
3. Commit
4. ✅ Alla användare får uppdateringen automatiskt!
---
## ⚠️ Om CORS-problem uppstår
**Lösning 1:** Lägg till CORS-headers i Nginx (se full guide)
**Lösning 2:** Använd fetch-baserad bookmarklet:
```javascript
javascript:(function(){fetch('DIN-URL').then(r=>r.text()).then(c=>eval(c));})();
```
**Lösning 3:** Fallback till inline bookmarklet (funkar alltid)
---
## 🆘 Felsökning
**Problem:** Script laddar inte
- Kolla att repot är Public
- Verifiera att filen heter exakt `linkedin-ai.js`
- Testa URL:en direkt i webbläsaren
**Problem:** Bookmarklet gör ingenting
- Kontrollera att du markerat text först
- Öppna Console (F12) och kolla efter fel
- Prova på en annan sida (inte LinkedIn först)
---
## 📧 Support
Problem? Läs:
- `GITEA-SETUP-GUIDE.md` (fullständig guide)
- `README.md` (dokumentation)
Eller kontakta: [din email]
---
**Lycka till! 🚀**
Wolfnova Innovation
www.wolfnova.ai

256
install.html Normal file
View File

@@ -0,0 +1,256 @@
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LinkedIn AI-Text Generator - Installation</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.container {
background: white;
border-radius: 16px;
padding: 40px;
max-width: 800px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
h1 {
color: #2c5aa0;
margin-bottom: 10px;
font-size: 32px;
}
.subtitle {
color: #666;
margin-bottom: 30px;
font-size: 16px;
}
.bookmarklet-container {
background: #f8f9fa;
border: 2px dashed #2c5aa0;
border-radius: 12px;
padding: 30px;
margin: 30px 0;
text-align: center;
}
.bookmarklet {
display: inline-block;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 16px 32px;
border-radius: 8px;
text-decoration: none;
font-weight: bold;
font-size: 18px;
transition: transform 0.2s, box-shadow 0.2s;
box-shadow: 0 4px 12px rgba(0,0,0,0.2);
cursor: move;
}
.bookmarklet:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(0,0,0,0.3);
}
.instruction {
margin-top: 15px;
color: #2c5aa0;
font-weight: 500;
font-size: 14px;
}
.features {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin: 30px 0;
}
.feature {
background: #f8f9fa;
padding: 20px;
border-radius: 12px;
border-left: 4px solid #2c5aa0;
}
.feature-icon {
font-size: 32px;
margin-bottom: 10px;
}
.feature h3 {
color: #333;
margin-bottom: 8px;
font-size: 16px;
}
.feature p {
color: #666;
font-size: 14px;
line-height: 1.5;
}
.steps {
background: #fff;
border: 1px solid #e0e0e0;
border-radius: 12px;
padding: 20px;
margin: 20px 0;
}
.steps h2 {
color: #2c5aa0;
margin-bottom: 15px;
font-size: 20px;
}
.steps ol {
margin-left: 20px;
}
.steps li {
margin: 12px 0;
color: #444;
line-height: 1.6;
}
.footer {
text-align: center;
margin-top: 40px;
padding-top: 20px;
border-top: 1px solid #e0e0e0;
color: #999;
font-size: 14px;
}
.version {
display: inline-block;
background: #e3f2fd;
color: #1976d2;
padding: 4px 12px;
border-radius: 4px;
font-size: 12px;
font-weight: 500;
}
.alert {
background: #fff3cd;
border: 1px solid #ffc107;
border-radius: 8px;
padding: 15px;
margin: 20px 0;
color: #856404;
}
.alert strong {
display: block;
margin-bottom: 5px;
}
</style>
</head>
<body>
<div class="container">
<h1>✨ LinkedIn AI-Text Generator</h1>
<p class="subtitle">Wolfnova Innovation <span class="version">v2.0.0</span></p>
<div class="alert">
<strong>📌 Installationsinstruktion:</strong>
Dra knappen nedan till din bokmärkesfält (Bookmarks bar). Visa bokmärkesfältet med Ctrl+Shift+B (Windows) eller Cmd+Shift+B (Mac).
</div>
<div class="bookmarklet-container">
<a href="javascript:(function(){var s=document.createElement('script');s.src='https://wolfnova.ai/gitea/wolfnova/linkedin-ai-tools/raw/branch/main/linkedin-ai.js';document.body.appendChild(s);})();" class="bookmarklet" draggable="true">
✨ LinkedIn AI
</a>
<p class="instruction">👆 Dra denna knapp till din bokmärkesfält</p>
</div>
<div class="features">
<div class="feature">
<div class="feature-icon">🧠</div>
<h3>Generera LinkedIn Text</h3>
<p>Skapa filosofiskt, djupgående innehåll från inspiration</p>
</div>
<div class="feature">
<div class="feature-icon">💡</div>
<h3>Skapa från idé</h3>
<p>Utveckla råa tankar till fullfjädrade inlägg</p>
</div>
<div class="feature">
<div class="feature-icon">🔄</div>
<h3>Omarbeta</h3>
<p>Fördjupa befintlig text med systemtänkande</p>
</div>
<div class="feature">
<div class="feature-icon"></div>
<h3>Bionic Reading</h3>
<p>Komprimera långa texter till skannbart format</p>
</div>
</div>
<div class="steps">
<h2>📖 Så här använder du verktyget:</h2>
<ol>
<li><strong>Dra knappen ovan</strong> till din bokmärkesfält (visas med Ctrl+Shift+B)</li>
<li><strong>Gå till LinkedIn</strong> eller vilken sida med text som helst</li>
<li><strong>Markera text</strong> som du vill arbeta med</li>
<li><strong>Klicka på bokmärket</strong> ✨ LinkedIn AI</li>
<li><strong>Välj funktion</strong> i popup-menyn som dyker upp</li>
<li><strong>Claude öppnas automatiskt</strong> med din text!</li>
</ol>
</div>
<div class="steps">
<h2>💡 Tips & användningsområden:</h2>
<ol>
<li><strong>Snabbläsa rapporter:</strong> Markera långa texter → ⚡ Analysera → Få essensen på 30 sekunder</li>
<li><strong>LinkedIn-innehåll:</strong> Se intressant inlägg → Markera → 🧠 Generera → Få djupt perspektiv</li>
<li><strong>Utveckla idéer:</strong> Skriv ner tanke → Markera → 💡 Skapa från idé → Fullt inlägg</li>
<li><strong>Research-sprint:</strong> Analysera 10 papers på 20 minuter istället för 5 timmar</li>
</ol>
</div>
<div class="alert" style="background: #e8f5e9; border-color: #4caf50; color: #2e7d32;">
<strong>✅ Säkerhet & Integritet:</strong>
Detta verktyg läser bara markerad text och öppnar Claude.ai. Ingen data skickas till tredje part, sparas eller loggas. All kod är öppen och kan granskas på Gitea.
</div>
<div class="footer">
<p><strong>Wolfnova Innovation</strong></p>
<p>www.wolfnova.ai</p>
<p style="margin-top: 10px; font-size: 12px;">
Har du problem? Kontakta support eller läs dokumentationen på
<a href="https://wolfnova.ai/gitea/wolfnova/linkedin-ai-tools" style="color: #2c5aa0;">Gitea</a>
</p>
</div>
</div>
<script>
// Visa instruktion när användaren försöker klicka istället för dra
document.querySelector('.bookmarklet').addEventListener('click', function(e) {
e.preventDefault();
alert('💡 Tips: Dra denna knapp till din bokmärkesfält istället för att klicka på den!\n\nVisa bokmärkesfältet med Ctrl+Shift+B (Windows) eller Cmd+Shift+B (Mac).');
});
</script>
</body>
</html>

310
linkedin-ai.js Normal file
View File

@@ -0,0 +1,310 @@
/**
* LinkedIn AI-Text Generator v2.0
* Wolfnova Innovation
*
* Detta script körs när bookmarklet aktiveras
*/
(function() {
'use strict';
// Hämta markerad text
const selectedText = window.getSelection().toString().trim();
if (!selectedText) {
alert('❌ Markera text först innan du använder LinkedIn AI!');
return;
}
// Definiera alla prompts
const prompts = [
{
emoji: '🧠',
name: 'Generera LinkedIn Text',
description: 'Filosofiskt och djupgående innehåll',
prompt: `📱 Använd linkedin-content-system skillen för att skapa djupgående LinkedIn-innehåll.
🎯 Basera innehållet på denna text/idé:
"""
${selectedText}
"""
Skapa ett filosofiskt, substansfullt LinkedIn-inlägg som:
- Utforskar teknologi och samhälle från ett djupare perspektiv
- Tänker i civilisatoriska tidsskalor, inte kvartalsmått
- Bygger trovärdighet genom substans, inte buzz
- Är anti-hype och djupt reflekterande
- Ställer existentiella frågor
✨ Inkludera relevanta emojis där det känns naturligt.`
},
{
emoji: '💡',
name: 'Skapa från idé',
description: 'Utforska och utveckla en tanke',
prompt: `💡 Använd linkedin-content-system skillen.
Jag har denna tanke/idé:
"""
${selectedText}
"""
Hjälp mig att utforska och utveckla detta till ett genomtänkt LinkedIn-inlägg som:
- Går djupare än ytan
- Kopplar till större sammanhang
- Balanserar flera perspektiv
- Bygger på filosofi och historia där relevant
- Talar till beslutsfattare och systemtänkare
✨ Inkludera emojis där passande.`
},
{
emoji: '🔄',
name: 'Omarbeta',
description: 'Anpassa befintlig text',
prompt: `🔄 Använd linkedin-content-system skillen.
Omarbeta denna text till LinkedIn-format som följer Wolfnovas filosofi:
"""
${selectedText}
"""
Behåll kärnbudskapet men fördjupa perspektivet:
- Mer filosofisk reflektion
- Långsiktigt tänkande
- Systemiskt perspektiv
- Mindre hype, mer substans
- Ställ djupare frågor
✨ Inkludera emojis där naturligt.`
},
{
emoji: '⚡',
name: 'Analysera (Bionic Reading)',
description: 'Komprimerad analys i skannbart format',
prompt: `⚡ KOMPRIMERAD ANALYS I BIONIC READING FORMAT
Analysera denna text/rapport och presentera essensen i bionic reading-format:
"""
${selectedText}
"""
📊 INSTRUKTIONER:
1. EXTRAHERA ESSENSEN:
- Identifiera kärnbudskap och huvudpoänger
- Ta bort fluff och upprepningar
- Komprimera till det väsentliga (max 30% av originallängd)
2. STRUKTURERA TYDLIGT:
- Börja med 1-mening sammanfattning
- Bullet points för huvudpoänger
- Viktigaste insikter först
3. FORMATERA I BIONIC READING:
- **Fet**stil på första delen av varje viktigt ord
- Gör texten **skan**nbar och **snabb**läst
- Hjäl**per** öga**t** att fix**a** snab**bare**
- Exemp**el:** "Syst**em** kräv**er** helhets**syn** för **att** funk**era** stab**ilt**"
4. INKLUDERA:
- 🎯 Huvudbudskap (1 mening)
- 💡 Nyckelinsikter (3-5 punkter)
- ⚠️ Varningar/risker (om relevanta)
- ✅ Slutsats/rekommendation
5. ANVÄND EMOJIS för visuell struktur
Målet: Läsaren ska kunna skanna texten på 30 sekunder och få ALL viktig information!`
}
];
// Skapa modal
const modal = createModal(prompts);
document.body.appendChild(modal);
/**
* Skapa modal UI
*/
function createModal(prompts) {
const modal = document.createElement('div');
modal.id = 'wolfnova-linkedin-ai-modal';
modal.style.cssText = `
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: white;
border-radius: 12px;
box-shadow: 0 8px 32px rgba(0,0,0,0.3);
padding: 24px;
z-index: 999999;
min-width: 420px;
max-width: 90vw;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
`;
// Header
const header = document.createElement('h3');
header.style.cssText = `
margin: 0 0 16px;
color: #333;
font-size: 18px;
display: flex;
align-items: center;
justify-content: space-between;
`;
header.innerHTML = `
<span>✨ AI-Text Generator</span>
<span style="font-size: 12px; color: #999;">v2.0 - Wolfnova</span>
`;
modal.appendChild(header);
// Buttons för varje prompt
prompts.forEach((promptData, index) => {
const button = createButton(promptData, () => {
document.body.removeChild(modal);
openClaude(promptData.prompt);
});
modal.appendChild(button);
});
// Close button
const closeBtn = document.createElement('button');
closeBtn.textContent = '✕ Stäng';
closeBtn.style.cssText = `
width: 100%;
padding: 8px;
margin-top: 16px;
border: 1px solid #ddd;
border-radius: 6px;
background: #f5f5f5;
cursor: pointer;
font-size: 12px;
transition: background 0.2s;
`;
closeBtn.onmouseover = () => closeBtn.style.background = '#e0e0e0';
closeBtn.onmouseout = () => closeBtn.style.background = '#f5f5f5';
closeBtn.onclick = () => document.body.removeChild(modal);
modal.appendChild(closeBtn);
return modal;
}
/**
* Skapa knapp för varje alternativ
*/
function createButton(promptData, onClick) {
const button = document.createElement('button');
button.style.cssText = `
width: 100%;
padding: 12px 16px;
margin: 8px 0;
border: 2px solid #e0e0e0;
border-radius: 8px;
background: #fff;
cursor: pointer;
text-align: left;
font-size: 14px;
transition: all 0.2s;
display: flex;
flex-direction: column;
gap: 4px;
`;
button.innerHTML = `
<div style="display: flex; align-items: center; gap: 10px;">
<span style="font-size: 20px;">${promptData.emoji}</span>
<strong style="flex: 1;">${promptData.name}</strong>
</div>
<div style="font-size: 11px; color: #666; margin-left: 30px;">
${promptData.description}
</div>
`;
button.onmouseover = () => {
button.style.background = '#f0f7ff';
button.style.borderColor = '#2c5aa0';
};
button.onmouseout = () => {
button.style.background = '#fff';
button.style.borderColor = '#e0e0e0';
};
button.onclick = onClick;
return button;
}
/**
* Öppna Claude med prompt
*/
function openClaude(prompt) {
const claudeUrl = `https://claude.ai/new?q=${encodeURIComponent(prompt)}`;
window.open(claudeUrl, '_blank');
// Visa notifikation
showNotification('✨ Öppnar Claude AI med din markerade text!');
}
/**
* Visa notifikation
*/
function showNotification(message) {
const notification = document.createElement('div');
notification.style.cssText = `
position: fixed;
top: 20px;
right: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 16px 24px;
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
z-index: 9999999;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
font-size: 14px;
font-weight: 500;
animation: slideIn 0.3s ease-out;
`;
notification.textContent = message;
document.body.appendChild(notification);
// Auto-remove efter 3 sekunder
setTimeout(() => {
notification.style.animation = 'slideOut 0.3s ease-out';
setTimeout(() => notification.remove(), 300);
}, 3000);
}
// Lägg till CSS för animationer (om inte redan finns)
if (!document.getElementById('wolfnova-animations')) {
const style = document.createElement('style');
style.id = 'wolfnova-animations';
style.textContent = `
@keyframes slideIn {
from {
transform: translateX(400px);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes slideOut {
from {
transform: translateX(0);
opacity: 1;
}
to {
transform: translateX(400px);
opacity: 0;
}
}
`;
document.head.appendChild(style);
}
console.log('✅ LinkedIn AI-Text Generator v2.0 aktiverad!');
})();