Skip to content

Instantly share code, notes, and snippets.

@sirlancelot
Last active December 12, 2017 23:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sirlancelot/cd31a1d492bb221a69173209198d1021 to your computer and use it in GitHub Desktop.
Save sirlancelot/cd31a1d492bb221a69173209198d1021 to your computer and use it in GitHub Desktop.
Try Handlebars Bookmarklet. Add this url to your bookmarks bar for a quick-and-dirty Handlebars.js template compiler.
data:text/html;base64,PGh0bWwgbGFuZz0iZW4iPgo8aGVhZD4KCTxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KCTx0aXRsZT5UcnkgSGFuZGxlYmFycy5qczwvdGl0bGU+Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL25vcm1hbGl6ZS81LjAuMC9ub3JtYWxpemUubWluLmNzcyI+Cgk8bGluayByZWw9J3N0eWxlc2hlZXQgcHJlZmV0Y2gnIGhyZWY9J2h0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL3R3aXR0ZXItYm9vdHN0cmFwLzQuMC4wLWJldGEuMi9jc3MvYm9vdHN0cmFwLmNzcyc+Cgk8c3R5bGU+CglodG1sLGJvZHksI2FwcCwucm93IHsgaGVpZ2h0OiAxMDAlOyB9Cglib2R5IHsKCQliYWNrZ3JvdW5kLWNvbG9yOiAjMTExMzExOwoJCWNvbG9yOiAjZmZmZmZmOwoJfQoJLmVkaXRvcnMgPiAuZm9ybS1ncm91cCwKCS5wcmV2aWV3ID4gLmZvcm0tZ3JvdXAgewoJCWRpc3BsYXk6IC13ZWJraXQtYm94OwoJCWRpc3BsYXk6IC1tcy1mbGV4Ym94OwoJCWRpc3BsYXk6IGZsZXg7CgkJLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKCQktd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKCQktbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKCQlmbGV4LWRpcmVjdGlvbjogY29sdW1uOwoJCW1hcmdpbi1ib3R0b206IDA7Cgl9CgkuZWRpdG9ycyA+IC5mb3JtLWdyb3VwID4gLmFjZV9lZGl0b3IsCgkucHJldmlldyA+IC5mb3JtLWdyb3VwID4gLmFjZV9lZGl0b3IgewoJCS13ZWJraXQtYm94LWZsZXg6IDE7CgkJLW1zLWZsZXg6IDE7CgkJZmxleDogMTsKCX0KCS5lZGl0b3JzID4gLmZvcm0tZ3JvdXAgPiBpZnJhbWUsCgkucHJldmlldyA+IC5mb3JtLWdyb3VwID4gaWZyYW1lIHsKCQktd2Via2l0LWJveC1mbGV4OiAxOwoJCS1tcy1mbGV4OiAxOwoJCWZsZXg6IDE7CgkJbWluLWhlaWdodDogOTB2aDsKCQlwYWRkaW5nOiAwOwoJfQoJLmVkaXRvcnMgLmZvcm0tZ3JvdXAgewoJCW1pbi1oZWlnaHQ6IDUwdmg7Cgl9CgkucHJldmlldyAuZm9ybS1ncm91cCB7CgkJaGVpZ2h0OiAxMDAlOwoJfQoJPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPGRpdiBjbGFzcz0iY29udGFpbmVyLWZsdWlkIiBpZD0iYXBwIj4KICA8Zm9ybSBjbGFzcz0icm93Ij4KCTxkaXYgY2xhc3M9ImNvbC1tZC01IGVkaXRvcnMiPgoJICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KCQk8bGFiZWw+SGFuZGxlYmFycyBUZW1wbGF0ZTwvbGFiZWw+CgkJPGFjZS1lZGl0b3IgY2xhc3M9ImZvcm0tY29udHJvbCIgbGFuZz0iaGFuZGxlYmFycyIgdi1tb2RlbD0iZmllbGRzLnRlbXBsYXRlIj48L2FjZS1lZGl0b3I+CgkgIDwvZGl2PgoJICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KCQk8bGFiZWw+SlNPTiBEYXRhPC9sYWJlbD4KCQk8YWNlLWVkaXRvciBjbGFzcz0iZm9ybS1jb250cm9sIiBsYW5nPSJqc29uIiB2LW1vZGVsPSJmaWVsZHMuZGF0YSI+PC9hY2UtZWRpdG9yPgoJICA8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0iY29sLW1kLTcgcHJldmlldyI+CgkgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgoJCTxsYWJlbD5PdXRwdXQgUHJldmlldzwvbGFiZWw+CgkJPGlmcmFtZSBjbGFzcz0iZm9ybS1jb250cm9sIiA6c3JjPSJwcmV2aWV3VXJsIj48L2lmcmFtZT4KCSAgPC9kaXY+Cgk8L2Rpdj4KICA8L2Zvcm0+CjwvZGl2PgoKPHNjcmlwdCBzcmM9J2h0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2hhbmRsZWJhcnMuanMvNC4wLjExL2hhbmRsZWJhcnMuanMnPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0naHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYWNlLzEuMi45L2FjZS5qcyc+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0ibW9kdWxlIj4KaW1wb3J0IFZ1ZSBmcm9tICJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy92dWUvMi41LjkvdnVlLmVzbS5icm93c2VyLmpzIgoKY29uc3QgRVJST1JfT0JKRUNUID0gT2JqZWN0LmZyZWV6ZSh7fSkKY29uc3QgZXJyb3JUZW1wbGF0ZSA9IEhhbmRsZWJhcnMuY29tcGlsZShgPHByZT48Y29kZT57e2h0bWx9fTwvY29kZT48L3ByZT5gKQpjb25zdCBjcmVhdGVVcmwgPSAoaHRtbCkgPT4gYGRhdGE6dGV4dC9odG1sO2Jhc2U2NCwke2J0b2EoaHRtbCl9YApjb25zdCBjcmVhdGVFcnJvclVybCA9IChodG1sKSA9PiBjcmVhdGVVcmwoZXJyb3JUZW1wbGF0ZSh7IGh0bWwgfSkpCmNvbnN0IHRlbXBsYXRlID0gZnJvbVN0b3JhZ2UoInRlbXBsYXRlIikgfHwgYDxoMT5IZWxsbywge3t0aXRsZX19PC9oMT4KPHA+QSB0aW1lOiB7e2xvY2FsRGF0ZSBsYXVuY2hEYXRlIHRpbWV6b25lfX08L3A+CjxwcmU+PGNvZGU+dmFyIGN0eCA9IHt7c3RyaW5naWZ5IHRoaXN9fTwvY29kZT48L3ByZT5gCmNvbnN0IGRhdGEgPSBmcm9tU3RvcmFnZSgiZGF0YSIpIHx8IGB7CgkidGl0bGUiOiAiSGFuZGxlYmFycy5qcyIsCgkidGltZXpvbmUiOiAiQW1lcmljYS9Mb3NfQW5nZWxlcyIsCgkibGF1bmNoRGF0ZSI6ICIyMDE3LTAxLTIwVDAwOjAwOjAwLjAwMFoiCn1gCgpjb25zdCBBcHAgPSBWdWUuZXh0ZW5kKHsKCWRhdGE6ICgpID0+ICh7CgkJZmllbGRzOiB7IHRlbXBsYXRlLCBkYXRhIH0sCgkJcGFyc2VFcnJvcjogbnVsbCwKCQlwcmV2aWV3RGF0YTogbnVsbCwKCQlwcmV2aWV3VGVtcGxhdGU6IG51bGwKCX0pLAoJY29tcHV0ZWQ6IHsKCQlwcmV2aWV3VXJsKCkgewoJCQljb25zdCB0ZW1wbGF0ZSA9IHRoaXMucHJldmlld1RlbXBsYXRlCgkJCWNvbnN0IGRhdGEgPSB0aGlzLnByZXZpZXdEYXRhCgkJCWNvbnN0IGVyciA9IHRoaXMucGFyc2VFcnJvcgoKCQkJdHJ5IHsKCQkJCWlmIChlcnIpIHRocm93IGVycgoJCQkJcmV0dXJuIGNyZWF0ZVVybCh0ZW1wbGF0ZShkYXRhKSkKCQkJfSBjYXRjaCAoZXJyKSB7CgkJCQlyZXR1cm4gY3JlYXRlRXJyb3JVcmwoZXJyLnN0YWNrKQoJCQl9CgkJfQoJfSwKCWNyZWF0ZWQoKSB7CgkJdGhpcy5jb21waWxlVGVtcGxhdGUoKQoJCXRoaXMuY29tcGlsZURhdGEoKQoJCXRoaXMuJHdhdGNoKCJmaWVsZHMudGVtcGxhdGUiLCBkZWJvdW5jZSgodmFsdWUpID0+IHsKCQkJdGhpcy5jb21waWxlVGVtcGxhdGUoKQoJCQl0b1N0b3JhZ2UoInRlbXBsYXRlIiwgdmFsdWUpCgkJfSwgNTAwKSkKCQl0aGlzLiR3YXRjaCgiZmllbGRzLmRhdGEiLCAoKSA9PiB0aGlzLmNvbXBpbGVEYXRhKCkpCgkJdGhpcy4kd2F0Y2goImZpZWxkcy5kYXRhIiwgZGVib3VuY2UoKHZhbHVlKSA9PiB7CgkJCWlmICh0aGlzLnBhcnNlRXJyb3IpIHJldHVybgoJCQl0b1N0b3JhZ2UoImRhdGEiLCB2YWx1ZSkKCQl9LCA1MDApKQoJfSwKCW1ldGhvZHM6IHsKCQljb21waWxlRGF0YSgpIHsKCQkJY29uc3Qgc3RyID0gdGhpcy5maWVsZHMuZGF0YQoJCQl0cnkgewoJCQkJdGhpcy5wcmV2aWV3RGF0YSA9IHN0ciA/IEpTT04ucGFyc2Uoc3RyKSA6IHt9CgkJCQl0aGlzLnBhcnNlRXJyb3IgPSBudWxsCgkJCX0gY2F0Y2ggKGVycikgewoJCQkJdGhpcy5wcmV2aWV3RGF0YSA9IEVSUk9SX09CSkVDVAoJCQkJdGhpcy5wYXJzZUVycm9yID0gZXJyCgkJCX0KCQl9LAoJCWNvbXBpbGVUZW1wbGF0ZSgpIHsKCQkJY29uc3QgdmFsdWUgPSB0aGlzLmZpZWxkcy50ZW1wbGF0ZQoJCQl0aGlzLnByZXZpZXdUZW1wbGF0ZSA9IEhhbmRsZWJhcnMuY29tcGlsZSh2YWx1ZSwgewoJCQkJc3RyaWN0OiB0cnVlCgkJCX0pCgkJfQoJfQp9KQoKVnVlLmNvbXBvbmVudCgiYWNlLWVkaXRvciIsIHsKCXJlbmRlcjogKGgpID0+IGgoImRpdiIpLAoJcHJvcHM6IHsKCQl2YWx1ZTogU3RyaW5nLAoJCWxhbmc6IFN0cmluZywKCQl0aGVtZTogU3RyaW5nCgl9LAoJbW91bnRlZCgpIHsKCQljb25zdCBlZGl0b3IgPSB0aGlzLiRlZGl0b3IgPSBhY2UuZWRpdCh0aGlzLiRlbCkKCQljb25zdCBzZXNzaW9uID0gdGhpcy4kc2Vzc2lvbiA9IGVkaXRvci5nZXRTZXNzaW9uKCkKCgkJc2Vzc2lvbi5zZXRNb2RlKGBhY2UvbW9kZS8ke3RoaXMubGFuZyB8fCAidGV4dCJ9YCkKCQlzZXNzaW9uLnNldFVzZVNvZnRUYWJzKGZhbHNlKQoJCWVkaXRvci4kYmxvY2tTY3JvbGxpbmcgPSBJbmZpbml0eQoJCWVkaXRvci5zZXRBdXRvU2Nyb2xsRWRpdG9ySW50b1ZpZXcodHJ1ZSkKCQllZGl0b3Iuc2V0VGhlbWUoYGFjZS90aGVtZS8ke3RoaXMudGhlbWUgfHwgInR3aWxpZ2h0In1gKQoJCWVkaXRvci5zZXRWYWx1ZSh0aGlzLnZhbHVlLCAtMSkKCgkJdmFyIGNvbnRlbnQKCQllZGl0b3Iub24oImNoYW5nZSIsIChkZWx0YSkgPT4gewoJCQljb250ZW50ID0gZWRpdG9yLmdldFZhbHVlKCkKCQkJdGhpcy4kZW1pdCgiaW5wdXQiLCBjb250ZW50LCBkZWx0YSkKCQl9KQoJCXRoaXMuJHdhdGNoKCJ2YWx1ZSIsICh2YWx1ZSkgPT4gewoJCQlpZiAodmFsdWUgPT09IGNvbnRlbnQpIHJldHVybgoJCQlzZXNzaW9uLnNldFZhbHVlKHZhbHVlLCAtMSkKCQl9KQoJfQp9KQoKVnVlLmNvbmZpZy5wcm9kdWN0aW9uVGlwID0gZmFsc2UKCkhhbmRsZWJhcnMucmVnaXN0ZXJIZWxwZXIoInN0cmluZ2lmeSIsICh2YWx1ZSkgPT4gewoJcmV0dXJuIG5ldyBIYW5kbGViYXJzLlNhZmVTdHJpbmcoSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsICJcdCIpKQp9KQoKSGFuZGxlYmFycy5yZWdpc3RlckhlbHBlcigibG9jYWxEYXRlIiwgKHZhbHVlLCB0aW1lWm9uZSkgPT4gewoJaWYgKCF0aW1lWm9uZSB8fCB0eXBlb2YgdGltZVpvbmUgIT09ICJzdHJpbmciKSB0aW1lWm9uZSA9IHVuZGVmaW5lZAoJcmV0dXJuIG5ldyBEYXRlKHZhbHVlKS50b0xvY2FsZVN0cmluZygiZW4tVVMiLCB7CgkJd2Vla2RheTogInNob3J0IiwKCQl5ZWFyOiAibnVtZXJpYyIsIAoJCW1vbnRoOiAic2hvcnQiLCAKCQlkYXk6ICJudW1lcmljIiwKCQlob3VyOiAibnVtZXJpYyIsCgkJbWludXRlOiAibnVtZXJpYyIsCgkJdGltZVpvbmUKCX0pCn0pCgp3aW5kb3cuJGFwcCA9IG5ldyBBcHAoeyBlbDogIiNhcHAiIH0pCgpmdW5jdGlvbiBkZWJvdW5jZShmbiwgdGhyZXNob2xkKSB7Cgl2YXIgdGltZW91dCwgcmVzdWx0CglmdW5jdGlvbiBkZWJvdW5jZWQoKSB7CgkJY29uc3QgYXJncyA9IGFyZ3VtZW50cwoJCWNvbnN0IGNvbnRleHQgPSB0aGlzCgoJCWZ1bmN0aW9uIGRlbGF5ZWQoKSB7CgkJCXJlc3VsdCA9IGZuLmFwcGx5KGNvbnRleHQsIGFyZ3MpCgkJCXRpbWVvdXQgPSBudWxsCgkJfQoJCWlmICh0aW1lb3V0KSBjbGVhclRpbWVvdXQodGltZW91dCkKCQl0aW1lb3V0ID0gc2V0VGltZW91dChkZWxheWVkLCB0aHJlc2hvbGQpCgkJcmV0dXJuIHJlc3VsdAoJfQoJZGVib3VuY2VkLmNhbmNlbCA9ICgpID0+IGNsZWFyVGltZW91dCh0aW1lb3V0KQoJcmV0dXJuIGRlYm91bmNlZAp9CgpmdW5jdGlvbiBmcm9tU3RvcmFnZShrZXkpIHsKCXRyeSB7IHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpIH0KCWNhdGNoIChlcnIpIHt9Cn0KCmZ1bmN0aW9uIHRvU3RvcmFnZShrZXksIHZhbHVlKSB7Cgl0cnkgewoJCWlmICh2YWx1ZSkgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSkKCQllbHNlIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSkKCX0gY2F0Y2ggKGVycikge30KfQo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment