{"pageContext":{"index":176,"total":358,"name":"2022-09-18","items":[{"node":{"frontmatter":{"title":"2022年的web form有什么新特性?","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://css-tricks.com/whats-new-with-forms-in-2022/","author":"Ollie Williams ","translator":"","tags":["html"],"priority":1},"html":"<ul>\n<li>requestSubmit方法</li>\n<li>submitter属性</li>\n<li>formdata 事件</li>\n<li>showPicker方法</li>\n<li>Inert属性</li>\n</ul>"}},{"node":{"frontmatter":{"title":"Content Parser - 将网页转换为markdown","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"other","url":"https://content-parser.com/","author":"content-parsers","translator":"","tags":["markdown"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Caddy vs Nginx压力测试","publish":true,"cover":"https://blog.tjll.net/generated/trophy-277x277-0ca100.png","showCover":null,"date":"2022-09-18","category":"devops","url":"https://blog.tjll.net/reverse-proxy-hot-dog-eating-contest-caddy-vs-nginx/","author":"Tyblog","translator":"","tags":["nginx"],"priority":2},"html":"<p>Fail模式，Ningix会直接断开连接，Caddy则会慢慢响应</p>"}},{"node":{"frontmatter":{"title":"React 18 hook useSyncExternalStore介绍","publish":true,"cover":"https://thisweekinreact.com/assets/images/social-card-8c3d2564cca50e6a46ba0d78375e6d0e.png","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://thisweekinreact.com/articles/useSyncExternalStore-the-underrated-react-api","author":"Sébastien Lorber","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Remix创始人之一Kent C. Dodds离开Remix的回顾","publish":true,"cover":"https://res.cloudinary.com/kentcdodds-com/image/upload/w_2100,q_auto,f_auto,b_rgb:e6e9ee/unsplash/photo-1487640228478-7a32e30a9e40","showCover":null,"date":"2022-09-18","category":"nodejs","url":"https://kentcdodds.com/blog/a-review-of-my-time-at-remix","author":"Kent C. Dodds","translator":"","tags":["remix"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"diffusionbee-stable-diffusion-ui - 开源用于Mac M1的stable difussion工具","publish":true,"cover":"https://user-images.githubusercontent.com/1890549/189539684-222482fb-63f7-4799-bfc1-005b84508e35.png","showCover":null,"date":"2022-09-18","category":"AI","url":"https://github.com/divamgupta/diffusionbee-stable-diffusion-ui","author":"Divam Gupta","translator":"","tags":["diffusion"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"details元素的问题","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://phelipetls.github.io/posts/surprising-react-bug/","author":"PHELIPE TELES","translator":"","tags":["html"],"priority":1},"html":"<p>需要处理summary元素本身的点击事件处理</p>"}},{"node":{"frontmatter":{"title":"immich - 自托管手机照片视频备份工具","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"nodejs","url":"https://github.com/immich-app/immich","author":"Immich","translator":"","tags":["image"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"memlab - 检测浏览器中javascript内存泄露工具","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://github.com/facebookincubator/memlab","author":"Meta Incubator","translator":"","tags":["leak"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"penpot - 开源figma替代","publish":true,"cover":"https://penpot.app/images/03-handoff-feature.webp","showCover":null,"date":"2022-09-18","category":"other","url":"https://penpot.app/","author":"penpot","translator":"","tags":["design"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"pagefind - 静态站点搜索工具","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"nodejs","url":"https://github.com/cloudcannon/pagefind","author":"CloudCannon","translator":"","tags":["search"],"priority":1},"html":"<p>当静态站点生成后再由此工具生成索引并提供javascript api</p>"}},{"node":{"frontmatter":{"title":"git diff 和 git log 中间的两个点，三个点的区别","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"devops","url":"http://peter.eisentraut.org/blog/2022/09/13/git-diff-and-git-log-and-dots","author":"Peter Eisentraut","translator":"","tags":["git"],"priority":1},"html":"<p>diff用三个点，log用两个点</p>"}},{"node":{"frontmatter":{"title":"number输入框的问题多，不要使用","publish":true,"cover":"https://149351115.v2.pressablecdn.com/wp-content/uploads/2022/09/pasted-image-0-2-e1663248896710.png","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://stackoverflow.blog/2022/09/15/why-the-number-input-is-the-worst-input/","author":"Jared Toporek","translator":"","tags":["input"],"priority":1},"html":"<p>粘贴仍然可以避过验证，还不如直接用<code class=\"language-text\">text</code></p>"}},{"node":{"frontmatter":{"title":"发布（安全的）npm包最佳实践","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"nodejs","url":"https://snyk.io/blog/best-practices-create-modern-npm-package/","author":"Brian Clark","translator":"","tags":["npm"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"theatre - svg,3d动画特效编辑器","publish":true,"cover":"https://raw.githubusercontent.com/AriaMinaei/theatre-docs/main/docs/.vuepress/public/preview-3d-short.gif","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://github.com/theatre-js/theatre","author":"Theatre.js","translator":"","tags":["3d"],"priority":2},"html":""}},{"node":{"frontmatter":{"title":"react-grid-gallery - 图片画廊组件","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://github.com/theatre-js/theatre","author":"Ben Howell","translator":"","tags":["image"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"你不知道的JavaScript APIs","publish":true,"cover":"https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/526008ab-f9d4-4deb-b384-2a5d74709b96/yoshi-screenshot.png","showCover":null,"date":"2022-09-18","category":"javascript","url":"https://www.smashingmagazine.com/2022/09/javascript-api-guide/#broadcast-channel-api","author":"Juan Diego Rodríguez ","translator":"","tags":["api"],"priority":2},"html":"<p><a href=\"https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\">BroadcastChannel</a></p>"}},{"node":{"frontmatter":{"title":"不使用括号调用方法的方式","publish":true,"cover":"https://portswigger.net/cms/images/98/c8/5f59-article-the_seventh_way_to_call_a_javascript_function_article.jpg","showCover":null,"date":"2022-09-18","category":"javascript","url":"https://portswigger.net/research/the-seventh-way-to-call-a-javascript-function-without-parentheses","author":"Gareth Heyes","translator":"","tags":["function"],"priority":1},"html":"<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\">alert<span class=\"token template-string\"><span class=\"token string\">`1337`</span></span>\n<span class=\"token keyword\">throw</span> onerror<span class=\"token operator\">=</span>alert<span class=\"token punctuation\">,</span><span class=\"token number\">1337</span>\nFunction<span class=\"token template-string\"><span class=\"token string\">`x</span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${</span><span class=\"token string\">'alert\\x281337\\x29'</span><span class=\"token interpolation-punctuation punctuation\">}</span></span><span class=\"token string\">x`</span></span><span class=\"token template-string\"><span class=\"token string\">``</span></span>\n<span class=\"token string\">'alert\\x281337\\x29'</span><span class=\"token keyword\">instanceof</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">[</span>Symbol<span class=\"token punctuation\">[</span><span class=\"token string\">'hasInstance'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span>eval<span class=\"token punctuation\">}</span>\nvalueOf<span class=\"token operator\">=</span>alert<span class=\"token punctuation\">;</span>window<span class=\"token operator\">+</span><span class=\"token string\">''</span>\nx<span class=\"token operator\">=</span><span class=\"token keyword\">new</span> <span class=\"token class-name\">DOMMatrix</span><span class=\"token punctuation\">;</span>matrix<span class=\"token operator\">=</span>alert<span class=\"token punctuation\">;</span>x<span class=\"token punctuation\">.</span>a<span class=\"token operator\">=</span><span class=\"token number\">1337</span><span class=\"token punctuation\">;</span>location<span class=\"token operator\">=</span><span class=\"token string\">'javascript'</span><span class=\"token operator\">+</span><span class=\"token string\">':'</span><span class=\"token operator\">+</span>x\n<span class=\"token comment\">// or any DOMXSS sink such as location=name</span></code></pre></div>"}},{"node":{"frontmatter":{"title":"开源0碳建木头房子","publish":true,"cover":"https://github.com/wikihouseproject/Skylark/raw/main/WikiHouse_SKYLARK_assembly_axo.png","showCover":null,"date":"2022-09-18","category":"other","url":"https://www.wikihouse.cc/","author":"wikihouse","translator":"","tags":["house"],"priority":1},"html":"<p>设计和材料都需要付费</p>"}},{"node":{"frontmatter":{"title":"自己实现简单的React 滚动动画特效","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://betterprogramming.pub/simple-react-scroll-animations-with-zero-dependencies-b496c1e1c7bd","author":"Bret Cameron","translator":"","tags":["css"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"react-resume-template - 个人简历模版站点","publish":true,"cover":"","showCover":null,"date":"2022-09-18","category":"frontend","url":"https://github.com/tbakerx/react-resume-template","author":"Tim Baker","translator":"","tags":["react"],"priority":1},"html":""}}]}}