diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 44161d9..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,219 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (7.1.3.2) - base64 - bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) - connection_pool (>= 2.2.5) - drb - i18n (>= 1.6, < 2) - minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) - base64 (0.2.0) - bibtex-ruby (6.1.0) - latex-decode (~> 0.0) - racc (~> 1.7) - bigdecimal (3.1.8) - citeproc (1.0.10) - namae (~> 1.0) - citeproc-ruby (1.1.14) - citeproc (~> 1.0, >= 1.0.9) - csl (~> 1.6) - classifier-reborn (2.3.0) - fast-stemmer (~> 1.0) - matrix (~> 0.4) - colorator (1.1.0) - concurrent-ruby (1.2.3) - connection_pool (2.4.1) - crass (1.0.6) - csl (1.6.0) - namae (~> 1.0) - rexml - csl-styles (1.0.1.11) - csl (~> 1.0) - css_parser (1.17.1) - addressable - cssminify2 (2.0.1) - csv (3.3.0) - deep_merge (1.2.2) - drb (2.2.1) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - eventmachine (1.2.7) - execjs (2.9.1) - fast-stemmer (1.0.2) - feedjira (3.2.3) - loofah (>= 2.3.1, < 3) - sax-machine (>= 1.0, < 2) - ffi (1.16.3) - forwardable-extended (2.6.0) - gemoji (4.1.0) - google-protobuf (4.26.1-aarch64-linux) - rake (>= 13) - google-protobuf (4.26.1-x86_64-linux) - rake (>= 13) - html-pipeline (2.14.3) - activesupport (>= 2) - nokogiri (>= 1.4) - htmlcompressor (0.4.0) - http_parser.rb (0.8.0) - httparty (0.22.0) - csv - mini_mime (>= 1.0.0) - multi_xml (>= 0.5.2) - i18n (1.14.5) - concurrent-ruby (~> 1.0) - jekyll (4.3.3) - addressable (~> 2.4) - colorator (~> 1.0) - em-websocket (~> 0.5) - i18n (~> 1.0) - jekyll-sass-converter (>= 2.0, < 4.0) - jekyll-watch (~> 2.0) - kramdown (~> 2.3, >= 2.3.1) - kramdown-parser-gfm (~> 1.0) - liquid (~> 4.0) - mercenary (>= 0.3.6, < 0.5) - pathutil (~> 0.9) - rouge (>= 3.0, < 5.0) - safe_yaml (~> 1.0) - terminal-table (>= 1.8, < 4.0) - webrick (~> 1.7) - jekyll-archives (2.2.1) - jekyll (>= 3.6, < 5.0) - jekyll-email-protect (1.1.0) - jekyll-feed (0.17.0) - jekyll (>= 3.7, < 5.0) - jekyll-get-json (1.0.0) - deep_merge (~> 1.2) - jekyll (>= 3.0) - jekyll-imagemagick (1.4.0) - jekyll (>= 3.4) - jekyll-jupyter-notebook (0.0.6) - jekyll - jekyll-link-attributes (1.0.1) - jekyll-minifier (0.1.10) - cssminify2 (~> 2.0) - htmlcompressor (~> 0.4) - jekyll (>= 3.5) - json-minify (~> 0.0.3) - uglifier (~> 4.1) - jekyll-paginate-v2 (3.0.0) - jekyll (>= 3.0, < 5.0) - jekyll-sass-converter (3.0.0) - sass-embedded (~> 1.54) - jekyll-scholar (7.1.3) - bibtex-ruby (~> 6.0) - citeproc-ruby (~> 1.0) - csl-styles (~> 1.0) - jekyll (~> 4.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-tabs (1.2.1) - jekyll (>= 3.0, < 5.0) - jekyll-toc (0.18.0) - jekyll (>= 3.9) - nokogiri (~> 1.12) - jekyll-twitter-plugin (2.1.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - jemoji (0.13.0) - gemoji (>= 3, < 5) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - json (2.7.2) - json-minify (0.0.3) - json (> 0) - kramdown (2.4.0) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - latex-decode (0.4.0) - libv8-node (21.7.2.0-aarch64-linux) - libv8-node (21.7.2.0-x86_64-linux) - liquid (4.0.4) - listen (3.9.0) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.22.0) - crass (~> 1.0.2) - nokogiri (>= 1.12.0) - matrix (0.4.2) - mercenary (0.4.0) - mini_mime (1.1.5) - mini_racer (0.12.0) - libv8-node (~> 21.7.2.0) - minitest (5.22.3) - multi_xml (0.7.1) - bigdecimal (~> 3.1) - mutex_m (0.2.0) - namae (1.2.0) - racc (~> 1.7) - nokogiri (1.16.5-aarch64-linux) - racc (~> 1.4) - nokogiri (1.16.5-x86_64-linux) - racc (~> 1.4) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (5.0.5) - racc (1.7.3) - rake (13.2.1) - rb-fsevent (0.11.2) - rb-inotify (0.10.1) - ffi (~> 1.0) - rexml (3.2.8) - strscan (>= 3.0.9) - rouge (4.2.1) - safe_yaml (1.0.5) - sass-embedded (1.77.0-aarch64-linux-gnu) - google-protobuf (>= 3.25, < 5.0) - sass-embedded (1.77.0-x86_64-linux-gnu) - google-protobuf (>= 3.25, < 5.0) - sax-machine (1.3.2) - strscan (3.1.0) - terminal-table (3.0.2) - unicode-display_width (>= 1.1.1, < 3) - tzinfo (2.0.6) - concurrent-ruby (~> 1.0) - uglifier (4.2.0) - execjs (>= 0.3.0, < 3) - unicode-display_width (2.5.0) - unicode_utils (1.4.0) - webrick (1.8.1) - -PLATFORMS - aarch64-linux - x86_64-linux-gnu - -DEPENDENCIES - classifier-reborn - css_parser - feedjira - httparty - jekyll - jekyll-archives - jekyll-email-protect - jekyll-feed - jekyll-get-json - jekyll-imagemagick - jekyll-jupyter-notebook - jekyll-link-attributes - jekyll-minifier - jekyll-paginate-v2 - jekyll-scholar - jekyll-sitemap - jekyll-tabs - jekyll-toc - jekyll-twitter-plugin - jemoji - mini_racer - unicode_utils - webrick - -BUNDLED WITH - 2.5.7 \ No newline at end of file diff --git a/_data/repositories.yml b/_data/repositories.yml deleted file mode 100644 index 4e0165f..0000000 --- a/_data/repositories.yml +++ /dev/null @@ -1,15 +0,0 @@ -github_users: - - simonwei97 - # - torvalds - # - alshedivat - -github_repos: - - alshedivat/al-folio - - milvus-io/pymilvus - - golang-design/go-questions - # - twbs/bootstrap - # - jekyll/jekyll - # - jquery/jquery - # - FortAwesome/Font-Awesome - # - jpswalsh/academicons - # - mathjax/MathJax diff --git a/_posts/2023-09-11-binary-tree-traversal.md b/_posts/2023-09-11-binary-tree-traversal.md deleted file mode 100644 index 27fa40d..0000000 --- a/_posts/2023-09-11-binary-tree-traversal.md +++ /dev/null @@ -1,234 +0,0 @@ ---- -layout: post -title: Binary Tree different traversal ways -date: 2023-09-11 15:09:00 -description: Binary Tree preorder, inorder, postorder and levelorder. -tags: code -categories: algo -giscus_comments: true -related_posts: false -related_publications: false -featured: true -toc: - sidebar: right ---- - -# Definition - -```go -type TreeNode struct { - Val int - Left *TreeNode - Right *TreeNode -} -``` - -# Preorder - -Access order: `Root -> Left -> Right`. - -```go -// Recursion -func preorderTraversal(root *TreeNode) []int { - // Time complexity: O(n) - // Spatial complexity: O(n) - res := []int{} - var preOrder func(*TreeNode) - preOrder = func(root *TreeNode) { - if root == nil { - return - } - res = append(res, root.Val) // root - preOrder(root.Left) // left - preOrder(root.Right) // right - } - preOrder(root) - return res -} - -// Iterate -func preorderTraversal(root *TreeNode) []int { - // Time complexity: O(n) - // Spatial complexity: O(n) - if root == nil { - return nil - } - - res := make([]int, 0) - stack := make([]*TreeNode, 0) - for len(stack) > 0 || root != nil { - for root != nil { - res = append(res, root.Val) // root - stack = append(stack, root) - root = root.Left // left - } - // pop - node := stack[len(stack)-1] - stack = stack[:len(stack)-1] - root = node.Right // right - } - return res -} -``` - -# Inorder - -Access order: `Left -> Root -> Right` - -```go -// Recursion -func inorderTraversal(root *TreeNode) []int { - // Time complexity: O(n) - // Spatial complexity: O(n) - res := []int{} - var inorder func(*TreeNode) - inorder = func(root *TreeNode) { - if root == nil { - return - } - inorder(root.Left) // left - res = append(res, root.Val) // root - inorder(root.Right) // right - } - inorder(root) - return res -} - -// Iterate -func inorderTraversal(root *TreeNode) []int { - // Time complexity: O(n) - // Spatial complexity: O(n) - if root == nil { - return nil - } - - res := make([]int, 0) - stack := make([]*TreeNode, 0) - for len(stack) > 0 || root != nil { - for root != nil { - stack = append(stack, root) - root = root.Left // left - } - node := stack[len(stack)-1] - stack = stack[:len(stack)-1] - res = append(res, node.Val) // root - root = node.Right // right - } - - return res -} -``` - -# Postorder - -Access order: `Left -> Right -> Root` - -```go -// Recursion -func postorderTraversal(root *TreeNode) []int { - // Time complexity: O(n) - // Spatial complexity: O(n) - res := []int{} - var postorder func(*TreeNode) - postorder = func(root *TreeNode) { - if root == nil { - return - } - postorder(root.Left) // left - postorder(root.Right) // right - res = append(res, root.Val) // root - } - postorder(root) - return res -} - -// Iterate -func postorderTraversal(root *TreeNode) []int { - // Time complexity: O(n) - // Spatial complexity: O(n) - if root == nil { - return nil - } - - res := make([]int, 0) - stack := make([]*TreeNode, 0) - // will check if right node has been pop - var lastVisit *TreeNode - for len(stack) > 0 || root != nil { - for root != nil { - stack = append(stack, root) - root = root.Left // left - } - - node := stack[len(stack)-1] - // root will pop after right node - if node.Right == nil || node.Right == lastVisit { - stack = stack[:len(stack)-1] - res = append(res, node.Val) // root - lastVisit = node - } else { - root = node.Right // right - } - } - return res -} -``` - -# Levelorder - -Access order: `from left to right, level by level` - -```go -// Recursion (BFS) -func levelorder(root *TreeNode) [][]int { - // Time complexity: O(n) - // Spatial complexity: O(n) - res := [][]int{} - var bfs func(node *TreeNode, dep int) - bfs = func(node *TreeNode, dep int) { - if node == nil { - return - } - if len(res) == dep { - res = append(res, []int{}) - } - res[dep] = append(res[dep], node.Val) - bfs(node.Left, dep+1) - bfs(node.Right, dep+1) - } - - bfs(root, 0) - return res -} - -// Iterate -func levelorder(root *TreeNode) [][]int { - // Time complexity: O(n) - // Spatial complexity: O(n) - if root == nil { - return [][]int{} - } - - res := make([][]int, 0) - curr := []*TreeNode{root} - for len(curr) > 0 { - next := []*TreeNode{} - vals := []int{} - - for _, node := range curr { - vals = append(vals, node.Val) // add curr level node val - - if node.Left != nil { - next = append(next, node.Left) - } - - if node.Right != nil { - next = append(next, node.Right) - } - } - res = append(res, vals) - curr = next - } - return res -} -``` diff --git a/_sass/_base.scss b/_sass/_base.scss deleted file mode 100644 index c714bee..0000000 --- a/_sass/_base.scss +++ /dev/null @@ -1,1165 +0,0 @@ -/******************************************************************************* - * Styles for the base elements of the theme. - ******************************************************************************/ - -// Typography - -p, -h1, -h2, -h3, -h4, -h5, -h6, -em, -div, -li, -span, -strong { - color: var(--global-text-color); -} - -p, -h1, -h2, -h3, -h4, -h5, -div, -li { - font-family: - -apple-system, - BlinkMacSystemFont, - segoe ui, - Roboto, - Oxygen, - Ubuntu, - Cantarell, - open sans, - helvetica neue, - sans-serif; -} - -h1, -h2, -h3, -h4, -h5 { - font-weight: 500; -} - -p { - font-size: 16px; - font-weight: 400; -} - -strong { - font-weight: bold; -} - -hr { - border-top: 1px solid var(--global-divider-color); -} - -table { - td, - th { - font-size: 1rem; - } - - th { - font-weight: bold; - } -} - -a, -table.table a { - color: var(--global-theme-color); - - &:hover { - color: var(--global-theme-color); - text-decoration: underline; - } - - &:hover:after :not(.nav-item.dropdown) { - width: 100%; - } -} - -.table-dark { - background-color: transparent; - &.table-bordered { - border: 1px solid var(--global-divider-color) !important; - } -} - -blockquote { - background: var(--global-blockquote-bg-color); - border-left: 5px solid var(--global-theme-color); - margin: 1.5em 0; - padding: 1em; - font-size: 1.2rem; - - p { - margin-bottom: 0; - } - - /* Tips, warnings, and dangers blockquotes */ - &.block-tip { - border-color: var(--global-tip-block); - background-color: var(--global-tip-block-bg); - - p { - color: var(--global-tip-block-text); - } - - h1, - h2, - h3, - h4, - h5, - h6 { - color: var(--global-tip-block-title); - } - } - - &.block-warning { - border-color: var(--global-warning-block); - background-color: var(--global-warning-block-bg); - - p { - color: var(--global-warning-block-text); - } - - h1, - h2, - h3, - h4, - h5, - h6 { - color: var(--global-warning-block-title); - } - } - - &.block-danger { - border-color: var(--global-danger-block); - background-color: var(--global-danger-block-bg); - - p { - color: var(--global-danger-block-text); - } - - h1, - h2, - h3, - h4, - h5, - h6 { - color: var(--global-danger-block-title); - } - } -} - -// Checklist - -ul.task-list { - list-style-type: none; /* Remove bullets from all levels */ -} - -ul.task-list > li ul { - /* Nested lists within .task-list */ - padding-inline-start: 1.5rem; -} - -ul.task-list input[type="checkbox"] { - margin: 0.275rem 0.5rem 0.5rem -1rem; - vertical-align: middle; -} - -// Math - -.equation { - margin-bottom: 1rem; - text-align: center; -} - -// Caption - -.caption { - font-size: 0.875rem; - margin-top: 0.75rem; - margin-bottom: 1.5rem; - text-align: center; -} - -// Card - -.card { - background-color: var(--global-card-bg-color); - - .card-img { - width: 100%; - padding-top: 1.25rem; - } - - .card-title { - color: var(--global-text-color); - } - - .card-body { - padding: 1.25rem 1.25rem 1.25rem 1.25rem; - } -} - -// Citation - -.citation, -.citation-number { - color: var(--global-theme-color); -} - -// Profile - -.profile { - width: 100%; - - .more-info { - margin-bottom: 5px; - margin-top: 5px; - font-family: monospace; - - p { - display: inline-block; - margin: 0; - font-family: monospace; - } - } -} - -.profile.float-right { - margin-left: 1rem; -} - -.profile.float-left { - margin-right: 1rem; -} - -@media (min-width: 576px) { - .profile { - width: 30%; - - .address { - p { - display: block; - } - } - } -} - -.post-description { - margin-bottom: 2rem; - font-size: 0.875rem; - - a { - color: inherit; - - &:hover { - color: var(--global-theme-color); - text-decoration: none; - } - } -} - -// Navbar customization - -.navbar { - box-shadow: none; - border-bottom: 1px solid var(--global-divider-color); - background-color: var(--global-bg-color); - opacity: 0.95; - font-weight: 400; -} - -.navbar .dropdown-menu { - background-color: var(--global-bg-color); - border: 1px solid var(--global-divider-color); - - a:not(.active) { - color: var(--global-text-color); - } - - a:hover { - color: var(--global-hover-color); - } - - .dropdown-divider { - border-top: 1px solid var(--global-divider-color) !important; - } -} - -.dropdown-item { - color: var(--global-text-color); - - &:hover { - color: var(--global-hover-color); - background-color: var(--global-bg-color); - } -} - -.navbar.navbar-light { - a { - &:hover { - text-decoration: none; - } - } - - .navbar-brand { - color: var(--global-text-color); - } - - .navbar-nav .nav-item .nav-link { - color: var(--global-text-color); - - &:hover { - color: var(--global-hover-color); - } - } - - .navbar-nav .nav-item.active > .nav-link { - background-color: inherit; - font-weight: bolder; - color: var(--global-theme-color); - - &:hover { - color: var(--global-hover-color); - } - } - - .navbar-brand.social { - padding-bottom: 0; - padding-top: 0; - font-size: 1.7rem; - - a { - i::before { - color: var(--global-text-color); - transition-property: all 0.2s ease-in-out; - } - - &:hover { - i::before { - color: var(--global-theme-color); - } - } - } - } -} - -.navbar-toggler { - .icon-bar { - display: block; - width: 22px; - height: 2px; - background-color: var(--global-text-color); - border-radius: 1px; - margin-bottom: 4px; - transition: all 0.2s; - } - - .top-bar { - transform: rotate(45deg); - transform-origin: 10% 10%; - } - - .middle-bar { - opacity: 0; - } - - .bottom-bar { - transform: rotate(-45deg); - transform-origin: 10% 90%; - } -} - -.navbar-toggler.collapsed { - .top-bar { - transform: rotate(0); - } - - .middle-bar { - opacity: 1; - } - - .bottom-bar { - transform: rotate(0); - } -} - -#light-toggle, -#search-toggle { - padding: 0; - border: 0; - background-color: inherit; - color: var(--global-text-color); - - &:hover { - color: var(--global-hover-color); - } -} - -// Social (bottom) - -.social { - text-align: center; - - .contact-icons { - font-size: 4rem; - - a { - i::before { - color: var(--global-text-color); - transition-property: all 0.2s ease-in-out; - } - - &:hover { - i::before { - color: var(--global-theme-color); - } - } - } - } - - .contact-note { - font-size: 0.8rem; - } -} - -.wechat-modal { - display: none; - position: fixed; - z-index: 1; - padding-top: 100px; - left: 0; - top: 0; - width: 100%; - height: 100%; - overflow: auto; - background-color: rgb(0, 0, 0); - background-color: rgba(0, 0, 0, 0.8); -} - -.wechat-modal > img { - display: block; - position: relative; - top: 50%; - left: 50%; - width: 33%; - max-width: 400px; - transform: translate(-50%, -50%); -} - -@media only screen and (max-width: 400px) { - .wechat-modal > img { - width: 100%; - } -} - -// Footer -footer.fixed-bottom { - background-color: var(--global-footer-bg-color); - font-size: 0.75rem; - - .container { - color: var(--global-footer-text-color); - padding-top: 9px; - padding-bottom: 8px; - text-align: center; - } - - a { - color: var(--global-footer-link-color); - - &:hover { - color: var(--global-theme-color); - text-decoration: none; - } - } -} - -footer.sticky-bottom { - border-top: 1px solid var(--global-divider-color); - padding-top: 40px; - padding-bottom: 40px; - font-size: 0.9rem; - - .container { - text-align: center; - } -} - -// CV - -.cv { - margin-bottom: 40px; - - .card { - background-color: var(--global-card-bg-color); - border: 1px solid var(--global-divider-color); - - .list-group-item { - background-color: inherit; - border-color: var(--global-divider-color); - - .badge { - color: var(--global-card-bg-color) !important; - background-color: var(--global-theme-color) !important; - } - } - } -} - -.table-cv-map { - background-color: transparent; - border: none; - color: var(--global-text-color); -} - -// Repositories - -@media (min-width: 768px) { - .repo { - max-width: 50%; - } -} - -// Blog - -.header-bar { - border-bottom: 1px solid var(--global-divider-color); - text-align: center; - padding-top: 2rem; - padding-bottom: 3rem; - - h1 { - color: var(--global-theme-color); - font-size: 5rem; - } -} - -.tag-category-list { - border-bottom: 1px solid var(--global-divider-color); - text-align: center; - padding-top: 1rem; - - ul { - justify-content: center; - display: flow-root; - - p, - li { - list-style: none; - display: inline-block; - padding: 1rem 0.5rem; - color: var(--global-text-color-light); - } - } -} - -.post-title { - mjx-container[jax="CHTML"][display="true"] { - display: unset; - } -} - -.post-list { - margin: 0; - margin-bottom: 40px; - padding: 0; - - li { - border-bottom: 1px solid var(--global-divider-color); - list-style: none; - padding-top: 2rem; - padding-bottom: 2rem; - - .post-meta { - color: var(--global-text-color-light); - font-size: 0.875rem; - margin-bottom: 0; - } - - .post-tags { - color: var(--global-text-color-light); - font-size: 0.875rem; - padding-top: 0.25rem; - padding-bottom: 0; - } - - a { - color: var(--global-text-color); - text-decoration: none; - - &:hover { - color: var(--global-theme-color); - } - } - - mjx-container[jax="CHTML"][display="true"] { - display: unset; - } - } -} - -.pagination { - .page-item { - .page-link { - color: var(--global-text-color); - - &:hover { - color: $black-color; - } - } - - &.active .page-link { - color: $white-color; - background-color: var(--global-theme-color); - - &:hover { - background-color: var(--global-theme-color); - } - } - } -} - -// Distill - -.distill { - a:hover { - border-bottom-color: var(--global-theme-color); - text-decoration: none; - } -} - -// Projects - -.projects { - a { - text-decoration: none; - - &:hover { - .card-title { - color: var(--global-theme-color); - } - } - } - - .card { - img { - width: 100%; - } - } - - .grid-sizer, - .grid-item { - width: 250px; - margin-bottom: 10px; - } - - h2.category { - color: var(--global-divider-color); - border-bottom: 1px solid var(--global-divider-color); - padding-top: 0.5rem; - margin-top: 2rem; - margin-bottom: 1rem; - text-align: right; - } -} - -// Publications - -.publications { - margin-top: 2rem; - - h1 { - color: var(--global-theme-color); - font-size: 2rem; - text-align: center; - margin-top: 1em; - margin-bottom: 1em; - } - - h2 { - margin-bottom: 1rem; - - span { - font-size: 1.5rem; - } - } - - h2.bibliography { - color: var(--global-divider-color); - border-top: 1px solid var(--global-divider-color); - padding-top: 1rem; - margin-top: 2rem; - text-align: right; - } - - ol.bibliography { - list-style: none; - padding: 0; - margin-top: 0; - - li { - margin-bottom: 1rem; - - .preview { - } - - .abbr { - margin-bottom: 0.5rem; - - abbr { - display: inline-block; - background-color: var(--global-theme-color); - margin-bottom: 0.5rem; - - a { - color: white; - - &:hover { - text-decoration: none; - } - } - } - - .award { - color: var(--global-theme-color) !important; - border: 1px solid var(--global-theme-color); - } - } - - .title { - font-weight: bolder; - } - - .author { - a { - border-bottom: 1px dashed var(--global-theme-color); - - &:hover { - border-bottom-style: solid; - text-decoration: none; - } - } - - > em { - border-bottom: 1px solid; - font-style: normal; - } - - > span.more-authors { - color: var(--global-text-color-light); - border-bottom: 1px dashed var(--global-text-color-light); - cursor: pointer; - - &:hover { - color: var(--global-text-color); - border-bottom: 1px dashed var(--global-text-color); - } - } - } - - .links { - a.btn { - color: var(--global-text-color); - border: 1px solid var(--global-text-color); - padding-left: 1rem; - padding-right: 1rem; - padding-top: 0.25rem; - padding-bottom: 0.25rem; - margin-left: 0; - - &:hover { - color: var(--global-theme-color); - border-color: var(--global-theme-color); - } - } - a.award.btn { - border-color: var(--global-highlight-color); - } - } - - .badges { - padding-bottom: 0.5rem; - span { - display: inline-block; - color: $black-color; - height: 100%; - padding-right: 0.5rem; - vertical-align: middle; - - &:hover { - text-decoration: underline; - } - } - } - - .hidden { - font-size: 0.875rem; - max-height: 0px; - overflow: hidden; - text-align: justify; - transition-property: 0.15s ease; - -moz-transition: 0.15s ease; - -ms-transition: 0.15s ease; - -o-transition: 0.15s ease; - transition: all 0.15s ease; - - p { - line-height: 1.4em; - margin: 10px; - } - - pre { - font-size: 1em; - line-height: 1.4em; - padding: 10px; - } - } - - .hidden.open { - max-height: 100em; - transition-property: 0.15s ease; - -moz-transition: 0.15s ease; - -ms-transition: 0.15s ease; - -o-transition: 0.15s ease; - transition: all 0.15s ease; - } - - div.abstract.hidden { - border: dashed 1px var(--global-bg-color); - } - - div.abstract.hidden.open { - border-color: var(--global-text-color); - } - } - div.award.hidden { - border: dashed 1px var(--global-bg-color); - } - div.award.hidden.open { - border-color: var(--global-highlight-color); - } - } -} - -// Rouge Color Customization -figure.highlight { - margin: 0 0 1rem; -} - -pre { - color: var(--global-theme-color); - background-color: var(--global-code-bg-color); - border-radius: 6px; - padding: 6px 12px; - - pre, - code { - background-color: transparent; - border-radius: 0; - margin-bottom: 0; - padding: 0; - } -} - -code { - color: var(--global-theme-color); - background-color: var(--global-code-bg-color); - border-radius: 3px; - padding: 3px 3px; -} - -// Transitioning Themes -html.transition, -html.transition *, -html.transition *:before, -html.transition *:after { - transition: all 750ms !important; - transition-delay: 0 !important; -} - -// Extra Markdown style (post Customization) -.post { - .post-meta { - color: var(--global-text-color-light); - font-size: 0.875rem; - margin-bottom: 0; - } - - .post-tags { - color: var(--global-text-color-light); - font-size: 0.875rem; - padding-top: 0.25rem; - padding-bottom: 1rem; - - a { - color: var(--global-text-color-light); - text-decoration: none; - - &:hover { - color: var(--global-theme-color); - } - } - } -} - -progress { - /* Positioning */ - position: fixed; - left: 0; - top: 56px; - z-index: 10; - - /* Dimensions */ - width: 100%; - height: 1px; - - /* Reset the appearance */ - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - - /* Get rid of the default border in Firefox/Opera. */ - border: none; - - /* Progress bar container for Firefox/IE10 */ - background-color: transparent; - - /* Progress bar value for IE10 */ - color: var(--global-theme-color); -} - -progress::-webkit-progress-bar { - background-color: transparent; -} - -progress::-webkit-progress-value { - background-color: var(--global-theme-color); -} - -progress::-moz-progress-bar { - background-color: var(--global-theme-color); -} - -.progress-container { - width: 100%; - background-color: transparent; - position: fixed; - top: 56px; - left: 0; - height: 5px; - display: block; -} - -.progress-bar { - background-color: var(--global-theme-color); - width: 0%; - display: block; - height: inherit; -} - -/* Copy button */ -.code-display-wrapper { - position: relative; - - .copy { - background: var(--global-card-bg-color); - border-color: var(--global-bg-color); - border-radius: 0.3rem; - border-style: none; - color: var(--global-text-color); - font-size: medium; - opacity: 0; - position: absolute; - right: 0.2rem; - top: 0.2rem; - } - - &:active .copy, - &:focus .copy, - &:hover .copy { - color: var(--global-hover-color); - opacity: 1; - } -} - -.btn-group.dropdown { - .btn { - box-shadow: none; - -webkit-box-shadow: none; - } - - .btn-secondary.dropdown-toggle { - border: 1px solid var(--global-divider-color); - - .page-size { - color: inherit; - } - - &:not(.active) { - background-color: var(--global-bg-color) !important; - color: var(--global-text-color); - } - - &:hover { - background-color: var(--global-hover-color) !important; - color: var(--global-hover-text-color) !important; - } - } - - .dropdown-menu { - background-color: var(--global-bg-color); - } - - .dropdown-item { - background-color: var(--global-bg-color); - color: var(--global-text-color); - - &:hover { - color: var(--global-hover-color); - } - } - - .dropdown-item.active, - .dropdown-item:active { - background-color: var(--global-hover-color); - color: var(--global-hover-text-color) !important; - - &:hover { - color: var(--global-hover-text-color); - } - } -} - -/* Table of Contents */ -nav[data-toggle="toc"] { - top: 5rem; - - .nav .nav > li > a { - font-size: 0.75rem; - } - - .nav > li > a { - color: var(--global-text-color); - font-size: 0.75rem; - - &:hover { - color: var(--global-hover-color); - border-left-color: var(--global-hover-color); - } - } - - .nav-link.active { - color: var(--global-theme-color); - border-left-color: var(--global-theme-color); - font-size: 0.75rem; - - &:hover { - color: var(--global-hover-color); - border-left-color: var(--global-hover-color); - } - } -} - -/* small screens */ -@media (max-width: 576px) { - /* override stickyness so that the navigation does not follow scrolling */ - nav[data-toggle="toc"] { - visibility: hidden; - height: 0; - top: 0; - } -} - -.featured-posts { - a { - color: var(--global-text-color-light); - text-decoration: none; - - .card-text { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - &:hover { - color: var(--global-theme-color); - - .card-title { - color: var(--global-theme-color); - } - } - } - - .post-meta { - color: var(--global-text-color-light); - font-size: 0.875rem; - margin-bottom: 0; - padding-top: 0.5rem; - } -} - -.unloaded { - display: none !important; -} - -.medium-zoom-overlay, -.medium-zoom-image--opened { - z-index: 999; -} - -#toc-sidebar { - z-index: 1; -} - -.echarts { - height: 400px; - width: 100%; -} - -.map { - height: 400px; - width: 100%; -} - -swiper-container { - --swiper-navigation-color: var(--global-theme-color); - --swiper-pagination-color: var(--global-theme-color); - --swiper-pagination-bullet-inactive-color: var(--global-text-color); -} - -.ps-root { - .ps-algorithm { - margin: 0.8em 0; - border-top: 3px solid var(--global-text-color); - border-bottom: 2px solid var(--global-text-color); - } - - .ps-algorithm.with-caption > .ps-line:first-child { - border-bottom: 2px solid var(--global-text-color); - } -} - -// Ninja Keys -// for more options, check https://github.com/ssleptsov/ninja-keys?tab=readme-ov-file#css-variables -ninja-keys { - --ninja-accent-color: var(--global-theme-color); - --ninja-icon-size: 0px; - --ninja-modal-background: var(--global-bg-color); - --ninja-z-index: 1031; -} - -ninja-keys::part(ninja-input-wrapper) { - background: var(--global-bg-color); -} diff --git a/assets/img/1.jpg b/assets/img/1.jpg index 1f2eb4c..227d62a 100644 Binary files a/assets/img/1.jpg and b/assets/img/1.jpg differ diff --git a/assets/img/10.jpg b/assets/img/10.jpg index e9958d4..a9af43a 100644 Binary files a/assets/img/10.jpg and b/assets/img/10.jpg differ diff --git a/assets/img/4.jpg b/assets/img/4.jpg index 746b206..3830c7d 100644 Binary files a/assets/img/4.jpg and b/assets/img/4.jpg differ diff --git a/assets/img/6.jpg b/assets/img/6.jpg index 92317be..088aa42 100644 Binary files a/assets/img/6.jpg and b/assets/img/6.jpg differ diff --git a/assets/img/site_icon/icon.png b/assets/img/site_icon/icon.png index 819694c..2fbfca0 100644 Binary files a/assets/img/site_icon/icon.png and b/assets/img/site_icon/icon.png differ diff --git a/lighthouse_results/desktop/pagespeed.svg b/lighthouse_results/desktop/pagespeed.svg index 0469799..9fd0edf 100644 --- a/lighthouse_results/desktop/pagespeed.svg +++ b/lighthouse_results/desktop/pagespeed.svg @@ -1 +1 @@ -95Performance100Accessibility100Best Practices100SEONAPWA0-4950-8990-100 \ No newline at end of file +95Performance100Accessibility100Best Practices100SEONAPWA0-4950-8990-100 \ No newline at end of file diff --git a/lighthouse_results/mobile/pagespeed.svg b/lighthouse_results/mobile/pagespeed.svg index 2cf0256..5c1a4e8 100644 --- a/lighthouse_results/mobile/pagespeed.svg +++ b/lighthouse_results/mobile/pagespeed.svg @@ -1 +1 @@ -92Performance100Accessibility100Best Practices100SEONAPWA0-4950-8990-100 \ No newline at end of file +92Performance100Accessibility100Best Practices100SEONAPWA0-4950-8990-100 \ No newline at end of file diff --git a/readme_preview/blog.png b/readme_preview/blog.png index 0f36828..9846799 100644 Binary files a/readme_preview/blog.png and b/readme_preview/blog.png differ diff --git a/readme_preview/code.png b/readme_preview/code.png index 6dd6f84..b68e245 100644 Binary files a/readme_preview/code.png and b/readme_preview/code.png differ diff --git a/readme_preview/dark.png b/readme_preview/dark.png index 311479c..e803635 100644 Binary files a/readme_preview/dark.png and b/readme_preview/dark.png differ diff --git a/readme_preview/distill.png b/readme_preview/distill.png index 99d7847..ac4a0bd 100644 Binary files a/readme_preview/distill.png and b/readme_preview/distill.png differ diff --git a/readme_preview/jupyter.png b/readme_preview/jupyter.png index 8890918..ee576f2 100644 Binary files a/readme_preview/jupyter.png and b/readme_preview/jupyter.png differ diff --git a/readme_preview/light.png b/readme_preview/light.png index 985686a..e1f407b 100644 Binary files a/readme_preview/light.png and b/readme_preview/light.png differ diff --git a/readme_preview/math.png b/readme_preview/math.png index 7f41e3e..ea3fcff 100644 Binary files a/readme_preview/math.png and b/readme_preview/math.png differ diff --git a/readme_preview/people.png b/readme_preview/people.png index 3e3687c..7c7ba11 100644 Binary files a/readme_preview/people.png and b/readme_preview/people.png differ diff --git a/readme_preview/photos-screenshot.png b/readme_preview/photos-screenshot.png index 3dce0a1..e10198b 100644 Binary files a/readme_preview/photos-screenshot.png and b/readme_preview/photos-screenshot.png differ diff --git a/readme_preview/projects.png b/readme_preview/projects.png index 375a898..6ceb5f1 100644 Binary files a/readme_preview/projects.png and b/readme_preview/projects.png differ diff --git a/readme_preview/publications.png b/readme_preview/publications.png index f1d0068..a02f6a1 100644 Binary files a/readme_preview/publications.png and b/readme_preview/publications.png differ diff --git a/readme_preview/repositories.png b/readme_preview/repositories.png index e1a7ac9..ede6389 100644 Binary files a/readme_preview/repositories.png and b/readme_preview/repositories.png differ