diff --git a/app/components/Map.js b/app/components/Map.js
deleted file mode 100644
index d63f936..0000000
--- a/app/components/Map.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import { MapContainer, TileLayer, Marker, Popup } from 'react-leaflet';
-import 'leaflet/dist/leaflet.css';
-import L from 'leaflet';
-
-// Убедитесь, что иконка маркера отображается правильно
-delete L.Icon.Default.prototype._getIconUrl;
-L.Icon.Default.mergeOptions({
- iconRetinaUrl: '/leaflet/images/marker-icon-2x.png',
- iconUrl: '/leaflet/images/marker-icon.png',
- shadowUrl: '/leaflet/images/marker-shadow.png',
-});
-
-const Map = () => {
- const position = [51.505, -0.09]; // Координаты для центра карты
-
- return (
-
-
-
-
- A pretty CSS3 popup.
Easily customizable.
-
-
-
- );
-};
-
-export default Map;
\ No newline at end of file
diff --git a/app/index.tsx b/app/index.tsx
new file mode 100644
index 0000000..0d99ef6
--- /dev/null
+++ b/app/index.tsx
@@ -0,0 +1,50 @@
+import { useState } from 'react';
+
+const Home: React.FC = () => {
+ const [fileContent, setFileContent] = useState('');
+ const [previewHtml, setPreviewHtml] = useState('');
+
+ const handleFileChange = (event: React.ChangeEvent) => {
+ const file = event.target.files?.[0];
+ if (file) {
+ const reader = new FileReader();
+ reader.onload = (e) => {
+ const xmlString = e.target?.result as string;
+ setFileContent(xmlString);
+ // Преобразование XML в HTML
+ const htmlString = convertXmlToHtml(xmlString);
+ setPreviewHtml(htmlString);
+ };
+ reader.readAsText(file);
+ }
+ };
+
+ const convertXmlToHtml = (xml: string): string => {
+ // Простой пример преобразования XML в HTML
+ return xml.replace(/<(\w+)>(.*?)<\/\1>/g, '$1: $2
');
+ };
+
+ const handleDownload = () => {
+ const blob = new Blob([previewHtml], { type: 'text/html' });
+ const link = document.createElement('a');
+ link.href = URL.createObjectURL(blob);
+ link.download = 'converted.html';
+ link.click();
+ };
+
+ return (
+
+
Конвертер XML в HTML
+
+
+
+
+
Предварительный просмотр:
+
+
+ );
+};
+
+export default Home;
\ No newline at end of file
diff --git a/app/page.tsx b/app/page.tsx
index 925cf1d..1afbb1b 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,4 +1,5 @@
import Image from "next/image";
+import { useState } from 'react';
export default function Home() {
return (
@@ -102,4 +103,4 @@ export default function Home() {
);
-}
+}
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 021cdb6..6b09755 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.1.0",
"dependencies": {
"leaflet": "^1.9.4",
+ "marked": "^15.0.8",
"next": "15.2.3",
"react": "^19.0.0",
"react-dom": "^19.0.0",
@@ -4171,6 +4172,18 @@
"loose-envify": "cli.js"
}
},
+ "node_modules/marked": {
+ "version": "15.0.8",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.8.tgz",
+ "integrity": "sha512-rli4l2LyZqpQuRve5C0rkn6pj3hT8EWPC+zkAxFTAJLxRbENfTAhEQq9itrmf1Y81QtAX5D/MYlGlIomNgj9lA==",
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
diff --git a/package.json b/package.json
index f10a18a..939ba37 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
},
"dependencies": {
"leaflet": "^1.9.4",
+ "marked": "^15.0.8",
"next": "15.2.3",
"react": "^19.0.0",
"react-dom": "^19.0.0",
diff --git a/tsconfig.json b/tsconfig.json
index d8b9323..ab0435e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -22,6 +22,6 @@
"@/*": ["./*"]
}
},
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "app/page", " map/ page/inde"],
"exclude": ["node_modules"]
}