mirror of
https://github.com/CorentinTh/it-tools.git
synced 2025-04-21 23:36:15 -04:00
Merge branch 'main' into border-generator-feature
This commit is contained in:
commit
d3c00746b6
17 changed files with 136 additions and 50 deletions
|
@ -117,7 +117,7 @@ It will create a directory in `src/tools` with the correct files, and a the impo
|
||||||
|
|
||||||
Big thanks to all the people who have already contributed!
|
Big thanks to all the people who have already contributed!
|
||||||
|
|
||||||
[](https://github.com/corentinth/it-tools/graphs/contributors)
|
[](https://github.com/corentinth/it-tools/graphs/contributors)
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ home:
|
||||||
newestTools: Neueste Tools
|
newestTools: Neueste Tools
|
||||||
favoriteTools: Deine Lieblingstools
|
favoriteTools: Deine Lieblingstools
|
||||||
allTools: Alle Tools
|
allTools: Alle Tools
|
||||||
|
favoritesDndToolTip: 'Ziehen und Ablegen, um Favoriten neu zu ordnen'
|
||||||
subtitle: Praktische Tools für Entwickler
|
subtitle: Praktische Tools für Entwickler
|
||||||
toggleMenu: Menü umschalten
|
toggleMenu: Menü umschalten
|
||||||
home: Startseite
|
home: Startseite
|
||||||
|
@ -21,13 +22,13 @@ home:
|
||||||
p1: Gib uns einen Stern auf
|
p1: Gib uns einen Stern auf
|
||||||
githubRepository: IT-Tools GitHub-Repository
|
githubRepository: IT-Tools GitHub-Repository
|
||||||
p2: oder folge uns auf
|
p2: oder folge uns auf
|
||||||
twitterAccount: IT-Tools Twitter-Konto
|
twitterXAccount: IT-Tools X-Konto
|
||||||
thankYou: Vielen Dank!
|
thankYou: Vielen Dank!
|
||||||
nav:
|
nav:
|
||||||
github: GitHub-Repository
|
github: GitHub-Repository
|
||||||
githubRepository: IT-Tools GitHub-Repository
|
githubRepository: IT-Tools GitHub-Repository
|
||||||
twitter: Twitter-Konto
|
twitterX: X-Konto
|
||||||
twitterAccount: IT-Tools Twitter-Konto
|
twitterXAccount: IT-Tools X-Konto
|
||||||
about: Über IT-Tools
|
about: Über IT-Tools
|
||||||
aboutLabel: Über
|
aboutLabel: Über
|
||||||
darkMode: Dunkelmodus
|
darkMode: Dunkelmodus
|
||||||
|
|
|
@ -3,6 +3,7 @@ home:
|
||||||
newestTools: Newest tools
|
newestTools: Newest tools
|
||||||
favoriteTools: 'Your favorite tools'
|
favoriteTools: 'Your favorite tools'
|
||||||
allTools: 'All the tools'
|
allTools: 'All the tools'
|
||||||
|
favoritesDndToolTip: 'Drag and drop to reorder favorites'
|
||||||
subtitle: 'Handy tools for developers'
|
subtitle: 'Handy tools for developers'
|
||||||
toggleMenu: 'Toggle menu'
|
toggleMenu: 'Toggle menu'
|
||||||
home: Home
|
home: Home
|
||||||
|
@ -14,13 +15,13 @@ home:
|
||||||
p1: 'Give us a star on'
|
p1: 'Give us a star on'
|
||||||
githubRepository: 'IT-Tools GitHub repository'
|
githubRepository: 'IT-Tools GitHub repository'
|
||||||
p2: 'or follow us on'
|
p2: 'or follow us on'
|
||||||
twitterAccount: 'IT-Tools Twitter account'
|
twitterXAccount: 'IT-Tools X account'
|
||||||
thankYou: 'Thank you!'
|
thankYou: 'Thank you!'
|
||||||
nav:
|
nav:
|
||||||
github: 'GitHub repository'
|
github: 'GitHub repository'
|
||||||
githubRepository: 'IT-Tools GitHub repository'
|
githubRepository: 'IT-Tools GitHub repository'
|
||||||
twitter: 'Twitter account'
|
twitterX: 'X account'
|
||||||
twitterAccount: 'IT Tools Twitter account'
|
twitterXAccount: 'IT Tools X account'
|
||||||
about: 'About IT-Tools'
|
about: 'About IT-Tools'
|
||||||
aboutLabel: 'About'
|
aboutLabel: 'About'
|
||||||
darkMode: 'Dark mode'
|
darkMode: 'Dark mode'
|
||||||
|
|
|
@ -3,6 +3,7 @@ home:
|
||||||
newestTools: Nuevas herramientas
|
newestTools: Nuevas herramientas
|
||||||
favoriteTools: 'Tus herramientas favoritas'
|
favoriteTools: 'Tus herramientas favoritas'
|
||||||
allTools: 'Todas las herramientas'
|
allTools: 'Todas las herramientas'
|
||||||
|
favoritesDndToolTip: 'Arrastra y suelta para reordenar favoritos'
|
||||||
subtitle: 'Herramientas practicas para desarrolladores'
|
subtitle: 'Herramientas practicas para desarrolladores'
|
||||||
toggleMenu: 'Toggle menu'
|
toggleMenu: 'Toggle menu'
|
||||||
home: Home
|
home: Home
|
||||||
|
@ -14,13 +15,13 @@ home:
|
||||||
p1: 'Danos una estrella en'
|
p1: 'Danos una estrella en'
|
||||||
githubRepository: 'Repositorio de IT-Tools en GitHub'
|
githubRepository: 'Repositorio de IT-Tools en GitHub'
|
||||||
p2: 'o síguenos en'
|
p2: 'o síguenos en'
|
||||||
twitterAccount: 'Cuenta de twitter de IT-Tools'
|
twitterXAccount: 'Cuenta de X de IT-Tools'
|
||||||
thankYou: 'Muchas gracias!'
|
thankYou: 'Muchas gracias!'
|
||||||
nav:
|
nav:
|
||||||
github: 'Repositorio en github'
|
github: 'Repositorio en github'
|
||||||
githubRepository: 'IT-Tools GitHub repository'
|
githubRepository: 'IT-Tools GitHub repository'
|
||||||
twitter: 'Cuenta de Twitter'
|
twitterX: 'Cuenta de X'
|
||||||
twitterAccount: 'Cuenta de twitter de IT Tools'
|
twitterXAccount: 'Cuenta de X de IT Tools'
|
||||||
about: 'Sobre IT-Tools'
|
about: 'Sobre IT-Tools'
|
||||||
aboutLabel: 'Sobre'
|
aboutLabel: 'Sobre'
|
||||||
darkMode: 'Modo obscuro'
|
darkMode: 'Modo obscuro'
|
||||||
|
|
|
@ -3,6 +3,7 @@ home:
|
||||||
newestTools: 'Les nouveaux outils'
|
newestTools: 'Les nouveaux outils'
|
||||||
favoriteTools: 'Vos outils favoris'
|
favoriteTools: 'Vos outils favoris'
|
||||||
allTools: 'Tous les outils'
|
allTools: 'Tous les outils'
|
||||||
|
favoritesDndToolTip: 'Faites glisser et déposez pour réordonner vos favoris'
|
||||||
subtitle: 'Outils pour les développeurs'
|
subtitle: 'Outils pour les développeurs'
|
||||||
toggleMenu: 'Menu'
|
toggleMenu: 'Menu'
|
||||||
home: Accueil
|
home: Accueil
|
||||||
|
@ -13,13 +14,13 @@ home:
|
||||||
p1: 'Soutenez-nous avec une star sur'
|
p1: 'Soutenez-nous avec une star sur'
|
||||||
githubRepository: "le dépôt GitHub d'IT-Tools"
|
githubRepository: "le dépôt GitHub d'IT-Tools"
|
||||||
p2: 'ou suivez-nous sur'
|
p2: 'ou suivez-nous sur'
|
||||||
twitterAccount: "le compte Twitter d'IT-Tools"
|
twitterXAccount: "le compte X d'IT-Tools"
|
||||||
thankYou: 'Merci !'
|
thankYou: 'Merci !'
|
||||||
nav:
|
nav:
|
||||||
github: 'Dépôt GitHub'
|
github: 'Dépôt GitHub'
|
||||||
githubRepository: "Dépôt GitHub d'IT-Tools"
|
githubRepository: "Dépôt GitHub d'IT-Tools"
|
||||||
twitter: 'Compte Twitter'
|
twitterX: 'Compte X'
|
||||||
twitterAccount: "Compte Twitter d'IT-Tools"
|
twitterXAccount: "Compte X d'IT-Tools"
|
||||||
about: "À propos d'IT-Tools"
|
about: "À propos d'IT-Tools"
|
||||||
aboutLabel: 'À propos'
|
aboutLabel: 'À propos'
|
||||||
darkMode: 'Mode sombre'
|
darkMode: 'Mode sombre'
|
||||||
|
|
|
@ -3,6 +3,7 @@ home:
|
||||||
newestTools: Nyeste verktøy
|
newestTools: Nyeste verktøy
|
||||||
favoriteTools: 'Dine favoritt verktøy'
|
favoriteTools: 'Dine favoritt verktøy'
|
||||||
allTools: 'Alle verktøyene'
|
allTools: 'Alle verktøyene'
|
||||||
|
favoritesDndToolTip: 'Dra og slipp for å omordne favoritter'
|
||||||
subtitle: 'Nyttige verktøy for utviklere'
|
subtitle: 'Nyttige verktøy for utviklere'
|
||||||
toggleMenu: 'Vekslemenmy'
|
toggleMenu: 'Vekslemenmy'
|
||||||
home: Hjem
|
home: Hjem
|
||||||
|
@ -14,13 +15,13 @@ home:
|
||||||
p1: 'Gi oss en stjerne på'
|
p1: 'Gi oss en stjerne på'
|
||||||
githubRepository: 'IT-Tools GitHub-depotet'
|
githubRepository: 'IT-Tools GitHub-depotet'
|
||||||
p2: 'eller følg oss på'
|
p2: 'eller følg oss på'
|
||||||
twitterAccount: 'IT-Tools sin twitter konto'
|
twitterXAccount: 'IT-Tools sin X konto'
|
||||||
thankYou: 'Tusen takk!'
|
thankYou: 'Tusen takk!'
|
||||||
nav:
|
nav:
|
||||||
github: 'GitHub-depot'
|
github: 'GitHub-depot'
|
||||||
githubRepository: 'IT-Tools GitHub-depot'
|
githubRepository: 'IT-Tools GitHub-depot'
|
||||||
twitter: 'Twitter konto'
|
twitterX: 'X konto'
|
||||||
twitterAccount: 'IT Tools Twitter konto'
|
twitterXAccount: 'IT Tools X konto'
|
||||||
about: 'Om IT-Tools'
|
about: 'Om IT-Tools'
|
||||||
aboutLabel: 'Om'
|
aboutLabel: 'Om'
|
||||||
darkMode: 'Mørk modus'
|
darkMode: 'Mørk modus'
|
||||||
|
|
|
@ -3,6 +3,7 @@ home:
|
||||||
newestTools: 'Novas ferramentas'
|
newestTools: 'Novas ferramentas'
|
||||||
favoriteTools: 'Suas ferramentas favoritas'
|
favoriteTools: 'Suas ferramentas favoritas'
|
||||||
allTools: 'Todas as ferramentas'
|
allTools: 'Todas as ferramentas'
|
||||||
|
favoritesDndToolTip: 'Arraste e solte para reordenar favoritos'
|
||||||
subtitle: 'Ferraentas úteis para desenvolvedores'
|
subtitle: 'Ferraentas úteis para desenvolvedores'
|
||||||
toggleMenu: 'Menu'
|
toggleMenu: 'Menu'
|
||||||
home: 'Início'
|
home: 'Início'
|
||||||
|
@ -14,13 +15,13 @@ home:
|
||||||
p1: 'Dê uma estrela no'
|
p1: 'Dê uma estrela no'
|
||||||
githubRepository: 'repositório do IT-Tools no GitHub'
|
githubRepository: 'repositório do IT-Tools no GitHub'
|
||||||
p2: 'ou siga nossa'
|
p2: 'ou siga nossa'
|
||||||
twitterAccount: 'conta IT-Tools no Twitter'
|
twitterXAccount: 'conta IT-Tools no X'
|
||||||
thankYou: 'Obrigado !'
|
thankYou: 'Obrigado !'
|
||||||
nav:
|
nav:
|
||||||
github: 'Repositório no GitHub'
|
github: 'Repositório no GitHub'
|
||||||
githubRepository: 'repositório do IT-Tools no GitHub'
|
githubRepository: 'repositório do IT-Tools no GitHub'
|
||||||
twitter: 'Conta no Twitter'
|
twitterX: 'Conta no X'
|
||||||
twitterAccount: 'conta do IT Tools no Twitter'
|
twitterXAccount: 'conta do IT Tools no X'
|
||||||
about: 'Sobre o IT-Tools'
|
about: 'Sobre o IT-Tools'
|
||||||
aboutLabel: 'Sobre'
|
aboutLabel: 'Sobre'
|
||||||
darkMode: 'Modo Escuro'
|
darkMode: 'Modo Escuro'
|
||||||
|
|
|
@ -3,6 +3,7 @@ home:
|
||||||
newestTools: Найновіші інструменти
|
newestTools: Найновіші інструменти
|
||||||
favoriteTools: 'Ваші улюблені інструменти'
|
favoriteTools: 'Ваші улюблені інструменти'
|
||||||
allTools: 'Усі інструменти'
|
allTools: 'Усі інструменти'
|
||||||
|
favoritesDndToolTip: 'Перетягніть і відпустіть, щоб змінити порядок улюблених'
|
||||||
subtitle: 'Зручні інструменти для розробників'
|
subtitle: 'Зручні інструменти для розробників'
|
||||||
toggleMenu: 'Перемикання меню'
|
toggleMenu: 'Перемикання меню'
|
||||||
home: Головна
|
home: Головна
|
||||||
|
@ -14,13 +15,13 @@ home:
|
||||||
p1: 'Додайте нам зірку на'
|
p1: 'Додайте нам зірку на'
|
||||||
githubRepository: 'GitHub-репозиторій IT-Tools'
|
githubRepository: 'GitHub-репозиторій IT-Tools'
|
||||||
p2: 'або слідкуйте за нами на'
|
p2: 'або слідкуйте за нами на'
|
||||||
twitterAccount: 'Твіттер-акаунт IT-Tools'
|
twitterXAccount: 'X-акаунт IT-Tools'
|
||||||
thankYou: 'Дякуємо!'
|
thankYou: 'Дякуємо!'
|
||||||
nav:
|
nav:
|
||||||
github: 'GitHub-репозиторій'
|
github: 'GitHub-репозиторій'
|
||||||
githubRepository: 'GitHub-репозиторій IT-Tools'
|
githubRepository: 'GitHub-репозиторій IT-Tools'
|
||||||
twitter: 'Твіттер'
|
twitterX: 'X'
|
||||||
twitterAccount: 'Твіттер-акаунт IT-Tools'
|
twitterXAccount: 'X-акаунт IT-Tools'
|
||||||
about: 'Про IT-Tools'
|
about: 'Про IT-Tools'
|
||||||
aboutLabel: 'Про нас'
|
aboutLabel: 'Про нас'
|
||||||
darkMode: 'Темний режим'
|
darkMode: 'Темний режим'
|
||||||
|
|
|
@ -3,6 +3,7 @@ home:
|
||||||
newestTools: Công cụ mới nhất
|
newestTools: Công cụ mới nhất
|
||||||
favoriteTools: 'Công cụ yêu thích của bạn'
|
favoriteTools: 'Công cụ yêu thích của bạn'
|
||||||
allTools: 'Tất cả công cụ'
|
allTools: 'Tất cả công cụ'
|
||||||
|
favoritesDndToolTip: 'Kéo thả để sắp xếp lại yêu thích'
|
||||||
subtitle: 'Công cụ cho nhà phát triển.'
|
subtitle: 'Công cụ cho nhà phát triển.'
|
||||||
toggleMenu: 'Chuyển đổi menu'
|
toggleMenu: 'Chuyển đổi menu'
|
||||||
home: Trang chủ
|
home: Trang chủ
|
||||||
|
@ -14,13 +15,13 @@ home:
|
||||||
p1: 'Hãy cho chúng tôi một ngôi sao trên'
|
p1: 'Hãy cho chúng tôi một ngôi sao trên'
|
||||||
githubRepository: 'Kho GitHub IT-Tools'
|
githubRepository: 'Kho GitHub IT-Tools'
|
||||||
p2: 'hoặc theo dõi chúng tôi trên'
|
p2: 'hoặc theo dõi chúng tôi trên'
|
||||||
twitterAccount: 'Tài khoản Twitter IT-Tools'
|
twitterXAccount: 'Tài khoản X IT-Tools'
|
||||||
thankYou: 'Cảm ơn bạn!'
|
thankYou: 'Cảm ơn bạn!'
|
||||||
nav:
|
nav:
|
||||||
github: 'Kho GitHub'
|
github: 'Kho GitHub'
|
||||||
githubRepository: 'Kho GitHub IT-Tools'
|
githubRepository: 'Kho GitHub IT-Tools'
|
||||||
twitter: 'Tài khoản Twitter'
|
twitterX: 'Tài khoản X'
|
||||||
twitterAccount: 'Tài khoản Twitter IT Tools'
|
twitterXAccount: 'Tài khoản X IT Tools'
|
||||||
about: 'Về IT-Tools'
|
about: 'Về IT-Tools'
|
||||||
aboutLabel: 'Giới thiệu'
|
aboutLabel: 'Giới thiệu'
|
||||||
darkMode: 'Chế độ tối'
|
darkMode: 'Chế độ tối'
|
||||||
|
|
|
@ -3,6 +3,7 @@ home:
|
||||||
newestTools: '最新工具'
|
newestTools: '最新工具'
|
||||||
favoriteTools: '我的收藏'
|
favoriteTools: '我的收藏'
|
||||||
allTools: '全部工具'
|
allTools: '全部工具'
|
||||||
|
favoritesDndToolTip: '拖放重新排列收藏夹'
|
||||||
subtitle: '助力开发人员和 IT 工作者'
|
subtitle: '助力开发人员和 IT 工作者'
|
||||||
toggleMenu: '切换菜单'
|
toggleMenu: '切换菜单'
|
||||||
home: '主页'
|
home: '主页'
|
||||||
|
@ -14,13 +15,13 @@ home:
|
||||||
p1: '给我们 Star'
|
p1: '给我们 Star'
|
||||||
githubRepository: 'GitHub 仓库'
|
githubRepository: 'GitHub 仓库'
|
||||||
p2: '关注我们的'
|
p2: '关注我们的'
|
||||||
twitterAccount: 'Twitter'
|
twitterXAccount: 'IT-Tools X 账号'
|
||||||
thankYou: '感谢您的支持!'
|
thankYou: '感谢您的支持!'
|
||||||
nav:
|
nav:
|
||||||
github: 'GitHub 仓库'
|
github: 'GitHub 仓库'
|
||||||
githubRepository: 'GitHub 仓库'
|
githubRepository: 'GitHub 仓库'
|
||||||
twitter: 'Twitter 账号'
|
twitterX: 'Twitter 账号'
|
||||||
twitterAccount: 'Twitter 账号'
|
twitterXAccount: 'IT-Tools X 账号'
|
||||||
about: '关于 IT-Tools'
|
about: '关于 IT-Tools'
|
||||||
aboutLabel: '关于'
|
aboutLabel: '关于'
|
||||||
darkMode: '深色模式'
|
darkMode: '深色模式'
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
"@it-tools/oggen": "^1.3.0",
|
"@it-tools/oggen": "^1.3.0",
|
||||||
"@regexper/render": "^1.0.0",
|
"@regexper/render": "^1.0.0",
|
||||||
"@sindresorhus/slugify": "^2.2.1",
|
"@sindresorhus/slugify": "^2.2.1",
|
||||||
|
"@tabler/icons-vue": "^3.20.0",
|
||||||
"@tiptap/pm": "2.1.6",
|
"@tiptap/pm": "2.1.6",
|
||||||
"@tiptap/starter-kit": "2.1.6",
|
"@tiptap/starter-kit": "2.1.6",
|
||||||
"@tiptap/vue-3": "2.0.3",
|
"@tiptap/vue-3": "2.0.3",
|
||||||
|
@ -98,6 +99,7 @@
|
||||||
"vue-router": "^4.1.6",
|
"vue-router": "^4.1.6",
|
||||||
"vue-shadow-dom": "^4.2.0",
|
"vue-shadow-dom": "^4.2.0",
|
||||||
"vue-tsc": "^1.8.1",
|
"vue-tsc": "^1.8.1",
|
||||||
|
"vuedraggable": "^4.1.0",
|
||||||
"xml-formatter": "^3.3.2",
|
"xml-formatter": "^3.3.2",
|
||||||
"xml-js": "^1.6.11",
|
"xml-js": "^1.6.11",
|
||||||
"yaml": "^2.2.1"
|
"yaml": "^2.2.1"
|
||||||
|
|
28
pnpm-lock.yaml
generated
28
pnpm-lock.yaml
generated
|
@ -17,6 +17,9 @@ dependencies:
|
||||||
'@sindresorhus/slugify':
|
'@sindresorhus/slugify':
|
||||||
specifier: ^2.2.1
|
specifier: ^2.2.1
|
||||||
version: 2.2.1
|
version: 2.2.1
|
||||||
|
'@tabler/icons-vue':
|
||||||
|
specifier: ^3.20.0
|
||||||
|
version: 3.20.0(vue@3.3.4)
|
||||||
'@tiptap/pm':
|
'@tiptap/pm':
|
||||||
specifier: 2.1.6
|
specifier: 2.1.6
|
||||||
version: 2.1.6
|
version: 2.1.6
|
||||||
|
@ -191,6 +194,9 @@ dependencies:
|
||||||
vue-tsc:
|
vue-tsc:
|
||||||
specifier: ^1.8.1
|
specifier: ^1.8.1
|
||||||
version: 1.8.1(typescript@5.2.2)
|
version: 1.8.1(typescript@5.2.2)
|
||||||
|
vuedraggable:
|
||||||
|
specifier: ^4.1.0
|
||||||
|
version: 4.1.0(vue@3.3.4)
|
||||||
xml-formatter:
|
xml-formatter:
|
||||||
specifier: ^3.3.2
|
specifier: ^3.3.2
|
||||||
version: 3.3.2
|
version: 3.3.2
|
||||||
|
@ -2653,6 +2659,17 @@ packages:
|
||||||
resolution: {integrity: sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==}
|
resolution: {integrity: sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@tabler/icons-vue@3.20.0(vue@3.3.4):
|
||||||
|
resolution: {integrity: sha512-kymV0q+bFNqU6bmdlnfK9ru88xFydYIs+jfe0160bLTmcq94ZxcLfXO5JLMq5kjntUSNb4fBvGk0mXB7aDCYnA==}
|
||||||
|
peerDependencies:
|
||||||
|
vue: '>=3.0.1'
|
||||||
|
dependencies:
|
||||||
|
'@tabler/icons': 3.20.0
|
||||||
|
vue: 3.3.4
|
||||||
|
|
||||||
|
/@tabler/icons@3.20.0:
|
||||||
|
resolution: {integrity: sha512-nXSeUzsCOxX/Of+kdUVQfxL9bG+ck8XCWNf9dGSpE+nhVexRwk/4HiDQDxFDysfT7vfgSut6GXnrZsU5M5dSlA==}
|
||||||
|
|
||||||
/@tiptap/core@2.1.12(@tiptap/pm@2.1.6):
|
/@tiptap/core@2.1.12(@tiptap/pm@2.1.6):
|
||||||
resolution: {integrity: sha512-ZGc3xrBJA9KY8kln5AYTj8y+GDrKxi7u95xIl2eccrqTY5CQeRu6HRNM1yT4mAjuSaG9jmazyjGRlQuhyxCKxQ==}
|
resolution: {integrity: sha512-ZGc3xrBJA9KY8kln5AYTj8y+GDrKxi7u95xIl2eccrqTY5CQeRu6HRNM1yT4mAjuSaG9jmazyjGRlQuhyxCKxQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -8217,6 +8234,9 @@ packages:
|
||||||
tslib: 2.5.0
|
tslib: 2.5.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/sortablejs@1.14.0:
|
||||||
|
resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==}
|
||||||
|
|
||||||
/source-map-js@1.0.2:
|
/source-map-js@1.0.2:
|
||||||
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
|
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
@ -9342,6 +9362,14 @@ packages:
|
||||||
'@vue/server-renderer': 3.3.4(vue@3.3.4)
|
'@vue/server-renderer': 3.3.4(vue@3.3.4)
|
||||||
'@vue/shared': 3.3.4
|
'@vue/shared': 3.3.4
|
||||||
|
|
||||||
|
/vuedraggable@4.1.0(vue@3.3.4):
|
||||||
|
resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==}
|
||||||
|
peerDependencies:
|
||||||
|
vue: ^3.0.1
|
||||||
|
dependencies:
|
||||||
|
sortablejs: 1.14.0
|
||||||
|
vue: 3.3.4
|
||||||
|
|
||||||
/vueuc@0.4.51(vue@3.3.4):
|
/vueuc@0.4.51(vue@3.3.4):
|
||||||
resolution: {integrity: sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==}
|
resolution: {integrity: sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { BrandGithub, BrandTwitter, InfoCircle, Moon, Sun } from '@vicons/tabler';
|
import { IconBrandGithub, IconBrandX, IconInfoCircle, IconMoon, IconSun } from '@tabler/icons-vue';
|
||||||
import { useStyleStore } from '@/stores/style.store';
|
import { useStyleStore } from '@/stores/style.store';
|
||||||
|
|
||||||
const styleStore = useStyleStore();
|
const styleStore = useStyleStore();
|
||||||
|
@ -16,32 +16,32 @@ const { isDarkTheme } = toRefs(styleStore);
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
:aria-label="$t('home.nav.githubRepository')"
|
:aria-label="$t('home.nav.githubRepository')"
|
||||||
>
|
>
|
||||||
<n-icon size="25" :component="BrandGithub" />
|
<n-icon size="25" :component="IconBrandGithub" />
|
||||||
</c-button>
|
</c-button>
|
||||||
</c-tooltip>
|
</c-tooltip>
|
||||||
|
|
||||||
<c-tooltip :tooltip="$t('home.nav.twitter')" position="bottom">
|
<c-tooltip :tooltip="$t('home.nav.twitterX')" position="bottom">
|
||||||
<c-button
|
<c-button
|
||||||
circle
|
circle
|
||||||
variant="text"
|
variant="text"
|
||||||
href="https://twitter.com/ittoolsdottech"
|
href="https://x.com/ittoolsdottech"
|
||||||
rel="noopener"
|
rel="noopener"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
:aria-label="$t('home.nav.twitterAccount')"
|
:aria-label="$t('home.nav.twitterXAccount')"
|
||||||
>
|
>
|
||||||
<n-icon size="25" :component="BrandTwitter" />
|
<n-icon size="25" :component="IconBrandX" />
|
||||||
</c-button>
|
</c-button>
|
||||||
</c-tooltip>
|
</c-tooltip>
|
||||||
|
|
||||||
<c-tooltip :tooltip="$t('home.nav.about')" position="bottom">
|
<c-tooltip :tooltip="$t('home.nav.about')" position="bottom">
|
||||||
<c-button circle variant="text" to="/about" :aria-label="$t('home.nav.aboutLabel')">
|
<c-button circle variant="text" to="/about" :aria-label="$t('home.nav.aboutLabel')">
|
||||||
<n-icon size="25" :component="InfoCircle" />
|
<n-icon size="25" :component="IconInfoCircle" />
|
||||||
</c-button>
|
</c-button>
|
||||||
</c-tooltip>
|
</c-tooltip>
|
||||||
<c-tooltip :tooltip="isDarkTheme ? $t('home.nav.lightMode') : $t('home.nav.darkMode')" position="bottom">
|
<c-tooltip :tooltip="isDarkTheme ? $t('home.nav.lightMode') : $t('home.nav.darkMode')" position="bottom">
|
||||||
<c-button circle variant="text" :aria-label="$t('home.nav.mode')" @click="() => styleStore.toggleDark()">
|
<c-button circle variant="text" :aria-label="$t('home.nav.mode')" @click="() => styleStore.toggleDark()">
|
||||||
<n-icon v-if="isDarkTheme" size="25" :component="Sun" />
|
<n-icon v-if="isDarkTheme" size="25" :component="IconSun" />
|
||||||
<n-icon v-else size="25" :component="Moon" />
|
<n-icon v-else size="25" :component="IconMoon" />
|
||||||
</c-button>
|
</c-button>
|
||||||
</c-tooltip>
|
</c-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -40,7 +40,7 @@ const toolDescription = computed<string>(() => t(`tools.${i18nKey.value}.descrip
|
||||||
</n-h1>
|
</n-h1>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<FavoriteButton :tool="{ name: route.meta.name } as Tool" />
|
<FavoriteButton :tool="{ name: route.meta.name, path: route.path } as Tool" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Heart } from '@vicons/tabler';
|
import { IconDragDrop, IconHeart } from '@tabler/icons-vue';
|
||||||
import { useHead } from '@vueuse/head';
|
import { useHead } from '@vueuse/head';
|
||||||
|
import { computed } from 'vue';
|
||||||
|
import Draggable from 'vuedraggable';
|
||||||
import ColoredCard from '../components/ColoredCard.vue';
|
import ColoredCard from '../components/ColoredCard.vue';
|
||||||
import ToolCard from '../components/ToolCard.vue';
|
import ToolCard from '../components/ToolCard.vue';
|
||||||
import { useToolStore } from '@/tools/tools.store';
|
import { useToolStore } from '@/tools/tools.store';
|
||||||
|
@ -10,13 +12,20 @@ const toolStore = useToolStore();
|
||||||
|
|
||||||
useHead({ title: 'IT Tools - Handy online tools for developers' });
|
useHead({ title: 'IT Tools - Handy online tools for developers' });
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
const favoriteTools = computed(() => toolStore.favoriteTools);
|
||||||
|
|
||||||
|
// Update favorite tools order when drag is finished
|
||||||
|
function onUpdateFavoriteTools() {
|
||||||
|
toolStore.updateFavoriteTools(favoriteTools.value); // Update the store with the new order
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="pt-50px">
|
<div class="pt-50px">
|
||||||
<div class="grid-wrapper">
|
<div class="grid-wrapper">
|
||||||
<div class="grid grid-cols-1 gap-12px lg:grid-cols-3 md:grid-cols-3 sm:grid-cols-2 xl:grid-cols-4">
|
<div class="grid grid-cols-1 gap-12px lg:grid-cols-3 md:grid-cols-3 sm:grid-cols-2 xl:grid-cols-4">
|
||||||
<ColoredCard v-if="config.showBanner" :title="$t('home.follow.title')" :icon="Heart">
|
<ColoredCard v-if="config.showBanner" :title="$t('home.follow.title')" :icon="IconHeart">
|
||||||
{{ $t('home.follow.p1') }}
|
{{ $t('home.follow.p1') }}
|
||||||
<a
|
<a
|
||||||
href="https://github.com/CorentinTh/it-tools"
|
href="https://github.com/CorentinTh/it-tools"
|
||||||
|
@ -26,13 +35,13 @@ const { t } = useI18n();
|
||||||
>GitHub</a>
|
>GitHub</a>
|
||||||
{{ $t('home.follow.p2') }}
|
{{ $t('home.follow.p2') }}
|
||||||
<a
|
<a
|
||||||
href="https://twitter.com/ittoolsdottech"
|
href="https://x.com/ittoolsdottech"
|
||||||
rel="noopener"
|
rel="noopener"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
:aria-label="$t('home.follow.twitterAccount')"
|
:aria-label="$t('home.follow.twitterXAccount')"
|
||||||
>Twitter</a>.
|
>X</a>.
|
||||||
{{ $t('home.follow.thankYou') }}
|
{{ $t('home.follow.thankYou') }}
|
||||||
<n-icon :component="Heart" />
|
<n-icon :component="IconHeart" />
|
||||||
</ColoredCard>
|
</ColoredCard>
|
||||||
|
|
||||||
<a href="https://bit.ly/3zBl7DG" target="_blank" rel="noopener" class="text-current decoration-none">
|
<a href="https://bit.ly/3zBl7DG" target="_blank" rel="noopener" class="text-current decoration-none">
|
||||||
|
@ -66,10 +75,21 @@ const { t } = useI18n();
|
||||||
<div v-if="toolStore.favoriteTools.length > 0">
|
<div v-if="toolStore.favoriteTools.length > 0">
|
||||||
<h3 class="mb-5px mt-25px font-500 text-neutral-400">
|
<h3 class="mb-5px mt-25px font-500 text-neutral-400">
|
||||||
{{ $t('home.categories.favoriteTools') }}
|
{{ $t('home.categories.favoriteTools') }}
|
||||||
|
<c-tooltip :tooltip="$t('home.categories.favoritesDndToolTip')">
|
||||||
|
<n-icon :component="IconDragDrop" size="18" />
|
||||||
|
</c-tooltip>
|
||||||
</h3>
|
</h3>
|
||||||
<div class="grid grid-cols-1 gap-12px lg:grid-cols-3 md:grid-cols-3 sm:grid-cols-2 xl:grid-cols-4">
|
<Draggable
|
||||||
<ToolCard v-for="tool in toolStore.favoriteTools" :key="tool.name" :tool="tool" />
|
:list="favoriteTools"
|
||||||
</div>
|
class="grid grid-cols-1 gap-12px lg:grid-cols-3 md:grid-cols-3 sm:grid-cols-2 xl:grid-cols-4"
|
||||||
|
ghost-class="ghost-favorites-draggable"
|
||||||
|
item-key="name"
|
||||||
|
@end="onUpdateFavoriteTools"
|
||||||
|
>
|
||||||
|
<template #item="{ element: tool }">
|
||||||
|
<ToolCard :tool="tool" />
|
||||||
|
</template>
|
||||||
|
</Draggable>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
||||||
|
@ -107,4 +127,24 @@ const { t } = useI18n();
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.ghost-favorites-draggable {
|
||||||
|
opacity: 0.4;
|
||||||
|
background-color: #ccc;
|
||||||
|
border: 2px dashed #666;
|
||||||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
|
||||||
|
transform: scale(1.1);
|
||||||
|
animation: ghost-favorites-draggable-animation 0.2s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes ghost-favorites-draggable-animation {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: scale(0.9);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 0.4;
|
||||||
|
transform: scale(1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -84,8 +84,8 @@ const items: MenuItem[] = [
|
||||||
type: 'button',
|
type: 'button',
|
||||||
icon: H3,
|
icon: H3,
|
||||||
title: 'Heading 3',
|
title: 'Heading 3',
|
||||||
action: () => editor.value.chain().focus().toggleHeading({ level: 4 }).run(),
|
action: () => editor.value.chain().focus().toggleHeading({ level: 3 }).run(),
|
||||||
isActive: () => editor.value.isActive('heading', { level: 4 }),
|
isActive: () => editor.value.isActive('heading', { level: 3 }),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'button',
|
type: 'button',
|
||||||
|
|
|
@ -45,7 +45,10 @@ export const useToolStore = defineStore('tools', () => {
|
||||||
newTools: computed(() => tools.value.filter(({ isNew }) => isNew)),
|
newTools: computed(() => tools.value.filter(({ isNew }) => isNew)),
|
||||||
|
|
||||||
addToolToFavorites({ tool }: { tool: MaybeRef<Tool> }) {
|
addToolToFavorites({ tool }: { tool: MaybeRef<Tool> }) {
|
||||||
favoriteToolsName.value.push(get(tool).path);
|
const toolPath = get(tool).path;
|
||||||
|
if (toolPath) {
|
||||||
|
favoriteToolsName.value.push(toolPath);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
removeToolFromFavorites({ tool }: { tool: MaybeRef<Tool> }) {
|
removeToolFromFavorites({ tool }: { tool: MaybeRef<Tool> }) {
|
||||||
|
@ -56,5 +59,9 @@ export const useToolStore = defineStore('tools', () => {
|
||||||
return favoriteToolsName.value.includes(get(tool).name)
|
return favoriteToolsName.value.includes(get(tool).name)
|
||||||
|| favoriteToolsName.value.includes(get(tool).path);
|
|| favoriteToolsName.value.includes(get(tool).path);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
updateFavoriteTools(newOrder: ToolWithCategory[]) {
|
||||||
|
favoriteToolsName.value = newOrder.map(tool => tool.path);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue