{"_id":"@asafarim/simple-md-viewer","_rev":"22-eb0d7305538e8a3637cc0382b21eb1d3","name":"@asafarim/simple-md-viewer","dist-tags":{"latest":"1.5.2"},"versions":{"1.0.1":{"name":"@asafarim/simple-md-viewer","version":"1.0.1","author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.0.1","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"8fb22eba6597e7b4bdfc0c3cd72b5651256fddc0","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.0.1.tgz","fileCount":18,"integrity":"sha512-HA8JJwGGT3T+TAHjU4TeueWKELjDleXSMeLr1ANhPK7XfrHEYQsdg4LDy3fObz+x5WveRgHvqMmJaa/KLuM1zg==","signatures":[{"sig":"MEYCIQDY3tlMJfCu5lEVXJBEgf3vodm4g+gYuDekomJ8u82KqQIhAOs96AvdXPpPT6f2sQW2IsyXmUcYKL7GZCOhpQ7EB2Wh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1254262},"main":"index.js","_from":"file:asafarim-simple-md-viewer-1.0.1.tgz","scripts":{"dev":"npx kill-port 3501 && vite","build":"vite build","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\""},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\d522d0f9489da99cd60bc037701b21e7\\asafarim-simple-md-viewer-1.0.1.tgz","_integrity":"sha512-HA8JJwGGT3T+TAHjU4TeueWKELjDleXSMeLr1ANhPK7XfrHEYQsdg4LDy3fObz+x5WveRgHvqMmJaa/KLuM1zg==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","typescript":"^5.0.2","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.0.1_1752703901761_0.05543822283689881","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@asafarim/simple-md-viewer","version":"1.0.2","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.0.2","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"b0f2e4274442efd357e2cad21f582e2f9599d2cf","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.0.2.tgz","fileCount":18,"integrity":"sha512-ZV39wAjaiTAXeCII7Agd9EBqIRD11M1neN3PItl7OxSg9BQEsg+8x1o3BcpImefSJekCVTx6SbQNfxYZ+HFzXQ==","signatures":[{"sig":"MEUCIFXF/RAUWHWT4h7P7682joLfACeQoip9NXpmFDn3o4A2AiEAqa8YLLOqP8WT8/xmB6yYMTheehUnimkshC6nw3e7n5M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1254400},"main":"index.js","_from":"file:asafarim-simple-md-viewer-1.0.2.tgz","scripts":{"dev":"npx kill-port 3501 && vite","build":"vite build","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\""},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\098f1b24d0abff6094ae6224f0291558\\asafarim-simple-md-viewer-1.0.2.tgz","_integrity":"sha512-ZV39wAjaiTAXeCII7Agd9EBqIRD11M1neN3PItl7OxSg9BQEsg+8x1o3BcpImefSJekCVTx6SbQNfxYZ+HFzXQ==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","typescript":"^5.0.2","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.0.2_1752704146130_0.656613643327403","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@asafarim/simple-md-viewer","version":"1.1.1","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.1.1","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"ab59eba93aa8d9561be7a7f50e8b4364917652fb","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.1.1.tgz","fileCount":19,"integrity":"sha512-MqkTwX5uoWq/MHwAb5i8btr3uxbxICguf5MeJKIPBnWpGxFvD9qf1FzM7/JGTRuiZrjPYhlKkUjgR94OtjS6xg==","signatures":[{"sig":"MEUCIQCWvTZGbNWV56WxWIKSLn0Dxp9VgQ7RQotPYOKNL7U3rQIgYhEzOCit2IKFKOaqfvRXi5RzV/JWjojFg54DFJuZv68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1294790},"main":"index.js","_from":"file:asafarim-simple-md-viewer-1.1.1.tgz","scripts":{"dev":"npx kill-port 3501 && vite","build":"vite build","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\a970d6c1c29d739bb40b7a3880e261f5\\asafarim-simple-md-viewer-1.1.1.tgz","_integrity":"sha512-MqkTwX5uoWq/MHwAb5i8btr3uxbxICguf5MeJKIPBnWpGxFvD9qf1FzM7/JGTRuiZrjPYhlKkUjgR94OtjS6xg==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.1.1_1752762650591_0.4103253064034247","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@asafarim/simple-md-viewer","version":"1.1.2","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.1.2","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"c137ce3f53967784c33cd0186d00e65c5aad2c22","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.1.2.tgz","fileCount":19,"integrity":"sha512-HDOAVQJEWNNazUfk/l+5SQ0mABc9fRnQu7Is4YJosQdlc/wGCAcmLLExBIo3AVWEjEUIUrVp8jN2YBXXNrOYcg==","signatures":[{"sig":"MEYCIQCqLrJ8p63Zq+kmV0FAulFZC/QR6NhDtkvctdfrqTJ+pwIhAJY5BzUp8E4GHgAoUd/Ziu22dKaDRCGrIB0dBe8vm6fe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1294825},"main":"index.js","_from":"file:asafarim-simple-md-viewer-1.1.2.tgz","scripts":{"dev":"npx kill-port 3501 && vite","build":"vite build","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\729fbeba04943d33767bee017eadc675\\asafarim-simple-md-viewer-1.1.2.tgz","_integrity":"sha512-HDOAVQJEWNNazUfk/l+5SQ0mABc9fRnQu7Is4YJosQdlc/wGCAcmLLExBIo3AVWEjEUIUrVp8jN2YBXXNrOYcg==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.1.2_1752764821492_0.5555900871746369","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@asafarim/simple-md-viewer","version":"1.2.0","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.2.0","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"1d9a00d53adfdf91767343983e8453b719d0e1bd","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.2.0.tgz","fileCount":30,"integrity":"sha512-zrqSjP8Tk7sUwTgZDs08DLwWPW70zaFIEkxFsbkCFFaPVGH0GhMGijMMN9w6oZIRP3OUqfM0cj3xu9aDEvM8Ag==","signatures":[{"sig":"MEUCIQD1q5PTOhNexILc7WdzP3Mbt0jY/OiQVuUSaH8cdPwJIQIgZTxE11BaHRcwezSrS3Nx3WNi5ZeUtQidRDBUHbujjeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1358767},"main":"index.js","_from":"file:asafarim-simple-md-viewer-1.2.0.tgz","scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\6d5408f5860d814aa0496f08bf1b09dc\\asafarim-simple-md-viewer-1.2.0.tgz","_integrity":"sha512-zrqSjP8Tk7sUwTgZDs08DLwWPW70zaFIEkxFsbkCFFaPVGH0GhMGijMMN9w6oZIRP3OUqfM0cj3xu9aDEvM8Ag==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.2.0_1752779608394_0.6969009226501113","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@asafarim/simple-md-viewer","version":"1.2.2","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.2.2","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"a21e5a5104ff918520659063def45da0f03846da","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.2.2.tgz","fileCount":30,"integrity":"sha512-26mRs7VAFoXmavLUaGNbh7b/MbtlAbPxlhnrvi+oUTmD6u3HtgggsVe4LphzwG7iUrojMmRl02VFXXjlOij4rw==","signatures":[{"sig":"MEYCIQCAXYq5hRGZqTrWk//78ijeakUJr6G9qdXNZ80BrNdJaAIhAJGM9yQKTzaVDDY1Ze/ES0m57i7TD1OmrR7DorY8haJC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1358856},"main":"index.js","_from":"file:asafarim-simple-md-viewer-1.2.2.tgz","scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\59b16cdca84b4ed32bcd48c4d719f49c\\asafarim-simple-md-viewer-1.2.2.tgz","_integrity":"sha512-26mRs7VAFoXmavLUaGNbh7b/MbtlAbPxlhnrvi+oUTmD6u3HtgggsVe4LphzwG7iUrojMmRl02VFXXjlOij4rw==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.2.2_1752781851596_0.11268023209828915","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@asafarim/simple-md-viewer","version":"1.2.3","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.2.3","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"e723ee61240ac1e3b68831311701922a68f6b72e","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.2.3.tgz","fileCount":33,"integrity":"sha512-+k4YqT+CWBzFwGR7AvzDAw2qrD6e68aFK70C/y4M2RXk5hBT7nKYZ8XntNOR7cJqL+8kjIvcIyuIxrz+cI+qIA==","signatures":[{"sig":"MEQCICyT84o52k3jAxKEp1hxTS+Kd6GH0oUHNUwLVvhLQ2xMAiAr7S/Lva6QMrKT0Vlwe8fuLEmUn9h1Rf6bY7SlZPKWqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1353746},"main":"index.js","_from":"file:asafarim-simple-md-viewer-1.2.3.tgz","scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\8126ed6e2d46578b6bd2aa703b7e1000\\asafarim-simple-md-viewer-1.2.3.tgz","_integrity":"sha512-+k4YqT+CWBzFwGR7AvzDAw2qrD6e68aFK70C/y4M2RXk5hBT7nKYZ8XntNOR7cJqL+8kjIvcIyuIxrz+cI+qIA==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.2.3_1752784941371_0.692199899767785","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@asafarim/simple-md-viewer","version":"1.2.4","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.2.4","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"0409c11a28431066a105c2207c26698d4a51f109","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.2.4.tgz","fileCount":33,"integrity":"sha512-fINttD+wBK4IyNo7flnOdho2ZpJKWvsXr4c4jgQwO6Mbcgd68IwB6bJL+KIlqD5Oqgc1ZJsdxk2DVmSBuL7WAQ==","signatures":[{"sig":"MEQCIDj0UuUWKaHkOW/5qJoFrltaEiTB2/fmZtlfSN45Hu3fAiAq0hfmhgSq1R2dEZQ0Ltj5ABO6714dNt/p5dAUHeNKzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1370859},"main":"index.js","_from":"file:asafarim-simple-md-viewer-1.2.4.tgz","scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\f731c7d15a5aa3ae03c25626b9061aaa\\asafarim-simple-md-viewer-1.2.4.tgz","_integrity":"sha512-fINttD+wBK4IyNo7flnOdho2ZpJKWvsXr4c4jgQwO6Mbcgd68IwB6bJL+KIlqD5Oqgc1ZJsdxk2DVmSBuL7WAQ==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.2.4_1752867125947_0.44835137307818784","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@asafarim/simple-md-viewer","version":"1.3.0","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.3.0","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"adbf16b4583c409bf314de628000ab5bba7125d6","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.3.0.tgz","fileCount":33,"integrity":"sha512-qTIhXyqKsOYuirFXnIDuohWnpGHCZHNckovtTahqJ9v4Uq08gP5Q6jrJYtveI4L2RWstjiA4qOSSQ4Sr+xG29Q==","signatures":[{"sig":"MEYCIQCczCiNEemqUEgFrcSDUkzmmdh5gb1tN93D83yrYec9wgIhANbDtRjshoq52N0qqg9CuLb4L2gFF13stNahKaYJjHga","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1353726},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.3.0.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\93f8e526d95df6b3439abba91981596f\\asafarim-simple-md-viewer-1.3.0.tgz","_integrity":"sha512-qTIhXyqKsOYuirFXnIDuohWnpGHCZHNckovtTahqJ9v4Uq08gP5Q6jrJYtveI4L2RWstjiA4qOSSQ4Sr+xG29Q==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.3.0_1752872986434_0.5600964384321958","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@asafarim/simple-md-viewer","version":"1.3.1","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.3.1","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"5a1bdba5edc916f7087e045b411561ce27e011f5","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.3.1.tgz","fileCount":33,"integrity":"sha512-z1WEhw+FTP9F6/WgI78NWEf08QSzAi7kVKwZFCyg41jC2fcK6c7ZUyndvo53qBtsyTOR6hoJhHYn+yHs1A7rLg==","signatures":[{"sig":"MEUCIQDXADEuk9ltVliQMgfrQ+sY3b6ULZDca+Gkic9F7V3MugIgaUkyL0YoQZ0mLL7CW4O1eUfmNcCINsPzlTpc4fuDgZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1356567},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.3.1.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\7180252ee507b0522d923ab48d34c1a4\\asafarim-simple-md-viewer-1.3.1.tgz","_integrity":"sha512-z1WEhw+FTP9F6/WgI78NWEf08QSzAi7kVKwZFCyg41jC2fcK6c7ZUyndvo53qBtsyTOR6hoJhHYn+yHs1A7rLg==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.3.1_1752873804950_0.6250767566784059","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@asafarim/simple-md-viewer","version":"1.3.2","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.3.2","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"9cd675075de5502cb3103d3b50b13ef991cc66c7","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.3.2.tgz","fileCount":33,"integrity":"sha512-xmRifdkif/ar6LCyXUnmQmwQxHaxyLxl27krzgZcAMWxgkk6529JN2gwQSTjrGB688Jp2Va/CutpQL24OSYHVQ==","signatures":[{"sig":"MEUCIBVYZeO0Na44Ovlu6TZZo8ShkEW2a9Z4iMjUNahSC/5HAiEA2F8tBY7qJW9odGgrYRSRm/QxxqkjDK1wnOZu569FZDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1356590},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.3.2.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\62eca4a3dfe651ee864311892a541d6c\\asafarim-simple-md-viewer-1.3.2.tgz","_integrity":"sha512-xmRifdkif/ar6LCyXUnmQmwQxHaxyLxl27krzgZcAMWxgkk6529JN2gwQSTjrGB688Jp2Va/CutpQL24OSYHVQ==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.3.2_1752874529326_0.04767514641915338","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@asafarim/simple-md-viewer","version":"1.3.3","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.3.3","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"f367a65a0be1e89f4cb414397dcde99879dab723","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.3.3.tgz","fileCount":33,"integrity":"sha512-Mu9hGF1Ayfcf5KxWRz5cVTuI6wZFlOzC8EkJGiRc9ry0vsht9ZTCwv0MxywPVXld8eYPLnGvKmZsiTVYQRa3PA==","signatures":[{"sig":"MEUCIEfMcp/vENz6/zJXaXX4vg2AcHZBc6bKwKE56DPHar1OAiEAx8hObNvQM7up37pKuqKiglKmEr1dDVYeEOYr1Sogawo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1356592},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.3.3.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json","predeploy":"pnpm run build"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\8de2800e9bd034f22e36738ec7560b74\\asafarim-simple-md-viewer-1.3.3.tgz","_integrity":"sha512-Mu9hGF1Ayfcf5KxWRz5cVTuI6wZFlOzC8EkJGiRc9ry0vsht9ZTCwv0MxywPVXld8eYPLnGvKmZsiTVYQRa3PA==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.3.3_1752902956235_0.491703525308959","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@asafarim/simple-md-viewer","version":"1.3.4","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.3.4","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"73fdc8cf7e768bf31bf482f306897df4e42a7bcf","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.3.4.tgz","fileCount":48,"integrity":"sha512-Hf7HzA2J+GZbCjP8uWd/AnWrz0PCfEnqKRO5PGODGjgXc1BMwyiiGGgGN9yaRLvM7DC3gSCfXJ4/kOHDIMzQSg==","signatures":[{"sig":"MEYCIQC9Z9oug2Q9V4qqK7Oa1MpiU4eOQyxFr8Iim1ZWi0GV8QIhAJveDU5/XReHl09FzniTWmEoHKNplJVULQxgwiQ+I8KM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7029696},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.3.4.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\7f8b959e1ca30b63e02357edc593007d\\asafarim-simple-md-viewer-1.3.4.tgz","_integrity":"sha512-Hf7HzA2J+GZbCjP8uWd/AnWrz0PCfEnqKRO5PGODGjgXc1BMwyiiGGgGN9yaRLvM7DC3gSCfXJ4/kOHDIMzQSg==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.3.4_1752907162066_0.45231659469719654","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"@asafarim/simple-md-viewer","version":"1.3.5","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.3.5","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"427d35cd058c084452eb23a7e375616cfba2ffff","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.3.5.tgz","fileCount":49,"integrity":"sha512-usmG1Xrr74D4QtTgAI9R4FGvA91vNndoFdvOlQd91wlqY6nQgHRaVT8p0y25oCutoyjEmZbPivf3LEL4eCd5mg==","signatures":[{"sig":"MEUCIQDd6JpmnccbGYUAHiroO4VrPdE/lgMmzGVKbAJPF5pPegIgEtIFNiLfuCanfqygAeDMvGnZGaMKeNNf+3IaL8YLvSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7030615},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.3.5.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\657e5348fcad6c2b23a6484f202d8408\\asafarim-simple-md-viewer-1.3.5.tgz","_integrity":"sha512-usmG1Xrr74D4QtTgAI9R4FGvA91vNndoFdvOlQd91wlqY6nQgHRaVT8p0y25oCutoyjEmZbPivf3LEL4eCd5mg==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.3.5_1752909627215_0.5997155074973459","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"@asafarim/simple-md-viewer","version":"1.3.6","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.3.6","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"f451c8fded758d19663721c97e8c055791628b72","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.3.6.tgz","fileCount":49,"integrity":"sha512-wZ/E5dshaI3QWayTeQFTql7U9ADhfFgwnzhNN3GuLXi+krwbrAe+7ZDkAq3rndrXUWCtiWIQO9FZ+zTz6FSTNA==","signatures":[{"sig":"MEUCIEeurR3Cdet/R/6JwCCGN391oFKLJj/N2wWGrhZ8rqiUAiEArJXhrBWfh/VKgDgFv/WkiD3r3N9GR5q7CvM+jEjo2To=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7035129},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.3.6.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 3501 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\5de5b8cc6741df5e5cbb87dc7f778ead\\asafarim-simple-md-viewer-1.3.6.tgz","_integrity":"sha512-wZ/E5dshaI3QWayTeQFTql7U9ADhfFgwnzhNN3GuLXi+krwbrAe+7ZDkAq3rndrXUWCtiWIQO9FZ+zTz6FSTNA==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.3.6_1752920024244_0.45692379705352204","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"@asafarim/simple-md-viewer","version":"1.3.7","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.3.7","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"7453ec7b0a6c1d709c120b2f7160ff053b5cc0f4","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.3.7.tgz","fileCount":49,"integrity":"sha512-JmD5Sni1F4iwUsIpu+ieywXXoSSqfnZFLLeYQYNBezXkH/tLPQHyIwHYbFYhvlP6ln/wL/lB1ALGNyVCfiKIuQ==","signatures":[{"sig":"MEYCIQC3Q4Nc/hQuDQmu7H2OECQEQox7hbH4vGUbBe+J1zE+GwIhAPMjHeC/ebz+pzg40TdicR5kWL8ZfmHd5a3Vcjs+4f9R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7043909},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.3.7.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 5173 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\237a2e0bd3cf565da97b47067596103f\\asafarim-simple-md-viewer-1.3.7.tgz","_integrity":"sha512-JmD5Sni1F4iwUsIpu+ieywXXoSSqfnZFLLeYQYNBezXkH/tLPQHyIwHYbFYhvlP6ln/wL/lB1ALGNyVCfiKIuQ==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","dotenv":"^17.2.0","express":"^4.18.2","react-dom":"^18.2.0","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.3.7_1752961819509_0.4292065355514778","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@asafarim/simple-md-viewer","version":"1.4.0","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.4.0","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"0d20c48d2ad768624382f6e0ed11bc8087147c27","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.4.0.tgz","fileCount":48,"integrity":"sha512-Y3S8qEiUYJH2/LYIlSTHRjMlbdi/ogttrmXndyIvFGajN0p/bOg3Cdvi6ilcbOzQFZgrvtsp4l1PDpgLFuFonw==","signatures":[{"sig":"MEUCIQD2adZyFePnaLMeJpDSuAXvrotnt1COQJVMUv6xTx70lwIgepkkhfKziPakLEq7K12K4w9+Aw6LUK2WALEvneOfOdE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8011312},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.4.0.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 5173 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\c81bb793ee3b04b38060a195b71d604a\\asafarim-simple-md-viewer-1.4.0.tgz","_integrity":"sha512-Y3S8qEiUYJH2/LYIlSTHRjMlbdi/ogttrmXndyIvFGajN0p/bOg3Cdvi6ilcbOzQFZgrvtsp4l1PDpgLFuFonw==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder with YAML front matter support","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","dotenv":"^17.2.0","express":"^4.18.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","remark-gfm":"^3.0.1","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/js-yaml":"^4.0.9","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.4.0_1753046741293_0.6341861502031434","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@asafarim/simple-md-viewer","version":"1.4.1","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.4.1","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"d83f9addd60420af5f7ef27e693e2660f93b6fc4","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.4.1.tgz","fileCount":48,"integrity":"sha512-fkLExtRwsAq8ecYblmROR0ZV2g7Wr6enQ00dE23drpxcpuunPicKaVgjvrcz/Wrj9XWoTYgLfcAjk8Ot58juwQ==","signatures":[{"sig":"MEUCIBZnbJD2dkXre9kldGNWCQZ5NPWvEOrnu9mtX1TFaNR3AiEAmvFu3qXH8A730yOXsqgMUa4WsCWnUOuSU4n9/N3QR2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8016374},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.4.1.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 5173 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\66e3601adfba002f72010a3079e86a7f\\asafarim-simple-md-viewer-1.4.1.tgz","_integrity":"sha512-fkLExtRwsAq8ecYblmROR0ZV2g7Wr6enQ00dE23drpxcpuunPicKaVgjvrcz/Wrj9XWoTYgLfcAjk8Ot58juwQ==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder with YAML front matter support","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","dotenv":"^17.2.0","express":"^4.18.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","remark-gfm":"^3.0.1","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/js-yaml":"^4.0.9","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.4.1_1753047891971_0.622412279981049","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@asafarim/simple-md-viewer","version":"1.4.2","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.4.2","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"0e1ef04a23fed52686c7faaf9765f12fb084139d","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.4.2.tgz","fileCount":48,"integrity":"sha512-1mw9QaVK/TlQ/tzBnQU4TpHPdJ/LQCrJyEmCoAGzJsi2Kq6XmDpDwrt2c6nrHisq+xKmwDLFFqrjgpu/doQDmQ==","signatures":[{"sig":"MEYCIQDnhaqVJGIPCMyt/qwEu8rTywZnkAWv7GDKX3oT0lNZYQIhAK9WL5jyIpsOQ2txpI6P1K0R+7Z6O+OLeI7FFDQZa+pM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7982794},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.4.2.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 5173 5174 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3300 3301 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\cdfd6035595dba0e3125617a54b1594a\\asafarim-simple-md-viewer-1.4.2.tgz","_integrity":"sha512-1mw9QaVK/TlQ/tzBnQU4TpHPdJ/LQCrJyEmCoAGzJsi2Kq6XmDpDwrt2c6nrHisq+xKmwDLFFqrjgpu/doQDmQ==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A simple markdown viewer that displays files from a specified folder with YAML front matter support","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","dotenv":"^17.2.0","express":"^4.18.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","remark-gfm":"^3.0.1","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/js-yaml":"^4.0.9","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.4.2_1753103387826_0.5590437669347088","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@asafarim/simple-md-viewer","version":"1.5.0","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer","directory-browser","file-tree","content-viewer","yaml-frontmatter"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.5.0","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"1459a8392ee5e16b70bee154e1a66a3e3e5c80ed","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.5.0.tgz","fileCount":51,"integrity":"sha512-mKlg9CG8Xa4wbQ2NyPbqHuIB/+Piq/3RP801f83uOM888A5VeVUY5fxfWDbuIKhMmqS/kdL0izI8YE9PGn/3gA==","signatures":[{"sig":"MEQCIGS3zAgiZWjIQ62cOQSdvQd9UdQNzHcBrBGnd4CNsCdfAiA+wXgIIunFBPzGz489lujYspJdgBD9hCrFqzG6axacqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8409149},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.5.0.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 5173 5174 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3300 3301 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\1ffefdacb0202a35c5800a744b977199\\asafarim-simple-md-viewer-1.5.0.tgz","_integrity":"sha512-mKlg9CG8Xa4wbQ2NyPbqHuIB/+Piq/3RP801f83uOM888A5VeVUY5fxfWDbuIKhMmqS/kdL0izI8YE9PGn/3gA==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A professional markdown viewer with file tree navigation, directory content browsing, and advanced YAML front matter support","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","dotenv":"^17.2.0","express":"^4.18.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","remark-gfm":"^3.0.1","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/js-yaml":"^4.0.9","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.5.0_1753113663865_0.3576012206810737","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@asafarim/simple-md-viewer","version":"1.5.1","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer","directory-browser","file-tree","content-viewer","yaml-frontmatter"],"author":{"name":"Ali Safari"},"license":"MIT","_id":"@asafarim/simple-md-viewer@1.5.1","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"dist":{"shasum":"218e7de20573e1326e55c3d7d8e07b9845442109","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.5.1.tgz","fileCount":51,"integrity":"sha512-r52ZIk4c2gMV6KJs5Xm0s27R+X+JoZbFrj7akpnW3alMUyhNudOa/MEdwpMRf+nOvDKucpSTvwayupBvpbEhkA==","signatures":[{"sig":"MEQCIDST/dkuNtmBNRlgzBvodLBYyb6B6Z49E21oRdZVtafgAiBn5gLNWdA9Ufv2Jz9b26iz5j+3uzSp4D7Ij5aNDUPBoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8417271},"main":"dist/index.cjs.js","_from":"file:asafarim-simple-md-viewer-1.5.1.tgz","types":"dist/index.d.ts","module":"dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 5173 5174 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","serve":"npx kill-port 3300 3301 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","deploy":"npx gh-pages -d dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","predeploy":"pnpm run build","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\556f17d2ed118f5392239d1278a14f5f\\asafarim-simple-md-viewer-1.5.1.tgz","_integrity":"sha512-r52ZIk4c2gMV6KJs5Xm0s27R+X+JoZbFrj7akpnW3alMUyhNudOa/MEdwpMRf+nOvDKucpSTvwayupBvpbEhkA==","repository":{"url":"git+https://github.com/alisafari-it/simple-md-viewer.git","type":"git"},"_npmVersion":"11.4.2","description":"A professional markdown viewer with file tree navigation, directory content browsing, and advanced YAML front matter support","directories":{},"_nodeVersion":"20.18.3","dependencies":{"cors":"^2.8.5","react":"^18.2.0","dotenv":"^17.2.0","express":"^4.18.2","js-yaml":"^4.1.0","react-dom":"^18.2.0","remark-gfm":"^3.0.1","react-markdown":"^8.0.7","@asafarim/shared":"^1.0.3","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.5","terser":"^5.43.1","gh-pages":"^6.3.0","typescript":"^5.0.2","@types/node":"^24.0.14","@types/react":"^18.2.15","concurrently":"^8.2.2","@types/connect":"^3.4.38","@types/js-yaml":"^4.0.9","@types/react-dom":"^18.2.7","@vitejs/plugin-react":"^4.0.3","@types/react-syntax-highlighter":"^15.5.13"},"optionalDependencies":{"fsevents":"^2.3.3"},"_npmOperationalInternal":{"tmp":"tmp/simple-md-viewer_1.5.1_1753186816058_0.2132452589315612","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@asafarim/simple-md-viewer","version":"1.5.2","description":"A professional markdown viewer with file tree navigation, directory content browsing, and advanced YAML front matter support","main":"dist/index.cjs.js","module":"dist/index.esm.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.esm.js","require":"./dist/index.cjs.js","types":"./dist/index.d.ts"},"./style.css":"./dist/style.css","./dist/style.css":"./dist/style.css"},"homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","repository":{"type":"git","url":"git+https://github.com/alisafari-it/simple-md-viewer.git"},"license":"MIT","author":{"name":"Ali Safari"},"publishConfig":{"access":"public"},"dependencies":{"@asafarim/shared":"^1.0.3","cors":"^2.8.5","dotenv":"^17.2.0","express":"^4.18.2","js-yaml":"^4.1.0","react":"^18.2.0","react-dom":"^18.2.0","react-markdown":"^8.0.7","react-router-dom":"^6.30.1","react-syntax-highlighter":"^15.5.0","remark-gfm":"^3.0.1"},"devDependencies":{"@types/connect":"^3.4.38","@types/js-yaml":"^4.0.9","@types/node":"^24.0.14","@types/react":"^18.2.15","@types/react-dom":"^18.2.7","@types/react-syntax-highlighter":"^15.5.13","@vitejs/plugin-react":"^4.0.3","concurrently":"^8.2.2","gh-pages":"^6.3.0","terser":"^5.43.1","typescript":"^5.0.2","vite":"^4.4.5"},"keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer","directory-browser","file-tree","content-viewer","yaml-frontmatter"],"optionalDependencies":{"fsevents":"^2.3.3"},"scripts":{"rm":"rm -rf node_modules dist assets pnpm-lock.yaml","dev":"npx kill-port 5173 5174 && vite","build":"vite build && tsc --emitDeclarationOnly --declaration --outDir dist","build:lib":"vite build --mode lib && tsc --project tsconfig.build.json && echo 'declare module \"@asafarim/simple-md-viewer/style.css\"; declare module \"@asafarim/simple-md-viewer/dist/style.css\";' > dist/style.css.d.ts","type-check":"tsc --noEmit","declarations":"tsc --project tsconfig.build.json","serve":"npx kill-port 3300 3301 3500 && node server.js --watch","start":"concurrently \"pnpm run dev\" \"pnpm run serve\"","predeploy":"pnpm run build","deploy":"npx gh-pages -d dist"},"_id":"@asafarim/simple-md-viewer@1.5.2","bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"_integrity":"sha512-gR9sIbPz7PTRrNMTH0zljRj16H6tzZg3N0PqrfoAKLR1M+fpvEwo7E4+QNhYwEwtAw8tc+aGPcvn4YLLvEsYiw==","_resolved":"C:\\Users\\User\\AppData\\Local\\Temp\\ea38eee22f5ae17ab3cc0a506e8aad94\\asafarim-simple-md-viewer-1.5.2.tgz","_from":"file:asafarim-simple-md-viewer-1.5.2.tgz","_nodeVersion":"20.18.3","_npmVersion":"11.4.2","dist":{"integrity":"sha512-gR9sIbPz7PTRrNMTH0zljRj16H6tzZg3N0PqrfoAKLR1M+fpvEwo7E4+QNhYwEwtAw8tc+aGPcvn4YLLvEsYiw==","shasum":"023b20b5eb4266f8c710453c6c041f3dc7a76bb1","tarball":"https://registry.npmjs.org/@asafarim/simple-md-viewer/-/simple-md-viewer-1.5.2.tgz","fileCount":51,"unpackedSize":8417413,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFGLsfi03pGPxrgGAzILdL2c4zBZ9JZJhDg6Vz31NS4XAiAE9Vl+tRNSLhU9dC0CPfbJBO7JoTw+EBcCqowlAhCXLg=="}]},"_npmUser":{"name":"asafarim.be","email":"asafarim.it@gmail.com"},"directories":{},"maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/simple-md-viewer_1.5.2_1753196358871_0.36973731825054634"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-16T22:11:41.603Z","modified":"2025-07-22T14:59:19.330Z","1.0.1":"2025-07-16T22:11:41.946Z","1.0.2":"2025-07-16T22:15:46.320Z","1.1.1":"2025-07-17T14:30:50.807Z","1.1.2":"2025-07-17T15:07:01.726Z","1.2.0":"2025-07-17T19:13:28.719Z","1.2.2":"2025-07-17T19:50:51.803Z","1.2.3":"2025-07-17T20:42:21.608Z","1.2.4":"2025-07-18T19:32:06.205Z","1.3.0":"2025-07-18T21:09:46.723Z","1.3.1":"2025-07-18T21:23:25.202Z","1.3.2":"2025-07-18T21:35:29.582Z","1.3.3":"2025-07-19T05:29:16.447Z","1.3.4":"2025-07-19T06:39:22.267Z","1.3.5":"2025-07-19T07:20:27.450Z","1.3.6":"2025-07-19T10:13:44.493Z","1.3.7":"2025-07-19T21:50:19.731Z","1.4.0":"2025-07-20T21:25:41.495Z","1.4.1":"2025-07-20T21:44:52.188Z","1.4.2":"2025-07-21T13:09:48.056Z","1.5.0":"2025-07-21T16:01:04.119Z","1.5.1":"2025-07-22T12:20:16.298Z","1.5.2":"2025-07-22T14:59:19.110Z"},"bugs":{"url":"https://github.com/alisafari-it/simple-md-viewer/issues"},"author":{"name":"Ali Safari"},"license":"MIT","homepage":"https://alisafari-it.github.io/simple-md-viewer/#/","keywords":["asafarim","markdown","viewer","file-explorer","markdown-viewer","file-explorer-viewer","directory-browser","file-tree","content-viewer","yaml-frontmatter"],"repository":{"type":"git","url":"git+https://github.com/alisafari-it/simple-md-viewer.git"},"description":"A professional markdown viewer with file tree navigation, directory content browsing, and advanced YAML front matter support","maintainers":[{"name":"asafarim.be","email":"asafarim.it@gmail.com"}],"readme":"# @asafarim/simple-md-viewer\r\n\r\nA professional, responsive markdown viewer library for React applications that displays markdown files from a specified folder structure with an elegant file tree navigation and advanced YAML front matter support.\r\n\r\n[![npm version](https://badge.fury.io/js/@asafarim%2Fsimple-md-viewer.svg)](https://www.npmjs.com/package/@asafarim/simple-md-viewer)\r\n[![Live Demo](https://img.shields.io/badge/demo-live-brightgreen)](https://alisafari-it.github.io/simple-md-viewer/#/README.md)\r\n[![GitHub](https://img.shields.io/badge/github-repo-blue)](https://github.com/AliSafari-IT/simple-md-viewer)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Demo repo](https://img.shields.io/badge/demo-repo-purple)](https://github.com/AliSafari-IT/demo-simple-md-viewer)\r\n\r\n[Click here to view Working Demo along with a how-to document to employ the package.](https://github.com/alisafari-it/demo-simple-md-viewer)\r\n\r\n## ✨ Features\r\n\r\n- 🎨 **Modern UI with Theming**: Built-in light/dark themes with glassmorphism effects and smooth animations\r\n- 📱 **Fully Responsive**: Professional mobile-first design that works perfectly on all devices\r\n- 🌳 **Interactive File Tree**: Collapsible folder navigation with persistent state and smooth transitions\r\n- � **Directory Content Browser**: Advanced directory viewing with list, grid, and detailed table views including file sizes\r\n- 📊 **File Information Display**: Real-time file sizes, modification dates, and comprehensive metadata\r\n- �📖 **Advanced Markdown Rendering**: Complete GitHub Flavored Markdown support with tables, syntax highlighting, and custom styling\r\n- 📄 **YAML Front Matter Support**: Professional front matter parsing and display with multiple modes and supporting Belgian date formatting\r\n- 🚀 **Zero Configuration**: Works out of the box with minimal setup required\r\n- 🔧 **Highly Customizable**: Flexible theming system and component composition\r\n- 🎯 **URL-based Navigation**: Direct linking to specific markdown files with browser history support\r\n- ⚡ **High Performance**: Built with React 18, Vite, and optimized for speed\r\n- 🔗 **Package Integration**: Built-in support for npm package links and GitHub repository links\r\n- 📐 **Flexible Layout**: Optional file tree hiding for full-width content display\r\n- 🎛️ **Minimalistic UI Options**: Hide header and footer for clean embedding\r\n- ♿ **Accessibility**: WCAG compliant with keyboard navigation and screen reader support\r\n\r\n## 📄 What's New in v1.5.1\r\n\r\n### 🔗 Customizable Package Links\r\n\r\nFully customizable package links in the header with comprehensive configuration options:\r\n\r\n- **Custom Package Name**: Set your own npm package name for the header links\r\n- **Custom GitHub Path**: Configure your own GitHub repository path\r\n- **Custom Demo URL**: Set a custom demo site URL\r\n- **Toggle Visibility**: Show or hide the package links section entirely\r\n- **Default Fallbacks**: Sensible defaults if partial configuration is provided\r\n\r\n```tsx\r\n// Example usage with custom package links\r\n<MarkdownContent \r\n  apiBaseUrl=\"http://localhost:3300\"\r\n  packageLinks={{\r\n    packageName: \"your-app-or-package-name\",\r\n    githubPath: \"your-github-repo\",\r\n    demoPath: \"https://your-live-demo-site.com\",\r\n    show: true  // Set to false to hide package links\r\n  }}\r\n/>\r\n```\r\n\r\n## 📄 What's New in v1.5.0\r\n\r\n### 📂 Enhanced Directory Browsing\r\n\r\nProfessional directory content viewing with comprehensive file information:\r\n\r\n- **Multiple View Styles**: Switch between list, grid, and detailed table views\r\n- **File Size Display**: Real-time calculation and display of file and folder sizes\r\n- **Sorting & Filtering**: Sort by name, type, size, or modification date with search filtering\r\n- **Responsive Design**: Optimized layouts for desktop and mobile devices\r\n- **Breadcrumb Navigation**: Easy navigation through directory hierarchies\r\n- **Loading States**: Smooth loading indicators while fetching directory details\r\n\r\n![Directory Views](https://raw.githubusercontent.com/AliSafari-IT/simple-md-viewer/main/public/md-desktop-icon-view.png)\r\n*Desktop directory view showing grid and detailed table layouts*\r\n\r\n![Mobile Directory View](https://raw.githubusercontent.com/AliSafari-IT/simple-md-viewer/main/public/md-mobile-detail-view.png)\r\n*Mobile-optimized directory view with touch-friendly interface*\r\n\r\n#### Directory View Features\r\n\r\n- **List View**: Clean, compact file listing with icons\r\n- **Grid View**: Visual grid layout with larger icons and file types  \r\n- **Detailed View**: Comprehensive table with file sizes, modification dates, and metadata\r\n- **Smart Sorting**: Intelligent sorting with folders prioritized over files\r\n- **Real-time Search**: Instant filtering of directory contents\r\n- **Size Calculation**: Automatic calculation of folder sizes and file counts\r\n\r\n## 📄 What's New in v1.4.0\r\n\r\n### 🎯 YAML Front Matter Support\r\n\r\nProfessional YAML front matter parsing and display with comprehensive metadata support:\r\n\r\n- **Multiple Display Modes**: Choose from `full`, `minimal`, `header-only`, or `hidden` display modes\r\n- **Rich Metadata Support**: Title, description, author, dates, categories, tags, keywords, and more\r\n- **International Date Formatting**: Built-in support for Belgian date formats (`nl-BE`, `fr-BE`)\r\n- **Navigation Integration**: Automatic breadcrumbs and related page links from front matter\r\n- **Professional Styling**: Clean, organized display with theme-aware styling\r\n- **GitHub Flavored Markdown**: Enhanced table support and complete GFM compatibility\r\n\r\n#### Example Front Matter\r\n\r\n```yaml\r\n---\r\ntitle: \"API Documentation\"\r\ndescription: \"Complete API reference guide\"\r\nauthor: \"Your Name\"\r\nlastModified: \"2025-01-20\"\r\nlocale: \"nl-BE\"  # Belgian Dutch date formatting\r\ncategory: \"Documentation\"\r\ntags:\r\n  - api\r\n  - reference\r\nbreadcrumbs:\r\n  - name: \"Home\"\r\n    path: \"/\"\r\n  - name: \"API\"\r\n    path: \"/api\"\r\n---\r\n```\r\n\r\nThis will be beautifully rendered with proper styling, showing formatted dates, organized metadata, and navigation elements.\r\n\r\n## 🎪 Live Demo\r\n\r\nExperience the viewer in action: **[Live Demo](https://alisafari-it.github.io/simple-md-viewer/#/README.md)**\r\n\r\n### Demo Repository\r\n\r\nCheck out our **[Demo Repository](https://github.com/AliSafari-IT/demo-simple-md-viewer)** for complete examples of how to integrate and use the Simple Markdown Viewer in your projects. This repository contains working examples with different configuration options and implementation patterns.\r\n\r\n![Simple Markdown Viewer Demo](https://raw.githubusercontent.com/AliSafari-IT/simple-md-viewer/main/public/smv.png)\r\n\r\n## 📦 Installation\r\n\r\n```bash\r\nnpm install @asafarim/simple-md-viewer\r\n```\r\n\r\n### Import Styles\r\n\r\nThe package requires CSS styles to be imported. Choose one of these methods:\r\n\r\n```tsx\r\n// Method 1: Import from dist (recommended)\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n\r\n// Method 2: Alternative import path\r\nimport '@asafarim/simple-md-viewer/style.css';\r\n```\r\n\r\n### TypeScript Support\r\n\r\nIf you encounter TypeScript errors with CSS imports, add this to your project's type declarations:\r\n\r\n```typescript\r\n// In your global.d.ts or vite-env.d.ts\r\ndeclare module '@asafarim/simple-md-viewer/dist/style.css';\r\ndeclare module '@asafarim/simple-md-viewer/style.css';\r\n```\r\n\r\n## 🚀 Quick Start\r\n\r\n### Option 1: Complete Markdown Viewer (Recommended)\r\n\r\nThe easiest way to get started - includes everything you need:\r\n\r\n```tsx\r\nimport React, { useState, useEffect } from 'react';\r\nimport { HashRouter } from 'react-router-dom';\r\nimport { MarkdownContent, ThemeProvider } from '@asafarim/simple-md-viewer';\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n\r\nfunction App() {\r\n  const [theme, setTheme] = useState(() => {\r\n    // Check localStorage for saved theme preference\r\n    const savedTheme = localStorage.getItem('smv-theme');\r\n    return savedTheme || 'light';\r\n  });\r\n\r\n  const toggleTheme = () => {\r\n    setTheme(prevTheme => {\r\n      const newTheme = prevTheme === 'light' ? 'dark' : 'light';\r\n      localStorage.setItem('smv-theme', newTheme);\r\n      return newTheme;\r\n    });\r\n  };\r\n\r\n  // Apply theme to document root for global styling\r\n  useEffect(() => {\r\n    document.documentElement.setAttribute('data-theme', theme);\r\n  }, [theme]);\r\n\r\n  return (\r\n    <ThemeProvider theme={theme} toggleTheme={toggleTheme}>\r\n      <div className={`app ${theme}`}>\r\n        <HashRouter>\r\n          <MarkdownContent \r\n            apiBaseUrl=\"http://localhost:3300\" \r\n            showHomePage={true}\r\n            hideFileTree={false}\r\n            packageLinks={{\r\n              packageName: \"@asafarim/simple-md-viewer\",\r\n              githubPath: \"simple-md-viewer\",\r\n              demoPath: \"https://alisafari-it.github.io/simple-md-viewer/#/README.md\",\r\n              show: true\r\n            }}\r\n          />\r\n        </HashRouter>\r\n      </div>\r\n    </ThemeProvider>\r\n  );\r\n}\r\n\r\nexport default App;\r\n```\r\n\r\n### Option 2: Individual Components\r\n\r\nFor more control, use individual components:\r\n\r\n```tsx\r\nimport React, { useState, useEffect } from 'react';\r\nimport { \r\n  MarkdownViewer, \r\n  FileTree, \r\n  ThemeProvider \r\n} from '@asafarim/simple-md-viewer';\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n\r\nfunction CustomApp() {\r\n  const [content, setContent] = useState('# Hello World\\nYour markdown here...');\r\n  const [theme, setTheme] = useState(() => {\r\n    return localStorage.getItem('smv-theme') || 'light';\r\n  });\r\n\r\n  const toggleTheme = () => {\r\n    setTheme(prevTheme => {\r\n      const newTheme = prevTheme === 'light' ? 'dark' : 'light';\r\n      localStorage.setItem('smv-theme', newTheme);\r\n      return newTheme;\r\n    });\r\n  };\r\n\r\n  // Apply theme globally\r\n  useEffect(() => {\r\n    document.documentElement.setAttribute('data-theme', theme);\r\n  }, [theme]);\r\n\r\n  return (\r\n    <ThemeProvider theme={theme} toggleTheme={toggleTheme}>\r\n      <div className={`app ${theme}`}>\r\n        <MarkdownViewer content={content} />\r\n      </div>\r\n    </ThemeProvider>\r\n  );\r\n}\r\n```\r\n\r\n### Option 3: Full-Width Content Viewer (No File Tree)\r\n\r\nPerfect for embedded documentation, single-document viewing, or mobile-optimized reading:\r\n\r\n```tsx\r\nimport React, { useState, useEffect } from 'react';\r\nimport { HashRouter } from 'react-router-dom';\r\nimport { MarkdownContent, ThemeProvider } from '@asafarim/simple-md-viewer';\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n\r\nfunction FullWidthViewer() {\r\n  const [theme, setTheme] = useState('light');\r\n\r\n  return (\r\n    <ThemeProvider theme={theme} toggleTheme={() => setTheme(theme === 'light' ? 'dark' : 'light')}>\r\n      <div className=\"full-width-container\">\r\n        <HashRouter>\r\n          <MarkdownContent \r\n            apiBaseUrl=\"http://localhost:3300\" \r\n            showHomePage={true}\r\n            hideFileTree={true}  // 🎯 This hides the file tree for full-width content\r\n            packageLinks={{\r\n              show: false  // 🎯 Hide package links for cleaner interface\r\n            }}\r\n          />\r\n        </HashRouter>\r\n      </div>\r\n    </ThemeProvider>\r\n  );\r\n}\r\n```\r\n\r\n**Perfect for:**\r\n\r\n- 📱 **Mobile-first applications** - Maximum content space\r\n- 🎯 **Single document focus** - Remove navigation distractions  \r\n- 🔧 **Embedded viewers** - Integrate into existing dashboards\r\n- 📖 **Blog post display** - Clean, distraction-free reading\r\n- 🎪 **Presentation mode** - Full-screen document viewing\r\n\r\n### Option 4: Minimalistic Embedded Viewer\r\n\r\nPerfect for embedding in other applications with minimal UI chrome:\r\n\r\n```tsx\r\nimport React from 'react';\r\nimport { HashRouter } from 'react-router-dom';\r\nimport { MarkdownContent, ThemeProvider } from '@asafarim/simple-md-viewer';\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n\r\nfunction MinimalViewer() {\r\n  return (\r\n    <ThemeProvider theme=\"light\">\r\n      <div className=\"embedded-viewer\">\r\n        <HashRouter>\r\n          <MarkdownContent \r\n            apiBaseUrl=\"http://localhost:3300\" \r\n            showHomePage={false}\r\n            hideFileTree={true}   // 🎯 Hide file tree for clean layout\r\n            hideHeader={true}     // 🎯 Hide header for minimal chrome\r\n            hideFooter={true}     // 🎯 Hide footer for clean integration\r\n            packageLinks={{\r\n              show: false  // 🎯 Hide package links (though header is already hidden)\r\n            }}\r\n          />\r\n        </HashRouter>\r\n      </div>\r\n    </ThemeProvider>\r\n  );\r\n}\r\n```\r\n\r\n**Perfect for:**\r\n\r\n- 🔗 **API documentation widgets** - Embed docs in admin panels\r\n- 📱 **Mobile apps** - Ultra-clean content display\r\n- 🎛️ **Dashboard integration** - Content without competing UI elements\r\n- 📖 **Help systems** - Context-sensitive documentation\r\n- 🎯 **Content-only views** - Maximum focus on the markdown content\r\n\r\n## 📚 Usage Examples\r\n\r\nHere are some common usage examples (also available in our [Demo Repository](https://github.com/AliSafari-IT/demo-simple-md-viewer)): showcasing the advanced YAML front matter capabilities:\r\n\r\n### Full-Featured Documentation with Front Matter\r\n\r\n```tsx\r\nimport React, { useState, useEffect } from 'react';\r\nimport { HashRouter } from 'react-router-dom';\r\nimport { MarkdownContent, MarkdownViewer, ThemeProvider } from '@asafarim/simple-md-viewer';\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n\r\nfunction DocumentationSite() {\r\n  const [theme, setTheme] = useState('light');\r\n  \r\n  // Complete setup with all front matter features enabled\r\n  return (\r\n    <ThemeProvider theme={theme} toggleTheme={() => setTheme(theme === 'light' ? 'dark' : 'light')}>\r\n      <div className={`app ${theme}`}>\r\n        <HashRouter>\r\n          <MarkdownContent \r\n            apiBaseUrl=\"http://localhost:3300\"\r\n            showHomePage={true}\r\n            hideFileTree={false}\r\n            hideHeader={false}\r\n            hideFooter={false}\r\n            // Front matter is automatically handled by MarkdownViewer inside MarkdownContent\r\n          />\r\n        </HashRouter>\r\n      </div>\r\n    </ThemeProvider>\r\n  );\r\n}\r\n```\r\n\r\n### Direct MarkdownViewer with Front Matter Control\r\n\r\n```tsx\r\nimport React from 'react';\r\nimport { MarkdownViewer, ThemeProvider } from '@asafarim/simple-md-viewer';\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n\r\nfunction CustomDocumentViewer() {\r\n  const markdownWithFrontMatter = `---\r\ntitle: \"Advanced API Documentation\"\r\ndescription: \"Complete guide to our REST API with authentication, rate limiting, and examples\"\r\nauthor: \"Dev Team\"\r\nlastModified: \"2025-01-20\"\r\nversion: \"2.1.0\"\r\nlocale: \"nl-BE\"  # Belgian Dutch formatting\r\ncategory: \"API Documentation\"\r\nsection: \"Backend\"\r\norder: 1\r\ntags:\r\n  - api\r\n  - rest\r\n  - authentication\r\n  - backend\r\nkeywords: [\"API\", \"REST\", \"documentation\", \"guide\"]\r\ntoc: true\r\nsidebar: true\r\nbreadcrumbs:\r\n  - name: \"Home\"\r\n    path: \"/\"\r\n  - name: \"Documentation\" \r\n    path: \"/docs\"\r\n  - name: \"API\"\r\n    path: \"/docs/api\"\r\nrelated:\r\n  - title: \"Authentication Guide\"\r\n    path: \"/docs/auth\"\r\n  - title: \"Rate Limiting\"\r\n    path: \"/docs/rate-limits\"\r\n---\r\n\r\n# API Documentation\r\n\r\nThis is your markdown content with professional front matter display above...\r\n\r\n## Authentication\r\n\r\nAll API requests require authentication...\r\n\r\n| Method | Endpoint | Description |\r\n|--------|----------|-------------|\r\n| GET    | /api/users | Get all users |\r\n| POST   | /api/users | Create user |\r\n`;\r\n\r\n  return (\r\n    <ThemeProvider theme=\"light\">\r\n      <div className=\"custom-viewer\">\r\n        {/* Full front matter display - shows everything */}\r\n        <MarkdownViewer \r\n          content={markdownWithFrontMatter}\r\n          showFrontMatter={true}\r\n          frontMatterMode=\"full\"\r\n        />\r\n      </div>\r\n    </ThemeProvider>\r\n  );\r\n}\r\n```\r\n\r\n### Front Matter Display Mode Examples\r\n\r\n```tsx\r\n// Minimal mode - shows only essential info\r\n<MarkdownViewer \r\n  content={markdownWithFrontMatter}\r\n  showFrontMatter={true}\r\n  frontMatterMode=\"minimal\"  // Shows: author, date, version only\r\n/>\r\n\r\n// Header-only mode - shows title and description\r\n<MarkdownViewer \r\n  content={markdownWithFrontMatter}\r\n  showFrontMatter={true}\r\n  frontMatterMode=\"header-only\"  // Shows: title, description only\r\n/>\r\n\r\n// Hidden mode - parses but doesn't display front matter\r\n<MarkdownViewer \r\n  content={markdownWithFrontMatter}\r\n  showFrontMatter={false}\r\n  frontMatterMode=\"hidden\"  // Front matter parsed but not shown\r\n/>\r\n\r\n// Full mode (default) - shows all metadata in organized sections\r\n<MarkdownViewer \r\n  content={markdownWithFrontMatter}\r\n  showFrontMatter={true}\r\n  frontMatterMode=\"full\"  // Shows: all metadata in sections\r\n/>\r\n```\r\n\r\n### Belgian Date Formatting Example\r\n\r\n```tsx\r\nconst belgianContentNL = `---\r\ntitle: \"Nederlandse Documentatie\"\r\nauthor: \"Team België\"\r\ndate: \"2025-01-20\"\r\nlastModified: \"2025-01-20T14:30:00Z\"\r\nlocale: \"nl-BE\"  # Belgian Dutch\r\ncategory: \"Documentatie\"\r\n---\r\n\r\n# Welkom bij onze documentatie!\r\n`;\r\n\r\nconst belgianContentFR = `---\r\ntitle: \"Documentation Française\"\r\nauthor: \"Équipe Belge\"\r\ndate: \"2025-01-20\"\r\nlastModified: \"2025-01-20T14:30:00Z\"\r\nlocale: \"fr-BE\"  # Belgian French\r\ncategory: \"Documentation\"\r\n---\r\n\r\n# Bienvenue dans notre documentation!\r\n`;\r\n\r\n// Dates will be formatted according to Belgian conventions\r\n<MarkdownViewer content={belgianContentNL} showFrontMatter={true} frontMatterMode=\"full\" />\r\n<MarkdownViewer content={belgianContentFR} showFrontMatter={true} frontMatterMode=\"full\" />\r\n```\r\n\r\n### Directory View Configuration Examples\r\n\r\n```tsx\r\n// Enable directory browsing with detailed view by default\r\n<MarkdownContent \r\n  apiBaseUrl=\"http://localhost:3300\"\r\n  directoryViewEnabled={true}\r\n  directoryViewStyle=\"detailed\"  // Shows file sizes, dates, metadata\r\n  showDirectoryBreadcrumbs={true}\r\n  enableDirectorySorting={true}\r\n/>\r\n\r\n// Grid view for visual file browsing\r\n<MarkdownContent \r\n  apiBaseUrl=\"http://localhost:3300\"\r\n  directoryViewStyle=\"grid\"  // Visual grid layout\r\n  showDirectoryBreadcrumbs={true}\r\n  enableDirectorySorting={true}\r\n/>\r\n\r\n// Minimal list view without breadcrumbs\r\n<MarkdownContent \r\n  apiBaseUrl=\"http://localhost:3300\"\r\n  directoryViewStyle=\"list\"  // Clean, compact listing\r\n  showDirectoryBreadcrumbs={false}\r\n  enableDirectorySorting={false}\r\n/>\r\n\r\n// Disable directory view entirely (files only)\r\n<MarkdownContent \r\n  apiBaseUrl=\"http://localhost:3300\"\r\n  directoryViewEnabled={false}  // Directories won't show content\r\n/>\r\n```\r\n\r\n**Directory View Features Demonstrated:**\r\n\r\n- 📊 **File size calculation**: Real-time size display for files and folders\r\n- 📅 **Modification dates**: Last modified timestamps with localized formatting  \r\n- 🔍 **Search and filtering**: Instant search through directory contents\r\n- 🎯 **Smart sorting**: Sort by name, type, size, or date with folder prioritization\r\n- 📱 **Responsive layouts**: Touch-friendly mobile interface with optimized views\r\n- 🧭 **Navigation**: Breadcrumbs and related page links\r\n\r\n```\r\n\r\n**Front Matter Features Demonstrated:**\r\n- 🏷️ **Rich Metadata**: Title, description, author, dates, version, categories, tags\r\n- 🗓️ **Date Formatting**: Automatic Belgian locale support (`nl-BE`, `fr-BE`)\r\n- 🧭 **Navigation**: Breadcrumbs and related page links\r\n- 📊 **Organization**: Categories, sections, ordering, and table of contents flags\r\n- 🎨 **Display Modes**: Four modes from full metadata to hidden\r\n- 🔍 **SEO Support**: Keywords and structured data for better discoverability\r\n\r\n## �🏗️ Backend Setup\r\n\r\nCreate a simple Express server to serve your markdown files:\r\n\r\n```javascript\r\nconst express = require('express');\r\nconst fs = require('fs');\r\nconst path = require('path');\r\nconst cors = require('cors');\r\n\r\nconst app = express();\r\nconst PORT = 3300;\r\nconst mdDocsPath = path.join(__dirname, 'md-docs'); // Your markdown folder\r\n\r\napp.use(cors({ origin: 'http://localhost:5173' }));\r\n\r\n// API to return folder structure\r\napp.get('/api/folder-structure', (req, res) => {\r\n  const folderStructure = getFolderStructure(mdDocsPath);\r\n  res.json({ nodes: folderStructure });\r\n});\r\n\r\n// API to serve markdown files\r\napp.get('/api/file', (req, res) => {\r\n  const filePath = path.join(mdDocsPath, req.query.path);\r\n  if (fs.existsSync(filePath)) {\r\n    const content = fs.readFileSync(filePath, 'utf-8');\r\n    res.json({ content });\r\n  } else {\r\n    res.status(404).json({ error: 'File not found' });\r\n  }\r\n});\r\n\r\n// API to get directory details with file sizes (NEW in v1.5.0)\r\napp.get('/api/directory-details', (req, res) => {\r\n  try {\r\n    const directoryPath = req.query.path || '';\r\n    const fullPath = path.join(mdDocsPath, directoryPath);\r\n    \r\n    if (!fs.existsSync(fullPath) || !fs.statSync(fullPath).isDirectory()) {\r\n      return res.status(404).json({ error: 'Directory not found' });\r\n    }\r\n\r\n    const directoryDetails = getDirectoryDetails(fullPath, directoryPath);\r\n    res.json(directoryDetails);\r\n  } catch (error) {\r\n    res.status(500).json({ error: 'Failed to read directory details' });\r\n  }\r\n});\r\n\r\nfunction getFolderStructure(dirPath, relativePath = '') {\r\n  const items = fs.readdirSync(dirPath);\r\n  const result = [];\r\n\r\n  for (const item of items) {\r\n    const itemPath = path.join(dirPath, item);\r\n    const stats = fs.statSync(itemPath);\r\n    const itemRelativePath = path.join(relativePath, item).replace(/\\\\/g, '/');\r\n\r\n    if (stats.isDirectory()) {\r\n      result.push({\r\n        name: item,\r\n        path: itemRelativePath,\r\n        type: 'folder',\r\n        children: getFolderStructure(itemPath, itemRelativePath)\r\n      });\r\n    } else if (item.endsWith('.md')) {\r\n      result.push({\r\n        name: item,\r\n        path: itemRelativePath,\r\n        type: 'file'\r\n      });\r\n    }\r\n  }\r\n\r\n  return result;\r\n}\r\n\r\n// Helper functions for directory details (NEW in v1.5.0)\r\nfunction getDirectoryDetails(dirPath, relativePath = '') {\r\n  const items = fs.readdirSync(dirPath);\r\n  const children = [];\r\n  \r\n  for (const item of items) {\r\n    const itemPath = path.join(dirPath, item);\r\n    const stats = fs.statSync(itemPath);\r\n    const itemRelativePath = path.join(relativePath, item).replace(/\\\\/g, '/');\r\n    \r\n    if (stats.isDirectory()) {\r\n      const folderSize = calculateFolderSize(itemPath);\r\n      const itemCount = countItemsInFolder(itemPath);\r\n      \r\n      children.push({\r\n        name: item,\r\n        path: itemRelativePath,\r\n        type: 'folder',\r\n        size: folderSize,\r\n        lastModified: stats.mtime.toISOString(),\r\n        itemCount: itemCount\r\n      });\r\n    } else if (item.endsWith('.md')) {\r\n      children.push({\r\n        name: item,\r\n        path: itemRelativePath,\r\n        type: 'file',\r\n        size: stats.size,\r\n        lastModified: stats.mtime.toISOString(),\r\n        extension: path.extname(item).substring(1)\r\n      });\r\n    }\r\n  }\r\n  \r\n  return {\r\n    name: path.basename(dirPath) || 'root',\r\n    path: relativePath,\r\n    type: 'folder',\r\n    children: children\r\n  };\r\n}\r\n\r\nfunction calculateFolderSize(folderPath) {\r\n  let totalSize = 0;\r\n  \r\n  function traverse(currentPath) {\r\n    const items = fs.readdirSync(currentPath);\r\n    \r\n    for (const item of items) {\r\n      const itemPath = path.join(currentPath, item);\r\n      const stats = fs.statSync(itemPath);\r\n      \r\n      if (stats.isDirectory()) {\r\n        traverse(itemPath);\r\n      } else {\r\n        totalSize += stats.size;\r\n      }\r\n    }\r\n  }\r\n  \r\n  traverse(folderPath);\r\n  return totalSize;\r\n}\r\n\r\nfunction countItemsInFolder(folderPath) {\r\n  let count = 0;\r\n  \r\n  function traverse(currentPath) {\r\n    const items = fs.readdirSync(currentPath);\r\n    count += items.length;\r\n    \r\n    for (const item of items) {\r\n      const itemPath = path.join(currentPath, item);\r\n      const stats = fs.statSync(itemPath);\r\n      \r\n      if (stats.isDirectory()) {\r\n        traverse(itemPath);\r\n      }\r\n    }\r\n  }\r\n  \r\n  traverse(folderPath);\r\n  return count;\r\n}\r\n\r\napp.listen(PORT, () => {\r\n  console.log(`🚀 Server running at http://localhost:${PORT}`);\r\n});\r\n```\r\n\r\n## 🎨 Styling & Theming\r\n\r\n### Import Required Styles\r\n\r\n```tsx\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n```\r\n\r\n### Theme Customization\r\n\r\nOverride CSS custom properties to customize the appearance:\r\n\r\n```css\r\n:root {\r\n  /* Light theme colors */\r\n  --bg-color-light: #ffffff;\r\n  --text-color-light: #333333;\r\n  --accent-primary-light: #2196f3;\r\n  --header-bg-light: #f8f9fa;\r\n  \r\n  /* Dark theme colors */\r\n  --bg-color-dark: #1e1e1e;\r\n  --text-color-dark: #e0e0e0;\r\n  --accent-primary-dark: #64b5f6;\r\n  --header-bg-dark: #252526;\r\n  \r\n  /* Typography */\r\n  --font-family-primary: 'Inter', -apple-system, sans-serif;\r\n  \r\n  /* Spacing */\r\n  --spacing-xs: 0.25rem;\r\n  --spacing-sm: 0.5rem;\r\n  --spacing-md: 1rem;\r\n  --spacing-lg: 1.5rem;\r\n  --spacing-xl: 2rem;\r\n}\r\n```\r\n\r\n## 📚 API Reference\r\n\r\n### Components\r\n\r\n#### `MarkdownContent`\r\n\r\nThe main component providing a complete markdown viewer experience.\r\n\r\n```tsx\r\n<MarkdownContent \r\n  apiBaseUrl=\"http://localhost:3300\"\r\n  showHomePage={true}\r\n  hideFileTree={false}\r\n  hideHeader={false}\r\n  hideFooter={false}\r\n  showFrontMatter={true}\r\n  frontMatterMode=\"full\"\r\n  directoryViewEnabled={true}\r\n  directoryViewStyle=\"list\"\r\n  showDirectoryBreadcrumbs={true}\r\n  enableDirectorySorting={true}\r\n/>\r\n```\r\n\r\n**Props:**\r\n\r\n- `apiBaseUrl?` (string): Base URL for API endpoints (default: \"<http://localhost:3300>\")\r\n- `showHomePage?` (boolean): Whether to show homepage when no file is selected (default: true)\r\n- `hideFileTree?` (boolean): Hide the file tree sidebar and expand content to full width (default: false)\r\n- `hideHeader?` (boolean): Hide the header section including logo, theme toggle, and menu (default: false)\r\n- `hideFooter?` (boolean): Hide the footer section for a more minimalistic view (default: false)\r\n- `showFrontMatter?` (boolean): Whether to show YAML front matter in markdown files (default: true)\r\n- `frontMatterMode?` ('full' | 'minimal' | 'header-only' | 'hidden'): How to display YAML front matter (default: 'full')\r\n- `directoryViewEnabled?` (boolean): Enable directory content view when folders are selected (default: true)\r\n- `directoryViewStyle?` ('list' | 'grid' | 'detailed'): Default view style for directory content (default: 'list')\r\n- `showDirectoryBreadcrumbs?` (boolean): Show breadcrumbs navigation in directory view (default: true)\r\n- `enableDirectorySorting?` (boolean): Enable sorting and filtering in directory view (default: true)\r\n\r\n#### `ThemeProvider`\r\n\r\nProvides theme context to all child components.\r\n\r\n```tsx\r\n<ThemeProvider theme=\"light\" toggleTheme={() => setTheme('dark')}>\r\n  {children}\r\n</ThemeProvider>\r\n```\r\n\r\n**Props:**\r\n\r\n- `theme` (\"light\" | \"dark\"): Current theme\r\n- `toggleTheme?` (function): Optional theme toggle function\r\n- `children` (ReactNode): Child components\r\n\r\n#### `MarkdownViewer`\r\n\r\nRenders markdown content with syntax highlighting and YAML front matter support.\r\n\r\n```tsx\r\n<MarkdownViewer \r\n  content=\"# Hello World\\nYour markdown content here...\"\r\n  showFrontMatter={true}\r\n  frontMatterMode=\"full\"\r\n/>\r\n```\r\n\r\n**Props:**\r\n\r\n- `content` (string): Markdown content to render (required)\r\n- `showFrontMatter?` (boolean): Whether to display YAML front matter (default: true)\r\n- `frontMatterMode?` ('full' | 'minimal' | 'header-only' | 'hidden'): Front matter display mode (default: 'full')\r\n\r\n**Front Matter Display Modes:**\r\n\r\n- `'full'`: Shows all front matter metadata in organized sections\r\n- `'minimal'`: Shows only basic info (author, date, version)\r\n- `'header-only'`: Shows only title and description\r\n- `'hidden'`: Hides front matter display entirely\r\n\r\n#### `FileTree`\r\n\r\nInteractive file tree navigation component.\r\n\r\n```tsx\r\n<FileTree \r\n  fileTree={fileTreeData}\r\n  onFileSelect={(path) => handleFileSelect(path)}\r\n  selectedFile=\"/current/file.md\"\r\n/>\r\n```\r\n\r\n**Props:**\r\n\r\n- `fileTree` (FileNode | null): File tree data structure\r\n- `onFileSelect` (function): Callback when a file is selected\r\n- `selectedFile` (string | null): Currently selected file path\r\n\r\n#### `DirectoryView`\r\n\r\nAdvanced directory content browser with multiple view styles and file information.\r\n\r\n```tsx\r\n<DirectoryView \r\n  directory={directoryNode}\r\n  onFileSelect={(path) => handleFileSelect(path)}\r\n  onDirectorySelect={(path) => handleDirectorySelect(path)}\r\n  viewStyle=\"detailed\"\r\n  showBreadcrumbs={true}\r\n  enableSorting={true}\r\n  enableFiltering={true}\r\n  loading={false}\r\n/>\r\n```\r\n\r\n**Props:**\r\n\r\n- `directory` (FileNode): Directory node with children to display (required)\r\n- `onFileSelect` (function): Callback when a file is selected (required)\r\n- `onDirectorySelect?` (function): Callback when a directory is selected\r\n- `viewStyle?` ('list' | 'grid' | 'detailed'): View style for displaying directory contents (default: 'list')\r\n- `showBreadcrumbs?` (boolean): Show breadcrumb navigation (default: true)\r\n- `enableSorting?` (boolean): Enable sorting controls (default: true)\r\n- `enableFiltering?` (boolean): Enable search filtering (default: true)\r\n- `loading?` (boolean): Show loading state (default: false)\r\n- `className?` (string): Additional CSS classes\r\n\r\n**View Styles:**\r\n\r\n- `'list'`: Compact list view with file icons and names\r\n- `'grid'`: Grid layout with larger icons and file type labels\r\n- `'detailed'`: Table view with file sizes, modification dates, and comprehensive metadata\r\n\r\n#### `HomePage`\r\n\r\nLanding page component showing available documentation.\r\n\r\n```tsx\r\n<HomePage \r\n  fileTree={fileTreeData}\r\n  findReadmeNode={findReadmeFunction}\r\n  loading={false}\r\n/>\r\n```\r\n\r\n**Props:**\r\n\r\n- `fileTree` (FileNode | null): File tree data\r\n- `findReadmeNode` (function): Function to find README file\r\n- `loading` (boolean): Loading state\r\n\r\n#### `FrontMatterDisplay`\r\n\r\nDisplays parsed YAML front matter with professional styling.\r\n\r\n```tsx\r\n<FrontMatterDisplay \r\n  frontMatter={parsedFrontMatter}\r\n  mode=\"full\"\r\n/>\r\n```\r\n\r\n**Props:**\r\n\r\n- `frontMatter` (FrontMatter): Parsed front matter object (required)\r\n- `mode?` ('full' | 'minimal' | 'header-only'): Display mode (default: 'full')\r\n\r\n**Example Usage:**\r\n\r\n```tsx\r\nimport { parseFrontMatter, FrontMatterDisplay } from '@asafarim/simple-md-viewer';\r\n\r\nconst markdownWithFrontMatter = `---\r\ntitle: \"My Document\"\r\nauthor: \"John Doe\"\r\nlastModified: \"2025-01-20\"\r\nlocale: \"nl-BE\"\r\n---\r\n\r\n# My Content\r\n`;\r\n\r\nconst { frontMatter, content } = parseFrontMatter(markdownWithFrontMatter);\r\n\r\n<FrontMatterDisplay frontMatter={frontMatter} mode=\"full\" />\r\n```\r\n\r\n### Types\r\n\r\n#### `FileNode`\r\n\r\n```typescript\r\ninterface FileNode {\r\n  name: string;\r\n  path: string;\r\n  type: 'file' | 'folder';\r\n  children?: FileNode[];\r\n}\r\n```\r\n\r\n#### `ThemeContextType`\r\n\r\n```typescript\r\ninterface ThemeContextType {\r\n  theme: 'light' | 'dark';\r\n  toggleTheme?: () => void;\r\n}\r\n```\r\n\r\n#### `FrontMatter`\r\n\r\n```typescript\r\ninterface FrontMatter {\r\n  title?: string;\r\n  description?: string;\r\n  author?: string;\r\n  date?: string;\r\n  lastModified?: string;\r\n  version?: string;\r\n  category?: string;\r\n  section?: string;\r\n  order?: number;\r\n  tags?: string[];\r\n  keywords?: string[];\r\n  toc?: boolean;\r\n  sidebar?: boolean;\r\n  locale?: string; // Date formatting locale (e.g., 'en-US', 'nl-BE', 'fr-BE')\r\n  breadcrumbs?: Array<{\r\n    name: string;\r\n    path: string;\r\n  }>;\r\n  related?: Array<{\r\n    title: string;\r\n    path: string;\r\n  }>;\r\n  [key: string]: any; // Allow additional custom properties\r\n}\r\n```\r\n\r\n#### `ParsedMarkdown`\r\n\r\n```typescript\r\ninterface ParsedMarkdown {\r\n  frontMatter: FrontMatter | null;\r\n  content: string;\r\n}\r\n```\r\n\r\n## 🔧 Complete Project Setup\r\n\r\n### 1. Create Your Documentation Project\r\n\r\n```bash\r\nmkdir my-docs-site\r\ncd my-docs-site\r\nnpm init -y\r\n```\r\n\r\n### 2. Install Dependencies\r\n\r\n```bash\r\nnpm install @asafarim/simple-md-viewer react react-dom react-router-dom\r\nnpm install --save-dev vite @vitejs/plugin-react typescript\r\nnpm install express cors concurrently\r\n```\r\n\r\n### 3. Create Project Structure\r\n\r\n```\r\nmy-docs-site/\r\n├── package.json\r\n├── vite.config.ts\r\n├── server.js\r\n├── src/\r\n│   ├── main.tsx\r\n│   ├── App.tsx\r\n│   └── vite-env.d.ts\r\n├── public/\r\n│   └── index.html\r\n└── md-docs/                    # Your markdown files\r\n    ├── README.md\r\n    ├── getting-started.md\r\n    └── api/\r\n        └── reference.md\r\n```\r\n\r\n### 4. Configure Vite\r\n\r\n```typescript\r\n// vite.config.ts\r\nimport { defineConfig } from 'vite';\r\nimport react from '@vitejs/plugin-react';\r\n\r\nexport default defineConfig({\r\n  plugins: [react()],\r\n  server: {\r\n    port: 5173,\r\n  },\r\n});\r\n```\r\n\r\n### 5. Setup Scripts\r\n\r\n```json\r\n{\r\n  \"scripts\": {\r\n    \"dev\": \"vite\",\r\n    \"build\": \"vite build\",\r\n    \"serve\": \"node server.js\",\r\n    \"start\": \"concurrently \\\"npm run dev\\\" \\\"npm run serve\\\"\"\r\n  }\r\n}\r\n```\r\n\r\n### 6. Create Your App\r\n\r\n```tsx\r\n// src/App.tsx\r\nimport React, { useState, useEffect } from 'react';\r\nimport { HashRouter } from 'react-router-dom';\r\nimport { MarkdownContent, ThemeProvider } from '@asafarim/simple-md-viewer';\r\nimport '@asafarim/simple-md-viewer/dist/style.css';\r\n\r\nfunction App() {\r\n  const [theme, setTheme] = useState(() => {\r\n    return localStorage.getItem('smv-theme') || 'light';\r\n  });\r\n\r\n  const toggleTheme = () => {\r\n    setTheme(prevTheme => {\r\n      const newTheme = prevTheme === 'light' ? 'dark' : 'light';\r\n      localStorage.setItem('smv-theme', newTheme);\r\n      return newTheme;\r\n    });\r\n  };\r\n\r\n  useEffect(() => {\r\n    document.documentElement.setAttribute('data-theme', theme);\r\n  }, [theme]);\r\n\r\n  return (\r\n    <ThemeProvider theme={theme} toggleTheme={toggleTheme}>\r\n      <div className={`app ${theme}`}>\r\n        <HashRouter>\r\n          <MarkdownContent \r\n            apiBaseUrl=\"http://localhost:3300\"\r\n            showHomePage={true}\r\n          />\r\n        </HashRouter>\r\n      </div>\r\n    </ThemeProvider>\r\n  );\r\n}\r\n\r\nexport default App;\r\n```\r\n\r\n```tsx\r\n// src/main.tsx\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom/client';\r\nimport App from './App';\r\n\r\nReactDOM.createRoot(document.getElementById('root')!).render(\r\n  <React.StrictMode>\r\n    <App />\r\n  </React.StrictMode>\r\n);\r\n```\r\n\r\n### 7. Run Your Documentation Site\r\n\r\n```bash\r\nnpm start\r\n```\r\n\r\nYour documentation site will be available at `http://localhost:5173`\r\n\r\n## 📱 Mobile Responsiveness\r\n\r\nThe viewer is fully responsive with:\r\n\r\n- **Mobile (< 768px)**: Collapsible sidebar overlay with touch-friendly navigation\r\n- **Tablet (768px - 1024px)**: Optimized layout with compressed sidebar\r\n- **Desktop (> 1024px)**: Full sidebar and content layout\r\n\r\n### Mobile-Specific Features\r\n\r\n- Touch-friendly navigation\r\n- Collapsible sidebar with backdrop overlay\r\n- Optimized typography scaling\r\n- Gesture-friendly interface elements\r\n- Proper viewport handling\r\n\r\n## 🎯 Use Cases\r\n\r\n### 1. 📖 Project Documentation\r\n\r\nPerfect for API documentation, user guides, and technical specifications.\r\n\r\n### 2. 🏢 Team Knowledge Base\r\n\r\nOrganize team processes, onboarding materials, and internal documentation.\r\n\r\n### 3. 📝 Blog & Articles\r\n\r\nCreate a clean, navigable blog or article collection.\r\n\r\n### 4. 🎓 Educational Content\r\n\r\nBuild course materials, tutorials, and learning resources.\r\n\r\n### 5. 📋 Specification Documents\r\n\r\nDocument project requirements, architecture, and technical specifications.\r\n\r\n### 6. 🎯 Full-Width Content Display (`hideFileTree={true}`)\r\n\r\nWhen you want to display markdown content without file navigation, perfect for:\r\n\r\n#### **Single Document Viewer**\r\n\r\n```tsx\r\n<MarkdownContent \r\n  showHomePage={false}\r\n  apiBaseUrl=\"http://localhost:3300\"\r\n  hideFileTree={true}\r\n/>\r\n```\r\n\r\n- **Blog post viewer**: Display a single article without navigation clutter\r\n- **Embedded documentation**: Integrate into existing dashboards or applications\r\n- **Mobile-optimized reading**: Maximize content space on small screens\r\n- **Presentation mode**: Full-width display for presentations or demos\r\n\r\n### 7. 🎨 Minimalistic UI (`hideHeader={true}`, `hideFooter={true}`)\r\n\r\nFor ultra-clean integration into existing applications:\r\n\r\n#### **Embedded Widget Mode**\r\n\r\n```tsx\r\n<MarkdownContent \r\n  showHomePage={false}\r\n  apiBaseUrl=\"/api/docs\"\r\n  hideFileTree={true}\r\n  hideHeader={true}\r\n  hideFooter={true}\r\n/>\r\n```\r\n\r\n- **API documentation widgets**: Clean docs in admin panels\r\n- **Help system integration**: Context-sensitive help without UI conflicts\r\n- **Mobile app embedding**: Ultra-minimal chrome for mobile apps\r\n- **Dashboard content**: Documentation that blends with existing UI\r\n- **White-label solutions**: Remove branding for third-party integrations\r\n- **Mobile-optimized reading**: Maximize content space on small screens\r\n- **Presentation mode**: Full-width display for presentations or demos\r\n\r\n#### **Content-First Applications**\r\n\r\n```tsx\r\n// Perfect for applications where content is king\r\nfunction DocumentReader() {\r\n  return (\r\n    <div className=\"full-screen-reader\">\r\n      <MarkdownContent \r\n        showHomePage={true}\r\n        apiBaseUrl=\"/api/docs\"\r\n        hideFileTree={true}\r\n      />\r\n    </div>\r\n  );\r\n}\r\n```\r\n\r\n#### **When to Use `hideFileTree={true}`:**\r\n\r\n- ✅ **Single document focus**: When users should focus on one piece of content\r\n- ✅ **Embedded viewers**: Integrating into existing applications with their own navigation\r\n- ✅ **Mobile-first experience**: Maximizing content space on smaller screens\r\n- ✅ **Clean presentation**: When file tree navigation would be distracting\r\n- ✅ **Dashboard integration**: Embedding docs into admin panels or dashboards\r\n\r\n## 🔧 Advanced Configuration\r\n\r\n### Environment Variables\r\n\r\n```env\r\n# .env\r\nVITE_API_BASE_URL=http://localhost:3300\r\nVITE_DEFAULT_THEME=light\r\n```\r\n\r\n### Custom Package Links\r\n\r\nThe viewer includes built-in support for package links:\r\n\r\n```tsx\r\nimport { CollapsiblePackageLinks } from '@asafarim/simple-md-viewer';\r\n\r\n<CollapsiblePackageLinks\r\n  packageName=\"@asafarim/simple-md-viewer\"\r\n  githubPath=\"AliSafari-IT/simple-md-viewer\"\r\n  demoPath=\"https://alisafari-it.github.io/simple-md-viewer/\"\r\n/>\r\n```\r\n\r\n### Advanced Theme Configuration\r\n\r\n```tsx\r\nimport { ThemeProvider } from '@asafarim/simple-md-viewer';\r\n\r\nfunction App() {\r\n  const [theme, setTheme] = useState(() => {\r\n    // Check localStorage and system preference\r\n    const savedTheme = localStorage.getItem('smv-theme');\r\n    if (savedTheme) return savedTheme;\r\n    \r\n    // Check system preference\r\n    if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\r\n      return 'dark';\r\n    }\r\n    return 'light';\r\n  });\r\n\r\n  const toggleTheme = () => {\r\n    setTheme(prevTheme => {\r\n      const newTheme = prevTheme === 'light' ? 'dark' : 'light';\r\n      localStorage.setItem('smv-theme', newTheme);\r\n      document.documentElement.setAttribute('data-theme', newTheme);\r\n      return newTheme;\r\n    });\r\n  };\r\n\r\n  // Listen for system theme changes\r\n  useEffect(() => {\r\n    const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\r\n    const handleChange = (e) => {\r\n      if (!localStorage.getItem('smv-theme')) {\r\n        setTheme(e.matches ? 'dark' : 'light');\r\n      }\r\n    };\r\n    \r\n    mediaQuery.addEventListener('change', handleChange);\r\n    return () => mediaQuery.removeEventListener('change', handleChange);\r\n  }, []);\r\n\r\n  return (\r\n    <ThemeProvider theme={theme} toggleTheme={toggleTheme}>\r\n      {/* Your app content */}\r\n    </ThemeProvider>\r\n  );\r\n}\r\n```\r\n\r\n### 🎛️ Configuration Examples\r\n\r\nHere are common configuration patterns for different use cases:\r\n\r\n#### **Full-Featured Documentation Site**\r\n\r\n```tsx\r\n<MarkdownContent \r\n  apiBaseUrl=\"http://localhost:3300\"\r\n  showHomePage={true}\r\n  hideFileTree={false}\r\n  hideHeader={false}\r\n  hideFooter={false}\r\n/>\r\n```\r\n\r\n#### **Mobile-Optimized Content Viewer**\r\n\r\n```tsx\r\n<MarkdownContent \r\n  apiBaseUrl=\"/api/docs\"\r\n  showHomePage={true}\r\n  hideFileTree={true}    // Maximize content space\r\n  hideHeader={false}     // Keep theme toggle and branding\r\n  hideFooter={true}      // Remove footer for more space\r\n/>\r\n```\r\n\r\n#### **Embedded Widget (Minimal Chrome)**\r\n\r\n```tsx\r\n<MarkdownContent \r\n  apiBaseUrl=\"/api/help\"\r\n  showHomePage={false}   // Direct to content\r\n  hideFileTree={true}    // No navigation needed\r\n  hideHeader={true}      // Remove all chrome\r\n  hideFooter={true}      // Ultra-clean integration\r\n/>\r\n```\r\n\r\n#### **Dashboard Documentation Panel**\r\n\r\n```tsx\r\n<MarkdownContent \r\n  apiBaseUrl=\"/api/docs\"\r\n  showHomePage={false}\r\n  hideFileTree={true}    // Clean layout\r\n  hideHeader={true}      // Integrate with dashboard header\r\n  hideFooter={false}     // Keep footer for branding\r\n/>\r\n```\r\n\r\n#### **Blog Post Reader**\r\n\r\n```tsx\r\n<MarkdownContent \r\n  apiBaseUrl=\"/api/blog\"\r\n  showHomePage={true}\r\n  hideFileTree={true}    // Focus on content\r\n  hideHeader={false}     // Keep navigation\r\n  hideFooter={false}     // Keep branding\r\n/>\r\n```\r\n\r\n## 🚀 Deployment\r\n\r\n### GitHub Pages\r\n\r\n```bash\r\n# Build your project\r\nnpm run build\r\n\r\n# Deploy to GitHub Pages\r\nnpm run deploy\r\n```\r\n\r\n### Netlify/Vercel\r\n\r\nSimply connect your repository and deploy the `dist` folder.\r\n\r\n### Docker\r\n\r\n```dockerfile\r\nFROM node:18-alpine\r\n\r\nWORKDIR /app\r\nCOPY package*.json ./\r\nRUN npm install\r\n\r\nCOPY . .\r\nRUN npm run build\r\n\r\nEXPOSE 5173\r\nCMD [\"npm\", \"start\"]\r\n```\r\n\r\n## 🛠️ Development\r\n\r\n### Local Development\r\n\r\n```bash\r\ngit clone https://github.com/AliSafari-IT/simple-md-viewer.git\r\ncd simple-md-viewer\r\nnpm install\r\nnpm start\r\n```\r\n\r\n### Building the Library\r\n\r\n```bash\r\nnpm run build:lib    # Build library for npm\r\nnpm run build        # Build demo application\r\n```\r\n\r\n## 🤝 Contributing\r\n\r\nWe welcome contributions! Please see our [Contributing Guide](https://github.com/AliSafari-IT/simple-md-viewer/blob/main/CONTRIBUTING.md).\r\n\r\n### Development Workflow\r\n\r\n1. Fork the repository\r\n2. Create your feature branch: `git checkout -b feature/amazing-feature`\r\n3. Commit your changes: `git commit -m 'Add amazing feature'`\r\n4. Push to the branch: `git push origin feature/amazing-feature`\r\n5. Open a Pull Request\r\n\r\n## 📄 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](https://github.com/AliSafari-IT/simple-md-viewer/blob/main/LICENSE) file for details.\r\n\r\n## 🙏 Acknowledgments\r\n\r\n- Built with [React](https://reactjs.org/) and [Vite](https://vitejs.dev/)\r\n- Powered by [react-markdown](https://github.com/remarkjs/react-markdown) with [remark-gfm](https://github.com/remarkjs/remark-gfm)\r\n- YAML parsing by [js-yaml](https://github.com/nodeca/js-yaml)\r\n- Syntax highlighting by [react-syntax-highlighter](https://github.com/react-syntax-highlighter/react-syntax-highlighter)\r\n- Package links from [@asafarim/shared](https://www.npmjs.com/package/@asafarim/shared)\r\n\r\n## 📞 Support & Links\r\n\r\n- 📦 **NPM Package**: [npmjs.com/package/@asafarim/simple-md-viewer](https://www.npmjs.com/package/@asafarim/simple-md-viewer)\r\n- 🌐 **Live Demo**: [alisafari-it.github.io/simple-md-viewer](https://alisafari-it.github.io/simple-md-viewer/#/)\r\n- 📂 **GitHub Repository**: [github.com/AliSafari-IT/simple-md-viewer](https://github.com/AliSafari-IT/simple-md-viewer)\r\n- 🐛 **Issues**: [GitHub Issues](https://github.com/AliSafari-IT/simple-md-viewer/issues)\r\n- 💬 **Discussions**: [GitHub Discussions](https://github.com/AliSafari-IT/simple-md-viewer/discussions)\r\n\r\n---\r\n\r\n**Made with ❤️ by [Ali Safari](https://github.com/AliSafari-IT)**\r\n\r\n*Transform your markdown files into a beautiful, professional documentation site! 📖✨*\r\n","readmeFilename":"README.md"}