From 9d0f4f51b79261fd6260f03447b6c0ce6902ada0 Mon Sep 17 00:00:00 2001 From: Oscar Llorente Date: Sun, 17 Dec 2023 19:30:38 +0000 Subject: [PATCH] first draft --- .docker/Dockerfile | 30 +++ .docker/entrypoint.sh | 27 +++ .docker/run.sh | 37 ++++ .github/pull_request_template.md | 4 + .github/workflows/build-preview.yaml | 57 ++++++ .github/workflows/build-site.yaml | 51 +++++ .github/workflows/first-time-setup.yaml | 114 +++++++++++ .github/workflows/on-pages.yaml | 27 +++ .github/workflows/on-pull-request.yml | 22 +++ .github/workflows/on-push.yml | 24 +++ .github/workflows/on-schedule.yaml | 27 +++ .github/workflows/update-citations.yaml | 81 ++++++++ .github/workflows/update-url.yaml | 68 +++++++ .gitignore | 15 ++ 404.md | 11 ++ CITATION copy.cff | 14 ++ CITATION.cff | 14 ++ Gemfile | 14 ++ Gemfile.lock | 111 +++++++++++ LICENSE.md | 29 +++ README.md | 9 +- _cite/cite.py | 184 ++++++++++++++++++ _cite/plugins/google-scholar.py | 61 ++++++ _cite/plugins/orcid.py | 109 +++++++++++ _cite/plugins/pubmed.py | 46 +++++ _cite/plugins/sources.py | 6 + _cite/requirements.txt | 7 + _cite/util.py | 234 ++++++++++++++++++++++ _config.yaml | 70 +++++++ _data/citations.yaml | 247 ++++++++++++++++++++++++ _data/orcid.yaml | 1 + _data/projects.yaml | 47 +++++ _data/sources.yaml | 23 +++ _data/types.yaml | 216 +++++++++++++++++++++ _includes/alert.html | 10 + _includes/analytics.html | 3 + _includes/button.html | 24 +++ _includes/card.html | 45 +++++ _includes/citation.html | 96 +++++++++ _includes/cols.html | 6 + _includes/content.html | 38 ++++ _includes/fallback.html | 1 + _includes/feature.html | 27 +++ _includes/figure.html | 25 +++ _includes/float.html | 11 ++ _includes/fonts.html | 17 ++ _includes/footer.html | 42 ++++ _includes/grid.html | 3 + _includes/head.html | 8 + _includes/header.html | 59 ++++++ _includes/icon.html | 10 + _includes/list.html | 58 ++++++ _includes/manubot.svg | 78 ++++++++ _includes/meta.html | 97 ++++++++++ _includes/portrait.html | 42 ++++ _includes/post-excerpt.html | 35 ++++ _includes/post-info.html | 37 ++++ _includes/post-nav.html | 18 ++ _includes/scripts.html | 10 + _includes/search-box.html | 16 ++ _includes/search-info.html | 1 + _includes/section.html | 10 + _includes/site-search.html | 6 + _includes/styles.html | 28 +++ _includes/tags.html | 29 +++ _includes/verification.html | 3 + _layouts/default.html | 11 ++ _layouts/member.html | 51 +++++ _layouts/post.html | 22 +++ _members/jane-smith.md | 19 ++ _members/john-doe.md | 10 + _members/sarah-johnson.md | 11 ++ _plugins/array.rb | 25 +++ _plugins/file.rb | 20 ++ _plugins/hash.rb | 28 +++ _plugins/misc.rb | 59 ++++++ _plugins/regex.rb | 28 +++ _posts/2019-01-07-example-post-1.md | 10 + _posts/2021-09-30-example-post-2.md | 6 + _posts/2023-02-23-example-post-3.md | 7 + _scripts/anchors.js | 47 +++++ _scripts/dark-mode.js | 28 +++ _scripts/fetch-tags.js | 67 +++++++ _scripts/search.js | 215 +++++++++++++++++++++ _scripts/site-search.js | 14 ++ _scripts/tooltip.js | 41 ++++ _styles/-theme.scss | 58 ++++++ _styles/alert.scss | 37 ++++ _styles/all.scss | 7 + _styles/anchor.scss | 24 +++ _styles/background.scss | 21 ++ _styles/body.scss | 18 ++ _styles/bold.scss | 7 + _styles/button.scss | 52 +++++ _styles/card.scss | 53 +++++ _styles/checkbox.scss | 6 + _styles/citation.scss | 96 +++++++++ _styles/code.scss | 40 ++++ _styles/cols.scss | 39 ++++ _styles/dark-toggle.scss | 32 +++ _styles/feature.scss | 53 +++++ _styles/figure.scss | 26 +++ _styles/float.scss | 38 ++++ _styles/font.scss | 5 + _styles/footer.scss | 25 +++ _styles/form.scss | 9 + _styles/grid.scss | 54 ++++++ _styles/header.scss | 181 +++++++++++++++++ _styles/heading.scss | 48 +++++ _styles/highlight.scss | 7 + _styles/icon.scss | 16 ++ _styles/image.scss | 7 + _styles/link.scss | 16 ++ _styles/list.scss | 19 ++ _styles/main.scss | 8 + _styles/paragraph.scss | 8 + _styles/portrait.scss | 77 ++++++++ _styles/post-excerpt.scss | 31 +++ _styles/post-info.scss | 33 ++++ _styles/post-nav.scss | 40 ++++ _styles/quote.scss | 16 ++ _styles/rule.scss | 9 + _styles/search-box.scss | 26 +++ _styles/search-info.scss | 9 + _styles/section.scss | 39 ++++ _styles/table.scss | 22 +++ _styles/tags.scss | 34 ++++ _styles/textbox.scss | 18 ++ _styles/tooltip.scss | 65 +++++++ _styles/util.scss | 14 ++ blog/index.md | 21 ++ contact/index.md | 77 ++++++++ ericsson-hilda-bold.ttf | Bin 0 -> 103148 bytes images/ericsson_background.jpg | Bin 0 -> 197107 bytes images/fallback.svg | 10 + images/logo.png | Bin 0 -> 23883 bytes images/logo_small.png | Bin 0 -> 9897 bytes images/photo.jpg | Bin 0 -> 7310 bytes images/share.jpg | Bin 0 -> 40015 bytes index.md | 81 ++++++++ projects/index.md | 27 +++ research/index.md | 27 +++ team/index.md | 35 ++++ 143 files changed, 5368 insertions(+), 2 deletions(-) create mode 100644 .docker/Dockerfile create mode 100755 .docker/entrypoint.sh create mode 100755 .docker/run.sh create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/build-preview.yaml create mode 100644 .github/workflows/build-site.yaml create mode 100644 .github/workflows/first-time-setup.yaml create mode 100644 .github/workflows/on-pages.yaml create mode 100644 .github/workflows/on-pull-request.yml create mode 100644 .github/workflows/on-push.yml create mode 100644 .github/workflows/on-schedule.yaml create mode 100644 .github/workflows/update-citations.yaml create mode 100644 .github/workflows/update-url.yaml create mode 100644 .gitignore create mode 100644 404.md create mode 100644 CITATION copy.cff create mode 100644 CITATION.cff create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 LICENSE.md create mode 100644 _cite/cite.py create mode 100644 _cite/plugins/google-scholar.py create mode 100644 _cite/plugins/orcid.py create mode 100644 _cite/plugins/pubmed.py create mode 100644 _cite/plugins/sources.py create mode 100644 _cite/requirements.txt create mode 100644 _cite/util.py create mode 100644 _config.yaml create mode 100644 _data/citations.yaml create mode 100644 _data/orcid.yaml create mode 100644 _data/projects.yaml create mode 100644 _data/sources.yaml create mode 100644 _data/types.yaml create mode 100644 _includes/alert.html create mode 100644 _includes/analytics.html create mode 100644 _includes/button.html create mode 100644 _includes/card.html create mode 100644 _includes/citation.html create mode 100644 _includes/cols.html create mode 100644 _includes/content.html create mode 100644 _includes/fallback.html create mode 100644 _includes/feature.html create mode 100644 _includes/figure.html create mode 100644 _includes/float.html create mode 100644 _includes/fonts.html create mode 100644 _includes/footer.html create mode 100644 _includes/grid.html create mode 100644 _includes/head.html create mode 100644 _includes/header.html create mode 100644 _includes/icon.html create mode 100644 _includes/list.html create mode 100644 _includes/manubot.svg create mode 100644 _includes/meta.html create mode 100644 _includes/portrait.html create mode 100644 _includes/post-excerpt.html create mode 100644 _includes/post-info.html create mode 100644 _includes/post-nav.html create mode 100644 _includes/scripts.html create mode 100644 _includes/search-box.html create mode 100644 _includes/search-info.html create mode 100644 _includes/section.html create mode 100644 _includes/site-search.html create mode 100644 _includes/styles.html create mode 100644 _includes/tags.html create mode 100644 _includes/verification.html create mode 100644 _layouts/default.html create mode 100644 _layouts/member.html create mode 100644 _layouts/post.html create mode 100644 _members/jane-smith.md create mode 100644 _members/john-doe.md create mode 100644 _members/sarah-johnson.md create mode 100644 _plugins/array.rb create mode 100644 _plugins/file.rb create mode 100644 _plugins/hash.rb create mode 100644 _plugins/misc.rb create mode 100644 _plugins/regex.rb create mode 100644 _posts/2019-01-07-example-post-1.md create mode 100644 _posts/2021-09-30-example-post-2.md create mode 100644 _posts/2023-02-23-example-post-3.md create mode 100644 _scripts/anchors.js create mode 100644 _scripts/dark-mode.js create mode 100644 _scripts/fetch-tags.js create mode 100644 _scripts/search.js create mode 100644 _scripts/site-search.js create mode 100644 _scripts/tooltip.js create mode 100644 _styles/-theme.scss create mode 100644 _styles/alert.scss create mode 100644 _styles/all.scss create mode 100644 _styles/anchor.scss create mode 100644 _styles/background.scss create mode 100644 _styles/body.scss create mode 100644 _styles/bold.scss create mode 100644 _styles/button.scss create mode 100644 _styles/card.scss create mode 100644 _styles/checkbox.scss create mode 100644 _styles/citation.scss create mode 100644 _styles/code.scss create mode 100644 _styles/cols.scss create mode 100644 _styles/dark-toggle.scss create mode 100644 _styles/feature.scss create mode 100644 _styles/figure.scss create mode 100644 _styles/float.scss create mode 100644 _styles/font.scss create mode 100644 _styles/footer.scss create mode 100644 _styles/form.scss create mode 100644 _styles/grid.scss create mode 100644 _styles/header.scss create mode 100644 _styles/heading.scss create mode 100644 _styles/highlight.scss create mode 100644 _styles/icon.scss create mode 100644 _styles/image.scss create mode 100644 _styles/link.scss create mode 100644 _styles/list.scss create mode 100644 _styles/main.scss create mode 100644 _styles/paragraph.scss create mode 100644 _styles/portrait.scss create mode 100644 _styles/post-excerpt.scss create mode 100644 _styles/post-info.scss create mode 100644 _styles/post-nav.scss create mode 100644 _styles/quote.scss create mode 100644 _styles/rule.scss create mode 100644 _styles/search-box.scss create mode 100644 _styles/search-info.scss create mode 100644 _styles/section.scss create mode 100644 _styles/table.scss create mode 100644 _styles/tags.scss create mode 100644 _styles/textbox.scss create mode 100644 _styles/tooltip.scss create mode 100644 _styles/util.scss create mode 100644 blog/index.md create mode 100644 contact/index.md create mode 100644 ericsson-hilda-bold.ttf create mode 100644 images/ericsson_background.jpg create mode 100644 images/fallback.svg create mode 100644 images/logo.png create mode 100644 images/logo_small.png create mode 100644 images/photo.jpg create mode 100644 images/share.jpg create mode 100644 index.md create mode 100644 projects/index.md create mode 100644 research/index.md create mode 100644 team/index.md diff --git a/.docker/Dockerfile b/.docker/Dockerfile new file mode 100644 index 0000000..caab63b --- /dev/null +++ b/.docker/Dockerfile @@ -0,0 +1,30 @@ +# start with official ruby docker image as base +FROM ruby:3.1.2 + +# set working directory within container +WORKDIR /usr/src/app + +# pull in ruby (jekyll) and python (cite process) package info +COPY Gemfile Gemfile.lock _cite/requirements.txt ./ + +# install ruby packages +RUN VERSION=$(grep -A 1 'BUNDLED WITH' Gemfile.lock | tail -n 1 | xargs); \ + gem install bundler --version ${VERSION} && \ + bundle _${VERSION}_ install + +# install python +RUN apt update && apt install -y python3 python3-pip + +# install python packages +RUN python3 -m pip install --no-cache-dir --upgrade --requirement requirements.txt + +# install python package for listening for file changes +RUN pip install "watchdog[watchmedo]==3.0.0" + +# ports used by jekyll +EXPOSE 4000 +EXPOSE 35729 + +# run jekyll and cite process +COPY .docker/entrypoint.sh /var +CMD [ "/var/entrypoint.sh" ] diff --git a/.docker/entrypoint.sh b/.docker/entrypoint.sh new file mode 100755 index 0000000..77c697a --- /dev/null +++ b/.docker/entrypoint.sh @@ -0,0 +1,27 @@ +#! /bin/bash + +# print folder contents for debugging +echo "Contents:" +echo "" +ls +echo "" + +# run cite process +python3 _cite/cite.py + +# run jekyll serve in hot-reload mode +# rerun whenever _config.yaml changes (jekyll hot-reload doesn't work with this file) +watchmedo auto-restart \ + --debug-force-polling \ + --patterns="_config.yaml" \ + --signal SIGTERM \ + -- bundle exec jekyll serve --open-url --force_polling --livereload --trace --host=0.0.0.0 \ + | sed "s/LiveReload address.*//g;s/0.0.0.0/localhost/g" & + +# rerun cite process whenever _data files change +watchmedo shell-command \ + --debug-force-polling \ + --recursive \ + --wait \ + --command="python3 _cite/cite.py" \ + --patterns="_data/sources*;_data/orcid*;_data/pubmed*;_data/google-scholar*" \ diff --git a/.docker/run.sh b/.docker/run.sh new file mode 100755 index 0000000..34ffd05 --- /dev/null +++ b/.docker/run.sh @@ -0,0 +1,37 @@ +#! /bin/bash + +# name of image +IMAGE=lab-website-renderer:latest + +# name of running container +CONTAINER=lab-website-renderer + +# choose platform flag +PLATFORM="" + +# default vars +DOCKER_RUN="docker run" +WORKING_DIR=$(pwd) + +# fix windows faux linux shells/tools +if [[ $OSTYPE == msys* ]] || [[ $OSTYPE == cygwin* ]]; then + DOCKER_RUN="winpty docker run" + WORKING_DIR=$(cmd //c cd) +fi + +# build docker image +docker build ${PLATFORM} \ + --tag ${IMAGE} \ + --file ./.docker/Dockerfile . && \ + +# run built docker image +${DOCKER_RUN} ${PLATFORM} \ + --name ${CONTAINER} \ + --init \ + --rm \ + --interactive \ + --tty \ + --publish 4000:4000 \ + --publish 35729:35729 \ + --volume "${WORKING_DIR}:/usr/src/app" \ + ${IMAGE} "$@" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..00a0e71 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,4 @@ +This website is based on the Lab Website Template. +See its documentation for working with this site: + +https://greene-lab.gitbook.io/lab-website-template-docs diff --git a/.github/workflows/build-preview.yaml b/.github/workflows/build-preview.yaml new file mode 100644 index 0000000..5284286 --- /dev/null +++ b/.github/workflows/build-preview.yaml @@ -0,0 +1,57 @@ +name: build-preview +run-name: build pull request preview + +on: + # run when called from another workflow + workflow_call: + + # run if user manually requests it + workflow_dispatch: + +# variables +env: + PREVIEWS_FOLDER: preview + +permissions: + contents: write + pull-requests: write + +jobs: + build-preview: + runs-on: ubuntu-latest + + steps: + # for debugging + - name: Print contexts + uses: crazy-max/ghaction-dump-context@v1 + + - name: Checkout branch contents + uses: actions/checkout@v3 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.head_ref }} + + - name: Install Ruby packages + if: github.event.action != 'closed' + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.0" + bundler-cache: true + + - name: Get Pages url + if: github.event.action != 'closed' + id: pages + uses: actions/configure-pages@v2 + with: + enablement: false + + - name: Build preview version of site + if: github.event.action != 'closed' + run: | + JEKYLL_ENV=production bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path || '' }}/${{ env.PREVIEWS_FOLDER }}/pr-${{ github.event.number }}" + + - name: Commit preview to Pages branch + uses: rossjrw/pr-preview-action@v1 + with: + source-dir: _site + umbrella-dir: ${{ env.PREVIEWS_FOLDER }} diff --git a/.github/workflows/build-site.yaml b/.github/workflows/build-site.yaml new file mode 100644 index 0000000..9b71767 --- /dev/null +++ b/.github/workflows/build-site.yaml @@ -0,0 +1,51 @@ +name: build-site +run-name: build live site + +on: + # run when called from another workflow + workflow_call: + + # run if user manually requests it + workflow_dispatch: + +# variables +env: + PREVIEWS_FOLDER: preview + +permissions: + contents: write + +jobs: + build-site: + runs-on: ubuntu-latest + + steps: + # for debugging + - name: Print contexts + uses: crazy-max/ghaction-dump-context@v1 + + - name: Checkout branch contents + uses: actions/checkout@v3 + + - name: Install Ruby packages + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.0" + bundler-cache: true + + - name: Get Pages url + id: pages + uses: actions/configure-pages@v2 + with: + enablement: false + + - name: Build live version of site + run: | + JEKYLL_ENV=production bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path || '' }}" + + - name: Commit live site to Pages branch + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: _site + clean-exclude: ${{ env.PREVIEWS_FOLDER }} + force: false diff --git a/.github/workflows/first-time-setup.yaml b/.github/workflows/first-time-setup.yaml new file mode 100644 index 0000000..bf227f7 --- /dev/null +++ b/.github/workflows/first-time-setup.yaml @@ -0,0 +1,114 @@ +name: first-time-setup +run-name: first time setup of repo + +on: + # run if user manually requests it + workflow_dispatch: + +permissions: + contents: write + +jobs: + first-time-setup: + runs-on: ubuntu-latest + + steps: + # for debugging + - name: Print contexts + uses: crazy-max/ghaction-dump-context@v1 + + - name: Create Pages branch + uses: peterjgrainger/action-create-branch@v2.4.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + branch: "gh-pages" + + - name: Checkout Pages branch + uses: actions/checkout@v3 + with: + ref: gh-pages + + # clean slate, as if starting from orphan branch + - name: Clear Pages branch + run: rm -rf * .github .docker .gitignore + + # prevent GitHub from running Jekyll a second time after build + - name: Make .nojekyll file + run: touch .nojekyll + + - name: Make placeholder homepage + run: echo "Placeholder homepage" > index.html + + - name: Commit changes to Pages branch + uses: stefanzweifel/git-auto-commit-action@v4 + with: + branch: gh-pages + commit_message: "Clear branch" + + - name: Checkout main branch + uses: actions/checkout@v3 + + - name: Remove files user doesn't need + run: | + rm -rf \ + CHANGELOG.md \ + testbed.md \ + .github/ISSUE_TEMPLATE \ + .github/workflows/versioning.yaml \ + .github/pull_request_template.md \ + + - name: Rename files + run: | + mv .github/user_pull_request_template.md .github/pull_request_template.md + + - name: Set vars for personalization + run: | + user="${{ github.repository_owner }}" + description="An engaging 1-3 sentence description of your lab." + echo "USER=${user}" >> $GITHUB_ENV + echo "DESCRIPTION=${description}" >> $GITHUB_ENV + + - name: Personalize readme for user + run: | + echo " + # ${{ env.USER }}'s Website + + Visit **[website url](#)** 🚀 + + _Built with [Lab Website Template](https://greene-lab.gitbook.io/lab-website-template-docs)_ + " > README.md + + - name: Personalize Jekyll config for user + uses: actions/github-script@v6 + with: + script: | + const { readFileSync, writeFileSync } = require("fs"); + const file = "_config.yaml"; + const contents = readFileSync(file) + .toString() + .replace(/(^title: ).*$/m, "$1${{ env.USER }}") + .replace(/(^subtitle: ).*$/m, "$1") + .replace(/(^description: ).*$/m, "$1${{ env.DESCRIPTION }}") + .replace(/(^ email: ).*$/m, "$1contact@${{ env.USER }}.com") + .replace(/(^ github: ).*$/m, "$1${{ env.USER }}") + .replace(/(^ twitter: ).*$/m, "$1${{ env.USER }}") + .replace(/(^ youtube: ).*$/m, "$1${{ env.USER }}"); + writeFileSync(file, contents); + + - name: Personalize homepage for user + uses: actions/github-script@v6 + with: + script: | + const { readFileSync, writeFileSync } = require("fs"); + const file = "index.md"; + let contents = readFileSync(file).toString(); + const find = /\# Lab Website Template[\s\S]+({% include section\.html)/; + const replace = `# ${{ env.USER }}'s Website\n\n${{ env.DESCRIPTION }}\n\n$1`; + contents = contents.replace(find, replace); + writeFileSync(file, contents); + + - name: Commit changed files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Setup repo" diff --git a/.github/workflows/on-pages.yaml b/.github/workflows/on-pages.yaml new file mode 100644 index 0000000..b61c13b --- /dev/null +++ b/.github/workflows/on-pages.yaml @@ -0,0 +1,27 @@ +name: on-pages +run-name: on pages deploy + +on: + workflow_run: + workflows: [pages-build-deployment] + types: + - completed + branches: + - gh-pages + + # run if user manually requests it + workflow_dispatch: + +permissions: + contents: write + +jobs: + update-url: + # only run on user instance of template, not template itself + if: github.repository != 'greenelab/lab-website-template' + uses: ./.github/workflows/update-url.yaml + + build-site: + needs: update-url + if: needs.update-url.outputs.changed == 'true' + uses: ./.github/workflows/build-site.yaml diff --git a/.github/workflows/on-pull-request.yml b/.github/workflows/on-pull-request.yml new file mode 100644 index 0000000..5cdf21a --- /dev/null +++ b/.github/workflows/on-pull-request.yml @@ -0,0 +1,22 @@ +name: on-pull-request +run-name: on pull request activity + +on: + pull_request_target: + types: + - opened + - reopened + - synchronize + - closed + +permissions: + contents: write + pull-requests: write + +jobs: + update-citations: + uses: ./.github/workflows/update-citations.yaml + + build-preview: + needs: update-citations + uses: ./.github/workflows/build-preview.yaml diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml new file mode 100644 index 0000000..06dd001 --- /dev/null +++ b/.github/workflows/on-push.yml @@ -0,0 +1,24 @@ +name: on-push +run-name: on push to main + +on: + push: + branches: + - main + + # run if user manually requests it + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + update-citations: + # skip first run because nothing enabled or setup yet + if: github.run_number != 1 + uses: ./.github/workflows/update-citations.yaml + + build-site: + needs: update-citations + uses: ./.github/workflows/build-site.yaml diff --git a/.github/workflows/on-schedule.yaml b/.github/workflows/on-schedule.yaml new file mode 100644 index 0000000..ad1fe95 --- /dev/null +++ b/.github/workflows/on-schedule.yaml @@ -0,0 +1,27 @@ +name: on-schedule +run-name: on schedule + +on: + schedule: + # weekly + - cron: "0 0 * * 1" + + # run if user manually requests it + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +jobs: + update-citations: + # only run on user instance of template, not template itself + if: github.repository != 'greenelab/lab-website-template' + uses: ./.github/workflows/update-citations.yaml + with: + open-pr: true + + build-preview: + needs: update-citations + if: needs.update-citations.outputs.changed == 'true' + uses: ./.github/workflows/build-preview.yaml diff --git a/.github/workflows/update-citations.yaml b/.github/workflows/update-citations.yaml new file mode 100644 index 0000000..2bafb55 --- /dev/null +++ b/.github/workflows/update-citations.yaml @@ -0,0 +1,81 @@ +name: update-citations +run-name: update citations + +on: + # run when called from another workflow + workflow_call: + inputs: + open-pr: + type: boolean + outputs: + changed: + value: ${{ jobs.update-citations.outputs.changed }} + + # run if user manually requests it + workflow_dispatch: + +permissions: + contents: write + pull-requests: write + +env: + FORCE_COLOR: true + GOOGLE_SCHOLAR_API_KEY: ${{ secrets.GOOGLE_SCHOLAR_API_KEY }} + +jobs: + update-citations: + runs-on: ubuntu-latest + timeout-minutes: 15 + + steps: + # for debugging + - name: Print contexts + uses: crazy-max/ghaction-dump-context@v1 + + - name: Checkout branch contents + uses: actions/checkout@v3 + with: + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.head_ref }} + + - name: Setup Python + uses: actions/setup-python@v4 + with: + python-version: "3.11" + cache: "pip" + cache-dependency-path: "**/requirements.txt" + + - name: Install Python packages + run: | + python -m pip install --upgrade --requirement ./_cite/requirements.txt + + - name: Build updated citations + run: python _cite/cite.py + timeout-minutes: 15 + + - name: Check if citations changed + id: changed + uses: tj-actions/verify-changed-files@v13 + with: + files: | + _data/citations.yaml + + - name: Commit updated citations to branch + if: | + steps.changed.outputs.files_changed == 'true' && + inputs.open-pr != true + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Update citations" + + - name: Open pull request with updated citations + if: | + steps.changed.outputs.files_changed == 'true' && + inputs.open-pr == true + uses: peter-evans/create-pull-request@v4 + with: + branch: citation-update + title: Periodic citation update + + outputs: + changed: ${{ steps.changed.outputs.files_changed }} diff --git a/.github/workflows/update-url.yaml b/.github/workflows/update-url.yaml new file mode 100644 index 0000000..9ccd9a3 --- /dev/null +++ b/.github/workflows/update-url.yaml @@ -0,0 +1,68 @@ +name: update-url +run-name: update site after url change + +on: + # run when called from another workflow + workflow_call: + outputs: + changed: + value: ${{ jobs.update-url.outputs.changed }} + + # run if user manually requests it + workflow_dispatch: + +permissions: + contents: write + +jobs: + update-url: + runs-on: ubuntu-latest + + steps: + # for debugging + - name: Print contexts + uses: crazy-max/ghaction-dump-context@v1 + + - name: Get Pages url + id: pages + uses: actions/configure-pages@v2 + with: + enablement: false + + - name: Checkout branch contents + uses: actions/checkout@v3 + + # update link to site in readme + - name: Update readme + uses: actions/github-script@v6 + with: + script: | + const { readFileSync, writeFileSync } = require("fs"); + const file = "README.md"; + let contents = readFileSync(file).toString(); + const find = /\*\*\[.*\]\(.*\)\*\*/; + const host = "${{ steps.pages.outputs.host }}"; + const path = "${{ steps.pages.outputs.base_path }}"; + const url = "${{ steps.pages.outputs.base_url }}"; + const replace = `**[${host}${path}](${url})**`; + if (contents.match(find)) + contents = contents.replace(find, replace); + else + contents = `Visit ${replace} 🚀\n\n` + contents; + writeFileSync(file, contents); + + - name: Check if readme changed + id: changed + uses: tj-actions/verify-changed-files@v13 + with: + files: | + README.md + + - name: Commit changed files + if: steps.changed.outputs.files_changed == 'true' + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Update url" + + outputs: + changed: ${{ steps.changed.outputs.files_changed }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c3511ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +_site +.sass-cache +.jekyll-cache +.jekyll-metadata +vendor +debug.log +__pycache__ +.cache +!cache.db +.DS_STORE +.env* +package.json +package-lock.json +yarn.lock +node_modules diff --git a/404.md b/404.md new file mode 100644 index 0000000..64b5a4a --- /dev/null +++ b/404.md @@ -0,0 +1,11 @@ +--- +title: 404 +permalink: /404.html +--- + +## {% include icon.html icon="fa-solid fa-heart-crack" %} Page Not Found + +Try searching the whole site for the content you want: +{:.center} + +{% include site-search.html %} diff --git a/CITATION copy.cff b/CITATION copy.cff new file mode 100644 index 0000000..22d406c --- /dev/null +++ b/CITATION copy.cff @@ -0,0 +1,14 @@ +# citation metadata for the template itself + +title: "Lab Website Template" +version: 1.1.6 +date-released: 2023-10-06 +url: "https://github.com/greenelab/lab-website-template" +authors: + - family-names: "Rubinetti" + given-names: "Vincent" + orcid: "https://orcid.org/0000-0002-4655-3773" + - family-names: "Greene" + given-names: "Casey" + orcid: "https://orcid.org/0000-0001-8713-9213" +cff-version: 1.2.0 diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..22d406c --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,14 @@ +# citation metadata for the template itself + +title: "Lab Website Template" +version: 1.1.6 +date-released: 2023-10-06 +url: "https://github.com/greenelab/lab-website-template" +authors: + - family-names: "Rubinetti" + given-names: "Vincent" + orcid: "https://orcid.org/0000-0002-4655-3773" + - family-names: "Greene" + given-names: "Casey" + orcid: "https://orcid.org/0000-0001-8713-9213" +cff-version: 1.2.0 diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..b39f041 --- /dev/null +++ b/Gemfile @@ -0,0 +1,14 @@ +source "https://rubygems.org" + +# jekyll +gem "jekyll", "~> 4.3" +gem "webrick", "~> 1.7" + +# plugins +group :jekyll_plugins do + gem "jekyll-spaceship" + gem "jekyll-sitemap" + gem "jekyll-redirect-from" + gem "jekyll-feed" + gem "jekyll-last-modified-at" +end diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..d719aa9 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,111 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.1) + 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.15.5) + ffi (1.15.5-x64-mingw-ucrt) + forwardable-extended (2.6.0) + gemoji (3.0.1) + google-protobuf (3.22.0-arm64-darwin) + google-protobuf (3.22.0-x64-mingw-ucrt) + http_parser.rb (0.8.0) + i18n (1.12.0) + 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-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-last-modified-at (1.3.0) + jekyll (>= 3.7, < 5.0) + posix-spawn (~> 0.3.9) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-spaceship (0.10.2) + gemoji (~> 3.0) + jekyll (>= 3.6, < 5.0) + nokogiri (~> 1.6) + rainbow (~> 3.0) + 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) + mini_portile2 (2.8.1) + nokogiri (1.13.10) + mini_portile2 (~> 2.8.0) + racc (~> 1.4) + nokogiri (1.13.10-arm64-darwin) + racc (~> 1.4) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + posix-spawn (0.3.15) + public_suffix (5.0.1) + racc (1.6.2) + rainbow (3.1.1) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.5) + rouge (3.30.0) + safe_yaml (1.0.5) + sass-embedded (1.58.3-arm64-darwin) + google-protobuf (~> 3.21) + sass-embedded (1.58.3-x64-mingw-ucrt) + google-protobuf (~> 3.21) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.4.2) + webrick (1.8.1) + +PLATFORMS + aarch64-linux + linux + universal-darwin-21 + universal-darwin-22 + x64-mingw-ucrt + x64-mingw32 + x64-unknown + x86_64-linux + +DEPENDENCIES + jekyll (~> 4.3) + jekyll-feed + jekyll-last-modified-at + jekyll-redirect-from + jekyll-sitemap + jekyll-spaceship + webrick (~> 1.7) + +BUNDLED WITH + 2.4.7 diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..70c6b2a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2020, Greene Laboratory +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index 11faa10..0c5b965 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ -# cognitive-software-publications -Ericsson Cognitive Software publications page + +# osllogon's Website + +Visit **[osllogon.github.io/cs](https://osllogon.github.io/cs)** 🚀 + +_Built with [Lab Website Template](https://greene-lab.gitbook.io/lab-website-template-docs)_ + diff --git a/_cite/cite.py b/_cite/cite.py new file mode 100644 index 0000000..5f8d135 --- /dev/null +++ b/_cite/cite.py @@ -0,0 +1,184 @@ +""" +cite process to convert sources and metasources into full citations +""" + +import traceback +from importlib import import_module +from pathlib import Path +from dotenv import load_dotenv +from util import * + + +# load environment variables +load_dotenv() + + +# error flag +error = False + +# output citations file +output_file = "_data/citations.yaml" + + +log() + +log("Compiling sources") + +# compiled list of sources +sources = [] + +# in-order list of plugins to run +plugins = ["google-scholar", "pubmed", "orcid", "sources"] + +# loop through plugins +for plugin in plugins: + # convert into path object + plugin = Path(f"plugins/{plugin}.py") + + log(f"Running {plugin.stem} plugin") + + # get all data files to process with current plugin + files = Path.cwd().glob(f"_data/{plugin.stem}*.*") + files = list(filter(lambda p: p.suffix in [".yaml", ".yml", ".json"], files)) + + log(f"Found {len(files)} {plugin.stem}* data file(s)", 1) + + # loop through data files + for file in files: + log(f"Processing data file {file.name}", 1) + + # load data from file + try: + data = load_data(file) + # check if file in correct format + if not list_of_dicts(data): + raise Exception("File not a list of dicts") + except Exception as e: + log(e, 2, "ERROR") + error = True + continue + + # loop through data entries + for index, entry in enumerate(data): + log(f"Processing entry {index + 1} of {len(data)}, {label(entry)}", 2) + + # run plugin on data entry to expand into multiple sources + try: + expanded = import_module(f"plugins.{plugin.stem}").main(entry) + # check that plugin returned correct format + if not list_of_dicts(expanded): + raise Exception("Plugin didn't return list of dicts") + # catch any plugin error + except Exception as e: + # log detailed pre-formatted/colored trace + print(traceback.format_exc()) + # log high-level error + log(e, 3, "ERROR") + error = True + continue + + # loop through sources + for source in expanded: + if plugin.stem != "sources": + log(label(source), 3) + + # include meta info about source + source["plugin"] = plugin.name + source["file"] = file.name + + # add source to compiled list + sources.append(source) + + if plugin.stem != "sources": + log(f"{len(expanded)} source(s)", 3) + + +log("Merging sources by id") + +# merge sources with matching (non-blank) ids +for a in range(0, len(sources)): + a_id = get_safe(sources, f"{a}.id", "") + if not a_id: + continue + for b in range(a + 1, len(sources)): + b_id = get_safe(sources, f"{b}.id", "") + if b_id == a_id: + log(f"Found duplicate {b_id}", 2) + sources[a].update(sources[b]) + sources[b] = {} +sources = [entry for entry in sources if entry] + + +log(f"{len(sources)} total source(s) to cite") + + +log() + +log("Generating citations") + +# list of new citations +citations = [] + + +# loop through compiled sources +for index, source in enumerate(sources): + log(f"Processing source {index + 1} of {len(sources)}, {label(source)}") + + # new citation data for source + citation = {} + + # source id + _id = get_safe(source, "id", "").strip() + + # Manubot doesn't work without an id + if _id: + log("Using Manubot to generate citation", 1) + + try: + # run Manubot and set citation + citation = cite_with_manubot(_id) + + # if Manubot cannot cite source + except Exception as e: + # if regular source (id entered by user), throw error + if get_safe(source, "plugin", "") == "sources.py": + log(e, 3, "ERROR") + error = True + # otherwise, if from metasource (id retrieved from some third-party API), just warn + else: + log(e, 3, "WARNING") + # discard source from citations + # continue + + # preserve fields from input source, overriding existing fields + citation.update(source) + + # ensure date in proper format for correct date sorting + if get_safe(citation, "date", ""): + citation["date"] = format_date(get_safe(citation, "date", "")) + + # add new citation to list + citations.append(citation) + + +log() + +log("Saving updated citations") + + +# save new citations +try: + save_data(output_file, citations) +except Exception as e: + log(e, level="ERROR") + error = True + + +# exit at end, so user can see all errors in one run +if error: + log("Error(s) occurred above", level="ERROR") + exit(1) +else: + log("All done!", level="SUCCESS") + +log("\n") diff --git a/_cite/plugins/google-scholar.py b/_cite/plugins/google-scholar.py new file mode 100644 index 0000000..e3841b8 --- /dev/null +++ b/_cite/plugins/google-scholar.py @@ -0,0 +1,61 @@ +import os +from serpapi import GoogleSearch +from util import * + + +def main(entry): + """ + receives single list entry from google-scholar data file + returns list of sources to cite + """ + + # get api key (serp api key to access google scholar) + api_key = os.environ.get("GOOGLE_SCHOLAR_API_KEY", "") + if not api_key: + raise Exception('No "GOOGLE_SCHOLAR_API_KEY" env var') + + # serp api properties + params = { + "engine": "google_scholar_author", + "api_key": api_key, + "num": 100, # max allowed + } + + # get id from entry + _id = get_safe(entry, "gsid", "") + if not _id: + raise Exception('No "gsid" key') + + # query api + @log_cache + @cache.memoize(name=__file__, expire=1 * (60 * 60 * 24)) + def query(_id): + params["author_id"] = _id + return get_safe(GoogleSearch(params).get_dict(), "articles", []) + + response = query(_id) + + # list of sources to return + sources = [] + + # go through response and format sources + for work in response: + # create source + year = get_safe(work, "year", "") + source = { + "id": get_safe(work, "citation_id", ""), + # api does not provide Manubot-citeable id, so keep citation details + "title": get_safe(work, "title", ""), + "authors": list(map(str.strip, get_safe(work, "authors", "").split(","))), + "publisher": get_safe(work, "publication", ""), + "date": (year + "-01-01") if year else "", + "link": get_safe(work, "link", ""), + } + + # copy fields from entry to source + source.update(entry) + + # add source to list + sources.append(source) + + return sources diff --git a/_cite/plugins/orcid.py b/_cite/plugins/orcid.py new file mode 100644 index 0000000..0017145 --- /dev/null +++ b/_cite/plugins/orcid.py @@ -0,0 +1,109 @@ +import json +from urllib.request import Request, urlopen +from util import * + + +def main(entry): + """ + receives single list entry from orcid data file + returns list of sources to cite + """ + + # orcid api + endpoint = "https://pub.orcid.org/v3.0/$ORCID/works" + headers = {"Accept": "application/json"} + + # get id from entry + _id = get_safe(entry, "orcid", "") + if not _id: + raise Exception('No "orcid" key') + + # query api + @log_cache + @cache.memoize(name=__file__, expire=1 * (60 * 60 * 24)) + def query(_id): + url = endpoint.replace("$ORCID", _id) + request = Request(url=url, headers=headers) + response = json.loads(urlopen(request).read()) + return get_safe(response, "group", []) + + response = query(_id) + + # list of sources to return + sources = [] + + # go through response structure and pull out ids e.g. doi:1234/56789 + for work in response: + # get list of ids + ids = get_safe(work, "external-ids.external-id", []) + for summary in get_safe(work, "work-summary", []): + ids = ids + get_safe(summary, "external-ids.external-id", []) + + # prefer doi id type, or fallback to first id + _id = next( + (id for id in ids if get_safe(id, "external-id-type", "") == "doi"), + ids[0] if len(ids) > 0 else {}, + ) + + # get id and id-type from response + id_type = get_safe(_id, "external-id-type", "") + id_value = get_safe(_id, "external-id-value", "") + + # create source + source = {"id": f"{id_type}:{id_value}"} + + # if not a doi, Manubot likely can't cite, so keep citation details + if id_type != "doi": + # get summaries + summaries = get_safe(work, "work-summary", []) + + # sort summary entries by most recent + summaries = sorted( + summaries, + key=lambda summary: (get_safe(summary, "last-modified-date.value", 0)) + or get_safe(summary, "created-date.value", 0) + or 0, + reverse=True, + ) + + # get first summary with defined sub-value + def first(get_func): + return next( + (value for value in map(get_func, summaries) if value), None + ) + + # get title + title = first(lambda s: get_safe(s, "title.title.value", "")) + + # get publisher + publisher = first(lambda s: get_safe(s, "journal-title.value", "")) + + # get date + date = ( + get_safe(work, "last-modified-date.value") + or first(lambda s: get_safe(s, "last-modified-date.value")) + or get_safe(work, "created-date.value") + or first(lambda s: get_safe(s, "created-date.value")) + or 0 + ) + + # get link + link = first(lambda s: get_safe(s, "url.value", "")) + + # keep available details + if title: + source["title"] = title + if publisher: + source["publisher"] = publisher + if date: + source["date"] = format_date(date) + if link: + source["link"] = link + + # copy fields from entry to source + source.update(entry) + + # add source to list + sources.append(source) + + return sources diff --git a/_cite/plugins/pubmed.py b/_cite/plugins/pubmed.py new file mode 100644 index 0000000..0f2ee60 --- /dev/null +++ b/_cite/plugins/pubmed.py @@ -0,0 +1,46 @@ +import json +from urllib.request import Request, urlopen +from urllib.parse import quote +from util import * + + +def main(entry): + """ + receives single list entry from pubmed data file + returns list of sources to cite + """ + + # ncbi api + endpoint = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=$TERM&retmode=json&retmax=1000&usehistory=y" + + # get id from entry + _id = get_safe(entry, "term", "") + if not _id: + raise Exception('No "term" key') + + # query api + @log_cache + @cache.memoize(name=__file__, expire=1 * (60 * 60 * 24)) + def query(_id): + url = endpoint.replace("$TERM", quote(_id)) + request = Request(url=url) + response = json.loads(urlopen(request).read()) + return get_safe(response, "esearchresult.idlist", []) + + response = query(_id) + + # list of sources to return + sources = [] + + # go through response and format sources + for _id in response: + # create source + source = {"id": f"pubmed:{_id}"} + + # copy fields from entry to source + source.update(entry) + + # add source to list + sources.append(source) + + return sources diff --git a/_cite/plugins/sources.py b/_cite/plugins/sources.py new file mode 100644 index 0000000..9dde4fa --- /dev/null +++ b/_cite/plugins/sources.py @@ -0,0 +1,6 @@ +def main(entry): + """ + receives single list entry from sources data file + returns list of sources to cite + """ + return [entry] diff --git a/_cite/requirements.txt b/_cite/requirements.txt new file mode 100644 index 0000000..9808e76 --- /dev/null +++ b/_cite/requirements.txt @@ -0,0 +1,7 @@ +manubot~=0.6 +PyYAML~=6.0 +diskcache~=5.6 +rich~=13.6 +python-dotenv~=0.21 +google-search-results~=2.4 + diff --git a/_cite/util.py b/_cite/util.py new file mode 100644 index 0000000..466a7d5 --- /dev/null +++ b/_cite/util.py @@ -0,0 +1,234 @@ +""" +utility functions for cite process and plugins +""" + +import subprocess +import json +import yaml +from yaml.loader import SafeLoader +from pathlib import Path +from datetime import datetime +from rich import print +from diskcache import Cache + + +# cache for time-consuming network requests +cache = Cache("./_cite/.cache") + + +# clear expired items from cache +cache.expire() + + +def log_cache(func): + """ + decorator to use around memoized function to log if cached or or not + """ + + def wrap(*args): + key = func.__cache_key__(*args) + if key in cache: + log(" (from cache)", level="INFO", newline=False) + return func(*args) + + return wrap + + +def log(message="\n--------------------\n", indent=0, level="", newline=True): + """ + log to terminal, color determined by indent and level + """ + + palette = { + 0: "[orange1]", + 1: "[salmon1]", + 2: "[violet]", + 3: "[sky_blue1]", + "ERROR": "[white on #F43F5E]", + "WARNING": "[black on #EAB308]", + "SUCCESS": "[black on #10B981]", + "INFO": "[grey70]", + } + color = get_safe(palette, level, "") or get_safe(palette, indent, "") or "[white]" + if newline: + print() + print(indent * " " + color + str(message) + "[/]", end="", flush=True) + + +def label(entry): + """ + get "label" of dict entry (for logging purposes) + """ + + return str(list(entry.keys())[0]) + ": " + str(list(entry.values())[0]) + + +def get_safe(item, path, default=None): + """ + safely access value in nested lists/dicts + """ + + for part in str(path).split("."): + try: + part = int(part) + except ValueError: + part = part + try: + item = item[part] + except (KeyError, IndexError, AttributeError, TypeError): + return default + return item + + +def list_of_dicts(data): + """ + check if data is list of dicts + """ + + return isinstance(data, list) and all(isinstance(entry, dict) for entry in data) + + +def format_date(date): + """ + format date as YYYY-MM-DD, or no date if malformed + """ + + if isinstance(date, int): + return datetime.fromtimestamp(date // 1000.0).strftime("%Y-%m-%d") + try: + return datetime.strptime(date, "%Y-%m-%d").strftime("%Y-%m-%d") + except Exception: + return "" + + +def load_data(path): + """ + read data from yaml or json file + """ + + # convert to path object + path = Path(path) + + # check if file exists + if not path.is_file(): + raise Exception("Can't find file") + + # try to open file + try: + file = open(path, encoding="utf8") + except Exception as e: + raise Exception(e or "Can't open file") + + # try to parse as yaml + try: + with file: + data = yaml.load(file, Loader=SafeLoader) + except Exception: + raise Exception("Can't parse file. Make sure it's valid YAML.") + + # if no errors, return data + return data + + +def save_data(path, data): + """ + write data to yaml file + """ + + # convert to path object + path = Path(path) + + # try to open file + try: + file = open(path, mode="w") + except Exception: + raise Exception("Can't open file for writing") + + # prevent yaml anchors/aliases (pointers) + yaml.Dumper.ignore_aliases = lambda *args: True + + # try to save data as yaml + try: + with file: + yaml.dump(data, file, default_flow_style=False, sort_keys=False) + except Exception: + raise Exception("Can't save YAML to file") + + # write warning note to top of file + note = "# DO NOT EDIT, GENERATED AUTOMATICALLY" + try: + with open(path, "r") as file: + data = file.read() + with open(path, "w") as file: + file.write(f"{note}\n\n{data}") + except Exception: + raise Exception("Can't write to file") + + +@log_cache +@cache.memoize(name="manubot", expire=90 * (60 * 60 * 24)) +def cite_with_manubot(_id): + """ + generate citation data for source id with Manubot + """ + + # run Manubot + try: + commands = ["manubot", "cite", _id, "--log-level=WARNING"] + output = subprocess.Popen(commands, stdout=subprocess.PIPE).communicate() + except Exception as e: + log(e, 3) + raise Exception("Manubot could not generate citation") + + # parse results as json + try: + manubot = json.loads(output[0])[0] + except Exception: + raise Exception("Couldn't parse Manubot response") + + # new citation with only needed info + citation = {} + + # original id + citation["id"] = _id + + # title + citation["title"] = get_safe(manubot, "title", "").strip() + + # authors + citation["authors"] = [] + for author in get_safe(manubot, "author", {}): + given = get_safe(author, "given", "").strip() + family = get_safe(author, "family", "").strip() + if given or family: + citation["authors"].append(" ".join([given, family])) + + # publisher + container = get_safe(manubot, "container-title", "").strip() + collection = get_safe(manubot, "collection-title", "").strip() + publisher = get_safe(manubot, "publisher", "").strip() + citation["publisher"] = container or publisher or collection or "" + + # extract date part + def date_part(citation, index): + try: + return citation["issued"]["date-parts"][0][index] + except (KeyError, IndexError, TypeError): + return "" + + # date + year = date_part(manubot, 0) + if year: + # fallbacks for month and day + month = date_part(manubot, 1) or "1" + day = date_part(manubot, 2) or "1" + citation["date"] = format_date(f"{year}-{month}-{day}") + else: + # if no year, consider date missing data + citation["date"] = "" + + # link + citation["link"] = get_safe(manubot, "URL", "").strip() + + # return citation data + return citation diff --git a/_config.yaml b/_config.yaml new file mode 100644 index 0000000..827868f --- /dev/null +++ b/_config.yaml @@ -0,0 +1,70 @@ +# site properties and page defaults +title: Ericsson Cognitive Software +subtitle: +description: An engaging 1-3 sentence description of your lab. +header: images/ericsson_background.jpg +footer: images/ericsson_background.jpg + +# site social media and other links +links: + email: oscar.llorente.gonzalez@ericsson.com + github: https://github.com/EricssonResearch + linkedin: https://www.linkedin.com/company/ericsson/ + youtube: https://www.youtube.com/user/ericsson + +### jekyll settings + +# front matter defaults +defaults: + # all markdown files + - scope: + path: "" + values: + layout: default + # markdown files in /_members + - scope: + type: "members" + values: + layout: member + # markdown files in /_posts + - scope: + type: "posts" + values: + layout: post + +collections: + # generate page for each member + members: + output: true + # generate page for each post + posts: + output: true + +# jekyll plugins +plugins: + - jekyll-spaceship + - jekyll-sitemap + - jekyll-redirect-from + - jekyll-feed + - jekyll-last-modified-at + +# code block syntax highlighting +highlighter: rouge + +# jekyll theme +theme: null + +# sass settings +sass: + sass_dir: _styles + +# force jekyll to include certain files/folders +include: + - _styles + - _scripts + +# force jekyll to exclude certain files/folders +exclude: + - README.md + - LICENSE.md + - CITATION.cff diff --git a/_data/citations.yaml b/_data/citations.yaml new file mode 100644 index 0000000..c30582a --- /dev/null +++ b/_data/citations.yaml @@ -0,0 +1,247 @@ +# DO NOT EDIT, GENERATED AUTOMATICALLY + +- id: doi:10.1093/nar/gkad1082 + title: "The Monarch Initiative in 2024: an analytic platform integrating phenotypes,\ + \ genes\_and diseases across species" + authors: + - Tim E Putman + - Kevin Schaper + - Nicolas Matentzoglu + - "Vincent\_P Rubinetti" + - "Faisal\_S Alquaddoomi" + - Corey Cox + - J Harry Caufield + - Glass Elsarboukh + - Sarah Gehrke + - Harshad Hegde + - "Justin\_T Reese" + - Ian Braun + - "Richard\_M Bruskiewich" + - Luca Cappelletti + - Seth Carbon + - "Anita\_R Caron" + - "Lauren\_E Chan" + - "Christopher\_G Chute" + - "Katherina\_G Cortes" + - "Vin\xEDcius De\_Souza" + - Tommaso Fontana + - "Nomi\_L Harris" + - "Emily\_L Hartley" + - Eric Hurwitz + - "Julius\_O B Jacobsen" + - Madan Krishnamurthy + - "Bryan\_J Laraway" + - "James\_A McLaughlin" + - "Julie\_A McMurry" + - "Sierra\_A T Moxon" + - "Kathleen\_R Mullen" + - "Shawn\_T O\u2019Neil" + - "Kent\_A Shefchek" + - Ray Stefancsik + - Sabrina Toro + - "Nicole\_A Vasilevsky" + - "Ramona\_L Walls" + - "Patricia\_L Whetzel" + - David Osumi-Sutherland + - Damian Smedley + - "Peter\_N Robinson" + - "Christopher\_J Mungall" + - "Melissa\_A Haendel" + - "Monica\_C Munoz-Torres" + publisher: Nucleic Acids Research + date: '2023-11-24' + link: https://doi.org/10.1093/nar/gkad1082 + orcid: 0000-0002-4655-3773 + plugin: orcid.py + file: orcid.yaml +- id: doi:10.1101/2023.10.11.560955 + title: Integration of 168,000 samples reveals global patterns of the human gut microbiome + authors: + - Richard J. Abdill + - Samantha P. Graham + - Vincent Rubinetti + - Frank W. Albert + - Casey S. Greene + - Sean Davis + - Ran Blekhman + publisher: Cold Spring Harbor Laboratory + date: '2023-10-11' + link: https://doi.org/10.1101/2023.10.11.560955 + orcid: 0000-0002-4655-3773 + plugin: orcid.py + file: orcid.yaml +- id: doi:10.1093/nar/gkad289 + title: 'MyGeneset.info: an interactive and programmatic platform for community-curated + and user-created collections of genes' + authors: + - Ricardo Avila + - Vincent Rubinetti + - Xinghua Zhou + - Dongbo Hu + - Zhongchao Qian + - Marco Alvarado Cano + - Everaldo Rodolpho + - Ginger Tsueng + - Casey Greene + - Chunlei Wu + publisher: Nucleic Acids Research + date: '2023-04-18' + link: https://doi.org/gr5hb5 + orcid: 0000-0002-4655-3773 + plugin: orcid.py + file: orcid.yaml +- id: doi:10.1101/2023.01.05.522941 + title: Hetnet connectivity search provides rapid insights into how two biomedical + entities are related + authors: + - Daniel S. Himmelstein + - Michael Zietz + - Vincent Rubinetti + - Kyle Kloster + - Benjamin J. Heil + - Faisal Alquaddoomi + - Dongbo Hu + - David N. Nicholson + - Yun Hao + - Blair D. Sullivan + - Michael W. Nagle + - Casey S. Greene + publisher: Cold Spring Harbor Laboratory + date: '2023-01-07' + link: https://doi.org/grmcb9 + orcid: 0000-0002-4655-3773 + plugin: orcid.py + file: orcid.yaml +- id: doi:10.1093/gigascience/giad047 + title: Hetnet connectivity search provides rapid insights into how biomedical entities + are related + authors: + - Daniel S Himmelstein + - Michael Zietz + - Vincent Rubinetti + - Kyle Kloster + - Benjamin J Heil + - Faisal Alquaddoomi + - Dongbo Hu + - David N Nicholson + - Yun Hao + - Blair D Sullivan + - Michael W Nagle + - Casey S Greene + publisher: GigaScience + date: '2022-12-28' + link: https://doi.org/gsd85n + orcid: 0000-0002-4655-3773 + plugin: orcid.py + file: orcid.yaml +- id: doi:10.1101/2022.02.18.461833 + title: 'MolEvolvR: A web-app for characterizing proteins using molecular evolution + and phylogeny' + authors: + - Jacob D Krol + - Joseph T Burke + - Samuel Z Chen + - Lo Sosinski + - Faisal S Alquaddoomi + - Evan P Brenner + - Ethan P Wolfe + - Vince P Rubinetti + - Shaddai Amolitos + - Kellen M Reason + - John B Johnston + - Janani Ravi + publisher: Cold Spring Harbor Laboratory + date: '2022-02-22' + link: https://doi.org/10.1101/2022.02.18.461833 + orcid: 0000-0002-4655-3773 + plugin: orcid.py + file: orcid.yaml +- id: doi:10.1186/s13059-020-02021-3 + title: Compressing gene expression data using multiple latent space dimensionalities + learns complementary biological representations + authors: + - Gregory P. Way + - Michael Zietz + - Vincent Rubinetti + - Daniel S. Himmelstein + - Casey S. Greene + publisher: Genome Biology + date: '2020-05-11' + link: https://doi.org/gg2mjh + orcid: 0000-0002-4655-3773 + plugin: orcid.py + file: orcid.yaml +- id: doi:10.1371/journal.pcbi.1007128 + title: Open collaborative writing with Manubot + authors: + - Daniel S. Himmelstein + - Vincent Rubinetti + - David R. Slochower + - Dongbo Hu + - Venkat S. Malladi + - Casey S. Greene + - Anthony Gitter + publisher: PLOS Computational Biology + date: '2020-12-04' + link: https://doi.org/c7np + orcid: 0000-0002-4655-3773 + plugin: sources.py + file: sources.yaml + type: paper + description: Lorem ipsum _dolor_ **sit amet**, consectetur adipiscing elit, sed + do eiusmod tempor incididunt ut labore et dolore magna aliqua. + image: https://journals.plos.org/ploscompbiol/article/figure/image?size=inline&id=info:doi/10.1371/journal.pcbi.1007128.g001&rev=2 + buttons: + - type: manubot + link: https://greenelab.github.io/meta-review/ + - type: source + text: Manuscript Source + link: https://github.com/greenelab/meta-review + - type: website + link: http://manubot.org/ + tags: + - open science + - collaboration + repo: greenelab/meta-review +- id: doi:10.1101/573782 + title: Sequential compression of gene expression across dimensionalities and methods + reveals no single best method or dimensionality + authors: + - Gregory P. Way + - Michael Zietz + - Vincent Rubinetti + - Daniel S. Himmelstein + - Casey S. Greene + publisher: Cold Spring Harbor Laboratory + date: '2019-03-11' + link: https://doi.org/gfxjxf + orcid: 0000-0002-4655-3773 + plugin: orcid.py + file: orcid.yaml +- id: doi:10.1016/j.csbj.2020.05.017 + title: Constructing knowledge graphs and their biomedical applications + authors: + - David N. Nicholson + - Casey S. Greene + publisher: Computational and Structural Biotechnology Journal + date: '2020-01-01' + link: https://doi.org/gg7m48 + image: https://ars.els-cdn.com/content/image/1-s2.0-S2001037020302804-gr1.jpg + plugin: sources.py + file: sources.yaml +- id: doi:10.7554/eLife.32822 + title: Sci-Hub provides access to nearly all scholarly literature + authors: + - Daniel S Himmelstein + - Ariel Rodriguez Romero + - Jacob G Levernier + - Thomas Anthony Munro + - Stephen Reid McLaughlin + - Bastian Greshake Tzovaras + - Casey S Greene + publisher: eLife + date: '2018-03-01' + link: https://doi.org/ckcj + image: https://iiif.elifesciences.org/lax:32822%2Felife-32822-fig8-v3.tif/full/863,/0/default.webp + plugin: sources.py + file: sources.yaml diff --git a/_data/orcid.yaml b/_data/orcid.yaml new file mode 100644 index 0000000..005d380 --- /dev/null +++ b/_data/orcid.yaml @@ -0,0 +1 @@ +- orcid: 0000-0002-4655-3773 diff --git a/_data/projects.yaml b/_data/projects.yaml new file mode 100644 index 0000000..b3eb2a7 --- /dev/null +++ b/_data/projects.yaml @@ -0,0 +1,47 @@ +- title: Cool Dataset + subtitle: a subtitle + group: featured + image: images/photo.jpg + link: https://github.com/ + description: Lorem ipsum _dolor sit amet_, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + repo: greenelab/lab-website-template + tags: + - resource + +- title: Cool Package + subtitle: a subtitle + group: featured + image: images/photo.jpg + link: https://github.com/ + description: Lorem ipsum _dolor sit amet_, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + repo: greenelab/lab-website-template + tags: + - resource + +- title: Cool Tutorial + subtitle: a subtitle + image: images/photo.jpg + link: https://github.com/ + description: Lorem ipsum _dolor sit amet_, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + repo: greenelab/lab-website-template + tags: + - resource + - publication + +- title: Cool Web App + subtitle: a subtitle + image: images/photo.jpg + link: https://github.com/ + description: Lorem ipsum _dolor sit amet_, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + repo: greenelab/lab-website-template + tags: + - software + +- title: Cool Web Server + subtitle: a subtitle + image: images/photo.jpg + link: https://github.com/ + description: Lorem ipsum _dolor sit amet_, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + repo: greenelab/lab-website-template + tags: + - software diff --git a/_data/sources.yaml b/_data/sources.yaml new file mode 100644 index 0000000..62cd922 --- /dev/null +++ b/_data/sources.yaml @@ -0,0 +1,23 @@ +- id: doi:10.1371/journal.pcbi.1007128 + type: paper + description: Lorem ipsum _dolor_ **sit amet**, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + date: 2020-12-4 + image: https://journals.plos.org/ploscompbiol/article/figure/image?size=inline&id=info:doi/10.1371/journal.pcbi.1007128.g001&rev=2 + buttons: + - type: manubot + link: https://greenelab.github.io/meta-review/ + - type: source + text: Manuscript Source + link: https://github.com/greenelab/meta-review + - type: website + link: http://manubot.org/ + tags: + - open science + - collaboration + repo: greenelab/meta-review + +- id: doi:10.1016/j.csbj.2020.05.017 + image: https://ars.els-cdn.com/content/image/1-s2.0-S2001037020302804-gr1.jpg + +- id: doi:10.7554/eLife.32822 + image: https://iiif.elifesciences.org/lax:32822%2Felife-32822-fig8-v3.tif/full/863,/0/default.webp diff --git a/_data/types.yaml b/_data/types.yaml new file mode 100644 index 0000000..2909b0a --- /dev/null +++ b/_data/types.yaml @@ -0,0 +1,216 @@ +# map general type to default/fallback icon, text, etc. + +# team member roles + +pi: + icon: fa-solid fa-microscope + description: Principal Investigator + +postdoc: + icon: fa-solid fa-glasses + description: Postdoctoral Researcher + +phd: + icon: fa-solid fa-graduation-cap + description: PhD Student + +undergrad: + icon: fa-solid fa-user-graduate + description: Undergraduate Student + +programmer: + icon: fa-solid fa-code + description: Programmer + +mascot: + icon: fa-solid fa-dog + description: Mascot + +# general + +link: + icon: fa-solid fa-globe + text: Link + tooltip: Link + +website: + icon: fa-solid fa-globe + text: Website + tooltip: Website + +external: + icon: fa-solid fa-up-right-from-square + text: External Link + tooltip: External link + +home-page: + icon: fa-solid fa-house-user + text: Home Page + tooltip: Home page + +email: + icon: fa-solid fa-envelope + text: Email + tooltip: Email + link: mailto:$VALUE + +phone: + icon: fa-solid fa-phone + text: Phone Number + tooltip: Phone number + link: tel:$VALUE + +address: + icon: fa-solid fa-map-location-dot + text: Address + tooltip: Address + +search: + icon: fa-solid fa-magnifying-glass + text: Search + tooltip: Search + +# social media + +orcid: + icon: fa-brands fa-orcid + text: ORCID + tooltip: ORCID + link: https://orcid.org/$VALUE + +google-scholar: + icon: fa-brands fa-google + text: Google Scholar + tooltip: Google Scholar + link: https://scholar.google.com/citations?user=$VALUE + +github: + icon: fa-brands fa-github + text: GitHub + tooltip: GitHub + link: https://github.com/$VALUE + +twitter: + icon: fa-brands fa-twitter + text: Twitter + tooltip: Twitter + link: https://twitter.com/$VALUE + +facebook: + icon: fa-brands fa-facebook + text: Facebook + tooltip: Facebook + link: https://facebook.com/$VALUE + +instagram: + icon: fa-brands fa-instagram + text: Instagram + tooltip: Instagram + link: https://instagram.com/$VALUE + +youtube: + icon: fa-brands fa-youtube + text: YouTube + tooltip: YouTube + link: https://youtube.com/$VALUE + +linkedin: + icon: fa-brands fa-linkedin + text: LinkedIn + tooltip: LinkedIn + link: https://www.linkedin.com/in/$VALUE + +# alerts + +tip: + icon: fa-solid fa-lightbulb + color: "#d946ef" + +help: + icon: fa-solid fa-circle-question + color: "#6366f1" + +info: + icon: fa-solid fa-circle-info + color: "#0ea5e9" + +success: + icon: fa-solid fa-circle-check + color: "#22c55e" + +warning: + icon: fa-solid fa-circle-exclamation + color: "#F59E0B" + +error: + icon: fa-solid fa-ban + color: "#ef4444" + +# publications + +paper: + icon: fa-solid fa-scroll + text: Paper + tooltip: Paper + +book: + icon: fa-solid fa-book + text: Book + tooltip: Book + +article: + icon: fa-solid fa-newspaper + text: Article + tooltip: Article + +journal: + icon: fa-regular fa-newspaper + text: Journal + tooltip: Journal + +preprint: + icon: fa-regular fa-eye + text: Preprint + tooltip: Preprint + +unpublished: + icon: fa-regular fa-eye + text: Unpublished + tooltip: Unpublished + +manubot: + icon: manubot.svg + text: Manubot + tooltip: Manubot + +# software + +docs: + icon: fa-solid fa-book + text: Documentation + tooltip: Documentation + +source: + icon: fa-solid fa-code + text: Source + tooltip: Source code + +server: + icon: fa-solid fa-server + text: Server + tooltip: Server + +app: + icon: fa-solid fa-hand-pointer + text: App + tooltip: App + +data: + icon: fa-solid fa-database + text: Data + tooltip: Data + +package: + icon: fa-solid fa-box + text: Package + tooltip: Package diff --git a/_includes/alert.html b/_includes/alert.html new file mode 100644 index 0000000..6fc9878 --- /dev/null +++ b/_includes/alert.html @@ -0,0 +1,10 @@ +{% assign color = site.data.types[include.type].color | default: "#808080" %} +
+ {% assign icon = site.data.types[include.type].icon + | default: "fa-solid fa-circle-info" + %} + {% include icon.html icon=icon %} +
+ {{ include.content | markdownify }} +
+
diff --git a/_includes/analytics.html b/_includes/analytics.html new file mode 100644 index 0000000..6af6788 --- /dev/null +++ b/_includes/analytics.html @@ -0,0 +1,3 @@ + diff --git a/_includes/button.html b/_includes/button.html new file mode 100644 index 0000000..8d1730d --- /dev/null +++ b/_includes/button.html @@ -0,0 +1,24 @@ +{% assign button = include %} +{% assign button = button | hash_default: site.data.types[include.type] %} + +{% if button.link or button.icon or button.text %} +
+ + {% include icon.html icon=button.icon %} + {% if button.text and button.text != "" %} + {{ button.text }} + {% endif %} + +
+{% endif %} diff --git a/_includes/card.html b/_includes/card.html new file mode 100644 index 0000000..feb325c --- /dev/null +++ b/_includes/card.html @@ -0,0 +1,45 @@ +{{ " " }} +
+ + {{ include.title | default: + + +
+ {% if include.title %} + + {{ include.title }} + + {% endif %} + + {% if include.subtitle %} + {{ include.subtitle }} + {% endif %} + + {% if include.description %} + {{ include.description | markdownify }} + {% endif %} + + {% if include.tags or include.repo %} + {% include tags.html tags=include.tags repo=include.repo %} + {% endif %} +
+
diff --git a/_includes/citation.html b/_includes/citation.html new file mode 100644 index 0000000..ea62b17 --- /dev/null +++ b/_includes/citation.html @@ -0,0 +1,96 @@ +{% assign citation = site.data.citations + | where_exp: "citation", + "citation.id == include.lookup or citation.title contains include.lookup" + | first + | default: include +%} + +
+ {% if include.style == "rich" %} + + {{ citation.title | default: + + {% endif %} + +
+ {% assign type = site.data.types[citation.type] %} + {% include icon.html icon=type.icon %} + + + {{ citation.title | default: "[no title info]" }} + + +
10 %} + data-tooltip="{{ citation.authors | join: ", " }} " + {% endif %} + tabindex="0" + > + {{ + citation.authors + | join: "," + | split: "," + | array_carve: 5 + | join: ", " + | default: "[no author info]" + }} +
+ +
+ {{ citation.publisher | default: "[no publisher info]" }} +   ·   + {{ citation.date | default: "[no date info]" | date: "%d %b %Y" }} +   ·   + {{ citation.id | default: "[no id info]" }} +
+ + {% if include.style == "rich" %} + {% if citation.description %} +
+ {{ + citation.description + | markdownify + | remove: "

" + | remove: "

" + }} +
+ {% endif %} + + {% if citation.buttons.size > 0 %} +
+ {% for button in citation.buttons %} + {% + include button.html + type=button.type + icon=button.icon + text=button.text + link=button.link + style="bare" + %} + {% endfor %} +
+ {% endif %} + + {% if citation.tags.size > 0 or citation.repo %} + {% include tags.html tags=citation.tags repo=citation.repo %} + {% endif %} + {% endif %} +
+
diff --git a/_includes/cols.html b/_includes/cols.html new file mode 100644 index 0000000..20dd865 --- /dev/null +++ b/_includes/cols.html @@ -0,0 +1,6 @@ +
+ {% for param in include %} + {% assign key = param[0] %} +
{{ include[key] | markdownify }}
+ {% endfor %} +
diff --git a/_includes/content.html b/_includes/content.html new file mode 100644 index 0000000..44c59d8 --- /dev/null +++ b/_includes/content.html @@ -0,0 +1,38 @@ + + +{% assign content = include.content %} + +{% assign content = content + | regex_replace: "(.*?)
", + "
\1
" +%} + +{% assign sections = content | split: "" | array_filter %} + +{% for section in sections %} + {% assign dark = section | regex_scan: "dark: (.*);" | default: "" %} + {% assign background = section + | regex_scan: "background: (.*);" + | default: nil + %} + {% assign size = section | regex_scan: "size: (.*);" | default: "page" %} + +
+ {{ section }} +
+{% endfor %} diff --git a/_includes/fallback.html b/_includes/fallback.html new file mode 100644 index 0000000..5d60a80 --- /dev/null +++ b/_includes/fallback.html @@ -0,0 +1 @@ +onerror="this.src = '{{ "images/fallback.svg" | relative_url }}'; this.onerror = null;" diff --git a/_includes/feature.html b/_includes/feature.html new file mode 100644 index 0000000..27e33fa --- /dev/null +++ b/_includes/feature.html @@ -0,0 +1,27 @@ +
+ + {{ include.title | default: + +
+ {% if include.title %} +

{{ include.title }}

+ {% endif %} + {{ include.text | markdownify }} +
+
diff --git a/_includes/figure.html b/_includes/figure.html new file mode 100644 index 0000000..a426ff4 --- /dev/null +++ b/_includes/figure.html @@ -0,0 +1,25 @@ +
+ + {{ include.caption | default: + + {% if include.caption %} +
+ {{ include.caption | markdownify | remove: "

" | remove: "

" }} +
+ {% endif %} +
diff --git a/_includes/float.html b/_includes/float.html new file mode 100644 index 0000000..a5d2955 --- /dev/null +++ b/_includes/float.html @@ -0,0 +1,11 @@ +
+ {{ include.content | markdownify }} +
diff --git a/_includes/fonts.html b/_includes/fonts.html new file mode 100644 index 0000000..8fe3b65 --- /dev/null +++ b/_includes/fonts.html @@ -0,0 +1,17 @@ + + +{% assign googlefonts = "_styles/-theme.scss" | file_read | google_fonts %} + + + + +{% assign fontawesome = "https://use.fontawesome.com/releases/v6.3.0/css/all.css" %} + + diff --git a/_includes/footer.html b/_includes/footer.html new file mode 100644 index 0000000..8230d53 --- /dev/null +++ b/_includes/footer.html @@ -0,0 +1,42 @@ +{% assign image = page.footer | default: site.footer | relative_url %} +{% assign dark = page.footer-dark | is_nil: site.footer-dark | is_nil: true %} + + diff --git a/_includes/grid.html b/_includes/grid.html new file mode 100644 index 0000000..40ea2cf --- /dev/null +++ b/_includes/grid.html @@ -0,0 +1,3 @@ +
+ {{ include.content | markdownify }} +
diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..c21a44a --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,8 @@ + + {% include analytics.html %} + {% include verification.html %} + {% include meta.html %} + {% include fonts.html %} + {% include styles.html %} + {% include scripts.html %} + diff --git a/_includes/header.html b/_includes/header.html new file mode 100644 index 0000000..e48e261 --- /dev/null +++ b/_includes/header.html @@ -0,0 +1,59 @@ +{% assign image = page.header | default: site.header | relative_url %} +{% assign dark = page.header-dark | is_nil: site.header-dark | is_nil: true %} + +{% assign svg = "images/logo.svg" | file_exists %} +{% assign png = "images/logo.png" | file_exists %} +{% assign jpg = "images/logo.jpg" | file_exists %} +{% assign logo = png | default: png | default: jpg | default: nil %} + +
+ + {% if logo %} + + {% endif %} + {% if site.logo-text != false %} + + {% if site.title and site.show-title != false %} + {{ site.title }} + {% endif %} + {% if site.subtitle and site.show-subtitle != false %} + {{ site.subtitle }} + {% endif %} + + {% endif %} + + + + + +
diff --git a/_includes/icon.html b/_includes/icon.html new file mode 100644 index 0000000..0448e93 --- /dev/null +++ b/_includes/icon.html @@ -0,0 +1,10 @@ +{%- if include.icon contains ".svg" -%} + {%- capture inline -%} + {%- include {{ include.icon }} -%} + {%- endcapture -%} + + {{- inline | strip_newlines -}} + +{%- elsif include.icon and include.icon != "" -%} + +{%- endif -%} diff --git a/_includes/list.html b/_includes/list.html new file mode 100644 index 0000000..92026fd --- /dev/null +++ b/_includes/list.html @@ -0,0 +1,58 @@ +{% assign emptyarray = "" | split: "," %} +{% assign data = site.data[include.data] + | default: site[include.data] + | default: emptyarray + | data_filter: include.filters +%} + +{% assign years = data + | group_by_exp: "d", "d.date | date: '%Y'" + | sort: "name" + | reverse +%} + +{% for year in years %} + {% assign data = year.items %} + + {% if years.size > 1 %} + {{--}}

{{ year.name }}

+ {% assign data = data | sort: "date" | reverse %} + {% endif %} + + {% for d in data %} + {% assign style = d.style | default: include.style %} + + {% + include {{ include.component | append: ".html" }} + author=d.author + authors=d.authors + buttons=d.buttons + caption=d.caption + content=d.content + date=d.date + description=d.description + excerpt=d.excerpt + height=d.height + icon=d.icon + id=d.id + image=d.image + last_modified_at=d.last_modified_at + link=d.link + lookup=d.lookup + name=d.name + publisher=d.publisher + repo=d.repo + role=d.role + slug=d.slug + style=style + subtitle=d.subtitle + tags=d.tags + text=d.text + title=d.title + tooltip=d.tooltip + type=d.type + url=d.url + width=d.width + %} + {% endfor %} +{% endfor %} diff --git a/_includes/manubot.svg b/_includes/manubot.svg new file mode 100644 index 0000000..24b0c2e --- /dev/null +++ b/_includes/manubot.svg @@ -0,0 +1,78 @@ + + + + + + + + + + + diff --git a/_includes/meta.html b/_includes/meta.html new file mode 100644 index 0000000..f66d240 --- /dev/null +++ b/_includes/meta.html @@ -0,0 +1,97 @@ +{% assign filename = page.path | split: "/" | last %} +{% if page.name and page.name != filename %} + {% assign title = page.name %} +{% elsif page.title %} + {% assign title = page.title %} +{% else %} + {% assign title = nil %} +{% endif %} + +{% assign fulltitle = "" | split: "," %} +{% if title %} + {% assign fulltitle = fulltitle | push: title %} +{% endif %} +{% if site.title %} + {% assign fulltitle = fulltitle | push: site.title %} +{% endif %} +{% assign fulltitle = fulltitle | join: " | " %} + +{% assign subtitle = site.subtitle %} + +{% assign description = page.description | default: site.description %} +{% if site.subtitle %} + {% capture description -%} + {{ site.subtitle }}. {{ description }} + {%- endcapture %} +{% endif %} +{% assign url = site.location %} + +{% assign png = "images/logo_small.png" | file_exists %} +{% assign jpg = "images/logo.jpg" | file_exists %} +{% assign icon = png | default: jpg | relative_url %} + +{% assign jpg = "images/share.jpg" | file_exists %} +{% assign png = "images/share.png" | file_exists %} +{% assign share = jpg | default: png | relative_url %} + +{% assign published = page.date | date_to_xmlschema %} +{% assign updated = page.last_modified_at | date_to_xmlschema %} + +{% assign feed = "feed.xml" | absolute_url %} + + + +{{ fulltitle }} + + + + + + + + + + + + + + + + + + + +{% if page.author %} + + + + + + +{% else %} + +{% endif %} + + + + diff --git a/_includes/portrait.html b/_includes/portrait.html new file mode 100644 index 0000000..dade824 --- /dev/null +++ b/_includes/portrait.html @@ -0,0 +1,42 @@ +{% assign member = site.members + | where_exp: "member", "member.slug == include.lookup" + | first + | default: include +%} + +
+ + member portrait + + {% if member.name or member.role or member.description %} + + {% if member.name %} + + {{ member.name }} + + {% endif %} + + {% if member.role or member.description %} + + {% assign type = site.data.types[member.role] %} + {% include icon.html icon=type.icon %} + {{ member.description | default: type.description }} + + {% endif %} + + {% endif %} + +
diff --git a/_includes/post-excerpt.html b/_includes/post-excerpt.html new file mode 100644 index 0000000..5b7d811 --- /dev/null +++ b/_includes/post-excerpt.html @@ -0,0 +1,35 @@ +{% assign post = site.posts + | where_exp: "post", "post.slug == include.lookup" + | first + | default: include +%} + +
+ {% assign url = post.url %} + {% assign title = post.title %} + {{ title }} + + {% + include post-info.html + author=post.author + published=post.date + updated=post.last_modified_at + tags=post.tags + %} + + {% assign excerpt = post.content + | default: "" + | regex_scan: "(.*)", true + | default: post.excerpt + | default: "" + | strip_html + %} + {% assign search = post.content + | strip_html + | strip_newlines + | regex_strip + %} +

+ {{ excerpt }} +

+
diff --git a/_includes/post-info.html b/_includes/post-info.html new file mode 100644 index 0000000..c0585d7 --- /dev/null +++ b/_includes/post-info.html @@ -0,0 +1,37 @@ +
+ {% if include.author %} + {% assign member = site.members + | where_exp: "member", "member.slug == include.author" + | first + %} + {% if member %} + {% include portrait.html lookup=include.author style="tiny" %} + {% else %} + + {% include icon.html icon="fa-solid fa-feather-pointed" %} + {{ include.author }} + + {% endif %} + {% endif %} + + {% assign published = include.published | date: "%B %d, %Y" %} + {% assign updated = include.updated | date: "%B %d, %Y" %} + + {% if published %} + + {% include icon.html icon="fa-regular fa-calendar" %} + {{ published }} + + {% endif %} + + {% if updated and updated != "" and updated != published %} + + {% include icon.html icon="fa-solid fa-clock-rotate-left" %} + {{ updated }} + + {% endif %} +
+ +{% if include.tags %} + {% include tags.html tags=include.tags link="blog" %} +{% endif %} diff --git a/_includes/post-nav.html b/_includes/post-nav.html new file mode 100644 index 0000000..ac75bbf --- /dev/null +++ b/_includes/post-nav.html @@ -0,0 +1,18 @@ +
+ + {% if include.post.previous %} + {% include icon.html icon="fa-solid fa-angle-left" %} Previous post
+ + {{ include.post.previous.title }} + + {% endif %} +
+ + {% if include.post.next %} + Next post {% include icon.html icon="fa-solid fa-angle-right" %}
+ + {{ include.post.next.title }} + + {% endif %} +
+
diff --git a/_includes/scripts.html b/_includes/scripts.html new file mode 100644 index 0000000..30b7ac2 --- /dev/null +++ b/_includes/scripts.html @@ -0,0 +1,10 @@ + + + + + + +{% assign scripts = site.static_files | where_exp: "file", "file.path contains '/_scripts'" %} +{% for script in scripts %} + +{% endfor %} diff --git a/_includes/search-box.html b/_includes/search-box.html new file mode 100644 index 0000000..17d7a8b --- /dev/null +++ b/_includes/search-box.html @@ -0,0 +1,16 @@ + diff --git a/_includes/search-info.html b/_includes/search-info.html new file mode 100644 index 0000000..165fdd4 --- /dev/null +++ b/_includes/search-info.html @@ -0,0 +1 @@ +
diff --git a/_includes/section.html b/_includes/section.html new file mode 100644 index 0000000..d7255a8 --- /dev/null +++ b/_includes/section.html @@ -0,0 +1,10 @@ +{% comment %} + see content.html +{% endcomment %} + + + diff --git a/_includes/site-search.html b/_includes/site-search.html new file mode 100644 index 0000000..3926ff8 --- /dev/null +++ b/_includes/site-search.html @@ -0,0 +1,6 @@ +
+ + +
diff --git a/_includes/styles.html b/_includes/styles.html new file mode 100644 index 0000000..a506e87 --- /dev/null +++ b/_includes/styles.html @@ -0,0 +1,28 @@ + + + + + +{% assign styles = site.pages + | where_exp: "file", "file.url contains '/_styles'" +%} +{% for style in styles %} + {% unless style.url contains ".map" %} + + {% endunless %} +{% endfor %} + + +{% assign styles = site.static_files + | where_exp: "file", + "file.path contains '/_styles' and file.path contains '.css'" +%} +{% for style in styles %} + +{% endfor %} diff --git a/_includes/tags.html b/_includes/tags.html new file mode 100644 index 0000000..fb16266 --- /dev/null +++ b/_includes/tags.html @@ -0,0 +1,29 @@ +{% assign tags = include.tags + | object_items + | join: "," + | split: "," + | array_filter + | uniq +%} +{% assign link = include.link | default: page.dir | absolute_url %} +{% if tags.size > 0 or include.repo %} +
+ {% for tag in tags %} + + {{ tag }} + + {% endfor %} +
+{% endif %} diff --git a/_includes/verification.html b/_includes/verification.html new file mode 100644 index 0000000..e72f39b --- /dev/null +++ b/_includes/verification.html @@ -0,0 +1,3 @@ + diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..b5ac58d --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,11 @@ + + + {% include head.html %} + + {% include header.html %} +
+ {% include content.html content=content %} +
+ {% include footer.html %} + + diff --git a/_layouts/member.html b/_layouts/member.html new file mode 100644 index 0000000..034b5d0 --- /dev/null +++ b/_layouts/member.html @@ -0,0 +1,51 @@ +--- +layout: default +--- + +{% capture floatcontent %} + +{% include portrait.html lookup=page.slug %} + +
+ {% for link in page.links %} + {% assign key = link[0] %} + {% assign value = link[1] %} + {% include button.html type=key link=value style="bare" %}
+ {% endfor %} +
+ +{% endcapture %} + +{% include float.html content=floatcontent %} + +{{ content }} + +{% assign aliases = page.aliases + | default: page.name + | default: page.title + | join: "," + | split: "," + | array_filter +%} + +{% capture search -%} + research/?search={% for alias in aliases %}"{{ alias }}" {% endfor %} +{%- endcapture %} + +

+ + Search for {{ page.name | default: page.title }}'s papers on the Research page + +

+ +{% capture search -%} + blog/?search={{ page.name }} +{%- endcapture %} + + diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 0000000..9b1641a --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,22 @@ +--- +layout: default +--- + +

{{ page.title }}

+ +{% + include post-info.html + author=page.author + member=page.member + published=page.date + updated=page.last_modified_at + tags=page.tags +%} + +{% include section.html %} + +{{ content }} + +{% include section.html %} + +{% include post-nav.html post=page %} diff --git a/_members/jane-smith.md b/_members/jane-smith.md new file mode 100644 index 0000000..f4cae89 --- /dev/null +++ b/_members/jane-smith.md @@ -0,0 +1,19 @@ +--- +name: Jane Smith +image: images/photo.jpg +role: pi +aliases: + - J. Smith + - J Smith +links: + home-page: https://janesmith.com + orcid: 0000-0001-8713-9213 +--- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Faucibus purus in massa tempor nec feugiat nisl pretium fusce. +Elit at imperdiet dui accumsan. +Duis tristique sollicitudin nibh sit amet commodo nulla facilisi. +Vitae elementum curabitur vitae nunc sed velit dignissim sodales. +Lacinia at quis risus sed vulputate odio ut. +Magna eget est lorem ipsum. diff --git a/_members/john-doe.md b/_members/john-doe.md new file mode 100644 index 0000000..0e441c6 --- /dev/null +++ b/_members/john-doe.md @@ -0,0 +1,10 @@ +--- +name: John Doe +image: images/photo.jpg +role: phd +group: alum +links: + github: john-doe +--- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. diff --git a/_members/sarah-johnson.md b/_members/sarah-johnson.md new file mode 100644 index 0000000..b0d97b4 --- /dev/null +++ b/_members/sarah-johnson.md @@ -0,0 +1,11 @@ +--- +name: Sarah Johnson +image: images/photo.jpg +description: Lead Programmer +role: programmer +links: + email: sarah.johnson@gmail.com + twitter: sarahjohnson +--- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. diff --git a/_plugins/array.rb b/_plugins/array.rb new file mode 100644 index 0000000..871626b --- /dev/null +++ b/_plugins/array.rb @@ -0,0 +1,25 @@ +require 'liquid' + +module Jekyll + module ArrayFilters + # filter out empty and trim entries in array + def array_filter(array) + return array + .map{|x| x.is_a?(String) ? x.strip() : x} + .select{|x| x and x != ""} + end + + # omit middle items of array with ellipsis, leave N items on either side + def array_carve(array, length = 3) + if array.length <= length * 2 + return array + else + left = array.slice(0, length) || [] + right = array.slice(-length, length) || [] + return [left, "...", right].flatten() + end + end + end +end + +Liquid::Template.register_filter(Jekyll::ArrayFilters) diff --git a/_plugins/file.rb b/_plugins/file.rb new file mode 100644 index 0000000..32a0af2 --- /dev/null +++ b/_plugins/file.rb @@ -0,0 +1,20 @@ +require 'liquid' + +module Jekyll + module FileFilters + # check if file exists + def file_exists(file) + path = File.join(Dir.getwd, file) + # pass back filename if exists + return File.file?(path) ? file : nil + end + + # read text contents of file + def file_read(file) + path = File.join(Dir.getwd, file) + return File.file?(path) ? File.read(path) : nil + end + end +end + +Liquid::Template.register_filter(Jekyll::FileFilters) diff --git a/_plugins/hash.rb b/_plugins/hash.rb new file mode 100644 index 0000000..2344589 --- /dev/null +++ b/_plugins/hash.rb @@ -0,0 +1,28 @@ +require 'liquid' + +module Jekyll + module HashFilters + # merge main hash with another hash of defaults + def hash_default(hash, defaults) + if not hash.is_a?(Hash) or not defaults.is_a?(Hash) + return hash + end + defaults.each do |key, value| + # substitute main string into default string and set main item + if value.is_a?(String) and value.include?"$VALUE" + if hash[key].is_a?(String) + hash[key] = value.sub"$VALUE", hash[key] + end + # set main item to default item if not defined + else + if hash[key] == nil or !hash.key?(key) + hash[key] = value + end + end + end + return hash + end + end +end + +Liquid::Template.register_filter(Jekyll::HashFilters) diff --git a/_plugins/misc.rb b/_plugins/misc.rb new file mode 100644 index 0000000..6b4cb0f --- /dev/null +++ b/_plugins/misc.rb @@ -0,0 +1,59 @@ +require 'liquid' + +module Jekyll + module MiscFilters + # fallback if value unspecified + def is_nil(value, fallback) + return value == nil ? fallback : value + end + + # get list of hash keys or array entries + def object_items(object) + if object.is_a?(Hash) + return object.keys + elsif object.is_a?(Array) + return object + end + return [] + end + + # filter a list of hashes by comma-sep'd field:value pairs + def data_filter(data, filters) + if not data.is_a?(Array) or not filters.is_a?(String) + return data + end + data = data.clone + for filter in array_filter(filters.split(",")) + key, value = array_filter(filter.split(":")) + # find unspecified fields + if value == nil + data.select!{|d| d[key] == nil} + # find fields that match regex + elsif value.is_a?(String) + data.select!{|d| d[key].to_s =~ /#{value}/m} + end + end + return data + end + + # from css text, find font family definitions and construct google font url + def google_fonts(css) + names = regex_scan(css, '--\S*:\s*"(.*)",?.*;', false, true).sort.uniq + weights = regex_scan(css, '--\S*:\s(\d{3});', false, true).sort.uniq + url = "https://fonts.googleapis.com/css2?display=swap&" + for name in names do + name.sub!" ", "+" + url += "&family=#{name}:ital,wght@" + for ital in [0, 1] do + for weight in weights do + url += "#{ital},#{weight};" + end + end + url.delete_suffix!(";") + end + return url + end + end +end + +Liquid::Template.register_filter(Jekyll::MiscFilters) diff --git a/_plugins/regex.rb b/_plugins/regex.rb new file mode 100644 index 0000000..f7cd02e --- /dev/null +++ b/_plugins/regex.rb @@ -0,0 +1,28 @@ +require 'liquid' + +module Jekyll + module RegexFilters + # search string for regex capture group, return first or all matches + def regex_scan(string, search, multi = false, all = false) + regex = multi ? /#{search}/m : /#{search}/ + matches = string.scan(regex).flatten + if matches.length + return all ? matches : matches[0] + else + return "" + end + end + + # find regex capture group in string and replace + def regex_replace(string, search, replace) + return string.gsub(/#{search}/m, replace) + end + + # strip all non-letter and non-number characters from string + def regex_strip(string) + return string.gsub(/[^\p{L}\p{N}]/u, " ") + end + end +end + +Liquid::Template.register_filter(Jekyll::RegexFilters) diff --git a/_posts/2019-01-07-example-post-1.md b/_posts/2019-01-07-example-post-1.md new file mode 100644 index 0000000..d586270 --- /dev/null +++ b/_posts/2019-01-07-example-post-1.md @@ -0,0 +1,10 @@ +--- +title: Example post 1 +author: sarah-johnson +tags: + - biology + - medicine + - big data +--- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. diff --git a/_posts/2021-09-30-example-post-2.md b/_posts/2021-09-30-example-post-2.md new file mode 100644 index 0000000..889c897 --- /dev/null +++ b/_posts/2021-09-30-example-post-2.md @@ -0,0 +1,6 @@ +--- +title: Example post 2 +author: jane-smith +--- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. diff --git a/_posts/2023-02-23-example-post-3.md b/_posts/2023-02-23-example-post-3.md new file mode 100644 index 0000000..c7b1038 --- /dev/null +++ b/_posts/2023-02-23-example-post-3.md @@ -0,0 +1,7 @@ +--- +title: Example post 3 +author: john-doe +tags: biology, medicine +--- + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. diff --git a/_scripts/anchors.js b/_scripts/anchors.js new file mode 100644 index 0000000..904edf9 --- /dev/null +++ b/_scripts/anchors.js @@ -0,0 +1,47 @@ +/* + creates link next to each heading that links to that section. +*/ + +{ + const onLoad = () => { + // for each heading + const headings = document.querySelectorAll( + "h1[id], h2[id], h3[id], h4[id]" + ); + for (const heading of headings) { + // create anchor link + const link = document.createElement("a"); + link.classList.add("icon", "fa-solid", "fa-link", "anchor"); + link.href = "#" + heading.id; + link.setAttribute("aria-label", "link to this section"); + heading.append(link); + + // if first heading in the section, move id to parent section + if (heading.matches("section > :first-child")) { + heading.parentElement.id = heading.id; + heading.removeAttribute("id"); + } + } + }; + + // scroll to target of url hash + const scrollToTarget = () => { + const id = window.location.hash.replace("#", ""); + const target = document.getElementById(id); + + if (!target) return; + const offset = document.querySelector("header").clientHeight || 0; + window.scrollTo({ + top: target.getBoundingClientRect().top + window.scrollY - offset, + behavior: "smooth", + }); + }; + + // after page loads + window.addEventListener("load", onLoad); + window.addEventListener("load", scrollToTarget); + window.addEventListener("tagsfetched", scrollToTarget); + + // when hash nav happens + window.addEventListener("hashchange", scrollToTarget); +} diff --git a/_scripts/dark-mode.js b/_scripts/dark-mode.js new file mode 100644 index 0000000..b0124d9 --- /dev/null +++ b/_scripts/dark-mode.js @@ -0,0 +1,28 @@ +/* + manages light/dark mode. +*/ + +{ + // save/load user's dark mode preference from local storage + const loadDark = () => window.localStorage.getItem("dark-mode") === "true"; + const saveDark = (value) => window.localStorage.setItem("dark-mode", value); + + // immediately load saved mode before page renders + document.documentElement.dataset.dark = loadDark(); + + const onLoad = () => { + // update toggle button to match loaded mode + document.querySelector(".dark-toggle").checked = + document.documentElement.dataset.dark === "true"; + }; + + // after page loads + window.addEventListener("load", onLoad); + + // when user toggles mode button + window.onDarkToggleChange = (event) => { + const value = event.target.checked; + document.documentElement.dataset.dark = value; + saveDark(value); + }; +} diff --git a/_scripts/fetch-tags.js b/_scripts/fetch-tags.js new file mode 100644 index 0000000..c843b67 --- /dev/null +++ b/_scripts/fetch-tags.js @@ -0,0 +1,67 @@ +/* + fetches tags (aka "topics") from a given GitHub repo and adds them to row of + tag buttons. specify repo in data-repo attribute on row. +*/ + +{ + const onLoad = async () => { + // get tag rows with specified repos + const rows = document.querySelectorAll("[data-repo]"); + + // for each repo + for (const row of rows) { + // get props from tag row + const repo = row.dataset.repo.trim(); + const link = row.dataset.link.trim(); + + // get tags from github + if (!repo) continue; + let tags = await fetchTags(repo); + + // filter out tags already present in row + let existing = [...row.querySelectorAll(".tag")].map((tag) => + window.normalizeTag(tag.innerText) + ); + tags = tags.filter((tag) => !existing.includes(normalizeTag(tag))); + + // add tags to row + for (const tag of tags) { + const a = document.createElement("a"); + a.classList.add("tag"); + a.innerHTML = tag; + a.href = `${link}?search="tag: ${tag}"`; + a.dataset.tooltip = `Show items with the tag "${tag}"`; + row.append(a); + } + + // delete tags container if empty + if (!row.innerText.trim()) row.remove(); + } + + // emit "tags done" event for other scripts to listen for + window.dispatchEvent(new Event("tagsfetched")); + }; + + // after page loads + window.addEventListener("load", onLoad); + + // GitHub topics endpoint + const api = "https://api.github.com/repos/REPO/topics"; + const headers = new Headers(); + headers.set("Accept", "application/vnd.github+json"); + + // get tags from GitHub based on repo name + const fetchTags = async (repo) => { + const url = api.replace("REPO", repo); + try { + const response = await (await fetch(url)).json(); + if (response.names) return response.names; + else throw new Error(JSON.stringify(response)); + } catch (error) { + console.groupCollapsed("GitHub fetch tags error"); + console.log(error); + console.groupEnd(); + return []; + } + }; +} diff --git a/_scripts/search.js b/_scripts/search.js new file mode 100644 index 0000000..fa23ca4 --- /dev/null +++ b/_scripts/search.js @@ -0,0 +1,215 @@ +/* + filters elements on page based on url or search box. + syntax: term1 term2 "full phrase 1" "full phrase 2" "tag: tag 1" + match if: all terms AND at least one phrase AND at least one tag +*/ +{ + // elements to filter + const elementSelector = ".card, .citation, .post-excerpt"; + // search box element + const searchBoxSelector = ".search-box"; + // results info box element + const infoBoxSelector = ".search-info"; + // tags element + const tagSelector = ".tag"; + + // split search query into terms, phrases, and tags + const splitQuery = (query) => { + // split into parts, preserve quotes + const parts = query.match(/"[^"]*"|\S+/g) || []; + + // bins + const terms = []; + const phrases = []; + const tags = []; + + // put parts into bins + for (let part of parts) { + if (part.startsWith('"')) { + part = part.replaceAll('"', "").trim(); + if (part.startsWith("tag:")) + tags.push(normalizeTag(part.replace(/tag:\s*/, ""))); + else phrases.push(part.toLowerCase()); + } else terms.push(part.toLowerCase()); + } + + return { terms, phrases, tags }; + }; + + // normalize tag string for comparison + window.normalizeTag = (tag) => + tag.trim().toLowerCase().replaceAll(/-|\s+/g, " "); + + // get data attribute contents of element and children + const getAttr = (element, attr) => + [element, ...element.querySelectorAll(`[data-${attr}]`)] + .map((element) => element.dataset[attr]) + .join(" "); + + // determine if element should show up in results based on query + const elementMatches = (element, { terms, phrases, tags }) => { + // tag elements within element + const tagElements = [...element.querySelectorAll(".tag")]; + + // check if text content exists in element + const hasText = (string) => + ( + element.innerText + + getAttr(element, "tooltip") + + getAttr(element, "search") + ) + .toLowerCase() + .includes(string); + // check if text matches a tag in element + const hasTag = (string) => + tagElements.some((tag) => normalizeTag(tag.innerText) === string); + + // match logic + return ( + (terms.every(hasText) || !terms.length) && + (phrases.some(hasText) || !phrases.length) && + (tags.some(hasTag) || !tags.length) + ); + }; + + // loop through elements, hide/show based on query, and return results info + const filterElements = (parts) => { + let elements = document.querySelectorAll(elementSelector); + + // results info + let x = 0; + let n = elements.length; + let tags = parts.tags; + + // filter elements + for (const element of elements) { + if (elementMatches(element, parts)) { + element.style.display = ""; + x++; + } else element.style.display = "none"; + } + + return [x, n, tags]; + }; + + // highlight search terms + const highlightMatches = async ({ terms, phrases }) => { + // make sure Mark library available + if (typeof Mark === "undefined") return; + + // reset + new Mark(document.body).unmark(); + + // limit number of highlights to avoid slowdown + let counter = 0; + const filter = () => counter++ < 100; + + // highlight terms and phrases + new Mark(elementSelector) + .mark(terms, { separateWordSearch: true, filter }) + .mark(phrases, { separateWordSearch: false, filter }); + }; + + // update search box based on query + const updateSearchBox = (query = "") => { + const boxes = document.querySelectorAll(searchBoxSelector); + + for (const box of boxes) { + const input = box.querySelector("input"); + const button = box.querySelector("button"); + const icon = box.querySelector("button i"); + input.value = query; + icon.className = input.value.length + ? "icon fa-solid fa-xmark" + : "icon fa-solid fa-magnifying-glass"; + button.disabled = input.value.length ? false : true; + } + }; + + // update info box based on query and results + const updateInfoBox = (query, x, n) => { + const boxes = document.querySelectorAll(infoBoxSelector); + + if (query.trim()) { + // show all info boxes + boxes.forEach((info) => (info.style.display = "")); + + // info template + let info = ""; + info += `Showing ${x.toLocaleString()} of ${n.toLocaleString()} results
`; + info += "Clear search"; + + // set info HTML string + boxes.forEach((el) => (el.innerHTML = info)); + } + // if nothing searched + else { + // hide all info boxes + boxes.forEach((info) => (info.style.display = "none")); + } + }; + + // update tags based on query + const updateTags = (query) => { + const { tags } = splitQuery(query); + document.querySelectorAll(tagSelector).forEach((tag) => { + // set active if tag is in query + if (tags.includes(normalizeTag(tag.innerText))) + tag.setAttribute("data-active", ""); + else tag.removeAttribute("data-active"); + }); + }; + + // run search with query + const runSearch = (query = "") => { + const parts = splitQuery(query); + const [x, n] = filterElements(parts); + updateSearchBox(query); + updateInfoBox(query, x, n); + updateTags(query); + highlightMatches(parts); + }; + + // update url based on query + const updateUrl = (query = "") => { + const url = new URL(window.location); + let params = new URLSearchParams(url.search); + params.set("search", query); + url.search = params.toString(); + window.history.replaceState(null, null, url); + }; + + // search based on url param + const searchFromUrl = () => { + const query = + new URLSearchParams(window.location.search).get("search") || ""; + runSearch(query); + }; + + // return func that runs after delay + const debounce = (callback, delay = 250) => { + let timeout; + return (...args) => { + window.clearTimeout(timeout); + timeout = window.setTimeout(() => callback(...args), delay); + }; + }; + + // when user types into search box + const debouncedRunSearch = debounce(runSearch, 1000); + window.onSearchInput = (target) => { + debouncedRunSearch(target.value); + updateUrl(target.value); + }; + + // when user clears search box with button + window.onSearchClear = () => { + runSearch(); + updateUrl(); + }; + + // after page loads + window.addEventListener("load", searchFromUrl); + // after tags load + window.addEventListener("tagsfetched", searchFromUrl); +} diff --git a/_scripts/site-search.js b/_scripts/site-search.js new file mode 100644 index 0000000..caff0a6 --- /dev/null +++ b/_scripts/site-search.js @@ -0,0 +1,14 @@ +/* + for site search component. searches site/domain via google. +*/ + +{ + // when user submits site search form/box + window.onSiteSearchSubmit = (event) => { + event.preventDefault(); + const google = "https://www.google.com/search?q=site:"; + const site = window.location.origin; + const query = event.target.elements.query.value; + window.location = google + site + " " + query; + }; +} diff --git a/_scripts/tooltip.js b/_scripts/tooltip.js new file mode 100644 index 0000000..49eccfc --- /dev/null +++ b/_scripts/tooltip.js @@ -0,0 +1,41 @@ +/* + shows a popup of text on hover/focus of any element with the data-tooltip + attribute. +*/ + +{ + const onLoad = () => { + // make sure Tippy library available + if (typeof tippy === "undefined") return; + + // get elements with non-empty tooltips + const elements = [...document.querySelectorAll("[data-tooltip]")].filter( + (element) => element.dataset.tooltip.trim() && !element._tippy + ); + + // add tooltip to elements + tippy(elements, { + content: (element) => element.dataset.tooltip.trim(), + delay: [200, 0], + offset: [0, 20], + allowHTML: true, + interactive: true, + appendTo: () => document.body, + aria: { + content: "describedby", + expanded: null, + }, + onShow: ({ reference, popper }) => { + const dark = reference.closest("[data-dark]")?.dataset.dark; + if (dark === "false") popper.dataset.dark = true; + if (dark === "true") popper.dataset.dark = false; + }, + // onHide: () => false, // debug + }); + }; + + // after page loads + window.addEventListener("load", onLoad); + // after tags load + window.addEventListener("tagsfetched", onLoad); +} diff --git a/_styles/-theme.scss b/_styles/-theme.scss new file mode 100644 index 0000000..a1b3ec6 --- /dev/null +++ b/_styles/-theme.scss @@ -0,0 +1,58 @@ +--- +--- + +// colors +[data-dark="false"] { + --primary: #0ea5e9; + --secondary: #7dd3fc; + --text: #000000; + --background: #ffffff; + --background-alt: #fafafa; + --light-gray: #e0e0e0; + --gray: #808080; + --overlay: #00000020; +} +[data-dark="true"] { + --primary: #0ea5e9; + --secondary: #075985; + --text: #ffffff; + --background: #181818; + --background-alt: #1c1c1c; + --light-gray: #404040; + --gray: #808080; + --overlay: #ffffff10; +} + +@font-face { + font-family: "ericsson hilda"; + src: url("https://github.com/Verten/umi_design/blob/master/src/assets/font/hilda/ericsson-hilda-regular.ttf"); +} + + + +:root { + // font families + --title: "ericsson", ericsson hilda; + --heading: "ericsson", ericsson hilda; + --body: "ericsson", ericsson hilda; + --code: "Roboto Mono", monospace; + + // font sizes + --medium: 1rem; + --large: 2.5rem; + --xl: 1.4rem; + --xxl: 1.6rem; + + // font weights + --thin: 200; + --regular: 400; + --semi-bold: 500; + --bold: 600; + + // text line spacing + --spacing: 2; + + // effects + --rounded: 3px; + --shadow: 0 0 10px 0 var(--overlay); +} diff --git a/_styles/alert.scss b/_styles/alert.scss new file mode 100644 index 0000000..c789ad8 --- /dev/null +++ b/_styles/alert.scss @@ -0,0 +1,37 @@ +--- +--- + +.alert { + position: relative; + display: flex; + gap: 20px; + align-items: center; + margin: 20px 0; + padding: 20px; + border-radius: var(--rounded); + overflow: hidden; + text-align: left; + line-height: var(--spacing); +} + +.alert:before { + content: ""; + position: absolute; + inset: 0; + opacity: 0.1; + background: var(--color); + z-index: -1; +} + +.alert > .icon { + color: var(--color); + font-size: var(--large); +} + +.alert-content > *:first-child { + margin-top: 0; +} + +.alert-content > *:last-child { + margin-bottom: 0; +} diff --git a/_styles/all.scss b/_styles/all.scss new file mode 100644 index 0000000..3cceebd --- /dev/null +++ b/_styles/all.scss @@ -0,0 +1,7 @@ +--- +--- + +* { + box-sizing: border-box; + transition: none 0.2s; +} diff --git a/_styles/anchor.scss b/_styles/anchor.scss new file mode 100644 index 0000000..96c1a87 --- /dev/null +++ b/_styles/anchor.scss @@ -0,0 +1,24 @@ +--- +--- + +.anchor { + display: inline-block; + position: relative; + width: 0; + margin: 0; + left: 0.5em; + color: var(--primary) !important; + opacity: 0; + font-size: 0.75em; + text-decoration: none; + transition-property: opacity, color; +} + +*:hover > .anchor, +.anchor:focus { + opacity: 1; +} + +.anchor:hover { + color: var(--text) !important; +} diff --git a/_styles/background.scss b/_styles/background.scss new file mode 100644 index 0000000..15a7ba4 --- /dev/null +++ b/_styles/background.scss @@ -0,0 +1,21 @@ +--- +--- + +.background { + position: relative; + background: var(--background); + color: var(--text); + z-index: 1; +} + +.background:before { + content: ""; + position: absolute; + inset: 0; + background-image: var(--image); + background-size: cover; + background-repeat: no-repeat; + background-position: 50% 50%; + opacity: 0.25; + z-index: -1; +} diff --git a/_styles/body.scss b/_styles/body.scss new file mode 100644 index 0000000..ef74897 --- /dev/null +++ b/_styles/body.scss @@ -0,0 +1,18 @@ +--- +--- + +html, +body { + margin: 0; + padding: 0; + min-height: 100vh; + background: var(--background); + color: var(--text); + font-family: var(--body); +} + +body { + display: flex; + flex-direction: column; + text-align: center; +} diff --git a/_styles/bold.scss b/_styles/bold.scss new file mode 100644 index 0000000..01c72f6 --- /dev/null +++ b/_styles/bold.scss @@ -0,0 +1,7 @@ +--- +--- + +b, +strong { + font-weight: var(--bold); +} diff --git a/_styles/button.scss b/_styles/button.scss new file mode 100644 index 0000000..7b4122e --- /dev/null +++ b/_styles/button.scss @@ -0,0 +1,52 @@ +--- +--- + +button { + cursor: pointer; +} + +.button-wrapper { + display: contents; +} + +.button { + display: inline-flex; + justify-content: center; + align-items: center; + gap: 10px; + max-width: calc(100% - 5px - 5px); + margin: 5px; + padding: 10px 15px; + border: none; + border-radius: var(--rounded); + background: var(--primary); + color: var(--background); + text-align: center; + font-family: var(--heading); + font-weight: var(--semi-bold); + line-height: 1; + text-decoration: none; + vertical-align: middle; + -webkit-appearance: none; + appearance: none; + transition-property: background, color; +} + +.button:hover { + background: var(--text); + color: var(--background); +} + +.button[data-style="bare"] { + padding: 5px; + background: none; + color: var(--primary); + + &:hover { + color: var(--text); + } +} + +.button[data-flip] { + flex-direction: row-reverse; +} diff --git a/_styles/card.scss b/_styles/card.scss new file mode 100644 index 0000000..57fe20d --- /dev/null +++ b/_styles/card.scss @@ -0,0 +1,53 @@ +--- +--- + +.card { + display: inline-flex; + justify-content: stretch; + align-items: center; + flex-direction: column; + width: 350px; + max-width: calc(100% - 20px - 20px); + margin: 20px; + background: var(--background); + border-radius: var(--rounded); + overflow: hidden; + box-shadow: var(--shadow); + vertical-align: top; +} + +.card[data-style="small"] { + width: 250px; +} + +.card-image img { + aspect-ratio: 3 / 2; + object-fit: cover; + width: 100%; + // box-shadow: var(--shadow); +} + +.card-text { + display: inline-flex; + justify-content: flex-start; + align-items: center; + flex-direction: column; + gap: 20px; + max-width: 100%; + padding: 20px; +} + +.card-text > *, +.card-text > .tags { + margin: 0; +} + +.card-title { + font-family: var(--heading); + font-weight: var(--semi-bold); +} + +.card-subtitle { + margin-top: -15px; + font-style: italic; +} diff --git a/_styles/checkbox.scss b/_styles/checkbox.scss new file mode 100644 index 0000000..e5dbda8 --- /dev/null +++ b/_styles/checkbox.scss @@ -0,0 +1,6 @@ +--- +--- + +input[type="checkbox"] { + cursor: pointer; +} diff --git a/_styles/citation.scss b/_styles/citation.scss new file mode 100644 index 0000000..0bcda44 --- /dev/null +++ b/_styles/citation.scss @@ -0,0 +1,96 @@ +--- +--- + +$thumb-size: 180px; +$wrap: 800px; + +.citation { + display: flex; + margin: 15px 0; + border-radius: var(--rounded); + background: var(--background); + overflow: hidden; + box-shadow: var(--shadow); +} + +.citation-image { + position: relative; + width: $thumb-size; + flex-shrink: 0; + // box-shadow: var(--shadow); +} + +.citation-image img { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + object-fit: contain; +} + +.citation-text { + position: relative; + display: inline-flex; + flex-wrap: wrap; + gap: 15px; + max-width: 100%; + height: min-content; + padding: 20px; + padding-left: 30px; + text-align: left; + overflow-wrap: break-word; + z-index: 0; +} + +.citation-title, +.citation-authors, +.citation-details, +.citation-description { + width: 100%; + line-height: calc(var(--spacing) - 0.4); +} + +.citation-title { + font-weight: var(--semi-bold); +} + +.citation-text > .icon { + position: absolute; + top: 20px; + right: 20px; + color: var(--light-gray); + opacity: 0.5; + font-size: 30px; + z-index: -1; +} + +.citation-description { + color: var(--gray); +} + +.citation-buttons { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +.citation-buttons .button { + margin: 0; +} + +.citation-text > .tags { + display: inline-flex; + justify-content: flex-start; + margin: 0; +} + +@media (max-width: $wrap) { + .citation { + flex-direction: column; + } + + .citation-image { + width: unset; + height: $thumb-size; + } +} diff --git a/_styles/code.scss b/_styles/code.scss new file mode 100644 index 0000000..79ada5e --- /dev/null +++ b/_styles/code.scss @@ -0,0 +1,40 @@ +--- +--- + +pre, +code, +pre *, +code * { + font-family: var(--code); +} + +// inline code +code.highlighter-rouge { + padding: 2px 6px; + background: var(--light-gray); + border-radius: var(--rounded); + line-height: calc(var(--spacing) - 0.2); +} + +// code block +div.highlighter-rouge { + width: 100%; + margin: 40px 0; + border-radius: var(--rounded); + overflow-x: auto; + overflow-y: auto; + text-align: left; + line-height: calc(var(--spacing) - 0.4); + + div.highlight { + display: contents; + + pre.highlight { + width: fit-content; + min-width: 100%; + margin: 0; + padding: 20px; + color: var(--white); + } + } +} diff --git a/_styles/cols.scss b/_styles/cols.scss new file mode 100644 index 0000000..7f5e911 --- /dev/null +++ b/_styles/cols.scss @@ -0,0 +1,39 @@ +--- +--- + +$two: 750px; +$one: 500px; + +.cols { + display: grid; + --repeat: min(3, var(--cols)); + grid-template-columns: repeat(var(--repeat), 1fr); + align-items: flex-start; + gap: 40px; + margin: 40px 0; +} + +.cols > * { + min-width: 0; + min-height: 0; +} + +.cols > div > *:first-child { + margin-top: 0 !important; +} + +.cols > div > *:last-child { + margin-bottom: 0 !important; +} + +@media (max-width: $two) { + .cols { + --repeat: min(2, var(--cols)); + } +} + +@media (max-width: $one) { + .cols { + --repeat: min(1, var(--cols)); + } +} diff --git a/_styles/dark-toggle.scss b/_styles/dark-toggle.scss new file mode 100644 index 0000000..66d5906 --- /dev/null +++ b/_styles/dark-toggle.scss @@ -0,0 +1,32 @@ +--- +--- + +.dark-toggle { + position: relative; + width: 40px; + height: 25px; + margin: 0; + border-radius: 999px; + background: var(--primary); + -webkit-appearance: none; + appearance: none; + transition-property: background; +} + +.dark-toggle:after { + content: "\f185"; + position: absolute; + left: 12px; + top: 50%; + color: var(--text); + font-size: 15px; + font-family: "Font Awesome 6 Free"; + font-weight: 900; + transform: translate(-50%, -50%); + transition: left 0.2s; +} + +.dark-toggle:checked:after { + content: "\f186"; + left: calc(100% - 12px); +} diff --git a/_styles/feature.scss b/_styles/feature.scss new file mode 100644 index 0000000..f304252 --- /dev/null +++ b/_styles/feature.scss @@ -0,0 +1,53 @@ +--- +--- + +$wrap: 800px; + +.feature { + display: flex; + justify-content: center; + align-items: center; + gap: 40px; + margin: 40px 0; +} + +.feature-image { + flex-shrink: 0; + width: 40%; + aspect-ratio: 3 / 2; + border-radius: var(--rounded); + overflow: hidden; + box-shadow: var(--shadow); +} + +.feature-image img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.feature-text { + flex-grow: 1; +} + +.feature-title { + font-size: var(--large); + text-align: center; + font-family: var(--heading); + font-weight: var(--semi-bold); +} + +.feature[data-flip] { + flex-direction: row-reverse; +} + +@media (max-width: $wrap) { + .feature { + flex-direction: column !important; + } + + .feature-image { + width: unset; + max-width: calc($wrap / 2); + } +} diff --git a/_styles/figure.scss b/_styles/figure.scss new file mode 100644 index 0000000..3b3c6ef --- /dev/null +++ b/_styles/figure.scss @@ -0,0 +1,26 @@ +--- +--- + +.figure { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + gap: 10px; + margin: 40px 0; +} + +.figure-image { + display: contents; +} + +.figure-image img { + border-radius: var(--rounded); + overflow: hidden; + box-shadow: var(--shadow); +} + +.figure-caption { + font-style: italic; + text-align: center; +} diff --git a/_styles/float.scss b/_styles/float.scss new file mode 100644 index 0000000..ba8d9e2 --- /dev/null +++ b/_styles/float.scss @@ -0,0 +1,38 @@ +--- +--- + +$wrap: 600px; + +.float { + margin-bottom: 20px; + max-width: 50%; +} + +.float > * { + margin: 0 !important; +} + +.float:not([data-flip]) { + float: left; + margin-right: 40px; +} + +.float[data-flip] { + float: right; + margin-left: 40px; +} + +.float[data-clear] { + float: unset; + clear: both; + margin: 0; +} + +@media (max-width: $wrap) { + .float { + float: unset !important; + clear: both !important; + margin: auto !important; + max-width: unset; + } +} diff --git a/_styles/font.scss b/_styles/font.scss new file mode 100644 index 0000000..162db3d --- /dev/null +++ b/_styles/font.scss @@ -0,0 +1,5 @@ +--- +--- + +@font-face { +} diff --git a/_styles/footer.scss b/_styles/footer.scss new file mode 100644 index 0000000..d0d5277 --- /dev/null +++ b/_styles/footer.scss @@ -0,0 +1,25 @@ +--- +--- + +footer { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + gap: 20px; + padding: 40px; + line-height: var(--spacing); + box-shadow: var(--shadow); +} + +footer a { + color: var(--text) !important; +} + +footer a:hover { + color: var(--primary) !important; +} + +footer .icon { + font-size: var(--xl); +} diff --git a/_styles/form.scss b/_styles/form.scss new file mode 100644 index 0000000..ce6129a --- /dev/null +++ b/_styles/form.scss @@ -0,0 +1,9 @@ +--- +--- + +form { + display: flex; + justify-content: center; + align-items: center; + gap: 10px; +} diff --git a/_styles/grid.scss b/_styles/grid.scss new file mode 100644 index 0000000..21a3a33 --- /dev/null +++ b/_styles/grid.scss @@ -0,0 +1,54 @@ +--- +--- + +$two: 750px; +$one: 500px; + +.grid { + display: grid; + --repeat: 3; + grid-template-columns: repeat(var(--repeat), 1fr); + justify-content: center; + align-items: flex-start; + gap: 40px; + margin: 40px 0; +} + +.grid > * { + min-width: 0; + min-height: 0; + width: 100%; + // max-height: 50vh; + margin: 0 !important; +} + +@media (max-width: $two) { + .grid { + --repeat: 2; + } +} + +@media (max-width: $one) { + .grid { + --repeat: 1; + } +} + +.grid[data-style="square"] { + align-items: center; + + & > * { + aspect-ratio: 1 / 1; + } + + & img { + aspect-ratio: 1 / 1; + object-fit: cover; + max-width: unset; + max-height: unset; + } +} + +.grid > *:where(h1, h2, h3, h4) { + display: none; +} diff --git a/_styles/header.scss b/_styles/header.scss new file mode 100644 index 0000000..ff435c9 --- /dev/null +++ b/_styles/header.scss @@ -0,0 +1,181 @@ +--- +--- + +$logo-big: 180px; +$logo: 80px; +$big-padding: 100px; +$collapse: 700px; +$sticky: true; + +@font-face { + font-family: "ericsson hilda"; + src: url("https://github.com/Verten/umi_design/blob/master/src/assets/font/hilda/ericsson-hilda-bold.ttf"); +} + +header { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 20px; + padding: 20px; + box-shadow: var(--shadow); + + @if $sticky { + position: sticky !important; + top: 0; + z-index: 10 !important; + } +} + +header a { + color: var(--text); + text-decoration: none; +} + +.home { + display: flex; + justify-content: flex-start; + align-items: center; + gap: 10px; + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} + +.logo { + height: $logo; +} + +.logo > * { + height: 100%; +} + +.title { + display: flex; + justify-content: flex-start; + align-items: baseline; + flex-wrap: wrap; + gap: 5px; + min-width: 0; + font-family: "ericsson hilda"; + text-align: left; + padding: 20px; +} + +// main title +.title > *:first-child { + font-size: var(--large); +} + +// subtitle +.title > *:last-child { + opacity: 1; + font-weight: var(--large); +} + +.nav-toggle { + display: none; + position: relative; + width: 30px; + height: 30px; + margin: 0; + color: var(--text); + -webkit-appearance: none; + appearance: none; + transition-property: background; + // background-color: black; +} + +.nav-toggle:after { + content: "\f0c9"; + position: absolute; + left: 50%; + top: 50%; + color: var(--text); + font-size: 15px; + font-family: "ericsson"; + font-weight: 900; + transform: translate(-50%, -50%); + // background-color: black; +} + +.nav-toggle:checked:after { + content: "\f00d"; +} + +nav { + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + gap: 10px; + font-family: var(--heading); + text-transform: uppercase; + background-color: black; + padding: 0px; + width: 100%; +} + +nav > a { + padding: 15px; +} + +nav > a:hover { + color: var(--primary); +} + +header:not([data-big]) { + padding: 30px 0px 0px 0px; + @media (max-width: $collapse) { + justify-content: flex-end; + + .nav-toggle { + display: flex; + } + + .nav-toggle:not(:checked) + nav { + display: none; + } + + nav { + align-items: flex-end; + flex-direction: column; + width: 100%; + } + } +} + +header[data-big] { + justify-content: center; + align-items: center; + flex-direction: column; + padding: $big-padding 0px 0px 0px; + + @if $sticky { + top: unset; + } + + .home { + flex-direction: column; + flex-grow: 0; + } + + .logo { + height: $logo-big; + } + + .title { + flex-direction: column; + align-items: center; + text-align: center; + } + + .title > *:first-child { + font-size: var(--xxl); + } + + .title > *:last-child { + font-size: var(--large); + } +} diff --git a/_styles/heading.scss b/_styles/heading.scss new file mode 100644 index 0000000..e02dc47 --- /dev/null +++ b/_styles/heading.scss @@ -0,0 +1,48 @@ +--- +--- + +h1, +h2, +h3, +h4 { + font-family: var(--heading); + line-height: calc(var(--spacing) - 0.2); +} + +h1 { + margin: 40px 0 20px 0; + font-size: var(--xxl); + font-weight: var(--regular); + letter-spacing: 1px; + text-transform: uppercase; + text-align: left; +} + +h2 { + margin: 40px 0 20px 0; + padding-bottom: 5px; + border-bottom: solid 1px var(--light-gray); + font-size: var(--xl); + font-weight: var(--regular); + letter-spacing: 1px; + text-align: left; +} + +h3 { + margin: 40px 0 20px 0; + font-size: var(--large); + font-weight: var(--semi-bold); + text-align: left; +} + +h4 { + margin: 40px 0 20px 0; + font-size: var(--medium); + font-weight: var(--semi-bold); + text-align: left; +} + +:where(h1, h2, h3, h4) > .icon { + margin-right: 1em; + color: var(--light-gray); +} diff --git a/_styles/highlight.scss b/_styles/highlight.scss new file mode 100644 index 0000000..d41524a --- /dev/null +++ b/_styles/highlight.scss @@ -0,0 +1,7 @@ +--- +--- + +mark { + background: #fef08a; + color: #000000; +} diff --git a/_styles/icon.scss b/_styles/icon.scss new file mode 100644 index 0000000..c434ff1 --- /dev/null +++ b/_styles/icon.scss @@ -0,0 +1,16 @@ +--- +--- + +.icon { + font-size: 1em; +} + +span.icon { + line-height: 1; +} + +span.icon > svg { + position: relative; + top: 0.1em; + height: 1em; +} diff --git a/_styles/image.scss b/_styles/image.scss new file mode 100644 index 0000000..d288263 --- /dev/null +++ b/_styles/image.scss @@ -0,0 +1,7 @@ +--- +--- + +img { + max-width: 100%; + max-height: 100%; +} diff --git a/_styles/link.scss b/_styles/link.scss new file mode 100644 index 0000000..7d1fb84 --- /dev/null +++ b/_styles/link.scss @@ -0,0 +1,16 @@ +--- +--- + +a { + color: var(--primary); + transition-property: color; + overflow-wrap: break-word; +} + +a:hover { + color: var(--text); +} + +a:not([href]) { + color: var(--text); +} diff --git a/_styles/list.scss b/_styles/list.scss new file mode 100644 index 0000000..e90094f --- /dev/null +++ b/_styles/list.scss @@ -0,0 +1,19 @@ +--- +--- + +ul, +ol { + margin: 20px 0; + padding-left: 40px; +} + +ul { + list-style-type: square; +} + +li { + margin: 5px 0; + padding-left: 10px; + text-align: justify; + line-height: var(--spacing); +} diff --git a/_styles/main.scss b/_styles/main.scss new file mode 100644 index 0000000..36a8a79 --- /dev/null +++ b/_styles/main.scss @@ -0,0 +1,8 @@ +--- +--- + +main { + display: flex; + flex-direction: column; + flex-grow: 1; +} diff --git a/_styles/paragraph.scss b/_styles/paragraph.scss new file mode 100644 index 0000000..08b05a3 --- /dev/null +++ b/_styles/paragraph.scss @@ -0,0 +1,8 @@ +--- +--- + +p { + margin: 20px 0; + text-align: justify; + line-height: var(--spacing); +} diff --git a/_styles/portrait.scss b/_styles/portrait.scss new file mode 100644 index 0000000..50849f3 --- /dev/null +++ b/_styles/portrait.scss @@ -0,0 +1,77 @@ +--- +--- + +.portrait-wrapper { + display: contents; +} + +.portrait { + position: relative; + display: inline-flex; + justify-content: center; + align-items: center; + flex-direction: column; + gap: 20px; + margin: 20px; + width: 175px; + max-width: calc(100% - 20px - 20px); + text-decoration: none; +} + +.portrait[data-style="small"] { + width: 100px; +} + +.portrait[data-style="tiny"] { + flex-direction: row; + gap: 15px; + width: unset; + text-align: left; +} + +.portrait-image { + width: 100%; + aspect-ratio: 1 / 1; + border-radius: 999px; + object-fit: cover; + box-shadow: var(--shadow); +} + +.portrait[data-style="tiny"] .portrait-image { + width: 50px; +} + +.portrait[data-style="tiny"] .portrait-role { + display: none; +} + +.portrait-text { + display: flex; + flex-direction: column; + line-height: calc(var(--spacing) - 0.4); +} + +.portrait-name { + font-family: var(--heading); + font-weight: var(--semi-bold); +} + +.portrait-role .icon { + position: absolute; + left: 0; + top: 0; + display: flex; + justify-content: center; + align-items: center; + width: 20%; + aspect-ratio: 1 / 1; + border-radius: 999px; + background: var(--background); + box-shadow: var(--shadow); + transform: translate(14%, 14%); +} + +.portrait[data-style="small"] .portrait-role .icon { + left: -2px; + top: -2px; +} diff --git a/_styles/post-excerpt.scss b/_styles/post-excerpt.scss new file mode 100644 index 0000000..6e57a10 --- /dev/null +++ b/_styles/post-excerpt.scss @@ -0,0 +1,31 @@ +--- +--- + +.post-excerpt { + display: flex; + flex-wrap: wrap; + gap: 20px; + margin: 20px 0; + padding: 20px 30px; + border-radius: var(--rounded); + background: var(--background); + text-align: left; + box-shadow: var(--shadow); +} + +.post-excerpt > * { + margin: 0 !important; +} + +.post-excerpt > a:first-child { + width: 100%; + font-weight: var(--semi-bold); +} + +.post-excerpt > div { + justify-content: flex-start; +} + +.post-excerpt > p { + width: 100%; +} diff --git a/_styles/post-info.scss b/_styles/post-info.scss new file mode 100644 index 0000000..4c8eaaa --- /dev/null +++ b/_styles/post-info.scss @@ -0,0 +1,33 @@ +--- +--- + +.post-info { + display: flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + gap: 20px; + margin: 20px 0; + color: var(--gray); +} + +.post-info .portrait { + margin: 0; +} + +.post-info .icon { + margin-right: 0.5em; +} + +.post-info a { + color: inherit; +} + +.post-info a:hover { + color: var(--primary); +} + +.post-info > span { + text-align: center; + white-space: nowrap; +} diff --git a/_styles/post-nav.scss b/_styles/post-nav.scss new file mode 100644 index 0000000..2fba2fc --- /dev/null +++ b/_styles/post-nav.scss @@ -0,0 +1,40 @@ +--- +--- + +$wrap: 600px; + +.post-nav { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 10px; + color: var(--gray); + line-height: calc(var(--spacing) - 0.4); +} + +.post-nav > *:first-child { + text-align: left; +} + +.post-nav > *:last-child { + text-align: right; +} + +.post-nav > *:first-child .icon { + margin-right: 0.5em; +} + +.post-nav > *:last-child .icon { + margin-left: 0.5em; +} + +@media (max-width: $wrap) { + .post-nav { + align-items: center; + flex-direction: column; + } + + .post-nav > * { + text-align: center !important; + } +} diff --git a/_styles/quote.scss b/_styles/quote.scss new file mode 100644 index 0000000..e6dcb45 --- /dev/null +++ b/_styles/quote.scss @@ -0,0 +1,16 @@ +--- +--- + +blockquote { + margin: 20px 0; + padding: 10px 20px; + border-left: solid 4px var(--light-gray); +} + +blockquote > *:first-child { + margin-top: 0; +} + +blockquote > *:last-child { + margin-bottom: 0; +} diff --git a/_styles/rule.scss b/_styles/rule.scss new file mode 100644 index 0000000..abf797b --- /dev/null +++ b/_styles/rule.scss @@ -0,0 +1,9 @@ +--- +--- + +hr { + margin: 40px 0; + background: var(--light-gray); + border: none; + height: 1px; +} diff --git a/_styles/search-box.scss b/_styles/search-box.scss new file mode 100644 index 0000000..5f20a78 --- /dev/null +++ b/_styles/search-box.scss @@ -0,0 +1,26 @@ +--- +--- + +.search-box { + position: relative; + height: 40px; +} + +.search-box .search-input { + width: 100%; + height: 100%; + padding-right: 40px; +} + +.search-box button { + position: absolute; + inset: 0 0 0 auto; + display: flex; + justify-content: center; + align-items: center; + padding: 0; + aspect-ratio: 1 / 1; + background: none; + color: var(--black); + border: none; +} diff --git a/_styles/search-info.scss b/_styles/search-info.scss new file mode 100644 index 0000000..63f9a17 --- /dev/null +++ b/_styles/search-info.scss @@ -0,0 +1,9 @@ +--- +--- + +.search-info { + margin: 20px 0; + text-align: center; + font-style: italic; + line-height: var(--spacing); +} diff --git a/_styles/section.scss b/_styles/section.scss new file mode 100644 index 0000000..bc3e564 --- /dev/null +++ b/_styles/section.scss @@ -0,0 +1,39 @@ +--- +--- + +$page: 1000px; +$padding: 40px; + +section { + padding: $padding max($padding, calc((100% - $page) / 2)); + transition-property: background, color; +} + +section[data-size="wide"] { + padding: $padding; +} + +section[data-size="full"] { + padding: 0; +} + +section[data-size="full"] > * { + margin: 0; + border-radius: 0; +} + +section[data-size="full"] img { + border-radius: 0; +} + +main > section:last-of-type { + flex-grow: 1; +} + +main > section:nth-of-type(odd) { + background: var(--background); +} + +main > section:nth-of-type(even) { + background: var(--background-alt); +} diff --git a/_styles/table.scss b/_styles/table.scss new file mode 100644 index 0000000..c5736ef --- /dev/null +++ b/_styles/table.scss @@ -0,0 +1,22 @@ +--- +--- + +.table-wrapper { + margin: 40px 0; + overflow-x: auto; +} + +table { + margin: 0 auto; + border-collapse: collapse; +} + +th { + font-weight: var(--semi-bold); +} + +th, +td { + padding: 10px 15px; + border: solid 1px var(--light-gray); +} diff --git a/_styles/tags.scss b/_styles/tags.scss new file mode 100644 index 0000000..932b7ed --- /dev/null +++ b/_styles/tags.scss @@ -0,0 +1,34 @@ +--- +--- + +.tags { + display: inline-flex; + justify-content: center; + align-items: center; + flex-wrap: wrap; + gap: 10px; + max-width: 100%; + margin: 20px 0; +} + +.tag { + max-width: 100%; + margin: 0; + padding: 5px 10px; + border-radius: 999px; + background: var(--secondary); + color: var(--text); + text-decoration: none; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + transition-property: background, color; +} + +.tag:hover { + background: var(--light-gray); +} + +.tag[data-active] { + background: var(--light-gray); +} diff --git a/_styles/textbox.scss b/_styles/textbox.scss new file mode 100644 index 0000000..07bc012 --- /dev/null +++ b/_styles/textbox.scss @@ -0,0 +1,18 @@ +--- +--- + +input[type="text"] { + width: 100%; + height: 40px; + margin: 0; + padding: 5px 10px; + border: solid 1px var(--light-gray); + border-radius: var(--rounded); + background: var(--background); + color: var(--text); + font-family: inherit; + font-size: inherit; + -webkit-appearance: none; + appearance: none; + box-shadow: var(--shadow); +} diff --git a/_styles/tooltip.scss b/_styles/tooltip.scss new file mode 100644 index 0000000..0f21d2e --- /dev/null +++ b/_styles/tooltip.scss @@ -0,0 +1,65 @@ +--- +--- + +.tippy-box { + background: var(--background); + color: var(--text); + padding: 7.5px; + text-align: left; + box-shadow: var(--shadow); +} + +.tippy-arrow { + width: 30px; + height: 30px; +} + +.tippy-arrow:before { + width: 10px; + height: 10px; + background: var(--background); + box-shadow: var(--shadow); +} + +// correct tippy arrow styles to support intuitive arrow styles above +.tippy-arrow { + overflow: hidden; + pointer-events: none; +} +.tippy-box[data-placement="top"] .tippy-arrow { + inset: unset; + top: 100%; +} +.tippy-box[data-placement="bottom"] .tippy-arrow { + inset: unset; + bottom: 100%; +} +.tippy-box[data-placement="left"] .tippy-arrow { + inset: unset; + left: 100%; +} +.tippy-box[data-placement="right"] .tippy-arrow { + inset: unset; + right: 100%; +} +.tippy-arrow:before { + border: unset !important; + transform-origin: center !important; + transform: translate(-50%, -50%) rotate(45deg) !important; +} +.tippy-box[data-placement="top"] .tippy-arrow:before { + left: 50% !important; + top: 0 !important; +} +.tippy-box[data-placement="bottom"] .tippy-arrow:before { + left: 50% !important; + top: 100% !important; +} +.tippy-box[data-placement="left"] .tippy-arrow:before { + left: 0 !important; + top: 50% !important; +} +.tippy-box[data-placement="right"] .tippy-arrow:before { + left: 100% !important; + top: 50% !important; +} diff --git a/_styles/util.scss b/_styles/util.scss new file mode 100644 index 0000000..308c3c1 --- /dev/null +++ b/_styles/util.scss @@ -0,0 +1,14 @@ +--- +--- + +.left { + text-align: left; +} + +.center { + text-align: center; +} + +.right { + text-align: right; +} diff --git a/blog/index.md b/blog/index.md new file mode 100644 index 0000000..b86f359 --- /dev/null +++ b/blog/index.md @@ -0,0 +1,21 @@ +--- +title: Blog +nav: + order: 4 + tooltip: Musings and miscellany +--- + +# {% include icon.html icon="fa-solid fa-feather-pointed" %}Blog + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + +{% include section.html %} + +{% include search-box.html %} + +{% include tags.html tags=site.tags %} + +{% include search-info.html %} + +{% include list.html data="posts" component="post-excerpt" %} diff --git a/contact/index.md b/contact/index.md new file mode 100644 index 0000000..9bf21b6 --- /dev/null +++ b/contact/index.md @@ -0,0 +1,77 @@ +--- +title: Contact +nav: + order: 5 + tooltip: Email, address, and location +--- + +# {% include icon.html icon="fa-regular fa-envelope" %}Contact + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor +incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis +nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + +{% + include button.html + type="email" + text="oscar.llorente.gonzalez@ericsson.com" + link="oscar.llorente.gonzalez@ericsson.com" +%} +{% + include button.html + type="phone" + text="(555) 867-5309" + link="+1-555-867-5309" +%} +{% + include button.html + type="address" + tooltip="Our location on Google Maps for easy navigation" + link="https://www.google.com/maps/dir/40.4470375,-3.6984331/ericsson+españa/@40.419992,-3.7199383,13z/data=!3m1!4b1!4m9!4m8!1m1!4e1!1m5!1m1!1s0xd422096bfaac9b7:0xab7c160e9c581434!2m2!1d-3.6745359!2d40.3947612?entry=ttu" +%} + +{% include section.html %} + +{% capture col1 %} + +{% + include figure.html + image="images/photo.jpg" + caption="Lorem ipsum" +%} + +{% endcapture %} + +{% capture col2 %} + +{% + include figure.html + image="images/photo.jpg" + caption="Lorem ipsum" +%} + +{% endcapture %} + +{% include cols.html col1=col1 col2=col2 %} + +{% include section.html dark=true %} + +{% capture col1 %} +Lorem ipsum dolor sit amet +consectetur adipiscing elit +sed do eiusmod tempor +{% endcapture %} + +{% capture col2 %} +Lorem ipsum dolor sit amet +consectetur adipiscing elit +sed do eiusmod tempor +{% endcapture %} + +{% capture col3 %} +Lorem ipsum dolor sit amet +consectetur adipiscing elit +sed do eiusmod tempor +{% endcapture %} + +{% include cols.html col1=col1 col2=col2 col3=col3 %} diff --git a/ericsson-hilda-bold.ttf b/ericsson-hilda-bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5046ba0057608e008f6640850f0c9c9955cfca55 GIT binary patch literal 103148 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

-7s2UT+2egdF{@T(B=SOPZL4 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%0A_wazr_H9OxGq5EvY22#g4f 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 ZWF+1IpPy`gkmgu~)6XnGDX{Ms{}*-0MDhRt literal 0 HcmV?d00001 diff --git a/images/ericsson_background.jpg b/images/ericsson_background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cd1b0b103e1f159907a5c092c32a3121f7e0b49f GIT binary patch literal 197107 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

}Awml}jn0LXh`?2rS~ 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

cFfpCbTdE30`QHD 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

WcP{BLSPYQH;$s$aR@TyKrVNm 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"+}02w5A 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 literal 0 HcmV?d00001 diff --git a/images/fallback.svg b/images/fallback.svg new file mode 100644 index 0000000..ac12be2 --- /dev/null +++ b/images/fallback.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..c28629d279a4fa9d80107165b7f04658087c42fb GIT binary patch literal 23883 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 literal 0 HcmV?d00001 diff --git a/images/logo_small.png b/images/logo_small.png new file mode 100644 index 0000000000000000000000000000000000000000..0705c2dae236e293cf45469d94c07b8d86d158fd GIT binary patch literal 9897 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 J*3#$p{{zArTQdLv literal 0 HcmV?d00001 diff --git a/images/photo.jpg b/images/photo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..691a9880a3b78af188f26ff1e92c56ad4e56d34c GIT binary patch literal 7310 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 TT&cusacc^!DX^vhWKQsJb-NTg literal 0 HcmV?d00001 diff --git a/images/share.jpg b/images/share.jpg new file mode 100644 index 0000000000000000000000000000000000000000..268a3410f5545ff22bc0f6c00897cf6c8d4cb630 GIT binary patch literal 40015 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 E0$$>LS^xk5 literal 0 HcmV?d00001 diff --git a/index.md b/index.md new file mode 100644 index 0000000..8d681b5 --- /dev/null +++ b/index.md @@ -0,0 +1,81 @@ +--- +--- + +# Ericsson Cognitive Software + +This is the official web page where all the Open-Source Reserach from Ericsson Cognitive Software is being published. + +{% include section.html %} + +## Highlights + +{% capture text %} + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + +{% + include button.html + link="research" + text="See our publications" + icon="fa-solid fa-arrow-right" + flip=true + style="bare" +%} + +{% endcapture %} + +{% + include feature.html + image="images/photo.jpg" + link="research" + title="Our Research" + text=text +%} + +{% capture text %} + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + +{% + include button.html + link="projects" + text="Browse our projects" + icon="fa-solid fa-arrow-right" + flip=true + style="bare" +%} + +{% endcapture %} + +{% + include feature.html + image="images/photo.jpg" + link="projects" + title="Our Projects" + flip=true + style="bare" + text=text +%} + +{% capture text %} + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + +{% + include button.html + link="team" + text="Meet our team" + icon="fa-solid fa-arrow-right" + flip=true + style="bare" +%} + +{% endcapture %} + +{% + include feature.html + image="images/photo.jpg" + link="team" + title="Our Team" + text=text +%} diff --git a/projects/index.md b/projects/index.md new file mode 100644 index 0000000..1d29a19 --- /dev/null +++ b/projects/index.md @@ -0,0 +1,27 @@ +--- +title: Projects +nav: + order: 2 + tooltip: Software, datasets, and more +--- + +# {% include icon.html icon="fa-solid fa-wrench" %}Projects + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + +{% include tags.html tags="publication, resource, website" %} + +{% include search-info.html %} + +{% include section.html %} + +## Featured + +{% include list.html component="card" data="projects" filters="group: featured" %} + +{% include section.html %} + +## More + +{% include list.html component="card" data="projects" filters="group: " style="small" %} diff --git a/research/index.md b/research/index.md new file mode 100644 index 0000000..0f700f4 --- /dev/null +++ b/research/index.md @@ -0,0 +1,27 @@ +--- +title: Research +nav: + order: 1 + tooltip: Published works +--- + +# {% include icon.html icon="fa-solid fa-microscope" %}Research + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + +{% include section.html %} + +## Highlighted + +{% include citation.html lookup="Open collaborative writing with Manubot" style="rich" %} + +{% include section.html %} + +## All + +{% include search-box.html %} + +{% include search-info.html %} + +{% include list.html data="citations" component="citation" style="rich" %} diff --git a/team/index.md b/team/index.md new file mode 100644 index 0000000..08318c9 --- /dev/null +++ b/team/index.md @@ -0,0 +1,35 @@ +--- +title: Team +nav: + order: 3 + tooltip: About our team +--- + +# {% include icon.html icon="fa-solid fa-users" %}Team + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor +incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis +nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + +{% include section.html %} + +{% include list.html data="members" component="portrait" filters="role: pi" %} +{% include list.html data="members" component="portrait" filters="role: ^(?!pi$)" %} + +{% include section.html background="images/background.jpg" dark=true %} + +Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor +incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis +nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + +{% include section.html %} + +{% capture content %} + +{% include figure.html image="images/photo.jpg" %} +{% include figure.html image="images/photo.jpg" %} +{% include figure.html image="images/photo.jpg" %} + +{% endcapture %} + +{% include grid.html style="square" content=content %}