From e7efb2f54c9c76f7db240acf3afa84a36c7cb9fb Mon Sep 17 00:00:00 2001 From: Alexius Wadell Date: Sat, 4 Nov 2023 19:35:30 -0400 Subject: [PATCH] first pass --- .github/workflows/jekyll-gh-pages.yml | 54 + .gitignore | 4 + .ruby-version | 1 + CNAME | 1 + Gemfile | 7 + Gemfile.lock | 70 + LICENSE | 21 + README.md | 5 + _config.yml | 27 + _data/menu.yml | 5 + _data/people.yml | 34 + _includes/analytics.html | 13 + _includes/footer.html | 9 + _includes/head.html | 15 + _includes/header.html | 15 + _includes/navigation.html | 28 + _includes/person-image.html | 46 + _includes/person.html | 51 + _includes/project-card.html | 33 + _includes/sidebar.html | 16 + _layouts/default.html | 23 + _layouts/page.html | 10 + _layouts/project.html | 17 + _pages/about.md | 18 + _pages/contact.md | 44 + _pages/services.md | 20 + _projects/catalyst.md | 25 + _projects/llm_optimizer.md | 13 + _projects/pde.md | 10 + assets/css/_sass/bootstrap/_alert.scss | 51 + assets/css/_sass/bootstrap/_badge.scss | 54 + assets/css/_sass/bootstrap/_breadcrumb.scss | 41 + assets/css/_sass/bootstrap/_button-group.scss | 163 + assets/css/_sass/bootstrap/_buttons.scss | 137 + assets/css/_sass/bootstrap/_card.scss | 289 + assets/css/_sass/bootstrap/_carousel.scss | 197 + assets/css/_sass/bootstrap/_close.scss | 41 + assets/css/_sass/bootstrap/_code.scss | 48 + assets/css/_sass/bootstrap/_custom-forms.scss | 507 + assets/css/_sass/bootstrap/_dropdown.scss | 191 + assets/css/_sass/bootstrap/_forms.scss | 330 + assets/css/_sass/bootstrap/_functions.scss | 86 + assets/css/_sass/bootstrap/_grid.scss | 52 + assets/css/_sass/bootstrap/_images.scss | 42 + assets/css/_sass/bootstrap/_input-group.scss | 193 + assets/css/_sass/bootstrap/_jumbotron.scss | 17 + assets/css/_sass/bootstrap/_list-group.scss | 149 + assets/css/_sass/bootstrap/_media.scss | 8 + assets/css/_sass/bootstrap/_mixins.scss | 47 + assets/css/_sass/bootstrap/_modal.scss | 229 + assets/css/_sass/bootstrap/_nav.scss | 120 + assets/css/_sass/bootstrap/_navbar.scss | 294 + assets/css/_sass/bootstrap/_pagination.scss | 73 + assets/css/_sass/bootstrap/_popover.scss | 171 + assets/css/_sass/bootstrap/_print.scss | 141 + assets/css/_sass/bootstrap/_progress.scss | 43 + assets/css/_sass/bootstrap/_reboot.scss | 483 + assets/css/_sass/bootstrap/_root.scss | 19 + assets/css/_sass/bootstrap/_spinners.scss | 55 + assets/css/_sass/bootstrap/_tables.scss | 185 + assets/css/_sass/bootstrap/_toasts.scss | 44 + assets/css/_sass/bootstrap/_tooltip.scss | 115 + assets/css/_sass/bootstrap/_transitions.scss | 20 + assets/css/_sass/bootstrap/_type.scss | 125 + assets/css/_sass/bootstrap/_utilities.scss | 17 + assets/css/_sass/bootstrap/_variables.scss | 1123 ++ .../css/_sass/bootstrap/bootstrap-grid.scss | 29 + .../css/_sass/bootstrap/bootstrap-reboot.scss | 12 + assets/css/_sass/bootstrap/bootstrap.scss | 44 + .../_sass/bootstrap/css/bootstrap-grid.css | 3719 ++++++ .../bootstrap/css/bootstrap-grid.css.map | 1 + .../bootstrap/css/bootstrap-grid.min.css | 7 + .../bootstrap/css/bootstrap-grid.min.css.map | 1 + .../_sass/bootstrap/css/bootstrap-grid.scss | 3719 ++++++ .../_sass/bootstrap/css/bootstrap-reboot.css | 331 + .../bootstrap/css/bootstrap-reboot.css.map | 1 + .../bootstrap/css/bootstrap-reboot.min.css | 8 + .../css/bootstrap-reboot.min.css.map | 1 + .../css/_sass/bootstrap/css/bootstrap.css.map | 1 + .../css/_sass/bootstrap/css/bootstrap.min.css | 7 + .../_sass/bootstrap/css/bootstrap.min.css.map | 1 + assets/css/_sass/bootstrap/css/bootstrap.scss | 10038 +++++++++++++++ assets/css/_sass/bootstrap/mixins/_alert.scss | 13 + .../bootstrap/mixins/_background-variant.scss | 21 + assets/css/_sass/bootstrap/mixins/_badge.scss | 17 + .../bootstrap/mixins/_border-radius.scss | 63 + .../_sass/bootstrap/mixins/_box-shadow.scss | 20 + .../_sass/bootstrap/mixins/_breakpoints.scss | 123 + .../css/_sass/bootstrap/mixins/_buttons.scss | 107 + assets/css/_sass/bootstrap/mixins/_caret.scss | 62 + .../css/_sass/bootstrap/mixins/_clearfix.scss | 7 + .../_sass/bootstrap/mixins/_deprecate.scss | 10 + assets/css/_sass/bootstrap/mixins/_float.scss | 14 + assets/css/_sass/bootstrap/mixins/_forms.scss | 192 + .../_sass/bootstrap/mixins/_gradients.scss | 45 + .../bootstrap/mixins/_grid-framework.scss | 66 + assets/css/_sass/bootstrap/mixins/_grid.scss | 51 + assets/css/_sass/bootstrap/mixins/_hover.scss | 37 + assets/css/_sass/bootstrap/mixins/_image.scss | 36 + .../_sass/bootstrap/mixins/_list-group.scss | 21 + assets/css/_sass/bootstrap/mixins/_lists.scss | 7 + .../_sass/bootstrap/mixins/_nav-divider.scss | 10 + .../_sass/bootstrap/mixins/_pagination.scss | 22 + .../_sass/bootstrap/mixins/_reset-text.scss | 17 + .../css/_sass/bootstrap/mixins/_resize.scss | 6 + .../bootstrap/mixins/_screen-reader.scss | 33 + assets/css/_sass/bootstrap/mixins/_size.scss | 7 + .../_sass/bootstrap/mixins/_table-row.scss | 39 + .../bootstrap/mixins/_text-emphasis.scss | 16 + .../_sass/bootstrap/mixins/_text-hide.scss | 11 + .../bootstrap/mixins/_text-truncate.scss | 8 + .../_sass/bootstrap/mixins/_transition.scss | 16 + .../_sass/bootstrap/mixins/_visibility.scss | 8 + .../css/_sass/bootstrap/utilities/_align.scss | 8 + .../bootstrap/utilities/_background.scss | 19 + .../_sass/bootstrap/utilities/_borders.scss | 75 + .../_sass/bootstrap/utilities/_clearfix.scss | 3 + .../_sass/bootstrap/utilities/_display.scss | 26 + .../css/_sass/bootstrap/utilities/_embed.scss | 39 + .../css/_sass/bootstrap/utilities/_flex.scss | 51 + .../css/_sass/bootstrap/utilities/_float.scss | 11 + .../_sass/bootstrap/utilities/_overflow.scss | 5 + .../_sass/bootstrap/utilities/_position.scss | 32 + .../bootstrap/utilities/_screenreaders.scss | 11 + .../_sass/bootstrap/utilities/_shadows.scss | 6 + .../_sass/bootstrap/utilities/_sizing.scss | 20 + .../_sass/bootstrap/utilities/_spacing.scss | 73 + .../bootstrap/utilities/_stretched-link.scss | 19 + .../css/_sass/bootstrap/utilities/_text.scss | 72 + .../bootstrap/utilities/_visibility.scss | 13 + assets/css/_sass/bootstrap/vendor/_rfs.scss | 204 + assets/css/_sass/custom.scss | 14 + assets/css/_sass/style.scss | 10 + assets/css/main.scss | 78 + assets/img/abhutani.png | Bin 0 -> 91735 bytes assets/img/asebasti.jpeg | Bin 0 -> 44181 bytes assets/img/awadell.jpg | Bin 0 -> 22583 bytes assets/img/incite_image_mb.png | Bin 0 -> 257843 bytes assets/img/incite_image_v0.png | Bin 0 -> 275514 bytes assets/img/llm-optimizer.svg | 1 + assets/img/shangzhu.jpeg | Bin 0 -> 7325 bytes assets/img/venkvis.png | Bin 0 -> 67959 bytes .../vendor/bootstrap/js/bootstrap.bundle.js | 7013 ++++++++++ .../bootstrap/js/bootstrap.bundle.js.map | 1 + .../bootstrap/js/bootstrap.bundle.min.js | 7 + .../bootstrap/js/bootstrap.bundle.min.js.map | 1 + assets/vendor/bootstrap/js/bootstrap.js | 4435 +++++++ assets/vendor/bootstrap/js/bootstrap.js.map | 1 + assets/vendor/bootstrap/js/bootstrap.min.js | 7 + .../vendor/bootstrap/js/bootstrap.min.js.map | 1 + assets/vendor/jquery/jquery.js | 10598 ++++++++++++++++ assets/vendor/jquery/jquery.min.js | 2 + assets/vendor/jquery/jquery.min.map | 1 + assets/vendor/jquery/jquery.slim.js | 8495 +++++++++++++ assets/vendor/jquery/jquery.slim.min.js | 2 + assets/vendor/jquery/jquery.slim.min.map | 1 + index.md | 16 + 157 files changed, 56931 insertions(+) create mode 100644 .github/workflows/jekyll-gh-pages.yml create mode 100644 .gitignore create mode 100644 .ruby-version create mode 100644 CNAME create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 LICENSE create mode 100644 README.md create mode 100644 _config.yml create mode 100644 _data/menu.yml create mode 100644 _data/people.yml create mode 100644 _includes/analytics.html create mode 100644 _includes/footer.html create mode 100644 _includes/head.html create mode 100644 _includes/header.html create mode 100644 _includes/navigation.html create mode 100644 _includes/person-image.html create mode 100644 _includes/person.html create mode 100644 _includes/project-card.html create mode 100644 _includes/sidebar.html create mode 100644 _layouts/default.html create mode 100644 _layouts/page.html create mode 100644 _layouts/project.html create mode 100644 _pages/about.md create mode 100644 _pages/contact.md create mode 100644 _pages/services.md create mode 100644 _projects/catalyst.md create mode 100644 _projects/llm_optimizer.md create mode 100644 _projects/pde.md create mode 100644 assets/css/_sass/bootstrap/_alert.scss create mode 100644 assets/css/_sass/bootstrap/_badge.scss create mode 100644 assets/css/_sass/bootstrap/_breadcrumb.scss create mode 100644 assets/css/_sass/bootstrap/_button-group.scss create mode 100644 assets/css/_sass/bootstrap/_buttons.scss create mode 100644 assets/css/_sass/bootstrap/_card.scss create mode 100644 assets/css/_sass/bootstrap/_carousel.scss create mode 100644 assets/css/_sass/bootstrap/_close.scss create mode 100644 assets/css/_sass/bootstrap/_code.scss create mode 100644 assets/css/_sass/bootstrap/_custom-forms.scss create mode 100644 assets/css/_sass/bootstrap/_dropdown.scss create mode 100644 assets/css/_sass/bootstrap/_forms.scss create mode 100644 assets/css/_sass/bootstrap/_functions.scss create mode 100644 assets/css/_sass/bootstrap/_grid.scss create mode 100644 assets/css/_sass/bootstrap/_images.scss create mode 100644 assets/css/_sass/bootstrap/_input-group.scss create mode 100644 assets/css/_sass/bootstrap/_jumbotron.scss create mode 100644 assets/css/_sass/bootstrap/_list-group.scss create mode 100644 assets/css/_sass/bootstrap/_media.scss create mode 100644 assets/css/_sass/bootstrap/_mixins.scss create mode 100644 assets/css/_sass/bootstrap/_modal.scss create mode 100644 assets/css/_sass/bootstrap/_nav.scss create mode 100644 assets/css/_sass/bootstrap/_navbar.scss create mode 100644 assets/css/_sass/bootstrap/_pagination.scss create mode 100644 assets/css/_sass/bootstrap/_popover.scss create mode 100644 assets/css/_sass/bootstrap/_print.scss create mode 100644 assets/css/_sass/bootstrap/_progress.scss create mode 100644 assets/css/_sass/bootstrap/_reboot.scss create mode 100644 assets/css/_sass/bootstrap/_root.scss create mode 100644 assets/css/_sass/bootstrap/_spinners.scss create mode 100644 assets/css/_sass/bootstrap/_tables.scss create mode 100644 assets/css/_sass/bootstrap/_toasts.scss create mode 100644 assets/css/_sass/bootstrap/_tooltip.scss create mode 100644 assets/css/_sass/bootstrap/_transitions.scss create mode 100644 assets/css/_sass/bootstrap/_type.scss create mode 100644 assets/css/_sass/bootstrap/_utilities.scss create mode 100644 assets/css/_sass/bootstrap/_variables.scss create mode 100644 assets/css/_sass/bootstrap/bootstrap-grid.scss create mode 100644 assets/css/_sass/bootstrap/bootstrap-reboot.scss create mode 100644 assets/css/_sass/bootstrap/bootstrap.scss create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-grid.css create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-grid.css.map create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-grid.min.css create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-grid.min.css.map create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-grid.scss create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-reboot.css create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-reboot.css.map create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-reboot.min.css create mode 100644 assets/css/_sass/bootstrap/css/bootstrap-reboot.min.css.map create mode 100644 assets/css/_sass/bootstrap/css/bootstrap.css.map create mode 100644 assets/css/_sass/bootstrap/css/bootstrap.min.css create mode 100644 assets/css/_sass/bootstrap/css/bootstrap.min.css.map create mode 100644 assets/css/_sass/bootstrap/css/bootstrap.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_alert.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_background-variant.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_badge.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_border-radius.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_box-shadow.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_breakpoints.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_buttons.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_caret.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_clearfix.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_deprecate.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_float.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_forms.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_gradients.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_grid-framework.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_grid.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_hover.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_image.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_list-group.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_lists.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_nav-divider.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_pagination.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_reset-text.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_resize.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_screen-reader.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_size.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_table-row.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_text-emphasis.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_text-hide.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_text-truncate.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_transition.scss create mode 100644 assets/css/_sass/bootstrap/mixins/_visibility.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_align.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_background.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_borders.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_clearfix.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_display.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_embed.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_flex.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_float.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_overflow.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_position.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_screenreaders.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_shadows.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_sizing.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_spacing.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_stretched-link.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_text.scss create mode 100644 assets/css/_sass/bootstrap/utilities/_visibility.scss create mode 100644 assets/css/_sass/bootstrap/vendor/_rfs.scss create mode 100644 assets/css/_sass/custom.scss create mode 100644 assets/css/_sass/style.scss create mode 100644 assets/css/main.scss create mode 100644 assets/img/abhutani.png create mode 100644 assets/img/asebasti.jpeg create mode 100644 assets/img/awadell.jpg create mode 100644 assets/img/incite_image_mb.png create mode 100644 assets/img/incite_image_v0.png create mode 100644 assets/img/llm-optimizer.svg create mode 100644 assets/img/shangzhu.jpeg create mode 100644 assets/img/venkvis.png create mode 100644 assets/vendor/bootstrap/js/bootstrap.bundle.js create mode 100644 assets/vendor/bootstrap/js/bootstrap.bundle.js.map create mode 100644 assets/vendor/bootstrap/js/bootstrap.bundle.min.js create mode 100644 assets/vendor/bootstrap/js/bootstrap.bundle.min.js.map create mode 100644 assets/vendor/bootstrap/js/bootstrap.js create mode 100644 assets/vendor/bootstrap/js/bootstrap.js.map create mode 100644 assets/vendor/bootstrap/js/bootstrap.min.js create mode 100644 assets/vendor/bootstrap/js/bootstrap.min.js.map create mode 100644 assets/vendor/jquery/jquery.js create mode 100644 assets/vendor/jquery/jquery.min.js create mode 100644 assets/vendor/jquery/jquery.min.map create mode 100644 assets/vendor/jquery/jquery.slim.js create mode 100644 assets/vendor/jquery/jquery.slim.min.js create mode 100644 assets/vendor/jquery/jquery.slim.min.map create mode 100644 index.md diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml new file mode 100644 index 0000000..c2264a3 --- /dev/null +++ b/.github/workflows/jekyll-gh-pages.yml @@ -0,0 +1,54 @@ +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll with GitHub Pages dependencies preinstalled + +on: + # Runs on pushes targeting the default branch + push: + branches: + - main + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + - name: Build with Jekyll + run: bundle exec jekyll build + env: + JEKYLL_ENV: production + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + with: + path: _site/ + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2ca8682 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..be94e6f --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.2.2 diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..8949b6a --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +business-frontpage.webjeda.com \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..aea06e6 --- /dev/null +++ b/Gemfile @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +# gem "rails" + +gem "jekyll", "~> 4.3" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..4f42a9c --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,70 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.5) + public_suffix (>= 2.0.2, < 6.0) + colorator (1.1.0) + concurrent-ruby (1.2.2) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.16.3) + forwardable-extended (2.6.0) + google-protobuf (3.25.0-arm64-darwin) + http_parser.rb (0.8.0) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + jekyll (4.3.2) + 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-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.3) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.6) + rouge (4.2.0) + safe_yaml (1.0.5) + sass-embedded (1.69.5-arm64-darwin) + google-protobuf (~> 3.23) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.5.0) + webrick (1.8.1) + +PLATFORMS + arm64-darwin-22 + +DEPENDENCIES + jekyll (~> 4.3) + +BUNDLED WITH + 2.4.10 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9478164 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013-2019 Blackrock Digital LLC + +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..662182a --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Scientific Foundation Models + +Learn more at our website [scifm.ai](https://scifm.ai)! + +Thanks to [Blackrock Digital LLC.](https://github.com/BlackrockDigital/startbootstrap-business-frontpage) for a great starter template! diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..d56ef71 --- /dev/null +++ b/_config.yml @@ -0,0 +1,27 @@ +title: Scientific Foundation Models +navtitle: Scientific Foundation Models +description: | + +# disabled because we are using a custom domain +#baseurl: /business-frontpage + +color-scheme: "mediumseagreen" # the scheme can be any HEX code like "#00aa55" + +sass: + sass_dir: /assets/css/_sass + style: compressed + +include: + - _pages + - _projects + +exclude: + - .sass-cache + +analytics: + gtag: G-DGCRY7J6T8 + +# make pages for the _projects folder +collections: + projects: + output: true diff --git a/_data/menu.yml b/_data/menu.yml new file mode 100644 index 0000000..cab1bd5 --- /dev/null +++ b/_data/menu.yml @@ -0,0 +1,5 @@ +- title: Home + link: / + +- title: About Us + link: /about/ diff --git a/_data/people.yml b/_data/people.yml new file mode 100644 index 0000000..26c837f --- /dev/null +++ b/_data/people.yml @@ -0,0 +1,34 @@ +venkvis: + display_name: "Venkat Viswanathan" + webpage: "https://www.andrew.cmu.edu/user/venkatv/index.html#" + image: assets/img/venkvis.png + bio: Associate Professor of Mechanical Engineering, Carnegie Mellon University + email: "venkvis [at] umich [dot] edu" + +awadell: + display_name: "Alex Wadell" + webpage: "https://www.linkedin.com/in/alexiuswadell/" + bio: Ph.D. Student, Mechanical Engineering, University of Michigan + image: assets/img/awadell.jpg + email: "awadell [at] umich [dot] edu" + +abhutani: + display_name: "Anoushka Bhutani" + image: assets/img/abhutani.png + bio: Ph.D. Student, Mechanical Engineering, University of Michigan + email: "abhutani [at] unmich [dot] edu" + +asebasti: + display_name: "Amal S Sebastian" + role: phd + image: assets/img/asebasti.jpeg + bio: Ph.D. Student, Aerospace Engineering, University of Michigan + webpage: "https://amalss18.github.io/" + email: asebasti [at] umich [dot] edu + +shangzhu: + display_name: "Shang Zhu" + image: assets/img/shangzhu.jpeg + bio: Ph.D. Candidate, Mechanical Engineering, University of Michigan + webpage: "https://www.linkedin.com/in/shang-zhu-0935a4153/" + email: shangzhu [at] umich [dot] edu diff --git a/_includes/analytics.html b/_includes/analytics.html new file mode 100644 index 0000000..933a80e --- /dev/null +++ b/_includes/analytics.html @@ -0,0 +1,13 @@ +--- +--- + +{% if jekyll.environment == 'production' %} + + +{% endif %} diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..83d9744 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,9 @@ + + diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..393008d --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,15 @@ + + + + + + + {{ site.title }} + + + + + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..6a36fd0 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,15 @@ + +
+
+
+
+

+ {{ page.title }} +

+

+ {{ page.description }} +

+
+
+
+
diff --git a/_includes/navigation.html b/_includes/navigation.html new file mode 100644 index 0000000..eb224c6 --- /dev/null +++ b/_includes/navigation.html @@ -0,0 +1,28 @@ + + diff --git a/_includes/person-image.html b/_includes/person-image.html new file mode 100644 index 0000000..683e2d7 --- /dev/null +++ b/_includes/person-image.html @@ -0,0 +1,46 @@ + +{% assign person = include.person %} + +{% comment %} + +Usage: {% include person-image.html person=person %} + +Sizing of the SVG is done in a viewBox, and it's resized later in CSS. + +text-decoration hack is for Safari. We don't SVGs to be underlined. + +{% endcomment %} + +{% if person.image %} + {% capture image %} + {{ person.display_name }} + {% endcapture %} +{% else %} + {% capture image %} + + {{ person.display_name }} + + + {{ person.display_name | slice: 0 }} + + + {% endcapture %} +{% endif %} + +{% if person.webpage %} + + {{ image }} + +{% else %} + {{ image }} +{% endif %} diff --git a/_includes/person.html b/_includes/person.html new file mode 100644 index 0000000..909050d --- /dev/null +++ b/_includes/person.html @@ -0,0 +1,51 @@ +{% assign person = include.person %} + +{% comment %} + +Usage: + +{% for item in site.data.people %} + {% assign person = item[1] %} + {% if person.role == role.key %} + {% include person.html person=person image=true %} + {% endif %} +{% endfor %} + +Use the image parameter to include or not include an image. + +Note that pl-0 just removes the left padding from the name part that is put +there by default by Bootstrap columns. + +{% endcomment %} + +{% if person.webpage %} + {% capture name %} + {{ person.display_name }} + {% endcapture %} +{% else %} + {% assign name = person.display_name %} +{% endif %} + +{% if include.image %} +
+
+ {% include person-image.html person=person %} +
+
+
{{ name }}
+ {% if person.bio %} +
{{person.bio}}
+ {% endif %} + {% if person.email %} + + {% endif %} +
+
+{% else %} +
+ {{ name }} + {% if person.bio %} + {{person.bio}} + {% endif %} +
+{% endif %} diff --git a/_includes/project-card.html b/_includes/project-card.html new file mode 100644 index 0000000..9c29595 --- /dev/null +++ b/_includes/project-card.html @@ -0,0 +1,33 @@ + +{% assign project = include.project %} + +{% if project.link %} + {% assign proj-url = project.link %} +{% else %} + {% capture proj-url %}{{site.baseurl}}{{project.url}}{% endcapture %} +{% endif %} + +{% if project.card-image %} + {% assign card-image = project.card-image %} +{% else %} + {% assign card-image = "http://placeholder.pics/svg/400x300/3cb371-3cb371/3cb371-3cb371" %} +{% endif %} + +{% if project.card-title %} +{% assign card-title = project.card-title %} +{% else %} +{% assign card-title = project.title %} +{% endif %} + +
+
+ +
+

{{ card-title }}

+

{{ project.card-content }}

+
+ +
+
diff --git a/_includes/sidebar.html b/_includes/sidebar.html new file mode 100644 index 0000000..7f55ca3 --- /dev/null +++ b/_includes/sidebar.html @@ -0,0 +1,16 @@ +
+

Contact Us

+
+
+ Start Bootstrap +
3481 Melrose Place
Beverly Hills, CA 90210 +
+
+
+ P: + (123) 456-7890 +
+ E: + name@example.com +
+
diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..ff3b59b --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,23 @@ +--- +--- + + + +{% include head.html %} +{% include analytics.html %} + + + {% include navigation.html %} {% include header.html %} + +
+ {{ content }} +
+ + {% include footer.html %} + + + + + + + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 0000000..64128d0 --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,10 @@ +--- +layout: default +--- + +
+
+ {{ content }} +
+ {% include sidebar.html %} +
diff --git a/_layouts/project.html b/_layouts/project.html new file mode 100644 index 0000000..9f1d300 --- /dev/null +++ b/_layouts/project.html @@ -0,0 +1,17 @@ +--- +layout: default +--- + +
+
+ {{ content }} +
+
+ +

The Team

+
+ {% for uname in page.people %} + {% assign person = site.data.people[uname] %} + {% include person.html person=person image=true%} + {% endfor %} +
diff --git a/_pages/about.md b/_pages/about.md new file mode 100644 index 0000000..77b7f2b --- /dev/null +++ b/_pages/about.md @@ -0,0 +1,18 @@ +--- +title: About Us +layout: default +permalink: /about/ +people: +- venkvis +- abhutani +- awadell +- asebasti +- shangzhu +--- +## The Team +
+ {% for uname in page.people %} + {% assign person = site.data.people[uname] %} + {% include person.html person=person image=true%} + {% endfor %} +
diff --git a/_pages/contact.md b/_pages/contact.md new file mode 100644 index 0000000..a0d4ef4 --- /dev/null +++ b/_pages/contact.md @@ -0,0 +1,44 @@ +--- +layout: default +permalink: /contact/ +--- + +## Contact us + +
+
+
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+
+
+
+
diff --git a/_pages/services.md b/_pages/services.md new file mode 100644 index 0000000..76e962a --- /dev/null +++ b/_pages/services.md @@ -0,0 +1,20 @@ +--- +layout: default +permalink: /services/ +--- + +## Full length services page + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec molestie eu turpis eu semper. Aliquam sed tempor ex. Curabitur pretium auctor tellus. Nulla vel nisl vulputate, ornare sem convallis, mollis eros. Pellentesque in lacus eros. Aliquam non turpis eu ex auctor varius eget vel orci. Aliquam pharetra leo sed risus mattis, at aliquet diam sagittis. Curabitur finibus malesuada ligula, sit amet fermentum ligula cursus nec. Praesent elit dolor, porttitor sit amet egestas a, aliquet sit amet velit. Cras ac dictum urna, at dictum nibh. Etiam ornare eleifend ultrices. Sed non condimentum urna. Sed lacinia ante quis nisl ultrices, nec tempor quam interdum. Duis sagittis fermentum nunc in tincidunt. Maecenas fringilla cursus laoreet. + +Etiam convallis purus a ornare facilisis. Sed sodales accumsan mauris, ut congue sapien pretium id. Duis viverra consectetur posuere. Integer feugiat nulla ac elit pretium gravida. Donec laoreet porttitor dolor nec accumsan. Maecenas fringilla felis sodales nisl mattis, id congue sem volutpat. Nam ut dolor a ante iaculis porttitor ultricies et nisl. Maecenas sed sapien ac turpis aliquam elementum. Aliquam at eleifend metus. Curabitur ut fermentum turpis. Nulla tempus rutrum purus, non bibendum ante vulputate at. Nulla vel viverra nulla. Duis libero risus, ultricies non rhoncus at, tristique id velit. Duis ac ex tortor. Curabitur dui metus, ornare eu ornare vel, scelerisque in augue. Aliquam eget consectetur justo, ac hendrerit lectus. + +Fusce ullamcorper nisl eros. Mauris sed urna mattis, mattis velit non, dignissim massa. Aenean maximus ligula sed diam tincidunt, sed tempor metus finibus. Morbi ut nisi id sapien viverra malesuada ut ut dui. Mauris ut mollis magna, viverra fermentum metus. Proin ac ipsum quis mauris interdum sagittis. Fusce id massa eu dolor pharetra efficitur a sed nisi. Quisque quis gravida purus. Morbi facilisis sapien et tellus convallis, eu mattis nisl volutpat. Aliquam quis vehicula leo. Phasellus posuere dui orci, eu luctus neque sollicitudin sit amet. Donec nunc massa, posuere quis leo eget, porta dapibus velit. Maecenas quis pulvinar orci. + +Nunc varius sit amet ante id laoreet. Integer sapien nisl, accumsan dictum tempor eu, tempus at mi. Duis sit amet tellus elit. Aliquam tincidunt tellus eros, sed placerat ligula aliquam a. Morbi dapibus congue mauris, id dapibus lectus hendrerit at. Aliquam et porttitor metus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent imperdiet elit eu libero facilisis, sit amet vulputate leo rhoncus. + +Suspendisse accumsan ipsum nunc, sed fringilla metus hendrerit nec. Nulla gravida ante ac laoreet fermentum. Nunc aliquam nibh diam, id elementum urna convallis et. Duis mattis lacinia pharetra. Mauris ac lorem venenatis, ultricies nisl a, efficitur mauris. Etiam lacinia fermentum lectus, ac blandit nisi bibendum quis. Curabitur sit amet pharetra elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus ut tincidunt nulla. Vivamus fermentum sapien semper ex convallis hendrerit. Sed id eleifend justo. + +Nunc quam sem, condimentum ut nibh vitae, facilisis laoreet ligula. Vestibulum ultrices sapien at nulla ullamcorper eleifend. Duis quam elit, pulvinar et aliquam a, porttitor sit amet sem. Suspendisse potenti. Maecenas et mollis enim. Morbi vel scelerisque felis. Maecenas ultrices sem eget neque suscipit, eget consequat magna efficitur. + +Vestibulum suscipit diam tortor, ut semper dolor elementum pulvinar. Curabitur vitae lacus ut augue viverra venenatis non non libero. Nullam vitae pharetra felis. Integer a turpis non libero posuere dictum eget id massa. Nulla ac lorem dictum, facilisis lectus a, pellentesque nisi. Phasellus sapien enim, rhoncus et mattis eu, facilisis sed est. Maecenas faucibus ultrices varius. diff --git a/_projects/catalyst.md b/_projects/catalyst.md new file mode 100644 index 0000000..8fa0be5 --- /dev/null +++ b/_projects/catalyst.md @@ -0,0 +1,25 @@ +--- +title: Foundation Models for Molecular Discovery +layout: project +card-title: Molecular Discovery +card-content: | + We're training a BERT-based model on 49B molecules to accelerate material discovery and enable Generative AI for molecular design + +card-image: assets/img/incite_image_mb.png +people: +- abhutani +- awadell +--- + +## The Challenge + +![]({% link assets/img/incite_image_mb.png %}) + +Current energy storage materials development is hindered by expensive experiments that limit exploration to the vast space of known synthesizable materials. Therefore, current research has only focused on a very limited design space space hindering the effective development of batteries for electric vehicles, grid storage, and electric aircraft applications. To address the unique demands of these applications, such as high energy density, safety, scalability, and power density, it is essential to explore a much larger chemical space than the few hundred that are currently considered due to the high cost of experiments and physics simulations. + +Foundation models offer a solution to both the exploration and evaluation issues: these models use self-supervised pre-training strategies to leverage unlabeled datasets and learn representations of data that can be applied to downstream tasks. Large unlabeled datasets of billions of synthesizable molecules are readily available[^1]. Prior attempts to train FMs for molecular property prediction[^2] demonstrate promise, our project will scale up the training of foundation models to the largest available chemical libraries using wafer-scale computing to achieve accuracy similar to quantum mechanical computational methods and apply these to the electrolyte design problem. + +[^1]: For example, [Generating Multibillion Chemical Space of Readily Accessible Screening Compounds](https://doi.org/10.1016/j.isci.2020.101681), [Comparison of Combinatorial Fragment Spaces and Its Application to Ultralarge Make-on-Demand Compound Catalogs](https://doi.org/10.1021/acs.jcim.1c01378) and [SAVI, in silico generation of billions of easily synthesizable compounds through expert-system type rules](https://doi.org/10.1038/s41597-020-00727-4) + +[^2]: [Large-Scale Chemical Language Representations Capture Molecular Structure and Properties](https://doi.org/10.48550/arXiv.2106.09553), [Chemformer: a pre-trained transformer for computational chemistry](https://dx.doi.org/10.1088/2632-2153/ac3ffb), [ChemBERTa: Large-Scale Self-Supervised Pretraining for Molecular Property Prediction](https://arxiv.org/abs/2010.09885), [ChemBERTa-2: Towards Chemical Foundation Models](https://doi.org/10.48550/arXiv.2209.01712) and [MolCloze: A Unified Cloze-style Self-supervised Molecular Structure Learning Model for Chemical Property Prediction](https://doi.org/10.1109/BIBM52615.2021.9669794) + diff --git a/_projects/llm_optimizer.md b/_projects/llm_optimizer.md new file mode 100644 index 0000000..eab39ae --- /dev/null +++ b/_projects/llm_optimizer.md @@ -0,0 +1,13 @@ +--- +title: Foundations Models for Electrolyte Discovery +layout: default +card-title: Electrolyte Discovery +card-image: assets/img/llm-optimizer.svg +card-content: Can ChatGPT find a better Electrolyte? +people: +- shangzhu +--- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut ultricies odio turpis, et fringilla mauris tempus nec. Sed euismod non erat a varius. Donec dictum porttitor dolor, vel auctor odio congue in. Vivamus blandit nunc semper massa suscipit posuere. Quisque tincidunt blandit tellus, sed luctus leo vulputate a. In lectus erat, pulvinar et fringilla fermentum, luctus non quam. Vivamus nec gravida odio. In eget mauris bibendum, dapibus augue quis, dictum felis. Cras iaculis mauris sed felis aliquam euismod. Suspendisse pharetra purus id sem rhoncus semper. In lacinia sit amet diam nec venenatis. Morbi rutrum purus tortor, id cursus lorem interdum eu. Quisque vitae auctor libero. Nulla facilisi. + +Phasellus velit purus, vulputate id sem in, mollis mattis sem. Vestibulum et ligula vitae nulla rhoncus ultricies vel vel erat. Donec dignissim ullamcorper magna vitae ornare. Aenean suscipit, neque in suscipit finibus, mi lectus rhoncus est, ut eleifend neque velit non dolor. Mauris efficitur arcu ac purus auctor aliquam sit amet vitae augue. Nullam mauris metus, cursus lobortis aliquam sit amet, vulputate ac dolor. Integer tempor eros quis ex ultricies egestas nec et neque. Curabitur sit amet lectus vehicula, maximus augue tristique, fermentum augue. Curabitur sit amet libero ut mauris interdum maximus dapibus sit amet lacus. Donec id augue eu metus varius accumsan sed in justo. Ut facilisis felis urna, imperdiet cursus risus mollis a. Nunc id vulputate urna. Nulla eu ultricies dolor. Integer et sem sit amet lacus blandit sollicitudin. Fusce vestibulum ultricies quam id semper. Nulla egestas volutpat ligula, sed vulputate purus vulputate non. diff --git a/_projects/pde.md b/_projects/pde.md new file mode 100644 index 0000000..7ab33fc --- /dev/null +++ b/_projects/pde.md @@ -0,0 +1,10 @@ +--- +title: Foundations Models for PDEs +layout: default +card-title: Fluid Dynamics +card-content: Hello world! +people: +- asebasti +--- + +What are PDEs? diff --git a/assets/css/_sass/bootstrap/_alert.scss b/assets/css/_sass/bootstrap/_alert.scss new file mode 100644 index 0000000..da2a98a --- /dev/null +++ b/assets/css/_sass/bootstrap/_alert.scss @@ -0,0 +1,51 @@ +// +// Base styles +// + +.alert { + position: relative; + padding: $alert-padding-y $alert-padding-x; + margin-bottom: $alert-margin-bottom; + border: $alert-border-width solid transparent; + @include border-radius($alert-border-radius); +} + +// Headings for larger alerts +.alert-heading { + // Specified to prevent conflicts of changing $headings-color + color: inherit; +} + +// Provide class for links that match alerts +.alert-link { + font-weight: $alert-link-font-weight; +} + + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissible { + padding-right: $close-font-size + $alert-padding-x * 2; + + // Adjust close link position + .close { + position: absolute; + top: 0; + right: 0; + padding: $alert-padding-y $alert-padding-x; + color: inherit; + } +} + + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +@each $color, $value in $theme-colors { + .alert-#{$color} { + @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); + } +} diff --git a/assets/css/_sass/bootstrap/_badge.scss b/assets/css/_sass/bootstrap/_badge.scss new file mode 100644 index 0000000..2082f05 --- /dev/null +++ b/assets/css/_sass/bootstrap/_badge.scss @@ -0,0 +1,54 @@ +// Base class +// +// Requires one of the contextual, color modifier classes for `color` and +// `background-color`. + +.badge { + display: inline-block; + padding: $badge-padding-y $badge-padding-x; + @include font-size($badge-font-size); + font-weight: $badge-font-weight; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + @include border-radius($badge-border-radius); + @include transition($badge-transition); + + @at-root a#{&} { + @include hover-focus { + text-decoration: none; + } + } + + // Empty badges collapse automatically + &:empty { + display: none; + } +} + +// Quick fix for badges in buttons +.btn .badge { + position: relative; + top: -1px; +} + +// Pill badges +// +// Make them extra rounded with a modifier to replace v3's badges. + +.badge-pill { + padding-right: $badge-pill-padding-x; + padding-left: $badge-pill-padding-x; + @include border-radius($badge-pill-border-radius); +} + +// Colors +// +// Contextual variations (linked badges get darker on :hover). + +@each $color, $value in $theme-colors { + .badge-#{$color} { + @include badge-variant($value); + } +} diff --git a/assets/css/_sass/bootstrap/_breadcrumb.scss b/assets/css/_sass/bootstrap/_breadcrumb.scss new file mode 100644 index 0000000..be30950 --- /dev/null +++ b/assets/css/_sass/bootstrap/_breadcrumb.scss @@ -0,0 +1,41 @@ +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: $breadcrumb-padding-y $breadcrumb-padding-x; + margin-bottom: $breadcrumb-margin-bottom; + list-style: none; + background-color: $breadcrumb-bg; + @include border-radius($breadcrumb-border-radius); +} + +.breadcrumb-item { + // The separator between breadcrumbs (by default, a forward-slash: "/") + + .breadcrumb-item { + padding-left: $breadcrumb-item-padding; + + &::before { + display: inline-block; // Suppress underlining of the separator in modern browsers + padding-right: $breadcrumb-item-padding; + color: $breadcrumb-divider-color; + content: $breadcrumb-divider; + } + } + + // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built + // without `