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

Improve Mobile Performance #1329

Open
varuniyer opened this issue Apr 12, 2023 · 24 comments
Open

Improve Mobile Performance #1329

varuniyer opened this issue Apr 12, 2023 · 24 comments

Comments

@varuniyer
Copy link
Contributor

Is your feature request related to a problem? Please describe.
It would be nice if the performance score from Pagespeed Insights was higher for mobile devices. Even though the desktop performance score is 93, the mobile performance score is only 54.

Describe the solution you'd like
Looking at the Pagespeed advice, it seems the stylesheets are blocking render time on mobile. There may be a way to reduce the performance drop this has on mobile.

Describe alternatives you've considered
Alternative academic websites like the Hugo templates have better performance scores on mobile.

@varuniyer
Copy link
Contributor Author

I found I was able to improve the performance number by using https://purifycss.online/ to remove unused CSS from large stylesheets for things like material design bootstrap. I also moved all these assets previously fetched from jsdelivr to my repo. This brings the mobile performance up, but it's not consistently hitting 90+ on pagespeed.web.dev. I found the JS associated with some of these stylesheets like mdb.min.js also could be shrunken down since most functions there aren't being used. However, there are no tools like purifycss that I can use to remove these unused functions. Any tips on how one might go about removing the unused functions?

@varuniyer
Copy link
Contributor Author

I'd like to update this saying I've managed to boost my mobile Pagespeed Insights score significantly by using the UnCSS CLI to generate smaller stylesheets that I store locally. I also improved the score by commenting out the script tag for mdb.min.js without experiencing any loss of usability. However, this may not be feasible for all al-folio users.

@george-gca
Copy link
Collaborator

Maybe this solution could be incorporated. What do you think @alshedivat @rohandebsarkar @pourmand1376?

I found I was able to improve the performance number by using https://purifycss.online/ to remove unused CSS from large stylesheets for things like material design bootstrap. I also moved all these assets previously fetched from jsdelivr to my repo. This brings the mobile performance up, but it's not consistently hitting 90+ on pagespeed.web.dev. I found the JS associated with some of these stylesheets like mdb.min.js also could be shrunken down since most functions there aren't being used. However, there are no tools like purifycss that I can use to remove these unused functions. Any tips on how one might go about removing the unused functions?

About mdb, once I removed and got some weird layouts, but don't exactly remember where.

@varuniyer
Copy link
Contributor Author

varuniyer commented Apr 25, 2023

jekyll-uncss may help incorporate performance improvements from removing unused CSS. As for removing mdb, I only removed mdb.min.js so the necessary CSS is still there.

@rohandebsarkar
Copy link
Collaborator

While updating bootstrap dependency in #741, I felt that mdb might not be required by many users considering its performance, so I added an option to disable it in the config file.

@rohandebsarkar
Copy link
Collaborator

I don't think, using any tools to to remove unused CSS can be much helpful. This is because we may not require certain CSS and JS now but may require them later. In that case it will be a burden. Moreover different pages require different bits of CSS and JS, for removing unused bits we would have to scan through all the pages otherwise some pages may fail.

@varuniyer
Copy link
Contributor Author

varuniyer commented Apr 25, 2023

Yes, this is what makes jekyll-uncss desirable. Every user would have Jekyll generate different CSS files that reflect their usage even when starting from the same set of stylesheets.

@george-gca
Copy link
Collaborator

I have been trying to use both jekyll-uncss and uncss, but to no avail. @varuniyer do you have experience with this?

@varuniyer
Copy link
Contributor Author

I've used the uncss CLI to reduce the file sizes. I haven't used jekyll-uncss but I could look into a way to incorporate that if other maintainers think it would be worthwhile.

@george-gca
Copy link
Collaborator

I believe this is worthwhile. Also, how much did the score went up for mobile?

@varuniyer
Copy link
Contributor Author

My website's mobile performance score went up by around 30 points when using UnCSS-generated stylesheets. Now it's consistently 95+. However, I should mention that because UnCSS generates different stylesheets, I had to disable the hash-based integrity checking that al-folio currently uses. Also, jekyll-uncss assumes that stylesheets are loaded locally rather than from jsdelivr. Is this okay?

@george-gca
Copy link
Collaborator

I think so. Is there a way to do this dinamically? I mean, download the correct version of the css and use the hash to check for its integrity, then only then do the uncss with it?

@varuniyer
Copy link
Contributor Author

It should be possible to modify the jekyll-uncss source code to use a stylesheet URL and hash instead of a file name. You'd then add those arguments in the part of _config.yml where you use uncss. However, we would then want to conditionally disable the integrity checks in _includes/head.html when uncss is being used. I'm pretty sure this is possible. In that case, should I work on implementing this functionality?

@george-gca
Copy link
Collaborator

No, it seems too much trouble. This would need PRs being submitted for the plug-in. Also, since the libraries versions are kind of "hard coded", I believe there is no problem in downloading and making them part of the repo. What do you think @alshedivat, @rohandebsarkar, @pourmand1376?

@george-gca
Copy link
Collaborator

@varuniyer if you can, create a branch on your repo and share it here. Worst case scenario some users would apply it to their own repo (me included).

@varuniyer
Copy link
Contributor Author

varuniyer commented May 13, 2023

I have a mostly working branch here. To use it, you'd need to modify the build script to run npm install -g uncss and export JEKYLL_ENV=production (if you don't already).

Limitations are as follows:

  • It does not work with site.baseurl because uncss assumes JS files are locally stored in the directory specified by the src attribute. For example, if site.baseurl is set to al-folio , it'll check _site/al-folio/assets/css instead of _site/assets/css.
  • It does not work when considering assets/plotly/demo.html. To get around this, you can change the list of considered HTML files in the uncss section of _config.yml. Admittedly, this would be tedious if you had tens or hundreds of blog posts.
  • I had to comment out a couple lines of JS referring to localStorage to get uncss to work. This isn't a huge deal imo since localStorage is only used to store the user's chosen theme.

@george-gca
Copy link
Collaborator

I believe in the 1st limitation, you meant

... instead of _site/assets/css

right?

Regarding the second one, I believe adding a glob to check for html in the assets directory will work.

uncss:
  stylesheets:            # a list of stylesheets to be processed; mandatory
    - /assets/css/*.css
  files:                  # html files to consider, globs are supported; default: **/*.html
    - "*.html"
    - "**/*.html"
    - "/assets/**/*.html"

I will give it a try later.

@varuniyer
Copy link
Contributor Author

Yeah, in the first limitation that's what I meant. I've edited it to reflect that. For the second limitation, I don't think that would work since a user may need to include HTML files from a large directory except for 1-2 that use Plotly. Since uncss has no way of ignoring specified HTML files, they'd have to list every single file in that large directory in the uncss section of _config.yml.

@george-gca
Copy link
Collaborator

Ah, now I get it, it doesn't work with plotly demo. Maybe this is a thing the user might want to split in different directories while adding to uncss more carefully.

@varuniyer
Copy link
Contributor Author

Yeah, it would be easy to leave them out if blogs with plotly went in a separate directory within _site.

george-gca added a commit that referenced this issue Sep 28, 2023
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](#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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
antchristou pushed a commit to antchristou/antchristou.github.io that referenced this issue Nov 20, 2023
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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
hgchen pushed a commit to hgchen/hgchen.github.io that referenced this issue Dec 2, 2023
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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
smeznar pushed a commit to smeznar/smeznar.github.io that referenced this issue Dec 9, 2023
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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
michakinyemi pushed a commit to michakinyemi/michakinyemi.github.io that referenced this issue Dec 15, 2023
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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
adityarauniyar pushed a commit to adityarauniyar/adityarauniyar.github.io that referenced this issue Jan 17, 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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
@george-gca
Copy link
Collaborator

Since a lot has already been made to improve performance on mobile (currently we stand at 85 points) I don't know if we should close this issue.

@varuniyer
Copy link
Contributor Author

An option to disable CSS/JS files for mdb in _config.yml would be helpful for many sites (which don't need them).

@george-gca
Copy link
Collaborator

What is it used for actually? When I tried to disable it ages ago it just changed the whole overall look of the site, that's why I left it there. But for sites that don't need them you can simply comment or delete it from the repo.

@varuniyer
Copy link
Contributor Author

Makes sense, also most academics would probably be satisfied by these PageSpeed numbers anyways. I'm not sure how hard it would be to remove/replace mdb but at one point I got a minimal (no blog) site to work without it.

chwag added a commit to chwag/chwag.github.io that referenced this issue Mar 7, 2024
* Implemented latest posts on about page (#1307)

Adresses #340

---------

Signed-off-by: George Araújo <[email protected]>

* Implemented details tag for distill blog  (#1321)

* Fix publication button spacing (#1322)

* docs: add george-gca as a contributor for code (#1323)

* Update README.md

* Add star to academic portfolios (#1333)

* Added support for table of contents in blog posts (#1278)

![image](https://user-images.githubusercontent.com/31376482/226411600-e5619108-3842-4c44-b582-61fcc94a1b0c.png)

---------

Signed-off-by: George Araújo <[email protected]>

* Fix typo (#1356)

* added one more researcher (#1353)

Added my own website to the "stars" section

* Fix copy code button position (#1348)

Fix issue #1303 by adding a code wrapper outside the code block. 
Ref:
https://stackoverflow.com/questions/60771472/position-a-button-such-that-it-wont-scroll-with-contents

* Scopus integration (#1364)

Fixes #1362

* Removed blog header-bar when title and description are empty (#1370)

When blog title and description are empty, go from this


![image](https://user-images.githubusercontent.com/31376482/234630799-f4c2cd46-7ad0-4d45-a0f6-2badcf0da558.png)

to this


![image](https://user-images.githubusercontent.com/31376482/234630683-f11c8a88-438a-4db3-974e-ba9184d5516f.png)

Signed-off-by: George Araujo <[email protected]>

* Increased allowed max size of news and latest posts in about (#1369)

Fixed size of news and latest posts in about page when visualizing in
mobile.

Signed-off-by: George Araujo <[email protected]>

* Fixed hard-coded bib files in templates (#1373)

The bibliography filename `papers.bib` is hard coded in templates, and
the equivalent setting in `_config.yml` is not used anywhere. So
changing the bib filename in `_config.yml` won't have any effects.

This PR replaces hard-coded filenames with the value from `_config.yml`.

* Fixed bug when using latex in title and description (#1361)

Fixes #1252.

Signed-off-by: George Araujo <[email protected]>

* Fixed news limit (#1359)

Fixes #1346.

---------

Signed-off-by: George Araujo <[email protected]>
Co-authored-by: Yifan Jiang <[email protected]>
Co-authored-by: Raffaele Mancuso <[email protected]>
Co-authored-by: Yue Gao <[email protected]>

* Toc sidebar (#1366)

Implemented #966.


![image](https://user-images.githubusercontent.com/31376482/234411523-b02087d9-a437-4f77-9f54-de5eef122439.png)

---------

Signed-off-by: George Araujo <[email protected]>

* Toc sidebar color fix (#1375)

Fixed color and increased font size of toc sidebar

---------

Signed-off-by: George Araujo <[email protected]>

* Reduced a little font-size in toc sidebar (#1376)

Signed-off-by: George Araujo <[email protected]>

* added star to academic examples (#1377)

* Added support for Bootstrap table (#1283)

Added support for [Bootstrap Table](https://bootstrap-table.com/).
Haven't checked the impact on website loading, but I believe [this kind
of table](https://examples.bootstrap-table.com/#welcomes/from-data.html)
is way more useful for blog posts and projects pages.

* add star to academic examples (#1380)

* Add an academic example  (#1381)

https://bajinsheng.github.io/

* Added thumbnail support for blog posts (#1371)

Implemented #425 based on given code.


![image](https://user-images.githubusercontent.com/31376482/234644266-07c1aebd-6a83-482f-8ac2-846fe5c0653d.png)

---------

Signed-off-by: George Araujo <[email protected]>

* Moved bootstrap table css to head.html (#1387)

Signed-off-by: George Araujo <[email protected]>

* Fixed bootstrap table css (#1388)

Fixed bootstrap table css that is being overwritten by mdb css

Signed-off-by: George Araujo <[email protected]>

* Update README.md (#1389)

Added academic personal website

* Including Lattes CV in Socials (#1404)

Resubmitting the PR #1383

* README upgrade (#1394)

* Fix typo ; Update _config.yml (#1418)

Co-authored-by: George <[email protected]>

* Fixed typo in blog post (#1411)

* add star to academic examples (#1423)

* Fix table color (#1424)

Fix table color when dark mode is default.

---------

Signed-off-by: George Araujo <[email protected]>

* Custom blockquotes (#1419)

Added some custom blockquotes `tip`, `warning`, and `danger` as seen in
[jekyll-gitbook](https://sighingnow.github.io/jekyll-gitbook/jekyll/2022-06-30-tips_warnings_dangers.html),
and a blog post showcasing them.

Light look:

![image](https://github.com/alshedivat/al-folio/assets/31376482/8441bd56-a1a6-41c0-951f-2a2efa20c16c)

Dark look:

![image](https://github.com/alshedivat/al-folio/assets/31376482/a916218a-176e-40d0-ad87-6acc9eedf8e3)

---------

Signed-off-by: George Araujo <[email protected]>

* Audio and Video support (#1367)

Since #1253 has been hanging there for a while, I decided to part from
it and add audio and video support.

---------

Signed-off-by: George Araujo <[email protected]>

* add academic personal webpage example (#1431)

Hello, I'd appreciate it if you could consider including my academic
personal webpage as an example. Thank you.

* add star to academic examples (#1439)

* Added star for samadamday.com in the README (#1443)

* Update README personal page stars (#1467)

* Update ruby to 3.2.2 in deploy.yml (#1459)

* Add star to academic examples (#1445)

* Fixes "General Information" section of CV in dark mode (#1432)

When the dark mode is default, or if you set the page to dark mode and
then refresh, the content in "General Information" can't be seen.
This PR fixes the problem.

* Make latest post redirect if the blog post redirects (#1451)

Fixes #1450, and the behavior of the site with this "new" code is shown
in the Expected behavior screenshots there.

I copy-pasted the redirect logic from `blog/index.html` into
`_includes/latest_posts.html`, with minor name changes.

I also cleaned up a line in `blog/index.html`.

* update fontawesome version (#1485)

* correct spotify title (#1484)

* add functionality to display categories, like tags, in blog home page (#1482)

Added the functionality to display categories on the front page of the
blog, just like tags.

* fixes #1497 (#1505)

* Removed need for years in bibliography page (#1500)

Implementing #1390.

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>
Co-authored-by: Maruan <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Amir Pourmand <[email protected]>

* Added support for jupyter dark mode (#1538)

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Publication image zoom (#1554)

Fixes #1552

---------

Signed-off-by: George Araujo <[email protected]>

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

Implemented #1193

---------

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Added jupyter to README (#1637)

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 [email protected]: 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 [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>

* 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 <[email protected]>
Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* Added description to profiles page (#1777)

Added support for description in profiles page

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* Fixes #1584 (#1971)

Removed link to blog when showing years in news

Signed-off-by: George Araujo <[email protected]>

* Update cv.md (#1973)

Fix path typo in description

* Implemented support for tikzjax (#1990)

Implemented #1976.

Signed-off-by: George Araújo <[email protected]>

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

Fixes #1831

Signed-off-by: George Araújo <[email protected]>

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

Fixes #1888

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Changed mermaid support in template (#1992)

Fix #1609

---------

Signed-off-by: George Araujo <[email protected]>
Co-authored-by: Maruan Al-Shedivat <[email protected]>

* 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 <[email protected]>

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

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* Add direct link to `use this template`

* Normalizing coauthor names before search (#2057)

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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/[email protected]/dist/bootstrap-table.min.css`.

---------

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Downgrade ruby version (#2098)

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* Update prettier-on-pr.yml permissions

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

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

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

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Workflow fix (#2136)

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

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

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Delete reports directory

---------

Signed-off-by: George Araújo <[email protected]>
Signed-off-by: George Araujo <[email protected]>
Co-authored-by: George <[email protected]>
Co-authored-by: gaspardbb <[email protected]>
Co-authored-by: Maruan <[email protected]>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Varun Iyer <[email protected]>
Co-authored-by: Furkan Akkurt <[email protected]>
Co-authored-by: Yuki M. Asano <[email protected]>
Co-authored-by: Yifan Jiang <[email protected]>
Co-authored-by: Raffaele Mancuso <[email protected]>
Co-authored-by: Yue Gao <[email protected]>
Co-authored-by: Hashe037 <[email protected]>
Co-authored-by: Wang Boyu <[email protected]>
Co-authored-by: Jinsheng Ba <[email protected]>
Co-authored-by: sfanzon <[email protected]>
Co-authored-by: CDN (Diego) Damasceno <[email protected]>
Co-authored-by: danickblouin <[email protected]>
Co-authored-by: Qingqing Chen <[email protected]>
Co-authored-by: Kai Yao <[email protected]>
Co-authored-by: Lily (Xianling) Zhang <[email protected]>
Co-authored-by: Sam Adam-Day <[email protected]>
Co-authored-by: Fan Pu Zeng <[email protected]>
Co-authored-by: ebohnenb <[email protected]>
Co-authored-by: Lucas Emanuel Resck <[email protected]>
Co-authored-by: Samuel Chin <[email protected]>
Co-authored-by: Jesse Wei <[email protected]>
Co-authored-by: Juan Carlos Niebles <[email protected]>
Co-authored-by: Loris Fichera <[email protected]>
Co-authored-by: Amir Pourmand <[email protected]>
Co-authored-by: github-actions[bot] <[email protected]>
Co-authored-by: Abu Noman Md. Sakib <[email protected]>
Co-authored-by: José M. Requena Plens <[email protected]>
Co-authored-by: Mirza Arnaut <[email protected]>
Co-authored-by: Henry.W <[email protected]>
Co-authored-by: David Krassnig <[email protected]>
Co-authored-by: NakuraMino <[email protected]>
Co-authored-by: Daniel Berlyne <[email protected]>
Co-authored-by: filippomazzoli <[email protected]>
Co-authored-by: Alejandro Escontrela <[email protected]>
Co-authored-by: Raffaele Mancuso <[email protected]>
Co-authored-by: Kyle Oman <[email protected]>
Co-authored-by: Carlson B <[email protected]>
Co-authored-by: Decwest <[email protected]>
Co-authored-by: Jed Burkat <[email protected]>
Co-authored-by: gzwongkk <[email protected]>
Co-authored-by: Johannes Hörner <[email protected]>
Co-authored-by: Henry Zhang <[email protected]>
Co-authored-by: Dhruv Kumar <[email protected]>
Co-authored-by: Matteo Barbetti <[email protected]>
Co-authored-by: Nikolai Zhivotenko <[email protected]>
Co-authored-by: Lance Wilhelm <[email protected]>
Co-authored-by: Martin Bulla <[email protected]>
Co-authored-by: Maruan Al-Shedivat <[email protected]>
Co-authored-by: Giordano d'Aloisio <[email protected]>
Co-authored-by: Monk <[email protected]>
Co-authored-by: Shubhashis Roy Dipta <[email protected]>
Co-authored-by: Abhinav Mehta <[email protected]>
Co-authored-by: Antonio Stanziola <[email protected]>
Co-authored-by: Shubhankar <[email protected]>
Co-authored-by: Rachel <[email protected]>
Co-authored-by: Javkhlantugs <[email protected]>
Co-authored-by: Yao Xiao <[email protected]>
Co-authored-by: Pablo Diego Pereira <[email protected]>
Co-authored-by: civita <[email protected]>
Co-authored-by: Tianmaru <[email protected]>
Co-authored-by: Dinesh Natesan <[email protected]>
Co-authored-by: Fares Abawi <[email protected]>
Co-authored-by: Alireza Dehghanzadeh <[email protected]>
Co-authored-by: Noah West <[email protected]>
Co-authored-by: WEI EN TSAI <[email protected]>
Co-authored-by: Sam B <[email protected]>
Co-authored-by: Yifan Jiang <[email protected]>
Co-authored-by: Afrânio Melo <[email protected]>
Co-authored-by: Jona Ruthardt <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrew Boyer <[email protected]>
Co-authored-by: Ethan Olesinski <[email protected]>
Co-authored-by: ZL Asica <[email protected]>
Co-authored-by: Stavros Kalapothas <[email protected]>
Co-authored-by: Eric Slyman (they/them) <[email protected]>
Co-authored-by: Maksym Zub <[email protected]>
Co-authored-by: Moritz Scherrmann <[email protected]>
Co-authored-by: Scherrmann <[email protected]>
Co-authored-by: Sasika Amarasinghe <[email protected]>
Co-authored-by: Jake Nabasny, PhD <[email protected]>
Co-authored-by: Jake Nabasny <[email protected]>
Co-authored-by: Sukka <[email protected]>
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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
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 <[email protected]>
Co-authored-by: Maruan <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Co-authored-by: Amir Pourmand <[email protected]>

* Added support for jupyter dark mode (#1538)

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Publication image zoom (#1554)

Fixes #1552

---------

Signed-off-by: George Araujo <[email protected]>

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

Implemented #1193

---------

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Added jupyter to README (#1637)

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 [email protected]: 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 [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>

* 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 <[email protected]>
Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* Added description to profiles page (#1777)

Added support for description in profiles page

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* Fixes #1584 (#1971)

Removed link to blog when showing years in news

Signed-off-by: George Araujo <[email protected]>

* Update cv.md (#1973)

Fix path typo in description

* Implemented support for tikzjax (#1990)

Implemented #1976.

Signed-off-by: George Araújo <[email protected]>

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

Fixes #1831

Signed-off-by: George Araújo <[email protected]>

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

Fixes #1888

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Changed mermaid support in template (#1992)

Fix #1609

---------

Signed-off-by: George Araujo <[email protected]>
Co-authored-by: Maruan Al-Shedivat <[email protected]>

* 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 <[email protected]>

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

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>

* Add direct link to `use this template`

* Normalizing coauthor names before search (#2057)

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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/[email protected]/dist/bootstrap-table.min.css`.

---------

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Downgrade ruby version (#2098)

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* Update prettier-on-pr.yml permissions

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

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

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

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Workflow fix (#2136)

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

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

Signed-off-by: George Araújo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* Delete reports directory

* Exclude more files from site (#2257)

Signed-off-by: George Araujo <[email protected]>

* 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 <[email protected]>
Co-authored-by: George Araujo <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>

* 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 <[email protected]>
Signed-off-by: George Araújo <[email protected]>
Co-authored-by: George <[email protected]>
Co-authored-by: Maruan <[email protected]>
Co-authored-by: Loris Fichera <[email protected]>
Co-authored-by: Amir Pourmand <[email protected]>
Co-authored-by: github-actions[bot] <[email protected]>
Co-authored-by: Abu Noman Md. Sakib <[email protected]>
Co-authored-by: José M. Requena Plens <[email protected]>
Co-authored-by: Mirza Arnaut <[email protected]>
Co-authored-by: Henry.W <[email protected]>
Co-authored-by: David Krassnig <[email protected]>
Co-authored-by: NakuraMino <[email protected]>
Co-authored-by: Daniel Berlyne <[email protected]>
Co-authored-by: filippomazzoli <[email protected]>
Co-authored-by: Alejandro Escontrela <[email protected]>
Co-authored-by: Raffaele Mancuso <[email protected]>
Co-authored-by: Kyle Oman <[email protected]>
Co-authored-by: Carlson B <[email protected]>
Co-authored-by: Decwest <[email protected]>
Co-authored-by: Jed Burkat <[email protected]>
Co-authored-by: gzwongkk <[email protected]>
Co-authored-by: Johannes Hörner <[email protected]>
Co-authored-by: Henry Zhang <[email protected]>
Co-authored-by: Dhruv Kumar <[email protected]>
Co-authored-by: Matteo Barbetti <[email protected]>
Co-authored-by: Nikolai Zhivotenko <[email protected]>
Co-authored-by: Lance Wilhelm <[email protected]>
Co-authored-by: Martin Bulla <[email protected]>
Co-authored-by: Maruan Al-Shedivat <[email protected]>
Co-authored-by: Yifan Jiang <[email protected]>
Co-authored-by: Giordano d'Aloisio <[email protected]>
Co-authored-by: Monk <[email protected]>
Co-authored-by: Shubhashis Roy Dipta <[email protected]>
Co-authored-by: Abhinav Mehta <[email protected]>
Co-authored-by: Antonio Stanziola <[email protected]>
Co-authored-by: Shubhankar <[email protected]>
Co-authored-by: Rachel <[email protected]>
Co-authored-by: Javkhlantugs <[email protected]>
Co-authored-by: Yao Xiao <[email protected]>
Co-authored-by: Pablo Diego Pereira <[email protected]>
Co-authored-by: civita <[email protected]>
Co-authored-by: Tianmaru <[email protected]>
Co-authored-by: Dinesh Natesan <[email protected]>
Co-authored-by: Fares Abawi <[email protected]>
Co-authored-by: Alireza Dehghanzadeh <[email protected]>
Co-authored-by: Noah West <[email protected]>
Co-authored-by: WEI EN TSAI <[email protected]>
Co-authored-by: Sam B <[email protected]>
Co-authored-by: Yifan Jiang <[email protected]>
Co-authored-by: Afrânio Melo <[email protected]>
Co-authored-by: Jona Ruthardt <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrew Boyer <[email protected]>
Co-authored-by: Ethan Olesinski <[email protected]>
Co-authored-by: ZL Asica <[email protected]>
Co-authored-by: Stavros Kalapothas <[email protected]>
Co-authored-by: Eric Slyman (they/them) <[email protected]>
Co-authored-by: Furkan Akkurt <[email protected]>
Co-authored-by: Maksym Zub <[email protected]>
Co-authored-by: Moritz Scherrmann <[email protected]>
Co-authored-by: Scherrmann <[email protected]>
Co-authored-by: Sasika Amarasinghe <[email protected]>
Co-authored-by: Jake Nabasny, PhD <[email protected]>
Co-authored-by: Jake Nabasny <[email protected]>
Co-authored-by: Sukka <[email protected]>
Co-authored-by: Sam Adam-Day <[email protected]>
Co-authored-by: George Araujo <[email protected]>
Co-authored-by: Maria Teleki <[email protected]>
Co-authored-by: Jonathan Zea <[email protected]>
Co-authored-by: Yi Su <[email protected]>
Co-authored-by: Yi Su <[email protected]>
Co-authored-by: Chris Choi <[email protected]>
Co-authored-by: Simmo Saan <[email protected]>
Co-authored-by: CheariX <[email protected]>
Co-authored-by: Andreas Säuberli <[email protected]>
Co-authored-by: Davide Riccobelli <[email protected]>
Co-authored-by: christopherjang1 <[email protected]>
Co-authored-by: Billy Chau <[email protected]>
Co-authored-by: Gabriel Zhang <[email protected]>
Co-authored-by: Tao Deng <[email protected]>
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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
wangmagg pushed a commit to wangmagg/wangmagg.github.io that referenced this issue May 14, 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 [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Use your platform's native performance.now() and performance.timeOrigin.
npm WARN deprecated [email protected]: 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 [email protected]: 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 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants