Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request’s Past, Present and Future #3142

Open
mikeal opened this issue Mar 30, 2019 · 434 comments
Open

Request’s Past, Present and Future #3142

mikeal opened this issue Mar 30, 2019 · 434 comments
Labels
neverstale Something that lasts forever

Comments

@mikeal
Copy link
Member

mikeal commented Mar 30, 2019

Before I go into the details and reasoning I’ll get straight to the point. The most valuable thing request can do for the JavaScript ecosystem is to go into maintenance mode and stop considering new features or major releases.

Apologies in advance to the other committers on request that have been doing their best to improve it, but it’s for the best.

2009

The first version of request was one of the first modules ever created for the Node.js ecosystem. The earliest versions were written to APIs that pre-date the standard callback interface, streams, node_modules and npm. For the first few years, request and Node.js evolved together, each learning from the other. As Node.js improved and migrated core interfaces so did request. As request adopted changes to the core http library and streams it also informed improvements like the pipe event (which enabled request’s one line proxy) and one of Core http’s many re-writes (the one I had to write).

npm

request was one of the first modules added to the npm registry. As npm grew so did dependence on request. Even now, when npm is used far more for front-end than back-end work, request remains one of the most depended on modules in the registry. As I write this, 41K modules depend on request and it is downloaded 14 million times a week.

The place request has in the Node.js ecosystem is no longer one of an innovator but of an incumbent. If you Google for how to do something with HTTP in Node.js the examples are likely to show request as the client and express as the server. This has two notably bad effects.

It’s much harder for new libraries accomplishing similar tasks to gain adoption because of the incumbent position request holds over the ecosystem. It’s also very hard to change request in any meaningful way as the change not only may not be adopted by the majority of its dependents but it would put it out of alignment with the thousands of blog posts and stack overflow responses that use request.

Modern JavaScript

The last few years have been dramatic ones in JavaScript. Features people had talked about for years went from ideas, to standards, to features you can reliably depend on in most environments. The speed at which these have been adopted is staggering, mostly thanks to auto-updating browsers and an aggressive Node.js release schedule.

The patterns at the core of request are out of date. A few people might argue with that assessment, and I know who they are so I won’t be surprised, but it’s true. I have often been skeptical of the impact some of these features would have only to find myself adopting them wholesale not long after they are available in only the latest release of Node.js.

There’s a transition happening now in the ecosystem to these patterns. How messy that will be is still up in the air and I’m not going to try and read the tea leafs and figure out what the future looks like in that regard. The question for request is “Do we try to survive through that transition?” A year ago, I thought the answer was obvious and that we would, but now I’m convinced of the opposite.

A version of request written to truly embrace these new language patterns is, effectively, a new module. I’ve explored this space a bit already and have a project I’m quite happy with but it is incompatible with request in every conceivable way. What’s the value in a version of request that is incompatible with the old patterns yet not fully embracing the new ones? What’s the point in being partially compatible when there’s a whole world of new modules, written by new developers, that are re-thinking these problems with these patterns in mind?

The best thing for these new modules is for request to slowly fade away, eventually becoming just another memory of that legacy stack. Taking the position request has now and leveraging it for a bigger share of the next generation of developers would be a disservice to those developers as it would drive them away from better modules that don’t have the burden of request’s history.

Maintenance Mode

Here’s the plan.

  • request will stop accepting new features.
  • request will stop considering breaking changes.
  • The committers that are still active will try to merge fixes in a timely fashion, no promises though.
  • Releases will be fully automated, any merge into master will be published. I’ve already built this for some other projects using GitHub Actions.
    • We’re going to have to remove inactive collaborators and enforce 2fa, because commit rights will effectively become npm publish rights.
@reconbot
Copy link
Contributor

I fully support this, I think a warning message and/or deprecating new releases is in order.

As for the change in process and guidelines, it makes my job a lot easier 👌

@simov
Copy link
Member

simov commented Mar 31, 2019

Very well said @mikeal. I'm pinning this issue to gain more visibility.

@simov simov pinned this issue Mar 31, 2019
@reconbot
Copy link
Contributor

reconbot commented Mar 31, 2019

Things we might do - please discuss and volunteer!

  • update readme with current state of project
  • update ci publishing pipeline @mikeal
  • provide a doc with some guidance on request alternatives Alternative libraries to request #3143
  • add a warning message on install of the package to use another package and reference the doc
  • pick a date to stop support (I vote 6 months, but 12 is probably friendlier)
  • close all feature requests and feature prs
  • review and merge relevant bug fixes
  • add github issue and pr templates explaining that features wont be merged
  • deprecate the next major version (3.x) so project’s in active maintenance get a warning but older projects continue as usual

@analog-nico
Copy link
Member

It makes a lot of sense! I will slowly adopt this policy for the request-promise family as well. Cheers to your important contributions to the node ecosystem!

jason-merlo pushed a commit to jason-merlo/jason-merlo.github.io that referenced this issue Apr 12, 2024
Tackled #1329 with [PurgeCSS](https://purgecss.com/).

Being talking with @varuniyer about using
[jekyll-uncss](https://github.com/episource/jekyll-uncss) to reduce css
file sizes by ditching unused classes. This approach have 3 main
problems:

1 - have some limitations as pointed
[here](alshedivat/al-folio#1329 (comment))
2 - last update to
[jekyll-uncss](https://github.com/episource/jekyll-uncss) was about 3
years ago, so it might have a few issues
3 - [uncss](https://github.com/uncss/uncss) haven't seem a new release
in a while, currently [lacking
maintenance](uncss/uncss#459), and using some
deprecated libraries as seem here:

```
npm install -g uncss
npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see request/request#3142
```

I thought about giving PurgeCSS a go, since it has been more [actively
maintaned](https://github.com/FullHuman/purgecss), but
[jekyll-purgecss](https://github.com/mhanberg/jekyll-purgecss) haven't.

For this, I needed to change to use some local libraries instead of
getting them via CDN. The good news is that it is quite effective in
reducing css file sizes. Comparing dir sizes with `du -hs
_site/assets/css/`:

| current | minify | PurgeCSS | PurgeCSS + minify |
| ------- | ------ | -------- | ----------------- |
| 1,1M    | 988K   | 456K     | 420K              |

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
andrewmzhang added a commit to andrewmzhang/andrewmzhang-2021 that referenced this issue Apr 28, 2024
* Added support for featured blog posts (#1498)

Implementing #1440. Still not sure if the year should be shown there or
not. Also, I limited to be displayed at least 2 at most 3 elements on
the row of featured blog posts, since when having only 1 featured post
the card would occupy the whole row (and it looks weird). What do you
think @alshedivat? Also, idk how to force the cards to have the same
height. I think it would look nicer, but my lack of web dev skills made
a difference here.

Some current screenshots:


![image](https://github.com/alshedivat/al-folio/assets/31376482/11b280dd-70b6-4bc4-84b6-987aa6412d55)


![image](https://github.com/alshedivat/al-folio/assets/31376482/d94aac41-246d-4b4e-afd0-161aab5a9b88)

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
Co-authored-by: Maruan <alshedivat@users.noreply.github.com>

* Added two more examples (#1517)

Added the following examples:
* A personal homepage
* A workshop website

* Update Docker Images to support M1 Mac (#1486)

I added multi-architecture support for docker images. 

- #1469 

ToDo: 
- [ ] Update deploy tag file accrodingly

* Created GitHub action to update site pagespeed svg (#1529)

Addresses #1524

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Updated Pagespeed results

* Revert "Created GitHub action to update site pagespeed svg" (#1530)

Reverts alshedivat/al-folio#1529

* Updated README FAQ section (#1532)

* Added support for jupyter notebooks #417 (#1511)

Implemented #417.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>
Co-authored-by: Amir Pourmand <pourmand1376@gmail.com>

* Added support for jupyter dark mode (#1538)

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Create .dockerignore

* Added anmspro.github.io in academics (#1549)

Added anmspro.github.io in academics

* CV Restyled (#1339)

I have redesigned the CV to have some options that I have in my pdf CV.

I'm not too inspired to include more example data, if anyone wants to
add data, go ahead.

With my data the CV looks like this:
[https://jmrplens.github.io/cv/](https://jmrplens.github.io/cv/ ).
My data: [VIEW
FILE](https://github.com/jmrplens/jmrplens.github.io/blob/ce8b5b67dbc5a37dafe9083681b92a6746640b13/_data/cv.yml)

Some screenshots:
<img width="45%" alt="Screenshot of Google Chrome (19-4-23, 23-09-51)"
src="https://user-images.githubusercontent.com/28966312/233200752-e49afa44-1c07-42eb-b38c-337f81b60406.png"><img
width="45%" alt="Screenshot of Google Chrome (19-4-23, 23-10-22)"
src="https://user-images.githubusercontent.com/28966312/233200844-0201d061-df3e-4e80-8107-3b6f7c72faa3.png">
<img width="45%" alt="Screenshot of Google Chrome (19-4-23, 23-10-37)"
src="https://user-images.githubusercontent.com/28966312/233200898-77040d1a-bf9a-47f1-a46d-3008f7331020.png"><img
width="45%" alt="Screenshot of Google Chrome (19-4-23, 23-10-54)"
src="https://user-images.githubusercontent.com/28966312/233200949-055fe27e-ce06-4929-91e8-cab2983b4850.png">

Mobile:

<img width="45%" alt="Screenshot of Google Chrome (19-4-23, 23-21-36)"
src="https://user-images.githubusercontent.com/28966312/233203168-8b5cc777-e3f8-4387-96d4-a5d405d7032b.png"><img
width="45%" alt="Screenshot of Google Chrome (19-4-23, 23-21-48)"
src="https://user-images.githubusercontent.com/28966312/233203238-5ccc424e-b0e3-41a1-bd2b-2c64e01cfc85.png">
<img width="45%" alt="Screenshot of Google Chrome (19-4-23, 23-22-00)"
src="https://user-images.githubusercontent.com/28966312/233203297-7174be99-08a1-427a-a414-5bded2d6c2d8.png"><img
width="45%" alt="Screenshot of Google Chrome (19-4-23, 23-22-14)"
src="https://user-images.githubusercontent.com/28966312/233203312-f5067ce7-134f-4a39-bb5b-aaa3d247b3e7.png">

---------

Co-authored-by: George <31376482+george-gca@users.noreply.github.com>

* Add jsonresume support (#1547)

Just as discussed in #1513 , this pull request adds support for
[jsonresume](https://jsonresume.org/). Create the resume once, either as
a file in the repository or at [github gist](https://gist.github.com/)
called `resume.json`. Put the file in the `_config.yaml` file and that's
it! Other platforms like [resumake](https://latexresu.me/) use the same
schema.

I also incorperated the changes introduced by #1339 to the best of my
abilites. The style could be further improved.

**Please merge this pull request after #1339 is merged, due to
dependencies from it**

If someone has a bettet approach on how to solve the problem that each
section needs its own template, please let me know. But for now it works
fine and is still backwards compatible with the `cv.yaml` file.

Co-authored-by: George <31376482+george-gca@users.noreply.github.com>

* Publication image zoom (#1554)

Fixes #1552

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Support for bibliography in blog posts and projects (#1553)

Implemented #1193

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Remove repeated layout template of cv.html (#1555)

The layout template of cv.html has repeated parts. When site.data.resume
is not defined, the cv page will be rendered incorrectly.

* Made some small changes to code (#1558)

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Change analytics script from Panelbear to Cronitor (#1561)

Panelbear is now Cronitor RUM, the old script does not work.

* Added metadata info when blog post (#1573)

Changed metadata info for when page is a blog post.

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Added Zotero socials (#1572)

Solving #1569 
I added Zotero socials because I needed them; opened a issue/pull
request in case I'm not the only one.

Second pull request (previous: #1570 ) because unwanted commits
retroactively crept in somehow. It was easier to force reset (which
closed the pull request automatically apparently).

* Added missing socials to metadata (#1575)

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Update Dockerfile (#1581)

* Zotero ID Bugfix (#1580)

#1569 Fixed mismatch between zotero-id in _config.yml and the zotero-id
called upon in the socials html file introduced by #1572 (sorry about
that; slipped in when I had to reset my zotero-branch)

* Update Tag Deploys to Support M1 Macbooks (#1522)

I should merge this whenever normal deploy is well-tested for Mac
computers.

* Al folio main giscus pages (#1596)

Solves #1586 by adding the option for giscus comments sites using the
pages layout and minimally modifies Project 2 to show giscus comments as
an example

* incorrect max-height in figure.html (#1593)

figure.html was incorrectly setting height=max-height instead of
max-height=max-height

* Cache busting for _sass and individual files (#1557)

Addressing #1395 but with a different solution from #1478, using
semantic versioning based on implementation found
[here](https://distresssignal.org/busting-css-cache-with-jekyll-md5-hash).

Implemented a way of calculating the hash for both a single file or
directory. This way we can calculate the hash for when there is a change
in the `_sass` dir, for example, or in the contents of a single file.

Examples of generated outputs of the plugin:
```
/al-folio/assets/css/main.css?d41d8cd98f00b204e9800998ecf8427e
/al-folio/assets/js/theme.js?96d6b3e1c3604aca8b6134c7afdd5db6
/al-folio/assets/js/dark_mode.js?9b17307bb950ffa2e34be0227f53558f
/al-folio/assets/js/no_defer.js?d633890033921b33e0ceb13d22340a9c
/al-folio/assets/js/common.js?acdb9690d7641b2f8d40529018c71a01
/al-folio/assets/js/copy_code.js?c9d9dd48933de3831b3ee5ec9c209cac
/al-folio/assets/img/prof_pic.jpg?974957d202f671e4fa6700c04e68deae
```

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Added jupyter to README (#1637)

Signed-off-by: George Araujo <george.gcac@gmail.com>

* add star to academic examples (#1647)

Dear `al-folio` maintainers,

I would greatly appreciate it if you could add my homepage as a star in
the academic examples.

Thank you for your wonderful work on this.

* Update README to make Docker Recommended way (#1523)

Docker is well-tested for a long time. I think it is better to make it
the recommended method for all OS types.

This way, it is a lot easier to install docker (than to install jekyll
and ruby and what not) and also we wouldn't have to deal with issues
like these:
- https://github.com/alshedivat/al-folio/issues/1520
- https://github.com/alshedivat/al-folio/issues/1491

* Update README.md (#1657)

* Update README.md (#1661)

add star to academic example

* Add all contributors section to README.md

* Fix _variables.scss filename in README (#1683)

* Add website (#1674)

* Don't display badge if startDate is empty (#1682)

* Add a star. (#1695)

* Add star to README.md (#1684)

Added academic website to README.md.
Also added `_blank` target to earlier ones.

Co-authored-by: George <31376482+george-gca@users.noreply.github.com>

* Add a star (#1705)

Added academic website to README.md.

* Add a star (#1723)

* Fix regex to limit keyword scope to fields (#1629)

improved version of the original fix contributed by @paberr in #1429

* Moved ToC Menu to Sidebar (#1582)

Addressing #1551 using the same sidebar as in #1366, removing the inline ToC menu from the CV

* add WeChat to socials (#1730)

When the WeChat icon in socials is clicked, a picture of your WeChat QR
code is shown in the center of the screen. The actual picture of your QR
code has to be uploaded.

* Update README.md (#1748)

* Adding a page (*) in README.md (#1755)

Adding https://kudhru.github.io/ in the academics section

* Update README (#1754)

* added the link to my personal academic website
([mbarbetti.github.io](https://mbarbetti.github.io))
* added the link to the website for a workshop named "Beyond Vision:
Physics meets AI" ([BVPAI
2023](https://physicsmeetsai.github.io/beyond-vision)) held within ICIAP
2023

---------

Co-authored-by: Amir Pourmand <pourmand1376@gmail.com>

* Added a star (#1764)

* Fixing bootstrap dark-table top border (#1763)

This addresses https://github.com/alshedivat/al-folio/issues/1425.

Contributions:
- Added border attribute to `.table-dark` within `_base.scss` to
override bootstrap theme border settings for `.tabled-bordered`.
Displays top border in dark mode for only those tables that are bordered

* Added support to PurgeCSS (#1562)

Tackled #1329 with [PurgeCSS](https://purgecss.com/).

Being talking with @varuniyer about using
[jekyll-uncss](https://github.com/episource/jekyll-uncss) to reduce css
file sizes by ditching unused classes. This approach have 3 main
problems:

1 - have some limitations as pointed
[here](https://github.com/alshedivat/al-folio/issues/1329#issuecomment-1546517327)
2 - last update to
[jekyll-uncss](https://github.com/episource/jekyll-uncss) was about 3
years ago, so it might have a few issues
3 - [uncss](https://github.com/uncss/uncss) haven't seem a new release
in a while, currently [lacking
maintenance](https://github.com/uncss/uncss/issues/459), and using some
deprecated libraries as seem here:

```
npm install -g uncss
npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
```

I thought about giving PurgeCSS a go, since it has been more [actively
maintaned](https://github.com/FullHuman/purgecss), but
[jekyll-purgecss](https://github.com/mhanberg/jekyll-purgecss) haven't.

For this, I needed to change to use some local libraries instead of
getting them via CDN. The good news is that it is quite effective in
reducing css file sizes. Comparing dir sizes with `du -hs
_site/assets/css/`:

| current | minify | PurgeCSS | PurgeCSS + minify |
| ------- | ------ | -------- | ----------------- |
| 1,1M    | 988K   | 456K     | 420K              |

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Added support for multiple profiles in about page (#1243)

Addresses #963.

Supports two setups: getting profile text from page content.

```markdown
---
layout: about
title: about
permalink: /
subtitle: <a href='#'>Affiliations</a>. Address. Contacts. Moto. Etc.

profiles:
  # if you want to include more than one profile, just replicate the following block
  # and create one content file for each profile inside _pages/
  - align: right
    image: prof_pic.jpg
    # content: about_einstein.md
    image_circular: false # crops the image to make it circular
    more_info: >
      <p>555 your office number</p>
      <p>123 your address street</p>
      <p>Your City, State 12345</p>

news: true  # includes a list of news items
selected_papers: true # includes a list of papers marked as "selected={true}"
social: true  # includes social icons at the bottom of the page
---

Write your biography here. Tell the world about yourself. Link to your favorite [subreddit](http://reddit.com). You can put a picture in, too. The code is already in, just name your picture `prof_pic.jpg` and put it in the `img/` folder.

Put your address / P.O. box / other info right below your picture. You can also disable any these elements by editing `profile` property of the YAML header of your `_pages/about.md`. Edit `_bibliography/papers.bib` and Jekyll will render your [publications page](/al-folio/publications/) automatically.

Link to your social media connections, too. This theme is set up to use [Font Awesome icons](http://fortawesome.github.io/Font-Awesome/) and [Academicons](https://jpswalsh.github.io/academicons/), like the ones below. Add your Facebook, Twitter, LinkedIn, Google Scholar, or just disable all of them.
```

Or getting profile text from `content` (useful when having multiple
profiles).

```markdown
---
layout: about
title: about
permalink: /
subtitle: <a href='#'>Affiliations</a>. Address. Contacts. Moto. Etc.

profiles:
  # if you want to include more than one profile, just replicate the following block
  # and create one content file for each profile inside _pages/
  - align: right
    image: prof_pic.jpg
    content: about_einstein.md
    image_circular: false # crops the image to make it circular
    more_info: >
      <p>555 your office number</p>
      <p>123 your address street</p>
      <p>Your City, State 12345</p>
  - align: left
    image: prof_pic.jpg
    content: about_einstein.md
    image_circular: false # crops the image to make it circular
    more_info: >
      <p>555 your office number</p>
      <p>123 your address street</p>
      <p>Your City, State 12345</p>

news: true  # includes a list of news items
selected_papers: true # includes a list of papers marked as "selected={true}"
social: true  # includes social icons at the bottom of the page
---
```

Which looks like this:


![image](https://user-images.githubusercontent.com/31376482/223251956-aec09f92-55c4-4a17-8ab6-0b30da0970cc.png)

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>
Signed-off-by: George Araujo <george.gcac@gmail.com>

* Fixed weird bib btn behavior (#1776)

Fixes #1774 by reverting mdb usage to cdn. Weirdly enough, when using
from local file it triggers a ripple effect when using `btn` class. It
states in the [official
docs](https://mdbootstrap.com/docs/standard/methods/ripple/) that:

> By default, ripple is added to every button (via .btn class)

Using [this
solution](https://mdbootstrap.com/support/standard/disable-waves-ripple-effect/)
only make this flicking happens faster. Also this does seem to be [an
issue](https://mdbootstrap.com/support/standard/how-to-disable-ripple-effect/)
still in the [latest
version](https://github.com/mdbootstrap/mdb-ui-kit/issues/1505) (even
though we are using an older one).

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Added description to profiles page (#1777)

Added support for description in profiles page

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Create .github/release.yml

Adds a template for automatic generation of release notes

* Update README.md

add link to iclr 2024 blog post track

* Update README.md

add link to workshop on diffusion models

* Update README.md

add all contributors to toc

* Optimize Dockerfile (#1700)

* Fix Docker Problem (#1785)

* Update README.md (#1789)

added an example of a personal web page

* Update giscus setup via github action (#1792)

giscus settings in `_config.yml` had al-folio repo specified by default.
many users kept these defaults in their own repos, which resulted in
getting comments from blog posts of different users posted to al-folio
discussions. this is undesirable, since users lose control over the
discussions in their blogs.

this PR solves the issue:
- first, we set `giscus.repo` to blank in `_config.yml`. if the field is
kept blank, when the website is built locally, the user will see a
warning saying that giscus comments are misconfigured.
- second, we add a step to the `deploy` workflow that writes repository
name to `giscus.repo` in `_config.yml`. that way, even if `giscus.repo`
field is left black or set to an incorrect repo, it gets correctly
populated at deployment time.

other small changes in this PR are small stylistic adjustments.

* Remove by year grouping from selected publications (#1796)

* Make publication thumbnails optional + fix small layout bugs (#1797)

* Fix a small bug in giscus template

* Add Reload to Docker (Automatic Reload of Changes to _config.yaml) (#1702)

- #1640

* Add DockerSlim (#1699)

* Update Dockerfile

* fix reference disappearing for distill blog in absence of author (#1804)

* Added my website in the list (#1834)

* Update README.md (#1837)

* Update README.md (#1856)

* Added shubhashisroydipta.com to README.md (#1816)

* fix inconsistent alignment for latest posts (#1832)

* Add my website (#1859)

* Update README.md (#1938)

Adding my site. Amazing template, it was incredibly easy to setup and is
super flexible!

* Adding my site. Thanks! (#1945)

* Update Font Awesome url (#1943)

Previous link returns a `404`

* Update README.md (#1901)

Added new Q&A (Q7). Github credentials error when deploying. Changing
the github config url from `http` to `ssh`

* ENH image zooming in distill posts (#1826)

Towards https://github.com/alshedivat/al-folio/discussions/1374

The image zooming feature did not work with distill layout previously.

* Better Readme (#1806)

* Update cv.html (#1820)

resume fixing that isn't showing up

* Update resume.json (#1821)

populating resume.json to give easier start to people that dont
understand very well how to setup the fields

* Fixes #1952 (#1955)

Fixes #1952 by updating font awesome version. Also updated icons names
to newest font awesome style.

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Fixes #1584 (#1971)

Removed link to blog when showing years in news

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Update cv.md (#1973)

Fix path typo in description

* Implemented support for tikzjax (#1990)

Implemented #1976.

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Fixed redirect post access from blog archive (#1994)

Fixes #1831

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Ensure the zoomed image is in front of toc sidebar (#1998)

Fixes #1888

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Updated README to explictly tell how to proceed on fresh install (#1993)

Updated README to explicitly tell how to proceed on creating your own
version based on this template. Also removed the video tutorial since it
was for an older version, recommending to fork the repo and it was
missing the `--lsi` parameter from jekyll command. Also was not using
docker, the current recommended way.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* check for active children in submenus (#1869)

This patch checks, if the title of the current page matches with the
title of a submenu child. If so, it sets the submenu and the
corresponding child as active, highlighting it in the header.

* added ability to switch off pagination on the blog page (#1909)

* Now blog can be reorganized in header (#1996)

Fixes #1559 #1795

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Added video button to bib entries (#2008)

When the video entry is added to bib:

e.g.,

```
{
...
video={https://www.youtube.com/embed/jNQXAC9IVRw}
...
}
```
A dedicated button appears for videos. When clicked, a playable video
appears under the research article (like abstracts and bibtex)

* bring back `repo_id` and `category_id` in `giscus` section (#1892)

After deploying my website (Cloudflare Pages), my Giscus did not work, I
realized these two paramesters are removed. After adding them again, my
Giscus worked correctly.
These new values are values from previous commits of original repository

---------

Co-authored-by: Maruan Al-Shedivat <maruan@genesistherapeutics.ai>

* Responsive image fix (#2014)

Fixes #1967 

Update the way responsive images are used to only use one srcset, and
add corresponding `sizes` attribute to the relevant layouts and
templates.
I did not go through and add `sizes` to all the example posts/projects.
When `sizes` is not specified by the user, the `figure.html` template
defaults to 95% the width of the viewport which should work fine for
most cases; users can optimize further if they wish by feeding `sizes`
into the template.

Additionally:
 - Enabled support for .gif to .webp compression
- fix error in jekyll-imagemagick config where all images were resized
to be 800px or less. (for example img-1400.webp was actually only 800px
wide, etc.)
- added note about making sure imagemagick is installed before enabling
it in responsive images section of `_config.yml`

* fix live-reloading in docker (#2022)

Fix #2021 : The webpage hosted by docker would not be automatically
reloaded because the port used for live-reloading (port 35729) is not
forwarded.

* Remove imagemagick strip (#2028)

I had added -strip arg to the imagemagick call as it is generally
desirable to strip metadata from images before publishing them, however
it seems to occasionally cause issues with jekyll-imagemagick
auto-regeneration, regenerating images even when they have not changed.

* Changed trophies layout to better suit different screen sizes (#2038)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Changed mermaid support in template (#1992)

Fix #1609

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
Co-authored-by: Maruan Al-Shedivat <maruan@genesistherapeutics.ai>

* Upgrading the README file (#2034)

I decided to break the README file into different ones to declutter it
from the main page. Also adding some more explanation on the structure
of the template. Tackling #2032 and #2033

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Added information about using wsl on Windows (#2040)

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Removed background from template example

* Added citation examples, simplified citation code (#2056)

Since the citation file and other stuff is already defined in
`_config.yml`, removed them when calling `{% bibliography %}`. Also
realized that `jekyll-scholar` helps in displaying only the papers cited
in page, changed to use that.

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Add direct link to `use this template`

* Normalizing coauthor names before search (#2057)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* format code with prettier.io (#2048)

summary:
- adds prettier formatter configuration
- formats the entire repo using prettier, ignoring minified files
(`*.min.css`) and heavy generated html
- changes extensions of all `.html` files to `.liquid`, which is more
correct and necessary for prettier to work correctly
- replaces "%-" and "-%" with just "%" — manual liquid formatting using
minus signs is superfluous since we are compressing and minifying the
code anyway
- adds CI action for running prettier check on PR and pushes to master

* Add .git-blame-ignore-revs

* Move news and 404 to pages (#2060)

moves news and 404 from repo root dir to `_pages/` where they are
supposed to be + changes their extensions to `.md`

* Fix prettier (#2062)

Changed rule to minified files, reverted changes to minified files

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Update .git-blame-ignore-revs

* Fixed small typo (#2064)

instalation -> installation

Thank you for this resource!

* Added additional user to README.md (#2063)

Added new user to academics section in readme. 

Thank you for this great resource!

* Fixed missing changes to liquid file

* Fixed FAQ link in CONTRIBUTING.md

* Changed file paths in bug_report.md

* Fix custom blockquotes (#2071)

Fixed issue #2066. Removed `>` in front of `{: .block-tip }` which was
introduced by prettier in the example post.

* Fix broken links (#2077)

Added GitHub action to check for broken links in repo before commit,
ignoring files with liquid tags since these were not yet processed and
also README since some sites created from this template doesn't have
valid urls anymore. Fixed some broken links in repo.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Link checks on deploy (#2079)

Added another GitHub action to check for broken local links on version
of the site that will be deployed.

The `broken-links` action check for broken links considering
documentation files (like INSTALLING.md) and also pages like
[_pages/about.md](https://github.com/alshedivat/al-folio/blob/master/_pages/about.md),
but it can't check for broken links when the link will be handled by
jekyll tags (like in
[_pages/blog.md](https://github.com/alshedivat/al-folio/blob/master/_pages/blog.md).

With `broken-links-site` we can check if all the links that will be used
on the final site that refer to local files are correct. Focusing only
on local files since this would end up calling too many checks for
library files, like
`https://unpkg.com/bootstrap-table@1.22.1/dist/bootstrap-table.min.css`.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Axe accessibility test support (#2080)

Added GitHub action to do axe accessibility tests with [axe
cli](https://github.com/dequelabs/axe-core-npm/tree/develop/packages/cli).
I believe it is best by default to let this be run only manually, since
fixing some of the issues are not straightforward (I haven't fixed them
all for this template yet).

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Fixed role main in default.liquid

* Added missing separator in README

* Update contributing on README.md

* Added star history to README.md

* Updated toc on README.md

* Update INSTALL.md version of al-folio

* Adding star (#2095)

Thank you all!!!

* Changed conditions of running GitHub actions (#2082)

The GitHub actions were running everytime a new commit was made to the
repo, but that wasn't needed. For example, we don't need to try to
create a new docker image if the libraries didn't change, same to build
the whole site after a change in the README.md.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Downgrade ruby version (#2098)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Update INSTALL.md (#2091)

- #2090

* Fixed dark mode not working after purgecss

* Added one more researcher using al-folio (#2105)

Added my own website as a star to the "Academics" section

* Added acknowledge section to feature_request.md

* Added diff tools to INSTALL.md

* Prettier check now generates a diff comment on PR (#2085)

Splitted prettier GitHub action into two:
- `on push`, only runs on direct pushes, if test fails generates an
artifact (that lasts for 3 days) with an html version of the changes
needed to pass prettier test
- `on PR`, only runs on PRs, if test fails comments on the PR with the
HTML content of the diff

I couldn't actually test the `on PR` version since it needs to be on a
PR in the master branch, so this will only be triggered after this PR is
accepted, and for the next PR that fails prettier test.

PS: currently the artifact is a zip file with the html inside. It is not
currently possible to generate it other way, we have to wait for [this
issue](https://github.com/actions/upload-artifact/issues/14) to be
closed.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Update prettier-on-pr.yml permissions

* Changed how prettier comments on PR works (#2112)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Fixed prettier actions (#2113)

After some thorough testing, finally made prettier on PR work. Since an
html file can't be used as comment on GitHub, changed to simply point to
the action that failed and to the file containing the html diff.

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Moved prettier comment on PR to its own action (#2114)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Added Lighthouse test GitHub action (#2084)

Added support for Lighthouse test as a GitHub action, and it appears
like
[this](https://github.com/george-gca/multi-language-al-folio?tab=readme-ov-file#lighthouse-pagespeed-insights).
The only thing missing is for @alshedivat to create a [repository
secret](https://github.com/MyActionWay/lighthouse-badger-workflows#lighthouse-badger-easyyml)
named `LIGHTHOUSE_BADGER_TOKEN` with the information needed.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Lighthouse-Badger[bot]: Results Added

* Fixed lighthouse html viewer links

* Added anchor to category sections (#2006)

Added anchor to categories so one could navigate to the category section
from the URL:

e.g.,

https://alshedivat.github.io/al-folio/projects#fun

* Added lighthouse_results to .prettierignore

* Improved issues templates (#2110)

Since a lot of issues opened are just questions that should be opened as
so, and sometimes the issue template is just not followed, I decided to
make opening new issues a little more "enforced", if not clear.

I based the new templates on the ones from [pytorch
lightning](https://github.com/Lightning-AI/pytorch-lightning/issues/new/choose),
which I think are pretty good. The visuals will only appear after the
merge is processed, but you can have an idea of how it will look like by
checking their templates and how they look.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Removed 0 from bug report

* Updated links in 1_bug_report.yml

* Updated links in 2_feature_request.yml

* Updated links in issue template config.yml

* Fixed url in config.yml

* Fixed urls in 2_feature_request.yml

* Fixed urls in 1_bug_report.yml

* Updated checkout step in lighthouse-badger.yml

* Lighthouse-Badger[bot]: Results Added

* Added support for Chart.js (#2126)

Solved #460.


![image](https://github.com/alshedivat/al-folio/assets/31376482/ce65dbe2-031e-4208-b374-08ec89beaaca)

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Added integrity check to mermaid.js

* Added Echarts support (#2129)

Since I added support for chart.js and while doing so found some other
wonderful charting libraries, I thought, why not give support to some
more? So adding support to [Apache
Echarts](https://echarts.apache.org/en/index.html).


![image](https://github.com/alshedivat/al-folio/assets/31376482/088f0932-524f-4fcd-a34b-b132f569a675)


![image](https://github.com/alshedivat/al-folio/assets/31376482/36bfe4f8-a9d1-4b6d-a912-fb40ba3b5337)

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* GeoJSON support (#2130)

Added support for GeoJSON maps.


![image](https://github.com/alshedivat/al-folio/assets/31376482/48e91158-a717-4d01-b6d7-47d45f0580e4)

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Vega lite support (#2131)

Added support for [vega lite](https://vega.github.io/vega-lite/) charts.


![image](https://github.com/alshedivat/al-folio/assets/31376482/789c14d3-93b6-4d3f-94a6-7cec1f0f0b59)


![image](https://github.com/alshedivat/al-folio/assets/31376482/17f9021c-08c4-4922-9f97-1046b146a965)

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Added leaflet reference to 2024-01-26-geojson-map.md

* Closing #2122 (#2135)

Added lighthouse badger token info to FAQ

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Workflow fix (#2136)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Advanced image viewers (#2132)

Image slider with [Swiper](https://swiperjs.com/).


![image](https://github.com/alshedivat/al-folio/assets/31376482/9068823c-571a-4d31-8e95-755a40a15ec9)

Image comparison slider with
[img-comparison-slider](https://img-comparison-slider.sneas.io/).


![image](https://github.com/alshedivat/al-folio/assets/31376482/97812477-c13b-43b1-8f0b-cb098462de3c)

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Support for diff2html (#2133)

Added support to display diff code in a prettier way with
[diff2html](https://diff2html.xyz/).


![image](https://github.com/alshedivat/al-folio/assets/31376482/5f93b09c-3850-499a-999b-cb0ae13fddae)

It displays code like [in this
example](https://diff2html.xyz/demo.html).

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Move libs versions to config (#2139)

Moved libs versions and hashes to `_config.yml`.

Fixes #2067.

Deferring everything possible to keep pages loads fast.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Update FAQ.md with Prettier info

* Avoid deploying site when changes are in README files

* Lighthouse-Badger[bot]: Results Added

* Removing lighthouse results from deploy trigger

* Removing lighthouse_results from broken-links trigger

* Lighthouse-Badger[bot]: Results Added

* Adding display swap to Google Fonts

Adding suggestion from [Lighthouse results](https://developer.chrome.com/docs/lighthouse/performance/font-display/?utm_source=lighthouse&utm_medium=cli#google_fonts)

* Added link to jekyll docs about post file naming

* Fixed axe workflow (#2149)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* improved redirect mapping (#2157)

In reference to issue:
https://github.com/alshedivat/al-folio/discussions/1818

Redirect cases were only happening on the surface level, essentially
just affecting the links on [blog
index](https://alshedivat.github.io/al-folio/blog/page/4/index.htm) and
[year tag](https://alshedivat.github.io/al-folio/blog/2022/). However,
from the actual
[site](https://alshedivat.github.io/al-folio/blog/2022/redirect/), it
would automatically redirect to the `base_url` rather than the actual
`redirect`.

In my update, if `redirect: true`, like it is in `404.md`, redirect
behavior is the same, redirecting to the `base_url`. If it is an
external link, then the redirect is external. And finally if it is an
internal redirect, like it is in
https://alshedivat.github.io/al-folio/blog/2022/redirect/, than the
redirect is `page.redirect | relative_url`

* Updated FAQ with old repository information (#2161)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* Added jekyll-diagrams error to FAQ (#2162)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* center footer text by default (#2165)

This PR changes the footer text on the website (for both the sticky and
fixed footer) to be centered by default. This change is based on the
discussion post #257.

* Fix Image Dimension Styles for Better Responsiveness (#2166)

In this pull request, I've made adjustments to the image element's
handling of dimension properties. Previously, `min-width`, `min-height`,
`max-width`, and `max-height` were incorrectly placed as HTML attributes
on the `<img>` tag, which is not supported for these CSS properties.
This oversight could lead to issues with image responsiveness and layout
stability.

Changes:
- Moved `min-width`, `min-height`, `max-width`, and `max-height`
properties into the `style` attribute of the `<img>` tag. This change
ensures that these properties are correctly applied and recognized as
CSS properties, enhancing the responsiveness and flexibility of our
image displays.
- Retained `width` and `height` as attributes on the `<img>` tag to
maintain the intrinsic aspect ratio of images and help the browser
allocate space before images are fully loaded, improving the page load
experience.

These adjustments will ensure that our images are more responsive and
better adhere to the specified dimensions, improving the overall user
experience for the template.

* Update README.md (#2182)

Add my acdemic portfolio to the Acdemic section of README.

* Update README.md (#2187)

adding my page to the README section. Kudos to the dev team!

* Added support for google scholar citations (#2193)

Closes #1809, but there are caveats:
1 - it only works at build time, which means it won't update the numbers
unless you build your site again
2 - Google might block the request if it receives lots of it, failing
the whole process.

This is how it looks like when it can fetch the information:

![Screenshot from 2024-02-13
00-37-52](https://github.com/alshedivat/al-folio/assets/31376482/646d1f3c-1294-491b-bc13-9013e38918b4)

And this when it fails:


![image](https://github.com/alshedivat/al-folio/assets/31376482/516eefff-d394-44ad-8702-8982233f8c4f)

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Fixed bug when number has , on scholar citations

* Add academic community example (#2195)

Adds [https://ericslyman.com/](https://ericslyman.com/) to the list of
academic community examples.

* Fixed related publications appearing in toc (#2196)

Fixes #2192

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* remove the space in names of "site" (#2188)

I removed the spaces between the first, middle and last names in the
header.

It's just my preference, I don't know if it would be accepted but I have
done this for my own page using this repository as a template.

* Implement Default Lazy Loading for Images with Configurable Option (#2183)

This PR introduces an enhancement to the site's image-loading strategy
by implementing lazy loading as the default behavior for all images. The
motivation behind this change is to improve the site's load times.

**Changes:**
1. **Default Lazy Loading:** By `default`, all images will now have the
`loading="lazy"` attribute.

2. **Configurable Option in `_config.yml`:** Added a new configuration
option under `lazy_loading_images.enable`.

3. **Override Capability:** For `specific images` where the user doesn't
want lazy loading, they can `override` this by directly setting the
`loading attribute` in the `image tag`.

* fix author spacing (#2197)

This PR fixes issue https://github.com/alshedivat/al-folio/issues/2185
and addresses discussion
https://github.com/alshedivat/al-folio/discussions/2153.

- removes leading whitespace before commas in author list
- fixes author spacing

* Changed lazy loading in figure.liquid

* Changed lazy loading in _config.yml

* Added/Improved Formatting for Checkboxes (#2191)

A proposed solution for #2190. Padding is added such that I considered
it aesthetically pleasing and the bullet points in front of the check
marks were removed.

---------

Co-authored-by: George <31376482+george-gca@users.noreply.github.com>

* Lighthouse-Badger[bot]: Results Added

* Lighthouse fixes (#2199)

Our score went down a little bit after the last few changes. Avoiding
lazy loading some images (as introduced in #2183), since [it is strongly
recommended to omit hero images and other images or iframes that are
likely to appear above the fold from being
lazy-loaded](https://web.dev/articles/browser-level-lazy-loading-for-cmss#avoid_lazy_loading_above-the-fold_elements).
Also added missing `alt` to google scholar field.

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Lighthouse-Badger[bot]: Results Added

* Fixed coauthors examples in CUSTOMIZE

* Fixed broken latex in _posts/2015-10-20-math.md (#2219)

Latex math is currently broken in
[_posts/2015-10-20-math.md](https://alshedivat.github.io/al-folio/blog/2015/math/)
. Fixed it by replacing starts with underscore

---------

Co-authored-by: George <31376482+george-gca@users.noreply.github.com>

* Emphasized more how the name of the repository must be

* Add functionality to open external links in jupyter notebooks in new tab (#2233)

See https://github.com/alshedivat/al-folio/pull/2230

---------

Co-authored-by: Scherrmann <scherrmann@bwl.uni-muenchen.de>

* Update INSTALL.md (#2237)

Added "Recommended Approach" as a subheading which was not under
Installing , but was in the contents section.

* Updated information about lsi

* Correct config variable for enabling latest_posts on about page (#2243)

I noticed disabling latest_posts in `_config.yml` didn't work because
the variable in the liquid template was seemingly incorrect. This should
fix that.

---------

Co-authored-by: Jake Nabasny <jake@nabasny.com>

* Replace `polyfill.io` (#2241)

The PR replaces `polyfill.io` inside the template with
`cdnjs.cloudflare.com/polyfill`.

---

`polyfill.io` was acquired by **a China-based CDN company** "Funnull",
see [the announcement from the `polyfill.io` domain owner's
Twitter](https://x.com/JakeDChampion/status/1761315227008643367) and
https://github.com/polyfillpolyfill/polyfill-service/issues/2834.
Despite Funnull's claims of operating in the United States, the
predominance of Simplified Chinese on its website suggests otherwise,
and it turns out that **"Funnull" is notorious for providing service for
the betting and pornography industries**.

[The original creator of the `polyfill.io` has voiced his concern on
Twitter](https://twitter.com/triblondon/status/1761852117579427975). And
since the acquisition, numerous issues have emerged
(https://github.com/polyfillpolyfill/polyfill-service/issues/2835,
https://github.com/polyfillpolyfill/polyfill-service/issues/2838,
https://github.com/alist-org/alist/issues/6100), rendering the
`polyfill.io` service **extremely unstable**. Since then, Fastly
([Announcement](https://community.fastly.com/t/new-options-for-polyfill-io-users/2540))
and Cloudflare
([Announcement](https://blog.cloudflare.com/polyfill-io-now-available-on-cdnjs-reduce-your-supply-chain-risk))
has hosted their own instances of `polyfill.io` service.

* Add option for local HTML files (#2245)

Add option to link HTML local files from publications page.

---------

Co-authored-by: Jake Nabasny <jake@nabasny.com>

* Delete reports directory

* Exclude more files from site (#2257)

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Removed *.yml from _config.yml

* Delete assets/img/pagespeed.svg

* Make clear that you should not touch `gh-pages` branch

* Make clear that you should not touch `gh-pages` branch

* Update INSTALL.md

* Added "follow system" option to theme toggle (#2261)

The theme toggle button now has a third option, which follows the user's
system preferences.

- In the code there's now a distinction between the theme setting (which
can be "dark", "light" or "system") and the computed theme.
- The theme setting is now stored as the "theme-setting" local storage
variable. Since this is different from the old variable ("theme"), this
will effectively reset all current user themes to the default "system".
Maybe this is not what you want.
- The "system" theme icon is currently a half circle symbol.
- The toggle button now displays the current theme setting, rather than
the next theme setting (as far as I know this is consistent with other
sites which have three theme options).
- `theme.js` is now loaded regardless of `site.enable_darkmode`. This is
because other scripts which were always loaded relied on being able to
determine the theme. `theme.js` no longer initialises the theme itself
though; this only happens when `site.enable_darkmode`.
- When the theme setting is "system", the theme will change immediately
whenever the user changes their system theme.

#2261

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
Co-authored-by: George Araujo <george.gcac@gmail.com>

* fix links (#2278)

This PR fixes/updates broken/outdated links on the `README.md`

* Update INSTALL.md (#2285)

Added a step to the "Recommended Approach" telling the user to wait for
the GitHub Actions to be completed so that the gh-pages branch can be
created.

* Add academic community example (#2289)

Adds [https://ztjona.github.io/](https://ztjona.github.io/) to the list
of academic community examples.

* add flickr to social integration (#2286)

- add flickr to social integration

---------

Co-authored-by: Yi Su <yi_su@apple.com>

* Add academic community example (#2300)

* Update FAQ.md with sqrt error message

* Added permalink info to CUSTOMIZE.md

* Added links to jekyll docs in CUSTOMIZE.md

* Added post about why write a blog

* Added Bluesky social (#2314)

Now that Bluesky is [finally
available](https://fontawesome.com/changelog) at Font Awesome, we can
add it to the template.

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Remove bootstrap-table from archive tables (#2306)

The blog archive page tables have `table-borderless`, but
bootstrap-table JS adds `table-bordered` by default and this forces an
`!important` border.
Since these tables are also supposed to be borderless, this PR excludes
them from bootstrap-table, just like the news and CV table are.

* Update README.md with deployment word

* feat: added IEEE and ACM social (#2321)

I added further social integration for:

1. ACM: https://dl.acm.org/profile/
2. IEEE: https://ieeexplore.ieee.org/author/

Given their importance in computer science, I would like to have them in
al-folio.

* Feature: added "award" for publications (#2324)

This PR adds an "award" button to publications.
It takes the `award` value from the bibtex entry and displays(incl.
Markdown rendering) the text in a box similarly to abstract and bibtex.

User can set the entry `award_name` to configure the value. See example
config with `award_name: Nobel Prize`.

The color of the award box can be configured in `_base.scss`.

Note, there is a similar PR #2175, it I saw to issues with:

1. There was no progress
2. The award button just prints the text directly in the button,
similarly to `award_name`. Long award names could clutter the webpage.
3. IMHO, it brokes the current al-folio design, since butons do have a
fixed size/text. However, variable prize names are also possible with
this PR.
***
Pictures:

Default. Text are hidden:

<img width="708" alt="grafik"
src="https://github.com/alshedivat/al-folio/assets/1998723/1221c82c-c384-4297-807e-39385e2ce4fd">

Additional info is shown when the button is clicked. Markdown supported.

<img width="684" alt="grafik"
src="https://github.com/alshedivat/al-folio/assets/1998723/2354aeee-12b0-4d32-b194-5d2ea80d8363">

Only one text box shown at the same time, like it is with "ABS" and
"BIB":
<img width="691" alt="grafik"
src="https://github.com/alshedivat/al-folio/assets/1998723/d3937bb9-d9c2-47ac-b819-b92aec3d916a">

***

Feedback welcome.

You can also check [my
website](https://christianmainka.de/publications/awarded), which was the
base for this PR.

* Offline mode (closes #1181) (#2312)

Created a plugin to tackle #1181. Currently have an issue with tikzjax
since it imports some wasm file from its javascript. The rest should
work as expected.

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Use JEKYLL_ENV=development in Docker Compose setup (#2336)

Fixes #2303.

See #2333 for discussion.

* feat: bib -> acceptance, acceptance_rate, location, cve_score (#2325)

I added further filds to `bib.liquid`.

A common field is `location`, which is now printed.

I added fields for `acceptance` and `acceptance_rate`. These fields
might be usefull for external people to better determine a vanue's
quality.
`acceptance` is used for the accepted vs submitted papers. 
`acceptance_rate` is a percent-value.

<img width="785" alt="Bildschirmfoto 2024-04-07 um 18 11 49"
src="https://github.com/alshedivat/al-folio/assets/1998723/d5eaeb08-7f67-4fb7-b9b9-fd5f4a3c331c">

The existence of two distinct variables stems from the fact that the
'acceptance_rate' is represented using the venue color. On my website, I
employ venue colors correlated with computer science conference
rankings, which naturally leads to associating the acceptance rate with
the same color scheme for coherence and better understanding.

<img width="785" alt="Bildschirmfoto 2024-04-07 um 18 14 54"
src="https://github.com/alshedivat/al-folio/assets/1998723/33ef0419-00ee-4fea-93d9-18c0269188de">

You can find more examples on my
[website](https://christianmainka.de/publications/peerreviewed).

Also, I added a CVE Score, which is mainly usefull for IT-Security
researchers, see this [example](https://christianmainka.de/cve/).

***

Let me know what you think about this proposal.

* Update FAQ.md with layout error information

* Added `pseudocode.js` support (#2344)

Signed-off-by: George Araújo <george.gcac@gmail.com>

* feat: make video embeddings optional. (#2337)

As discussed in #1181, I suggest to make embedding videos an optional
feature.

This behavior aligns well with recently merged PR #2312.

Open questions:

1. I added a youtube link to `papers.bib`. Is this link okay?
2. I set `enable_video_embedding: false` as the default. I argue that
privacy settings should be the default. Also, the current implementation
of `video.liquid` only works for some very specific video URLs. For
example, to embed youtube, specialized links must be used to avoid
`X-Frame-Option` issues. This behavior can lead to a broken embedding,
which would not look very nice.

Feedback welcome.

* feat: vscode devcontainer (#2335)

I added a [Remote Development
Containers](https://code.visualstudio.com/docs/devcontainers/tutorial)
in Visual Studio Code (VSCode).

Lots of people like to develop in Containers to have a clean system.
With this PR, it is possible to work with al-folio without any
installation (except for VS Code, its Remote Dev Container extension,
and Docker).

Once you've opened the `al-folio` repository, a prompt will appear
requesting to reopen the project within a container.

<img width="541" alt="grafik"
src="https://github.com/alshedivat/al-folio/assets/1998723/2963446f-8e42-4df1-9e8c-22691d78b7e4">

Upon doing so, Jekyll will automatically start within the container and
prompt you to open the website's preview sidebar directly in VSCode or
using your Browser. Additionally, it installs extensions for `liquid`
and Prettier (`npx prettier`). Files are formatted using
`al-folios`-prettier settings (`.prettierrc`) to streamline pull request
submission.

Additionally, the performance seems to be much better compared to the
`docker-compose`setup, see #2333.

---------

Co-authored-by: George <31376482+george-gca@users.noreply.github.com>

* New website using al-folio added to README.md (#2345)

* Update work.liquid to show the location of work experience under cv page (#2298)

adding "location" element when location object is added to work
experience. Location icon and the entered value will appear on the CV
page under the work experience section. This feature already exists for
education section, but not for work. The change is made to make the
experiece more consistent.


![image](https://github.com/alshedivat/al-folio/assets/158527033/9b55e139-1078-4655-8a18-56ac43da4d74)

* adding null check to external-posts.rb to avoid parsing failure (#2347)

Adjusting issue #2343 by adding null check.

* Fix docker compose command using the slimmed docker image (#2351)

Fixing the docker command based on `docker compose [-f <arg>...]
[options] [COMMAND] [ARGS...]` format on the
[website](https://docs.docker.com/compose/reference/#command-options-overview-and-help).
Because the old command would give error: `unknown shorthand flag: 'f'
in -f`

* Update CONTRIBUTING.md with prettier information

* Fixed reference to commit in CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update work.liquid to show the location of work experience under cv … (#2349)

…page

same as pull request https://github.com/alshedivat/al-folio/pull/2298
and commit
https://github.com/alshedivat/al-folio/commit/363f277aa82df6e03f172dbcf2f9c1fbe84aca26
for **Volunteer** section

* Feat bib preview (closes #1162) (#2352)

This PR enables to have `abbr` and `preview` for a single publication
(closing #1162).

The following example shows all three possibilities: 1) Preview + Abbr
2) Preview only 3) Abbr only.

<img width="786" alt="grafik"
src="https://github.com/alshedivat/al-folio/assets/1998723/0633f443-b430-4fa6-a0eb-750170a638bd">

* Feat reworked project layout (closing #2246) (#2357)

The current state of project looks a bit unharmonized.

# Vertical layout before:

<img width="834" alt="Bildschirmfoto 2024-04-20 um 18 09 16"
src="https://github.com/alshedivat/al-folio/assets/1998723/55ba0968-bfd9-443f-b58a-eb6723deccfc">

# Vertical layout after:

<img width="834" alt="Bildschirmfoto 2024-04-20 um 18 10 28"
src="https://github.com/alshedivat/al-folio/assets/1998723/9b06b9b8-9228-4dfd-ab10-ca16ce028b1d">

# Horizontal layout before:

<img width="834" alt="Bildschirmfoto 2024-04-20 um 18 08 54"
src="https://github.com/alshedivat/al-folio/assets/1998723/97aaf5b4-1d3e-4a1c-8175-3a97391739b3">

# Horizontal layout after:

<img width="834" alt="Bildschirmfoto 2024-04-20 um 18 07 46"
src="https://github.com/alshedivat/al-folio/assets/1998723/a357fa62-8551-4e92-91d3-3d5d01dbc605">

***

These improvements are not perfect, but to be honest, I have no deep
experiences with bootstrap. Actually, I just read the
[docs](https://getbootstrap.com/docs/4.4/components/card/) and tried my
best.
But I think it looks way better than before.

I'm pretty happy with the vertical layout, but the horizontal could be
improved.
I tried various things to get a better alignment of the image, without
any success.
In theroy, there is e.g. `card-img-top`, but I could not make it work.

I changed the project descriptions to make some of these edge-cases
visible.

Feedback and improvements (especially code) are more than welcome

Closes #2246

* Fixed security issue with download 3rd party plugin (#2364)

Signed-off-by: George Araujo <george.gcac@gmail.com>

* Fixed security issue with download 3rd party plugin (#2365)

Added condition to avoid security issue according to GitHub's dependabot


![image](https://github.com/alshedivat/al-folio/assets/31376482/b470a83a-5038-48be-99a6-1cbf63de57bf)

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>

* add last updated date to posts (#2341)

This PR is related to #2309. I added an optional `last_updated` field.
This new field represents the timestamp for when the post was last
updated. Consequently, the existing `date` metadata should now be
interpreted as the creation date of the post.

The formatting for displaying these dates has been standardized as
follows:

```text
Created: July 11, 2023   |   Last Updated: April 14, 2024
```

For a practical implementation example, please refer to [this
post](https://torydeng.github.io/blog/2023/deploying-server/) on my
website, where I have applied these changes.

---

Any feedback is wellcome.

* Set user agent for lychee (#2368)

See: https://github.com/alshedivat/al-folio/discussions/2366
See: https://github.com/lycheeverse/lychee/issues/1411

* Fix bib preview mobile (#2359)

[Reference](https://github.com/alshedivat/al-folio/pull/2352#issuecomment-2067965077)

I'm not sure if the removal of `max-width: 90vw;` for all images causes
any side issues.
I could at least not find any. But having this properties will produce
unaligned preview sizes.
Help/testing is more than welcome.


# Before
<img width="364" alt="Bildschirmfoto 2024-04-21 um 14 17 51"
src="https://github.com/alshedivat/al-folio/assets/1998723/5ad1a4d7-dfe6-43f8-98ec-eae19dd991c2">

# After

<img width="364" alt="Bildschirmfoto 2024-04-21 um 14 21 53"
src="https://github.com/alshedivat/al-folio/assets/1998723/fb942403-a01f-42ec-95c6-697378ed0d92">
...
<img width="364" alt="Bildschirmfoto 2024-04-21 um 14 22 03"
src="https://github.com/alshedivat/al-folio/assets/1998723/1ddf43d8-98a8-421d-9f64-3352190c4bb8">

* Cleanup after merge from alshedivat/master

* Reformat with prettier

* Fixes bad link

* Modifies linker check excludes

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
Signed-off-by: George Araújo <george.gcac@gmail.com>
Co-authored-by: George <31376482+george-gca@users.noreply.github.com>
Co-authored-by: Maruan <alshedivat@users.noreply.github.com>
Co-authored-by: Loris Fichera <loris.fichera@gmail.com>
Co-authored-by: Amir Pourmand <pourmand1376@gmail.com>
Co-authored-by: github-actions[bot] <actions@github.com>
Co-authored-by: Abu Noman Md. Sakib <33668152+anmspro@users.noreply.github.com>
Co-authored-by: José M. Requena Plens <joreple@upv.es>
Co-authored-by: Mirza Arnaut <mirza.arnaut45@gmail.com>
Co-authored-by: Henry.W <58690749+yahaha-233@users.noreply.github.com>
Co-authored-by: David Krassnig <96623786+DavidKrassnig@users.noreply.github.com>
Co-authored-by: NakuraMino <33564642+NakuraMino@users.noreply.github.com>
Co-authored-by: Daniel Berlyne <104771503+danberlyne@users.noreply.github.com>
Co-authored-by: filippomazzoli <71236181+filippomazzoli@users.noreply.github.com>
Co-authored-by: Alejandro Escontrela <alejandroescontrela@gmail.com>
Co-authored-by: Raffaele Mancuso <raffaele.mancuso4@unibo.it>
Co-authored-by: Kyle Oman <koman@astro.rug.nl>
Co-authored-by: Carlson B <49326130+cbueth@users.noreply.github.com>
Co-authored-by: Decwest <fumiyaonishi1016@gmail.com>
Co-authored-by: Jed Burkat <129440663+jedbur@users.noreply.github.com>
Co-authored-by: gzwongkk <gzwongkk@gmail.com>
Co-authored-by: Johannes Hörner <110042110+johanneshoerner@users.noreply.github.com>
Co-authored-by: Henry Zhang <36073872+Henrium@users.noreply.github.com>
Co-authored-by: Dhruv Kumar <kudhru@users.noreply.github.com>
Co-authored-by: Matteo Barbetti <55536905+mbarbetti@users.noreply.github.com>
Co-authored-by: Nikolai Zhivotenko <niko.zvt@gmail.com>
Co-authored-by: Lance Wilhelm <lance.wilhelm@gmail.com>
Co-authored-by: Martin Bulla <MartinBulla@users.noreply.github.com>
Co-authored-by: Maruan Al-Shedivat <maruan@genesistherapeutics.ai>
Co-authored-by: Yifan Jiang <55911052+YifanJiang233@users.noreply.github.com>
Co-authored-by: Giordano d'Aloisio <giordano.daloisio@gmail.com>
Co-authored-by: Monk <ankit.pal@saama.com>
Co-authored-by: Shubhashis Roy Dipta <iamdipta@gmail.com>
Co-authored-by: Abhinav Mehta <abhinavmehta1993@gmail.com>
Co-authored-by: Antonio Stanziola <stanziola.antonio@gmail.com>
Co-authored-by: Shubhankar <ghltshubh@users.noreply.github.com>
Co-authored-by: Rachel <rstein66@gmail.com>
Co-authored-by: Javkhlantugs <jay.mudgil@gmail.com>
Co-authored-by: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com>
Co-authored-by: Pablo Diego Pereira <pablodiegoo@gmail.com>
Co-authored-by: civita <14911217+civita@users.noreply.github.com>
Co-authored-by: Tianmaru <tianmaru@gmail.com>
Co-authored-by: Dinesh Natesan <AbstractGeek@users.noreply.github.com>
Co-authored-by: Fares Abawi <f.abawi@outlook.com>
Co-authored-by: Alireza Dehghanzadeh <86428901+alerezaaa@users.noreply.github.com>
Co-authored-by: Noah West <68435033+nWestie@users.noreply.github.com>
Co-authored-by: WEI EN TSAI <twe105@gapp.nthu.edu.tw>
Co-authored-by: Sam B <107863539+Sam-Bieberich@users.noreply.github.com>
Co-authored-by: Yifan Jiang <jiangyifan_sh@outlook.com>
Co-authored-by: Afrânio Melo <40374017+afraniomelo@users.noreply.github.com>
Co-authored-by: Jona Ruthardt <50911852+JonaRuthardt@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrew Boyer <asboyer@gmail.com>
Co-authored-by: Ethan Olesinski <47125809+eolesinski@users.noreply.github.com>
Co-authored-by: ZL Asica <40444637+ZL-Asica@users.noreply.github.com>
Co-authored-by: Stavros Kalapothas <stavros@ubinet.gr>
Co-authored-by: Eric Slyman (they/them) <slymane@oregonstate.edu>
Co-authored-by: Furkan Akkurt <71407287+furkanakkurt1335@users.noreply.github.com>
Co-authored-by: Maksym Zub <kroistsmeh@gmail.com>
Co-authored-by: Moritz Scherrmann <mscherrmann@outlook.de>
Co-authored-by: Scherrmann <scherrmann@bwl.uni-muenchen.de>
Co-authored-by: Sasika Amarasinghe <77430135+SasikaA073@users.noreply.github.com>
Co-authored-by: Jake Nabasny, PhD <jnabasny@gmail.com>
Co-authored-by: Jake Nabasny <jake@nabasny.com>
Co-authored-by: Sukka <isukkaw@gmail.com>
Co-authored-by: Sam Adam-Day <me@samadamday.com>
Co-authored-by: George Araujo <george.gcac@gmail.com>
Co-authored-by: Maria Teleki <maria@teleki.net>
Co-authored-by: Jonathan Zea <z_tjalezea@outlook.com>
Co-authored-by: Yi Su <nuance1979@users.noreply.github.com>
Co-authored-by: Yi Su <yi_su@apple.com>
Co-authored-by: Chris Choi <mychoi314@gmail.com>
Co-authored-by: Simmo Saan <simmo.saan@gmail.com>
Co-authored-by: CheariX <CheariX@users.noreply.github.com>
Co-authored-by: Andreas Säuberli <38892775+saeub@users.noreply.github.com>
Co-authored-by: Davide Riccobelli <49486400+riccobelli@users.noreply.github.com>
Co-authored-by: christopherjang1 <158527033+christopherjang1@users.noreply.github.com>
Co-authored-by: Billy Chau <31171483+amztc34283@users.noreply.github.com>
Co-authored-by: Gabriel Zhang <81345419+yuanzzhang@users.noreply.github.com>
Co-authored-by: Tao Deng <3070053397@qq.com>
h2o64 pushed a commit to h2o64/h2o64.github.io that referenced this issue May 4, 2024
Tackled #1329 with [PurgeCSS](https://purgecss.com/).

Being talking with @varuniyer about using
[jekyll-uncss](https://github.com/episource/jekyll-uncss) to reduce css
file sizes by ditching unused classes. This approach have 3 main
problems:

1 - have some limitations as pointed
[here](alshedivat/al-folio#1329 (comment))
2 - last update to
[jekyll-uncss](https://github.com/episource/jekyll-uncss) was about 3
years ago, so it might have a few issues
3 - [uncss](https://github.com/uncss/uncss) haven't seem a new release
in a while, currently [lacking
maintenance](uncss/uncss#459), and using some
deprecated libraries as seem here:

```
npm install -g uncss
npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see request/request#3142
```

I thought about giving PurgeCSS a go, since it has been more [actively
maintaned](https://github.com/FullHuman/purgecss), but
[jekyll-purgecss](https://github.com/mhanberg/jekyll-purgecss) haven't.

For this, I needed to change to use some local libraries instead of
getting them via CDN. The good news is that it is quite effective in
reducing css file sizes. Comparing dir sizes with `du -hs
_site/assets/css/`:

| current | minify | PurgeCSS | PurgeCSS + minify |
| ------- | ------ | -------- | ----------------- |
| 1,1M    | 988K   | 456K     | 420K              |

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
BoAi01 pushed a commit to BoAi01/boai01.github.io that referenced this issue May 7, 2024
Tackled alshedivat#1329 with [PurgeCSS](https://purgecss.com/).

Being talking with @varuniyer about using
[jekyll-uncss](https://github.com/episource/jekyll-uncss) to reduce css
file sizes by ditching unused classes. This approach have 3 main
problems:

1 - have some limitations as pointed
[here](alshedivat#1329 (comment))
2 - last update to
[jekyll-uncss](https://github.com/episource/jekyll-uncss) was about 3
years ago, so it might have a few issues
3 - [uncss](https://github.com/uncss/uncss) haven't seem a new release
in a while, currently [lacking
maintenance](uncss/uncss#459), and using some
deprecated libraries as seem here:

```
npm install -g uncss
npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated w3c-hr-time@1.0.2: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see request/request#3142
```

I thought about giving PurgeCSS a go, since it has been more [actively
maintaned](https://github.com/FullHuman/purgecss), but
[jekyll-purgecss](https://github.com/mhanberg/jekyll-purgecss) haven't.

For this, I needed to change to use some local libraries instead of
getting them via CDN. The good news is that it is quite effective in
reducing css file sizes. Comparing dir sizes with `du -hs
_site/assets/css/`:

| current | minify | PurgeCSS | PurgeCSS + minify |
| ------- | ------ | -------- | ----------------- |
| 1,1M    | 988K   | 456K     | 420K              |

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
neverstale Something that lasts forever
Projects
None yet
Development

No branches or pull requests