Commit Graph

36 Commits

Author SHA1 Message Date
George
cc6284d18f
Improve readme, add site-wide CSP (#3485)
This pull request significantly expands and clarifies the documentation
for the al-folio Jekyll theme, focusing on improved file structure
explanations, enhanced quick reference guides, and the addition of a
comprehensive analytics setup guide. The changes make it easier for
users and contributors to understand the project organization, available
features, and configuration options, especially regarding CV formats,
teaching pages, and analytics integration.

**Key documentation and structure improvements:**

*Expanded file and collection structure:*
- The file structure documentation in
`.github/agents/customize.agent.md` and `.github/agents/docs.agent.md`
now details all major directories, including new and existing
collections such as `_books/`, `_teachings/`, `_scripts/`, `_plugins/`,
and expanded `assets/` subdirectories. It also covers new configuration
and utility files, making it easier for users to locate and understand
the purpose of each file or folder.
[[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66)
[[2]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58)

*Documentation and quick reference enhancements:*
- The quick reference table in `.github/agents/customize.agent.md` has
been updated to include new actions like adding teaching pages, setting
up analytics, improving SEO, and ensuring accessibility, with more
precise documentation links.
- The documentation map now lists all major guides (e.g.,
`QUICKSTART.md`, `INSTALL.md`, `TROUBLESHOOTING.md`, `ACCESSIBILITY.md`,
`ANALYTICS.md`, `SEO.md`), providing a clearer overview of available
resources.
[[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L58-R110)
[[2]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58)

**Feature and configuration documentation updates:**

*CV/resume format guidance:*
- The CV documentation now clarifies that users can maintain both
RenderCV and JSONResume formats simultaneously, with clear instructions
on switching between them and deleting unused files if desired.
[[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L139-R185)
[[2]](diffhunk://#diff-52f2a9488bfe4177d1f1d01120859dad0b3e2d087283ded68f72d47b4f183391L291-R291)

*Teaching pages and new collections:*
- Adds documentation for the new `_teachings/` collection, including
required frontmatter and support for course materials, as well as
updates to enable/disable teaching and books pages via `_config.yml`.
[[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252)
[[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66)

*Analytics integration:*
- Introduces a new `ANALYTICS.md` guide with detailed setup instructions
for Google Analytics, privacy-friendly alternatives (Plausible, Pirsch,
Openpanel, GoAccess), GDPR considerations, and a comparison table to
help users choose the right analytics provider.
- The configuration documentation now references analytics setup and
related configuration options.
[[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252)
[[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L479-R550)

These updates collectively make the documentation more comprehensive,
actionable, and user-friendly for both new and advanced users.

**References:**
[[1]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L24-R66)
[[2]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L58-R110)
[[3]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L139-R185)
[[4]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L180-R252)
[[5]](diffhunk://#diff-15864f2655921f50a97689076e3b8feba0da320463750845be6a76eb2e30bfe4L479-R550)
[[6]](diffhunk://#diff-961a46180ce568ce43c20bf7129dc5e4926a9aa4e0d7bc19926ca5ee3ff95cd0L17-R58)
[[7]](diffhunk://#diff-0967e840631a541bb95e057e1c6d4884274cf56d5a217d7fee2eb7223b6b4c0dR1-R268)
[[8]](diffhunk://#diff-52f2a9488bfe4177d1f1d01120859dad0b3e2d087283ded68f72d47b4f183391L291-R291)

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-28 21:22:27 -03:00
google-labs-jules[bot]
2e308ed606
Optimize Google Scholar Citations Regex Definition (#3449)
💡 **What:** Moved the regex definition `/Cited by (\d+[,\d]*)/` from the
method scope to a class-level constant `CITED_BY_REGEX`.

🎯 **Why:** To improve code cleanliness and avoid potential re-definition
of the regex object in every method call (or loop), adhering to best
practices.

📊 **Measured Improvement:**
* **Baseline:** The regex was defined as a literal inside the `render`
method, which is called for each tag usage.
*   **Optimization:** The regex is now defined once as a constant.
* **Note:** Performance benchmarks were not possible in the current
environment due to missing Ruby runtime. However, this is a standard
Ruby optimization that improves maintainability and theoretically avoids
object allocation overhead in older Ruby versions or complex scenarios.
Modern Ruby optimizes literals well, but the constant approach is
cleaner and DRYer.

---
*PR created automatically by Jules for task
[10688912524063334698](https://jules.google.com/task/10688912524063334698)
started by @alshedivat*

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-01-15 21:41:10 -08:00
George
7249c6ef61
Changed to use cache bust plugin (#3436)
Signed-off-by: George Araújo <george.gcac@gmail.com>
2026-01-14 13:11:53 -03:00
George
70d07e61f3
Changed code to use plugin to handle 3rd party libraries downloads (#3435)
Signed-off-by: George Araújo <george.gcac@gmail.com>
2026-01-14 13:08:21 -03:00
George
81c0556cbf
Added support for default categories and tags for external posts (#3417)
Based on discussion #3393.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>
2026-01-02 20:37:16 -03:00
George
5c207c7775
Avoid crashing when feedjira fails to parse xml feed (#3376)
Fixes #3371

Signed-off-by: George Araújo <george.gcac@gmail.com>
2025-11-21 18:51:54 -03:00
Juan Carlos Niebles
b50db2e713
fixed indexing of external posts (#2983)
This should fix several issues with indexing external posts, including
#1828.

In short, I found that the issue with indexing was that the index
builder was receiving 'empty' documents. To fix that, I'm setting the
document content to be the post content as retrieved from the rss feed
or the text extracted from the external page.

I've tested with various blog sources and it seems to be working as
expected now.
2025-01-26 18:35:13 -08:00
Maruan
f233233e19
Remove internal copy of jekyll-terser (#2945)
# Summary

since https://github.com/RobertoJBeltran/jekyll-terser/pull/1 has been
merged, I'm removing the internal copy jekyll-terser and switching to
https://github.com/RobertoJBeltran/jekyll-terser instead. also,
refactored `Gemfile` a bit.
2025-01-09 04:34:44 -08:00
George
1c27220f59
Security fixes for download-3rd-party.rb 2024-12-29 22:52:32 -03:00
George
8d5448601b
Security fixes for download-3rd-party 2024-12-29 22:42:28 -03:00
George
05eb46ac3f
Replaced jekyll-minifier that uses uglifier by terser (#2571)
Hopefully fixes #2548.

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
Signed-off-by: George Araújo <george.gcac@gmail.com>
2024-12-23 14:00:58 -03:00
George
5bc4703a76
Fix google scholar citations (#2893)
Signed-off-by: George Araújo <george.gcac@gmail.com>
2024-12-12 15:17:49 -03:00
George
cd3f4d6be5
Fixed bug when external posts title is composed of non-ascii chars
Fixed a bug in external-posts.rb when post title is composed of non-ascii chars
2024-08-28 15:22:20 -03:00
Riasat Sheikh
dfc7453ea0
[Feature] InspireHEP social and citation count badge (#2638)
[INSPIRE](http://inspirehep.net/) is a trusted community hub that
facilitates the sharing and discovery of accurate scholarly information
in high energy physics. By integrating the social and citation count
badge, al-folio users within this community will gain significant
benefits.

In continuation of #2634, I am creating this pull request.

## Details

### Social Icon
- Add your INSPIRE author ID in the `config.yml` under `inspirehep_id`.

### Citation Count
- Enable this feature by setting `inspirehep` to `true` under
`enable_publication_badges` in your `config.yml` file.
- In your bibliography file (e.g., `papers.bib`), add `inspirehep_id =
{the literature's recid}` under the citation of a literature source.
2024-08-19 00:03:01 -03:00
ariseus
a25df79188
Support superscripts in bibtex author names (#2512)
Implements #2511
2024-06-19 14:34:54 -03:00
Maruan
d004837e60
Enable specifying explicit list of external posts to display (#2059)
- updates `external-posts.rb` plugin, allowing the user to specify an
explicit lists of urls in `_config.yml` that are then displayed in the
blog feed as external posts
- 99% of the code in this change is written by gpt-4:
https://chat.openai.com/share/24432d24-36a7-4d6f-a5c0-d7e5142f68cd
2024-05-27 21:15:44 -03:00
George
e954d7726b
Fix offline leaflet (#2420)
Fixes #2419 by downloading leaflet images. Also changed the path where
the libraries are downloaded to avoid not downloading files with same
name.

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
2024-05-15 17:56:00 -03:00
George
06ca08cbaf
Fixed security issue with download 3rd party plugin (#2365)
Added condition to avoid security issue according to GitHub's dependabot


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

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
2024-04-23 11:29:15 -03:00
George
b315315f9b
Fixed security issue with download 3rd party plugin (#2364)
Signed-off-by: George Araujo <george.gcac@gmail.com>
2024-04-23 10:59:33 -03:00
Billy Chau
9ab7391381
adding null check to external-posts.rb to avoid parsing failure (#2347)
Adjusting issue #2343 by adding null check.
2024-04-16 14:32:44 -03:00
George
08d562a104
Offline mode (closes #1181) (#2312)
Created a plugin to tackle #1181. Currently have an issue with tikzjax
since it imports some wasm file from its javascript. The rest should
work as expected.

---------

Signed-off-by: George Araujo <george.gcac@gmail.com>
2024-04-08 14:51:28 -03:00
George
b4e423286b
Fixed bug when number has , on scholar citations 2024-02-13 13:56:13 -03:00
George
a0bcaaf13f
Added support for google scholar citations (#2193)
Closes #1809, but there are caveats:
1 - it only works at build time, which means it won't update the numbers
unless you build your site again
2 - Google might block the request if it receives lots of it, failing
the whole process.

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

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

And this when it fails:


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

Signed-off-by: George Araujo <george.gcac@gmail.com>
2024-02-13 13:47:42 -03:00
George
60a09ed25c
Normalizing coauthor names before search (#2057)
Signed-off-by: George Araújo <george.gcac@gmail.com>
2024-01-09 14:13:33 -03:00
gzwongkk
53ad434ad2
Fix regex to limit keyword scope to fields (#1629)
improved version of the original fix contributed by @paberr in #1429
2023-09-17 14:19:45 -04:00
George
312cbdb4c5
Cache busting for _sass and individual files (#1557)
Addressing #1395 but with a different solution from #1478, using
semantic versioning based on implementation found
[here](https://distresssignal.org/busting-css-cache-with-jekyll-md5-hash).

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

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

Signed-off-by: George Araujo <george.gcac@gmail.com>
2023-07-30 00:14:23 -03:00
George
ab2f72baaa
Added support for jupyter notebooks #417 (#1511)
Implemented #417.

---------

Signed-off-by: George Araújo <george.gcac@gmail.com>
Co-authored-by: Amir Pourmand <pourmand1376@gmail.com>
2023-07-05 12:43:59 -03:00
gaspardbb
8aaf0df552
Implemented details tag for distill blog (#1321) 2023-04-08 09:43:36 -04:00
Rohan Deb Sarkar
503bfc235a
Add jekyll-minifier (#668)
* Remove obsolete plugins

* Add `jekyll-minifier`

* Add `JEKYLL_ENV=production`
2022-05-12 14:46:01 -04:00
Tønnes Nygaard
c4e170a545
Added bibtex filter to hide custom bibtex keywords from bib file output (#652) 2022-05-01 11:38:39 -04:00
Maruan
42abefc3f1
Add support for external blog posts (#647)
* Add support for external blog posts

* Cosmetic fixes
2022-04-24 10:09:21 -04:00
José M. Requena Plens
b950fc3fdb
Better SEO, OpenGraph, schema.org and clean generated code (#481) 2021-12-31 11:46:42 -05:00
Maruan Al-Shedivat
5865c9f246 Fix issues with fonts and urls. 2016-07-05 15:27:53 -04:00
Maruan Al-Shedivat
ed63169e50 Update the theme with a neat publications page. 2016-07-05 02:38:32 -04:00
Maruan Al-Shedivat
4b73664d56 Add the news collection with emoji support. Restructure assets. 2015-10-22 18:09:12 -04:00
Maruan Al-Shedivat
1e8dff52bc Basic modifications of the *folio theme 2015-10-19 17:38:04 -04:00