Compare commits
2 Commits
3deefdccff
...
ec61d5aa18
Author | SHA1 | Date | |
---|---|---|---|
ec61d5aa18 | |||
b87816c5eb |
5
.gitignore
vendored
5
.gitignore
vendored
@ -23,5 +23,6 @@ pnpm-debug.log*
|
|||||||
# jetbrains setting folder
|
# jetbrains setting folder
|
||||||
.idea/
|
.idea/
|
||||||
|
|
||||||
# test articles
|
# ignore test articles except for article definitions
|
||||||
src/content/
|
src/content/*
|
||||||
|
!src/content/config.ts
|
||||||
|
@ -21,4 +21,4 @@ fi
|
|||||||
|
|
||||||
mv ${ld_site_dist_target} "${ld_site_dist_target}-old"
|
mv ${ld_site_dist_target} "${ld_site_dist_target}-old"
|
||||||
mv dist ${ld_site_dist_target}
|
mv dist ${ld_site_dist_target}
|
||||||
rm -rf "${ld_site_dist_target}-old" ${original_article_destination}
|
rm -rf "${ld_site_dist_target}-old"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
---
|
||||||
|
---
|
||||||
|
|
||||||
<ul class="tool-list">
|
<ul class="tool-list">
|
||||||
<li class="tool-item"><a href="/tool/unit_conversion">单位换算</a></li>
|
<li class="tool-item"><a href="/tool/unit_conversion">单位换算</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, h, ref } from 'vue'
|
import { computed, ref } from 'vue'
|
||||||
import BigNumber from "bignumber.js";
|
import BigNumber from "bignumber.js";
|
||||||
|
|
||||||
const unitToByte: { [name: string]: number } = {
|
const unitToByte: { [name: string]: number } = {
|
||||||
@ -38,11 +38,11 @@ let variable: { [name: keyof typeof unitToByte]: string } = {
|
|||||||
|
|
||||||
const size = ref(variable);
|
const size = ref(variable);
|
||||||
|
|
||||||
function sizeChanged(event: any, unitName: keyof typeof unitToByte) {
|
function sizeChanged(unitName: keyof typeof unitToByte):void {
|
||||||
let result: { [name in keyof typeof unitToByte]: string } = Object();
|
let result: { [name in keyof typeof unitToByte]: string } = Object();
|
||||||
// assign 0 to current input if nothing is passed
|
// assign 0 to current input if nothing is passed
|
||||||
if (size.value[unitName].length === 0) result[unitName] = '0';
|
if (size.value[unitName].length === 0) result[unitName] = '0';
|
||||||
let inputedBytes = new BigNumber(unitToByte[unitName]).multipliedBy(size.value[unitName]);
|
let inputedBytes: BigNumber = new BigNumber(unitToByte[unitName]).multipliedBy(size.value[unitName]);
|
||||||
for (const key in unitToByte) {
|
for (const key in unitToByte) {
|
||||||
result[key] = inputedBytes.div(unitToByte[key]).toString();
|
result[key] = inputedBytes.div(unitToByte[key]).toString();
|
||||||
}
|
}
|
||||||
@ -57,7 +57,7 @@ function sizeChanged(event: any, unitName: keyof typeof unitToByte) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const isMultipleOf4KiB = computed(() => {
|
const isMultipleOf4KiB = computed(() => {
|
||||||
let userInput = new BigNumber(size.value["unit-ki-byte"])
|
let userInput: BigNumber = new BigNumber(size.value["unit-ki-byte"])
|
||||||
if (userInput.toNumber() === 0) return false;
|
if (userInput.toNumber() === 0) return false;
|
||||||
return userInput.mod(4).toNumber() === 0 ? true : false;
|
return userInput.mod(4).toNumber() === 0 ? true : false;
|
||||||
})
|
})
|
||||||
@ -69,22 +69,22 @@ const isMultipleOf4KiB = computed(() => {
|
|||||||
<p>1000 进制并以 Byte 计: </p>
|
<p>1000 进制并以 Byte 计: </p>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-k-byte" type="text" v-model="size['unit-k-byte']"
|
<input class="size-text" id="unit-k-byte" type="text" v-model="size['unit-k-byte']"
|
||||||
@input="sizeChanged($event, 'unit-k-byte')">
|
@input="sizeChanged('unit-k-byte')">
|
||||||
<span class="unit-name">KB</span>
|
<span class="unit-name">KB</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-m-byte" type="text" v-model="size['unit-m-byte']"
|
<input class="size-text" id="unit-m-byte" type="text" v-model="size['unit-m-byte']"
|
||||||
@input="sizeChanged($event, 'unit-m-byte')">
|
@input="sizeChanged('unit-m-byte')">
|
||||||
<span class="unit-name">MB</span>
|
<span class="unit-name">MB</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-g-byte" type="text" v-model="size['unit-g-byte']"
|
<input class="size-text" id="unit-g-byte" type="text" v-model="size['unit-g-byte']"
|
||||||
@input="sizeChanged($event, 'unit-g-byte')">
|
@input="sizeChanged('unit-g-byte')">
|
||||||
<span class="unit-name">GB</span>
|
<span class="unit-name">GB</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-t-byte" type="text" v-model="size['unit-t-byte']"
|
<input class="size-text" id="unit-t-byte" type="text" v-model="size['unit-t-byte']"
|
||||||
@input="sizeChanged($event, 'unit-t-byte')">
|
@input="sizeChanged('unit-t-byte')">
|
||||||
<span class="unit-name">TB</span>
|
<span class="unit-name">TB</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -92,35 +92,33 @@ const isMultipleOf4KiB = computed(() => {
|
|||||||
<p>1024 进制并以 Byte 计</p>
|
<p>1024 进制并以 Byte 计</p>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-ki-byte" type="text" v-model="size['unit-ki-byte']"
|
<input class="size-text" id="unit-ki-byte" type="text" v-model="size['unit-ki-byte']"
|
||||||
@input="sizeChanged($event, 'unit-ki-byte')">
|
@input="sizeChanged('unit-ki-byte')">
|
||||||
<span class="unit-name">KiB</span>
|
<span class="unit-name">KiB</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-mi-byte" type="text" v-model="size['unit-mi-byte']"
|
<input class="size-text" id="unit-mi-byte" type="text" v-model="size['unit-mi-byte']"
|
||||||
@input="sizeChanged($event, 'unit-mi-byte')">
|
@input="sizeChanged('unit-mi-byte')">
|
||||||
<span class="unit-name">MiB</span>
|
<span class="unit-name">MiB</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-gi-byte" type="text" v-model="size['unit-gi-byte']"
|
<input class="size-text" id="unit-gi-byte" type="text" v-model="size['unit-gi-byte']"
|
||||||
@input="sizeChanged($event, 'unit-gi-byte')">
|
@input="sizeChanged('unit-gi-byte')">
|
||||||
<span class="unit-name">GiB</span>
|
<span class="unit-name">GiB</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-ti-byte" type="text" v-model="size['unit-ti-byte']"
|
<input class="size-text" id="unit-ti-byte" type="text" v-model="size['unit-ti-byte']"
|
||||||
@input="sizeChanged($event, 'unit-ti-byte')">
|
@input="sizeChanged('unit-ti-byte')">
|
||||||
<span class="unit-name">TiB</span>
|
<span class="unit-name">TiB</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-area byte-bit">
|
<div class="unit-conversion-computation-area byte-bit">
|
||||||
<p>以 Byte (B) / bit (b) 计:</p>
|
<p>以 Byte (B) / bit (b) 计:</p>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-byte" type="text" v-model="size['unit-byte']"
|
<input class="size-text" id="unit-byte" type="text" v-model="size['unit-byte']" @input="sizeChanged('unit-byte')">
|
||||||
@input="sizeChanged($event, 'unit-byte')">
|
|
||||||
<span class="unit-name">B</span>
|
<span class="unit-name">B</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-bit" type="text" v-model="size['unit-bit']"
|
<input class="size-text" id="unit-bit" type="text" v-model="size['unit-bit']" @input="sizeChanged('unit-bit')">
|
||||||
@input="sizeChanged($event, 'unit-bit')">
|
|
||||||
<span class="unit-name">b</span>
|
<span class="unit-name">b</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -128,22 +126,22 @@ const isMultipleOf4KiB = computed(() => {
|
|||||||
<p>1000 进制并以 bit 计:</p>
|
<p>1000 进制并以 bit 计:</p>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-k-bit" type="text" v-model="size['unit-k-bit']"
|
<input class="size-text" id="unit-k-bit" type="text" v-model="size['unit-k-bit']"
|
||||||
@input="sizeChanged($event, 'unit-k-bit')">
|
@input="sizeChanged('unit-k-bit')">
|
||||||
<span class="unit-name">Kb</span>
|
<span class="unit-name">Kb</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-m-bit" type="text" v-model="size['unit-m-bit']"
|
<input class="size-text" id="unit-m-bit" type="text" v-model="size['unit-m-bit']"
|
||||||
@input="sizeChanged($event, 'unit-m-bit')">
|
@input="sizeChanged('unit-m-bit')">
|
||||||
<span class="unit-name">Mb</span>
|
<span class="unit-name">Mb</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-g-bit" type="text" v-model="size['unit-g-bit']"
|
<input class="size-text" id="unit-g-bit" type="text" v-model="size['unit-g-bit']"
|
||||||
@input="sizeChanged($event, 'unit-g-bit')">
|
@input="sizeChanged('unit-g-bit')">
|
||||||
<span class="unit-name">Gb</span>
|
<span class="unit-name">Gb</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="unit-conversion-computation-node">
|
<div class="unit-conversion-computation-node">
|
||||||
<input class="size-text" id="unit-t-bit" type="text" v-model="size['unit-t-bit']"
|
<input class="size-text" id="unit-t-bit" type="text" v-model="size['unit-t-bit']"
|
||||||
@input="sizeChanged($event, 'unit-t-bit')">
|
@input="sizeChanged('unit-t-bit')">
|
||||||
<span class="unit-name">Tb</span>
|
<span class="unit-name">Tb</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
35
src/content/config.ts
Normal file
35
src/content/config.ts
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import { z, defineCollection } from 'astro:content';
|
||||||
|
|
||||||
|
const blogCollection = defineCollection({
|
||||||
|
type: 'content',
|
||||||
|
schema: z.object({
|
||||||
|
title: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
category: z.string(),
|
||||||
|
lastUpdate: z.string()
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
const noteCollection = defineCollection({
|
||||||
|
type: 'content',
|
||||||
|
schema: z.object({
|
||||||
|
title: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
category: z.string(),
|
||||||
|
lastUpdate: z.string()
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
const translationCollection = defineCollection({
|
||||||
|
type: 'content',
|
||||||
|
schema: z.object({
|
||||||
|
title: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
category: z.string(),
|
||||||
|
lastUpdate: z.string()
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const collections = {
|
||||||
|
'blog': blogCollection,
|
||||||
|
'note': noteCollection,
|
||||||
|
'translation': translationCollection,
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user