Add notepad text import export
All checks were successful
Deploy Sokko G / deploy (push) Successful in 7s

This commit is contained in:
Shinuwa 2026-08-14 08:49:26 +02:00
parent 323e1b266d
commit f76cddcc95
8 changed files with 165 additions and 19 deletions

View file

@ -191,8 +191,8 @@
}
],
"importFormat": {
"text": "Le bloc notes conserve du texte riche et des dessins. Il n'utilise donc pas le format d'import/export texte des outils structurés.",
"example": "Le partage du bloc notes passe par l'export JSON de toolbox."
"text": "Le bloc notes utilise un bloc HTML nettoyé pour conserver la mise en forme autorisée, puis une ligne dessins en JSON compact.",
"example": "@notepad\n@html\n<h3>Obtenir Mew :</h3><div><ul><li>Obtenir la CS <span style=\"color: #f6c453\">Coupe </span>à l'intérieur du bateau le <span style=\"color: #d946ef\">S.S. Anne</span>.</li><li>Faire exprès de perdre un combat pour réapparaître au Centre Pokémon sans faire partir le navire.</li><li>Revenir sur les quais de <span style=\"color: #d946ef\">Carmin-sur-Mer</span> après avoir appris <span style=\"color: #f6c453\">Surf</span>.</li></ul></div>\n@endhtml\n@drawingMode: permanent\n@drawings: {\"strokes\":[...]}"
}
},
"checklist": {
@ -300,7 +300,7 @@
],
"importFormat": {
"text": "Une ligne commençant par # crée une catégorie. Une ligne item peut contenir une quantité avec le format Nom:quantité.",
"example": "# Potions\nPotion:10\nMéga potion:5\n\n# Armures\nCasque Rey Dau:1"
"example": "# Equipements\nEpee de diamant: 1\nBouclier: 1\nArc: 1\nCasque en diamant: 1\nArmure en diamant: 1\nGants en diamant: 1\nBottes en diamant: 1\n\nFleches: 64\nPotion de soin renforcée: 20\nPerle de l'Ender: 16"
}
},
"counters": {
@ -363,7 +363,7 @@
],
"importFormat": {
"text": "Un compteur par ligne. Le libellé est séparé de la valeur avec deux-points.",
"example": "Victoires: 12\nDéfaites: -2\nEssais boss: 34"
"example": "Top 1: 3\nTop 2: 6\nTop 3: 2\nTop 4: 1"
}
},
"images": {
@ -428,7 +428,7 @@
],
"importFormat": {
"text": "Chaque image est exportée comme un bloc avec un libellé optionnel puis une data URL base64 complète.",
"example": "# Map zone nord\ndata:image/webp;base64,UklGRiQAAABXRUJQVlA4...\n\n# Capture boss\ndata:image/png;base64,iVBORw0KGgoAAAANS..."
"example": "# Heal composition strategy\ndata:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA...\n# Healers counters\ndata:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA..."
}
},
"imageAnnotation": {
@ -548,7 +548,7 @@
],
"importFormat": {
"text": "Le format contient l'image en base64, puis les marqueurs et les dessins permanents.",
"example": "data:image/webp;base64,UklGRiQAAABXRUJQVlA4...\n@marker: 42.5,68,Entrée\n@drawings: {\"strokes\":[]}"
"example": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABA...\n@marker: 63.85,49.46,Niv. 1-20\n@marker: 47.65,31.93,Niv. 10-20\n@marker: 55.92,41.03,Niv. 20-30\n@drawings: {\"strokes\":[...]}"
}
},
"links": {
@ -595,7 +595,7 @@
],
"importFormat": {
"text": "Un lien par ligne. Séparez le titre et l'URL avec deux-points.",
"example": "Build:https://example.com/build?class=rogue\nMap:https://example.com/map"
"example": "Sokko G: https://sokkog.shinuwa.fr/#/\nC'est quoi ?: https://sokkog.shinuwa.fr/#/about"
}
},
"calculator": {
@ -670,7 +670,7 @@
],
"importFormat": {
"text": "Une ligne par résultat. L'indentation de deux espaces conserve les liens parent/enfant.",
"example": "@scrollResults: true\nLingots: 100\n Minerai: 500\nCristaux: 12"
"example": "Lingot de champignite: 100\n Lingot de chlorophyte: 100\n Champignon luisant: 1500\nLingot de chlorophyte: 100\n Minerai de chlorophyte: 500"
}
},
"table": {
@ -750,7 +750,7 @@
],
"importFormat": {
"text": "Un TSV pur peut être importé. L'export TSV du panneau d'ajout ajoute des lignes @ pour préserver dimensions, intitulés et formules.",
"example": "@size: 2x3\n@columns: Objet\tValeur\tTotal\n@tsv\nOeuf d'or\t20000\t=B1*3\nOeuf d'argent\t5000\t=B2*2"
"example": "@size: 4x4\n@columns: Objet\tValeur\tQuantité\tValeur\n@tsv\nOeuf d'acier\t1000\t563\t=B1*C1\nOeuf d'argent\t5000\t153\t=B2*C2\nOeuf d'or\t20000\t69\t=B3*C3\n\t\t\t=(D1+D2+D3)"
}
},
"timer": {
@ -881,7 +881,7 @@
],
"importFormat": {
"text": "Les étapes et comptes à rebours sont exportés en lignes lisibles. Les échéances sont recalculées à l'import.",
"example": "@activeTab: countdown\nlap | label=Phase 1 | elapsedMs=90000\ncountdown | label=Boss | type=duration | durationMs=300000\ncountdown | label=Event | type=time_pattern | pattern=X:45:00"
"example": "@activeTab: countdown\nlap | label=Fosse 110 | elapsedMs=1046475\nlap | label=Fosse 55 | elapsedMs=50019\ncountdown | label=Fin de vague infernale | type=time_pattern | alertMode=off | pattern=X:55:X\ncountdown | label=Boss Mondial | type=daily_time | alertMode=off | time=14:00:00\ncountdown | label=Legion | type=interval | alertMode=off | autoRefresh=true | intervalMs=1800000 | startMode=now\ncountdown | label=Durée | type=duration | alertMode=off | durationMs=1800000"
}
},
"taskPlanner": {
@ -964,7 +964,7 @@
],
"importFormat": {
"text": "Les catégories commencent par #. Les tâches utilisent leur type et l'indentation de deux espaces crée les sous-tâches. Les états cochés ne sont pas repris.",
"example": "@resetTime: 06:00\n# Raid\n- daily Préparer la route\n @description: Prendre consommables\n - unique Acheter potions\n @prerequisite: true\n- weekly Coffre hebdo"
"example": "@hideCompleted: true\n# To craft\n- unique Essence de liqueur\n- unique Bière\n- unique Vinaigre\n- weekly Faire les boss du Sanctuaire Noir (Groupe)\n @weeklyResetDay: 0\n- weekly Faire les boss du Sanctuaire Noir (Solo)\n @weeklyResetDay: 0\n- unique Ameliorer le bateau\n - daily Faire du troc\n @prerequisite: true"
}
},
"combos": {
@ -1081,7 +1081,7 @@
],
"importFormat": {
"text": "Les catégories commencent par #. Un combo décrit son périphérique et ses étapes avec >, tandis que + groupe des inputs simultanés.",
"example": "@device: playstation\n# Neutral\nHadoken | device=playstation | direction:down > direction:right > button:cross\nCharge | button:square[2s] > button:triangle+button:circle"
"example": "# Ryu\nHadoken | device=playstation | direction:down > direction:down-right > direction:right+button:square\nShoryken | device=playstation | direction:right > direction:down > direction:down-right > direction:right+button:fist\n# Chun Li\nKikoken | device=playstation | direction:left[hold] > direction:right+button:fist\nHundred Lightning Kicks | device=playstation | direction:down > direction:down-right > direction:right+button:foot"
}
},
"equipmentPlanner": {
@ -1146,7 +1146,7 @@
],
"importFormat": {
"text": "Le format est découpé par type, équipement et sous-sections Stats, Sockets et Craft.",
"example": "# Armes | icon=sword\n## Épée runique | icon=sword | active=true\nStats\nDégâts | sword | Attaque | 12\nSockets\nJoyau attaque | shape=jewel | color=yellow\n bonus | Compétence | sword | Attaque | 1\nCraft\nMinerai rare: 4"
"example": "# Casque | icon=helmet\n## Nu Udra γ | icon=helmet | active=true\nStats\n | shield | Défense | 68\n | shield | Resistance au feu | 5\n | shield | Resistance a l'eau | -4\nSockets\nJoyau antivirus | shape=jewel | color=violet\n bonus | | sword | Antivirus | 1\nCraft\n@obtain: Avoir un certificat Alpha supreme\n## Nu Udra γ | icon=chest-armor | active=true\nStats\n | shield | Défense | 68\nSockets\nJoyau Attaque | shape=jewel | color=red\n bonus | | sword | Attaque | 2"
}
}
},
@ -1467,7 +1467,18 @@
"temporaryStatus": "Dessins temporaires",
"permanentStatus": "Dessins permanents",
"updatedAtPrefix": "Modifié le",
"sessionStorageError": "Les annotations temporaires n'ont pas pu être sauvegardées."
"sessionStorageError": "Les annotations temporaires n'ont pas pu être sauvegardées.",
"importPlaceholder": "@notepad\n@html\n<h3>Route boss</h3>\n<p><strong style=\"color: #f6c453\">Préparer les consommables</strong></p>\n@endhtml\n@drawingMode: permanent\n@drawings: {\"strokes\":[]}",
"importOpenButton": "Importer du texte",
"exportOpenButton": "Exporter en format texte",
"importModalTitle": "Importer un bloc notes",
"exportModalTitle": "Exporter un bloc notes",
"importButton": "Importer le texte",
"exportButton": "Copier le texte",
"importSuccess": "Import bloc notes terminé.",
"exportSuccess": "Export bloc notes copié.",
"importError": "Format de bloc notes invalide.",
"exportInfo": "Le HTML est nettoyé à l'import. Les dessins permanents sont exportés en JSON compact."
},
"checklist": {
"itemPlaceholder": "Nouvel item",