{"_id":"@amuject/template-engine","_rev":"9-e7eac8faf5f610583ce792d775fdbfd4","name":"@amuject/template-engine","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@amuject/template-engine","version":"1.0.0","author":{"url":"https://wanyne.com","name":"Sungwan Jo","email":"sung@wanyne.com"},"_id":"@amuject/template-engine@1.0.0","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"dist":{"shasum":"3e9cf423c18a69c2a6d4d893df5e77c3f36ff4b3","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.0.tgz","fileCount":32,"integrity":"sha512-gLFl3kJ+t60w5a1caHXEDcwDIRbLjacFPUSWc0dWMgxVDOXScLMNEyjpZBZd07MaiEcDlZW6U9e+D5DbwYUZjA==","signatures":[{"sig":"MEUCIQCW5WoKiMlFUEF36Ca4clk5OnLtRH1LRHMkNdiEtYDomQIgHvo804gYPqc/L98Rg/QhKnR85/YqA77+SiRaO6Bs9SE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":986303},"main":"src/index.js","type":"module","_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"_npmVersion":"11.6.2","description":"Easy HTML-based template engine","directories":{},"_nodeVersion":"24.12.0","dependencies":{"node-html-parser":"^7.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/template-engine_1.0.0_1775531161132_0.7070444172298522","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@amuject/template-engine","version":"1.0.1","author":{"url":"https://wanyne.com","name":"Sungwan Jo","email":"sung@wanyne.com"},"_id":"@amuject/template-engine@1.0.1","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"dist":{"shasum":"6c574b3d5408942bd64cda664441be08cf1e5ff0","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.1.tgz","fileCount":32,"integrity":"sha512-4Nj314kkAjf9O2LsCcJJeEh8DlEHQnmG2rL7r3RwBX6x2T4juLLCdjOsT4ircOKi7zznyhNf1Og3GMkezK9/YA==","signatures":[{"sig":"MEQCIFGtc477o2TRCqji/W7xsf0EFSwkTo0DcnW5eFyp3JGoAiBJnLiLoVGNjevj51ffGSs+pWT0U1m9nkDe8QSEOjJrNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":988435},"main":"src/index.js","type":"module","gitHead":"a48beb62ae97ee8ec63c7b15974aa0931fbeaa5a","_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"_npmVersion":"11.6.2","description":"Easy HTML-based template engine","directories":{},"_nodeVersion":"24.12.0","dependencies":{"node-html-parser":"^7.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/template-engine_1.0.1_1777597160695_0.9281407436093456","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@amuject/template-engine","version":"1.0.2","author":{"url":"https://wanyne.com","name":"Sungwan Jo","email":"sung@wanyne.com"},"_id":"@amuject/template-engine@1.0.2","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"dist":{"shasum":"4314315cf2f56cf32c14fb19d2dec94501ff22ad","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.2.tgz","fileCount":32,"integrity":"sha512-iAEXIV5iBKorWuiWjMhRhsDC23R1hlgyKJH2r088l3PeAVz0pCAD1Fusm9bsS9QLt8MTdhBjURD8KhsEZLIFyQ==","signatures":[{"sig":"MEUCIFD+5TZQ7yVMNbRotivxXMulo7EnMHT6MlDxkDmMHAnjAiEAhW9Xlwyvp3GRCHIc9q2hfhJR6YC3yuFF2y4BhhKYOpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":988511},"main":"src/index.js","type":"module","gitHead":"a48beb62ae97ee8ec63c7b15974aa0931fbeaa5a","_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"_npmVersion":"11.6.2","description":"Easy HTML-based template engine","directories":{},"_nodeVersion":"24.12.0","dependencies":{"node-html-parser":"^7.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/template-engine_1.0.2_1777597467488_0.9172374447261775","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@amuject/template-engine","version":"1.0.3","author":{"url":"https://wanyne.com","name":"Sungwan Jo","email":"sung@wanyne.com"},"_id":"@amuject/template-engine@1.0.3","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"dist":{"shasum":"a2bd87f1152d3610892f1d81e8704057dc2443f6","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.3.tgz","fileCount":34,"integrity":"sha512-Y/KKDwHHKqf1DQvT8kwg6a8OrmBkUqJWBzP4buaAm1AQuoRlfHoJYmSckH51FZlwVHVAZqtMaSZbRlMCZ7FBfg==","signatures":[{"sig":"MEUCIQD3M/igbBr6Fg1zFTrVIJpePyinabagjjHybKsCdU/ufwIgWnQ2v1IatiANP/QOx67IwBUF6o8VHBED6Ikh0N9rWfE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":990226},"main":"src/index.js","type":"module","gitHead":"8115ee743af39ef13f0d5103e62f03d2356d37d0","_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"_npmVersion":"11.6.2","description":"Easy HTML-based template engine","directories":{},"_nodeVersion":"24.12.0","dependencies":{"node-html-parser":"^7.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/template-engine_1.0.3_1777598412340_0.9738781076206346","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@amuject/template-engine","version":"1.0.4","author":{"url":"https://wanyne.com","name":"Sungwan Jo","email":"sung@wanyne.com"},"_id":"@amuject/template-engine@1.0.4","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"dist":{"shasum":"1a84882a10084f9dd88343f3b8b1a043c0f219f8","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.4.tgz","fileCount":34,"integrity":"sha512-vJTRWQUm3WJt8FQbCqjC7cfH8/Hoiubem0XF0Ioc/RCOThvsd0K5ZWcvx1oKVjT90tI0JQnzA7c6uYQaRtosCA==","signatures":[{"sig":"MEUCIQD8eNO3NCUCS3UPjjFHG7dxeOoLclvILm3T5NpZz00NBgIgQKe4SwoN49j2y1uRgj4iYz4ru2IlzamxniVmcH4OA/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":993120},"main":"src/index.js","type":"module","gitHead":"1555f96a89c7a81d0e4978fa4af92af2cc08a21d","_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"_npmVersion":"11.6.2","description":"Easy HTML-based template engine","directories":{},"_nodeVersion":"24.12.0","dependencies":{"node-html-parser":"^7.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/template-engine_1.0.4_1777616428289_0.1980672231253302","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@amuject/template-engine","version":"1.0.5","author":{"url":"https://wanyne.com","name":"Sungwan Jo","email":"sung@wanyne.com"},"_id":"@amuject/template-engine@1.0.5","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"dist":{"shasum":"075b6745e54f05e7e1f06d6e842aa5ff2b6ed5f8","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.5.tgz","fileCount":41,"integrity":"sha512-LysN5MeS4fIB7zNd5KGHGhiArMrk/ZU3JcXzHcTkqep9CXydS8T2lief54hQBmQj9hKgU1b6Eek16LmH04AXnA==","signatures":[{"sig":"MEUCIQCv9t08K6Imt0YA8zvPjzwnjd/ChME9f01BSrwXyiIWAQIgYcsfxcBJka3JYllgzOgAdSR0QomJO9zVkncxUfgelyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1024380},"main":"src/index.js","type":"module","gitHead":"3b9189e1e4918aa04b597729c8c017397838a65e","_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"_npmVersion":"11.6.2","description":"Easy HTML-based template engine","directories":{},"_nodeVersion":"24.12.0","dependencies":{"node-html-parser":"^7.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/template-engine_1.0.5_1777688334388_0.3700061553679397","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@amuject/template-engine","version":"1.0.6","author":{"url":"https://wanyne.com","name":"Sungwan Jo","email":"sung@wanyne.com"},"_id":"@amuject/template-engine@1.0.6","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"dist":{"shasum":"7d23f87642f4eda8d0ed4a8581a3d58c5af822b8","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.6.tgz","fileCount":41,"integrity":"sha512-rCfZC1tKJthGdjDu8uoUknFQcToM1pJ4fJLcFqWK8h3PPkE4Ruf4L5OhJIPd98Xx9xo6Z21GgF05+s+TF0idtQ==","signatures":[{"sig":"MEQCIA8K5U9flko58izFbtKfKoosV7mE1to1fm/ifaKonmNMAiB1sctTUTgPOdM7xEcI4GP7+PlKJdHWBbMDI2oe8BbN0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1026287},"main":"src/index.js","type":"module","gitHead":"3b9189e1e4918aa04b597729c8c017397838a65e","_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"_npmVersion":"11.6.2","description":"Easy HTML-based template engine","directories":{},"_nodeVersion":"24.12.0","dependencies":{"node-html-parser":"^7.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/template-engine_1.0.6_1777688499445_0.8951045233969614","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@amuject/template-engine","version":"1.0.7","author":{"url":"https://wanyne.com","name":"Sungwan Jo","email":"sung@wanyne.com"},"_id":"@amuject/template-engine@1.0.7","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"dist":{"shasum":"5512276086edf3f34d558832466d87ffd2296014","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.7.tgz","fileCount":41,"integrity":"sha512-kSy0LDZMMezbK/bl0w1r6Xs8qPTwYUk22biucVCumvtSbC1++2b7PSc2joVKdbYqa0sTTxJSmu7ILFACuvGl2g==","signatures":[{"sig":"MEQCIAbtSKcm+ffw9E/1eBkLgeHYXEtgYFU7VZAoJUJEUfe+AiAeLloJGtivrfhRFXB9HGsCLwpQYPz2+YV0BcHuWKQfmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1026670},"main":"src/index.js","type":"module","gitHead":"3b9189e1e4918aa04b597729c8c017397838a65e","_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"_npmVersion":"11.6.2","description":"Easy HTML-based template engine","directories":{},"_nodeVersion":"24.12.0","dependencies":{"node-html-parser":"^7.1.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/template-engine_1.0.7_1777688731792_0.7789579454602076","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@amuject/template-engine","version":"1.0.8","description":"Easy HTML-based template engine","author":{"name":"Sungwan Jo","email":"sung@wanyne.com","url":"https://wanyne.com"},"license":"UNLICENSED","type":"module","main":"src/index.js","dependencies":{"node-html-parser":"^7.1.0"},"gitHead":"a7db9dc11c0112702f665bef489be9f8789b7cdf","_id":"@amuject/template-engine@1.0.8","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-5LX+pRmbOWkgq4BS/4GMuPa8utXj0lRBxZgHkKjF/90e5VzHFQvE2nbSkwr6TwSJzZY9LIXp7W6mAJehxNoRPw==","shasum":"5a0ef4054253bbac9b74416de924c5e60ae9935e","tarball":"https://registry.npmjs.org/@amuject/template-engine/-/template-engine-1.0.8.tgz","fileCount":9,"unpackedSize":36775,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDeI7NG/foh+qWiY9g8lf2ur8JNWfaiyC/qF/KCmVWQygIgEb6/961Pqndii2/7nScWW4/bcgF3NgPEex6ZaWsWR6Q="}]},"_npmUser":{"name":"wnynya","email":"sung@wanyne.com"},"directories":{},"maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/template-engine_1.0.8_1786025754681_0.7633171246053227"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-07T03:06:00.996Z","modified":"2026-08-06T14:15:55.231Z","1.0.0":"2026-04-07T03:06:01.373Z","1.0.1":"2026-05-01T00:59:20.885Z","1.0.2":"2026-05-01T01:04:27.668Z","1.0.3":"2026-05-01T01:20:12.617Z","1.0.4":"2026-05-01T06:20:28.477Z","1.0.5":"2026-05-02T02:18:54.584Z","1.0.6":"2026-05-02T02:21:39.657Z","1.0.7":"2026-05-02T02:25:31.978Z","1.0.8":"2026-08-06T14:15:54.835Z"},"author":{"name":"Sungwan Jo","email":"sung@wanyne.com","url":"https://wanyne.com"},"description":"Easy HTML-based template engine","maintainers":[{"name":"wnynya","email":"sung@wanyne.com"}],"readme":"# Template Engine\n\n```\nnpm i @amuject/template-engine\n```\n\n## Directory Structure\n\n```\n/src\n  - app.js\n  - ... server-side codes\n\n  /views\n    index.html\n    /pages\n    ... templates, assets, etc\n```\n\n## Usage\n\n```js\n// app.js\n\n'use strict';\n\nimport nodepath from 'node:path';\nimport { fileURLToPath } from 'node:url';\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = nodepath.dirname(__filename);\n\nimport express from 'express';\nimport Engine from '@amuject/template-engine';\n\nconst engine = new Engine(nodepath.resolve(__dirname, './views'));\nconst app = engine.express(new express());\n\napp.get('/', (req, res) => {\n  const scope = {};\n  res.render('index', scope);\n});\n\napp.listen(80);\n```\n\n## 템플릿 문법\n\n### Scope Evaluation\n\n```html\n<div class=\"#{eval}\"></div>\n<p>#{eval}</p>\n```\n\n### Import Tags\n\n```html\n<import src=\"template\"></import>\n```\n\n### Conditional Tags\n\n```html\n<if condition=\"cond\"></if>\n\n<elif condition=\"cond\"></elif>\n\n<else condition=\"cond\"></else>\n```\n\n### Repeat Tag\n\n```html\n<repeat times=\"5\"></repeat>\n\n<repeat times=\"5\" from=\"1\"></repeat>\n\n<repeat from=\"1\" to=\"10\"></repeat>\n\n<repeat times=\"5\" index=\"i\">\n  <p>index is: #{i}</p>\n</repeat>\n```\n\n### Scoped Style\n\n```html\n<link rel=\"stylesheet\" href=\"style.css\" scoped />\n\n<style scoped>\n  /* ... */\n</style>\n\n<div scoped>\n  <h1>Hello</h1>\n</div>\n\n<p scoped></p>\n```\n","readmeFilename":"README.md","license":"UNLICENSED"}