diff options
Diffstat (limited to 'docs/assets')
101 files changed, 0 insertions, 2720 deletions
diff --git a/docs/assets/bomb-lab/phase-3.png b/docs/assets/bomb-lab/phase-3.png Binary files differdeleted file mode 100644 index 18a9f6b..0000000 --- a/docs/assets/bomb-lab/phase-3.png +++ /dev/null diff --git a/docs/assets/c-hyde.css b/docs/assets/c-hyde.css deleted file mode 100644 index b886876..0000000 --- a/docs/assets/c-hyde.css +++ /dev/null @@ -1,812 +0,0 @@ -/* -Latex CSS -*/ -@font-face { - font-family: "Latin Modern"; - font-style: normal; - font-weight: normal; - font-display: swap; - src: url("/assets/fonts/LM-regular.woff2") format("woff2"), url("/assets/fonts/LM-regular.woff") format("woff"), url("/assets/fonts/LM-regular.ttf") format("truetype"); -} -@font-face { - font-family: "Latin Modern"; - font-style: italic; - font-weight: normal; - font-display: swap; - src: url("/assets/LM-italic.woff2") format("woff2"), url("LM-italic.woff") format("woff"), url("/assets/fonts/LM-italic.ttf") format("truetype"); -} -@font-face { - font-family: "Latin Modern"; - font-style: normal; - font-weight: bold; - font-display: swap; - src: url("/assets/fonts/LM-bold.woff2") format("woff2"), url("/assets/fonts/LM-bold.woff") format("woff"), url("/assets/fonts/LM-bold.ttf") format("truetype"); -} -@font-face { - font-family: "Latin Modern"; - font-style: italic; - font-weight: bold; - font-display: swap; - src: url("/assets/fonts/LM-bold-italic.woff2") format("woff2"), url("/assets/fonts/LM-bold-italic.woff") format("woff"), url("/assets/fonts/LM-bold-italic.ttf") format("truetype"); -} -@font-face { - font-family: "Libertinus"; - font-style: normal; - font-weight: normal; - font-display: swap; - src: url("/assets/fonts/Libertinus-regular.woff2") format("woff2"); -} -@font-face { - font-family: "Libertinus"; - font-style: italic; - font-weight: normal; - font-display: swap; - src: url("/assets/fonts/Libertinus-italic.woff2") format("woff2"); -} -@font-face { - font-family: "Libertinus"; - font-style: normal; - font-weight: bold; - font-display: swap; - src: url("/assets/fonts/Libertinus-bold.woff2") format("woff2"); -} -@font-face { - font-family: "Libertinus"; - font-style: italic; - font-weight: bold; - font-display: swap; - src: url("/assets/fonts/Libertinus-bold-italic.woff2") format("woff2"); -} -@font-face { - font-family: "Libertinus"; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url("/assets/fonts/Libertinus-semibold.woff2") format("woff2"); -} -@font-face { - font-family: "Libertinus"; - font-style: italic; - font-weight: 600; - font-display: swap; - src: url("/assets/fonts/Libertinus-semibold-italic.woff2") format("woff2"); -} -/* -Port of @mdo's Hyde Theme by Zola - -MIT License - -Copyright (c) 2017 Vincent Prouillet - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ -/* - * ___ - * /\_ \ - * _____ ___ ___\//\ \ __ - * /\ '__`\ / __`\ / __`\\ \ \ /'__`\ - * \ \ \_\ \/\ \_\ \/\ \_\ \\_\ \_/\ __/ - * \ \ ,__/\ \____/\ \____//\____\ \____\ - * \ \ \/ \/___/ \/___/ \/____/\/____/ - * \ \_\ - * \/_/ - * - * Designed, built, and released under MIT license by @mdo. Learn more at - * https://github.com/poole/poole. - */ -/* - * Contents - * - * Body resets - * Custom type - * Messages - * Container - * Masthead - * Posts and pages - * Footnotes - * Pagination - * Reverse layout - * Themes - */ -/* - * Body resets - * - * Update the foundational and global aspects of the page. - */ -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -html, -body { - margin: 0; - padding: 0; -} - -html { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 16px; - line-height: 1.5; -} - -@media (min-width: 38em) { - html { - font-size: 20px; - } -} -body { - color: #515151; - background-color: #fff; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} - -/* No `:visited` state is required by default (browsers will use `a`) */ -a { - color: #268bd2; - text-decoration: underline; -} - -/* `:focus` is linked to `:hover` for basic accessibility */ -a:hover, -a:focus { - text-decoration: underline; -} - -/* Headings */ -h1, h2, h3, h4, h5, h6 { - margin-bottom: 0.5rem; - font-weight: bold; - line-height: 1.25; - color: #313131; - text-rendering: optimizeLegibility; -} - -h1 { - font-size: 2rem; -} - -h2 { - margin-top: 1rem; - font-size: 1.5rem; -} - -h3 { - margin-top: 1.5rem; - font-size: 1.25rem; -} - -h4, h5, h6 { - margin-top: 1rem; - font-size: 1rem; -} - -/* Body text */ -p { - margin-top: 0; - margin-bottom: 1rem; -} - -strong { - color: #303030; -} - -/* Lists */ -ul, ol, dl { - margin-top: 0; - margin-bottom: 1rem; -} - -dt { - font-weight: bold; -} - -dd { - margin-bottom: 0.5rem; -} - -/* Misc */ -hr { - position: relative; - margin: 1.5rem 0; - border: 0; - border-top: 1px solid #eee; - border-bottom: 1px solid #fff; -} - -abbr { - font-size: 85%; - font-weight: bold; - color: #555; - text-transform: uppercase; -} - -abbr[title] { - cursor: help; - border-bottom: 1px dotted #e5e5e5; -} - -/* Code */ -code, -pre { - font-family: Menlo, Monaco, "Courier New", monospace; -} - -code { - padding: 0.25em 0.5em; - font-size: 85%; - color: #bf616a; - background-color: #f9f9f9; - border-radius: 3px; -} - -pre { - display: block; - margin-top: 0; - margin-bottom: 1rem; - padding: 1rem; - font-size: 0.8rem; - line-height: 1.4; - overflow-x: scroll; - background-color: #f9f9f9; -} - -pre code { - padding: 0; - font-size: 100%; - color: inherit; - background-color: transparent; -} - -.highlight { - margin-bottom: 1rem; - border-radius: 4px; -} - -.highlight pre { - margin-bottom: 0; -} - -/* Quotes */ -blockquote { - padding: 0.5rem 1rem; - margin: 0.8rem 0; - color: #7a7a7a; - border-left: 0.25rem solid #e5e5e5; -} - -blockquote p:last-child { - margin-bottom: 0; -} - -@media (min-width: 30em) { - blockquote { - padding-right: 5rem; - padding-left: 1.25rem; - } -} -img { - display: block; - margin: 0 0 1rem; - border-radius: 5px; - max-width: 100%; -} - -/* Tables */ -table { - margin-bottom: 1rem; - width: 100%; - border: 1px solid #e5e5e5; - border-collapse: collapse; -} - -td, -th { - padding: 0.25rem 0.5rem; - border: 1px solid #e5e5e5; -} - -tbody tr:nth-child(odd) td, -tbody tr:nth-child(odd) th { - background-color: #f9f9f9; -} - -/* - * Custom type - * - * Extend paragraphs with `.lead` for larger introductory text. - */ -.lead { - font-size: 1.25rem; - font-weight: 300; -} - -/* - * Messages - * - * Show alert messages to users. You may add it to single elements like a `<p>`, - * or to a parent if there are multiple elements to show. - */ -.message { - margin-bottom: 1rem; - padding: 1rem; - color: #717171; - background-color: #f9f9f9; -} - -/* - * Container - * - * Center the page content. - */ -.container { - max-width: 38rem; - padding-left: 1rem; - padding-right: 1rem; - margin-left: auto; - margin-right: auto; -} - -/* - * Masthead - * - * Super small header above the content for site name and short description. - */ -.masthead { - padding-top: 1rem; - padding-bottom: 1rem; - margin-bottom: 3rem; -} - -.masthead-title { - margin-top: 0; - margin-bottom: 0; - color: #505050; -} - -.masthead-title a { - color: #505050; -} - -.masthead-title small { - font-size: 75%; - font-weight: 400; - color: #c0c0c0; - letter-spacing: 0; -} - -/* - * Posts and pages - * - * Each post is wrapped in `.post` and is used on default and post layouts. Each - * page is wrapped in `.page` and is only used on the page layout. - */ -.page, -.post { - margin-bottom: 4em; -} - -/* Blog post or page title */ -.page-title, -.post-title, -.post-title a { - color: #303030; -} - -.page-title, -.post-title { - margin-top: 0; -} - -/* Meta data line below post title */ -.post-date { - display: block; - margin-top: -0.5rem; - margin-bottom: 1rem; - color: #9a9a9a; -} - -/* Related posts */ -.related { - padding-top: 2rem; - padding-bottom: 2rem; - border-top: 1px solid #eee; -} - -.related-posts { - padding-left: 0; - list-style: none; -} - -.related-posts h3 { - margin-top: 0; -} - -.related-posts li small { - font-size: 75%; - color: #999; -} - -.related-posts li a:hover { - color: #268bd2; - text-decoration: none; -} - -.related-posts li a:hover small { - color: inherit; -} - -/* Footnotes */ -.footnote-definition:first-of-type { - border-top: 1px solid; - padding-top: 1rem; -} - -.footnote-definition { - margin-top: 1rem; -} - -.footnote-definition sup { - margin-left: -1rem; - float: left; -} - -/* - * Pagination - * - * Super lightweight (HTML-wise) blog pagination. `span`s are provide for when - * there are no more previous or next posts to show. - */ -.pagination { - overflow: hidden; /* clearfix */ - margin-left: -1rem; - margin-right: -1rem; - font-family: "PT Sans", Helvetica, Arial, sans-serif; - color: #ccc; - text-align: center; -} - -/* Pagination items can be `span`s or `a`s */ -.pagination-item { - display: block; - padding: 1rem; - border: 1px solid #eee; -} - -.pagination-item:first-child { - margin-bottom: -1px; -} - -/* Only provide a hover state for linked pagination items */ -a.pagination-item:hover { - background-color: #f5f5f5; -} - -@media (min-width: 30em) { - .pagination { - margin: 3rem 0; - } - .pagination-item { - float: left; - width: 50%; - } - .pagination-item:first-child { - margin-bottom: 0; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; - } - .pagination-item:last-child { - margin-left: -1px; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - } -} -/* - * __ __ - * /\ \ /\ \ - * \ \ \___ __ __ \_\ \ __ - * \ \ _ `\/\ \/\ \ /'_` \ /'__`\ - * \ \ \ \ \ \ \_\ \/\ \_\ \/\ __/ - * \ \_\ \_\/`____ \ \___,_\ \____\ - * \/_/\/_/`/___/> \/__,_ /\/____/ - * /\___/ - * \/__/ - * - * Designed, built, and released under MIT license by @mdo. Learn more at - * https://github.com/poole/hyde. - */ -/* - * Contents - * - * Global resets - * Sidebar - * Container - * Reverse layout - * Themes - */ -/* - * Global resets - * - * Update the foundational and global aspects of the page. - */ -html { - font-family: "PT Sans", Helvetica, Arial, sans-serif; -} - -@media (min-width: 48em) { - html { - font-size: 16px; - } -} -@media (min-width: 58em) { - html { - font-size: 20px; - } -} -/* - * Sidebar - * - * Flexible banner for housing site name, intro, and "footer" content. Starts - * out above content in mobile and later moves to the side with wider viewports. - */ -.sidebar { - text-align: center; - padding: 0.5rem 1rem; - color: rgba(255, 255, 255, 0.5); - background-color: #202020; -} - -@media (min-width: 48em) { - .sidebar { - position: fixed; - top: 0; - left: 0; - bottom: 0; - width: 18rem; - text-align: left; - } -} -/* Sidebar links */ -.sidebar a { - color: #fff; -} - -/* About section */ -.sidebar-about h1 { - color: #fff; - margin-top: 0; - font-family: "Abril Fatface", serif; - font-size: 3.25rem; -} - -.sidebar-about a { - text-decoration: none; -} - -.sidebar-nav { - padding-left: 0; - list-style: none; - font-size: 80%; - display: flex; - flex-direction: row; - justify-content: space-evenly; -} - -/* Sidebar nav */ -@media (min-width: 48em) { - .sidebar-nav { - flex-direction: column; - } -} -.sidebar-nav-item { - display: block; -} - -a.sidebar-nav-item:hover, -a.sidebar-nav-item:focus { - text-decoration: underline; -} - -.sidebar-nav-item.active { - font-weight: bold; -} - -/* Sticky sidebar - * - * Add the `sidebar-sticky` class to the sidebar's container to affix it the - * contents to the bottom of the sidebar in tablets and up. - */ -@media (min-width: 48em) { - .sidebar-sticky { - position: absolute; - right: 1rem; - bottom: 1rem; - left: 1rem; - } - @supports (padding: max(0px)) { - body:not(.layout-reverse) .sidebar-sticky { - padding-left: max(1rem, env(safe-area-inset-left)); - } - .layout-reverse .sidebar-sticky { - padding-right: max(1rem, env(safe-area-inset-right)); - } - } -} -/* Container - * - * Align the contents of the site above the proper threshold with some margin-fu - * with a 25%-wide `.sidebar`. - */ -.content { - padding-top: 4rem; - padding-bottom: 4rem; -} - -@supports (padding: max(0px)) { - body:not(.layout-reverse) .content { - padding-right: max(1rem, env(safe-area-inset-right)); - } - .layout-reverse .content { - padding-left: max(1rem, env(safe-area-inset-left)); - } -} -@media (min-width: 48em) { - .content { - max-width: 38rem; - margin-left: 20rem; - margin-right: 2rem; - } -} -@media (min-width: 64em) { - .content { - margin-left: 22rem; - margin-right: 4rem; - } -} -/* - * Reverse layout - * - * Flip the orientation of the page by placing the `.sidebar` on the right. - */ -@media (min-width: 48em) { - .layout-reverse .sidebar { - left: auto; - right: 0; - } - .layout-reverse .content { - margin-left: 2rem; - margin-right: 20rem; - } -} -@media (min-width: 64em) { - .layout-reverse .content { - margin-left: 4rem; - margin-right: 22rem; - } -} -/* - * Themes - * - * As of v1.1, Hyde includes optional themes to color the sidebar and links - * within blog posts. To use, add the class of your choosing to the `body`. - */ -/* Base16 (http://chriskempson.github.io/base16/#default) */ -/* Red */ -.theme-base-08 .sidebar { - background-color: #ac4142; -} - -.theme-base-08 .content a, -.theme-base-08 .related-posts li a:hover { - color: #ac4142; -} - -/* Orange */ -.theme-base-09 .sidebar { - background-color: #d28445; -} - -.theme-base-09 .content a, -.theme-base-09 .related-posts li a:hover { - color: #d28445; -} - -/* Yellow */ -.theme-base-0a .sidebar { - background-color: #f4bf75; -} - -.theme-base-0a .content a, -.theme-base-0a .related-posts li a:hover { - color: #f4bf75; -} - -/* Green */ -.theme-base-0b .sidebar { - background-color: #90a959; -} - -.theme-base-0b .content a, -.theme-base-0b .related-posts li a:hover { - color: #90a959; -} - -/* Cyan */ -.theme-base-0c .sidebar { - background-color: #75b5aa; -} - -.theme-base-0c .content a, -.theme-base-0c .related-posts li a:hover { - color: #75b5aa; -} - -/* Blue Original Colour Code: 6a9fb5*/ -.theme-base-0d .sidebar { - background-color: #1a5b74; -} - -.theme-base-0d .content a, -.theme-base-0d .related-posts li a:hover { - color: #1a5b74; -} - -/* Magenta */ -.theme-base-0e .sidebar { - background-color: #aa759f; -} - -.theme-base-0e .content a, -.theme-base-0e .related-posts li a:hover { - color: #aa759f; -} - -/* Brown */ -.theme-base-0f .sidebar { - background-color: #8f5536; -} - -.theme-base-0f .content a, -.theme-base-0f .related-posts li a:hover { - color: #8f5536; -} - -/* LaTeX Style Reset */ -body.libertinus { - font-family: "Libertinus", Georgia, Cambria, "Times New Roman", Times, serif; -} - -body { - font-family: "Latin Modern", Georgia, Cambria, "Times New Roman", Times, serif; - text-rendering: optimizeLegibility; -} - -/* Additional */ -.copyright { - font-size: 60%; - font-family: "PT Sans", Helvetica, Arial, sans-serif; -} - -.lead { - font-family: "PT Sans", Helvetica, Arial, sans-serif; -} - -/*# sourceMappingURL=c-hyde.css.map */ diff --git a/docs/assets/c-hyde.css.map b/docs/assets/c-hyde.css.map deleted file mode 100644 index 6dd262e..0000000 --- a/docs/assets/c-hyde.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["../../sass/c-hyde.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAIA;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAIF;AAAA;;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACG;EACK;;;AAGV;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;;;AAEF;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACI;;;AAGN;AACA;EACE;EACA;;;AAEF;AACA;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;EACE;EACA;;;AAGF;EACE;;;AAIF;AACA;EACE;EACA;;;AAGF;EACE;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAGF;AACA;AAAA;EAEE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAEF;AAAA;EAEE;EACA;;;AAEF;AAAA;EAEE;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;EAEE;;;AAGF;AACA;AAAA;AAAA;EAGE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAIF;AACA;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;;;AAGF;AACA;EACE;;;AAGF;EACE;IACE;;EAEF;IACE;IACA;;EAEF;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;;;AAEF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;EACE;EACA;EACA;EACA;;;AAEF;EACE;IACE;IACA;IACA;IACA;IACA;IACA;;;AAIJ;AACA;EACE;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACI;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;IACE;;;AAIJ;EACE;;;AAEF;AAAA;EAEE;;;AAEF;EACE;;;AAGF;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;IACA;IACA;;EAIF;IACE;MAEI;;IAGJ;MAGI;;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;EACA;;;AAGF;EACE;IAEI;;EAGJ;IAEI;;;AAKN;EACE;IACE;IACA;IACA;;;AAIJ;EACE;IACE;IACA;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;IACA;;;AAMJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAEA;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAGF;AACA;EACE;;;AAEF;AAAA;EAEE;;;AAIF;AAEA;EACE;;;AAGF;EACE;EACA;;;AAIF;AAEA;EACE;EACA;;;AAGF;EACE","file":"c-hyde.css"}
\ No newline at end of file diff --git a/docs/assets/disqus.js b/docs/assets/disqus.js deleted file mode 100644 index 0c52381..0000000 --- a/docs/assets/disqus.js +++ /dev/null @@ -1,5 +0,0 @@ -(function() { - var t = document, - e = t.createElement("script"); - e.src = "https://navan-chauhan.disqus.com/embed.js", e.setAttribute("data-timestamp", +new Date), (t.head || t.body).appendChild(e) -})(); diff --git a/docs/assets/flixrec/filter.png b/docs/assets/flixrec/filter.png Binary files differdeleted file mode 100644 index 9b37de5..0000000 --- a/docs/assets/flixrec/filter.png +++ /dev/null diff --git a/docs/assets/flixrec/home.png b/docs/assets/flixrec/home.png Binary files differdeleted file mode 100644 index 6c87ad8..0000000 --- a/docs/assets/flixrec/home.png +++ /dev/null diff --git a/docs/assets/flixrec/multiple.png b/docs/assets/flixrec/multiple.png Binary files differdeleted file mode 100644 index e818b1f..0000000 --- a/docs/assets/flixrec/multiple.png +++ /dev/null diff --git a/docs/assets/flixrec/results.png b/docs/assets/flixrec/results.png Binary files differdeleted file mode 100644 index cde8347..0000000 --- a/docs/assets/flixrec/results.png +++ /dev/null diff --git a/docs/assets/gciTales/01-teachableMachines/.01-collect.png.icloud b/docs/assets/gciTales/01-teachableMachines/.01-collect.png.icloud Binary files differdeleted file mode 100644 index b291112..0000000 --- a/docs/assets/gciTales/01-teachableMachines/.01-collect.png.icloud +++ /dev/null diff --git a/docs/assets/gciTales/01-teachableMachines/02-train.png b/docs/assets/gciTales/01-teachableMachines/02-train.png Binary files differdeleted file mode 100644 index 072dddf..0000000 --- a/docs/assets/gciTales/01-teachableMachines/02-train.png +++ /dev/null diff --git a/docs/assets/gciTales/01-teachableMachines/03-label.png b/docs/assets/gciTales/01-teachableMachines/03-label.png Binary files differdeleted file mode 100644 index 4dcb125..0000000 --- a/docs/assets/gciTales/01-teachableMachines/03-label.png +++ /dev/null diff --git a/docs/assets/gciTales/01-teachableMachines/04-alert.png b/docs/assets/gciTales/01-teachableMachines/04-alert.png Binary files differdeleted file mode 100644 index e3c52c0..0000000 --- a/docs/assets/gciTales/01-teachableMachines/04-alert.png +++ /dev/null diff --git a/docs/assets/gciTales/01-teachableMachines/05-html.png b/docs/assets/gciTales/01-teachableMachines/05-html.png Binary files differdeleted file mode 100644 index b3c2bb5..0000000 --- a/docs/assets/gciTales/01-teachableMachines/05-html.png +++ /dev/null diff --git a/docs/assets/gciTales/01-teachableMachines/06-js.png b/docs/assets/gciTales/01-teachableMachines/06-js.png Binary files differdeleted file mode 100644 index 3fab16d..0000000 --- a/docs/assets/gciTales/01-teachableMachines/06-js.png +++ /dev/null diff --git a/docs/assets/gciTales/01-teachableMachines/07-eg.png b/docs/assets/gciTales/01-teachableMachines/07-eg.png Binary files differdeleted file mode 100644 index 6c049da..0000000 --- a/docs/assets/gciTales/01-teachableMachines/07-eg.png +++ /dev/null diff --git a/docs/assets/gciTales/01-teachableMachines/08-eg.png b/docs/assets/gciTales/01-teachableMachines/08-eg.png Binary files differdeleted file mode 100644 index 7386b33..0000000 --- a/docs/assets/gciTales/01-teachableMachines/08-eg.png +++ /dev/null diff --git a/docs/assets/gciTales/03-regression/1.png b/docs/assets/gciTales/03-regression/1.png Binary files differdeleted file mode 100644 index 02fe971..0000000 --- a/docs/assets/gciTales/03-regression/1.png +++ /dev/null diff --git a/docs/assets/gciTales/03-regression/2.png b/docs/assets/gciTales/03-regression/2.png Binary files differdeleted file mode 100644 index 4fe3033..0000000 --- a/docs/assets/gciTales/03-regression/2.png +++ /dev/null diff --git a/docs/assets/gciTales/03-regression/3.png b/docs/assets/gciTales/03-regression/3.png Binary files differdeleted file mode 100644 index bea9e04..0000000 --- a/docs/assets/gciTales/03-regression/3.png +++ /dev/null diff --git a/docs/assets/gciTales/03-regression/4.png b/docs/assets/gciTales/03-regression/4.png Binary files differdeleted file mode 100644 index 7066f63..0000000 --- a/docs/assets/gciTales/03-regression/4.png +++ /dev/null diff --git a/docs/assets/gciTales/03-regression/5.png b/docs/assets/gciTales/03-regression/5.png Binary files differdeleted file mode 100644 index d8e5766..0000000 --- a/docs/assets/gciTales/03-regression/5.png +++ /dev/null diff --git a/docs/assets/gciTales/03-regression/6.png b/docs/assets/gciTales/03-regression/6.png Binary files differdeleted file mode 100644 index 475ed85..0000000 --- a/docs/assets/gciTales/03-regression/6.png +++ /dev/null diff --git a/docs/assets/main.css b/docs/assets/main.css deleted file mode 100644 index 2d1b23c..0000000 --- a/docs/assets/main.css +++ /dev/null @@ -1,101 +0,0 @@ - -blockquote { - margin: 50px auto; - padding: 1.2em 30px 1.2em 75px; - border-left: 8px solid #ccc; - line-height: 1.6; - position: relative; - background: #EDEDED; -} - -blockquote::before { - font-family: Arial; - content: "\201C"; - color: #ccc; - font-size: 4em; - position: absolute; - left: 10px; - top: -10px; -} - -blockquote::after { - content: ' '; -} - -cite { - display: block; - text-align: right; - color: #666; - font-size: 14px; - font-style: normal; - margin-top: 5px; -} - -pre { line-height: 125%; margin: 0; } -td.linenos pre { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } -span.linenos { color: #000000; background-color: #f0f0f0; padding-left: 5px; padding-right: 5px; } -td.linenos pre.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.codehilite .hll { background-color: #ffffcc } -.codehilite { background: #ffffff; } -.codehilite .c { color: #177500 } /* Comment */ -.codehilite .err { color: #000000 } /* Error */ -.codehilite .k { color: #A90D91 } /* Keyword */ -.codehilite .l { color: #1C01CE } /* Literal */ -.codehilite .n { color: #000000 } /* Name */ -.codehilite .o { color: #000000 } /* Operator */ -.codehilite .ch { color: #177500 } /* Comment.Hashbang */ -.codehilite .cm { color: #177500 } /* Comment.Multiline */ -.codehilite .cp { color: #633820 } /* Comment.Preproc */ -.codehilite .cpf { color: #177500 } /* Comment.PreprocFile */ -.codehilite .c1 { color: #177500 } /* Comment.Single */ -.codehilite .cs { color: #177500 } /* Comment.Special */ -.codehilite .kc { color: #A90D91 } /* Keyword.Constant */ -.codehilite .kd { color: #A90D91 } /* Keyword.Declaration */ -.codehilite .kn { color: #A90D91 } /* Keyword.Namespace */ -.codehilite .kp { color: #A90D91 } /* Keyword.Pseudo */ -.codehilite .kr { color: #A90D91 } /* Keyword.Reserved */ -.codehilite .kt { color: #A90D91 } /* Keyword.Type */ -.codehilite .ld { color: #1C01CE } /* Literal.Date */ -.codehilite .m { color: #1C01CE } /* Literal.Number */ -.codehilite .s { color: #C41A16 } /* Literal.String */ -.codehilite .na { color: #836C28 } /* Name.Attribute */ -.codehilite .nb { color: #A90D91 } /* Name.Builtin */ -.codehilite .nc { color: #3F6E75 } /* Name.Class */ -.codehilite .no { color: #000000 } /* Name.Constant */ -.codehilite .nd { color: #000000 } /* Name.Decorator */ -.codehilite .ni { color: #000000 } /* Name.Entity */ -.codehilite .ne { color: #000000 } /* Name.Exception */ -.codehilite .nf { color: #000000 } /* Name.Function */ -.codehilite .nl { color: #000000 } /* Name.Label */ -.codehilite .nn { color: #000000 } /* Name.Namespace */ -.codehilite .nx { color: #000000 } /* Name.Other */ -.codehilite .py { color: #000000 } /* Name.Property */ -.codehilite .nt { color: #000000 } /* Name.Tag */ -.codehilite .nv { color: #000000 } /* Name.Variable */ -.codehilite .ow { color: #000000 } /* Operator.Word */ -.codehilite .mb { color: #1C01CE } /* Literal.Number.Bin */ -.codehilite .mf { color: #1C01CE } /* Literal.Number.Float */ -.codehilite .mh { color: #1C01CE } /* Literal.Number.Hex */ -.codehilite .mi { color: #1C01CE } /* Literal.Number.Integer */ -.codehilite .mo { color: #1C01CE } /* Literal.Number.Oct */ -.codehilite .sa { color: #C41A16 } /* Literal.String.Affix */ -.codehilite .sb { color: #C41A16 } /* Literal.String.Backtick */ -.codehilite .sc { color: #2300CE } /* Literal.String.Char */ -.codehilite .dl { color: #C41A16 } /* Literal.String.Delimiter */ -.codehilite .sd { color: #C41A16 } /* Literal.String.Doc */ -.codehilite .s2 { color: #C41A16 } /* Literal.String.Double */ -.codehilite .se { color: #C41A16 } /* Literal.String.Escape */ -.codehilite .sh { color: #C41A16 } /* Literal.String.Heredoc */ -.codehilite .si { color: #C41A16 } /* Literal.String.Interpol */ -.codehilite .sx { color: #C41A16 } /* Literal.String.Other */ -.codehilite .sr { color: #C41A16 } /* Literal.String.Regex */ -.codehilite .s1 { color: #C41A16 } /* Literal.String.Single */ -.codehilite .ss { color: #C41A16 } /* Literal.String.Symbol */ -.codehilite .bp { color: #5B269A } /* Name.Builtin.Pseudo */ -.codehilite .fm { color: #000000 } /* Name.Function.Magic */ -.codehilite .vc { color: #000000 } /* Name.Variable.Class */ -.codehilite .vg { color: #000000 } /* Name.Variable.Global */ -.codehilite .vi { color: #000000 } /* Name.Variable.Instance */ -.codehilite .vm { color: #000000 } /* Name.Variable.Magic */ -.codehilite .il { color: #1C01CE } /* Literal.Number.Integer.Long */ diff --git a/docs/assets/manup.min.js b/docs/assets/manup.min.js deleted file mode 100644 index 20bc3a1..0000000 --- a/docs/assets/manup.min.js +++ /dev/null @@ -1 +0,0 @@ -var manUpObject,tagArray=[],linkArray=[],validMetaValues=[{name:"mobile-web-app-capable",manifestName:"display"},{name:"apple-mobile-web-app-capable",manifestName:"display"},{name:"apple-mobile-web-app-title",manifestName:"short_name"},{name:"application-name",manifestName:"short_name"},{name:"msapplication-TileColor",manifestName:"ms_TileColor"},{name:"msapplication-square70x70logo",manifestName:"icons",imageSize:"70x70"},{name:"msapplication-square150x150logo",manifestName:"icons",imageSize:"150x150"},{name:"msapplication-wide310x150logo",manifestName:"icons",imageSize:"310x150"},{name:"msapplication-square310x310logo",manifestName:"icons",imageSize:"310x310"}],validLinkValues=[{name:"apple-touch-icon",manifestName:"icons",imageSize:"152x152"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"120x120"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"76x76"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"60x60"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"57x57"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"72x72"},{name:"apple-touch-icon",manifestName:"icons",imageSize:"114x114"},{name:"icon",manifestName:"icons",imageSize:"128x128"},{name:"icon",manifestName:"icons",imageSize:"192x192"}],generateFullMetaData=function(){for(var e=0;e<validMetaValues.length;e++)if(manUpObject[validMetaValues[e].manifestName])if("icons"==validMetaValues[e].manifestName)for(var a=manUpObject.icons,n=0;n<a.length;n++)a[n].sizes==validMetaValues[e].imageSize&&(validMetaValues[e].content=a[n].src);else validMetaValues[e].content=manUpObject[validMetaValues[e].manifestName],"display"==validMetaValues[e].manifestName&&"standalone"==manUpObject.display&&(validMetaValues[e].content="yes");return validMetaValues},generateFullLinkData=function(){for(var e=0;e<validLinkValues.length;e++)if(manUpObject[validLinkValues[e].manifestName])if("icons"==validLinkValues[e].manifestName)for(var a=manUpObject.icons,n=0;n<a.length;n++)a[n].sizes==validLinkValues[e].imageSize&&(validLinkValues[e].content=a[n].src);else validLinkValues[e].content=manUpObject[validLinkValues[e].manifestName];return validLinkValues},generateMetaArray=function(){for(var e=generateFullMetaData(),a=document.getElementsByTagName("head")[0],n=0;n<e.length;n++){var i=document.createElement("meta");i.name=e[n].name,i.content=e[n].content,a.appendChild(i)}},generateLinkArray=function(){for(var e=generateFullLinkData(),a=document.getElementsByTagName("head")[0],n=0;n<e.length;n++){var i=document.createElement("link");i.setAttribute("rel",e[n].name),i.setAttribute("sizes",e[n].imageSize),i.setAttribute("href",e[n].content),a.appendChild(i)}},generateObj=function(e){manUpObject=JSON.parse(e),generateLinkArray(),generateMetaArray()},makeAjax=function(e){if(window.XMLHttpRequest){var a,n=/^https?:\/\//i;n.test(e)?fulURL=e:a=window.location.hostname+e;var i=new XMLHttpRequest;i.onreadystatechange=function(){4==i.readyState&&200==i.status&&generateObj(i.responseText)},i.open("GET",e,!0),i.send()}},collectManifestObj=function(){for(var e=document.getElementsByTagName("link"),a=0;a<e.length;a++)e[a].rel&&"manifest"==e[a].rel&&makeAjax(e[a].href)},testForManifest=function(){collectManifestObj()}(); diff --git a/docs/assets/n-body/script.js b/docs/assets/n-body/script.js deleted file mode 100644 index cd8b8b0..0000000 --- a/docs/assets/n-body/script.js +++ /dev/null @@ -1,706 +0,0 @@ -// Global variables -var plotOrbit = true -var plotClassic = false -var plotRandom = false -var plotRandom3Body = false -var plotIndex = 0 -var delay = 10 -var tailLength = 1; -var nBodies = 256; - -/* - * Earth - Sun Orbit Plot - * Taken from Numerics tutorial - */ - -const G = 6.67e-11; -const Msun = 2e30; -const AU = 1.5e11; -const v0 = Math.sqrt(G * Msun / AU); // SI - -function dR(r, v) { - const dv = [-G * Msun / Math.pow(r[0] ** 2 + r[1] ** 2, 3 / 2) * r[0], -G * Msun / Math.pow(r[0] ** 2 + r[1] ** 2, 3 / 2) * r[1]]; - const dr = [...v]; - return [dr, dv]; -} - -// initialize system -let r = [-AU, 0]; -const theta = Math.atan2(r[1], r[0]); -let v = [-v0 * Math.sin(theta), v0 * Math.cos(theta)]; - -const t = Array.from({ length: 1001 }, (_, i) => i / 100 + 0.0); // years -const yearSec = 365 * 24 * 3600; -const dt = (t[1] - t[0]) * yearSec; // s -const x4Plot = Array.from({ length: t.length }, () => 0); -const y4Plot = Array.from({ length: t.length }, () => 0); - -// integrate using RK4! -for (let i = 0; i < t.length; i++) { - const k1 = dR(r, v).map(x => x.map(y => y * dt)); - const k2 = dR(r.map((ri, j) => ri + k1[0][j] / 2), v.map((vi, j) => vi + k1[1][j] / 2)).map(x => x.map(y => y * dt)); - const k3 = dR(r.map((ri, j) => ri + k2[0][j] / 2), v.map((vi, j) => vi + k2[1][j] / 2)).map(x => x.map(y => y * dt)); - const k4 = dR(r.map((ri, j) => ri + k3[0][j]), v.map((vi, j) => vi + k3[1][j])).map(x => x.map(y => y * dt)); - r = r.map((ri, j) => ri + (k1[0][j] + 2 * k2[0][j] + 2 * k3[0][j] + k4[0][j]) / 6); - v = v.map((vi, j) => vi + (k1[1][j] + 2 * k2[1][j] + 2 * k3[1][j] + k4[1][j]) / 6); - x4Plot[i] = r[0]; - y4Plot[i] = r[1]; -} - -// make data for plot -var sun = { x: 0, y: 0 }; -const earth = { x: x4Plot.map(x => x / AU), y: y4Plot.map(y => y / AU) }; -const circle = { x: Array.from({ length: 1001 }, (_, i) => Math.cos(i / 100 * 2 * Math.PI)), y: Array.from({ length: 1001 }, (_, i) => Math.sin(i / 100 * 2 * Math.PI)) }; - -/* - * Generic Functions - * - * - */ - -function deltaR(coords, masses, nBodies, G) { - let x = coords[0]; - let y = coords[1]; - let vx = coords[2]; - let vy = coords[3]; - - let delta = math.clone(coords); - - for (let n = 0; n < nBodies; n++) { - let xn = x[n]; - let yn = y[n]; - let deltaVx = 0.0; - let deltaVy = 0.0; - - for (let i = 0; i < nBodies; i++) { - if (i !== n) { - let sep = Math.sqrt(Math.pow(xn - x[i], 2) + Math.pow(yn - y[i], 2)); // Euclidean distance - deltaVx -= G * masses[i] * (xn - x[i]) / Math.pow(sep, 3); - deltaVy -= G * masses[i] * (yn - y[i]) / Math.pow(sep, 3); - } - } - - delta[2][n] = deltaVx; - delta[3][n] = deltaVy; - } - - delta[0] = vx; - delta[1] = vy; - - return delta; -} - -function detectCollisionsEscape(coords, deltaT, maxSep) { - const [x, y, vx, vy] = coords; - const V = vx.map((v, i) => Math.sqrt(v ** 2 + vy[i] ** 2)); - const R = V.map(v => v * deltaT); - let collision = false, collisionInds = null, escape = false, escapeInd = null; - - for (let n = 0; n < x.length; n++) { - const rn = R[n], xn = x[n], yn = y[n]; - for (let i = 0; i < x.length; i++) { - if (i !== n) { - const minSep = rn + R[i]; - const sep = Math.sqrt((xn - x[i]) ** 2 + (yn - y[i]) ** 2); - if (sep < minSep) { - collision = true; - collisionInds = [n, i]; - } else if (sep > maxSep) { - escape = true; - escapeInd = n; - return [collision, collisionInds, escape, escapeInd]; - } - } - } - } - return [collision, collisionInds, escape, escapeInd]; -} - - - -function step(coords, masses, deltaT, nBodies = 3, G = 6.67408313131313e-11) { - let k1 = math.multiply(deltaT, deltaR(coords, masses, nBodies, G)); - let k2 = math.multiply(deltaT, deltaR(math.add(coords, math.multiply(k1, 0.5)), masses, nBodies, G)); - let k3 = math.multiply(deltaT, deltaR(math.add(coords, math.multiply(k2, 0.5)), masses, nBodies, G)); - let k4 = math.multiply(deltaT, deltaR(math.add(coords, k3), masses, nBodies, G)); - - coords = math.add(coords, math.multiply(math.add(k1, math.multiply(2.0, k2), math.multiply(2.0, k3), k4), 1/6)); - - return coords; -} - -function nBodyStep(coords, masses, deltaT, maxSep, nBodies, G = 6.67408313131313e-11) { // Similar to our step function before, but keeping track of collisions - coords = step(coords, masses, deltaT, nBodies, G); // Update the positions as we did before - //console.log(detectCollisionsEscape(coords, deltaT, maxSep)); - let [collision, collisionInds, escape, escapeInd] = detectCollisionsEscape(coords, deltaT, maxSep); // Detect collisions/escapes - - - if (collision) { // Do inelastic collision and delete extra body (2 -> 1) - const [i1, i2] = collisionInds; - const [x1, x2] = [coords[0][i1], coords[0][i2]]; - const [y1, y2] = [coords[1][i1], coords[1][i2]]; - const [vx1, vx2] = [coords[2][i1], coords[2][i2]]; - const [vy1, vy2] = [coords[3][i1], coords[3][i2]]; - const [px1, px2] = [masses[i1] * vx1, masses[i2] * vx2]; - const [py1, py2] = [masses[i1] * vy1, masses[i2] * vy2]; - const px = px1 + px2; - const py = py1 + py2; - const newM = masses[i1] + masses[i2]; - const vfx = px / newM; - const vfy = py / newM; - coords[0][i1] = (x1 * masses[i1] + x2 * masses[i2]) / (masses[i1] + masses[i2]); // Center of mass - coords[1][i1] = (y1 * masses[i1] + y2 * masses[i2]) / (masses[i1] + masses[i2]); - coords[2][i1] = vfx; - coords[3][i1] = vfy; - coords[0].splice(i2, 1); - coords[1].splice(i2, 1); - coords[2].splice(i2, 1); - coords[3].splice(i2, 1); - masses[i1] = newM; - masses.splice(i2, 1); - nBodies--; - } - // Could also implement condition for escape where we stop calculating forces but I'm too lazy for now - return [coords, masses, nBodies, collision, collisionInds, escape, escapeInd]; -} - -function uniform(min, max) { - return Math.random() * (max - min) + min; -} - -function deepCopyCoordsArray(arr) { - return arr.map(innerArr => innerArr.slice()); -} - -function genNBodyResults(nBodies, tStop, nTPts, nBodiesStop = 10, G = 6.67408313131313e-11) { - - var btn = document.getElementById("startSim3"); - // Set button text to Solving - var prevText = btn.innerHTML; - btn.innerHTML = "Solving..."; - - let coords = [Array(nBodies).fill(0), Array(nBodies).fill(0), Array(nBodies).fill(0), Array(nBodies).fill(0)]; - const Mstar = 2e30; - const Mp = Mstar / 1e4; - - for (let i = 0; i < nBodies; i++) { // Initialize coordinates on ~Keplerian orbits - let accept = false; - let r = null; - while (!accept) { // Prevent a particle from spawning within 0.2 AU too close to "star" - r = Math.random() * 2 * 1.5e11; // Say radius of 2 AU - if (r / 1.5e11 > 0.2) { - accept = true; - } - } - const theta = uniform(0, 2 * Math.PI); - const x = r * Math.cos(theta); - const y = r * Math.sin(theta); - const v = Math.sqrt(G * Mstar / r); - const perturbedV = v + v / 1000 * uniform(-1, 1); // Perturb the velocities ever so slightly - const vTheta = Math.atan2(y, x); - coords[0][i] = x; - coords[1][i] = y; - coords[2][i] = -perturbedV * Math.sin(vTheta); - coords[3][i] = perturbedV * Math.cos(vTheta); - } - - //console.log('Initial coords:', coords); - - - let masses = Array(nBodies).fill(Mp); // Initialize masses - masses[0] = Mstar; // Make index one special as the central star - coords[0][0] = 0; - coords[1][0] = 0; - coords[2][0] = 0; - coords[3][0] = 0; // Initialize central star at origin with no velocity - const yearSec = 365 * 24 * 3600; - const time = Array.from({ length: nTPts }, (_, i) => i * tStop / (nTPts - 1) * yearSec); // Years -> s - let t = time[0]; - const deltaT = time[1] - time[0]; - let tInd = 0; - const coordsRecord = [deepCopyCoordsArray(coords)]; - const massRecord = [masses.slice()]; // Initialize records with initial conditions - - - while (tInd < nTPts && nBodies > nBodiesStop) { - //console.log('Initial coords:', coords); - [coords, masses, nBodies] = nBodyStep(coords, masses, deltaT, 10 * 1.5e11, nBodies, G); // Update - coordsRecord.push(deepCopyCoordsArray(coords)); - massRecord.push(masses.slice()); // Add to records - tInd++; - t = time[tInd]; - //console.log(`currently at t = ${(t / yearSec).toFixed(2)} years\r`); - } - console.log(`final time = ${time[tInd] / yearSec} years with ${nBodies} bodies remaining`); - - // Set button text to Start Simulation - btn.innerHTML = prevText; - - return [coordsRecord, massRecord, time.slice(0, tInd + 1)]; -} - - -function initCondGen(nBodies, vRange = [-7e3, 7e3], posRange = [-35, 35]) { - const m = Array.from({length: nBodies}, () => Math.random() * 1500 / 10); - - const rad = m.map(x => Math.pow(x, 0.8)); - const minV = vRange[0], maxV = vRange[1]; - const minPos = posRange[0], maxPos = posRange[1]; - const posList = []; - - function checkPos(randPos, n, posList, rad) { - for (let i = 0; i < n - 1; i++) { - const dist = Math.sqrt(Math.pow(posList[i][0] - randPos[0], 2) + Math.pow(posList[i][1] - randPos[1], 2)); - if (dist * 1.5e11 < (rad[n] + rad[i])) { - return false; - } - } - return true; - } - - function genPos(nBodies, posList, rad, minPos, maxPos) { - posList.push([Math.random() * (maxPos - minPos) + minPos, Math.random() * (maxPos - minPos) + minPos]); - for (let n = 1; n < nBodies; n++) { - let acceptPos = false; - while (acceptPos === false) { - const randPos = [Math.random() * (maxPos - minPos) + minPos, Math.random() * (maxPos - minPos) + minPos]; - acceptPos = checkPos(randPos, n, posList, rad); - if (acceptPos === true) { - posList.push(randPos); - } - } - } - return posList; - } - - const pos = genPos(nBodies, posList, rad, minPos, maxPos).map(x => x.map(y => y * 1.5e11)); - const coords = [new Array(nBodies).fill(0), new Array(nBodies).fill(0), new Array(nBodies).fill(0), new Array(nBodies).fill(0)]; - const v = []; - - for (let i = 0; i < nBodies; i++) { - coords[0][i] = pos[i][0]; - coords[1][i] = pos[i][1]; - const V = [Math.random() * (maxV - minV) + minV, Math.random() * (maxV - minV) + minV]; - v.push(V); - coords[2][i] = V[0]; - coords[3][i] = V[1]; - } - - return {m: m.map(x => x * 2e30), rad: rad.map(x => x * 7e8), coords: coords}; -} - -function random3BodySimSolver(tStop, nTPts, nBodiesStop=2, G=6.674e-11) { - let userInputPositionValue = parseInt(document.getElementById("distanceAU").value); - let userInputVelocityValue = Number(document.getElementById("vRange").value); - let initConditions = initCondGen(3,[-userInputVelocityValue, userInputVelocityValue],[-userInputPositionValue, userInputPositionValue]); - let myMasses = initConditions.m; - let myCoords = initConditions.coords; - - let nBodies3B = 3; - - const yearSec = 365 * 24 * 3600; - - const time = Array.from({ length: nTPts }, (_, i) => i * tStop / (nTPts - 1) * yearSec); // Years -> s - let t = time[0]; - const deltaT = time[1] - time[0]; - let tInd = 0; - const coordsRecord = [deepCopyCoordsArray(myCoords)]; - const massRecord = [myMasses.slice()]; // Initialize records with initial conditions - - while (tInd < nTPts && nBodies3B > nBodiesStop) { - [myCoords, myMasses, nBodies3B] = nBodyStep(myCoords, myMasses, deltaT, 10 * 1.5e11, nBodies3B, G); // Update - coordsRecord.push(deepCopyCoordsArray(myCoords)); - massRecord.push(myMasses.slice()); // Add to records - tInd++; - t = time[tInd]; - } - - console.log(nBodies3B) - - return [coordsRecord, massRecord, time.slice(0, tInd + 1)]; - -} - - -function calculateAndPlot() { - try { - Plotly.purge("plot"); - } catch (e) { - console.log(e); - } - - if (plotOrbit===true) { - let traceSun = { - x: [sun.x], - y: [sun.y], - mode: "markers", - marker: { - symbol: "star", - size: 10, - color: "gold", - }, - name: "Sun", - }; - - const traceEarth = { - x: earth.x, - y: earth.y, - mode: "lines", - line: { - color: "white" - }, - name: "Earth", - }; - - const traceOrbit = { - x: circle.x, - y:circle.y, - mode: "lines", - line: { - color: "crimson", - dash: "dash" - }, - name: "1 AU Circle", - }; - - const earthSunLayout = { - title: "Earth-Sun Orbit", - xaxis: { - title: "x [AU]", - range: [-1.1,1.1], - showgrid: true, - gridcolor: "rgba(255,255,255,0.5)", - gridwidth: 1, - zeroline: true, - tickmode: "auto", - nticks: 5, - }, - yaxis: { - title: "y [AU]", - range: [-1.1,1.1], - showgrid: true, - gridcolor: "rgba(255,255,255,0.5)", - gridwidth: 1, - zeroline: false, - tickmode: "auto", - nticks: 5, - }, - margin: { - l: 50, - r: 50, - b: 50, - t: 50, - pad: 4, - }, - paper_bgcolor: "black", - plot_bgcolor: "black", - }; - Plotly.newPlot("plot",[traceSun,traceEarth,traceOrbit], earthSunLayout); - } else if (plotRandom==true) { - - var [coordsRecordR, _, tR] = genNBodyResults(nBodies,1,nBodies*2); - //console.log(coordsRecordR); - const yearSec = 365 * 24 * 3600; - - function createFrame(coordsR) { - if (!coordsR || !coordsR[0] || !coordsR[1]) { - return []; - } - - const traceCentralStar = { - x: [coordsR[0][0] / 1.5e11], - y: [coordsR[1][0] / 1.5e11], - mode: 'markers', - type: 'scatter', - name: 'Central star', - marker: { color: 'gold', symbol: 'star', size: 10 }, - }; - - const xCoords = coordsR[0].slice(1).map(x => x / 1.5e11); - const yCoords = coordsR[1].slice(1).map(y => y / 1.5e11); - - const traceOtherBodies = { - x: xCoords, - y: yCoords, - mode: 'markers', - type: 'scatter', - name: '', - marker: { color: 'dodgerblue', symbol: 'circle', size: 2 }, - }; - - return [traceCentralStar, traceOtherBodies]; - } - - - function createLayout(i) { - return { - title: { - text: `N-Body Problem`,//= ${Number(t[i] / yearSec).toFixed(3)} years`, - x: 0.03, - y: 0.97, - xanchor: 'left', - yanchor: 'top', - font: { size: 14 }, - }, - xaxis: { title: 'x [AU]', range: [-2.1, 2.1] }, - yaxis: { title: 'y [AU]', range: [-2.1, 2.1], scaleanchor: 'x', scaleratio: 1 }, - showlegend: false, - margin: { l: 60, r: 40, t: 40, b: 40 }, - //width: 800, - //height: 800, - plot_bgcolor: 'black', - }; -} - - function animateNBodyProblem() { - const nFrames = tR.length; - - for (let i = 0; i < nFrames; i++) { - const frameData = createFrame(coordsRecordR[i]); - const layout = createLayout(i); - //Plotly.newPlot(plotDiv, frameData, layout); - try { - Plotly.animate("plot", { - data: frameData, layout: layout - }, { - staticPlot: true, - transition: { - duration: 0, - }, - frame: { - duration: 0, - redraw: false, - } - }); - } catch (err) { - Plotly.newPlot('plot', frameData, layout); - } - } -} - -animateNBodyProblem(); - - - } else if (plotRandom3Body==true) { - let [coordsRecord3, _, t3] = random3BodySimSolver(1,1000); - - const yearSec = 365 * 24 * 3600; - - function createFrame(coords3) { - if (!coords3 || !coords3[0] || !coords3[1]) { - return []; - } - - const xCoords = coords3[0].slice(0).map(x => x / 1.5e11); - const yCoords = coords3[1].slice(0).map(y => y / 1.5e11); - - const traceOtherBodies = { - x: xCoords, - y: yCoords, - mode: 'markers', - type: 'scatter', - name: '', - marker: { color: 'dodgerblue', symbol: 'circle', size: 5 }, - }; - - return [traceOtherBodies]; - } - - function createLayout(i) { - return { - title: { - text: `3-Body Problem`,//= ${Number(t[i] / yearSec).toFixed(3)} years`, - x: 0.03, - y: 0.97, - xanchor: 'left', - yanchor: 'top', - font: { size: 14 }, - }, - xaxis: { title: 'x [AU]' }, - yaxis: { title: 'y [AU]', scaleanchor: 'x', scaleratio: 1 }, - showlegend: false, - margin: { l: 60, r: 40, t: 40, b: 40 }, - //width: 800, - //height: 800, - plot_bgcolor: 'black', - }; - } - - function animate3BodyProblem() { - const nFrames = t3.length; - - for (let i = 0; i < nFrames; i++) { - const frameData = createFrame(coordsRecord3[i]); - const layout = createLayout(i); - //Plotly.newPlot(plotDiv, frameData, layout); - try { - Plotly.animate("plot", { - data: frameData, layout: layout - }, { - staticPlot: true, - transition: { - duration: 0, - }, - frame: { - duration: 0, - redraw: false, - } - }); - } catch (err) { - Plotly.newPlot('plot', frameData, layout); - } - } - } - - animate3BodyProblem(); - - } else if (plotClassic==true) { - // Initial conditions setup - let M = [1, 1, 1]; - let x = [-0.97000436, 0.0, 0.97000436]; - let y = [0.24208753, 0.0, -0.24208753]; - let vx = [0.4662036850, -0.933240737, 0.4662036850]; - let vy = [0.4323657300, -0.86473146, 0.4323657300]; - let Ei = -1 / Math.sqrt(Math.pow(2 * 0.97000436, 2) + Math.pow(2 * 0.24208753, 2)) - 2 / Math.sqrt(Math.pow(0.97000436, 2) + Math.pow(0.24208753, 2)) + 0.5 * (math.sum(math.add(math.dotPow(vx, 2), math.dotPow(vy, 2)))); - - function linspace(start, stop, num) { - const step = (stop - start) / (num - 1); - return Array.from({length: num}, (_, i) => start + (step * i)); - } - - let coords = [x, y, vx, vy]; - const time = linspace(0, 6.3259, 1001); - let deltaT = time[1] - time[0]; - - let X = math.zeros(3, time.length).toArray(); - let Y = math.zeros(3, time.length).toArray(); - let VX = math.zeros(3, time.length).toArray(); - let VY = math.zeros(3, time.length).toArray(); - - for (let i = 0; i < time.length; i++) { - coords = step(coords, M, deltaT, 3, 1); - X.forEach((_, idx) => X[idx][i] = coords[0][idx]); - Y.forEach((_, idx) => Y[idx][i] = coords[1][idx]); - VX.forEach((_, idx) => VX[idx][i] = coords[2][idx]); - VY.forEach((_, idx) => VY[idx][i] = coords[3][idx]); - } - - function plotClassicFunc() { - var tailLength = 1; - if (plotIndex < tailLength) { - tailLength = 0; - } if (plotIndex > time.length) { - plotIndex = 0; - } else { - tailLength = plotIndex - tailLength; - } - - var currentIndex = plotIndex; - - try { - time[currentIndex].toFixed(3); - } catch (e) { - console.log(e) - currentIndex = 0; - } - - const data = [ - { - x: X[0].slice(tailLength, currentIndex), - y: Y[0].slice(tailLength, currentIndex), - mode: 'lines+markers', - marker: { - symbol: 'star', - size: 8, - line: { width: 0 }, - }, - line: { - width: 2, - }, - name: '', - }, - { - x: X[1].slice(tailLength, currentIndex), - y: Y[1].slice(tailLength, currentIndex), - mode: 'lines+markers', - marker: { - symbol: 'star', - size: 8, - line: { width: 0 }, - }, - line: { - width: 2, - }, - name: '', - }, - { - x: X[2].slice(tailLength, currentIndex), - y: Y[2].slice(tailLength, currentIndex), - mode: 'lines+markers', - marker: { - symbol: 'star', - size: 8, - line: { width: 0 }, - }, - line: { - width: 2, - }, - name: '', - }, - ]; - - // width: 1000, height: 400 - const layout = { - title: '∞ Three-Body Problem: t = ' + time[currentIndex].toFixed(3), - xaxis: { - title: 'x', - range: [-1.1,1.1] - }, - yaxis: { - title: 'y', - scaleanchor: 'x', - scaleratio: 1, - range: [-0.5,0.5] - }, - plot_bgcolor: 'black', - paper_bgcolor: 'black', - font: { - color: 'white', - }, - }; - - try { - Plotly.animate("plot", { - data: data, layout: layout - }, { - staticPlot: true, - transition: { - duration: 0, - }, - frame: { - duration: 0, - redraw: false, - } - }); - } catch (err) { - Plotly.newPlot('plot', data, layout); - } - - - plotIndex += delay; - if (plotClassic===true) { - try { - requestAnimationFrame(plotClassicFunc); - } - catch (err) { - console.log(err) - } - } - - } - - plotClassicFunc(); - - } -} - diff --git a/docs/assets/pdfs/2022-11-07-a-new-way-to-blog.pdf b/docs/assets/pdfs/2022-11-07-a-new-way-to-blog.pdf Binary files differdeleted file mode 100644 index 00d563d..0000000 --- a/docs/assets/pdfs/2022-11-07-a-new-way-to-blog.pdf +++ /dev/null diff --git a/docs/assets/posts/arjs/.03-knot.png.icloud b/docs/assets/posts/arjs/.03-knot.png.icloud Binary files differdeleted file mode 100644 index f947318..0000000 --- a/docs/assets/posts/arjs/.03-knot.png.icloud +++ /dev/null diff --git a/docs/assets/posts/arjs/01-ngrok.png b/docs/assets/posts/arjs/01-ngrok.png Binary files differdeleted file mode 100644 index b82054d..0000000 --- a/docs/assets/posts/arjs/01-ngrok.png +++ /dev/null diff --git a/docs/assets/posts/arjs/02-box-demo.gif b/docs/assets/posts/arjs/02-box-demo.gif Binary files differdeleted file mode 100644 index 604491c..0000000 --- a/docs/assets/posts/arjs/02-box-demo.gif +++ /dev/null diff --git a/docs/assets/posts/arjs/04-nyan.gif b/docs/assets/posts/arjs/04-nyan.gif Binary files differdeleted file mode 100644 index a4e4c1a..0000000 --- a/docs/assets/posts/arjs/04-nyan.gif +++ /dev/null diff --git a/docs/assets/posts/arjs/05-GitHub.jpg b/docs/assets/posts/arjs/05-GitHub.jpg Binary files differdeleted file mode 100644 index 0283ad3..0000000 --- a/docs/assets/posts/arjs/05-GitHub.jpg +++ /dev/null diff --git a/docs/assets/posts/autodock-vina/s1.png b/docs/assets/posts/autodock-vina/s1.png Binary files differdeleted file mode 100644 index 6420ac9..0000000 --- a/docs/assets/posts/autodock-vina/s1.png +++ /dev/null diff --git a/docs/assets/posts/cheminformatics-web/postera-demo.png b/docs/assets/posts/cheminformatics-web/postera-demo.png Binary files differdeleted file mode 100644 index 4bee77f..0000000 --- a/docs/assets/posts/cheminformatics-web/postera-demo.png +++ /dev/null diff --git a/docs/assets/posts/cheminformatics-web/rdkit-demo.png b/docs/assets/posts/cheminformatics-web/rdkit-demo.png Binary files differdeleted file mode 100644 index 4cc3a0d..0000000 --- a/docs/assets/posts/cheminformatics-web/rdkit-demo.png +++ /dev/null diff --git a/docs/assets/posts/cheminformatics-web/webina-demo.png b/docs/assets/posts/cheminformatics-web/webina-demo.png Binary files differdeleted file mode 100644 index 8735dfc..0000000 --- a/docs/assets/posts/cheminformatics-web/webina-demo.png +++ /dev/null diff --git a/docs/assets/posts/dosbox/hello-world.png b/docs/assets/posts/dosbox/hello-world.png Binary files differdeleted file mode 100644 index 38fde84..0000000 --- a/docs/assets/posts/dosbox/hello-world.png +++ /dev/null diff --git a/docs/assets/posts/kaggle-colab/ss1.png b/docs/assets/posts/kaggle-colab/ss1.png Binary files differdeleted file mode 100644 index 3e144b5..0000000 --- a/docs/assets/posts/kaggle-colab/ss1.png +++ /dev/null diff --git a/docs/assets/posts/kaggle-colab/ss2.png b/docs/assets/posts/kaggle-colab/ss2.png Binary files differdeleted file mode 100644 index 3a89a2d..0000000 --- a/docs/assets/posts/kaggle-colab/ss2.png +++ /dev/null diff --git a/docs/assets/posts/kaggle-colab/ss3.png b/docs/assets/posts/kaggle-colab/ss3.png Binary files differdeleted file mode 100644 index 43c7841..0000000 --- a/docs/assets/posts/kaggle-colab/ss3.png +++ /dev/null diff --git a/docs/assets/posts/kaggle-colab/ss4.png b/docs/assets/posts/kaggle-colab/ss4.png Binary files differdeleted file mode 100644 index 3e94fdc..0000000 --- a/docs/assets/posts/kaggle-colab/ss4.png +++ /dev/null diff --git a/docs/assets/posts/music-cards/basic-template.png b/docs/assets/posts/music-cards/basic-template.png Binary files differdeleted file mode 100644 index 8420ea4..0000000 --- a/docs/assets/posts/music-cards/basic-template.png +++ /dev/null diff --git a/docs/assets/posts/music-cards/failed-measure.png b/docs/assets/posts/music-cards/failed-measure.png Binary files differdeleted file mode 100644 index 44e3ef8..0000000 --- a/docs/assets/posts/music-cards/failed-measure.png +++ /dev/null diff --git a/docs/assets/posts/music-cards/mccartney-iii.png b/docs/assets/posts/music-cards/mccartney-iii.png Binary files differdeleted file mode 100644 index c81162d..0000000 --- a/docs/assets/posts/music-cards/mccartney-iii.png +++ /dev/null diff --git a/docs/assets/posts/music-cards/shortcuts-01.png b/docs/assets/posts/music-cards/shortcuts-01.png Binary files differdeleted file mode 100644 index e9b9d19..0000000 --- a/docs/assets/posts/music-cards/shortcuts-01.png +++ /dev/null diff --git a/docs/assets/posts/music-cards/shortcuts-02.png b/docs/assets/posts/music-cards/shortcuts-02.png Binary files differdeleted file mode 100644 index e8b4c1a..0000000 --- a/docs/assets/posts/music-cards/shortcuts-02.png +++ /dev/null diff --git a/docs/assets/posts/obs/.01-pewdiepie.png.icloud b/docs/assets/posts/obs/.01-pewdiepie.png.icloud Binary files differdeleted file mode 100644 index 29446fa..0000000 --- a/docs/assets/posts/obs/.01-pewdiepie.png.icloud +++ /dev/null diff --git a/docs/assets/posts/obs/.11.png.icloud b/docs/assets/posts/obs/.11.png.icloud Binary files differdeleted file mode 100644 index f6a4366..0000000 --- a/docs/assets/posts/obs/.11.png.icloud +++ /dev/null diff --git a/docs/assets/posts/obs/.3-usb.png.icloud b/docs/assets/posts/obs/.3-usb.png.icloud Binary files differdeleted file mode 100644 index 6719b05..0000000 --- a/docs/assets/posts/obs/.3-usb.png.icloud +++ /dev/null diff --git a/docs/assets/posts/obs/.5S.png.icloud b/docs/assets/posts/obs/.5S.png.icloud Binary files differdeleted file mode 100644 index e300a38..0000000 --- a/docs/assets/posts/obs/.5S.png.icloud +++ /dev/null diff --git a/docs/assets/posts/obs/.mirrorless.png.icloud b/docs/assets/posts/obs/.mirrorless.png.icloud Binary files differdeleted file mode 100644 index f51618a..0000000 --- a/docs/assets/posts/obs/.mirrorless.png.icloud +++ /dev/null diff --git a/docs/assets/posts/obs/.normal.png.icloud b/docs/assets/posts/obs/.normal.png.icloud Binary files differdeleted file mode 100644 index 807add7..0000000 --- a/docs/assets/posts/obs/.normal.png.icloud +++ /dev/null diff --git a/docs/assets/posts/obs/.usb.png.icloud b/docs/assets/posts/obs/.usb.png.icloud Binary files differdeleted file mode 100644 index e473c13..0000000 --- a/docs/assets/posts/obs/.usb.png.icloud +++ /dev/null diff --git a/docs/assets/posts/obs/01-media-source.png b/docs/assets/posts/obs/01-media-source.png Binary files differdeleted file mode 100644 index 7e38402..0000000 --- a/docs/assets/posts/obs/01-media-source.png +++ /dev/null diff --git a/docs/assets/posts/obs/01-panel.png b/docs/assets/posts/obs/01-panel.png Binary files differdeleted file mode 100644 index 5d87bbc..0000000 --- a/docs/assets/posts/obs/01-panel.png +++ /dev/null diff --git a/docs/assets/posts/obs/01-pewdiepie.png b/docs/assets/posts/obs/01-pewdiepie.png Binary files differdeleted file mode 100644 index e6db0be..0000000 --- a/docs/assets/posts/obs/01-pewdiepie.png +++ /dev/null diff --git a/docs/assets/posts/obs/02-remote.png b/docs/assets/posts/obs/02-remote.png Binary files differdeleted file mode 100644 index 0f34580..0000000 --- a/docs/assets/posts/obs/02-remote.png +++ /dev/null diff --git a/docs/assets/posts/obs/021-rotate.png b/docs/assets/posts/obs/021-rotate.png Binary files differdeleted file mode 100644 index 2c37768..0000000 --- a/docs/assets/posts/obs/021-rotate.png +++ /dev/null diff --git a/docs/assets/posts/obs/021-source.png b/docs/assets/posts/obs/021-source.png Binary files differdeleted file mode 100644 index e8728b4..0000000 --- a/docs/assets/posts/obs/021-source.png +++ /dev/null diff --git a/docs/assets/posts/obs/11.png b/docs/assets/posts/obs/11.png Binary files differdeleted file mode 100644 index 61dcf58..0000000 --- a/docs/assets/posts/obs/11.png +++ /dev/null diff --git a/docs/assets/posts/obs/3-usb.png b/docs/assets/posts/obs/3-usb.png Binary files differdeleted file mode 100644 index 474c5c2..0000000 --- a/docs/assets/posts/obs/3-usb.png +++ /dev/null diff --git a/docs/assets/posts/obs/5S.png b/docs/assets/posts/obs/5S.png Binary files differdeleted file mode 100644 index de4f5af..0000000 --- a/docs/assets/posts/obs/5S.png +++ /dev/null diff --git a/docs/assets/posts/obs/dics.css b/docs/assets/posts/obs/dics.css deleted file mode 100644 index 81ab949..0000000 --- a/docs/assets/posts/obs/dics.css +++ /dev/null @@ -1,229 +0,0 @@ -.b-dics { - width : 100%; - max-width : 100%; - position : relative; - overflow : hidden; - display : -webkit-box; - display : -ms-flexbox; - display : flex; - opacity : 0; -} - -.b-dics__section { - height : 100%; -} - -.b-dics__slider:hover :before { - color : #FFFFFF; - border-color : #FFFFFF; -} - -.b-dics__text { - position : absolute; - top : 0; - left : 50%; - padding : 5px 25px; - -webkit-transform : translateX(-50%); - -ms-transform : translateX(-50%); - transform : translateX(-50%); - background : #FFFFFF; - z-index : 11; - font-family : Arial, serif; - color : #3d3d3d; - -webkit-user-select : none; - -moz-user-select : none; - -ms-user-select : none; - user-select : none; - font-size : 13px; - text-align : center; - margin : 16px 0; - white-space : nowrap; - opacity : .7; - pointer-events : none; -} - -.b-dics__image-container { - width : 100%; - height : 100%; - display : block; - overflow : hidden; - position : relative; -} - -.b-dics__image { - height : 100%; - position : absolute; - left : 0; - top : 50%; - -webkit-transform : translateY(-50%); - -ms-transform : translateY(-50%); - transform : translateY(-50%); - -webkit-user-select : none; - -moz-user-select : none; - -ms-user-select : none; - user-select : none; - max-width : none; -} - -.b-dics__slider { - color : #FFFFFF; - position : absolute; - left : 100%; - top : 0; - cursor : pointer; - -webkit-transform : translateX(-50%); - -ms-transform : translateX(-50%); - transform : translateX(-50%); - height : 100%; - width : 3px; - padding : 0 30px; - z-index : 1; - -ms-touch-action : none; - touch-action : none; - line-height : normal; - opacity : .7; -} - -.b-dics__slider:before { - content : ''; - -webkit-mask : url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnN0MHtmaWxsOiNGRkZGRkY7ZW5hYmxlLWJhY2tncm91bmQ6bmV3ICAgIDt9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTgwLjIsMTA4LjFsNjEuNy02Mi4yYzMuOC0zLjgsOC44LTUuOSwxNC4xLTUuOWM1LjMsMCwxMC40LDIuMSwxNC4xLDUuOWw2MS43LDYyLjJjMy45LDMuOSw5LjEsNS45LDE0LjIsNS45czEwLjItMS45LDE0LjEtNS44YzcuOC03LjgsNy45LTIwLjQsMC4xLTI4LjNsLTYxLjctNjIuMkMyODcuMiw2LjMsMjcyLjEsMCwyNTYsMHMtMzEuMiw2LjMtNDIuNSwxNy44TDE1MS44LDgwYy03LjgsNy44LTcuNywyMC41LDAuMSwyOC4zQzE1OS44LDExNiwxNzIuNCwxMTUuOSwxODAuMiwxMDguMXoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzMxLjgsNDAzLjlsLTYxLjcsNjIuMmMtMy44LDMuOC04LjgsNS45LTE0LjEsNS45Yy01LjMsMC0xMC40LTIuMS0xNC4xLTUuOWwtNjEuNy02Mi4yYy03LjgtNy44LTIwLjQtNy45LTI4LjMtMC4xYy03LjgsNy44LTcuOSwyMC40LTAuMSwyOC4zbDYxLjcsNjIuMmMxMS40LDExLjQsMjYuNSwxNy44LDQyLjUsMTcuOHMzMS4yLTYuMyw0Mi41LTE3LjhsNjEuNy02Mi4yYzcuOC03LjgsNy43LTIwLjUtMC4xLTI4LjNDMzUyLjIsMzk2LDMzOS42LDM5Ni4xLDMzMS44LDQwMy45eiIvPjwvc3ZnPg==) no-repeat 100% 100%; - mask : url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTEyIDUxMjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnN0MHtmaWxsOiNGRkZGRkY7ZW5hYmxlLWJhY2tncm91bmQ6bmV3ICAgIDt9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTgwLjIsMTA4LjFsNjEuNy02Mi4yYzMuOC0zLjgsOC44LTUuOSwxNC4xLTUuOWM1LjMsMCwxMC40LDIuMSwxNC4xLDUuOWw2MS43LDYyLjJjMy45LDMuOSw5LjEsNS45LDE0LjIsNS45czEwLjItMS45LDE0LjEtNS44YzcuOC03LjgsNy45LTIwLjQsMC4xLTI4LjNsLTYxLjctNjIuMkMyODcuMiw2LjMsMjcyLjEsMCwyNTYsMHMtMzEuMiw2LjMtNDIuNSwxNy44TDE1MS44LDgwYy03LjgsNy44LTcuNywyMC41LDAuMSwyOC4zQzE1OS44LDExNiwxNzIuNCwxMTUuOSwxODAuMiwxMDguMXoiLz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNMzMxLjgsNDAzLjlsLTYxLjcsNjIuMmMtMy44LDMuOC04LjgsNS45LTE0LjEsNS45Yy01LjMsMC0xMC40LTIuMS0xNC4xLTUuOWwtNjEuNy02Mi4yYy03LjgtNy44LTIwLjQtNy45LTI4LjMtMC4xYy03LjgsNy44LTcuOSwyMC40LTAuMSwyOC4zbDYxLjcsNjIuMmMxMS40LDExLjQsMjYuNSwxNy44LDQyLjUsMTcuOHMzMS4yLTYuMyw0Mi41LTE3LjhsNjEuNy02Mi4yYzcuOC03LjgsNy43LTIwLjUtMC4xLTI4LjNDMzUyLjIsMzk2LDMzOS42LDM5Ni4xLDMzMS44LDQwMy45eiIvPjwvc3ZnPg==) no-repeat 100% 100%; - mask-size : cover; - -webkit-mask-size : cover; - width : 26px; - height : 26px; - padding : 0; - background-color : currentColor; - position : absolute; - top : 50%; - left : 50%; - -webkit-transform : translate(-50%, -50%) rotate(90deg); - -ms-transform : translate(-50%, -50%) rotate(90deg); - transform : translate(-50%, -50%) rotate(90deg); - z-index : 2; - font-size : 0; -} - -.b-dics__slider:after { - content : ''; - position : absolute; - left : 50%; - top : 0; - -webkit-transform : translateX(-50%); - -ms-transform : translateX(-50%); - transform : translateX(-50%); - height : 100%; - width : 3px; - background-color : currentColor; - z-index : 1; -} - -.b-dics__image-container:hover .b-dics__text { - opacity : 1; -} - -.b-dics__slider:hover { - opacity : 1; -} - -/* Text Position - ****************************************************************************/ - -.b-dics--tp-center .b-dics__text { - top : 50%; - -webkit-transform : translate(-50%, -50%); - -ms-transform : translate(-50%, -50%); - transform : translate(-50%, -50%); - margin : 0; -} - -.b-dics--tp-bottom .b-dics__text { - top : initial; - bottom : 0; - -webkit-transform : translate(-50%, -50%); - -ms-transform : translate(-50%, -50%); - transform : translate(-50%, -50%); -} - -.b-dics--tp-left .b-dics__text { - left : 0; - top : 50%; - -webkit-transform : translateY(-50%); - -ms-transform : translateY(-50%); - transform : translateY(-50%); - margin : 0 16px; -} - -.b-dics--tp-right .b-dics__text { - left : initial; - right : 0; - top : 50%; - -webkit-transform : translateY(-50%); - -ms-transform : translateY(-50%); - transform : translateY(-50%); - margin : 0 16px; -} - -/* Hide texts - ****************************************************************************/ - -.b-dics--hide-texts .b-dics__text { - background : #ffffff; - opacity : 0; -} - -.b-dics--hide-texts .b-dics__image-container:hover .b-dics__text { - opacity : 1; -} - -/* Vertical Sliders - ****************************************************************************/ - -.b-dics--vertical { - -webkit-box-orient : vertical; - -webkit-box-direction : normal; - -ms-flex-direction : column; - flex-direction : column; -} - -.b-dics--vertical .b-dics__section { - height : auto; - width : 100%; -} - -.b-dics--vertical .b-dics__image { - left : 50%; - -webkit-transform : translateX(-50%); - -ms-transform : translateX(-50%); - transform : translateX(-50%); - top : 0; - width : 100%; - height : auto; -} - -.b-dics--vertical .b-dics__slider { - top : 100%; - -webkit-transform : translateY(-50%); - -ms-transform : translateY(-50%); - transform : translateY(-50%); - width : 100%; - height : 3px; - padding : 30px 0; - left : 0; -} - -.b-dics--vertical .b-dics__slider:after { - top : 50%; - left : 0; - -webkit-transform : translateY(-50%); - -ms-transform : translateY(-50%); - transform : translateY(-50%); - width : 100%; - height : 3px; -} - -.b-dics--vertical .b-dics__slider:before { - -webkit-transform : translate(-50%, -50%); - -ms-transform : translate(-50%, -50%); - transform : translate(-50%, -50%); -}
\ No newline at end of file diff --git a/docs/assets/posts/obs/dics.js b/docs/assets/posts/obs/dics.js deleted file mode 100644 index b739e36..0000000 --- a/docs/assets/posts/obs/dics.js +++ /dev/null @@ -1,638 +0,0 @@ -"use strict"; - -/* - * Dics: Definitive image comparison slider. A multiple image vanilla comparison slider. - * - * By Abel Cabeza Román, a Codictados developer - * Src: https://github.com/abelcabezaroman/definitive-image-comparison-slider - * Example: http://codictados.com/portfolio/definitive-image-comparison-slider-demo/ - */ - -/** - * - */ - -/** - * - * @type {{container: null, filters: null, hideTexts: null, textPosition: string, linesOrientation: string, rotate: number, arrayBackgroundColorText: null, arrayColorText: null, linesColor: null}} - */ -var defaultOptions = { - container: null, - // **REQUIRED**: HTML container | `document.querySelector('.b-dics')` | - filters: null, - // Array of CSS string filters |`['blur(3px)', 'grayscale(1)', 'sepia(1)', 'saturate(3)']` | - hideTexts: null, - // Show text only when you hover the image container |`true`,`false`| - textPosition: 'top', - // Set the prefer text position |`'center'`,`'top'`, `'right'`, `'bottom'`, `'left'` | - linesOrientation: 'horizontal', - // Change the orientation of lines |`'horizontal'`,`'vertical'` | - rotate: 0, - // Rotate the image container (not too useful but it's a beatiful effect. String of rotate CSS rule) |`'45deg'`| - arrayBackgroundColorText: null, - // Change the bacground-color of sections texts with an array |`['#000000', '#FFFFFF']`| - arrayColorText: null, - // Change the color of texts with an array |`['#FFFFFF', '#000000']`| - linesColor: null // Change the lines and arrows color |`'rgb(0,0,0)'`| - -}; -/** - * - * @param options - * @constructor - */ - -var Dics = function Dics(options) { - this.options = utils.extend({}, [defaultOptions, options], { - clearEmpty: true - }); - this.container = this.options.container; - - if (this.container == null) { - console.error('Container element not found!'); - } else { - this._setOrientation(this.options.linesOrientation, this.container); - - this.images = this._getImages(); - this.sliders = []; - this._activeSlider = null; - - this._load(this.images[0]); - } -}; -/** - * - * @private - */ - - -Dics.prototype._load = function (firstImage) { - var _this = this; - - var maxCounter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000; - - if (firstImage.naturalWidth) { - this._buidAfterFirstImageLoad(firstImage); - } else { - if (maxCounter > 0) { - maxCounter--; - setTimeout(function () { - _this._load(firstImage, maxCounter); - }, 100); - } else { - console.error('error loading images'); - } - } -}; -/** - * - * @private - */ - - -Dics.prototype._buidAfterFirstImageLoad = function (firstImage) { - this._setContainerWidth(firstImage); - - this._build(); - - this._setEvents(); -}; -/** - * - * @private - */ - - -Dics.prototype._setContainerWidth = function (firstImage) { - this.options.container.style.height = "".concat(this._calcContainerHeight(firstImage), "px"); -}; -/** - * - * @private - */ - - -Dics.prototype._setOpacityContainerForLoading = function (opacity) { - this.options.container.style.opacity = opacity; -}; -/** - * Build HTML - * @private - */ - - -Dics.prototype._build = function () { - var dics = this; - - dics._applyGlobalClass(dics.options); - - var imagesLength = dics.images.length; - var initialImagesContainerWidth = dics.container.getBoundingClientRect()[dics.config.sizeField] / imagesLength; - - for (var i = 0; i < imagesLength; i++) { - var image = dics.images[i]; - - var section = dics._createElement('div', 'b-dics__section'); - - var imageContainer = dics._createElement('div', 'b-dics__image-container'); - - var slider = dics._createSlider(i, initialImagesContainerWidth); - - dics._createAltText(image, i, imageContainer); - - dics._applyFilter(image, i, dics.options.filters); - - dics._rotate(image, imageContainer); - - section.setAttribute('data-function', 'b-dics__section'); - section.style.flex = "0 0 ".concat(initialImagesContainerWidth, "px"); - image.classList.add('b-dics__image'); - section.appendChild(imageContainer); - imageContainer.appendChild(image); - - if (i < imagesLength - 1) { - section.appendChild(slider); - } - - dics.container.appendChild(section); - image.style[this.config.positionField] = "".concat(i * -initialImagesContainerWidth, "px"); - } - - this.sections = this._getSections(); - - this._setOpacityContainerForLoading(1); -}; -/** - * - * @returns {NodeListOf<SVGElementTagNameMap[string]> | NodeListOf<HTMLElementTagNameMap[string]> | NodeListOf<Element>} - * @private - */ - - -Dics.prototype._getImages = function () { - return this.container.querySelectorAll('img'); -}; -/** - * - * @returns {NodeListOf<SVGElementTagNameMap[string]> | NodeListOf<HTMLElementTagNameMap[string]> | NodeListOf<Element>} - * @private - */ - - -Dics.prototype._getSections = function () { - return this.container.querySelectorAll('[data-function="b-dics__section"]'); -}; -/** - * - * @param elementClass - * @param className - * @returns {HTMLElement | HTMLSelectElement | HTMLLegendElement | HTMLTableCaptionElement | HTMLTextAreaElement | HTMLModElement | HTMLHRElement | HTMLOutputElement | HTMLPreElement | HTMLEmbedElement | HTMLCanvasElement | HTMLFrameSetElement | HTMLMarqueeElement | HTMLScriptElement | HTMLInputElement | HTMLUnknownElement | HTMLMetaElement | HTMLStyleElement | HTMLObjectElement | HTMLTemplateElement | HTMLBRElement | HTMLAudioElement | HTMLIFrameElement | HTMLMapElement | HTMLTableElement | HTMLAnchorElement | HTMLMenuElement | HTMLPictureElement | HTMLParagraphElement | HTMLTableDataCellElement | HTMLTableSectionElement | HTMLQuoteElement | HTMLTableHeaderCellElement | HTMLProgressElement | HTMLLIElement | HTMLTableRowElement | HTMLFontElement | HTMLSpanElement | HTMLTableColElement | HTMLOptGroupElement | HTMLDataElement | HTMLDListElement | HTMLFieldSetElement | HTMLSourceElement | HTMLBodyElement | HTMLDirectoryElement | HTMLDivElement | HTMLUListElement | HTMLHtmlElement | HTMLAreaElement | HTMLMeterElement | HTMLAppletElement | HTMLFrameElement | HTMLOptionElement | HTMLImageElement | HTMLLinkElement | HTMLHeadingElement | HTMLSlotElement | HTMLVideoElement | HTMLBaseFontElement | HTMLTitleElement | HTMLButtonElement | HTMLHeadElement | HTMLParamElement | HTMLTrackElement | HTMLOListElement | HTMLDataListElement | HTMLLabelElement | HTMLFormElement | HTMLTimeElement | HTMLBaseElement} - * @private - */ - - -Dics.prototype._createElement = function (elementClass, className) { - var newElement = document.createElement(elementClass); - newElement.classList.add(className); - return newElement; -}; -/** - * Set need DOM events - * @private - */ - - -Dics.prototype._setEvents = function () { - var dics = this; - - dics._disableImageDrag(); - - dics._isGoingRight = null; - var oldx = 0; - - var listener = function listener(event) { - var xPageCoord = event.pageX ? event.pageX : event.touches[0].pageX; - - if (xPageCoord < oldx) { - dics._isGoingRight = false; - } else if (xPageCoord > oldx) { - dics._isGoingRight = true; - } - - oldx = xPageCoord; - - var position = dics._calcPosition(event); - - var beforeSectionsWidth = dics._beforeSectionsWidth(dics.sections, dics.images, dics._activeSlider); - - var calcMovePixels = position - beforeSectionsWidth; - dics.sliders[dics._activeSlider].style[dics.config.positionField] = "".concat(position, "px"); - - dics._pushSections(calcMovePixels, position); - }; - - dics.container.addEventListener('click', listener); - - var _loop = function _loop(i) { - var slider = dics.sliders[i]; - utils.setMultiEvents(slider, ['mousedown', 'touchstart'], function (event) { - dics._activeSlider = i; - dics._clickPosition = dics._calcPosition(event); - slider.classList.add('b-dics__slider--active'); - utils.setMultiEvents(dics.container, ['mousemove', 'touchmove'], listener); - }); - }; - - for (var i = 0; i < dics.sliders.length; i++) { - _loop(i); - } - - var listener2 = function listener2() { - var activeElements = dics.container.querySelectorAll('.b-dics__slider--active'); - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = activeElements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var activeElement = _step.value; - activeElement.classList.remove('b-dics__slider--active'); - utils.removeMultiEvents(dics.container, ['mousemove', 'touchmove'], listener); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return != null) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }; - - utils.setMultiEvents(document.body, ['mouseup', 'touchend'], listener2); -}; -/** - * - * @param sections - * @param images - * @param activeSlider - * @returns {number} - * @private - */ - - -Dics.prototype._beforeSectionsWidth = function (sections, images, activeSlider) { - var width = 0; - - for (var i = 0; i < sections.length; i++) { - var section = sections[i]; - - if (i !== activeSlider) { - width += section.getBoundingClientRect()[this.config.sizeField]; - } else { - return width; - } - } -}; -/** - * - * @returns {number} - * @private - */ - - -Dics.prototype._calcContainerHeight = function (firstImage) { - var imgHeight = firstImage.naturalHeight; - var imgWidth = firstImage.naturalWidth; - var containerWidth = this.options.container.getBoundingClientRect().width; - return containerWidth / imgWidth * imgHeight; -}; -/** - * - * @param sections - * @param images - * @private - */ - - -Dics.prototype._setLeftToImages = function (sections, images) { - var size = 0; - - for (var i = 0; i < images.length; i++) { - var image = images[i]; - image.style[this.config.positionField] = "-".concat(size, "px"); - size += sections[i].getBoundingClientRect()[this.config.sizeField]; - this.sliders[i].style[this.config.positionField] = "".concat(size, "px"); - } -}; -/** - * - * @private - */ - - -Dics.prototype._disableImageDrag = function () { - for (var i = 0; i < this.images.length; i++) { - this.sliders[i].addEventListener('dragstart', function (e) { - e.preventDefault(); - }); - this.images[i].addEventListener('dragstart', function (e) { - e.preventDefault(); - }); - } -}; -/** - * - * @param image - * @param index - * @param filters - * @private - */ - - -Dics.prototype._applyFilter = function (image, index, filters) { - if (filters) { - image.style.filter = filters[index]; - } -}; -/** - * - * @param options - * @private - */ - - -Dics.prototype._applyGlobalClass = function (options) { - var container = options.container; - - if (options.hideTexts) { - container.classList.add('b-dics--hide-texts'); - } - - if (options.linesOrientation === 'vertical') { - container.classList.add('b-dics--vertical'); - } - - if (options.textPosition === 'center') { - container.classList.add('b-dics--tp-center'); - } else if (options.textPosition === 'bottom') { - container.classList.add('b-dics--tp-bottom'); - } else if (options.textPosition === 'left') { - container.classList.add('b-dics--tp-left'); - } else if (options.textPosition === 'right') { - container.classList.add('b-dics--tp-right'); - } -}; - -Dics.prototype._createSlider = function (i, initialImagesContainerWidth) { - var slider = this._createElement('div', 'b-dics__slider'); - - if (this.options.linesColor) { - slider.style.color = this.options.linesColor; - } - - slider.style[this.config.positionField] = "".concat(initialImagesContainerWidth * (i + 1), "px"); - this.sliders.push(slider); - return slider; -}; -/** - * - * @param image - * @param i - * @param imageContainer - * @private - */ - - -Dics.prototype._createAltText = function (image, i, imageContainer) { - var textContent = image.getAttribute('alt'); - - if (textContent) { - var text = this._createElement('p', 'b-dics__text'); - - if (this.options.arrayBackgroundColorText) { - text.style.backgroundColor = this.options.arrayBackgroundColorText[i]; - } - - if (this.options.arrayColorText) { - text.style.color = this.options.arrayColorText[i]; - } - - text.appendChild(document.createTextNode(textContent)); - imageContainer.appendChild(text); - } -}; -/** - * - * @param image - * @param imageContainer - * @private - */ - - -Dics.prototype._rotate = function (image, imageContainer) { - image.style.rotate = "-".concat(this.options.rotate); - imageContainer.style.rotate = this.options.rotate; -}; -/** - * - * @private - */ - - -Dics.prototype._removeActiveElements = function () { - var activeElements = Dics.container.querySelectorAll('.b-dics__slider--active'); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = activeElements[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var activeElement = _step2.value; - activeElement.classList.remove('b-dics__slider--active'); - utils.removeMultiEvents(Dics.container, ['mousemove', 'touchmove'], Dics.prototype._removeActiveElements); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return != null) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } -}; -/** - * - * @param linesOrientation - * @private - */ - - -Dics.prototype._setOrientation = function (linesOrientation) { - this.config = {}; - - if (linesOrientation === 'vertical') { - this.config.offsetSizeField = 'offsetHeight'; - this.config.offsetPositionField = 'offsetTop'; - this.config.sizeField = 'height'; - this.config.positionField = 'top'; - this.config.clientField = 'clientY'; - this.config.pageField = 'pageY'; - } else { - this.config.offsetSizeField = 'offsetWidth'; - this.config.offsetPositionField = 'offsetLeft'; - this.config.sizeField = 'width'; - this.config.positionField = 'left'; - this.config.clientField = 'clientX'; - this.config.pageField = 'pageX'; - } -}; -/** - * - * @param event - * @returns {number} - * @private - */ - - -Dics.prototype._calcPosition = function (event) { - var containerCoords = this.container.getBoundingClientRect(); - var pixel = !isNaN(event[this.config.clientField]) ? event[this.config.clientField] : event.touches[0][this.config.clientField]; - return containerCoords[this.config.positionField] < pixel ? pixel - containerCoords[this.config.positionField] : 0; -}; -/** - * - * @private - */ - - -Dics.prototype._pushSections = function (calcMovePixels, position) { - // if (this._rePosUnderActualSections(position)) { - this._setFlex(position, this._isGoingRight); - - var section = this.sections[this._activeSlider]; - var postActualSection = this.sections[this._activeSlider + 1]; - - var sectionWidth = postActualSection.getBoundingClientRect()[this.config.sizeField] - (calcMovePixels - this.sections[this._activeSlider].getBoundingClientRect()[this.config.sizeField]); - - section.style.flex = this._isGoingRight === true ? "2 0 ".concat(calcMovePixels, "px") : "1 1 ".concat(calcMovePixels, "px"); - postActualSection.style.flex = this._isGoingRight === true ? " ".concat(sectionWidth, "px") : "2 0 ".concat(sectionWidth, "px"); - - this._setLeftToImages(this.sections, this.images); // } - -}; -/** - * - * @private - */ - - -Dics.prototype._setFlex = function (position, isGoingRight) { - var beforeSumSectionsSize = 0; - - for (var i = 0; i < this.sections.length; i++) { - var section = this.sections[i]; - var sectionSize = section.getBoundingClientRect()[this.config.sizeField]; - beforeSumSectionsSize += sectionSize; - - if (isGoingRight && position > beforeSumSectionsSize - sectionSize && i > this._activeSlider || !isGoingRight && position < beforeSumSectionsSize && i < this._activeSlider) { - section.style.flex = "1 100 ".concat(sectionSize, "px"); - } else { - section.style.flex = "0 0 ".concat(sectionSize, "px"); - } - } -}; -/** - * - * @type {{extend: (function(*=, *, *): *), setMultiEvents: setMultiEvents, removeMultiEvents: removeMultiEvents, getConstructor: (function(*=): string)}} - */ - - -var utils = { - /** - * Native extend object - * @param target - * @param objects - * @param options - * @returns {*} - */ - extend: function extend(target, objects, options) { - for (var object in objects) { - if (objects.hasOwnProperty(object)) { - recursiveMerge(target, objects[object]); - } - } - - function recursiveMerge(target, object) { - for (var property in object) { - if (object.hasOwnProperty(property)) { - var current = object[property]; - - if (utils.getConstructor(current) === 'Object') { - if (!target[property]) { - target[property] = {}; - } - - recursiveMerge(target[property], current); - } else { - // clearEmpty - if (options.clearEmpty) { - if (current == null) { - continue; - } - } - - target[property] = current; - } - } - } - } - - return target; - }, - - /** - * Set Multi addEventListener - * @param element - * @param events - * @param func - */ - setMultiEvents: function setMultiEvents(element, events, func) { - for (var i = 0; i < events.length; i++) { - element.addEventListener(events[i], func); - } - }, - - /** - * - * @param element - * @param events - * @param func - */ - removeMultiEvents: function removeMultiEvents(element, events, func) { - for (var i = 0; i < events.length; i++) { - element.removeEventListener(events[i], func, false); - } - }, - - /** - * Get object constructor - * @param object - * @returns {string} - */ - getConstructor: function getConstructor(object) { - return Object.prototype.toString.call(object).slice(8, -1); - } -};
\ No newline at end of file diff --git a/docs/assets/posts/obs/mirrorless.png b/docs/assets/posts/obs/mirrorless.png Binary files differdeleted file mode 100644 index 67f6b49..0000000 --- a/docs/assets/posts/obs/mirrorless.png +++ /dev/null diff --git a/docs/assets/posts/obs/normal.png b/docs/assets/posts/obs/normal.png Binary files differdeleted file mode 100644 index a85aaf3..0000000 --- a/docs/assets/posts/obs/normal.png +++ /dev/null diff --git a/docs/assets/posts/obs/usb.png b/docs/assets/posts/obs/usb.png Binary files differdeleted file mode 100644 index c08a805..0000000 --- a/docs/assets/posts/obs/usb.png +++ /dev/null diff --git a/docs/assets/posts/open-babel/s1.png b/docs/assets/posts/open-babel/s1.png Binary files differdeleted file mode 100644 index 5fdbf42..0000000 --- a/docs/assets/posts/open-babel/s1.png +++ /dev/null diff --git a/docs/assets/posts/open-babel/s2.jpg b/docs/assets/posts/open-babel/s2.jpg Binary files differdeleted file mode 100644 index 1277edb..0000000 --- a/docs/assets/posts/open-babel/s2.jpg +++ /dev/null diff --git a/docs/assets/posts/open-babel/s3.jpg b/docs/assets/posts/open-babel/s3.jpg Binary files differdeleted file mode 100644 index f7aa88b..0000000 --- a/docs/assets/posts/open-babel/s3.jpg +++ /dev/null diff --git a/docs/assets/posts/open-peeps/ex-1.svg b/docs/assets/posts/open-peeps/ex-1.svg deleted file mode 100644 index 9ed427f..0000000 --- a/docs/assets/posts/open-peeps/ex-1.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 299.18 804.02"><defs><style>.cls-1{fill:#fff}.cls-1,.cls-2{fill-rule:evenodd}</style></defs><title>Asset 1</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M295.4,792.78c.65-2.62-.41-6-1-9.43-.94-5.3-3.18-13-7.44-15.38-.76-2-21.71-18-32.64-26C248.68,737.8,244.08,730,243,730.09c-2.17-5.32-2.45-10.58-3.78-16.74,4.94-.65,13.38.52,17.27-2.29.7,0,.69-7.58.79-8.65-2.93-7.95-10.14-202.32-2.93-294.9.76-10.31,2.75-21.84.78-32.47,3.22-.71,5.15-4,5.16-4.17,7.69-15.1-4.11-66.45-11.5-80.67,5.87-.15,13.6-.95,17.24-5.85a6,6,0,0,0,3.64-3.14,50.63,50.63,0,0,0,2.66-4.72c3.91-8.13,6.33-17.16,5-26.11.25-.08,1.53-.09,1.6-.45a16.86,16.86,0,0,0-.94-6.22c-6.72-23.42-14.81-46.48-25.5-68.54-5.36-11.8-16.45-16.11-27.93-20.54-5.53-2.17-11.05-4.67-16.82-6.09-.07-.41.27-1.64-.48-1.54-.94.2-.75,1.7-1.1,2.54C192.8,138.63,201.25,133,193.21,127c-8.32-4.32-13.25-4.49-22.42-3.56-3.38.1-6.09,1.63-6.89,5-2.91,7-9.73,12.24-17.16,13.83-.62-1.09-2.3-4.23-3.25-3.24-10.74.37-31.49,8.85-41.54,11.8-10.09,2.58-10,5.32-12.61,16.29-4.79,19.54-3.89,92.92,8.61,108.38q6.8,4.54,10.21,5.66c-.07,7.23,1.14,18,0,25.07-2.55,12.82-5.66,25.7-8.51,38.59,0,1.43-11.39,22.72-6.05,18.78,1.1.54,3,2.82,4.22,3.32-5.67,12.92-4.63,28.77-4.22,44.73.1,9.5-2.12,19.92-4.26,29.65C73.57,523.8,62.88,617.42,57,700c-.24,3.39-.39,6-.51,8.37-.11.83,1,.81,1.41.39l.57-.55,2.3.63a50.33,50.33,0,0,1-.52,8c-.3,2.35-4.13,12.65-3.25,14.95-2.92-.16-8.4,4.63-11,9.82-1.34,1.2-5.63,3.17-6.61,5q-2,1.92-15.82,9.94c-5.09,4.07-21.47,20.25-20.14,23.53l-.2,1.37c-2.81,16.36,1.87,15.67,17,18.08,22.12,3.9,43.05-7.94,61.75-18,6.21-4.19,12.26-3.08,11.59-8.14-1.23-6.25-1.45-28.62-8.54-28.11,1.16-1.28.87-13,0-15.22-.56-5.65,4.56-10.92,4.28-16.74,3,.22,9,1.61,10.31-1.7-.05-.33-1.46-.33-1.7-.41l0-.18-.16,0c12.37-43.6,42.5-243.81,75.21-259.18.2,1.64,3.8-.31,6,0,10.12,78.95,21.71,153.37,27.89,237.82.62,2.5,2,20,2.65,22.87a9.54,9.54,0,0,0,3,1.88c.34,8.91-.8,27.5-.84,27.52l-.6,1.44c-3.44,7.78-6,18.18-1.57,25.79-3.29-.24-4.73,2.57-4.88,5.49-1.94,12.79,49.39,24.15,61.31,24.88C269.9,800.21,297.82,795.23,295.4,792.78Z" class="cls-1"/><path d="M290.71,793.83c-6.48,1.49-12.79,3.94-19.18,5.39-20.81-1.53-41.24-8.54-59.49-17.18-5.29-2.31-8.39-6.42-6-11.7,7.74,9.57,36.41,16.23,49.53,20.36,8.16,1.79,17.42,5.83,25.66,2.06,5.23-.9,11.17-3.4,13.18-8.1a38.73,38.73,0,0,1-.24,6c.2,2.45-1,2.79-3.43,3.18Zm-77.28-80.65a.51.51,0,0,0-.92,0c-.4,0-.82-.08-1.24-.09a15.45,15.45,0,0,0,.46-7c-.45-6.49-1-13-1.51-19.46-5.65-62.11-12.16-124.4-23.26-185.83a.44.44,0,0,0,.19-.43c-.55-4.35-1.73-8.59-2.55-12.9s-1.53-8.72-2.29-13.07c-.23-1.3-.46-2.61-.7-3.91.17-3.16-.59-6.48-1-9.54a53.21,53.21,0,0,0-1.26-6.5,2,2,0,0,0-.46-2.12l0,0a3.93,3.93,0,0,1,.14-.41c.4-1,1.27-1.43,1.89-2.13a16.09,16.09,0,0,1,5.45-.13c.27.05.47-.32.19-.47-7.27-4.25-16.33-.15-21.7,5.4-16.49,23.44-22.45,53.2-31.57,80.1C116.78,593.1,105.2,652.94,92,712.17c-10.48-.49-20.94-2-31.45-1.76a4.46,4.46,0,0,0-1.88-2.22A2399.1,2399.1,0,0,1,93.06,439c1.86-23.31-1-47.07,5.87-69.86C148,388.41,202.84,391.29,254.3,380.9c-9.62,109.13-14.71,219.4-1.49,328.51a52.68,52.68,0,0,1-13.25,2.91,169,169,0,0,1-26.13.86ZM82.9,738.9a2.41,2.41,0,0,0,1.68,3.51c-4.87,1.29-5.78,6.47-9.62,8.83-.36-.68-1.37-.79-2-1-2.06-7.63-4.42-16.6-14-19.41a3.76,3.76,0,0,0,.49-2.63c.72-3.63,3.29-11.73,1.7-15.9,8.83,2,17.89,2.84,26.84,4.14-1.82,6.63-3.36,16.63-5,22.45ZM89,771.17l.87-.25c1.4,6.18-8.14,8.2-12.85,10.39q-10.65,4.41-21.26,8.87c-14.32,7.18-27.76,9.2-43.68,4.08-10.13-1.94-8.2-3.87-9.69-11.69,10.16,13.66,31,7.8,43.88,1.89C58.05,780,69.87,775.65,82,771.87c2.43.61,4.74,0,7-.7ZM192.16,271.81c-6.12,1.66-12.32,2.51-18.54,3.74.54-4,1.34-8,1.35-12a102.6,102.6,0,0,0,17.19,8.28Zm-57.71-40.37a66.75,66.75,0,0,1,39.26,3.44c4.24,1.41,10,5.09,14.37,3.39-3.27,10.36.85,21,5.1,30.47-9.76-3.25-18.36-9-27.25-14,3.33-4.38-26.94-9.69-30.23-9.58-.93-4.53-2-9-3-13.55a3.6,3.6,0,0,0,1.77-.17Zm67.54,4.9a.34.34,0,0,1,.14.21c12.79,1.77,25.64,7.59,38.77,5.9,8.88-1.14,4.79,3.93-1.12,3.74-13.33,1.34-25.7-6.55-38.1-9.23Zm7-85.67-.09.42a1.33,1.33,0,0,1-.4-.05l-.25-.25a2.66,2.66,0,0,1,.74-.12Zm90.16,640.55a12.48,12.48,0,0,0-4.13-8.28c1.55-6.35-1.56-14.45-8.19-17.18-1.8-3-5.72-4.26-8.55-6.36,2.38-.15,4.55-1.84,2.73-3.66a107.51,107.51,0,0,0-11.25,4.33c-1,.21-3.35,2.17-3.53.42.69-1.39,6.07-2.8,7.83-3.77l-3.9-2.48c2.3,0,5.26-1.78,3-3.74-6.08,1.35-12.4,2.54-17.76,5.62-4.42-1.1,8.45-5,9.64-5.22a70.4,70.4,0,0,1-5.81-4.36c2,0,6.21-2.06,3.52-3.87-3.38-.87-8.07,1.92-11.42,2.81h0c-2.53.93-5,1.95-7.52,3-1,.42-1.42-1-.43-1.38,3.85-1.62,7.75-3.16,11.74-4.48C254,741.43,253,740.19,252,739c.27-1.94-1.73-3.65-2.47-5.4.16-.9-.29-2.31-1.36-2.49a3.75,3.75,0,0,0-3.3-.69,46.33,46.33,0,0,1-4.09-13.67c5-.66,10.72-.69,15-3.42a2.66,2.66,0,0,0,2.58-2.55,147.12,147.12,0,0,0-.91-16.52q-.75-8.28-1.39-16.55c-7.32-88.5-6-177.46,1-265.94.74-10.37,1.11-21-.61-31.28,2.14-.66,10.13-2,9.52-4.93,6.93-17.67-3.33-62.91-10.87-80.69,5.61-.32,12.35-1.53,16-6.16,3.55-1.25,4.79-5.41,6.56-8.41,3.81-8,6.28-17,5.31-25.89,3.93-1-.94-11.84-1.37-14.74-6.52-21.51-14-42.89-23.77-63.14A33.83,33.83,0,0,0,240.69,160c-9-3.93-18.06-8-27.48-10.87a1.85,1.85,0,0,0-2.76-1.65l-.23-.07a4.51,4.51,0,0,0-3.84,1.14c-3-4.47-3.84-10.13-5-15.39-4.54,4.76-.35,20.66,6.73,22-4.61,33.23-43.24,25.35-55,1.13-2.55-4.68-4.27-9.28-6.81-14a15.47,15.47,0,0,0,17.51-9.59,5.51,5.51,0,0,1,2-2.49c1.24-.88.92-3.11-.82-3.06-6.9,1.55-2.37,12.53-19.14,14.45a7.25,7.25,0,0,0-2.08-2.28,1.68,1.68,0,0,0-1.87,0c-12.61.76-24.92,3.95-37,7.38-10.4,2.56-21.3,8.11-23.87,19.42C76.14,184,84,273.41,97.57,284.47a21.64,21.64,0,0,0,7.82,4.7c-2.78,19.87-7.12,39.63-10.81,59.38-.27,3.41-6.19,22.31,1.32,19.2l.62.29c-.45.9-.87,1.82-1.27,2.74a35.73,35.73,0,0,0-2.8,9.2,100.45,100.45,0,0,0-.74,10.1c0,1.26-.1,2.49-.11,3.72-1.45,11.84-1.42,23.94-1.54,35.84-6.56,45-16,89.65-21.33,134.88C62.22,612.84,57.06,661.36,54.06,710c-.1,2.23,2.48,2.68,3.74,1.44l.54.15a47.76,47.76,0,0,1-.39,5.85c-.43,2.82-3.66,9.93-2.85,12.5-2.94-.41-7.69.19-8.54,2.6-3.38,4.3-3.16,10.15-7.16,14,3.85.85,7.68,2,11.42,3.16.77.42.3,1.55-.68,1.26-2.07-.62-4.15-1.26-6.24-1.84h0c-2-.57-4.06-1.07-6.12-1.45-.07,0,0,.18,0,.23A42.29,42.29,0,0,1,33,751.06c1.08.23,15.45,4.08,11.15,5.28a67.3,67.3,0,0,0-13-4.23c-1.95,1.1-3.86,2.25-5.79,3.39.93.19,16.42,3.55,11,4.53a98.17,98.17,0,0,0-12.82-3.48c-5.33,3.17-10.67,6.32-15.93,9.58-2.2,1.36-4.6,2.66-6,4.7A9.46,9.46,0,0,0,1,780c-3.76,16.21,2.88,16.83,18.37,20.24,22,5.62,41-7.86,60.08-15.18,4-1.87,8.39-3.27,12-5.73C94.82,777,97,771.9,94,768.44c2.14-4-.71-13.77-1.39-18.45-.57-3-1-7.71-5.33-7.86,1.17-.76,1.14-2.19.75-3.34-.52-5.66,1.24-15.72,1.67-22.12,3.35.24,8.32,1.22,10.06-2.49a1.6,1.6,0,0,0-1.3-2.37h0c.24,0,.17,0,0,0,17.76-73.31,29.21-148.42,54.85-219.6,5.86-13.75,8.48-31.49,21.59-40.36a6.54,6.54,0,0,0,1.06,3.18l.12.43c.46,1.79,1,3.56,1.43,5.35,10.25,78.93,22.1,157.7,27.79,237.16.86,3.68-.54,16.78,4.61,16.19a8.8,8.8,0,0,0,2.16.7c-1.06,4.73-.76,11.86-.73,16.16s-.79,8.76-.31,13c.55,2.8,5.79,1.12,4.94-1.7a203.41,203.41,0,0,0-2-27,103.6,103.6,0,0,0,24.43,1.57c-.43,4.73,1,10.65,2.6,14.53a38.65,38.65,0,0,0-13.42,7.19c-3.58,3.26-6.87,10.72-13.19,8.25-1.75-.78-3.67-2.13-4.27-3.87-.59-.43-.28.62-.17.87l-.24.08c-1.45-.93-4.12,8.68-4.34,9.88-1.12,5.15-2.41,11,.23,15.82-5.67,2.35-5.06,10-.85,13.23,16.7,10.82,44.56,19.65,65.3,21.13,3.67.25,7.53-.82,11-2,4.1-1.09,8.22-2.27,12.27-3.55,3.58-.82,6.26-3.89,5.82-7.23Z" class="cls-2"/><path d="M189.54,6.08c17,0,34.67,13.21,40.92,21.64,5.25,7.09,8.08,39.14,8.08,60.8,0,4.53,2.5,13.07,1.77,17.4-2.67,15.88-14.32,29.2-37.37,29.2s-39.58-9.14-56.72-33.67c-8.31,0-12.34-6.38-12.4-16.44q-.06-10.07,8-13.72-2.88-39.71,4.37-50C153.48,10.91,172.5,6.08,189.54,6.08Z" class="cls-1"/><path d="M182.37.47c10.76-1.09,21.3-.18,31.91,1.72a1.74,1.74,0,0,1,1.44,1.31c5,.23,10,.6,15,.87a2.36,2.36,0,0,1,2,3.51c-.16.32-.33.63-.51.94l.22-.07a5.89,5.89,0,0,1,4.59,0,4.6,4.6,0,0,1,2.18,5.1,8.35,8.35,0,0,1-.49,1.46,6.32,6.32,0,0,1,1.23,0,4.39,4.39,0,0,1,3.9,4.18c.17,3.34-2,6.74-4.53,9.14a4.27,4.27,0,0,1,.36,2.56,4.94,4.94,0,0,1-3.16,3.57,16.34,16.34,0,0,1,.76,6.31,1.73,1.73,0,0,1-1.36,1.46A99.23,99.23,0,0,1,240.56,64a131.45,131.45,0,0,1,1,15.36q0,3.48-.12,7l0,.87a58.79,58.79,0,0,1-.57,7.61,21.44,21.44,0,0,1,2.41,8.79,27,27,0,0,1-1.33,10.82c-4.32,13-17.34,21.26-30.43,23.39-12.11,2-26.13-.68-33.2-11.68-.11-.18.12-.32.26-.21,5.06,4.12,10.94,6,17.32,6.85,11,1.55,23.44-1.07,32.29-8a25.18,25.18,0,0,0,8.67-13.4,23.84,23.84,0,0,0,.65-8.2c-.28-2.79-1.51-5.16-2.29-7.8a2.37,2.37,0,0,1,.56-2.3c.15-2.14.51-4.29.65-6.42.16-2.42.25-4.85.28-7.27.06-5-.15-10.07-.57-15.08-.77-9.18-2.83-18.13-4-27.22a1.48,1.48,0,0,1-1.75.21l-.07,0-.37-.2h-.07a19.27,19.27,0,0,1-7.5-.85,22,22,0,0,1-6.93-3.58,31.78,31.78,0,0,0-.57,6.08,1.64,1.64,0,0,1-2.43,1.4,102.05,102.05,0,0,1-13.63-8.34c-.51,2.58-1,5.16-1.52,7.75a1.56,1.56,0,0,1-2.28.93,29,29,0,0,1-8.3-7.28c-.46.87-.91,1.74-1.37,2.6l-.69,1.3c-.68,1.28-1.59,2.69-3.09,3.1a2.87,2.87,0,0,1-3.42-2c-.17-.45-.32-.9-.45-1.36A80.75,80.75,0,0,1,173,45.66a117.85,117.85,0,0,1-8.75,12.05c-.94,1.19-2.54.06-2.67-1.1-.08-.68-.14-1.37-.2-2-1.79,3.63-3.67,7.22-5.71,10.7l.29,1.15h0c.85,3.38,1.55,6.79,2.31,10.2.24,1.09-.34,2.66-1.62,2.85-1.54.23-3,1-4.56.47s-2-2.07-2.85-3.47a6.39,6.39,0,0,0-.55-.78l-.06.07h0c-.12.16-.42,0-.35-.21l.09-.22h0a29.39,29.39,0,0,0-2.29-2,8.19,8.19,0,0,0-5.11.77c-2.85,1.68-4.15,5.14-4.18,8.33a21.9,21.9,0,0,0,3.07,11.1,7.73,7.73,0,0,0,3.59,3.29c1.55.62,3.22.43,4.79,1a1.79,1.79,0,0,1,1.05,2.59,2.43,2.43,0,0,1-.14.2l.47.62c.32.43.66.89,1,1.37.8.92,1.64,1.81,2.45,2.71,1.5,1.66,3,3.38,4.44,5.07s2.88,3.09,4.4,4.56,3.23,2.57,4.55,4.06,1.63,4-.48,4.83c-2.34.93-4.41-1.25-6-2.71l-.07-.06a43.91,43.91,0,0,1-7.56-9,6.46,6.46,0,0,1-7,.13,6.14,6.14,0,0,1-2.3-3.31,4.38,4.38,0,0,1-1.12.13c-.19.11-.38.22-.58.32a2.81,2.81,0,0,1-4.08-1.25c-.64-1.53,0-3.26.59-4.74l.11-.3c.33-.84.69-1.76,1.13-2.62a14.17,14.17,0,0,1-3.19-3.4,25.24,25.24,0,0,1-3.84-16.18,14,14,0,0,1,4.35-8.64l-.09-.24h0a35.24,35.24,0,0,1-1.72-5.33,56.13,56.13,0,0,1-.91-6.59,63,63,0,0,1,.26-14,55.26,55.26,0,0,1,8.93-24.45c-1.42-1.7-2.54-3.69-2-6a4.48,4.48,0,0,1,1.8-2.65,15.74,15.74,0,0,1,1.62-.66l.15-.09c.22-.13.05-.12-.08-.72C143.87,9,144.31,6.7,147,5.9c2.5-.75,4.86.85,6.34,2.76,3.87-2.75,9-4.19,13.46-5.41A97.13,97.13,0,0,1,182.37.47Zm-41.83,81a3,3,0,0,1,3.68-2.85,7.53,7.53,0,0,1,3.23,1.7l.47.38a11.48,11.48,0,0,1,3.22,3.22c1,1.93-1.14,4.52-3.17,3.17a12.53,12.53,0,0,1-3.19-3.81l-.1-.14a7.84,7.84,0,0,0-1.34-1.78l-.12-.11a1.62,1.62,0,0,0-.63-.37,1.35,1.35,0,0,0-1.53.6l0,.06A.26.26,0,0,1,140.54,81.42Z" class="cls-2"/><path d="M192,87.77c5-.61,9.84.92,14.72,1.69a67.61,67.61,0,0,0,7.76.82c.53,0,1.05,0,1.58,0a1.39,1.39,0,0,1,.87-1.14,6.7,6.7,0,0,1,3.32-.7,23.33,23.33,0,0,1,3.45.37,10.79,10.79,0,0,1,5.65,2.73c3.5,3.45,3,9,.26,12.76-5.57,7.77-15.76,8.13-24.48,8h-.8c-7.94-.11-19.3,1.07-22.91-8A12.7,12.7,0,0,1,181.88,94C183.81,90.24,187.89,88.26,192,87.77Zm24.81,12.94h-.08q-5.49.21-11,.3c.11.94.22,1.89.35,2.82.1.74.21,1.48.32,2.22a4.2,4.2,0,0,1,.17,1.1l0,.12h0a1.18,1.18,0,0,1,.49.43,1.28,1.28,0,0,1,.11.2,48.52,48.52,0,0,0,8.8-.55v-.06h0a1.16,1.16,0,0,1,.41-.79c.2-1.18.18-2.44.26-3.61C216.67,102.16,216.72,101.43,216.78,100.71Zm-13.86.35c-2.64,0-5.27.08-7.91,0l-1.2,0h0c.25,1.36.53,2.71.76,4.08a2,2,0,0,1-2.1,2.29l.36.06a72.84,72.84,0,0,0,10.35.34,22.29,22.29,0,0,1-.14-3.19v-.14C203,103.37,202.94,102.22,202.92,101.06ZM185,100.81a7.77,7.77,0,0,0,.54,2c1.12,2.72,3.71,4,6.44,4.52a1.42,1.42,0,0,1-.95-1.23,39.16,39.16,0,0,1-.33-5.08C188.8,101,186.88,101,185,100.81Zm41.7-.58a23.53,23.53,0,0,1-4.26.24c-1.24.06-2.49.1-3.74.15l.18,2.56a29.15,29.15,0,0,0,.3,3.35,13.28,13.28,0,0,0,6.44-4.42A8.23,8.23,0,0,0,226.7,100.23Zm-35.3-8A8.28,8.28,0,0,0,185.86,96a7.86,7.86,0,0,0-.92,4.11c1.91-.22,3.85-.31,5.78-.38,0-.34,0-.69,0-1l0-.88A21,21,0,0,1,191.4,92.22Zm11.68.21-1-.11a47,47,0,0,0-8.28-.46c-.4,0-.8.08-1.21.13a36.74,36.74,0,0,1,.65,5.57c.08.68.18,1.35.29,2l.48,0h0c3-.16,5.92-.26,8.89-.38,0-.55,0-1.11,0-1.67v-.56A38.25,38.25,0,0,1,203.08,92.43Zm13.86-.22a55.91,55.91,0,0,1-8.72.56c-1.13,0-2.27-.06-3.4-.16.08.6.11,1.21.17,1.8.11,1.21.24,2.41.38,3.6l.12,1h0c3.64-.16,7.29-.34,10.93-.53l.51,0h0l.14-2c.1-1.34.21-2.69.36-4l-.11,0h0A1.76,1.76,0,0,1,216.94,92.21Zm1.25.5c.16,1.9.25,3.8.37,5.71l2.4-.13,1.2-.07c1.55-.09,3.55-.56,5.09-.12a4,4,0,0,0-1.55-3.7C223.49,92.75,220.67,93.34,218.19,92.71Zm-8.2-17c3.57-2,12.54-4.14,13.11,2.29.26,3-1.94,5.41-4.51,6.51l-.09,0c-2.42,1-6.69,2.11-8.77,0-1.74-1.79.56-5,2.72-3.53,1.11.75,3.44.2,4.68-.16l.08,0c1.33-.4,3.11-1.65,2.56-3.3-.49-1.45-2.57-1.72-3.87-1.76a50.74,50.74,0,0,0-5.76.53A.3.3,0,0,1,210,75.72ZM224.8,65.37c4.85-.23,7.87,5.07,6.75,9.41a1.9,1.9,0,0,1-1.84,1.4l-.2,0a1.54,1.54,0,0,1-.31,0,1.94,1.94,0,0,1-1.4-1.84l0-.24c.11-2-.11-4.41-2.55-4.91-2.06-.42-3.22,1.57-3.24,3.4a.44.44,0,0,1-.66.38,3.44,3.44,0,0,1-1.18-4.27A5,5,0,0,1,224.8,65.37Zm-36,1.14a7.75,7.75,0,0,1,9,3.82A1.35,1.35,0,0,1,199,71.68a3.74,3.74,0,0,1-1,2.43,2.2,2.2,0,0,1-3.63-.9l0-.06a3.61,3.61,0,0,0-4.56-2.52c-2.25.78-2.19,3.16-3.77,4.55a.54.54,0,0,1-.63.08c-1.68-.81-1.38-3.25-.78-4.65A7.35,7.35,0,0,1,188.8,66.51ZM184,55.79c2.86-2.92,10.32-5.75,12.28-.36a2.16,2.16,0,0,1-1.49,2.63c-1.75.35-3.31-.41-5.05-.28a7.56,7.56,0,0,0-4,1.46c-3.12,2.41-3.8,6.5-6,9.57a.18.18,0,0,1-.33-.09A17,17,0,0,1,184,55.79Zm37.31-2.88a9.53,9.53,0,0,1,5.95,0,11.42,11.42,0,0,1,5.05,3.22A13.1,13.1,0,0,1,234,58.33c.24.42.49,1.29.77,1.81a2.68,2.68,0,0,1,.8,4.23l-.06.06-.18.18a2.91,2.91,0,0,1-2.79.74c-2.2-.64-2.47-2.37-3.23-4.21a7.56,7.56,0,0,0-2.4-3.08,11.6,11.6,0,0,0-9.49-1.58c-.16.05-.34-.15-.23-.3a8.78,8.78,0,0,1,1.64-1.91A8.91,8.91,0,0,1,221.3,52.91Z" class="cls-2"/></g></g></svg>
\ No newline at end of file diff --git a/docs/assets/posts/reddit-flair-search.png b/docs/assets/posts/reddit-flair-search.png Binary files differdeleted file mode 100644 index dbe5835..0000000 --- a/docs/assets/posts/reddit-flair-search.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/carbon-2.png b/docs/assets/posts/swift-chatbot/carbon-2.png Binary files differdeleted file mode 100644 index 1410640..0000000 --- a/docs/assets/posts/swift-chatbot/carbon-2.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/carbon-3.png b/docs/assets/posts/swift-chatbot/carbon-3.png Binary files differdeleted file mode 100644 index 4fd61a1..0000000 --- a/docs/assets/posts/swift-chatbot/carbon-3.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/carbon-4.png b/docs/assets/posts/swift-chatbot/carbon-4.png Binary files differdeleted file mode 100644 index c4ec321..0000000 --- a/docs/assets/posts/swift-chatbot/carbon-4.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/carbon.png b/docs/assets/posts/swift-chatbot/carbon.png Binary files differdeleted file mode 100644 index d2040f0..0000000 --- a/docs/assets/posts/swift-chatbot/carbon.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/create-intent.png b/docs/assets/posts/swift-chatbot/create-intent.png Binary files differdeleted file mode 100644 index 8fb7796..0000000 --- a/docs/assets/posts/swift-chatbot/create-intent.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/create-tagger.png b/docs/assets/posts/swift-chatbot/create-tagger.png Binary files differdeleted file mode 100644 index 3b31041..0000000 --- a/docs/assets/posts/swift-chatbot/create-tagger.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/drugs-json.png b/docs/assets/posts/swift-chatbot/drugs-json.png Binary files differdeleted file mode 100644 index 51075b2..0000000 --- a/docs/assets/posts/swift-chatbot/drugs-json.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/intent-csv.png b/docs/assets/posts/swift-chatbot/intent-csv.png Binary files differdeleted file mode 100644 index 004500a..0000000 --- a/docs/assets/posts/swift-chatbot/intent-csv.png +++ /dev/null diff --git a/docs/assets/posts/swift-chatbot/output.png b/docs/assets/posts/swift-chatbot/output.png Binary files differdeleted file mode 100644 index f1d4438..0000000 --- a/docs/assets/posts/swift-chatbot/output.png +++ /dev/null diff --git a/docs/assets/resume223.pdf b/docs/assets/resume223.pdf Binary files differdeleted file mode 100644 index 3dbbbda..0000000 --- a/docs/assets/resume223.pdf +++ /dev/null diff --git a/docs/assets/sakura.css b/docs/assets/sakura.css deleted file mode 100644 index 3992573..0000000 --- a/docs/assets/sakura.css +++ /dev/null @@ -1,226 +0,0 @@ -/* Sakura.css v1.5.0 - * ================ - * Minimal css theme. - * Project: https://github.com/oxalorg/sakura/ - */ -/* Body */ -html { - font-size: 62.5%; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; -} - -body { - font-size: 1.8rem; - line-height: 1.618; - max-width: 38em; - margin: auto; - color: #4a4a4a; - background-color: #f9f9f9; - padding: 13px; -} - -@media (max-width: 684px) { - body { - font-size: 1.53rem; - } -} -@media (max-width: 382px) { - body { - font-size: 1.35rem; - } -} -h1, h2, h3, h4, h5, h6 { - line-height: 1.1; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; - font-weight: 700; - margin-top: 3rem; - margin-bottom: 1.5rem; - overflow-wrap: break-word; - word-wrap: break-word; - -ms-word-break: break-all; - word-break: break-word; -} - -h1 { - font-size: 2.35em; -} - -h2 { - font-size: 2em; -} - -h3 { - font-size: 1.75em; -} - -h4 { - font-size: 1.5em; -} - -h5 { - font-size: 1.25em; -} - -h6 { - font-size: 1em; -} - -p { - margin-top: 0px; - margin-bottom: 2.5rem; -} - -small, sub, sup { - font-size: 75%; -} - -hr { - border-color: #1d7484; -} - -a { - text-decoration: none; - color: #1d7484; -} -a:visited { - color: #144f5a; -} -a:hover { - color: #982c61; - border-bottom: 2px solid #4a4a4a; -} - -ul { - padding-left: 1.4em; - margin-top: 0px; - margin-bottom: 2.5rem; -} - -li { - margin-bottom: 0.4em; -} - -blockquote { - margin-left: 0px; - margin-right: 0px; - padding-left: 1em; - padding-top: 0.8em; - padding-bottom: 0.8em; - padding-right: 0.8em; - border-left: 5px solid #1d7484; - margin-bottom: 2.5rem; - background-color: #f1f1f1; -} - -blockquote p { - margin-bottom: 0; -} - -img, video { - height: auto; - max-width: 100%; - margin-top: 0px; - margin-bottom: 2.5rem; -} - -/* Pre and Code */ -pre { - background-color: #f1f1f1; - display: block; - padding: 1em; - overflow-x: auto; - margin-top: 0px; - margin-bottom: 2.5rem; - font-size: 0.9em; -} - -code, kbd, samp { - font-size: 0.9em; - padding: 0 0.5em; - background-color: #f1f1f1; - white-space: pre-wrap; -} - -pre > code { - padding: 0; - background-color: transparent; - white-space: pre; - font-size: 1em; -} - -/* Tables */ -table { - text-align: justify; - width: 100%; - border-collapse: collapse; - margin-bottom: 2rem; -} - -td, th { - padding: 0.5em; - border-bottom: 1px solid #f1f1f1; -} - -/* Buttons, forms and input */ -input, textarea { - border: 1px solid #4a4a4a; -} -input:focus, textarea:focus { - border: 1px solid #1d7484; -} - -textarea { - width: 100%; -} - -.button, button, input[type=submit], input[type=reset], input[type=button], input[type=file]::file-selector-button { - display: inline-block; - padding: 5px 10px; - text-align: center; - text-decoration: none; - white-space: nowrap; - background-color: #1d7484; - color: #f9f9f9; - border-radius: 1px; - border: 1px solid #1d7484; - cursor: pointer; - box-sizing: border-box; -} -.button[disabled], button[disabled], input[type=submit][disabled], input[type=reset][disabled], input[type=button][disabled], input[type=file]::file-selector-button[disabled] { - cursor: default; - opacity: 0.5; -} -.button:hover, button:hover, input[type=submit]:hover, input[type=reset]:hover, input[type=button]:hover, input[type=file]::file-selector-button:hover { - background-color: #982c61; - color: #f9f9f9; - outline: 0; -} -.button:focus-visible, button:focus-visible, input[type=submit]:focus-visible, input[type=reset]:focus-visible, input[type=button]:focus-visible, input[type=file]::file-selector-button:focus-visible { - outline-style: solid; - outline-width: 2px; -} - -textarea, select, input { - color: #4a4a4a; - padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ - margin-bottom: 10px; - background-color: #f1f1f1; - border: 1px solid #f1f1f1; - border-radius: 4px; - box-shadow: none; - box-sizing: border-box; -} -textarea:focus, select:focus, input:focus { - border: 1px solid #1d7484; - outline: 0; -} - -input[type=checkbox]:focus { - outline: 1px dotted #1d7484; -} - -label, legend, fieldset { - display: block; - margin-bottom: 0.5rem; - font-weight: 600; -} diff --git a/docs/assets/underlying/video-under-element.jpg b/docs/assets/underlying/video-under-element.jpg Binary files differdeleted file mode 100644 index 2b5e7c4..0000000 --- a/docs/assets/underlying/video-under-element.jpg +++ /dev/null diff --git a/docs/assets/y-u-n-o/meme.png b/docs/assets/y-u-n-o/meme.png Binary files differdeleted file mode 100644 index 9f43c6c..0000000 --- a/docs/assets/y-u-n-o/meme.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssabs.png b/docs/assets/y-u-n-o/ssabs.png Binary files differdeleted file mode 100644 index 3a53fec..0000000 --- a/docs/assets/y-u-n-o/ssabs.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssfr.png b/docs/assets/y-u-n-o/ssfr.png Binary files differdeleted file mode 100644 index c19b11f..0000000 --- a/docs/assets/y-u-n-o/ssfr.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssgi.png b/docs/assets/y-u-n-o/ssgi.png Binary files differdeleted file mode 100644 index cde96d4..0000000 --- a/docs/assets/y-u-n-o/ssgi.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssgr.png b/docs/assets/y-u-n-o/ssgr.png Binary files differdeleted file mode 100644 index 0fa34f2..0000000 --- a/docs/assets/y-u-n-o/ssgr.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssh.png b/docs/assets/y-u-n-o/ssh.png Binary files differdeleted file mode 100644 index 08ed908..0000000 --- a/docs/assets/y-u-n-o/ssh.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssha.png b/docs/assets/y-u-n-o/ssha.png Binary files differdeleted file mode 100644 index bb72936..0000000 --- a/docs/assets/y-u-n-o/ssha.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssj.png b/docs/assets/y-u-n-o/ssj.png Binary files differdeleted file mode 100644 index ddfd32a..0000000 --- a/docs/assets/y-u-n-o/ssj.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssl.png b/docs/assets/y-u-n-o/ssl.png Binary files differdeleted file mode 100644 index f83aa65..0000000 --- a/docs/assets/y-u-n-o/ssl.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssm.png b/docs/assets/y-u-n-o/ssm.png Binary files differdeleted file mode 100644 index 3f6f19d..0000000 --- a/docs/assets/y-u-n-o/ssm.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssn.png b/docs/assets/y-u-n-o/ssn.png Binary files differdeleted file mode 100644 index b45d8df..0000000 --- a/docs/assets/y-u-n-o/ssn.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/sss.png b/docs/assets/y-u-n-o/sss.png Binary files differdeleted file mode 100644 index 90b2c98..0000000 --- a/docs/assets/y-u-n-o/sss.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/sst.png b/docs/assets/y-u-n-o/sst.png Binary files differdeleted file mode 100644 index ec688c2..0000000 --- a/docs/assets/y-u-n-o/sst.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssv.png b/docs/assets/y-u-n-o/ssv.png Binary files differdeleted file mode 100644 index 46d7c0e..0000000 --- a/docs/assets/y-u-n-o/ssv.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssw.png b/docs/assets/y-u-n-o/ssw.png Binary files differdeleted file mode 100644 index 90f44e7..0000000 --- a/docs/assets/y-u-n-o/ssw.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssyp.png b/docs/assets/y-u-n-o/ssyp.png Binary files differdeleted file mode 100644 index 3f59cd1..0000000 --- a/docs/assets/y-u-n-o/ssyp.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssys.png b/docs/assets/y-u-n-o/ssys.png Binary files differdeleted file mode 100644 index 75a3dd2..0000000 --- a/docs/assets/y-u-n-o/ssys.png +++ /dev/null diff --git a/docs/assets/y-u-n-o/ssyw.png b/docs/assets/y-u-n-o/ssyw.png Binary files differdeleted file mode 100644 index c26775c..0000000 --- a/docs/assets/y-u-n-o/ssyw.png +++ /dev/null |
