diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0fc24dcdc824..0c1780352ae9 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -46,6 +46,6 @@ jobs: fi echo "::set-output name=DEPLOY_BRANCH::gh-pages" - name: Deploy website - run: yes | bin/deploy --verbose ${{ steps.setup.outputs.NO_PUSH }} + run: yes | bash bin/deploy --verbose ${{ steps.setup.outputs.NO_PUSH }} --src ${{ steps.setup.outputs.SRC_BRANCH }} --deploy ${{ steps.setup.outputs.DEPLOY_BRANCH }} diff --git a/Gemfile b/Gemfile index 5bb7cd6ebe6d..323cfa3c6fe8 100644 --- a/Gemfile +++ b/Gemfile @@ -18,3 +18,7 @@ group :jekyll_plugins do gem 'htmlcompressor' gem 'htmlbeautifier' end +group :other_plugins do + gem 'httparty' + gem 'feedjira' +end diff --git a/README.md b/README.md index ee416d0050e9..eb461bebb015 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,11 @@ Feel free to add your own page(s) by sending a PR. - + + + + + diff --git a/_bibliography/papers.bib b/_bibliography/papers.bib index 7ed262b72c94..235f43e732a0 100644 --- a/_bibliography/papers.bib +++ b/_bibliography/papers.bib @@ -1,72 +1,46 @@ --- --- -@string{aps = {American Physical Society,}} - -@book{einstein1956investigations, - bibtex_show={true}, - title={Investigations on the Theory of the Brownian Movement}, - author={Einstein, Albert}, - year={1956}, - publisher={Courier Corporation,} -} - -@article{einstein1950meaning, - abbr={AJP}, - bibtex_show={true}, - title={The meaning of relativity}, - author={Einstein, Albert and Taub, AH}, - journal={American Journal of Physics,}, - volume={18}, - number={6}, - pages={403--404}, - year={1950}, - publisher={American Association of Physics Teachers,} +@article{jameela2020simulation, + title={SIMULATION-BASED DATA AUGMENTATION USING PHYSICAL PRIORS FOR NOISE FILTERING DEEP NEURAL NETWORK}, + author={Jameela, M and Chen, L and Sit, A and Yoo, J and Verheggen, C and Sohn, G}, + journal={The International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences}, + volume={43}, + pages={247--254}, + year={2020}, + publisher={Copernicus GmbH} } -@article{PhysRev.47.777, - abbr={PhysRev}, - title={Can Quantum-Mechanical Description of Physical Reality Be Considered Complete?}, - author={Einstein, A. and Podolsky, B. and Rosen, N.}, - abstract={In a complete theory there is an element corresponding to each element of reality. A sufficient condition for the reality of a physical quantity is the possibility of predicting it with certainty, without disturbing the system. In quantum mechanics in the case of two physical quantities described by non-commuting operators, the knowledge of one precludes the knowledge of the other. Then either (1) the description of reality given by the wave function in quantum mechanics is not complete or (2) these two quantities cannot have simultaneous reality. Consideration of the problem of making predictions concerning a system on the basis of measurements made on another system that had previously interacted with it leads to the result that if (1) is false then (2) is also false. One is thus led to conclude that the description of reality as given by a wave function is not complete.}, - journal={Phys. Rev.,}, - volume={47}, - issue={10}, - pages={777--780}, - numpages={0}, - year={1935}, - month={May}, - publisher=aps, - doi={10.1103/PhysRev.47.777}, - url={http://link.aps.org/doi/10.1103/PhysRev.47.777}, - html={https://journals.aps.org/pr/abstract/10.1103/PhysRev.47.777}, - pdf={example_pdf.pdf}, - selected={true} -} - -@article{einstein1905molekularkinetischen, - title={{\"U}ber die von der molekularkinetischen Theorie der W{\"a}rme geforderte Bewegung von in ruhenden Fl{\"u}ssigkeiten suspendierten Teilchen}, - author={Einstein, A.}, - journal={Annalen der physik,}, - volume={322}, +@article{chen2019multi, + title={Multi-Scale Hierarchical CRF for Railway Electrification Asset Classification From Mobile Laser Scanning Data}, + author={Chen, Leihan and Jung, Jaewook and Sohn, Gunho}, + journal={IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing}, + volume={12}, number={8}, - pages={549--560}, - year={1905}, - publisher={Wiley Online Library} + pages={3131--3148}, + year={2019}, + publisher={IEEE}, + html={https://ieeexplore.ieee.org/abstract/document/8733888}, + selected={true} } -@article{einstein1905movement, - abbr={Ann. Phys.}, - title={Un the movement of small particles suspended in statiunary liquids required by the molecular-kinetic theory 0f heat}, - author={Einstein, A.}, - journal={Ann. Phys.,}, - volume={17}, - pages={549--560}, - year={1905} +@article{babacan2017semantic, + title={SEMANTIC SEGMENTATION OF INDOOR POINT CLOUDS USING CONVOLUTIONAL NEURAL NETWORK.}, + author={Babacan, K and Chen, L and Sohn, G}, + journal={ISPRS Annals of Photogrammetry, Remote Sensing \& Spatial Information Sciences}, + volume={4}, + year={2017}, } -@article{einstein1905electrodynamics, - title={On the electrodynamics of moving bodies}, - author={Einstein, A.}, - year={1905} -} +@article{jung2016multi, + title={Multi-range conditional random field for classifying railway electrification system objects using mobile laser scanning data}, + author={Jung, Jaewook and Chen, Leihan and Sohn, Gunho and Luo, Chao and Won, Jong-Un}, + journal={Remote Sensing}, + volume={8}, + number={12}, + pages={1008}, + year={2016}, + publisher={Multidisciplinary Digital Publishing Institute}, + html={https://www.mdpi.com/169814}, + selected={true} +} \ No newline at end of file diff --git a/_config.yml b/_config.yml index ed0ac8d0d126..9055e030c893 100644 --- a/_config.yml +++ b/_config.yml @@ -12,6 +12,7 @@ description: > # the ">" symbol means to ignore newlines until "footer_text:" footer_text: > Powered by Jekyll with al-folio theme. Hosted by GitHub Pages. + Photos from Unsplash. keywords: jekyll, jekyll-theme, academic-website, portfolio-website # add your own keywords or leave empty lang: en # the language of your site (for example: en, fr, cn, ru, etc.) icon: 🔥 # the emoji used as the favicon @@ -58,7 +59,7 @@ twitter_username: # your Twitter handle linkedin_username: leihan-chen-a368b322b # your LinkedIn user name scholar_userid: # your Google Scholar ID orcid_id: # your ORCID ID -medium_username: # your Medium username +medium_username: chu-yu quora_username: # your Quora username publons_id: # your ID on Publons research_gate_profile: # your profile on ResearchGate @@ -69,8 +70,9 @@ wikidata_id: # your wikidata id dblp_url: # your DBLP profile url stackoverflow_id: #your stackoverflow id -contact_note: > - You can even add a little note about which of these is the best way to reach you. +contact_note: +# contact_note: > +# You can even add a little note about which of these is the best way to reach you. google_analytics: # your google-analytics ID (format: UA-XXXXXXXXX) google_site_verification: # your google-site-verification ID (Google Search Console) @@ -93,6 +95,13 @@ pagination: disqus_shortname: leihan_chen # put your disqus shortname # https://help.disqus.com/en/articles/1717111-what-s-a-shortname +# External sources. +# If you have blog posts published on medium.com or other exteranl sources, +# you can display them in your blog by adding a link to the RSS feed. +external_sources: + - name: medium.com + rss_url: https://medium.com/@chu-yu/feed + # ----------------------------------------------------------------------------- # Collections # ----------------------------------------------------------------------------- @@ -107,7 +116,7 @@ collections: output: true permalink: /projects/:path/ -news_limit: 5 +news_limit: 3 # ----------------------------------------------------------------------------- # Jekyll settings @@ -116,7 +125,8 @@ news_limit: 5 # Markdown and syntax highlight markdown: kramdown highlighter: rouge -highlight_theme: github # https://github.com/jwarby/jekyll-pygments-themes +highlight_theme_light: github # https://github.com/jwarby/jekyll-pygments-themes +highlight_theme_dark: native # https://github.com/jwarby/jekyll-pygments-themes kramdown: input: GFM syntax_highlighter_opts: @@ -170,10 +180,12 @@ github: [metadata] # HTML remove comments () remove_HTML_comments: false -# HTML beautifier (_plugins/beautify.rb) / https://github.com/threedaymonk/htmlbeautifier +# HTML beautifier (_plugins/beautify.rb). +# Source: https://github.com/threedaymonk/htmlbeautifier beautify: false # This function has conflict with the code snippets, they can be displayed incorrectly -# HTML minify (_plugins/minify.rb) Thanks to: https://www.ffbit.com/blog/2021/03/17/html-minification-in-jekyll.html +# HTML minify (_plugins/minify.rb). +# Source: https://www.ffbit.com/blog/2021/03/17/html-minification-in-jekyll.html minify: false # CSS/SASS minify diff --git a/_includes/head.html b/_includes/head.html index 7b6c22c9d302..1661581a2720 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -1,4 +1,3 @@ - {% include metadata.html %} @@ -12,18 +11,21 @@ - + - {% if site.icon != empty -%} - - {%- endif %} + {% if site.icon.size < 3 %} + + {% elsif site.icon != blank %} + + {% endif %} - - {%- if site.enable_darkmode %} - + + {% if site.enable_darkmode %} + + - {%- endif -%} + {% endif %} diff --git a/_includes/news.html b/_includes/news.html index be55051c91dd..aa7f354644f5 100644 --- a/_includes/news.html +++ b/_includes/news.html @@ -1,7 +1,7 @@

news

- {% if site.news -%} + {% if site.news != blank -%}
{%- assign news = site.news | reverse -%} diff --git a/_includes/projects.html b/_includes/projects.html index 0f2e486b9ce1..503146e2a2db 100644 --- a/_includes/projects.html +++ b/_includes/projects.html @@ -1,36 +1,36 @@ - - -
- {% if project.redirect -%} - - {%- else -%} - + +
+
+ {% if project.redirect -%} + + {%- else -%} + {%- endif %} -
- {%- if project.img %} - {%- include figure.html - path=project.img - alt="project thumbnail" -%} - {%- endif %} -
-

{{ project.title }}

-

{{ project.description }}

-
- {%- if project.github -%} -
-
- -
- {%- if project.github_stars -%} - - - - - {%- endif %} +
+ {%- if project.img %} + {%- include figure.html + path=project.img + alt="project thumbnail" -%} + {%- endif %} +
+

{{ project.title }}

+

{{ project.description }}

+
+ {%- if project.github -%} +
+
+
+ {%- if project.github_stars -%} + + + + {%- endif %}
+ {%- endif %}
- -
\ No newline at end of file +
+ +
\ No newline at end of file diff --git a/_includes/scripts/masonry.html b/_includes/scripts/masonry.html index f610a7695ec1..804389d31ad3 100644 --- a/_includes/scripts/masonry.html +++ b/_includes/scripts/masonry.html @@ -1,6 +1,6 @@ {%- if site.enable_masonry -%} - + - + {%- endif -%} diff --git a/_layouts/bib.html b/_layouts/bib.html index b224402fa7d9..8e80c424a3b2 100644 --- a/_layouts/bib.html +++ b/_layouts/bib.html @@ -75,6 +75,8 @@ {%- capture entrytype -%}{{entry.journal}}{%- endcapture -%} {%- elsif entry.type == "inproceedings" -%} {%- capture entrytype -%}In {{entry.booktitle}} {%- endcapture -%} + {%- else -%} + {%- capture entrytype -%}{%- endcapture -%} {%- endif -%} {%- if entry.month -%} {%- capture entrymonth -%}{{ " " }}{{ entry.month | capitalize }}{%- endcapture -%} diff --git a/_layouts/default.html b/_layouts/default.html index dfd4d6fa1b68..cc35ba0e6f1d 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -13,7 +13,7 @@ - + {%- include header.html %} diff --git a/_pages/about.md b/_pages/about.md index 34826055ea45..b81c681299d1 100644 --- a/_pages/about.md +++ b/_pages/about.md @@ -16,9 +16,24 @@ news: true # includes a list of news items selected_papers: true # includes a list of papers marked as "selected={true}" social: true # includes social icons at the bottom of the page --- +My given name is 磊涵 which indicates integrity and self-restraint. -Write your biography here. Tell the world about yourself. Link to your favorite [subreddit](http://reddit.com). You can put a picture in, too. The code is already in, just name your picture `prof_pic.jpg` and put it in the `img/` folder. +I have a pen name Chu Yu (楚餘). + +Geospatial Scientist & Engineer. + +Amateur of Chinese poetry and literature. + +Recently addicting into playing Go, learning Chan and writing Chinese traditional characters. + +Preferred Chinese Pre-modern Poet: Tao Yuanming(陶淵明), Li Shangyin(李商隱), Li Ho(李賀), Tan Xian(譚獻). + +Preferred Chinese Modern & Contemporary Poet: Yu Dafu(郁達夫), He Qifang(何其芳), Gu Cheng(顧城), Zhang Zhao(張棗) + +Preferred non-Chinese Poet: Rainer Maria Rilke, Paul Celan, Arthur Rimbaud, Stéphane Mallarmé. + + diff --git a/_pages/publications.md b/_pages/publications.md index 9254ad1cd041..5c26de27d7ee 100644 --- a/_pages/publications.md +++ b/_pages/publications.md @@ -3,7 +3,7 @@ layout: page permalink: /publications/ title: publications description: publications by categories in reversed chronological order. generated by jekyll-scholar. -years: [1956, 1950, 1935, 1905] +years: [2020, 2019, 2017, 2016] nav: true --- diff --git a/_plugins/external-posts.rb b/_plugins/external-posts.rb new file mode 100644 index 000000000000..e4fd5eb69517 --- /dev/null +++ b/_plugins/external-posts.rb @@ -0,0 +1,36 @@ +require 'feedjira' +require 'httparty' +require 'jekyll' + +module ExternalPosts + class ExternalPostsGenerator < Jekyll::Generator + safe true + priority :high + + def generate(site) + if site.config['external_sources'] != nil + site.config['external_sources'].each do |src| + p "Fetching external posts from #{src['name']}:" + xml = HTTParty.get(src['rss_url']).body + feed = Feedjira.parse(xml) + feed.entries.each do |e| + p "...fetching #{e.url}" + slug = e.title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') + path = site.in_source_dir("_posts/#{slug}.md") + doc = Jekyll::Document.new( + path, { :site => site, :collection => site.collections['posts'] } + ) + doc.data['external_source'] = src['name']; + doc.data['feed_content'] = e.content; + doc.data['title'] = "#{e.title}"; + doc.data['description'] = e.summary; + doc.data['date'] = e.published; + doc.data['redirect'] = e.url; + site.collections['posts'].docs << doc + end + end + end + end + end + +end diff --git a/_posts/2022-02-01-redirect.md b/_posts/2022-02-01-redirect.md new file mode 100644 index 000000000000..29170d855800 --- /dev/null +++ b/_posts/2022-02-01-redirect.md @@ -0,0 +1,7 @@ +--- +layout: post +title: a post with redirect +date: 2021-07-04 17:39:00 +description: you can also redirect to assets like pdf +redirect: /assets/pdf/example_pdf.pdf +--- diff --git a/_sass/_base.scss b/_sass/_base.scss index 7c46b5813b4a..d21521293326 100644 --- a/_sass/_base.scss +++ b/_sass/_base.scss @@ -12,6 +12,15 @@ hr { border-top: 1px solid var(--global-divider-color); } +table { + td, th { + color: var(--global-text-color); + } + td { + font-size: 1rem; + } +} + a, table.table a { color: var(--global-theme-color); &:hover { @@ -51,7 +60,32 @@ blockquote { text-align: center; } +// Card + +.card { + background-color: var(--global-card-bg-color); + + img { + width: 100%; + } + + .card-title { + color: var(--global-text-color); + } + + .card-item { + width: auto; + margin-bottom: 10px; + + .row { + display: flex; + align-items: center; + } + } +} + // Citation + .citation, .citation-number { color: var(--global-theme-color); } @@ -199,18 +233,6 @@ blockquote { } } - -// News - -.news table td { - font-size: 1rem; - color: var(--global-text-color); -} - -.news table th { - color: var(--global-text-color); -} - // Social (bottom) .social { @@ -292,6 +314,7 @@ footer.sticky-bottom { color: var(--global-text-color-light); font-size: 0.875rem; padding-top: 0.25rem; + padding-bottom: 0; } a { color: var(--global-text-color); @@ -349,9 +372,6 @@ footer.sticky-bottom { img { width: 100%; } - .card-title { - color: $black-color; - } } .card-item { @@ -364,7 +384,7 @@ footer.sticky-bottom { } } - .grid-item { + .grid-sizer, .grid-item { width: 250px; margin-bottom: 10px; } @@ -545,6 +565,7 @@ html.transition *:after { .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); @@ -555,15 +576,9 @@ html.transition *:after { } } .post-content{ - blockquote { - border-left: 5px solid var(--global-theme-color); - padding: 8px; - } -} -} - -.post-tags { - color: var(--global-text-color-light); - font-size: 0.875rem; - padding-top: 0.25rem; + blockquote { + border-left: 5px solid var(--global-theme-color); + padding: 8px; + } + } } diff --git a/_sass/_themes.scss b/_sass/_themes.scss index 79a8e047c876..118bca7a873a 100644 --- a/_sass/_themes.scss +++ b/_sass/_themes.scss @@ -14,6 +14,7 @@ --global-footer-link-color: #{$white-color}; --global-distill-app-color: #{$grey-color}; --global-divider-color: rgba(0,0,0,.1); + --global-card-bg-color: #{$white-color}; .fa-sun { display : none; @@ -37,6 +38,7 @@ html[data-theme='dark'] { --global-footer-link-color: #{$black-color}; --global-distill-app-color: #{$grey-color-light}; --global-divider-color: #424246; + --global-card-bg-color: #{$grey-900}; .fa-sun { padding-left: 10px; diff --git a/_sass/_variables.scss b/_sass/_variables.scss index 5045a3df1f3b..b050aa6e7f67 100644 --- a/_sass/_variables.scss +++ b/_sass/_variables.scss @@ -26,6 +26,7 @@ $yellow-color: #efcc00 !default; $grey-color: #828282 !default; $grey-color-light: lighten($grey-color, 40%); $grey-color-dark: #1C1C1D; +$grey-900: #212529; $white-color: #ffffff !default; $black-color: #000000 !default; diff --git a/assets/js/mansory.js b/assets/js/masonry.js similarity index 100% rename from assets/js/mansory.js rename to assets/js/masonry.js diff --git a/assets/js/theme.js b/assets/js/theme.js index 371365ec2f50..169ea21d41bd 100644 --- a/assets/js/theme.js +++ b/assets/js/theme.js @@ -11,6 +11,8 @@ let toggleTheme = (theme) => { let setTheme = (theme) => { transTheme(); + setHighlight(theme); + if (theme) { document.documentElement.setAttribute("data-theme", theme); } @@ -28,6 +30,16 @@ let setTheme = (theme) => { } }; +let setHighlight = (theme) => { + if (theme == "dark") { + document.getElementById("highlight_theme_light").media = "none"; + document.getElementById("highlight_theme_dark").media = ""; + } else { + document.getElementById("highlight_theme_dark").media = "none"; + document.getElementById("highlight_theme_light").media = ""; + } +} + let transTheme = () => { document.documentElement.classList.add("transition"); diff --git a/blog/index.html b/blog/index.html index fc0d6d6e8182..082e2e381cd6 100644 --- a/blog/index.html +++ b/blog/index.html @@ -5,7 +5,7 @@ enabled: true collection: posts permalink: /page/:num/ - per_page: 3 + per_page: 5 sort_field: date sort_reverse: true trail: @@ -24,17 +24,37 @@

{{ site.blog_description }}

    {% for post in paginator.posts %} - {% assign read_time = post.content | number_of_words | divided_by: 180 | plus: 1 %} + {% if post.external_source == blank %} + {% assign read_time = post.content | number_of_words | divided_by: 180 | plus: 1 %} + {% else %} + {% assign read_time = post.feed_content | strip_html | number_of_words | divided_by: 180 | plus: 1 %} + {% endif %} {% assign year = post.date | date: "%Y" %} {% assign tags = post.tags | join: "" %} {% assign categories = post.categories | join: "" %}
  • -

    {{ post.title }} +

    + {% if post.redirect == blank %} + {{ post.title }} + {% else %} + {% if post.redirect contains '://' %} + {{ post.title }} + + + + {% else %} + {{ post.title }} + {% endif %} + {% endif %}

    {{ post.description }}

    -