diff --git a/README.md b/README.md
index dfe7f3d4..8bf7616b 100644
--- a/README.md
+++ b/README.md
@@ -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!
-[](https://github.com/corentinth/it-tools/graphs/contributors)
+[](https://github.com/corentinth/it-tools/graphs/contributors)
## Credits
diff --git a/locales/de.yml b/locales/de.yml
index e59ca114..e4f5da64 100644
--- a/locales/de.yml
+++ b/locales/de.yml
@@ -10,6 +10,7 @@ home:
newestTools: Neueste Tools
favoriteTools: Deine Lieblingstools
allTools: Alle Tools
+ favoritesDndToolTip: 'Ziehen und Ablegen, um Favoriten neu zu ordnen'
subtitle: Praktische Tools für Entwickler
toggleMenu: Menü umschalten
home: Startseite
@@ -21,13 +22,13 @@ home:
p1: Gib uns einen Stern auf
githubRepository: IT-Tools GitHub-Repository
p2: oder folge uns auf
- twitterAccount: IT-Tools Twitter-Konto
+ twitterXAccount: IT-Tools X-Konto
thankYou: Vielen Dank!
nav:
github: GitHub-Repository
githubRepository: IT-Tools GitHub-Repository
- twitter: Twitter-Konto
- twitterAccount: IT-Tools Twitter-Konto
+ twitterX: X-Konto
+ twitterXAccount: IT-Tools X-Konto
about: Über IT-Tools
aboutLabel: Über
darkMode: Dunkelmodus
diff --git a/locales/en.yml b/locales/en.yml
index d1cd21c4..b195dbd8 100644
--- a/locales/en.yml
+++ b/locales/en.yml
@@ -3,6 +3,7 @@ home:
newestTools: Newest tools
favoriteTools: 'Your favorite tools'
allTools: 'All the tools'
+ favoritesDndToolTip: 'Drag and drop to reorder favorites'
subtitle: 'Handy tools for developers'
toggleMenu: 'Toggle menu'
home: Home
@@ -14,13 +15,13 @@ home:
p1: 'Give us a star on'
githubRepository: 'IT-Tools GitHub repository'
p2: 'or follow us on'
- twitterAccount: 'IT-Tools Twitter account'
+ twitterXAccount: 'IT-Tools X account'
thankYou: 'Thank you!'
nav:
github: 'GitHub repository'
githubRepository: 'IT-Tools GitHub repository'
- twitter: 'Twitter account'
- twitterAccount: 'IT Tools Twitter account'
+ twitterX: 'X account'
+ twitterXAccount: 'IT Tools X account'
about: 'About IT-Tools'
aboutLabel: 'About'
darkMode: 'Dark mode'
diff --git a/locales/es.yml b/locales/es.yml
index 2d8b2515..58e3444f 100644
--- a/locales/es.yml
+++ b/locales/es.yml
@@ -3,6 +3,7 @@ home:
newestTools: Nuevas herramientas
favoriteTools: 'Tus herramientas favoritas'
allTools: 'Todas las herramientas'
+ favoritesDndToolTip: 'Arrastra y suelta para reordenar favoritos'
subtitle: 'Herramientas practicas para desarrolladores'
toggleMenu: 'Toggle menu'
home: Home
@@ -14,13 +15,13 @@ home:
p1: 'Danos una estrella en'
githubRepository: 'Repositorio de IT-Tools en GitHub'
p2: 'o síguenos en'
- twitterAccount: 'Cuenta de twitter de IT-Tools'
+ twitterXAccount: 'Cuenta de X de IT-Tools'
thankYou: 'Muchas gracias!'
nav:
github: 'Repositorio en github'
githubRepository: 'IT-Tools GitHub repository'
- twitter: 'Cuenta de Twitter'
- twitterAccount: 'Cuenta de twitter de IT Tools'
+ twitterX: 'Cuenta de X'
+ twitterXAccount: 'Cuenta de X de IT Tools'
about: 'Sobre IT-Tools'
aboutLabel: 'Sobre'
darkMode: 'Modo obscuro'
diff --git a/locales/fr.yml b/locales/fr.yml
index cd5cc0e8..2e9bbace 100644
--- a/locales/fr.yml
+++ b/locales/fr.yml
@@ -3,6 +3,7 @@ home:
newestTools: 'Les nouveaux outils'
favoriteTools: 'Vos outils favoris'
allTools: 'Tous les outils'
+ favoritesDndToolTip: 'Faites glisser et déposez pour réordonner vos favoris'
subtitle: 'Outils pour les développeurs'
toggleMenu: 'Menu'
home: Accueil
@@ -13,13 +14,13 @@ home:
p1: 'Soutenez-nous avec une star sur'
githubRepository: "le dépôt GitHub d'IT-Tools"
p2: 'ou suivez-nous sur'
- twitterAccount: "le compte Twitter d'IT-Tools"
+ twitterXAccount: "le compte X d'IT-Tools"
thankYou: 'Merci !'
nav:
github: 'Dépôt GitHub'
githubRepository: "Dépôt GitHub d'IT-Tools"
- twitter: 'Compte Twitter'
- twitterAccount: "Compte Twitter d'IT-Tools"
+ twitterX: 'Compte X'
+ twitterXAccount: "Compte X d'IT-Tools"
about: "À propos d'IT-Tools"
aboutLabel: 'À propos'
darkMode: 'Mode sombre'
diff --git a/locales/no.yml b/locales/no.yml
index e8a7cf98..28f96bf2 100644
--- a/locales/no.yml
+++ b/locales/no.yml
@@ -3,6 +3,7 @@ home:
newestTools: Nyeste verktøy
favoriteTools: 'Dine favoritt verktøy'
allTools: 'Alle verktøyene'
+ favoritesDndToolTip: 'Dra og slipp for å omordne favoritter'
subtitle: 'Nyttige verktøy for utviklere'
toggleMenu: 'Vekslemenmy'
home: Hjem
@@ -14,13 +15,13 @@ home:
p1: 'Gi oss en stjerne på'
githubRepository: 'IT-Tools GitHub-depotet'
p2: 'eller følg oss på'
- twitterAccount: 'IT-Tools sin twitter konto'
+ twitterXAccount: 'IT-Tools sin X konto'
thankYou: 'Tusen takk!'
nav:
github: 'GitHub-depot'
githubRepository: 'IT-Tools GitHub-depot'
- twitter: 'Twitter konto'
- twitterAccount: 'IT Tools Twitter konto'
+ twitterX: 'X konto'
+ twitterXAccount: 'IT Tools X konto'
about: 'Om IT-Tools'
aboutLabel: 'Om'
darkMode: 'Mørk modus'
diff --git a/locales/pt.yml b/locales/pt.yml
index 822bea8a..7e0ef024 100644
--- a/locales/pt.yml
+++ b/locales/pt.yml
@@ -3,6 +3,7 @@ home:
newestTools: 'Novas ferramentas'
favoriteTools: 'Suas ferramentas favoritas'
allTools: 'Todas as ferramentas'
+ favoritesDndToolTip: 'Arraste e solte para reordenar favoritos'
subtitle: 'Ferraentas úteis para desenvolvedores'
toggleMenu: 'Menu'
home: 'Início'
@@ -14,13 +15,13 @@ home:
p1: 'Dê uma estrela no'
githubRepository: 'repositório do IT-Tools no GitHub'
p2: 'ou siga nossa'
- twitterAccount: 'conta IT-Tools no Twitter'
+ twitterXAccount: 'conta IT-Tools no X'
thankYou: 'Obrigado !'
nav:
github: 'Repositório no GitHub'
githubRepository: 'repositório do IT-Tools no GitHub'
- twitter: 'Conta no Twitter'
- twitterAccount: 'conta do IT Tools no Twitter'
+ twitterX: 'Conta no X'
+ twitterXAccount: 'conta do IT Tools no X'
about: 'Sobre o IT-Tools'
aboutLabel: 'Sobre'
darkMode: 'Modo Escuro'
diff --git a/locales/uk.yml b/locales/uk.yml
index ad455a7d..3b66d2c4 100644
--- a/locales/uk.yml
+++ b/locales/uk.yml
@@ -3,6 +3,7 @@ home:
newestTools: Найновіші інструменти
favoriteTools: 'Ваші улюблені інструменти'
allTools: 'Усі інструменти'
+ favoritesDndToolTip: 'Перетягніть і відпустіть, щоб змінити порядок улюблених'
subtitle: 'Зручні інструменти для розробників'
toggleMenu: 'Перемикання меню'
home: Головна
@@ -14,13 +15,13 @@ home:
p1: 'Додайте нам зірку на'
githubRepository: 'GitHub-репозиторій IT-Tools'
p2: 'або слідкуйте за нами на'
- twitterAccount: 'Твіттер-акаунт IT-Tools'
+ twitterXAccount: 'X-акаунт IT-Tools'
thankYou: 'Дякуємо!'
nav:
github: 'GitHub-репозиторій'
githubRepository: 'GitHub-репозиторій IT-Tools'
- twitter: 'Твіттер'
- twitterAccount: 'Твіттер-акаунт IT-Tools'
+ twitterX: 'X'
+ twitterXAccount: 'X-акаунт IT-Tools'
about: 'Про IT-Tools'
aboutLabel: 'Про нас'
darkMode: 'Темний режим'
diff --git a/locales/vi.yml b/locales/vi.yml
index de574a6c..a68017ca 100644
--- a/locales/vi.yml
+++ b/locales/vi.yml
@@ -3,6 +3,7 @@ home:
newestTools: Công cụ mới nhất
favoriteTools: 'Công cụ yêu thích của bạn'
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.'
toggleMenu: 'Chuyển đổi menu'
home: Trang chủ
@@ -14,13 +15,13 @@ home:
p1: 'Hãy cho chúng tôi một ngôi sao trên'
githubRepository: 'Kho GitHub IT-Tools'
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!'
nav:
github: 'Kho GitHub'
githubRepository: 'Kho GitHub IT-Tools'
- twitter: 'Tài khoản Twitter'
- twitterAccount: 'Tài khoản Twitter IT Tools'
+ twitterX: 'Tài khoản X'
+ twitterXAccount: 'Tài khoản X IT Tools'
about: 'Về IT-Tools'
aboutLabel: 'Giới thiệu'
darkMode: 'Chế độ tối'
diff --git a/locales/zh.yml b/locales/zh.yml
index 9b065682..50dd626f 100644
--- a/locales/zh.yml
+++ b/locales/zh.yml
@@ -3,6 +3,7 @@ home:
newestTools: '最新工具'
favoriteTools: '我的收藏'
allTools: '全部工具'
+ favoritesDndToolTip: '拖放重新排列收藏夹'
subtitle: '助力开发人员和 IT 工作者'
toggleMenu: '切换菜单'
home: '主页'
@@ -14,13 +15,13 @@ home:
p1: '给我们 Star'
githubRepository: 'GitHub 仓库'
p2: '关注我们的'
- twitterAccount: 'Twitter'
+ twitterXAccount: 'IT-Tools X 账号'
thankYou: '感谢您的支持!'
nav:
github: 'GitHub 仓库'
githubRepository: 'GitHub 仓库'
- twitter: 'Twitter 账号'
- twitterAccount: 'Twitter 账号'
+ twitterX: 'Twitter 账号'
+ twitterXAccount: 'IT-Tools X 账号'
about: '关于 IT-Tools'
aboutLabel: '关于'
darkMode: '深色模式'
diff --git a/package.json b/package.json
index 4cfbb473..5c991cff 100644
--- a/package.json
+++ b/package.json
@@ -40,6 +40,7 @@
"@it-tools/oggen": "^1.3.0",
"@regexper/render": "^1.0.0",
"@sindresorhus/slugify": "^2.2.1",
+ "@tabler/icons-vue": "^3.20.0",
"@tiptap/pm": "2.1.6",
"@tiptap/starter-kit": "2.1.6",
"@tiptap/vue-3": "2.0.3",
@@ -98,6 +99,7 @@
"vue-router": "^4.1.6",
"vue-shadow-dom": "^4.2.0",
"vue-tsc": "^1.8.1",
+ "vuedraggable": "^4.1.0",
"xml-formatter": "^3.3.2",
"xml-js": "^1.6.11",
"yaml": "^2.2.1"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e43a3217..3798ae17 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,6 +17,9 @@ dependencies:
'@sindresorhus/slugify':
specifier: ^2.2.1
version: 2.2.1
+ '@tabler/icons-vue':
+ specifier: ^3.20.0
+ version: 3.20.0(vue@3.3.4)
'@tiptap/pm':
specifier: 2.1.6
version: 2.1.6
@@ -191,6 +194,9 @@ dependencies:
vue-tsc:
specifier: ^1.8.1
version: 1.8.1(typescript@5.2.2)
+ vuedraggable:
+ specifier: ^4.1.0
+ version: 4.1.0(vue@3.3.4)
xml-formatter:
specifier: ^3.3.2
version: 3.3.2
@@ -2653,6 +2659,17 @@ packages:
resolution: {integrity: sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==}
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):
resolution: {integrity: sha512-ZGc3xrBJA9KY8kln5AYTj8y+GDrKxi7u95xIl2eccrqTY5CQeRu6HRNM1yT4mAjuSaG9jmazyjGRlQuhyxCKxQ==}
peerDependencies:
@@ -8217,6 +8234,9 @@ packages:
tslib: 2.5.0
dev: false
+ /sortablejs@1.14.0:
+ resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==}
+
/source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
@@ -9342,6 +9362,14 @@ packages:
'@vue/server-renderer': 3.3.4(vue@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):
resolution: {integrity: sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==}
peerDependencies:
diff --git a/src/components/NavbarButtons.vue b/src/components/NavbarButtons.vue
index cfc58cdd..4084526d 100644
--- a/src/components/NavbarButtons.vue
+++ b/src/components/NavbarButtons.vue
@@ -1,5 +1,5 @@
-
+
{{ $t('home.follow.p1') }}
GitHub
{{ $t('home.follow.p2') }}
Twitter.
+ :aria-label="$t('home.follow.twitterXAccount')"
+ >X.
{{ $t('home.follow.thankYou') }}
-
+
@@ -66,10 +75,21 @@ const { t } = useI18n();
{{ $t('home.categories.favoriteTools') }}
+
+
+
-
-
-
+
+
+
+
+
@@ -107,4 +127,24 @@ const { t } = useI18n();
opacity: 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);
+ }
+}
diff --git a/src/tools/html-wysiwyg-editor/editor/menu-bar.vue b/src/tools/html-wysiwyg-editor/editor/menu-bar.vue
index d3ad3168..9069673c 100644
--- a/src/tools/html-wysiwyg-editor/editor/menu-bar.vue
+++ b/src/tools/html-wysiwyg-editor/editor/menu-bar.vue
@@ -84,8 +84,8 @@ const items: MenuItem[] = [
type: 'button',
icon: H3,
title: 'Heading 3',
- action: () => editor.value.chain().focus().toggleHeading({ level: 4 }).run(),
- isActive: () => editor.value.isActive('heading', { level: 4 }),
+ action: () => editor.value.chain().focus().toggleHeading({ level: 3 }).run(),
+ isActive: () => editor.value.isActive('heading', { level: 3 }),
},
{
type: 'button',
diff --git a/src/tools/tools.store.ts b/src/tools/tools.store.ts
index 86ef2050..fb12450d 100644
--- a/src/tools/tools.store.ts
+++ b/src/tools/tools.store.ts
@@ -45,7 +45,10 @@ export const useToolStore = defineStore('tools', () => {
newTools: computed(() => tools.value.filter(({ isNew }) => isNew)),
addToolToFavorites({ tool }: { tool: MaybeRef }) {
- favoriteToolsName.value.push(get(tool).path);
+ const toolPath = get(tool).path;
+ if (toolPath) {
+ favoriteToolsName.value.push(toolPath);
+ }
},
removeToolFromFavorites({ tool }: { tool: MaybeRef }) {
@@ -56,5 +59,9 @@ export const useToolStore = defineStore('tools', () => {
return favoriteToolsName.value.includes(get(tool).name)
|| favoriteToolsName.value.includes(get(tool).path);
},
+
+ updateFavoriteTools(newOrder: ToolWithCategory[]) {
+ favoriteToolsName.value = newOrder.map(tool => tool.path);
+ },
};
});