{"_id":"@ainame/tuzuru","_rev":"20-93c291d61064ed7080f67bb26eb64061","name":"@ainame/tuzuru","dist-tags":{"latest":"0.6.1"},"versions":{"0.0.20":{"name":"@ainame/tuzuru","version":"0.0.20","license":"MIT","_id":"@ainame/tuzuru@0.0.20","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"e75680df0ba695af1587fbc2ed5d10dfe555b100","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.0.20.tgz","fileCount":4,"integrity":"sha512-eYCMDYrwPTZYJY6XTcHm/ofib8vB96g4M1K6drKKCryoZ6mG/Zm/5cRzso2Aw+wouvLbeJ3HulmhNcfgsnOsmw==","signatures":[{"sig":"MEQCIG1sdpYeYv8TNCfefEd/oaDSPapGUtO+4+eG1VDkzlUYAiAA8S1A5Q4BgkH5976oaEzIdD8HdvHpACBp5Iduqol8xA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8352},"engines":{"node":">=16"},"gitHead":"d3f8ba341d6965f107fbc468d6e1226bb880c953","private":false,"scripts":{"postinstall":"node scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.0.20_1757171864523_0.6509898977265247","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@ainame/tuzuru","version":"0.1.0","license":"MIT","_id":"@ainame/tuzuru@0.1.0","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"22b3b8f67f94e84ea9e6405d8a4d1e6ff0f15b8b","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.1.0.tgz","fileCount":3,"integrity":"sha512-rWmwLYxclNrquwLZ62qk6/R+PYCWPI8FL9cs4RRwNrGM6EtrUjg5Zchc0UnHqVn3Re38+Mi41E2CQMVWG5BFbg==","signatures":[{"sig":"MEYCIQCqXlTAOaCJc+F6z9mCmcnAiZRPmy3ncgtL+r58w92vhQIhAPm4/2tDY1ulN6iH6O9aTXrLhQxCBRR4d7+1HUYbER1o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7020},"engines":{"node":">=16"},"gitHead":"97d9ac74a2c1e5733194f5bb5164cf40b925b784","private":false,"scripts":{"postinstall":"node scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.1.0_1757173370446_0.4758666256595694","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@ainame/tuzuru","version":"0.1.1","license":"MIT","_id":"@ainame/tuzuru@0.1.1","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"834e228cbd3ef0577ad007be00ef3290a55945c2","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.1.1.tgz","fileCount":4,"integrity":"sha512-Now5pmAjzXZ0Y0kH2KyhQcwtFHFgpKxZbbbCoYKLZQhqqtgFQExIUKU/XivaaEzP86l+9ndZkKmOw3a/B0FDvA==","signatures":[{"sig":"MEYCIQDWSTshcAT3BUHNbXzPhC1F3LL1qDHPq2kq9yxBpAkqegIhAOajgfktwhhGg9QCpAAflkE3KXpBp5CkJW1E07rIi9rg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15288},"engines":{"node":">=16"},"gitHead":"f86fa3b842afb0c19329c76491abfee1704fc481","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.1.1_1757174958551_0.9071620208909017","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@ainame/tuzuru","version":"0.1.2","license":"MIT","_id":"@ainame/tuzuru@0.1.2","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"8e1e82817fb0bb0868a52efb7c7fb869b472a7eb","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.1.2.tgz","fileCount":4,"integrity":"sha512-BMVru7Iqh1LiVrAGAgvbUgOqnVPLCo7VBrJHjArnWdFIYJSQQlfCA7SakWCkqMKF1TcWhhHvdWLfWADg4RyS6g==","signatures":[{"sig":"MEQCIDZB+S3QsXxvcO4MGdFiDSr8NlTpqBH2Zk3M85woz9DhAiB3067bBC0k+tCVLInNrGpxnpK0UkXx3amtPSl2jeXxjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15457},"engines":{"node":">=16"},"gitHead":"e8657483ceeb88ac5a1f689d433982655abba154","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.1.2_1757188752520_0.16130176386523698","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@ainame/tuzuru","version":"0.2.0","license":"MIT","_id":"@ainame/tuzuru@0.2.0","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"fd595460177fcb51686e2b394164374f7506e68a","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.2.0.tgz","fileCount":5,"integrity":"sha512-g7ek1qjBt9T7n49R5bkaN2oB1vfWjLsCkcNMIjflP71wF9QgFeO3wMR2rOi4Hhai1X/Fjtyb9gfi5qpt5Fa+5g==","signatures":[{"sig":"MEYCIQCkLPshAxi8vo/Hqm0mO+56q5u3Pf5dNo8aJ6unkmhCcgIhAJPc2+3xG8nufeAsxCz7TL6Li2eiMOHPRJlANACli3BP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18629},"engines":{"node":">=16"},"gitHead":"7c75b4639a40a6d77e0bc4f7d06317336b7e4aef","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.2.0_1757555553275_0.739238962172976","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@ainame/tuzuru","version":"0.3.0","license":"MIT","_id":"@ainame/tuzuru@0.3.0","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"96ed56825aaec4ed347225a74f3554cc5e49f236","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.3.0.tgz","fileCount":5,"integrity":"sha512-yNvJF1Qq2zP030/Ic1JW8oO3vDE0fTp06Bfy/UNdUnWbjRSTpZcL5jb/C6K64qNNt5sDgyFDoMcgpdtOLFFqKg==","signatures":[{"sig":"MEUCIQCoN8W1PdTRt1p14klgIfsq/8dSky08vUNhGGbIGQ3xUgIgHzYen5PPrjIsEGpIzr5RagP2rLZ1pjKBPhhckjRF6qU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19576},"engines":{"node":">=16"},"gitHead":"1576805abb85ff81ecf1b950928881508f85e092","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.3.0_1757903495723_0.7365414109894477","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@ainame/tuzuru","version":"0.3.1","license":"MIT","_id":"@ainame/tuzuru@0.3.1","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"79dfb81016a15c085c13a876df9fe46c26191c30","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.3.1.tgz","fileCount":5,"integrity":"sha512-0SEaqfWpdNCDWlYu7YyZmIpl0pwGXecmhoSg2fWE4FwUog+q+1LZxImRJW2QMq3PjSjSZK/MTeARu45dvms1bA==","signatures":[{"sig":"MEUCIQD+kBvvbmC1mUjl/1vMfk48c72PDsARbUSGXXSCBt66xQIge5pBHSsMagjz6wOTKqd701vv/zZdREJM7b2a+S/I6pE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18630},"engines":{"node":">=16"},"gitHead":"e728d9ab00cdfaf2142a5ac4940ed3ba32a95929","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.3.1_1757939528119_0.24776060073894368","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@ainame/tuzuru","version":"0.3.3","license":"MIT","_id":"@ainame/tuzuru@0.3.3","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"8a1e9fe2281c2b7b141ff55f78ed57410366e9c2","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.3.3.tgz","fileCount":5,"integrity":"sha512-My29uclOBQ5esgmub9dXXYWmDsSCyhMl8ojQhjWxFf5ktBPSiRY//Z/UXlDegt3r640+3bNjv8zT0elQ5s7+Ng==","signatures":[{"sig":"MEYCIQCWkQFwGj50W3CHcLYo9VSh7cJ1ikgGkk+4D28jBeTQDAIhALYHypLb9R4T63kZsBn1KT+rtbm6Uws3lcscTbXy6mcT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18630},"engines":{"node":">=16"},"gitHead":"e7737a6103630ee694a9c62e7ef78ee0c98d36f1","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.3.3_1757943262690_0.20093859685582238","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@ainame/tuzuru","version":"0.3.4","license":"MIT","_id":"@ainame/tuzuru@0.3.4","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"8ebe775159eb78b6dba262a43aa843a5eb84f403","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.3.4.tgz","fileCount":5,"integrity":"sha512-c80kl9mTT7NOvdj/snMFCGaS8J1BGCUoJPp9Wzk2bwGfXgk3VpCAU09OUifqJyjPD6VVGwNF+m/zaFDWgU7Afg==","signatures":[{"sig":"MEQCIGPJsRSkls+kD7RSlqlX/6ixKZsbh51OY8BVIJMxKfgRAiA7gPFXm0i+lEd00b9Uvu9UW6HvHsNleQci5dFkUnQIBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18630},"engines":{"node":">=16"},"gitHead":"e635a424bf580f8d41d90f0d22a4804a35f4ea89","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.3.4_1758240238520_0.8389827516548327","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@ainame/tuzuru","version":"0.4.0","license":"MIT","_id":"@ainame/tuzuru@0.4.0","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"70ed1746219ec435fc0a05e7046b8a536f1100b4","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.4.0.tgz","fileCount":5,"integrity":"sha512-zweghmoY0bqmyeLUTGoI8vxPZwiaqb18vKY/pIMOKkK8zgZUWfYYzufNAI/t9xx4DhpqPRS7kHA6aLYvxoe72A==","signatures":[{"sig":"MEUCIAa+F3xE7t80rAuhOPChHQceD3E6hpChsDeFnvdAGp2KAiEAx0GxFiJ2W4IkmctpoL2a/C6BWK+u+Ci+MfzYho93O5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18646},"engines":{"node":">=16"},"gitHead":"3c889e65d7a34f2713bf32cf3475a7e2b7965dde","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"10.9.3","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.4.0_1758444135899_0.2734307678208652","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@ainame/tuzuru","version":"0.5.0","license":"MIT","_id":"@ainame/tuzuru@0.5.0","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"os":["darwin","linux"],"bin":{"tuzuru":"npm/bin/tuzuru.js"},"cpu":["x64","arm64"],"dist":{"shasum":"a30b1974d84184038b911115105397490eb8bec3","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.5.0.tgz","fileCount":5,"integrity":"sha512-O6soKgzJ5j4MZZNnZb9B4uunkV44giQFBrxXiEFt85qvc9XB9TUFdxi+ArX8JQzqjt+5fK74IAMupIzQ3v/C2w==","signatures":[{"sig":"MEUCIQDugB+IFbxW8g3ZIRRTd6/9tEsjPBqyeemHmEqWZYtJwQIgIejiG6MDcBdXqnj6DZGmIz2B0k3Asq8OrHtlEfI3y6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18646},"engines":{"node":">=16"},"gitHead":"c122c4a628391fe912d139100c6116b7c62c3eab","private":false,"scripts":{"postinstall":"node npm/scripts/install.js"},"_npmUser":{"name":"ainame","email":"s.namai.09@gmail.com"},"repository":{"url":"git+https://github.com/ainame/Tuzuru.git","type":"git"},"_npmVersion":"11.6.1","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tuzuru_0.5.0_1762694462917_0.17397862921840312","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@ainame/tuzuru","version":"0.6.1","description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","license":"MIT","private":false,"bin":{"tuzuru":"npm/bin/tuzuru.js"},"os":["darwin","linux"],"cpu":["x64","arm64"],"engines":{"node":">=16"},"repository":{"type":"git","url":"git+https://github.com/ainame/Tuzuru.git"},"homepage":"https://github.com/ainame/Tuzuru","bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"scripts":{"postinstall":"node npm/scripts/install.js"},"gitHead":"2e046e67bff272302f287ae56e0e2bb2b6ef4ea1","_id":"@ainame/tuzuru@0.6.1","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-PHv0/iDh6i39lRz+CsA32y8eFfy+72bKUzWSCOGbVr8wKEHuH1QVMmf1M17sejA9/exZ7dXdV9e9VdGbKk93Qg==","shasum":"5ebed76078a9e6b1648437dcc2b15725c1be35c8","tarball":"https://registry.npmjs.org/@ainame/tuzuru/-/tuzuru-0.6.1.tgz","fileCount":5,"unpackedSize":19340,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ainame%2ftuzuru@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDJYdg2xpXqVm4g+fHP/SQicDghSPQ7uok6WfVQU6g3zgIgGXyYUrMCNGHoRXkVEkf3QowphdPhEPmJC0QUgqYHIJE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c72c48ed-6036-473c-a7bd-7b57d32207d5"}},"directories":{},"maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tuzuru_0.6.1_1768495921279_0.3081332845551332"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-06T15:17:44.460Z","modified":"2026-01-15T16:52:01.733Z","0.0.19":"2025-09-06T14:50:17.695Z","0.0.20":"2025-09-06T15:17:44.717Z","0.1.0":"2025-09-06T15:42:50.643Z","0.1.1":"2025-09-06T16:09:18.742Z","0.1.2":"2025-09-06T19:59:12.690Z","0.2.0":"2025-09-11T01:52:33.507Z","0.3.0":"2025-09-15T02:31:35.900Z","0.3.1":"2025-09-15T12:32:08.309Z","0.3.3":"2025-09-15T13:34:22.849Z","0.3.5":"2025-09-18T23:16:23.981Z","0.3.6":"2025-09-18T23:34:48.868Z","0.3.4":"2025-09-19T00:03:58.689Z","0.3.5-test":"2025-09-20T10:46:46.218Z","0.4.0":"2025-09-21T08:42:16.095Z","0.5.0":"2025-11-09T13:21:03.121Z","0.6.1":"2026-01-15T16:52:01.427Z"},"bugs":{"url":"https://github.com/ainame/Tuzuru/issues"},"license":"MIT","homepage":"https://github.com/ainame/Tuzuru","repository":{"type":"git","url":"git+https://github.com/ainame/Tuzuru.git"},"description":"Tuzuru static blog generator (npm wrapper around prebuilt binaries)","maintainers":[{"name":"ainame","email":"s.namai.09@gmail.com"}],"readme":"# Tuzuru\n\n[![Swift Version](https://img.shields.io/badge/Swift-6.1+-blue.svg)](https://swift.org)\n[![Swift Package Manager](https://img.shields.io/badge/SPM-compatible-brightgreen.svg)](https://swift.org/package-manager/)\n[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/ainame/tuzuru/blob/main/LICENSE)\n[![GitHub Release](https://img.shields.io/github/v/release/ainame/tuzuru)](https://github.com/ainame/tuzuru/releases)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/ainame/tuzuru/ci.yml?branch=main)](https://github.com/ainame/tuzuru/actions)\n\nTuzuru (綴る) is a dead-simple static **blog** generator CLI that uses Git to manage your blog metadata.\nJust write and commit plain Markdown files—no front matter needed.\nTuzuru automatically derives metadata such as dates and author from your Git history.\n\n![logo](.github/assets/logo.png)\n\nIt is designed to keep workflows minimal, allowing you to focus on writing.\n\n* Simple plain Markdown format, no YAML required\n  * Instead of YAML front matter, Tuzuru pulls the publication date and author from Git.\n* Simple routing with auto-generated listing pages\n  * Yearly archives and category-based listings are created automatically.\n* Simple preview server with built-in watch mode\n  * `tuzuru preview` automatically rebuilds on requests.\n* Simple installation with minimal setup\n  * Install via Homebrew, npm, or download a binary from GitHub Releases.\n* Simple deployment with built-in GitHub Actions\n  * From installation to deployment, everything is handled for you.\n\n## Installation\n\n### npm (Cross-platform)\n\n```bash\nnpm install -g @ainame/tuzuru\n```\n\nThis will download and install the appropriate prebuilt binary for your platform (macOS or Linux).\n\n### Homebrew (macOS)\n\n```bash\nbrew tap ainame/tuzuru https://github.com/ainame/Tuzuru\nbrew install tuzuru\n```\n\n### Manual Build\n\n```bash\nswift build -c release\ncp .build/release/tuzuru /path/to/bin\n```\n\n## Getting started\n\nYou first need to set up a Git repo locally.\n\n```bash\nmkdir new-blog\ncd new-blog\ngit init\n\n# Initialize a blog project\n# This adds `assets`, `contents`, `templates` directories and `tuzuru.json`\ntuzuru init\n\ngit add .\ngit commit -m \"init commit\"\n```\n\nThen create a markdown file under the `contents` directory and do `git commit`.\n\n``` bash\nemacs contents/first-blog-post.md\ngit add contents/first-blog-post.md\ngit commit -m \"First post\"\n```\n\nWhen you make `git commit` becomes your post's published date.\nSpecifically, the first commit's Author Date for a markdown file under `contents` is the published date and also, author name will be taken from Git's config.\n\nNow it's time to build your blog.\n\n``` bash\ntuzuru generate\n```\n\nYou can now see the `blog` directory that can be deployed to GitHub Pages or your favorite HTTP server.\n\nFor local development, use the built-in preview command:\n\n``` bash\ntuzuru preview\n```\n\nThis starts a local HTTP server at `http://localhost:8000` with auto-regeneration enabled. When you modify source files, the blog will be automatically rebuilt on the next request.\n\n### Deployment\n\nThis repo has two GitHub Actions prepared for Tuzuru blogs to set up deployment easily.\n\n* [ainame/Tuzuru/.github/actions/tuzuru-deploy](https://github.com/ainame/tuzuru/blob/main/.github/actions/tuzuru-deploy/action.yml)\n   * Install tuzuru via npm, generate blog, upload the artefact, and deploy to GitHub page\n* [ainame/Tuzuru/.github/actions/tuzuru-generate](https://github.com/ainame/tuzuru/blob/main/.github/actions/tuzuru-generate/action.yml)\n   * Only install tuzuru via npm and generate blog\n   * You can deploy to anywhere you like\n\nTheir versions should match the CLI’s version. When you update the CLI version, you should also update the action’s version.\nIt is recommended to use Renovate or Dependabot to keep it up to date.\n\n**Note that sicne Tuzuru relies on Git history, you have to checkout git repo with the entire history. Specify `fetch-deploy: 0` in `actions/checkout`**\n\nThis is an exmaple `.github/workflows/deploy.yml`.\n\n<details>\n\n```yaml\nname: Deploy\n\non:\n  push:\n    branches: [main]\n  workflow_dispatch:\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: false\n\njobs:\n  deploy:\n    runs-on: ubuntu-latest\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.page_url }}\n    steps:\n      - uses: actions/checkout@v5\n        with:\n          fetch-depth: 0\n      - uses: ainame/Tuzuru/.github/actions/tuzuru-deploy@0.1.2\n```\n\n</details>\n\n#### Static Files (public directory)\n\nIf you need to include static files that should be copied as-is to your deployed site (e.g., Google Search Console verification HTML, `robots.txt`, or other verification files), create a `public/` directory in your project root:\n\n```\nmy-blog/\n├── public/\n│   ├── google1234567890abcdef.html  # → /google1234567890abcdef.html\n│   └── robots.txt                    # → /robots.txt\n├── contents/\n├── templates/\n└── ...\n```\n\nThe `tuzuru-deploy` action will automatically copy all files from `public/` to the output directory before deployment. This directory is optional—if it doesn't exist, the step is skipped.\n\n### Built-in layout\n\nThe built-in layout is a great starting point and is easy to customize. It already includes [github-markdown-css](https://github.com/sindresorhus/github-markdown-css) and [highlight.js](https://highlightjs.org/) to make writing tech blog posts a breeze.\n\n![screenshot](.github/assets/screenshot.png)\n\n### Demo\n\nYou can see Tuzuru in action with this demo blog hosted on GitHub Pages:\n\n- **Live Demo**: [https://ainame.tokyo/tuzuru-demo/](https://ainame.github.io/tuzuru-demo/)\n- **Source Repository**: [https://github.com/ainame/tuzuru-demo](https://github.com/ainame/tuzuru-demo)\n\nThis demo showcases the built-in layout.\n\n## How it works\n\nThis is how a tuzuru project look like.\n\n```\nmy-blog/\n├── contents/\n│   ├── hello-world.md          # → /hello-world\n│   ├── tech/\n│   │   └── swift-tips.md       # → /tech/swift-tips (listed on /tech)\n│   └── unlisted/\n│       └── about.md            # → /about (not listed anywhere. You can link to /about from layout.mustache manually)\n├── templates/\n│   ├── layout.mustache\n│   ├── post.mustache\n│   └── list.mustache\n├── assets/\n│   └── main.css\n└── tuzuru.json\n```\n\n* `contents/` - where you put markdown files\n* `templates/` - layout files\n* `assets/` - place to locate your assets files, like css or images\n* `tuzuru.json` - configuration\n\n### Layout and customization\n\nTuzuru supports two types of pages.\n\n1. Post - a blog article\n2. List - a listing page generated automatically\n\nYou can customize these layouts using three Mustache files:\n\n* templates/layout.mustache - Base layout\n* templates/post.mustache - main part of post page\n* templates/list.mustache - main part of list page\n\nFor more on syntax, see the documentation.\nhttps://docs.hummingbird.codes/2.0/documentation/hummingbird/mustachesyntax/\n\n### Listing and Unlisted Pages\n\nBy default, any Markdown file in the `contents` directory is automatically listed on:\n\n* The home page (`/`) based on your configuration.\n* Yearly archive pages (e.g., `/2025`, `/2024`).\n* Category pages for files in subdirectories (e.g., `contents/tech/swift.md` is listed on `/tech`).\n\nYou can add an unlisted page by placing it in `contents/unlisted/`. These pages won't be listed anywhere automatically, but you can link to them manually from your templates.\n\n### Assets\n\nThe `tuzuru init` command creates an assets directory containing `main.css`. The tuzuru generate command copies all files from this directory to `blog/assets`.\n\nTo prevent browser cache issues, use the `{{buildVersion}}` variable in your templates.\n\n\n```mustache\n<link rel=\"stylesheet\" href=\"{{assetsUrl}}main.css?{{buildVersion}}\">\n```\n\n### tuzuru.json\n\n`tuzuru.json` is the main configuration file.\nBy default, you get only `metadata` section by `tuzuru init` but\nhere's the rest of customization you can do.\n\n\n```javascript\n{\n  // `metadata` is the only mandatory section.\n  \"metadata\" : {\n    \"blogName\" : \"My Blog\",\n    \"copyright\" : \"My Blog\",\n    \"description\" : \"My personal blog\", // Meta description for SEO\n    \"baseUrl\" : \"https://example.com/\",  // Production URL\n    \"locale\" : \"en_GB\" // Affects the published date format\n  },\n  // `output` for configuring output options\n  \"output\" : {\n    \"directory\" : \"blog\", // The output directory\n    \"homePageStyle\" : \"all\", // \"all\", \"pastYear\", or a number (last X posts)\n    \"routingStyle\" : \"subdirectory\" // \"subdirectory\" (e.g., /hello-world) or \"direct\" (e.g., /hello-world.html)\n  },\n  // `sourceLayout` to customize the default directory structure (typically not needed)\n  \"sourceLayout\" : {\n    \"assets\" : \"assets\",\n    \"contents\" : \"contents\",\n    \"imported\" : \"contents/imported\",\n    \"templates\" : {\n      \"layout\" : \"templates/layout.mustache\",\n      \"list\" : \"templates/list.mustache\",\n      \"post\" : \"templates/post.mustache\"\n    },\n    \"unlisted\" : \"contents/unlisted\"\n  }\n}\n```\n\n## Import posts from Hugo project\n\nYou can import Markdown files from a Hugo project. Tuzuru will parse the YAML front matter to get the title, author, and date, then remove it. Each imported Markdown file will be added as an individual Git commit.\n\n```bash\ntuzuru import /path/to/import-target-dir # import them to ./contents/imported by default\ntuzuru import /path/to/import-target-dir --destination /path/to/import\n```\n\n## Amend published date or author\n\nNeed to change a post's published date or author without rewriting your Git history? Use the amend command.\n\n```bash\n# Update published date\ntuzuru amend contents/my-post.md --published-at \"2023-12-01\"\n\n# Update author\ntuzuru amend contents/my-post.md --author \"New Author\"\n\n# Update both\ntuzuru amend contents/my-post.md --published-at \"2023-12-01 10:30:00 +0900\" --author \"New Author\"\n```\n\nThe command supports flexible date formats:\n\n- `2023-12-01` (date only)\n- `2023-12-01 10:30:00` (date and time)\n- `2023-12-01T10:30:00Z` (ISO 8601 UTC)\n- `2023-12-01 10:30:00 +0900` (with timezone)\n\nThis command creates a special marker commit that Tuzuru recognizes for post metadata, leaving your history clean.\n\n## Local Development Server\n\nTuzuru includes a built-in HTTP server for local development:\n\n```bash\n# Basic usage (serves on port 8000)\ntuzuru preview\n\n# Custom port\ntuzuru preview --port 3000\n\n# Custom directory (default is 'blog')\ntuzuru preview --directory my-output\n\n# Custom config file\ntuzuru preview --config my-config.json\n```\n\n### Auto-regeneration\n\nThe preview command automatically watches for changes in your source files and regenerates the blog when needed:\n\n- **Content files**: Watches `contents/` and `contents/unlisted/` directories\n- **Asset files**: Watches the `assets/` directory\n- **Templates**: Watches template files for changes\n\nWhen files are modified, the blog is regenerated on the next HTTP request, providing a seamless development experience without manual rebuilds.\n\n## Build Requirements\n\n- Swift 6.1+\n- macOS v15+\n\n","readmeFilename":"README.md"}