From 76bf0be7d51a7395ebca3c62c44c64ca48a7f329 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=A2?= <115603590@qq.com>
Date: Sun, 4 Jan 2026 14:28:38 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8D=A2=E8=A1=8C?=
=?UTF-8?q?=E7=AC=A6=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tools/text-reverser/app.html | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/tools/text-reverser/app.html b/tools/text-reverser/app.html
index d8409d4..7a1f1e6 100644
--- a/tools/text-reverser/app.html
+++ b/tools/text-reverser/app.html
@@ -253,15 +253,9 @@
文本反转工具
if (mode.value === 'chars') {
output.value = value.split('').reverse().join('');
} else if (mode.value === 'lines') {
- output.value = value.split(/
- ?
- /).reverse().join('
- ');
+ output.value = value.split(/\r?\n/).reverse().join('\n');
} else {
- output.value = value.split(/
- ?
- /).map(line => line.split('').reverse().join('')).join('
- ');
+ output.value = value.split(/\r?\n/).map(line => Array.from(line).reverse().join('')).join('\n');
}
}
From 7770ece1a9999e9982aefb505e260d73d621d8b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=A2?= <115603590@qq.com>
Date: Sun, 4 Jan 2026 14:53:28 +0800
Subject: [PATCH 2/4] =?UTF-8?q?Fix=20=E4=BF=AE=E5=A4=8D=E4=B8=A2=E5=A4=B1?=
=?UTF-8?q?=E7=9A=84=E6=8D=A2=E8=A1=8C=E7=AC=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tools/line-ending-converter/app.html | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/tools/line-ending-converter/app.html b/tools/line-ending-converter/app.html
index 911335d..7e1f6b1 100644
--- a/tools/line-ending-converter/app.html
+++ b/tools/line-ending-converter/app.html
@@ -240,17 +240,12 @@ 行尾符转换器
const linesEl = document.getElementById('lines');
function normalize(value) {
- return value.replace(/
- /g, '
- ').replace(/
- /g, '
- ');
+ return value.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
}
function updateLines(value) {
const normalized = normalize(value);
- linesEl.textContent = normalized ? normalized.split('
- ').length : '0';
+ linesEl.textContent = normalized ? normalized.split('\n').length : '0';
}
function convertToLf() {
@@ -261,9 +256,7 @@ 行尾符转换器
function convertToCrlf() {
const normalized = normalize(input.value);
- output.value = normalized.replace(/
- /g, '
- ');
+ output.value = normalized.replace(/\n/g, '\r\n');
updateLines(normalized);
}
From d3b05f9c8a3f59b2a05ba64d500d050439a36981 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=A2?= <115603590@qq.com>
Date: Mon, 5 Jan 2026 10:24:50 +0800
Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DtimeHex.substring(?=
=?UTF-8?q?12,=2015)=E4=B8=BA=E7=A9=BA=EF=BC=8C=E5=AF=BC=E8=87=B4UUIDv1?=
=?UTF-8?q?=E7=BC=BA=E5=B0=914=E4=BD=8D=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tools/uuid-generator/app.html | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
diff --git a/tools/uuid-generator/app.html b/tools/uuid-generator/app.html
index e5144ab..9a92940 100644
--- a/tools/uuid-generator/app.html
+++ b/tools/uuid-generator/app.html
@@ -376,17 +376,25 @@ 生成结果
return v.toString(16);
});
} else if (version === '1') {
- // UUID v1 simulation (timestamp-based)
- const timestamp = Date.now();
- const timeHex = timestamp.toString(16).padStart(12, '0');
- const clockSeq = Math.floor(Math.random() * 16384).toString(16).padStart(4, '0');
- const node = Math.floor(Math.random() * 281474976710656).toString(16).padStart(12, '0');
-
- return timeHex.substring(0, 8) + '-' +
- timeHex.substring(8, 12) + '-1' +
- timeHex.substring(12, 15) + '-' +
- clockSeq.substring(0, 1) + '0' + clockSeq.substring(1) + '-' +
- node;
+ // UUID v1(RFC 4122 正确实现)
+ const UUID_EPOCH = 12219292800000n; // ms between 1582-10-15 and 1970-01-01
+ const now = BigInt(Date.now());
+ const time100ns = (now + UUID_EPOCH) * 10000n;
+ const timeLow = Number(time100ns & 0xffffffffn);
+ const timeMid = Number((time100ns >> 32n) & 0xffffn);
+ const timeHi = Number((time100ns >> 48n) & 0x0fffn) | 0x1000; // version = 1
+ const clockSeq = Math.floor(Math.random() * 0x3fff);
+ const clockSeqHi = (clockSeq >> 8) | 0x80; // variant = 10xx
+ const clockSeqLow = clockSeq & 0xff;
+ const node = crypto.getRandomValues(new Uint8Array(6));
+ return (
+ timeLow.toString(16).padStart(8, '0') + '-' +
+ timeMid.toString(16).padStart(4, '0') + '-' +
+ timeHi.toString(16).padStart(4, '0') + '-' +
+ clockSeqHi.toString(16).padStart(2, '0') +
+ clockSeqLow.toString(16).padStart(2, '0') + '-' +
+ [...node].map(b => b.toString(16).padStart(2, '0')).join('')
+ );
}
return generateUUID('4');
}
From 4d18d4236e99f79bbf07d7bff6b5961b1d3a78ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=AE=A2?= <115603590@qq.com>
Date: Mon, 5 Jan 2026 16:20:01 +0800
Subject: [PATCH 4/4] =?UTF-8?q?fix:=201.=E4=BF=AE=E5=A4=8D=E8=B7=AF?=
=?UTF-8?q?=E5=BE=84=E9=94=99=E8=AF=AF=EF=BC=9B=202.=E5=8F=96=E6=B6=88?=
=?UTF-8?q?=E5=8A=A0=E8=BD=BD=E8=BF=9C=E7=A8=8B=E8=B5=84=E6=BA=90=EF=BC=8C?=
=?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=A0onerror=E7=9A=84=E9=94=99=E8=AF=AF?=
=?UTF-8?q?=E5=86=99=E6=B3=95=E5=AF=BC=E8=87=B4=E5=86=85=E7=BD=91=E4=BD=BF?=
=?UTF-8?q?=E7=94=A8=E6=97=B6=E6=97=A0=E6=B3=95=E5=88=87=E6=8D=A2=E5=8A=A0?=
=?UTF-8?q?=E8=BD=BD=E6=9C=AC=E5=9C=B0=E9=9D=99=E6=80=81=E8=B5=84=E6=BA=90?=
=?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #8
---
index.html | 8 ++++----
reference.html | 2 +-
tools-rank.html | 12 ++++++------
tools/base32-decode/index.html | 2 +-
tools/base32-encode/index.html | 2 +-
tools/base58-decode/index.html | 2 +-
tools/base58-encode/index.html | 2 +-
tools/base64-encode/index.html | 4 ++--
tools/base64url-decode/index.html | 2 +-
tools/base64url-encode/index.html | 2 +-
tools/binary-decode/index.html | 2 +-
tools/binary-encode/index.html | 2 +-
tools/caesar-cipher/index.html | 2 +-
tools/color-picker/index.html | 4 ++--
tools/csv-to-tsv/index.html | 2 +-
tools/csv-to-yaml/index.html | 2 +-
tools/gitignore-generator/index.html | 2 +-
tools/hex-decode/index.html | 2 +-
tools/hex-encode/index.html | 2 +-
tools/html-formatter/app.html | 2 +-
tools/html-minifier/index.html | 2 +-
tools/html-to-markdown/index.html | 2 +-
tools/html-to-text/index.html | 2 +-
tools/image-compressor/app.html | 4 ++--
tools/js-formatter/app.html | 2 +-
tools/js-minifier/index.html | 2 +-
tools/json-minifier/index.html | 2 +-
tools/json-sorter/index.html | 2 +-
tools/json-to-markdown/index.html | 2 +-
tools/json-to-tsv/index.html | 2 +-
tools/json-to-xml/index.html | 2 +-
tools/json-to-yaml/index.html | 6 +++---
tools/jwt-generator/index.html | 2 +-
tools/markdown-to-text/index.html | 2 +-
tools/meta-tags-generator/index.html | 2 +-
tools/morse-decode/index.html | 2 +-
tools/morse-encode/index.html | 2 +-
tools/nanoid-generator/index.html | 2 +-
tools/password-generator/index.html | 4 ++--
tools/qr-generator/app.html | 2 +-
tools/qr-generator/index.html | 4 ++--
tools/random-number/index.html | 2 +-
tools/random-picker/index.html | 2 +-
tools/regex-tester/index.html | 4 ++--
tools/robots-txt-generator/index.html | 2 +-
tools/rot13/index.html | 2 +-
tools/sitemap-generator/index.html | 2 +-
tools/sql-formatter/app.html | 2 +-
tools/sql-minifier/index.html | 2 +-
tools/text-to-html/index.html | 2 +-
tools/tsv-to-csv/index.html | 2 +-
tools/tsv-to-json/index.html | 2 +-
tools/ulid-generator/index.html | 2 +-
tools/unicode-escape/index.html | 2 +-
tools/unicode-unescape/index.html | 2 +-
tools/url-encode/index.html | 4 ++--
tools/xml-formatter/index.html | 2 +-
tools/xml-minifier/index.html | 2 +-
tools/xml-to-yaml/index.html | 2 +-
tools/yaml-formatter/index.html | 2 +-
tools/yaml-minifier/index.html | 2 +-
tools/yaml-to-csv/index.html | 2 +-
tools/yaml-to-json/index.html | 2 +-
tools/yaml-to-xml/index.html | 2 +-
64 files changed, 81 insertions(+), 81 deletions(-)
diff --git a/index.html b/index.html
index c95edd1..2a57daa 100644
--- a/index.html
+++ b/index.html
@@ -19,7 +19,7 @@
-
+
-
+