Compare commits

...

3 commits

Author SHA1 Message Date
Maurizio Basaglia
95ab7d1cff
Merge d715376317 into 08d977b8cd 2024-12-16 15:15:31 -05:00
Corentin THOMASSET
08d977b8cd
feat(sponsor): added sponsor banner (#1422) 2024-12-14 12:15:18 +01:00
Maurizio Basaglia
d715376317
Update device-information.vue 2024-11-09 11:39:08 +01:00
8 changed files with 8699 additions and 5948 deletions

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 62 KiB

10
.github/sponsor-banner.svg vendored Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 57 KiB

View file

@ -6,6 +6,10 @@
Useful tools for developer and people working in IT. [Have a look !](https://it-tools.tech). Useful tools for developer and people working in IT. [Have a look !](https://it-tools.tech).
## Sponsors
[![Renderize banner](./.github/sponsor-banner.svg)](https://renderize.tech?utm_source=it-tools&utm_medium=readme)
## Functionalities and roadmap ## Functionalities and roadmap
Please check the [issues](https://github.com/CorentinTh/it-tools/issues) to see if some feature listed to be implemented. Please check the [issues](https://github.com/CorentinTh/it-tools/issues) to see if some feature listed to be implemented.

View file

@ -1,7 +1,8 @@
{ {
"name": "it-tools", "name": "it-tools",
"type": "module",
"version": "2024.10.22-7ca5933", "version": "2024.10.22-7ca5933",
"packageManager": "pnpm@8.15.3", "packageManager": "pnpm@9.11.0",
"description": "Collection of handy online tools for developers, with great UX. ", "description": "Collection of handy online tools for developers, with great UX. ",
"author": "Corentin Th <corentin.thomasset74+it-tools@gmail.com> (https://corentin.tech)", "author": "Corentin Th <corentin.thomasset74+it-tools@gmail.com> (https://corentin.tech)",
"license": "GNU GPLv3", "license": "GNU GPLv3",
@ -137,7 +138,7 @@
"less": "^4.1.3", "less": "^4.1.3",
"prettier": "^3.0.0", "prettier": "^3.0.0",
"typescript": "~5.2.0", "typescript": "~5.2.0",
"unocss": "^0.57.0", "unocss": "^0.65.1",
"unocss-preset-scrollbar": "^0.2.1", "unocss-preset-scrollbar": "^0.2.1",
"unplugin-icons": "^0.17.0", "unplugin-icons": "^0.17.0",
"unplugin-vue-components": "^0.25.0", "unplugin-vue-components": "^0.25.0",

File diff suppressed because it is too large Load diff

View file

@ -59,6 +59,12 @@ export const config = figue({
default: false, default: false,
env: 'VITE_SHOW_BANNER', env: 'VITE_SHOW_BANNER',
}, },
showSponsorBanner: {
doc: 'Show the sponsor banner',
format: 'boolean',
default: false,
env: 'VITE_SHOW_SPONSOR_BANNER',
},
}) })
.loadEnv({ .loadEnv({
...import.meta.env, ...import.meta.env,

View file

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { IconDragDrop, IconHeart } from '@tabler/icons-vue'; import { IconDragDrop, IconFileDescription, IconHeart } from '@tabler/icons-vue';
import { useHead } from '@vueuse/head'; import { useHead } from '@vueuse/head';
import { computed } from 'vue'; import { computed } from 'vue';
import Draggable from 'vuedraggable'; import Draggable from 'vuedraggable';
@ -43,11 +43,29 @@ function onUpdateFavoriteTools() {
{{ $t('home.follow.thankYou') }} {{ $t('home.follow.thankYou') }}
<n-icon :component="IconHeart" /> <n-icon :component="IconHeart" />
</ColoredCard> </ColoredCard>
<a href="https://renderize.tech?utm_source=it-tools&utm_medium=banner" target="_blank" rel="noopener" class="text-current decoration-none">
<c-card v-if="config.showSponsorBanner" class="cursor-pointer !border-2px !hover:border-primary">
<div class="flex items-center justify-between">
<n-icon :component="IconFileDescription" class="text-neutral-400 dark:text-neutral-600" size="40" />
<div class="rounded-full bg-#eeeeee px-10px py-2px text-xs text-black dark:bg-#333333 dark:text-white">
Sponsor
</div>
</div>
<div class="my-5px flex items-baseline gap-4 text-balance text-lg text-black dark:text-white">
Generate PDFs from HTML with Renderize API
</div>
<div class="text-neutral-500 dark:text-neutral-400">
Automate your document generation with our fast, developer-friendly API. Start with a free forever plan.
</div>
</c-card>
</a>
</div> </div>
<transition name="height"> <transition name="height">
<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 text-neutral-400 font-500">
{{ $t('home.categories.favoriteTools') }} {{ $t('home.categories.favoriteTools') }}
<c-tooltip :tooltip="$t('home.categories.favoritesDndToolTip')"> <c-tooltip :tooltip="$t('home.categories.favoritesDndToolTip')">
<n-icon :component="IconDragDrop" size="18" /> <n-icon :component="IconDragDrop" size="18" />
@ -68,7 +86,7 @@ function onUpdateFavoriteTools() {
</transition> </transition>
<div v-if="toolStore.newTools.length > 0"> <div v-if="toolStore.newTools.length > 0">
<h3 class="mb-5px mt-25px font-500 text-neutral-400"> <h3 class="mb-5px mt-25px text-neutral-400 font-500">
{{ t('home.categories.newestTools') }} {{ t('home.categories.newestTools') }}
</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"> <div class="grid grid-cols-1 gap-12px lg:grid-cols-3 md:grid-cols-3 sm:grid-cols-2 xl:grid-cols-4">
@ -76,7 +94,7 @@ function onUpdateFavoriteTools() {
</div> </div>
</div> </div>
<h3 class="mb-5px mt-25px font-500 text-neutral-400"> <h3 class="mb-5px mt-25px text-neutral-400 font-500">
{{ $t('home.categories.allTools') }} {{ $t('home.categories.allTools') }}
</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"> <div class="grid grid-cols-1 gap-12px lg:grid-cols-3 md:grid-cols-3 sm:grid-cols-2 xl:grid-cols-4">

View file

@ -54,6 +54,19 @@ const sections = [
}, },
], ],
}, },
{
name: 'Time zone',
information: [
{
label: 'Time zone name',
value: computed(() => Intl.DateTimeFormat().resolvedOptions().timeZone),
},
{
label: 'UTC offset',
value: computed(() => `${new Date().getTimezoneOffset()} minutes`),
},
],
},
]; ];
</script> </script>