diff --git a/package-lock.json b/package-lock.json
index 1a35a343..158adc82 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -20,6 +20,7 @@
"cronstrue": "^2.2.0",
"crypto-js": "^4.1.1",
"date-fns": "^2.28.0",
+ "highlight.js": "^11.5.1",
"lodash": "^4.17.21",
"naive-ui": "^2.28.0",
"pinia": "^2.0.11",
diff --git a/package.json b/package.json
index 5aa768bc..be15f8d7 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"cronstrue": "^2.2.0",
"crypto-js": "^4.1.1",
"date-fns": "^2.28.0",
+ "highlight.js": "^11.5.1",
"lodash": "^4.17.21",
"naive-ui": "^2.28.0",
"pinia": "^2.0.11",
diff --git a/src/plugins/naive.plugin.ts b/src/plugins/naive.plugin.ts
index 71ca2160..d4e59f85 100644
--- a/src/plugins/naive.plugin.ts
+++ b/src/plugins/naive.plugin.ts
@@ -50,9 +50,11 @@ import {
NImage,
NScrollbar,
NGradientText,
+ NCode,
} from 'naive-ui';
const components = [
+ NCode,
NGradientText,
NScrollbar,
NImage,
diff --git a/src/tools/index.ts b/src/tools/index.ts
index 61fedef7..745b7d6b 100644
--- a/src/tools/index.ts
+++ b/src/tools/index.ts
@@ -1,6 +1,7 @@
import { LockOpen } from '@vicons/tabler';
import type { ToolCategory } from './Tool';
+import { tool as jsonViewer } from './json-viewer';
import { tool as htmlEntities } from './html-entities';
import { tool as urlParser } from './url-parser';
import { tool as deviceInformation } from './device-information';
@@ -50,7 +51,7 @@ export const toolsByCategory: ToolCategory[] = [
{
name: 'Development',
icon: LockOpen,
- components: [gitMemo, randomPortGenerator, crontabGenerator],
+ components: [gitMemo, randomPortGenerator, crontabGenerator, jsonViewer],
},
{
name: 'Text',
diff --git a/src/tools/json-viewer/index.ts b/src/tools/json-viewer/index.ts
new file mode 100644
index 00000000..1911f61d
--- /dev/null
+++ b/src/tools/json-viewer/index.ts
@@ -0,0 +1,11 @@
+import { Braces } from '@vicons/tabler';
+import type { ITool } from './../Tool';
+
+export const tool: ITool = {
+ name: 'JSON viewer',
+ path: '/json-viewer',
+ description: 'Prettify JSON string to a human friendly readable format.',
+ keywords: ['json', 'viewer', 'prettify', 'format'],
+ component: () => import('./json-viewer.vue'),
+ icon: Braces,
+};
diff --git a/src/tools/json-viewer/json-viewer.vue b/src/tools/json-viewer/json-viewer.vue
new file mode 100644
index 00000000..3307cba3
--- /dev/null
+++ b/src/tools/json-viewer/json-viewer.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+