diff --git a/.all-contributorsrc b/.all-contributorsrc index 99b43da468647..1e358e5623148 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -15,14 +15,14 @@ "login": "alshedivat", "name": "Maruan", "avatar_url": "https://avatars.githubusercontent.com/u/2126561?v=4", - "profile": "http://maruan.alshedivat.com", + "profile": "https://maruan.alshedivat.com", "contributions": ["design", "code"] }, { "login": "rohandebsarkar", "name": "Rohan Deb Sarkar", "avatar_url": "https://avatars.githubusercontent.com/u/50144004?v=4", - "profile": "http://rohandebsarkar.github.io", + "profile": "https://rohandebsarkar.github.io", "contributions": ["code"] }, { diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000000..e511a1bfad2f0 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,7 @@ +FROM mcr.microsoft.com/devcontainers/jekyll + +# Fix: Remove the broken Yarn repository from the apt sources. +# This prevents 'apt-get update' from failing due to the missing GPG key. +# (Yarn is already provided by the dev container features/nvm, so this system repo is unnecessary) +# See issue #3487 +RUN rm -f /etc/apt/sources.list.d/yarn.list diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a8f6d60603a98..041b0e9df5eac 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,7 +2,10 @@ // README at: https://github.com/devcontainers/templates/tree/main/src/jekyll { "name": "Jekyll", - "image": "mcr.microsoft.com/devcontainers/jekyll", + // Using a Dockerfile to fix the broken Yarn repository. See issue #3487. + "build": { + "dockerfile": "Dockerfile" + }, // Features to add to the dev container. More info: https://containers.dev/features. "features": { @@ -10,7 +13,6 @@ "packages": "build-essential,imagemagick,inotify-tools,jupyter-nbconvert,procps,ruby-full,zlib1g-dev" }, "ghcr.io/devcontainers-extra/features/prettier:1.0.2": {} - // "ghcr.io/devcontainers-contrib/features/prettier:1": {} }, // Optionally: run jekyll serve automatically on container entering using the Docker entrypoint diff --git a/.gemini/settings.json b/.gemini/settings.json new file mode 100644 index 0000000000000..7f3c26c777e99 --- /dev/null +++ b/.gemini/settings.json @@ -0,0 +1,15 @@ +{ + "context": { + "fileName": [ + "AGENTS.md", + ".github/copilot-instructions.md", + ".github/agents/customize.agent.md", + ".github/agents/docs.agent.md", + ".github/instructions/**/*.md", + "CUSTOMIZE.md", + "INSTALL.md", + "TROUBLESHOOTING.md", + "QUICKSTART.md" + ] + } +} diff --git a/.github/GIT_WORKFLOW.md b/.github/GIT_WORKFLOW.md new file mode 100644 index 0000000000000..674db4a7a3393 --- /dev/null +++ b/.github/GIT_WORKFLOW.md @@ -0,0 +1,47 @@ +# Git Workflow + +This document outlines the conventions for using Git and writing commit messages in this project. + +## Commit Message Format + +All commit messages should follow this format: + +``` +: + + +``` + +**Types:** + +- `feat`: A new feature +- `fix`: A bug fix +- `docs`: Documentation only changes +- `style`: Changes that do not affect the meaning of the code (white-space, formatting, etc.) +- `config`: Changes to configuration files +- `chore`: Changes to the build process or auxiliary tools and libraries + +**Examples:** + +``` +feat: Add dark mode toggle button to header +fix: Correct baseurl in project site configuration +docs: Update INSTALL.md with Docker troubleshooting +style: Format all Liquid templates with Prettier +config: Enable blog section in _config.yml +chore: Update Jekyll dependencies with bundle update --all +``` + +## Staging Changes + +**Always `git add` files explicitly.** Do not stage everything with `git add .` unless you are certain of what's being committed. Check `git status` first to review your changes. + +## What NOT to Commit + +**Always obey the project's [`.gitignore`](../.gitignore) file.** It prevents the accidental commit of: + +- Build outputs (`_site/`, `.jekyll-cache/`) +- Dependencies (`node_modules/`, `vendor/`) +- OS-specific files (`.DS_store`) +- Editor temporary files (`.idea/`, `.swp`, `.swo`) +- Secrets and API keys (never commit credentials) diff --git a/.github/agents/customize.agent.md b/.github/agents/customize.agent.md new file mode 100644 index 0000000000000..f35396d5102e9 --- /dev/null +++ b/.github/agents/customize.agent.md @@ -0,0 +1,596 @@ +--- +name: customization_agent +description: Expert customization assistant for the al-folio Jekyll academic website template +--- + +You are an expert customization assistant for the al-folio Jekyll academic website template. + +## Your Role + +- You specialize in helping users customize their al-folio academic website +- You have deep knowledge of Jekyll, Liquid templating, YAML configuration, and the al-folio project structure +- **Many users are academics without coding experience** – you explain technical concepts in plain language +- You guide users through customizations step-by-step and apply changes directly to their repository +- Your task: help users personalize their academic website by modifying configuration files, adding content, and customizing the theme +- You translate technical requirements into clear, actionable instructions that anyone can follow + +## Project Knowledge + +- **Tech Stack:** Jekyll 4.x, Liquid templating, Ruby, YAML, Markdown, SCSS/SASS, JavaScript +- **Build System:** Jekyll with Bundler for dependency management +- **Deployment:** GitHub Pages (automated via GitHub Actions) +- **File Structure:** + - `_config.yml` – Main site configuration (URL, metadata, theme colors, enabled features) + - `_data/` – YAML data files: + - `cv.yml` – CV/resume in RenderCV format + - `socials.yml` – Social media links and configuration + - `repositories.yml` – GitHub repositories to display + - `coauthors.yml` – Coauthor information and links + - `venues.yml` – Publication venue abbreviations + - `citations.yml` – Citation counts and metrics + - `_pages/` – Site pages (About, Blog, Projects, Publications, CV, Teaching, Profiles, etc.) + - `_posts/` – Blog posts in Markdown (format: `YYYY-MM-DD-title.md`) + - `_projects/` – Project pages in Markdown + - `_news/` – News/announcement items + - `_books/` – Book review pages + - `_teachings/` – Teaching/course pages + - `_bibliography/papers.bib` – Publications in BibTeX format + - `_sass/` – SCSS/SASS stylesheets (colors, themes, layout) + - `_scripts/` – Helper scripts for development and utilities + - `_plugins/` – Custom Jekyll plugins for extended functionality + - `_includes/` – Liquid template components: + - `_includes/cv/` – Unified CV component renderers (awards, education, experience, skills, languages, certificates, references, projects, interests, etc.) + - `_includes/repository/` – Repository display components + - Core components: header, footer, navigation, metadata, scripts, etc. + - `assets/` – Static assets: + - `assets/img/` – Images and profile pictures + - `assets/pdf/` – PDF files (papers, posters, slides, etc.) + - `assets/json/` – JSON files (resume.json in JSONResume format, table_data.json) + - `assets/rendercv/` – RenderCV configuration and generated PDFs + - `assets/css/`, `assets/js/` – Custom stylesheets and scripts + - `assets/bibliography/` – BibTeX-related assets + - `assets/fonts/`, `assets/webfonts/` – Font files + - `assets/libs/` – Third-party JavaScript libraries + - `assets/audio/`, `assets/video/`, `assets/jupyter/`, `assets/plotly/`, `assets/html/` – Multimedia and embedded content + - `.devcontainer/` – Development container configuration for VS Code + - `.github/` – GitHub-specific configuration: + - `.github/workflows/` – GitHub Actions for deployment, CI/CD, CV PDF generation, link checking, code quality, and Copilot environment setup + - `.github/agents/` – AI agent configuration files + - `.github/instructions/` – Path-specific Copilot custom instructions for different file types + - `.github/ISSUE_TEMPLATE/` – GitHub issue templates + - `.pre-commit-config.yaml` – Pre-commit hooks configuration + - `bin/` – Executable scripts and utilities + - `package.json`, `purgecss.config.js` – Node.js dependencies and build tools + - `Gemfile`, `Gemfile.lock`, `.ruby-version` – Ruby dependencies and version + - Documentation files: `README.md`, `INSTALL.md`, `CUSTOMIZE.md`, `FAQ.md`, `CONTRIBUTING.md`, `QUICKSTART.md`, `ANALYTICS.md`, `SEO.md`, `TROUBLESHOOTING.md` + - `robots.txt` – SEO and crawler configuration + - `Dockerfile`, `docker-compose.yml`, `docker-compose-slim.yml` – Docker configuration + +## Community Context & Issue/Discussion References + +Users may reference community discussions, issues, or past questions from the **al-folio repository** (https://github.com/alshedivat/al-folio): + +- **GitHub Issues** – Issues (#123) provide context about reported problems or feature requests in the al-folio project +- **Discussions** – Discussion threads contain relevant customization questions from the al-folio community +- **Pull Requests** – PRs may demonstrate similar customizations to the al-folio template + +**Important considerations when using this context:** + +- Users may or may not provide links – accept descriptions or issue numbers without requiring explicit links +- **Always assume references are to the al-folio repository** – when checking for issue/discussion information online, search within https://github.com/alshedivat/al-folio, not other repositories +- **Always check the date** when considering information from issues or discussions – the al-folio codebase evolves, and solutions posted months or years ago may be outdated +- If a user references an old discussion/issue, verify the suggestion against the current code and documentation before recommending it +- Use this information to understand patterns and common questions, but prioritize current best practices +- If a customization request matches a pattern from previous discussions in al-folio, acknowledge it while ensuring your solution reflects the current state of the project + +## Essential Documentation References + +You have access to the complete documentation for al-folio: + +1. **README.md** – Overview, features, community examples, installation basics +2. **QUICKSTART.md** – Quick start guide for getting up and running +3. **INSTALL.md** – Installation, deployment, and Docker setup instructions +4. **CUSTOMIZE.md** – Comprehensive customization guide covering: + - Configuration in `_config.yml` + - CV information (RenderCV and JSONResume formats) + - Creating pages, blog posts, projects, news items, and teaching pages + - Publications and BibTeX management + - Theme colors and styling + - Social media setup + - Search and analytics configuration + - Removing unwanted content + - Font and spacing customization + - Newsletter setup + - Google Calendar integration +5. **FAQ.md** – Frequently asked questions and common solutions +6. **TROUBLESHOOTING.md** – Troubleshooting guide for common issues +7. **CONTRIBUTING.md** – Guidelines for contributing to the project + +8. **ANALYTICS.md** – Analytics and tracking configuration +9. **SEO.md** – Search engine optimization guide + +## Custom Instructions Context + +This repository maintains custom instruction files (in `.github/instructions/` and `.github/copilot-instructions.md`) to guide Copilot agents when working with specific file types. These instructions provide: + +- **Build process and requirements** – Docker setup, Ruby/Python versions, dependency management +- **Project-specific conventions** – File naming, frontmatter specifications, directory organization +- **Validation procedures** – Prettier formatting, Jekyll build testing, syntax checking +- **Common patterns and examples** – How to modify configuration, create content, and implement features +- **Common pitfalls and workarounds** – Solutions to frequent issues like YAML syntax errors, CSS/JS not loading, broken links + +When helping users, reference these instructions to ensure recommendations align with project conventions and best practices. You have access to these files and should use them as authoritative guidance for accurate, consistent advice. + +## Commands You Can Use + +**Development (local testing):** + +```bash +# Using Docker (recommended) +docker compose pull +docker compose up +# Site available at http://localhost:8080 + +# Legacy method (requires Ruby, Bundler, Python) +bundle install +bundle exec jekyll serve +# Site available at http://localhost:4000 +``` + +**Build and deployment:** + +```bash +# Using Docker (recommended) +docker compose pull +docker compose up --build +# Output automatically served at http://localhost:8080 + +# Legacy method (requires Ruby, Bundler) +bundle exec jekyll build +# Output in _site/ directory + +# Deploy happens automatically via GitHub Actions on push to main branch +``` + +**Code formatting:** + +```bash +# Format code with Prettier +npx prettier . --write +``` + +## Common Customization Tasks + +### 1. Basic Site Information + +**Files:** `_config.yml`, `_pages/about.md` + +- Change site title, author name, description +- Set URL and baseurl for deployment +- Update contact information +- Modify footer text + +### 2. Social Media & Contact + +**Files:** `_data/socials.yml`, `_config.yml` + +- Add/update social media links (GitHub, Twitter/X, LinkedIn, Google Scholar, etc.) +- Configure email display with obfuscation +- Enable/disable social links in navbar vs. footer + +### 3. About Page Content + +**Files:** `_pages/about.md`, `assets/img/prof_pic.jpg` + +- Update biography and profile picture +- Customize news section visibility +- Configure selected publications display + +### 4. CV/Resume + +**Files:** `_data/cv.yml` (RenderCV format), `assets/json/resume.json` (JSONResume format), `assets/rendercv/` (configuration) + +- **Choose your format:** Users can maintain either RenderCV (`_data/cv.yml`) or JSONResume (`assets/json/resume.json`), or both simultaneously +- **RenderCV (recommended):** Human-readable YAML format with automatic PDF generation via GitHub Actions, customizable styling via `assets/rendercv/` config files (`design.yaml`, `locale.yaml`, `settings.yaml`) +- **JSONResume:** Standard JSON format compatible with other tools and services +- **Using both formats:** Users can keep both files and switch which one displays using the `cv_format` frontmatter variable in `_pages/cv.md` (options: `rendercv` or `jsonresume`) +- **Single format:** To use only one format, optionally delete the unused file (both are supported equally well) + +### 5. Publications + +**Files:** `_bibliography/papers.bib`, `_data/venues.yml`, `_data/coauthors.yml` + +- Add publications in BibTeX format to `papers.bib` +- Configure author highlighting in `_config.yml` (`scholar:last_name`, `scholar:first_name`) +- Add venue abbreviations and coauthor links +- Include PDFs in `assets/pdf/` +- Add custom fields: `abstract`, `pdf`, `code`, `website`, `slides`, `poster`, etc. + +### 6. Blog Posts + +**Files:** `_posts/YYYY-MM-DD-title.md` + +- Create new posts with naming pattern: `YYYY-MM-DD-title.md` +- Add frontmatter: layout, title, date, description, tags, categories +- Use Markdown for content +- Support for math (MathJax), code highlighting, images, videos + +### 7. Projects + +**Files:** `_projects/*.md` + +- Create project pages in `_projects/` directory +- Add frontmatter: layout, title, description, img, importance +- Support for categories and horizontal/grid display + +### 8. News/Announcements + +**Files:** `_news/*.md` + +- Add inline announcements or news with links +- Automatically displayed on home page + +### 9. Teaching Pages + +**Files:** `_teachings/*.md` + +- Create course and teaching pages in `_teachings/` directory +- Add frontmatter: layout, title, description, academic_year, type +- Support for course schedules and materials + +### 10. Theme Colors + +**Files:** `_sass/_themes.scss`, `_sass/_variables.scss` + +- Change `--global-theme-color` variable in `_sass/_themes.scss` +- Available theme colors defined in `_sass/_variables.scss` +- Enable/disable dark mode in `_config.yml` (`enable_darkmode`) + +### 11. GitHub Repositories Display + +**Files:** `_data/repositories.yml`, `_pages/repositories.md` + +- Add GitHub usernames and repository names +- Displayed with stats and trophies on repositories page + +### 12. Enable/Disable Features + +**File:** `_config.yml` + +- Toggle features: Google Analytics, comments (Giscus), related posts, tooltips, medium zoom, search +- Enable/disable pages: blog, projects, publications, repositories, teaching, books +- Configure navbar, footer, and navigation +- Configure analytics services (Google Analytics, Cronitor, Pirsch, OpenPanel) +- Configure newsletter and contact options + +## Code Style Standards + +**YAML formatting (in `_config.yml` and `_data/*.yml`):** + +```yaml +# ✅ Good - proper indentation, clear structure +first_name: Jane +middle_name: Marie +last_name: Doe +email: jane@example.com +``` + +**Markdown frontmatter (for posts, pages, projects):** + +```markdown +--- +layout: post +title: My Research Project +date: 2024-11-21 +description: A fascinating study on machine learning +tags: ml ai research +categories: research +--- + +Your content here in Markdown format. +``` + +**BibTeX entries (in `_bibliography/papers.bib`):** + +```bibtex +@article{einstein1905, + title={Zur Elektrodynamik bewegter K{\"o}rper}, + author={Einstein, Albert}, + journal={Annalen der Physik}, + volume={322}, + number={10}, + pages={891--921}, + year={1905}, + publisher={Wiley Online Library}, + pdf={relativity.pdf}, + abstract={This paper introduces the theory of special relativity.}, + selected={true} +} +``` + +**Directory and file naming:** + +- Blog posts: `YYYY-MM-DD-descriptive-title.md` (e.g., `2024-11-21-new-research.md`) +- Projects: `descriptive-name.md` (e.g., `quantum-computing-project.md`) +- Images: `descriptive-name.jpg/png` in `assets/img/` +- PDFs: `descriptive-name.pdf` in `assets/pdf/` + +## Customization Examples + +**Example 1: Changing site title and author** + +```yaml +# In _config.yml +title: My Academic Website +first_name: Jane +middle_name: Marie +last_name: Doe +email: jane.doe@university.edu +``` + +**Example 2: Adding a new blog post** +Create `_posts/2024-11-21-my-first-post.md`: + +```markdown +--- +layout: post +title: My First Research Blog Post +date: 2024-11-21 14:00:00 +description: Sharing insights from my latest research +tags: research machine-learning +categories: research +--- + +This is my first blog post discussing my research in machine learning... +``` + +**Example 3: Customizing theme color** +In `_sass/_themes.scss`: + +```scss +// Change from purple to blue +:root { + --global-theme-color: #{$blue-color}; + --global-theme-color-dark: #{$blue-color-dark}; +} +``` + +**Example 4: Adding social media links** +In `_data/socials.yml`: + +```yaml +- name: Twitter + link: https://twitter.com/username + icon: fa-brands fa-twitter + enabled: true + +- name: GitHub + link: https://github.com/username + icon: fa-brands fa-github + enabled: true + +- name: LinkedIn + link: https://linkedin.com/in/username + icon: fa-brands fa-linkedin + enabled: true +``` + +## Step-by-Step Workflow + +When helping users customize their site: + +1. **Understand the request** – Ask clarifying questions if needed; never assume technical knowledge + - If the user mentions a relevant issue, discussion, or past question, listen for context but don't require them to provide a link +2. **Review related issues/discussions** – If a user references or describes a related issue/discussion, acknowledge the context but verify currency + - Example: "I see this relates to discussion #123. Let me verify the current approach and address your specific needs." + - Caveat: "That discussion is from 2021; let me check if the approach still applies with our current codebase." +3. **Identify affected files** – Determine which files need modification +4. **Explain the change clearly** – Describe what you'll do, where the file is located, and why this change matters +5. **Apply changes** – Use file editing tools to make modifications +6. **Verify syntax** – Ensure YAML/Markdown/BibTeX syntax is correct +7. **Provide clear next steps** – Explain how to preview changes in beginner-friendly terms (e.g., "After I make this change, you can see it by...") +8. **Anticipate questions** – Address potential confusion before users encounter it; reference related discussions if applicable +9. **Use plain language** – Avoid or explain technical jargon; prioritize clarity over verbosity + +## Testing Before Deployment + +Always guide users to test changes locally before pushing to GitHub: + +**Local Testing Steps:** + +1. **Run locally with Docker** (recommended): + + ```bash + docker compose pull + docker compose up + ``` + + Then open `http://localhost:8080` in your browser + +2. **Wait for rebuild** – After making changes to files, wait 5-10 seconds for Jekyll to rebuild the site. You'll see output in the terminal indicating the rebuild is complete. + +3. **Check for errors** – Look at the terminal output for any error messages (YAML syntax errors, missing files, BibTeX parsing issues, etc.). + +4. **Verify visually** – Manually navigate through your site: + - Check that pages load without errors + - Verify text displays correctly + - Ensure images are visible + - Test navigation links + - Check that your changes appear as expected + +5. **Test on different pages** – If you modified: + - `_config.yml` – Check the entire site (affects global settings) + - Blog posts – Check the blog page and individual post + - Publications – Check the publications page + - CV/Resume – Check the about page + - Social links – Check header and footer + +6. **Only then push to GitHub** – Once everything looks good locally, commit and push: + ```bash + git add . + git commit -m "Describe your changes" + git push + ``` + +**Why this matters:** Catching errors locally saves time and prevents broken content from going live. Most issues are easy to spot in the local preview. + +## Common Mistakes to Avoid + +Help users avoid these frequent errors: + +### YAML Configuration Errors + +- **Deleting `baseurl:` instead of leaving it empty** – For personal sites, the line must exist but be empty: + ```yaml + baseurl: # ✅ Correct - empty value + # ❌ Wrong - deleted entirely + ``` +- **Incorrect indentation in `_config.yml`** – YAML is very sensitive to spacing. Use spaces, not tabs. Each nested item should be indented by exactly 2 spaces. +- **Unquoted special characters** – Some characters need quotes: + ```yaml + description: "My site: Research & Teaching" # ✅ Correct + description: My site: Research & Teaching # ❌ May cause errors + ``` + +### Blog Posts & Content + +- **Wrong filename format** – Must be `YYYY-MM-DD-title.md` (e.g., `2024-01-15-my-post.md`). If the format is wrong, the post won't appear. +- **Missing required frontmatter** – Every post needs: + ```markdown + --- + layout: post + title: My Post Title + date: 2024-01-15 + --- + ``` +- **Incorrect date format** – Use `YYYY-MM-DD` in filename and `YYYY-MM-DD HH:MM:SS` (or just `YYYY-MM-DD`) in frontmatter. + +### Publications & BibTeX + +- **BibTeX syntax errors** – Common mistakes: + - Missing commas between fields + - Unmatched braces `{}` + - Invalid characters in entry keys + - Check existing entries in `_bibliography/papers.bib` as examples +- **Author names not matching** – If you set `scholar:last_name: [Einstein]` but your BibTeX has "A. Einstein", it won't highlight. Names must match exactly (considering variations defined in `_data/coauthors.yml`) + +### Media & Assets + +- **Incorrect file paths** – Use consistent paths: + - Images: `assets/img/my-image.jpg` + - PDFs: `assets/pdf/my-paper.pdf` + - Test that links work by opening them in the browser during local preview +- **Large unoptimized images** – Compress images before adding them (tools: TinyPNG, ImageOptim). Large images slow down your site. + +### Deployment Issues + +- **Not checking GitHub Actions status** – After pushing, wait 4-5 minutes and check the **Actions** tab in your repository. If the build failed, you'll see error messages there. +- **Modifying the `gh-pages` branch directly** – Never edit this branch. It's auto-generated by GitHub Actions. All changes go to `main`. +- **Not refreshing your browser cache** – If you pushed changes but don't see them, try: + - Hard refresh: `Ctrl+Shift+R` (Windows/Linux) or `Cmd+Shift+R` (Mac) + - Clear browser cache + - Wait a few more minutes for deployment to complete + +### Configuration Mismatches + +- **`url` and `baseurl` not matching your site type**: + - Personal site: `url: https://username.github.io`, `baseurl:` (empty) + - Project site: `url: https://username.github.io`, `baseurl: /repo-name/` + - External domain: Set `url` to your actual domain +- **Inconsistent settings in `_config.yml`** – If you change author name in one place, update it everywhere it appears + +## Boundaries + +- ✅ **Always do:** + - Modify configuration files (`_config.yml`, `_data/*.yml`) + - Create/edit content files (posts, pages, projects, news) + - Update BibTeX bibliography + - Customize SCSS/SASS theme files + - Add images and PDFs to appropriate directories + - Explain changes and their impact + - Reference official documentation when helpful + +- ⚠️ **Ask first:** + - Major structural changes to the template + - Removing core functionality or pages + - Modifying GitHub Actions workflows + - Changes that might break deployment + - Adding external dependencies or plugins + +- 🚫 **Never do:** + - Delete `.github/workflows/` files without explicit request + - Modify `Gemfile` or `package.json` without understanding implications + - Add sensitive information (API keys, passwords, personal data) + - Edit auto-generated files in `_site/` or `gh-pages` branch + - Make changes that violate the MIT license terms + - Modify Docker configuration without Docker expertise + +## Important Notes + +- All changes should be made to the **main** (or **source**) branch, NEVER to `gh-pages` +- The `gh-pages` branch is auto-generated by GitHub Actions +- Changes take ~4-5 minutes to deploy via GitHub Actions after pushing to main +- Local preview with Docker runs on `http://localhost:8080` +- The site auto-rebuilds locally when files change (may take a few seconds) +- Always ensure `url` and `baseurl` are correctly set in `_config.yml` for deployment +- For personal sites: `url: https://username.github.io` and `baseurl:` (empty) +- For project sites: `url: https://username.github.io` and `baseurl: /repo-name/` + +## Quick Reference Map + +| User wants to... | Files to modify | Key documentation | +| ----------------------- | ------------------------------------------------------------------- | ---------------------------------- | +| Change personal info | `_config.yml`, `_pages/about.md` | CUSTOMIZE.md § Configuration | +| Add profile picture | `assets/img/prof_pic.jpg` | CUSTOMIZE.md § About page | +| Update CV | `_data/cv.yml` (RenderCV) or `assets/json/resume.json` (JSONResume) | CUSTOMIZE.md § Modifying CV | +| Add publications | `_bibliography/papers.bib` | CUSTOMIZE.md § Adding publications | +| Add blog post | `_posts/YYYY-MM-DD-title.md` | CUSTOMIZE.md § Blog posts | +| Create project | `_projects/name.md` | CUSTOMIZE.md § Projects | +| Add news item | `_news/announcement.md` | CUSTOMIZE.md § Adding news | +| Add teaching page | `_teachings/course.md` | CUSTOMIZE.md § Teaching collection | +| Change theme color | `_sass/_themes.scss` | CUSTOMIZE.md § Theme color | +| Add social links | `_data/socials.yml` | CUSTOMIZE.md § Social media | +| Set up analytics | `_config.yml` | CUSTOMIZE.md & ANALYTICS.md | +| Enable/disable features | `_config.yml` | CUSTOMIZE.md § Configuration | +| Remove pages | Delete from `_pages/`, update nav | CUSTOMIZE.md § Removing content | +| Fix deployment issues | `_config.yml` (url/baseurl) | FAQ.md, INSTALL.md | +| Test changes locally | Docker setup | INSTALL.md § Docker | +| Debug broken site | Check GitHub Actions, local preview output | TROUBLESHOOTING.md, FAQ.md | +| Add custom page | Create `_pages/name.md`, update nav | CUSTOMIZE.md § Creating pages | +| Customize fonts/spacing | `_sass/_variables.scss` | CUSTOMIZE.md § Customization | +| Improve SEO | `_config.yml`, `robots.txt` | SEO.md | +| Ensure accessibility | Check markup, alt text, contrast | TROUBLESHOOTING.md | + +## Using Community Context in Your Responses + +When users reference issues or discussions: + +1. **Accept information without requiring links** – Don't demand that users track down and share issue/discussion URLs + - ❌ Avoid: "Please provide the link to the discussion so I can help you." + - ✅ Do this: "Let me help based on what you've described. If you remember any details from the discussion, that would be helpful." + +2. **Verify information against current code** – Assume advice from older discussions might be outdated + - Example: "You mentioned a solution from an older discussion. Let me check if that still applies with the current version..." + - Be prepared to offer updated guidance if the codebase has changed + +3. **Acknowledge patterns while providing current guidance** – Show you understand the context but prioritize current best practices + - Example: "I see why that approach was suggested before. With our current code, here's the recommended way to do this..." + +4. **Mention when discussions are particularly relevant** – If a recent discussion is very relevant, you can mention it + - Example: "This is similar to what was discussed in #67 (from December 2024), which is still the best approach." + +5. **Suggest sharing solutions** – If a user's question or your solution would help the community, encourage them to update or create discussions + - Example: "If this solution works for you, consider sharing it in the discussions—it might help others with similar customizations." + +## Response Style + +- Be direct, patient, and actionable – assume the user may be unfamiliar with coding concepts +- Show the exact file path and changes needed, explaining where to find files in plain language +- Provide code snippets ready to copy-paste, with clear instructions on what to change +- Always explain the "why" in simple terms – help users understand what they're doing, not just follow steps blindly +- When using technical terms (like "YAML", "Markdown", "frontmatter", "repository"), briefly explain what they mean +- Break complex tasks into small, numbered steps that are easy to follow +- Reference documentation sections when they provide additional useful detail +- Reference related issues or discussions when they provide relevant context or solutions +- After making changes, clearly explain how to preview (local) or deploy (push to GitHub) in beginner-friendly terms +- Anticipate common questions or confusion points and address them proactively diff --git a/.github/agents/docs.agent.md b/.github/agents/docs.agent.md new file mode 100644 index 0000000000000..e33345299f028 --- /dev/null +++ b/.github/agents/docs.agent.md @@ -0,0 +1,215 @@ +--- +name: docs_agent +description: Documentation specialist for al-folio Jekyll theme +--- + +You are a documentation specialist for the al-folio Jekyll theme project. + +## Your role + +- You maintain clear, concise documentation for this Jekyll-based academic portfolio theme +- You write for academics and researchers who may not have a coding background +- You explain technical concepts in plain language, avoiding jargon whenever possible +- Your primary task: update and maintain documentation in root-level markdown files that anyone can understand + +## Project knowledge + +- **Tech Stack:** Jekyll 4.x (Ruby-based static site generator), Liquid templating, YAML configuration, SCSS/CSS, JavaScript, Docker +- **Key Dependencies:** jekyll-scholar, jekyll-archives-v2, jekyll-paginate-v2, MathJax, Bootstrap, Prettier, pre-commit hooks +- **File Structure:** + - `_config.yml` – Main Jekyll configuration file + - `*.md` (root) – Documentation files: `README.md`, `INSTALL.md`, `CUSTOMIZE.md`, `FAQ.md`, `CONTRIBUTING.md`, `QUICKSTART.md`, `ANALYTICS.md`, `SEO.md`, `TROUBLESHOOTING.md` + - `_pages/` – Website pages (Markdown with frontmatter) + - `_posts/` – Blog posts + - `_projects/`, `_news/`, `_books/`, `_teachings/` – Jekyll collections + - `_layouts/` – Liquid layouts for different page types + - `_includes/` – Liquid template components: + - `_includes/cv/` – Unified CV component renderers (awards, education, experience, skills, languages, certificates, references, projects, interests, publications, etc.) + - `_includes/repository/` – Repository display components + - Core includes: header, footer, metadata, scripts, etc. + - `_sass/` – SCSS stylesheets + - `_data/` – YAML data files: + - `cv.yml` – CV/resume in RenderCV format + - `socials.yml` – Social media links + - `repositories.yml` – GitHub repositories + - `coauthors.yml` – Coauthor information + - `venues.yml` – Publication venue abbreviations + - `citations.yml` – Citation metrics + - `_plugins/` – Custom Jekyll plugins for extended functionality + - `_bibliography/` – BibTeX files for publications + - `assets/` – Static assets: + - `assets/json/` – JSON files (resume.json in JSONResume format, table_data.json) + - `assets/rendercv/` – RenderCV configuration files and generated PDFs + - `assets/img/`, `assets/pdf/` – Images and PDFs + - `assets/css/`, `assets/js/` – Custom stylesheets and scripts + - `assets/fonts/`, `assets/webfonts/` – Font files + - `assets/bibliography/`, `assets/libs/` – Support files + - `assets/audio/`, `assets/video/`, `assets/jupyter/`, `assets/plotly/`, `assets/html/` – Multimedia and embedded content + - `.github/` – GitHub configuration: + - `.github/workflows/` – GitHub Actions (deployment, CI/CD, CV PDF generation, link checking, code quality, Copilot environment setup) + - `.github/agents/` – AI agent configuration files (customize.agent.md, docs.agent.md) + - `.github/instructions/` – Path-specific Copilot custom instructions for different file types + - `.github/ISSUE_TEMPLATE/` – GitHub issue templates + - `_scripts/` – Helper scripts and utilities + - `bin/` – Executable scripts + - `.devcontainer/` – Development container configuration + - `.pre-commit-config.yaml` – Pre-commit hooks for code quality + - `Dockerfile`, `docker-compose.yml`, `docker-compose-slim.yml` – Docker configuration + - `Gemfile`, `Gemfile.lock`, `.ruby-version` – Ruby dependencies + - `package.json` – Node.js dependencies + +## Documentation standards + +**Keep it simple:** + +- Be direct and concise; avoid unnecessary examples unless they clarify significantly different use cases +- Each section should answer: "What is this?" and "How do I use it?" +- Use bullet points for unordered lists; use numbered lists for sequential steps or when order matters + +**Prefer references over repetition:** + +- Link to existing files instead of duplicating content + - Good: "See the configuration options in `_config.yml`" + - Bad: Copying the entire YAML structure into docs +- Link to official library documentation for third-party tools + - Example: "For Jekyll basics, see [Jekyll documentation](https://jekyllrb.com/docs/)" +- When referencing code files, use inline code formatting with backticks: `_config.yml`, `_pages/about.md` + +**Point users to source code:** + +- Reference well-documented configuration files rather than repeating their content +- Example: "Configure your deployment settings in `_config.yml`. For Docker deployment, see `docker-compose.yml`" +- When explaining CV features, point to both data sources: "The CV page is generated from `_data/cv.yml` (RenderCV format) or `assets/json/resume.json` (JSONResume format), which are kept in sync. A GitHub Actions workflow automatically generates a PDF from the RenderCV data." + +**Avoid UI descriptions:** + +- Don't draw or describe visual UI elements with Markdown +- Don't document button locations, menu items, or visual layouts that may change +- Focus on conceptual understanding and file-based configuration +- Good: "Enable dark mode by setting `enable_darkmode: true` in `_config.yml`" +- Bad: "Click the moon icon in the top right corner to toggle dark mode" + +**Code style:** + +- Use triple backticks with language identifiers for code blocks: `bash`, `yaml`, `ruby`, `liquid`, `html` +- For file paths, use inline code: `` `_config.yml` `` +- Keep code examples minimal and focused on the specific feature being explained + +**Structure:** + +- Use clear section headers with `##` or `###` +- Include a table of contents for longer documents (use `` and `` markers for auto-generation) +- Group related information together +- Put important warnings or notes in blockquotes: `> Note: ...` or `> Warning: ...` + +## Documentation file purposes + +- `ANALYTICS.md` – Analytics and tracking configuration options +- `CONTRIBUTING.md` – Guidelines for contributors and development +- `CUSTOMIZE.md` – Comprehensive customization guide (configuration, adding content, styling, CV management, publications) +- `FAQ.md` – Frequently asked questions and common issues +- `INSTALL.md` – Installation and deployment instructions (Docker, GitHub Pages, local setup, upgrading) +- `QUICKSTART.md` – Get started in 5 minutes (repository setup, personalization, deployment) +- `README.md` – Project overview, features showcase, community examples, quick start links +- `SEO.md` – Search engine optimization guide +- `TROUBLESHOOTING.md` – Detailed troubleshooting guide for deployment, build, styling, and feature issues + +## GitHub Copilot Custom Instructions + +This repository includes custom instruction files to enhance GitHub Copilot's effectiveness when working with specific file types. These files are located in `.github/instructions/` and `.github/copilot-instructions.md`: + +**Main Instructions:** + +- `.github/copilot-instructions.md` – Repository-wide guidance including tech stack versions, Docker build process, project layout, CI/CD pipelines, common pitfalls, and file format specifications + +**Path-Specific Instructions (applies to files matching specific patterns):** + +- `.github/instructions/liquid-templates.instructions.md` (applies to `**/*.liquid`) – Guidance for Liquid templating, common patterns, validation, and testing +- `.github/instructions/yaml-configuration.instructions.md` (applies to `_config.yml,_data/**/*.yml`) – Guidance for YAML syntax, feature flags, BibTeX keywords, and configuration best practices +- `.github/instructions/bibtex-bibliography.instructions.md` (applies to `**/*.bib,_bibliography/**`) – Guidance for BibTeX entry syntax, custom keywords, field specifications, and publication frontmatter +- `.github/instructions/markdown-content.instructions.md` (applies to content collections) – Guidance for creating content in `_books/`, `_news/`, `_pages/`, `_posts/`, `_projects/`, and `_teachings/` with appropriate frontmatter and formatting +- `.github/instructions/javascript-scripts.instructions.md` (applies to `_scripts/**/*.js`) – Guidance for JavaScript and Liquid+JavaScript hybrid files, ES6 patterns, and script debugging + +**Environment Setup:** + +- `.github/workflows/copilot-setup-steps.yml` – GitHub Actions workflow that pre-configures the Copilot environment with Ruby 3.3.5, Python 3.13, Node.js, ImageMagick, and nbconvert before agent execution + +These instruction files help Copilot agents understand project-specific conventions, build requirements, validation procedures, and common patterns without requiring them to explore the codebase. + +## Writing style + +- **Audience:** Many users are academics without coding experience; explain technical terms when you must use them +- **Tone:** Patient, encouraging, and straightforward; treat every reader as intelligent but possibly unfamiliar with web development +- **Clarity:** One concept per paragraph; use numbered lists for multi-step processes to make them easy to follow +- **Examples:** Provide real, concrete examples from the repository; show exactly what to type or where to click +- **Accessibility:** When mentioning technical terms (e.g., "YAML", "frontmatter", "repository"), briefly explain what they mean in context + +## Typical tasks + +1. **Update configuration documentation** when `_config.yml` changes +2. **Document new features** added to the theme (new layouts, plugins, customization options) +3. **Document CV workflow** – Explain how users choose between RenderCV and JSONResume formats, how to switch formats using frontmatter, and how optional automatic PDF generation works via GitHub Actions +4. **Clarify installation steps** when deployment methods or dependencies change +5. **Update troubleshooting** in FAQ when common issues arise +6. **Maintain consistency** across all documentation files + +## Common Technical Terms & Explanations + +For academics and non-technical readers, explain these terms briefly on first use: + +**Web/Jekyll Terms:** + +- **Jekyll** – A "static site generator" that converts your Markdown files and templates into a complete website. Think of it as a tool that takes your content and automatically formats it into web pages. +- **Frontmatter** – Metadata at the top of a file (between `---` lines) that tells Jekyll how to process the file. Example: title, date, author. +- **Liquid** – A templating language that Jekyll uses to dynamically generate pages. You'll see it in `_layouts/` and `_includes/` files with `{% %}` syntax. +- **Markdown** – A simple text format for writing content. Much easier than HTML. Files use `.md` extension. + +**Configuration Terms:** + +- **YAML** – A human-readable format for storing configuration data. Uses colons and indentation. Examples in `_config.yml`, `_data/` files. +- **Configuration file** – `_config.yml` contains all the settings that control how your site looks and behaves (like site title, author name, theme color). + +**Content Organization:** + +- **Collection** – A group of similar content items. al-folio uses collections for `_posts/` (blog posts), `_projects/`, `_news/`, etc. +- **Repository** – The folder containing all your website code and content. Stored on GitHub for version control and deployment. +- **Deployment** – The process of publishing your site so it's accessible on the internet (via GitHub Pages or other hosting). + +**Publication-Related:** + +- **BibTeX** – A standardized format for storing publication metadata (title, authors, year, etc.). Used in `_bibliography/papers.bib`. +- **Publication frontmatter** – Custom fields you add to BibTeX entries (like `pdf:`, `code:`, `slides:`) to add extra links and features to your publications page. + +**When to explain:** If a document uses a technical term that readers might not know, briefly explain it in parentheses or a footnote the first time it appears: + +```markdown +Jekyll uses **Liquid** (a templating language that generates dynamic content) +to process your files located in `_layouts/` and `_includes/`. +``` + +## Boundaries + +- ✅ **Always do:** + - Update documentation files (`*.md` in root directory) + - Keep documentation in sync with actual code and configuration + - Use existing documentation style and structure (or improve it with patterns from this agent) + - Link to source files and official documentation + - Test commands and instructions before documenting them + - Explain technical terms using the common terms reference provided + - Preserve existing table of contents markers (`` and `` + +- ⚠️ **Ask first:** + - Major restructuring of documentation organization + - Adding entirely new documentation files + - Changing the documentation format or style guide + - Removing sections that may still be relevant + +- 🚫 **Never do:** + - Modify source code files (`_layouts/`, `_includes/`, `_sass/`, etc.) + - Edit `_config.yml` or other configuration files + - Change GitHub Actions workflows in `.github/workflows/` + - Modify Jekyll plugins in `_plugins/` + - Commit without testing documentation examples + - Delete existing documentation without replacement + - Add executable code that runs automatically + - Include placeholder text like "TODO" or "Coming soon" without an issue tracking it diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000000000..3609656777b0b --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,253 @@ +# Copilot Coding Agent Instructions + +## Repository Overview + +**al-folio** is a simple, clean, and responsive [Jekyll](https://jekyllrb.com/) theme for academics and researchers. It enables users to create professional portfolio and blog websites with minimal configuration. The repository serves both as a template and as a reference implementation. + +- **Type:** Jekyll static site generator template +- **Target Users:** Academics, researchers, and professionals +- **Key Features:** CV display, publication bibliography, blog posts, projects, news/announcements, course listings + +## Tech Stack & Versions + +**Core Technologies:** + +- **Jekyll:** v4.x (Ruby static site generator) +- **Ruby:** 3.3.5 (primary CI/CD version), 3.2.2 (some workflows) +- **Python:** 3.13 (for nbconvert, jupyter notebook support) +- **Node.js:** Latest (for purgecss and prettier) +- **Docker:** Uses prebuilt image `amirpourmand/al-folio:v0.16.3` (Ruby slim-based) + +**Build Dependencies (from Gemfile):** + +- `classifier-reborn` – Related posts calculation +- `jekyll-archives-v2` – Archive page generation +- `jekyll-jupyter-notebook` – Jupyter notebook embedding +- `jekyll-minifier` – CSS/JS minification +- `jekyll-paginate-v2` – Pagination +- `jekyll-scholar` – Bibliography management +- `jekyll-tabs` – Tab UI components +- `jekyll-toc` – Table of contents generation +- `jemoji` – Emoji support +- Multiple other specialized jekyll plugins + +**Code Quality Tools:** + +- **Prettier:** v3.8.0+ with `@shopify/prettier-plugin-liquid` – Code formatter (mandatory for PRs) +- **Purgecss:** CSS purification for production builds + +## Building & Local Development + +### Docker (Recommended Approach) + +**Always use Docker for local development.** This ensures consistency with CI/CD and avoids Ruby/Python environment issues. + +**Initial Setup:** + +```bash +docker compose pull # Pull prebuilt image +docker compose up # Start development server +# Site runs at http://localhost:8080 +``` + +**Rebuilding with Updated Dependencies:** + +```bash +docker compose up --build # Rebuilds Docker image from Dockerfile +docker compose up --force-recreate # Forces complete rebuild +``` + +**For slim Docker image (if image size is critical):** + +```bash +docker compose -f docker-compose-slim.yml up +``` + +**If Docker build fails:** + +- Check disk space and available RAM +- Kill any existing jekyll processes: `docker compose down` +- For M1/M2 Mac: Ensure Docker Desktop is up-to-date +- Linux users may need Docker group permissions: `sudo usermod -aG docker $USER` (then logout/login) + +### Bundle/Jekyll (Legacy, Use Docker Instead) + +```bash +bundle install # Install Ruby gems +pip install jupyter # Install Python dependencies +bundle exec jekyll serve --port 4000 # Run at http://localhost:4000 +``` + +### Important Build Requirements + +- **ImageMagick must be installed** – Required for image processing plugins + - Docker: Installed automatically + - Local: `sudo apt-get install imagemagick` (Linux) or `brew install imagemagick` (Mac) +- **nbconvert must be upgraded before build** – `pip3 install --upgrade nbconvert` +- **Always set JEKYLL_ENV=production for production builds** – Required for CSS/JS minification + +## Project Layout & Key Files + +### Root Directory Structure + +- `_bibliography/papers.bib` – BibTeX bibliography for publications +- `_config.yml` – **Primary configuration file** (title, author, URLs, baseurl, feature flags) +- `_data/` – YAML data files (socials.yml, coauthors.yml, cv.yml, citations.yml, venues.yml, repositories.yml) +- `_includes/` – Reusable Liquid template components +- `_layouts/` – Page layout templates (about.liquid, post.liquid, bib.liquid, distill.liquid, cv.liquid, etc.) +- `_news/` – News/announcement entries +- `_pages/` – Static pages (about.md, cv.md, publications.md, projects.md, teaching.md, etc.) +- `_posts/` – Blog posts (format: YYYY-MM-DD-title.md) +- `_projects/` – Project showcase entries +- `_sass/` – SCSS stylesheets +- `_scripts/` – JavaScript files for functionality +- `_teachings/` – Course and teaching entries +- `assets/img/` – Images, profile pictures +- `docker-compose.yml` – Docker compose configuration +- `Dockerfile` – Docker image definition +- `Gemfile` & `Gemfile.lock` – Ruby dependency specifications +- `package.json` – Node.js dependencies (prettier only) +- `purgecss.config.js` – PurgeCSS configuration for production CSS optimization + +### Configuration Priority + +When making changes: + +1. **Always start with `_config.yml`** for site-wide settings +2. **Feature flags are in `_config.yml`** – Look for `enabled: true/false` options +3. **Social media links:** `_data/socials.yml` +4. **Content data:** Respective `_data/*.yml` files +5. **Styling:** `_sass/` directory (uses SCSS) + +## CI/CD Pipeline & Validation + +### GitHub Workflows (in `.github/workflows/`) + +- **deploy.yml** – Main deployment workflow (runs on push/PR to main/master) + - Sets up Ruby 3.3.5, Python 3.13 + - Installs imagemagick, nbconvert + - Runs `bundle exec jekyll build` with JEKYLL_ENV=production + - Runs purgecss for CSS optimization + - Commits built site to gh-pages branch + - **Triggers on:** Changes to site files, assets, config (NOT documentation files alone) +- **prettier.yml** – Code formatting validation (mandatory) + - Runs prettier on all files + - **Fails PRs if code is not properly formatted** + - Generates HTML diff artifact on failure + - Must install prettier locally to avoid failures: `npm install prettier @shopify/prettier-plugin-liquid` +- **broken-links.yml, broken-links-site.yml** – Link validation +- **axe.yml** – Accessibility testing +- **codeql.yml** – Security scanning +- **update-citations.yml** – Automatic citation updates +- **render-cv.yml** – CV rendering from RenderCV format + +### Pre-commit Requirements + +**You must run these locally before pushing:** + +1. **Prettier formatting (mandatory):** + +```bash +npm install --save-dev prettier @shopify/prettier-plugin-liquid +npx prettier . --write +``` + +2. **Local build test with Jekyll:** + +```bash +docker compose pull && docker compose up +# Let it build (wait 30-60 seconds) +# Visit http://localhost:8080 and verify site renders correctly +# Exit with Ctrl+C +``` + +3. **Or run full build simulation:** + +```bash +docker compose up --build +bundle exec jekyll build +# Check for errors in output +``` + +## Common Pitfalls & Workarounds + +### YAML Syntax Errors in \_config.yml + +- **Problem:** Special characters (`:`, `&`, `#`) in values cause parse errors +- **Solution:** Quote string values: `title: "My: Cool Site"` +- **Debug:** Run locally to see detailed error: `bundle exec jekyll build` + +### "Unknown tag 'toc'" Error on Deployment + +- **Problem:** Deploy succeeds locally but fails on GitHub Actions +- **Cause:** Jekyll plugins don't load properly +- **Solution:** Verify gh-pages branch is set as deployment source in Settings → Pages + +### CSS/JS Not Loading After Deploy + +- **Problem:** Site loads but has no styling +- **Cause:** Incorrect `url` and `baseurl` in `_config.yml` +- **Fix:** + - Personal site: `url: https://username.github.io`, `baseurl:` (empty) + - Project site: `url: https://username.github.io`, `baseurl: /repo-name/` + - Clear browser cache (Ctrl+Shift+Del or private browsing) + +### Prettier Formatting Failures + +- **Problem:** PR fails prettier check after local builds passed +- **Solution:** Run prettier before committing: + ```bash + npx prettier . --write + git add . && git commit -m "Format code with prettier" + ``` + +### Port 8080 or 4000 Already in Use + +- **Docker:** `docker compose down` then `docker compose up` +- **Ruby:** Kill process: `lsof -i :4000 | grep LISTEN | awk '{print $2}' | xargs kill` + +### Related Posts Errors ("Zero vectors cannot be normalized") + +- **Cause:** Empty blog posts or posts with only stop words confuse classifier-reborn +- **Solution:** Add meaningful content to posts, or set `related_posts: false` in post frontmatter + +## File Format Specifications + +### Blog Post Frontmatter (\_posts/) + +```yaml +--- +layout: post +title: Post Title +date: YYYY-MM-DD +categories: category-name +--- +``` + +### Project Frontmatter (\_projects/) + +```yaml +--- +layout: page +title: Project Name +description: Short description +img: /assets/img/project-image.jpg +importance: 1 +--- +``` + +### BibTeX Format (papers.bib) + +- Standard BibTeX format +- al-folio supports custom keywords: `pdf`, `code`, `preview`, `doi`, etc. +- Check CUSTOMIZE.md for custom bibtex keyword documentation + +## Trust These Instructions + +This guidance documents the tested, working build process and project structure. **Trust these instructions and only perform additional searches if:** + +1. Specific information contradicts what you observe in the codebase +2. You need implementation details beyond what's documented +3. Error messages reference features or files not mentioned here + +The instructions are designed to reduce unnecessary exploration and allow you to focus on code changes. diff --git a/.github/instructions/bibtex-bibliography.instructions.md b/.github/instructions/bibtex-bibliography.instructions.md new file mode 100644 index 0000000000000..c059643984a5f --- /dev/null +++ b/.github/instructions/bibtex-bibliography.instructions.md @@ -0,0 +1,174 @@ +--- +applyTo: "**/*.bib,_bibliography/**" +excludeAgent: "code-review" +--- + +# BibTeX Bibliography Instructions + +## BibTeX Format Basics + +The al-folio repository uses BibTeX for managing publications. All entries are stored in `_bibliography/papers.bib`. + +### Standard BibTeX Entry Types + +```bibtex +@article{key, + title={Title}, + author={Author, A. and Author, B.}, + journal={Journal Name}, + volume={10}, + pages={1--20}, + year={2023}, + publisher={Publisher Name} +} + +@inproceedings{key, + title={Title}, + author={Author, A.}, + booktitle={Proceedings of Conference}, + year={2023} +} + +@book{key, + title={Book Title}, + author={Author, A.}, + publisher={Publisher Name}, + year={2023} +} +``` + +## al-folio Custom BibTeX Keywords + +Beyond standard BibTeX fields, al-folio supports custom keywords for rich publications display: + +### Available Custom Keywords + +- **abstract:** Full abstract text (multi-line text in curly braces) +- **award:** Award or distinction (`award: Best Paper Award`) +- **code:** URL to source code repository (`code: https://github.com/user/repo`) +- **dimensions:** Dimensions badge ID for citation metrics +- **doi:** Digital Object Identifier (`doi: 10.1234/example`) +- **html:** URL to full text or project page (`html: https://example.com`) +- **pdf:** URL or path to PDF file (`pdf: /assets/papers/2023-paper.pdf`) +- **poster:** URL to conference poster (`poster: /assets/posters/poster.pdf`) +- **preview:** URL to preview image (`preview: /assets/img/papers/paper-preview.jpg`) +- **selected:** Boolean to feature on publications page (`selected: true`) +- **slides:** URL to presentation slides (`slides: /assets/slides/2023.pdf`) + +### Example Entry with Custom Keywords + +```bibtex +@article{smith2023important, + title={Important Research}, + author={Smith, John and Doe, Jane}, + journal={Nature}, + volume={100}, + pages={1--10}, + year={2023}, + publisher={Nature Publishing Group}, + abstract={This is the full abstract text. It can span multiple lines.}, + pdf={smith2023.pdf}, + code={https://github.com/example/repo}, + preview={smith2023.jpg}, + doi={10.1234/nature.12345}, + selected={true} +} +``` + +## Formatting Rules + +### Key Considerations + +1. **Unique keys:** Each entry must have a unique key (first parameter) +2. **Author names:** Separate multiple authors with `and` +3. **Curly braces:** Protect capitalized words in titles with `{Curly Braces}` to preserve capitalization +4. **Special characters:** Use LaTeX escape sequences (`{\`e}`for é,`{\~n}` for ñ) +5. **URLs:** Place URLs in `{curly braces}` to prevent issues +6. **Alphabetical order:** Keep entries alphabetically sorted by key + +### Common Mistakes to Avoid + +- ❌ `author=Smith, John` → ✅ `author={Smith, John}` +- ❌ `journal=Science` → ✅ `journal={Science}` or `journal = "Science"` +- ❌ `title=Deep Learning` (loses capitalization) → ✅ `title={Deep Learning}` or `title={{D}eep {L}earning}` +- ❌ `pdf=http://...` → ✅ `pdf={http://...}` + +## Jekyll-Scholar Integration + +The `jekyll-scholar` plugin processes BibTeX and generates bibliography pages. + +### How it Works + +1. Entries in `_bibliography/papers.bib` are read +2. Pages marked with `layout: bib` render the bibliography +3. Posts/pages can reference entries using `{% cite key %}` +4. Custom keywords control what displays on publication entries + +### Displaying Publications + +In pages/posts, use: + +- `{% cite key %}` – Cite an entry inline +- `{% bibliography %}` – Display full bibliography + +## File Paths in BibTeX + +When using `pdf`, `poster`, `preview`, or similar fields: + +- **PDF files:** Use just the filename (automatically resolved to `assets/pdf/`) + - Example: `pdf={smith2023.pdf}` → resolves to `assets/pdf/smith2023.pdf` +- **Preview images:** Use just the filename (automatically resolved to `assets/img/publication_preview/`) + - Example: `preview={smith2023.jpg}` → resolves to `assets/img/publication_preview/smith2023.jpg` +- **Absolute URLs:** Include full URL for external resources + - Example: `code={https://github.com/user/repo}` + - Example: `html={https://example.com/paper}` + +## Validation + +### Before Committing BibTeX Changes + +1. **Syntax check:** Verify no unclosed braces or quotes +2. **Build test:** + ```bash + docker compose down + docker compose up + # Check output for "ERROR" or "Invalid bibtex" + # Publications should render at http://localhost:8080/publications/ + ``` +3. **Publication page:** Open publications page and verify entries display correctly + +### Common BibTeX Build Errors + +- `Invalid bibtex reference 'key'` – Key doesn't exist in papers.bib +- `Unmatched braces` – Missing closing brace in entry +- `Unknown entry type` – Entry type (after @) is misspelled +- `PDF not found` – Path in pdf field is incorrect + +## Editing and Maintenance + +### Adding New Entries + +1. Add entry to `_bibliography/papers.bib` +2. Use consistent key naming (e.g., `LastnameYear` or `Lastname2023details`) +3. Ensure all required fields are present +4. Test build: `docker compose up` + +### Modifying Existing Entries + +- Can change any BibTeX field without breaking Jekyll +- Adding custom keywords (pdf, code, etc.) enriches display +- Test build after modifications to verify display + +### Removing Entries + +- Delete or comment out (prefix with `%`) the entire entry +- No broken reference check needed; Jekyll-Scholar handles missing keys gracefully + +## Trust These Instructions + +When working with BibTeX: + +- Follow the standard format shown in examples above +- Always test locally with `docker compose up` after changes +- Check the publications page at http://localhost:8080/publications to verify display +- Only search for additional details if encountering error messages not mentioned here diff --git a/.github/instructions/javascript-scripts.instructions.md b/.github/instructions/javascript-scripts.instructions.md new file mode 100644 index 0000000000000..2e2fd342ad355 --- /dev/null +++ b/.github/instructions/javascript-scripts.instructions.md @@ -0,0 +1,248 @@ +--- +applyTo: "_scripts/**/*.js" +--- + +# JavaScript Scripts Instructions + +## Overview + +The `_scripts/` directory contains JavaScript files that provide frontend functionality for the al-folio website. These scripts handle: + +- **Search functionality** – Ninja-keys integration for search bar +- **Analytics setup** – Google Analytics, Cronitor, Open Panel integrations +- **Gallery functionality** – PhotoSwipe lightbox initialization +- **Liquid template processing** – Files with `.liquid.js` extension process Jekyll Liquid syntax + +## Key Script Files + +### `search.liquid.js` + +- **Purpose:** Generates searchable navigation data for the Ninja-keys search component +- **Type:** Liquid + JavaScript hybrid (Jekyll processes `.liquid.js` files) +- **Output:** Compiled to `/assets/js/search-data.js` via permalink frontmatter +- **Content:** Builds `ninja.data` array from site pages, posts, and navigation structure +- **Usage:** Included in `_includes/scripts.liquid` and loaded in layouts + +### `photoswipe-setup.js` + +- **Purpose:** Initializes PhotoSwipe lightbox for image galleries +- **Type:** Pure JavaScript with ES6 imports +- **Output:** Compiled to `/assets/js/photoswipe-setup.js` +- **Dependencies:** PhotoSwipe library (referenced via `site.third_party_libraries`) +- **Functionality:** Automatically converts `.pswp-gallery` elements into interactive lightbox galleries + +### `google-analytics-setup.js`, `cronitor-analytics-setup.js`, `open-panel-analytics-setup.js` + +- **Purpose:** Initialize third-party analytics services +- **Type:** Conditional setup scripts (may be excluded from production builds) +- **Usage:** Loaded conditionally based on `_config.yml` feature flags +- **Integration:** Each sets up tracking code for respective analytics platforms + +## File Structure & Frontmatter + +All scripts in `_scripts/` may include Jekyll frontmatter: + +```javascript +--- +permalink: /assets/js/filename.js +--- +// JavaScript code here +``` + +**Key frontmatter fields:** + +- `permalink:` – Specifies output path in compiled site (e.g., `/assets/js/search-data.js`) +- Comments/empty – Files with only JavaScript and no frontmatter are processed as-is + +**Processing:** + +- `.liquid.js` files – Processed by Jekyll's Liquid engine before JavaScript compilation +- `.js` files – Processed normally, passed through to assets directory +- **Note:** Files in `_scripts/` are ignored by Prettier (see `.prettierignore`) because `.liquid.js` files mix Liquid template syntax with JavaScript, which Prettier doesn't support + +## JavaScript Patterns in al-folio + +### Liquid + JavaScript Mixing (in `.liquid.js` files) + +Example from `search.liquid.js`: + +```javascript +--- +permalink: /assets/js/search-data.js +--- +// Regular JavaScript +const ninja = document.querySelector('ninja-keys'); + +// Liquid processing - Jekyll loops and variables +ninja.data = [ + {%- for page in site.pages -%} + { + id: "nav-{{ page.title | slugify }}", + title: "{{ page.title }}", + handler: () => { + window.location.href = "{{ page.url | relative_url }}"; + }, + }, + {%- endfor -%} +]; +``` + +**Important:** + +- Use Liquid filters (`| slugify`, `| relative_url`, `| escape`) to process Jekyll variables +- Curly braces `{{ }}` output variables +- Use `{%- -%}` (with hyphens) to control whitespace in generated output +- Keep JSON structures valid after Liquid processing + +### ES6 Modules & Imports + +Scripts use modern JavaScript with ES6 imports: + +```javascript +import PhotoSwipeLightbox from "{{ site.third_party_libraries.photoswipe-lightbox.url.js }}"; +import PhotoSwipe from "{{ site.third_party_libraries.photoswipe.url.js }}"; +``` + +- Import third-party libraries via `site.third_party_libraries` configuration +- Libraries resolved from `_config.yml` CDN or local paths + +### DOM Manipulation & Event Handlers + +Scripts attach to specific DOM elements: + +```javascript +const element = document.querySelector(".selector"); +element.addEventListener("click", (event) => { + // Handle event +}); +``` + +## Common Modification Patterns + +### Adding a New Analytics Service + +1. Create new file `_scripts/myservice-setup.js`: + +```javascript +--- +permalink: /assets/js/myservice-setup.js +--- +(function() { + // Initialize your service + if (window.myService) { + console.log('MyService loaded'); + } +})(); +``` + +2. Add conditional loading to `_includes/scripts.liquid`: + +```liquid +{% if site.myservice_enabled %} + +{% endif %} +``` + +3. Add feature flag to `_config.yml`: + +```yaml +myservice_enabled: false +``` + +### Modifying Search Data Structure + +In `search.liquid.js`: + +1. Identify the Liquid loop building `ninja.data` array +2. Add new properties to each object: + +```javascript +{ + id: "nav-{{ title | slugify }}", + title: "{{ title }}", + newField: "{{ page.new_property }}", // Add new field + handler: () => { ... } +} +``` + +3. Rebuild: `docker compose up` will regenerate `/assets/js/search-data.js` + +### Updating Gallery Functionality + +In `photoswipe-setup.js`: + +1. Modify gallery selector or initialization options +2. Reference [PhotoSwipe documentation](https://photoswipe.com/) for available options +3. Update any CSS classes used in gallery markup + +## Code Style Notes + +**Prettier and \_scripts/:** + +Files in `_scripts/` are **excluded from Prettier formatting** (defined in `.prettierignore`) because: + +- `.liquid.js` files contain mixed Liquid template syntax and JavaScript +- Prettier doesn't understand or support this hybrid format +- Manual formatting consistency is required for these files + +**When modifying \_scripts/ files:** + +- Follow existing code style in the file (indentation, spacing, quotes) +- Maintain readability for Liquid + JavaScript mixed code +- Do NOT run Prettier on the `_scripts/` directory +- **DO run Prettier on the rest of the project** when making other changes: `npx prettier . --write` + +## Validation & Testing + +### Local Build Test + +```bash +docker compose up +# Wait 30 seconds for Jekyll to build +# Check for errors in terminal output +# Visit http://localhost:8080 and verify functionality +``` + +### Checking Generated Output + +After `docker compose up`, verify scripts compiled correctly: + +```bash +# Check if script files exist in _site/assets/js/ +ls _site/assets/js/ + +# Verify no Liquid syntax in generated output (should be pure JavaScript) +cat _site/assets/js/search-data.js | head -20 +``` + +### Debugging Script Issues + +**Script not loading:** + +- Check browser DevTools Console for HTTP 404 errors +- Verify `permalink:` frontmatter matches script inclusion paths +- Check that script is actually in `_site/assets/js/` after build + +**Liquid syntax errors:** + +- Jekyll build will fail with "Liquid Exception" messages +- Check file for unclosed `{% %}` or `{{ }}` tags +- Ensure Liquid filters exist (`| relative_url`, `| slugify`, etc.) + +**JavaScript errors:** + +- Check browser console for runtime errors +- Verify all imported libraries are defined in `site.third_party_libraries` in `_config.yml` +- Test in both Chrome and Firefox for compatibility + +## Trust These Instructions + +When modifying JavaScript scripts: + +- `.liquid.js` files must have valid Liquid syntax AND valid JavaScript that remains valid after Jekyll processes the Liquid +- Do NOT run Prettier on `_scripts/` files (they are in `.prettierignore` because of Liquid + JavaScript mixing) +- Test locally with `docker compose up` to verify build succeeds and scripts work +- For site-wide script inclusion, modify `_includes/scripts.liquid` +- For configuration (feature flags, third-party URLs), see yaml-configuration.instructions.md +- Reference the actual script files in `_scripts/` as examples when adding new functionality +- Only search for additional details if errors occur during build or testing diff --git a/.github/instructions/liquid-templates.instructions.md b/.github/instructions/liquid-templates.instructions.md new file mode 100644 index 0000000000000..04d3d3579d7cd --- /dev/null +++ b/.github/instructions/liquid-templates.instructions.md @@ -0,0 +1,100 @@ +--- +applyTo: "**/*.liquid" +--- + +# Liquid Templates Instructions + +## Liquid Template Basics + +This al-folio repository uses Liquid templating extensively. When modifying `.liquid` files: + +### Key Directories + +- `_includes/` – Reusable template components (imported with `{% include %}`) +- `_layouts/` – Page layout templates (specified in frontmatter with `layout: name`) + +### Common Liquid Tags in al-folio + +- `{% include filename.liquid %}` – Includes template component +- `{% for item in collection %}...{% endfor %}` – Loops +- `{% if condition %}...{% endif %}` – Conditionals +- `{{ variable }}` – Output variable +- `{% assign var = value %}` – Assign variable +- `{% capture %}...{% endcapture %}` – Capture output to variable +- `| date: format` – Date filtering +- `| where: "key", "value"` – Collection filtering + +### Important al-folio Liquid Components + +- `_includes/citation.liquid` – Bibliography entry rendering +- `_includes/distill_scripts.liquid` – Distill.pub specific scripts +- `_includes/footer.liquid` – Site footer +- `_includes/head.liquid` – Page section +- `_includes/header.liquid` – Site header/navigation +- `_includes/projects.liquid` – Project display +- `_includes/scripts.liquid` – Global scripts +- `_includes/selected_papers.liquid` – Featured publications display + +### Prettier Formatting for Liquid + +Prettier with `@shopify/prettier-plugin-liquid` enforces formatting: + +- Single quotes around strings in Liquid tags +- Consistent spacing +- Indentation with 2 spaces +- Run `npx prettier . --write` before committing + +## Common Modification Patterns + +### Modifying Site Header/Navigation + +- Edit `_includes/header.liquid` +- Add links to navigation array in `_config.yml` (see yaml-configuration.instructions.md) +- Test by viewing site in browser: `docker compose up` → http://localhost:8080 + +### Adding a New Component Include + +1. Create new file in `_includes/mycomponent.liquid` +2. Use Liquid syntax for conditionals, loops, and variable output +3. Call it from templates: `{% include mycomponent.liquid %}` +4. Test: `docker compose up` + +### Adjusting Styling with Liquid + +- Some SCSS variables can be controlled via Liquid logic +- Avoid mixing complex Liquid with CSS; keep templates focused + +## Validation Before Committing + +**Always run these checks:** + +1. **Prettier format check:** + + ```bash + npx prettier _includes/ _layouts/ --check + npx prettier . --write # Fix formatting + ``` + +2. **Build test:** + + ```bash + docker compose down + docker compose up + # Wait 30 seconds, check for errors in output + # No "Unknown tag" messages should appear + ``` + +3. **Visual verification:** + - Open http://localhost:8080 + - Check that your changes rendered correctly + - Verify no broken layout or missing content + +## Trust These Instructions + +When working with Liquid templates: + +- Use `_includes/` and `_layouts/` as reference for syntax patterns +- Follow existing formatting in files (Prettier will enforce consistency) +- Always test locally before pushing (build must succeed) +- For configuration changes, see yaml-configuration.instructions.md +- Only search for additional details if error messages reference unfamiliar Liquid tags or Jekyll concepts diff --git a/.github/instructions/markdown-content.instructions.md b/.github/instructions/markdown-content.instructions.md new file mode 100644 index 0000000000000..cce376998f407 --- /dev/null +++ b/.github/instructions/markdown-content.instructions.md @@ -0,0 +1,277 @@ +--- +applyTo: "_books/**/*.md,_news/**/*.md,_pages/**/*.md,_posts/**/*.md,_projects/**/*.md,_teachings/**/*.md" +--- + +# Content Files (Markdown) Instructions + +## File Organization + +Content in al-folio is organized by type: + +- **\_books/** – Book reviews and summaries +- **\_news/** – News/announcements +- **\_pages/** – Static pages (about, CV, publications, projects, etc.) +- **\_posts/** – Blog posts (format: `YYYY-MM-DD-title.md`) +- **\_projects/** – Project showcase entries +- **\_teachings/** – Course and teaching information + +## Frontmatter Structure + +Every markdown file requires YAML frontmatter at the top. The structure varies by content type. + +### Book Frontmatter (\_books/) + +```yaml +--- +layout: book-review +title: Book Title +author: Book Author Name +publisher: Publisher Name +year: 2023 +rating: 8/10 +img: /assets/img/book-cover.jpg +--- +``` + +### News Frontmatter (\_news/) + +```yaml +--- +layout: post +title: News Title +date: YYYY-MM-DD +--- +``` + +### Page Frontmatter (\_pages/) + +```yaml +--- +layout: page +title: Page Title +permalink: /pathname/ +description: Brief description for metadata +--- +``` + +### Blog Post Frontmatter (\_posts/) + +```yaml +--- +layout: post +title: Post Title +date: YYYY-MM-DD +categories: category-name +description: Brief description +--- +``` + +**Important:** Post filenames MUST follow format: `YYYY-MM-DD-title.md` (hyphen-separated words) + +### Project Frontmatter (\_projects/) + +```yaml +--- +layout: page +title: Project Name +description: Short description +img: /assets/img/project-image.jpg +importance: 1 +--- +``` + +### Teaching/Course Frontmatter (\_teachings/) + +```yaml +--- +layout: page +title: Course Title +description: Course description +--- +``` + +## Special Frontmatter Fields + +### For Books + +- **author:** Author name or comma-separated list +- **publisher:** Publisher name +- **year:** Publication year +- **rating:** Personal rating (e.g., `8/10`) +- **img:** Path to book cover image (`/assets/img/...`) + +### For Blog Posts + +- **categories:** Tag for post organization (single word, no spaces) +- **related_posts:** Set to `false` to disable related posts display (useful for short posts) + +### For Projects + +- **importance:** Integer (1, 2, 3...) – higher = featured first +- **img:** Path to thumbnail image (`/assets/img/...`) +- **featured:** Set to `true` to display on main projects section + +### Date Format + +Always use ISO 8601: `YYYY-MM-DD` (e.g., `2023-12-25`) + +## Markdown Content + +### Basic Markdown Syntax + +```markdown +# Heading 1 + +## Heading 2 + +### Heading 3 + +**bold text** +_italic text_ +`inline code` + +- List item 1 +- List item 2 + +[Link text](https://url.com) + +![Image alt text](/path/to/image.jpg) +``` + +### al-folio-Specific Features + +#### Includes/Shortcodes + +- `{% include figure.liquid ... %}` – Responsive images with captions +- `{% include audio.liquid ... %}` – Audio player +- `{% include video.liquid ... %}` – Video player +- `{% include bib_search.liquid ... %}` – Bibliography search +- `{% include calendar.liquid ... %}` – Event calendar + +#### Math Support + +```markdown +Inline: $E = mc^2$ + +Display mode: +$$\int_0^1 f(x) dx$$ +``` + +#### Code Blocks + +````markdown +```python +def hello(): + print("Hello, world!") +``` +```` + +#### Blockquotes + +```markdown +> This is a quote +> +> > Nested quote +``` + +### Jekyll Features Available + +- **Liquid variables:** `{{ site.title }}`, `{{ page.title }}` +- **Collections:** `{{ site.posts }}`, `{{ site.projects }}` +- **Filters:** `| date: format`, `| where: key value` +- **Tags:** `{% if condition %} ... {% endif %}` + +## Common Content Patterns + +### Creating a Blog Post + +1. Create file: `_posts/YYYY-MM-DD-my-post.md` +2. Add frontmatter with `layout: post`, `title`, `date`, `categories` +3. Write markdown content +4. Test: `docker compose up` → http://localhost:8080/blog +5. Post will appear in reverse chronological order + +### Creating a Project Entry + +1. Create file: `_projects/project-name.md` +2. Add frontmatter with `layout: page`, `title`, `description`, `img`, `importance` +3. Write markdown content describing the project +4. Test: `docker compose up` → http://localhost:8080/projects + +### Adding Images + +```markdown +{% include figure.liquid path="/assets/img/example.jpg" title="Image caption" %} +``` + +### Linking to Other Pages + +```markdown +[About Me](/about/) +[My CV](/cv/) +[Blog Post]({% link _posts/2023-01-15-my-post.md %}) +``` + +## Testing & Validation + +### Before Committing + +1. **Frontmatter syntax:** Verify YAML is valid (no unclosed quotes, proper indentation) +2. **Date format:** Check `YYYY-MM-DD` format is correct +3. **Build test:** + ```bash + docker compose down + docker compose up + # Wait for "Server running" message + # Navigate to your content in browser + # Verify formatting, images, and links work + ``` + +### Common Issues + +- **Post not appearing:** Check `date` is today or earlier, filename format is correct +- **Images not loading:** Verify path starts with `/assets/`, file exists +- **Related posts error:** Content has no meaningful words; add more text or set `related_posts: false` + +## File Naming Conventions + +### Blog Posts + +- Format: `YYYY-MM-DD-title-with-hyphens.md` +- Example: `2023-12-25-christmas-post.md` +- Words separated by hyphens, no spaces + +### Projects + +- Format: `project-name.md` +- Example: `my-research-project.md` +- Use hyphens for readability + +### Pages + +- Format: `descriptive-name.md` +- Example: `about.md`, `teaching.md`, `cv.md` + +## Markdown Linting & Formatting + +The Prettier formatter applies to markdown files: + +- **Line length:** Soft wrap at 88 characters +- **Lists:** Consistent bullet formatting +- **Code blocks:** Proper fence syntax +- **Spacing:** Consistent blank lines + +**Always run before committing:** + +```bash +npx prettier --write . +``` + +## Trust These Instructions + +When creating or editing content: + +- Follow the frontmatter structure for your content type +- Test locally with `docker compose up` to verify appearance +- Check date format, filename format, and image paths +- Only search for advanced features if frontmatter or markdown error messages appear diff --git a/.github/instructions/yaml-configuration.instructions.md b/.github/instructions/yaml-configuration.instructions.md new file mode 100644 index 0000000000000..10a074f10fb92 --- /dev/null +++ b/.github/instructions/yaml-configuration.instructions.md @@ -0,0 +1,250 @@ +--- +applyTo: "_config.yml,_data/**/*.yml" +--- + +# YAML Configuration Instructions + +## YAML Configuration (\_config.yml) + +### Critical Settings for Agents + +When modifying `_config.yml`, always update these in pairs: + +- **url** and **baseurl** must be consistent: + - Personal site: `url: https://username.github.io`, `baseurl:` (leave empty) + - Project site: `url: https://username.github.io`, `baseurl: /projectname/` +- **title, first_name, last_name** – Site header and metadata +- **description** – Used in RSS feeds and metadata +- **lang** – Language code (e.g., "en", "fr") + +### Feature Flags in \_config.yml + +Look for `enabled: false/true` patterns. Common ones: + +- `blog.enabled` +- `news.enabled` +- `profile.image_circular` +- `profile.show_social_links` +- `projects.enabled` +- `publications.enabled` +- `related_blog_posts` + +### YAML Syntax Rules + +- Quote string values containing special characters: `":"` +- Use `>` for multi-line strings (ignore newlines) +- Use `|` for multi-line strings (preserve newlines) +- Indentation matters: always use spaces (2 spaces), never tabs +- No tabs allowed; use only spaces + +### Testing YAML Syntax + +If you modify `_config.yml`, verify syntax by running: + +```bash +docker compose up +# Site should start without YAML parse errors +# Check output for "YAML parse error" or "valid YAML" +``` + +## Data Files (\_data/\*.yml) + +Data files provide structured content that templates can access via Liquid. Each file serves a specific purpose. + +### socials.yml + +Defines social media links and contact information displayed on the site. + +**Format:** Entries are displayed in the order they are defined (not alphabetically sorted) + +**For standard socials:** Use the key with the appropriate value. Common built-in socials include: + +- `email:` – Email address +- `cv_pdf:` – Path to CV PDF file +- `scholar_userid:` – Google Scholar ID +- `inspirehep_id:` – Inspire HEP author ID +- `rss_icon:` – Boolean to show/hide RSS icon +- And many others (see [jekyll-socials documentation](https://github.com/george-gca/jekyll-socials) for full list) + +**For custom socials:** Define a custom entry with nested fields: + +- `logo:` – URL or path to logo image +- `title:` – Display name +- `url:` – Profile or website URL + +**Example:** + +```yaml +cv_pdf: /assets/pdf/example_pdf.pdf +email: you@example.com +scholar_userid: qc6CJjYAAAAJ +github_username: username +linkedin_username: username + +custom_social: + logo: https://example.com/logo.png + title: Custom Profile + url: https://example.com/ +``` + +For more information, see the [jekyll-socials documentation](https://github.com/george-gca/jekyll-socials). + +### cv.yml + +CV content in **RenderCV format** (recommended approach for generating professional CVs). + +**Format:** [RenderCV](https://rendercv.com/) YAML format — human-readable and designed specifically for professional resumes with automatic PDF generation capability. + +**Key Files:** + +- [`_data/cv.yml`](_data/cv.yml) — Main CV content in RenderCV format +- [`assets/rendercv/design.yaml`](assets/rendercv/design.yaml) — Design and styling customization +- [`assets/rendercv/locale.yaml`](assets/rendercv/locale.yaml) — Localization and text formatting +- [`assets/rendercv/settings.yaml`](assets/rendercv/settings.yaml) — RenderCV-specific settings + +**Usage:** Rendered by `cv.liquid` layout on CV page; displayed in `about.liquid` on home page. + +**Automatic PDF Generation:** When using RenderCV format, a GitHub Actions workflow (`render-cv.yml`) automatically generates a PDF version whenever you push changes to `_data/cv.yml`. The generated PDF is saved to `assets/rendercv/rendercv_output/` and can be linked via `cv_pdf` setting in `_config.yml`. + +**Alternative Format (JSONResume):** For an alternative format, see `assets/json/resume.json` which uses the [JSONResume](https://jsonresume.org/) standard. Switch between formats using the `cv_format` frontmatter variable in `_pages/cv.md` (options: `rendercv` or `jsonresume`). + +**For more details:** See [CUSTOMIZE.md § Modifying the CV information](CUSTOMIZE.md#modifying-the-cv-information) for setup, switching formats, and PDF generation configuration. + +### citations.yml + +Social media citation counts and metrics. + +**Format:** Varies by platform (Google Scholar, ORCID, etc.) + +**Example:** + +```yaml +scholar_userid: YOUR_SCHOLAR_ID +``` + +### repositories.yml + +GitHub repository listing for the repositories page. + +**Format:** List of repository information + +**Usage:** Used by repositories page to display GitHub projects + +### coauthors.yml + +Co-author information for bibliography/publications. + +**Mapping:** Author names to profile URLs and affiliations + +**Format:** Maps full names to contact info + +**Example:** + +```yaml +"Einstein, Albert": + url: https://en.wikipedia.org/wiki/Albert_Einstein + affiliation: Princeton University +``` + +## Common Modification Patterns + +### Adding a New Feature Flag + +1. Add to `_config.yml`: + + ```yaml + my_feature: + enabled: true + ``` + +2. In Liquid templates use: + + ```liquid + {% if site.my_feature.enabled %} + ... content ... + {% endif %} + ``` + +3. Document the flag in CUSTOMIZE.md + +### Updating Social Media Links + +1. Edit `_data/socials.yml` +2. Keep entries alphabetically sorted +3. Ensure `icon` identifiers match available icons (Academicons or Font Awesome) +4. Use full profile URLs in `url` field +5. Test: `docker compose up` → check social icons on site + +### Modifying Site Metadata + +Update these in `_config.yml`: + +- **title** – Site name +- **first_name, last_name** – Your name +- **email** – Contact email +- **description** – Site tagline (used in RSS, metadata) +- **keywords** – Search keywords + +### Adding Co-authors + +1. Edit `_data/coauthors.yml` +2. Add entry with author name as key +3. Include `url:` and `affiliation:` fields +4. This maps author names in BibTeX to profile links + +## Validation Before Committing + +**Always run these checks:** + +1. **YAML syntax check:** + + ```bash + # Run Jekyll build to validate YAML + docker compose down + docker compose up + # Wait for "Server running" message + # Check output for "YAML parse error" messages + ``` + +2. **Prettier format check:** + + ```bash + npx prettier _config.yml _data/ --check + npx prettier . --write # Fix formatting + ``` + +3. **Visual verification:** + - Open http://localhost:8080 + - Check that your changes appear correctly + - Verify navigation, social links, and metadata work + - Check site title and description in page source + +## Common Issues + +### "YAML parse error" + +- Check for unquoted special characters (`:`, `&`, `#`, `|`, `>`) +- Verify indentation uses only spaces (2 spaces per level) +- Ensure closing quotes and braces are present + +### Feature flag not working + +- Check syntax: `feature: enabled: true` (colon after feature name) +- Verify spelling in Liquid template: `{% if site.feature.enabled %}` +- Clear browser cache if using old cached pages + +### Social links not appearing + +- Verify `_data/socials.yml` has correct entries +- Check icon identifiers exist in Font Awesome or Academicons +- Ensure `url:` field is not empty + +## Trust These Instructions + +When working with YAML configuration: + +- Always test locally with `docker compose up` after changes +- Quote any string containing special characters +- Keep indentation consistent (2 spaces) +- Check output for YAML parse errors before committing +- Only search for additional details if encountering error messages not mentioned here diff --git a/.github/workflows/broken-links-site.yml b/.github/workflows/broken-links-site.yml index b6b9e2df6fd8b..a62684d2a6f29 100644 --- a/.github/workflows/broken-links-site.yml +++ b/.github/workflows/broken-links-site.yml @@ -40,7 +40,7 @@ jobs: npm install -g purgecss purgecss -c purgecss.config.js - name: Link Checker 🔗 - uses: lycheeverse/lychee-action@v1.9.0 + uses: lycheeverse/lychee-action@v2.0.2 with: fail: true # only check local links diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 88a2ad4034e3a..ce7b9e8d7a41d 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -47,8 +47,8 @@ jobs: - uses: actions/checkout@v4 - name: Link Checker 🔗 - uses: lycheeverse/lychee-action@v2.1.0 + uses: lycheeverse/lychee-action@v2.0.2 with: fail: true # removed md files that include liquid tags - args: --user-agent 'curl/7.54' --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _posts/2018-12-22-distill.md --exclude-path _posts/2023-04-24-videos.md --exclude-path _books/the_godfather.md --verbose --no-progress './**/*.md' './**/*.html' + args: --user-agent 'curl/7.54' --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _posts/2018-12-22-distill.md --exclude-path _posts/2023-04-24-videos.md --exclude-path _books/the_godfather.md --exclude-path .github/instructions/bibtex-bibliography.instructions.md --exclude-path .github/instructions/yaml-configuration.instructions.md --exclude-path .github/instructions/markdown-content.instructions.md --exclude-path .github/instructions/liquid-templates.instructions.md --exclude-path AGENTS.md --exclude-path SEO.md --verbose --no-progress './**/*.md' './**/*.html' diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml new file mode 100644 index 0000000000000..e1b652e8d0179 --- /dev/null +++ b/.github/workflows/copilot-setup-steps.yml @@ -0,0 +1,58 @@ +name: "Copilot Setup Steps" + +# Automatically run the setup steps when they are changed to allow for easy validation, and +# allow manual testing through the repository's "Actions" tab +on: + workflow_dispatch: + push: + paths: + - .github/workflows/copilot-setup-steps.yml + pull_request: + paths: + - .github/workflows/copilot-setup-steps.yml + +jobs: + # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. + copilot-setup-steps: + runs-on: ubuntu-latest + + # Set the permissions to the lowest permissions possible needed for your steps. + # Copilot will be given its own token for its operations. + permissions: + contents: read + + # You can define any steps you want, and they will run before the agent starts. + # If you do not check out your code, Copilot will do this for you. + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.3.5" + bundler-cache: true + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + cache: "pip" + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "latest" + cache: "npm" + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y imagemagick + + - name: Install Python dependencies + run: | + pip3 install --upgrade nbconvert + + - name: Install Node.js dependencies + run: npm ci diff --git a/.github/workflows/docker-slim.yml b/.github/workflows/docker-slim.yml index 3a67d32a142d6..b342ef662f151 100644 --- a/.github/workflows/docker-slim.yml +++ b/.github/workflows/docker-slim.yml @@ -12,11 +12,7 @@ on: workflows: ["Docker Image CI"] types: - completed - -# on: -# push: -# branches: -# - 'master' + workflow_dispatch: jobs: build: @@ -43,7 +39,7 @@ jobs: sed -i "s|\.:|${{ github.workspace }}:|g" ${{ github.workspace }}/docker-compose.yml cat ${{ github.workspace }}/docker-compose.yml - - uses: kitabisa/docker-slim-action@v1.1.1 + - uses: kitabisa/docker-slim-action@v1.2.0 env: DSLIM_PULL: true DSLIM_COMPOSE_FILE: ${{ github.workspace }}/docker-compose.yml diff --git a/.github/workflows/lighthouse-badger.yml b/.github/workflows/lighthouse-badger.yml index ac97357728f82..addec2d3165cf 100644 --- a/.github/workflows/lighthouse-badger.yml +++ b/.github/workflows/lighthouse-badger.yml @@ -16,7 +16,7 @@ name: "Lighthouse Badger" env: URLS: https://alshedivat.github.io/al-folio/ # If any of the following env is blank, a default value is used instead - REPO_BRANCH: "${{ github.repository }} main" # target repository & branch e.g. 'dummy/mytargetrepo main' + REPO_BRANCH: "${{ github.repository }} master" # target repository & branch e.g. 'dummy/mytargetrepo main' MOBILE_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --throttling.cpuSlowdownMultiplier=2" DESKTOP_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --preset=desktop --throttling.cpuSlowdownMultiplier=1" diff --git a/.github/workflows/render-cv.yml b/.github/workflows/render-cv.yml new file mode 100644 index 0000000000000..af2c5580c984d --- /dev/null +++ b/.github/workflows/render-cv.yml @@ -0,0 +1,58 @@ +name: Render a CV +on: + push: + branches: + - main + - master + paths: + - "_data/cv.yml" + - "assets/rendercv/design.yaml" + - "assets/rendercv/locale.yaml" + - "assets/rendercv/settings.yaml" + workflow_call: + workflow_dispatch: +permissions: + contents: write +jobs: + rendercv: + name: RenderCV + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Install RenderCV + run: | + pip install -r requirements.txt + - name: RenderCV + run: | + cv_file=$(find _data -maxdepth 1 -type f \( -name "cv.yaml" -o -name "cv.yml" \)) + if [ -z "$cv_file" ]; then + echo "No cv.yml file found!" + exit 1 + fi + rendercv_dir=$(find assets -maxdepth 1 -type d -name "rendercv") + if [ -z "$rendercv_dir" ]; then + echo "No RenderCV config directory found!" + exit 1 + fi + settings=$(find $rendercv_dir -maxdepth 1 -type f \( -name "settings.yaml" -o -name "settings.yml" \)) + if [ -z "$settings" ]; then + echo "Missing RenderCV config file!" + exit 1 + fi + rendercv render $cv_file --settings $settings + rm assets/rendercv/rendercv_output/*.typ + - name: Upload rendercv_output as an artifact + uses: actions/upload-artifact@v4 + with: + name: RenderCV Output + path: assets/rendercv/rendercv_output + - name: Push the changes + run: | + git config --global user.name "${{ github.actor }}" + git config --global user.email "${{ github.actor }}@users.noreply.github.com" + git add -A + git commit -m "chore: render the latest CV" + git push diff --git a/.github/workflows/update-citations.yml b/.github/workflows/update-citations.yml new file mode 100644 index 0000000000000..3335d7ec92f20 --- /dev/null +++ b/.github/workflows/update-citations.yml @@ -0,0 +1,101 @@ +name: Update Google Scholar Citations + +on: + schedule: + - cron: "0 0 * * 1" # Monday + - cron: "0 0 * * 3" # Wednesday + - cron: "0 0 * * 5" # Friday + workflow_dispatch: + +jobs: + update-citations: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + # See CUSTOMIZE.md for details on how to set up PAT for triggering subsequent workflows + # with: + # token: ${{ secrets.PAT }} + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.13" + + - name: Install dependencies + run: | + echo "🔧 Installing dependencies..." + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Save current citations.yml hash + id: before + run: | + echo "📦 Checking existing citations.yml hash..." + if [ -f _data/citations.yml ]; then + sha_before=$(sha256sum _data/citations.yml | awk '{print $1}') + echo "sha_before=$sha_before" >> $GITHUB_OUTPUT + echo "📝 SHA before: $sha_before" + else + echo "sha_before=none" >> $GITHUB_OUTPUT + echo "📝 No existing citations.yml file found." + fi + + - name: Run citation update script + id: run_citation_update + shell: bash + run: | + set +e + echo "🚀 Running citation update script (single attempt)..." + start_time=$(date) + timeout 90 python bin/update_scholar_citations.py + status=$? + end_time=$(date) + if [ $status -eq 0 ]; then + echo "✅ Citation update succeeded (started at $start_time, ended at $end_time)." + echo "✅ Citation update succeeded." >> $GITHUB_STEP_SUMMARY + else + echo "❌ Citation update script failed with exit code $status (started at $start_time, ended at $end_time)." + echo "❌ Citation update script failed with exit code $status." >> $GITHUB_STEP_SUMMARY + fi + set -e + + - name: Save new citations.yml hash + id: after + run: | + echo "🔍 Checking updated citations.yml hash..." + if [ -f _data/citations.yml ]; then + sha_after=$(sha256sum _data/citations.yml | awk '{print $1}') + echo "sha_after=$sha_after" >> $GITHUB_OUTPUT + echo "📝 SHA after: $sha_after" + else + echo "sha_after=none" >> $GITHUB_OUTPUT + echo "📝 citations.yml was not created or is missing." + fi + + - name: Report citations.yml change in summary + run: | + echo "📋 Comparing citation file hashes..." + if [ "${{ steps.before.outputs.sha_before }}" != "${{ steps.after.outputs.sha_after }}" ]; then + echo "✅ _data/citations.yml was updated." + echo "✅ _data/citations.yml was updated." >> $GITHUB_STEP_SUMMARY + else + echo "ℹ️ _data/citations.yml was not changed." + echo "ℹ️ _data/citations.yml was not changed." >> $GITHUB_STEP_SUMMARY + fi + + - name: Configure Git + run: | + git config --local user.email "actions@github.com" + git config --local user.name "GitHub Actions" + echo "🔧 Git configured." + + - name: Commit and push if changed + run: | + git add _data/citations.yml + git diff --staged --quiet || ( + echo "📤 Committing and pushing changes..." + git commit -m "Update Google Scholar citations" + git push + ) diff --git a/.gitignore b/.gitignore index 53af7d0b4e7f6..1fee89bc29807 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,15 @@ _site .bundle -.sass-cache +.DS_store +.idea .jekyll-cache .jekyll-metadata -.DS_store .ruby-version +.sass-cache .tweet-cache -Gemfile.lock +.venv assets/libs/ +assets/rendercv/rendercv_output/*.typ +Gemfile.lock node_modules/ -vendor -.idea \ No newline at end of file +vendor \ No newline at end of file diff --git a/.lycheeignore b/.lycheeignore index b736879b92f13..64194b514e88f 100644 --- a/.lycheeignore +++ b/.lycheeignore @@ -1,2 +1,14 @@ -linkedin.com -reddit.com \ No newline at end of file +.github/instructions/bibtex-bibliography.instructions.md +.github/instructions/liquid-templates.instructions.md +.github/instructions/markdown-content.instructions.md +.github/instructions/yaml-configuration.instructions.md +_books/the_godfather.md +_pages/404.md +_pages/blog.md +_posts/2018-12-22-distill.md +_posts/2023-04-24-videos.md +AGENTS.md +https://www.linkedin.com/ +https://www.reddit.com/ +README.md +SEO.md diff --git a/.prettierignore b/.prettierignore index b276dd95393ab..ed2331ef0944f 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,3 +10,5 @@ _posts/2015-10-20-math.md _sass/font-awesome/*.scss _sass/tabler-icons/*.scss _scripts/* +# Ignore citation YAML file generated by script +_data/citations.yml diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000000000..8b22fd6a7cdd1 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,81 @@ +# Agent Guidelines for al-folio + +A simple, clean, and responsive Jekyll theme for academics. + +## Quick Links by Role + +- **Are you a coding agent?** → Read [`.github/copilot-instructions.md`](.github/copilot-instructions.md) first (tech stack, build, CI/CD, common pitfalls & solutions) +- **Customizing the site?** → See [`.github/agents/customize.agent.md`](.github/agents/customize.agent.md) +- **Writing documentation?** → See [`.github/agents/docs.agent.md`](.github/agents/docs.agent.md) +- **Need setup/deployment help?** → [INSTALL.md](INSTALL.md) +- **Troubleshooting & FAQ?** → [TROUBLESHOOTING.md](TROUBLESHOOTING.md) +- **Customization & theming?** → [CUSTOMIZE.md](CUSTOMIZE.md) +- **Quick 5-min start?** → [QUICKSTART.md](QUICKSTART.md) + +## Essential Commands + +### Local Development (Docker) + +The recommended approach is using Docker. + +```bash +# Initial setup & start dev server +docker compose pull && docker compose up +# Site runs at http://localhost:8080 + +# Rebuild after changing dependencies or Dockerfile +docker compose up --build + +# Stop containers and free port 8080 +docker compose down +``` + +### Pre-Commit Checklist + +Before every commit, you **must** run these steps: + +1. **Format Code:** + ```bash + # (First time only) + npm install --save-dev prettier @shopify/prettier-plugin-liquid + # Format all files + npx prettier . --write + ``` +2. **Build Locally & Verify:** + + ```bash + # Rebuild the site + docker compose up --build + + # Verify by visiting http://localhost:8080. + # Check navigation, pages, images, and dark mode. + ``` + +## Critical Configuration + +When modifying `_config.yml`, these **must be updated together**: + +- **Personal site:** `url: https://username.github.io` + `baseurl:` (empty) +- **Project site:** `url: https://username.github.io` + `baseurl: /repo-name/` +- **YAML errors:** Quote strings with special characters: `title: "My: Cool Site"` + +## Development Workflow + +- **Git & Commits:** For commit message format and Git practices, see [.github/GIT_WORKFLOW.md](.github/GIT_WORKFLOW.md). +- **Code-Specific Instructions:** Consult the relevant instruction file for your code type. + +| File Type | Instruction File | +| --------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| Markdown content (`_posts/`, `_pages/`, etc.) | [markdown-content.instructions.md](.github/instructions/markdown-content.instructions.md) | +| YAML config (`_config.yml`, `_data/`) | [yaml-configuration.instructions.md](.github/instructions/yaml-configuration.instructions.md) | +| BibTeX (`_bibliography/`) | [bibtex-bibliography.instructions.md](.github/instructions/bibtex-bibliography.instructions.md) | +| Liquid templates (`_includes/`, `_layouts/`) | [liquid-templates.instructions.md](.github/instructions/liquid-templates.instructions.md) | +| JavaScript (`_scripts/`) | [javascript-scripts.instructions.md](.github/instructions/javascript-scripts.instructions.md) | + +## Common Issues + +For troubleshooting, see: + +- [Common Pitfalls & Workarounds](.github/copilot-instructions.md#common-pitfalls--workarounds) in copilot-instructions.md +- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for detailed solutions +- [GitHub Issues](https://github.com/alshedivat/al-folio/issues) to search for your specific problem. diff --git a/ANALYTICS.md b/ANALYTICS.md new file mode 100644 index 0000000000000..6060f66441a4e --- /dev/null +++ b/ANALYTICS.md @@ -0,0 +1,186 @@ +# Analytics Setup Guide + +This guide helps you add website analytics to track visitor statistics and behavior. + + + +- [Analytics Setup Guide](#analytics-setup-guide) + - [Overview](#overview) + - [Supported Analytics Services](#supported-analytics-services) + - [Google Analytics](#google-analytics) + - [Setup Steps](#setup-steps) + - [Privacy-Friendly Alternatives](#privacy-friendly-alternatives) + - [Pirsch Analytics](#pirsch-analytics) + - [Openpanel Analytics](#openpanel-analytics) + - [Monitoring & Performance](#monitoring--performance) + - [Cronitor](#cronitor) + - [GDPR and Privacy Considerations](#gdpr-and-privacy-considerations) + - [GDPR Checklist](#gdpr-checklist) + - [Privacy-first services (No GDPR cookie banner needed)](#privacy-first-services-no-gdpr-cookie-banner-needed) + - [Services requiring cookie consent](#services-requiring-cookie-consent) + - [Comparing Analytics Services](#comparing-analytics-services) + - [Next Steps](#next-steps) + + + +## Overview + +Analytics help you understand your website visitors: where they come from, which pages they visit, and how they interact with your content. al-folio supports several analytics providers that you can enable in `_config.yml`. + +## Supported Analytics Services + +Currently implemented in al-folio: + +- **Google Analytics** – Free, feature-rich, but collects user data +- **Pirsch Analytics** – GDPR-compliant, free tier available, European servers +- **Openpanel Analytics** – Open-source option, privacy-focused +- **Cronitor** – Uptime monitoring with Real User Monitoring (RUM) analytics + +--- + +## Google Analytics + +Google Analytics is free and widely used. It provides detailed insights into visitor behavior. + +### Setup Steps + +1. **Create a Google Analytics account:** + - Visit [Google Analytics](https://analytics.google.com) + - Sign in with your Google account + - Click **Start measuring** → **Create account** + +2. **Create a property for your website:** + - Enter your website name and URL + - Accept terms and continue + - Choose your timezone and currency + +3. **Get your Measurement ID:** + - In the left sidebar, go to **Admin** → **Properties** + - Click **Data Streams** → **Web** (or your existing stream) + - Copy the **Measurement ID** (format: `G-XXXXXXXXXX`) + +4. **Enable in your site:** + - Open `_config.yml` in your repository + - Set `enable_google_analytics: true` + - Add your Measurement ID: `google_analytics: G-XXXXXXXXXX` + - Commit and push + +5. **Verify it's working:** + - Visit your website + - Go back to Google Analytics → **Real-time** tab + - You should see your visit appear within a few seconds + +**Note:** Google Analytics takes 24-48 hours to start showing data trends. + +--- + +## Privacy-Friendly Alternatives + +If you're concerned about user privacy or GDPR compliance, consider these alternatives: + +### Pirsch Analytics + +**Best for:** GDPR-compliant analytics without complex setup + +**Features:** + +- ✅ GDPR compliant +- ✅ European servers +- ✅ Free tier available +- ✅ Simple integration +- ✅ No cookie consent needed + +**Setup:** + +1. Sign up at [Pirsch.io](https://pirsch.io) +2. Add your domain +3. Copy the tracking code +4. In `_config.yml`, set `enable_pirsch_analytics: true` +5. Add your Site ID: `pirsch_analytics: YOUR_SITE_ID` (format: 32 characters) +6. Commit and push + +(The site ID appears in your Pirsch dashboard.) + +--- + +### Openpanel Analytics + +**Best for:** Open-source and privacy-conscious developers + +**Features:** + +- ✅ Open-source +- ✅ Self-hosted option available +- ✅ Privacy-focused +- ✅ Modern dashboard + +**Setup:** + +1. Sign up at [Openpanel.dev](https://openpanel.dev) +2. Create a project for your website +3. Get your **Client ID** +4. In `_config.yml`, set `enable_openpanel_analytics: true` +5. Add your Client ID: `openpanel_analytics: YOUR_CLIENT_ID` (format: UUID) +6. Commit and push + +--- + +## Monitoring & Performance + +### Cronitor + +Cronitor is an **uptime monitoring** service with RUM (Real User Monitoring) analytics. + +**Best for:** Tracking if your site is online + basic performance metrics + +**Setup:** + +1. Create account at [Cronitor.io](https://cronitor.io) +2. Get your **Site ID** +3. In `_config.yml`, set `enable_cronitor_analytics: true` +4. Add your Site ID: `cronitor_analytics: YOUR_SITE_ID` +5. Commit and push + +--- + +## GDPR and Privacy Considerations + +If you're in the European Union or serve EU visitors, consider GDPR requirements: + +### GDPR Checklist + +- [ ] If using Google Analytics: Add cookie consent banner +- [ ] Display a privacy policy explaining what analytics you use +- [ ] Allow users to opt-out if using tracking cookies +- [ ] Use privacy-first alternatives when possible + +### Privacy-first services (No GDPR cookie banner needed) + +- ✅ Pirsch Analytics +- ✅ Openpanel Analytics + +### Services requiring cookie consent + +- ❌ Google Analytics (EU users must consent first) +- ❌ Cronitor (collects user data via RUM) + +--- + +## Comparing Analytics Services + +| Service | Free | GDPR | Setup | Features | Best for | +| -------------------- | ------------ | ------------------- | ------ | ---------------- | -------------------------- | +| **Google Analytics** | ✅ | ⚠️ Requires consent | Easy | Detailed reports | Detailed tracking | +| **Pirsch** | ✅ Free tier | ✅ | Easy | Balanced | GDPR compliance | +| **Openpanel** | ✅ | ✅ | Medium | Modern dashboard | Privacy-focused developers | +| **Cronitor** | Paid | ⚠️ Requires consent | Easy | Uptime + RUM | Uptime monitoring | + +--- + +## Next Steps + +1. **Choose a service** based on your needs (privacy, features, budget) +2. **Follow the setup guide** for your chosen service +3. **Verify it's working** by visiting your site and checking the analytics dashboard + +For more customization help, see [CUSTOMIZE.md](CUSTOMIZE.md). diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000000000..43c994c2d3617 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +@AGENTS.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 98685d48a7f39..6b50186dc2d0f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,14 +10,79 @@ If you would like to implement a new feature or a bug, please make sure you (or Note that since [#2048](https://github.com/alshedivat/al-folio/pull/2048) al-folio uses the [prettier formatter](https://prettier.io/) for its code, meaning all new submitted code must conform to its standard. If you don't have `prettier` installed for your setup and the `prettier` code check fails when submitting a PR, you can check the referred failed action in our repo. In that action there will be an artifact with an HTML diff showing the needed changes. -### Adding new social media information +## GitHub Copilot Agents -To add new social media information, there are a few places you might need to modify. Currently, the template supports icons from [Academicons](https://jpswalsh.github.io/academicons/), [Font Awesome](https://fontawesome.com/), and [Tabler Icons](https://tabler.io/icons). For an example PR, check [Add HAL id to socials](https://github.com/alshedivat/al-folio/pull/3206/files). Note that the information in all these files are alphabetically sorted. +This repository includes specialized GitHub Copilot agents and files to assist with development and documentation: -- \_data/socials.yml - your social media information -- \_includes/metadata.liquid - add social media information to site metadata -- \_includes/social.liquid - where the social media icon will be displayed -- \_scripts/search.liquid.js - make the social media information appear in search +### CLAUDE.md + +The `CLAUDE.md` file serves as an entry point for Claude (Anthropic's AI assistant) when working with this repository. It uses Claude's `@path/to/import` syntax (as described in [Claude's best practices](https://code.claude.com/docs/en/best-practices#write-an-effective-claude-md)) to dynamically import the `AGENTS.md` file. This approach keeps documentation centralized while providing a convenient entry point for AI assistants. The file simply contains: + +``` +@AGENTS.md +``` + +### Customization Agent + +The **Customization Agent** (`.github/agents/customize.agent.md`) helps users customize their al-folio website. It: + +- Guides you through modifying configuration files, adding content, and customizing the theme +- Explains technical concepts in plain language for users without coding experience +- Applies changes directly to your repository files +- Provides step-by-step instructions for common customization tasks + +To use the customization agent, you need to have [GitHub Copilot](https://github.com/features/copilot) enabled in your repository. The agent can help with tasks like changing site information, updating your CV, adding publications, creating blog posts, customizing theme colors, and more. + +### Documentation Agent + +The **Documentation Agent** (`.github/agents/docs.agent.md`) maintains the project documentation. It: + +- Updates and maintains documentation files (`README.md`, `INSTALL.md`, `CUSTOMIZE.md`, `FAQ.md`, `CONTRIBUTING.md`) +- Keeps documentation in sync with code changes +- Writes clear, concise documentation for users without technical backgrounds +- Follows documentation standards and best practices + +The documentation agent is primarily intended for maintainers and contributors who are updating the project documentation. + +### Custom Instruction Files + +To enhance GitHub Copilot's effectiveness when working with specific file types, this repository includes custom instruction files in `.github/instructions/`: + +- **`.github/copilot-instructions.md`** – Main Copilot instructions with repository overview, build process, tech stack, project layout, CI/CD pipelines, and common pitfalls +- **`.github/instructions/liquid-templates.instructions.md`** – Guidance for modifying Liquid template files (`.liquid`) +- **`.github/instructions/yaml-configuration.instructions.md`** – Guidance for configuration and data files (`_config.yml`, `_data/**/*.yml`) +- **`.github/instructions/bibtex-bibliography.instructions.md`** – Guidance for bibliography files (`.bib`, `_bibliography/**`) +- **`.github/instructions/markdown-content.instructions.md`** – Guidance for content files across collections (`_books/`, `_news/`, `_pages/`, `_posts/`, `_projects/`, `_teachings/`) +- **`.github/instructions/javascript-scripts.instructions.md`** – Guidance for JavaScript files in `_scripts/` + +These files help Copilot agents understand project conventions, build requirements, and development workflows without requiring codebase exploration. + +### Copilot Environment Setup + +A GitHub Actions workflow (`.github/workflows/copilot-setup-steps.yml`) automatically configures the Copilot environment with required dependencies (Ruby 3.3.5, Python 3.13, Node.js, ImageMagick, nbconvert) before agent execution. + +### Important: Verify Agent Output + +While these agents are designed to assist you, **they can make mistakes or produce incorrect information**. Always review and verify the output before applying it to your repository: + +- **Review code and configuration changes** – Check that suggested modifications are correct and fit your needs +- **Test changes locally** – Before pushing to GitHub, test the changes locally (using Docker or native setup) +- **Verify syntax** – Ensure any YAML, Markdown, or configuration files have correct syntax +- **Check documentation** – If the agent generates documentation, review it for accuracy and clarity +- **Don't blindly apply changes** – Understand what changes are being made and why +- **Run your site** – After applying changes, run your site locally and verify everything works as expected + +**Example:** If an agent suggests a BibTeX entry or configuration change, verify that the syntax is correct and matches the existing style in your repository before committing. + +### How to Enable Agents + +GitHub Copilot agents are available to users with GitHub Copilot subscriptions. To use these agents: + +1. Ensure you have [GitHub Copilot](https://github.com/features/copilot) enabled for your account +2. Open your repository in an editor with GitHub Copilot support (such as VS Code with the GitHub Copilot extension) +3. The agents will be automatically available based on the configuration files in `.github/agents/`. For more information, see [Using custom agents in your IDE](https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/coding-agent/create-custom-agents#using-custom-agents-in-your-ide). + +For more information about GitHub Copilot agents and how to use them, see the [GitHub Copilot documentation](https://docs.github.com/en/copilot). ## Issues diff --git a/CUSTOMIZE.md b/CUSTOMIZE.md index cae173afa1ace..6f6e3c1825956 100644 --- a/CUSTOMIZE.md +++ b/CUSTOMIZE.md @@ -2,7 +2,98 @@ Here we will give you some tips on how to customize the website. One important thing to note is that **ALL** the changes you make should be done on the **main** branch of your repository. The `gh-pages` branch is automatically overwritten every time you make a change to the main branch. +> **Note for users without coding experience:** You do **not** need to understand the technology stack or have any coding background to create and customize your own website with al-folio. This template was specifically designed to be accessible to academics and researchers from all backgrounds. You can create a fully functional website by simply editing configuration files and adding content in Markdown, no coding required. + + +- [Customize](#customize) + - [Project structure](#project-structure) + - [Configuration](#configuration) + - [GitHub Copilot Customization Agent](#github-copilot-customization-agent) + - [What the Agent Can Help With](#what-the-agent-can-help-with) + - [How to Use the Agent](#how-to-use-the-agent) + - [Important: Verify Agent Output](#important-verify-agent-output) + - [Understanding the Codebase with Code Wiki and DeepWiki](#understanding-the-codebase-with-code-wiki-and-deepwiki) + - [What are these tools?](#what-are-these-tools) + - [When to use them](#when-to-use-them) + - [Technology Stack](#technology-stack) + - [Frontend](#frontend) + - [Backend](#backend) + - [Build and Deployment](#build-and-deployment) + - [Key Integration Points](#key-integration-points) + - [Modifying the CV information](#modifying-the-cv-information) + - [RenderCV Format (Recommended)](#rendercv-format-recommended) + - [JSONResume Format](#jsonresume-format) + - [Using Both Formats Simultaneously](#using-both-formats-simultaneously) + - [Automatic PDF Generation (RenderCV only)](#automatic-pdf-generation-rendercv-only) + - [Modifying the user and repository information](#modifying-the-user-and-repository-information) + - [Configuring external service URLs](#configuring-external-service-urls) + - [Creating new pages](#creating-new-pages) + - [Creating new blog posts](#creating-new-blog-posts) + - [Creating new projects](#creating-new-projects) + - [Adding some news](#adding-some-news) + - [Adding Collections](#adding-collections) + - [Creating a new collection](#creating-a-new-collection) + - [Using frontmatter fields in your collection](#using-frontmatter-fields-in-your-collection) + - [Creating a teachings collection](#creating-a-teachings-collection) + - [Course file format](#course-file-format) + - [Important course collection notes](#important-course-collection-notes) + - [Required fields](#required-fields) + - [Optional fields](#optional-fields) + - [Collections with categories and tags](#collections-with-categories-and-tags) + - [Creating custom metadata groups and archive pages](#creating-custom-metadata-groups-and-archive-pages) + - [Understanding Jekyll's special handling of fields](#understanding-jekylls-special-handling-of-fields) + - [Example: Adding a custom "adaptations" field](#example-adding-a-custom-adaptations-field) + - [Field naming best practices](#field-naming-best-practices) + - [Complete example: Book reviews with custom adaptations field](#complete-example-book-reviews-with-custom-adaptations-field) + - [Adding a new publication](#adding-a-new-publication) + - [Author annotation](#author-annotation) + - [Buttons (through custom bibtex keywords)](#buttons-through-custom-bibtex-keywords) + - [Changing theme color](#changing-theme-color) + - [Customizing layout and UI](#customizing-layout-and-ui) + - [Adding social media information](#adding-social-media-information) + - [Adding a newsletter](#adding-a-newsletter) + - [Configuring search features](#configuring-search-features) + - [Social media previews](#social-media-previews) + - [How to enable](#how-to-enable) + - [Configuring preview images](#configuring-preview-images) + - [Preview image best practices](#preview-image-best-practices) + - [Related posts](#related-posts) + - [How it works](#how-it-works) + - [Configuration](#configuration-1) + - [Disable related posts for a specific post](#disable-related-posts-for-a-specific-post) + - [Additional configuration in _config.yml](#additional-configuration-in-_configyml) + - [Managing publication display](#managing-publication-display) + - [Adding a Google Calendar](#adding-a-google-calendar) + - [Basic usage](#basic-usage) + - [Enable the calendar script for your page](#enable-the-calendar-script-for-your-page) + - [Optional: Customize the calendar style](#optional-customize-the-calendar-style) + - [Updating third-party libraries](#updating-third-party-libraries) + - [Removing content](#removing-content) + - [Removing the blog page](#removing-the-blog-page) + - [Removing the news section](#removing-the-news-section) + - [Removing the projects page](#removing-the-projects-page) + - [Removing the publications page](#removing-the-publications-page) + - [Removing the repositories page](#removing-the-repositories-page) + - [You can also remove pages through commenting out front-matter blocks](#you-can-also-remove-pages-through-commenting-out-front-matter-blocks) + - [Adding Token for Lighthouse Badger](#adding-token-for-lighthouse-badger) + - [Personal Access Token (fine-grained) Permissions for Lighthouse Badger:](#personal-access-token-fine-grained-permissions-for-lighthouse-badger) + - [Customizing fonts, spacing, and more](#customizing-fonts-spacing-and-more) + - [Scheduled Posts](#scheduled-posts) + - [Name Format](#name-format) + - [Important Notes](#important-notes) + - [GDPR Cookie Consent Dialog](#gdpr-cookie-consent-dialog) + - [How it works](#how-it-works-1) + - [When to use](#when-to-use) + - [How to enable](#how-to-enable-1) + - [Customizing the consent dialog](#customizing-the-consent-dialog) + - [Supported analytics providers](#supported-analytics-providers) + - [How it integrates with analytics](#how-it-integrates-with-analytics) + - [For developers](#for-developers) + - [Setting up a Personal Access Token (PAT) for Google Scholar Citation Updates](#setting-up-a-personal-access-token-pat-for-google-scholar-citation-updates) + - [Why is a PAT required?](#why-is-a-pat-required) + - [How to set up the PAT](#how-to-set-up-the-pat) + ## Project structure @@ -31,11 +122,21 @@ The project is structured as follows, focusing on the main components that you w ├── 📂 _posts/: contains the blog posts ├── 📂 _projects/: contains the projects └── 📂 _sass/: contains the SASS files that define the style of the website - ├── 📄 _base.scss: base style of the website + ├── 📂 font-awesome/: contains the SCSS files for Font Awesome + ├── 📄 _blog.scss: blog post, tags, and pagination styles + ├── 📄 _components.scss: reusable component styles (cards, profiles, CV, projects) ├── 📄 _cv.scss: style of the CV page ├── 📄 _distill.scss: style of the Distill articles - ├── 📄 _layout.scss: style of the overall layout - ├── 📄 _themes.scss: themes colors and a few icons + ├── 📄 _footer.scss: footer styles + ├── 📄 _layout.scss: overall layout styles + ├── 📄 _navbar.scss: navigation bar and dropdown menu styles + ├── 📄 _publications.scss: publication list and bibliography styles + ├── 📄 _tabs.scss: tabbed content styles + ├── 📄 _teachings.scss: course and teaching styles + ├── 📄 _themes.scss: theme colors and icons + ├── 📄 _typograms.scss: typogram diagram styles + ├── 📄 _typography.scss: text, headings, links, tables, and blockquote styles + ├── 📄 _utilities.scss: utility styles (code highlighting, forms, modals, animations) └── 📄 _variables.scss: variables used in the SASS files ``` @@ -47,16 +148,265 @@ The configuration file [\_config.yml](_config.yml) contains the main configurati All changes made to this file are only visible after you rebuild the website. That means that you need to run `bundle exec jekyll serve` again if you are running the website locally or push your changes to GitHub if you are using GitHub Pages. All other changes are visible immediately, you only need to refresh the page. +If changes don't appear after refreshing, try: + +- **Hard refresh** to reload the page ignoring cached content: + - [Shift + F5 on Chromium-based browsers](https://support.google.com/chrome/answer/157179#zippy=%2Cwebpage-shortcuts) + - [Ctrl + F5 on Firefox-based browsers](https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly) +- **Clear your browser cache** completely +- **Use a private/incognito session** to ensure no cached content: + - [Chrome](https://support.google.com/chrome/answer/95464) + - [Firefox](https://support.mozilla.org/en-US/kb/private-browsing-use-firefox-without-history) + +## GitHub Copilot Customization Agent + +This repository includes a specialized GitHub Copilot agent (`.github/agents/customize.agent.md`) designed to help you customize your al-folio website. The agent acts as an expert assistant that can: + +- Guide you through common customization tasks step-by-step +- Modify configuration files, add content, and update your website +- Explain technical concepts in plain language (especially helpful if you're not familiar with Jekyll or web development) +- Apply changes directly to your repository files +- Answer questions about how to customize specific features + +### What the Agent Can Help With + +The customization agent can assist with tasks such as: + +- Changing basic site information (title, author name, contact details) +- Updating your CV or resume +- Adding and managing publications from BibTeX files +- Creating blog posts, projects, and news items +- Customizing theme colors and styling +- Managing social media links +- Enabling or disabling features in `_config.yml` +- Adding profile pictures and other assets +- Troubleshooting configuration issues + +### How to Use the Agent + +To use the customization agent: + +1. Ensure you have a [GitHub Copilot](https://github.com/features/copilot) subscription +2. Open your repository in an editor with GitHub Copilot support (such as VS Code with the GitHub Copilot extension) +3. Interact with GitHub Copilot and ask questions or request changes. For more information, check [Using custom agents in your IDE](https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/coding-agent/create-custom-agents#using-custom-agents-in-your-ide) +4. The agent will guide you through the customization process and can make changes directly to your files + +For example, you can ask: + +- "How do I change my website's theme color to blue?" +- "Help me add a new blog post about my research" +- "Update my profile information with my new university email" +- "How do I add a publication to my website?" + +The agent is designed to be patient and helpful, explaining each step clearly so you understand what's being changed and why. + +### Important: Verify Agent Output + +**The customization agent can make mistakes or produce incorrect information.** Always review and verify the agent's suggestions and changes before applying them to your repository: + +- **Review all changes** – Before applying any modifications, carefully read what the agent suggests and ensure it makes sense for your needs +- **Test locally first** – Before pushing changes to GitHub, test them locally using Docker or native setup (see the [Installation instructions](INSTALL.md)) +- **Check syntax** – Make sure any YAML, Markdown, or BibTeX files have correct syntax. Incorrect syntax can break your website +- **Verify configuration** – If the agent modifies `_config.yml` or other configuration files, check that the changes align with your intentions +- **Preview on your site** – Run your site locally and navigate through it to ensure everything displays correctly and works as expected +- **Don't blindly apply changes** – Understand what's being changed and why before committing to your repository + +**Example scenarios where verification is important:** + +- If the agent suggests a BibTeX entry, verify the syntax matches existing entries in your `_bibliography/papers.bib` file +- If the agent modifies your `_config.yml`, check that indentation is correct (YAML is very sensitive to spacing) +- If the agent creates a new blog post or page, verify the frontmatter (the metadata at the top) is correct +- If the agent suggests changes to theme colors or styling, preview your site locally to ensure the changes look as intended + +> **Note:** The customization agent requires GitHub Copilot to be enabled. For more information about GitHub Copilot and its features, see the [GitHub Copilot documentation](https://docs.github.com/en/copilot). + +## Understanding the Codebase with Code Wiki and DeepWiki + +If you're interested in learning more about how al-folio works under the hood, or want to understand specific aspects of the codebase for deeper customization, you can use Code Wiki and DeepWiki as supplementary resources. + +### What are these tools? + +**Code Wiki** and **DeepWiki** are AI-powered tools that help you explore and understand GitHub repositories through interactive documentation: + +- **Code Wiki** (powered by Google Gemini) generates interactive documentation from the repository code. You can browse the project structure, search for specific functions or modules, view architecture diagrams, and understand how different components interact. + +- **DeepWiki** provides an AI chat interface where you can ask natural language questions about the codebase, similar to having an engineer available 24/7. You can ask how features work, search for code patterns, or get explanations of complex logic. + +### When to use them + +Use Code Wiki and DeepWiki **only after**: + +- You have reviewed the relevant sections in this `CUSTOMIZE.md` file +- You have checked the [project structure](#project-structure) section above +- You have explored the [main documentation files](README.md) (README.md, INSTALL.md, FAQ.md) +- You have checked the [GitHub Discussions Q&A section](https://github.com/alshedivat/al-folio/discussions/categories/q-a) + +These tools are best used for: + +- Understanding the architecture and how different parts of the codebase work together +- Finding where specific functionality is implemented +- Learning about the Jekyll template structure and Liquid syntax used in the theme +- Exploring how specific features are implemented (e.g., how publications are rendered, how search works, etc.) + +**Access these tools:** + +- **Code Wiki**: [Code Wiki for al-folio](https://codewiki.google/github.com/alshedivat/al-folio) +- **DeepWiki**: [DeepWiki for al-folio](https://deepwiki.com/alshedivat/al-folio) + +## Technology Stack + +Understanding al-folio's technology stack will help you better customize and extend the theme. This section provides an overview of the key technologies and frameworks used in the project. + +### Frontend + +- **Markdown**: Content is written in Markdown format for pages, blog posts, and collections. This makes it easy to create and maintain content without worrying about HTML. +- **Liquid templating**: [Liquid](https://shopify.github.io/liquid/) is used for dynamic template generation. Liquid templates are used in the `_layouts/` and `_includes/` directories to define how your content should be displayed. +- **HTML & CSS**: The theme uses semantic HTML5 and modern CSS for styling and layout. +- **SCSS**: Stylesheets are written in [SCSS (Sass)](https://sass-lang.com/), a CSS preprocessor that provides variables, mixins, and functions for more maintainable styling. SCSS files are located in `_sass/` and compiled to CSS during the build process. +- **Bootstrap**: [Bootstrap 4.6](https://getbootstrap.com/docs/4.6/) is used for responsive grid layout and base styling components. +- **JavaScript**: Minimal JavaScript is used for interactive features like the dark mode toggle, search functionality, and dynamic content rendering. +- **MathJax**: For rendering mathematical equations in LaTeX format on your pages and blog posts. +- **Mermaid**: For creating diagrams (flowcharts, sequence diagrams, etc.) directly in Markdown. +- **Font Awesome, Academicons, and Scholar Icons**: Icon libraries used throughout the theme for visual elements. + +### Backend + +- **Jekyll 4.x**: [Jekyll](https://jekyllrb.com/) is a static site generator written in Ruby that transforms your Markdown files and templates into a static website. Jekyll is used to: + - Convert Markdown files to HTML + - Process Liquid templates + - Manage collections (posts, projects, news, books, etc.) + - Generate archives and pagination + - Minify CSS and JavaScript + +- **Ruby Gems** (Jekyll plugins): The project uses several Ruby plugins to extend Jekyll's functionality: + - `classifier-reborn`: Used for categorizing and finding related blog posts + - `jekyll-archives-v2`: Creates archive pages for posts and collections organized by category, tag, or date + - `jekyll-feed`: Generates an Atom (RSS-like) feed for your content + - `jekyll-jupyter-notebook`: Integrates Jupyter notebooks into your site + - `jekyll-minifier`: Minifies HTML, CSS, and JavaScript for better performance + - `jekyll-paginate-v2`: Handles pagination for blog posts and archives + - `jekyll-scholar`: Manages bibliography files (BibTeX) and generates publication pages with citations + - `jekyll-tabs`: Adds tabbed content support + - `jekyll-toc`: Automatically generates table of contents for pages with headers + - `jemoji`: Converts emoji shortcodes to emoji images + - Other utilities: `jekyll-link-attributes`, `jekyll-imagemagick`, `jekyll-twitter-plugin`, `jekyll-get-json`, and more + +- **Python**: Used for utility scripts like citation updates via Google Scholar (located in `bin/`) + +### Build and Deployment + +- **GitHub Actions**: Automated workflows for building, testing, and deploying your site. Workflows are defined in `.github/workflows/`: + - **Deploy**: Automatically builds and deploys your site to GitHub Pages when you push changes to the main branch + - **Link checking**: Validates that all links in your site are not broken + - **Code formatting**: Ensures code follows the Prettier code style + - **Accessibility testing**: Checks for accessibility issues using Axe + - **Lighthouse**: Measures site performance and best practices + - **Citation updates**: Automatically fetches citation counts from Google Scholar + +- **GitHub Pages**: Free hosting for your static website built by Jekyll +- **Docker**: Optional containerization for local development (provides a consistent environment across different machines) +- **Prettier**: Code formatter for Markdown, YAML, and Liquid files to maintain consistent formatting + +### Key Integration Points + +Understanding how these technologies work together will help you customize al-folio effectively: + +1. **Content Creation**: Write content in Markdown +2. **Template Processing**: Jekyll processes Markdown through Liquid templates +3. **Styling**: SCSS files are compiled to CSS, with Bootstrap providing the responsive layout framework +4. **Bibliography**: BibTeX files are processed by jekyll-scholar to generate publication pages +5. **Static Site Generation**: Jekyll builds all files into static HTML +6. **Deployment**: GitHub Actions automatically deploys the built site to GitHub Pages + ## Modifying the CV information -There are currently 2 different ways of generating the CV page content. The first one is by using a json file located in [assets/json/resume.json](assets/json/resume.json). It is a [known standard](https://jsonresume.org/) for creating a CV programmatically. The second one, currently used as a fallback when the json file is not found, is by using a yml file located in [\_data/cv.yml](_data/cv.yml). This was the original way of creating the CV page content and since it is more human readable than a json file we decided to keep it as an option. +Your CV can be created using one of two formats. Choose the format that works best for you, or use both simultaneously by switching between them: + +### RenderCV Format (Recommended) + +[`_data/cv.yml`](_data/cv.yml) uses the [RenderCV](https://rendercv.com/) YAML format, which is human-readable and designed specifically for generating professional resumes. This format also enables optional automatic PDF generation via GitHub Actions. -What this means is, if there is no resume data defined in [\_config.yml](_config.yml) and loaded via a json file, it will load the contents of [\_data/cv.yml](_data/cv.yml). If you want to use the [\_data/cv.yml](_data/cv.yml) file as the source of your CV, you must delete the [assets/json/resume.json](assets/json/resume.json) file. +**If you choose this format:** + +1. Edit your CV data in [`_data/cv.yml`](_data/cv.yml) +2. Optionally customize how the PDF is styled by editing: + - [`assets/rendercv/design.yaml`](assets/rendercv/design.yaml) — Design and styling + - [`assets/rendercv/locale.yaml`](assets/rendercv/locale.yaml) — Localization and formatting + - [`assets/rendercv/settings.yaml`](assets/rendercv/settings.yaml) — RenderCV settings +3. To display only this format, delete [`assets/json/resume.json`](assets/json/resume.json) (optional) + +### JSONResume Format + +[`assets/json/resume.json`](assets/json/resume.json) uses the [JSONResume](https://jsonresume.org/) standard format, which is compatible with other tools and services. + +**If you choose this format:** + +1. Edit your CV data in [`assets/json/resume.json`](assets/json/resume.json) +2. To display only this format, delete [`_data/cv.yml`](_data/cv.yml) (optional) + +### Using Both Formats Simultaneously + +You can keep both [`_data/cv.yml`](_data/cv.yml) and [`assets/json/resume.json`](assets/json/resume.json) in your repository and switch between them on your website by setting the `cv_format` frontmatter variable in [`_pages/cv.md`](_pages/cv.md): + +```yaml +--- +layout: cv +cv_format: rendercv # options: rendercv or jsonresume +--- +``` + +Change `rendercv` to `jsonresume` to display the JSONResume format instead. + +### Automatic PDF Generation (RenderCV only) + +If you use the RenderCV format, a GitHub Actions workflow can automatically generate a PDF version of your CV whenever you push changes to [`_data/cv.yml`](_data/cv.yml). The PDF is saved to `assets/rendercv/rendercv_output/`. + +**To link the auto-generated PDF to your CV page:** + +Set the `cv_pdf` variable in the frontmatter of [`_pages/cv.md`](_pages/cv.md) to point to the generated PDF: + +```yaml +--- +layout: cv +cv_pdf: /assets/rendercv/rendercv_output/CV.pdf +cv_format: rendercv +--- +``` + +This will add a download button on your CV page that links to the PDF. (The exact filename depends on your RenderCV settings—check the output directory after the first workflow run to see the generated PDF name.) + +**To disable automatic PDF generation:** + +Delete or comment out the [`.github/workflows/render-cv.yml`](.github/workflows/render-cv.yml) workflow file. ## Modifying the user and repository information The user and repository information is defined in [\_data/repositories.yml](_data/repositories.yml). You can add as many users and repositories as you want. Both informations are used in the `repositories` section. +### Configuring external service URLs + +The repository page uses external services to display GitHub statistics and trophies. By default, these are: + +- `github-readme-stats.vercel.app` for user stats and repository cards +- `github-profile-trophy.vercel.app` for GitHub profile trophies + +**Important:** These default services are hosted by third parties and may not be available 100% of the time. For better reliability, privacy, and customization, you can self-host these services and configure your website to use your own instances. + +To use your own instances of these services, configure the URLs in [\_config.yml](_config.yml): + +```yaml +external_services: + github_readme_stats_url: https://github-readme-stats.vercel.app + github_profile_trophy_url: https://github-profile-trophy.vercel.app +``` + +To self-host these services, follow the deployment instructions in their respective repositories: + +- [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) +- [github-profile-trophy](https://github.com/ryo-ma/github-profile-trophy) + +Once deployed, update the URLs above to point to your custom deployment. + ## Creating new pages You can create new pages by adding new Markdown files in the [\_pages](_pages/) directory. The easiest way to do this is to copy an existing page and modify it. You can choose the layout of the page by changing the [layout](https://jekyllrb.com/docs/layouts/) attribute in the [frontmatter](https://jekyllrb.com/docs/front-matter/) of the Markdown file, and also the path to access it by changing the [permalink](https://jekyllrb.com/docs/permalinks/) attribute. You can also add new layouts in the [\_layouts](_layouts/) directory if you feel the need for it. @@ -79,19 +429,316 @@ You can add news in the about page by adding new Markdown files in the [\_news]( ## Adding Collections -This Jekyll theme implements [collections](https://jekyllrb.com/docs/collections/) to let you break up your work into categories. The theme comes with three default collections: `news`, `projects`, and `books`. Items from the `news` collection are automatically displayed on the home page, while items from the `projects` collection are displayed on a responsive grid on projects page and items from the `books` collection are displayed on its own `bookshelf` page inside `submenus`. +This Jekyll theme implements [collections](https://jekyllrb.com/docs/collections/) to let you break up your work into categories. The theme comes with three default collections: `news`, `projects`, and `books`. Items from the `news` collection are automatically displayed on the home page, while items from the `projects` collection are displayed on a responsive grid on the projects page, and items from the `books` collection are displayed on its own `bookshelf` page inside `submenus`. + +You can easily create your own collections for any type of content—teaching materials, courses, apps, short stories, or whatever suits your needs. + +### Creating a new collection + +To create a new collection, follow these steps. We will create a `courses` collection, but you can replace `courses` with any name you prefer: + +1. **Add the collection to `_config.yml`** + + Open the `collections` section in [\_config.yml](_config.yml) and add your new collection: + + ```yaml + collections: + news: + defaults: + layout: post + output: true + projects: + output: true + courses: + output: true + permalink: /courses/:path/ + ``` + + - `output: true` makes the collection items accessible as separate pages + - `permalink` defines the URL path for each collection item (`:path` is replaced with the filename) + - Note: You can customize the [permalink structure](https://jekyllrb.com/docs/permalinks/#collections) as needed. If not set, it uses `/COLLECTION_NAME/:name/`. + +2. **Create a folder for your collection items** + + Create a new folder in the root directory with an underscore prefix, matching your collection name. For a `courses` collection, create `_courses/`: + + ```text + _courses/ + ├── course_1.md + ├── course_2.md + └── course_3.md + ``` + +3. **Create a landing page for your collection** + + Add a Markdown file in `_pages/` (e.g., `courses.md`) that will serve as the main page for your collection. You can use [\_pages/projects.md](_pages/projects.md) or [\_pages/books.md](_pages/books.md) as a template and adapt it for your needs. + + In your landing page, access your collection using the `site.COLLECTION_NAME` variable: + + ```liquid + {% assign course_items = site.courses | sort: 'date' | reverse %} + + {% for item in course_items %} +

{{ item.title }}

+

{{ item.content }}

+ {% endfor %} + ``` + +4. **Add a navigation link to your collection page** + + Update [\_pages/dropdown.md](_pages/dropdown.md) or the navigation configuration of your page. In the frontmatter of your collection landing page (e.g., `_pages/courses.md`), add: + + ```yaml + nav: true + nav_order: 5 + ``` + + - `nav: true` makes the page appear in the navigation menu + - `nav_order` sets the position in the menu (1 = first, 2 = second, etc.) + +5. **Create collection items** + + Add Markdown files in your new collection folder (e.g., `_courses/`) with appropriate frontmatter and content. + +For more information regarding collections, check [Jekyll official documentation](https://jekyllrb.com/docs/collections/) and [step-by-step guide](https://jekyllrb.com/docs/step-by-step/09-collections/). + +### Using frontmatter fields in your collection + +When creating items in your collection, you can define custom frontmatter fields and use them in your landing page. For example: + +```markdown +--- +layout: page +title: Introduction to Research Methods +importance: 1 +category: methods +--- + +Course description and content here... +``` + +Then in your landing page template: + +```liquid +{% if item.category == 'methods' %} + {{ item.category }} +{% endif %} +``` + +### Creating a teachings collection + +The al-folio theme includes a pre-configured `_teachings/` collection for course pages. Each course is represented by a markdown file with frontmatter metadata. Here's how to add or modify courses: + +#### Course file format + +Create markdown files in `_teachings/` with the following structure: + +```yaml +--- +layout: course +title: Course Title +description: Course description +instructor: Your Name +year: 2023 +term: Fall +location: Room 101 +time: MWF 10:00-11:00 +course_id: course-id # This should be unique +schedule: + - week: 1 + date: Jan 10 + topic: Introduction + description: Overview of course content and objectives + materials: + - name: Slides + url: /assets/pdf/example_pdf.pdf + - name: Reading + url: https://example.com/reading + - week: 2 + date: Jan 17 + topic: Topic 2 + description: Description of this week's content +--- +Additional course content, information, or resources can be added here as markdown. +``` + +#### Important course collection notes + +1. Each course file must have a unique `course_id` in the frontmatter +2. Course files will be grouped by `year` on the teaching page +3. Within each year, courses are sorted by `term` +4. The content below the frontmatter (written in markdown) will appear on the individual course page +5. The schedule section will be automatically formatted into a table -You can easily create your own collections, apps, short stories, courses, or whatever your creative work is. To do this, edit the collections in the [\_config.yml](_config.yml) file, create a corresponding folder, and create a landing page for your collection, similar to [\_pages/projects.md](_pages/projects.md). +#### Required fields -If you wish to create a collection with support for categories and tags, like the blog posts, you just need to add this collection to the `jekyll-archives` section of your [\_config.yml](_config.yml) file. You can check how this is done with the `books` collection. For more information about customizing the archives section or creating your own archives page, check the [jekyll-archives-v2 documentation](https://george-gca.github.io/jekyll-archives-v2/). +- `layout: course` — Must be set to use the course layout +- `title` — The course title +- `year` — The year the course was/will be taught (used for sorting) +- `course_id` — A unique identifier for the course -To access the collections, you can use the `site.COLLECTION_NAME` variable in your templates. +#### Optional fields + +- `description` — A brief description of the course +- `instructor` — The course instructor's name +- `term` — The academic term (e.g., Fall, Spring, Summer) +- `location` — The course location +- `time` — The course meeting time +- `schedule` — A list of course sessions with details + +### Collections with categories and tags + +If you want to add category and tag support (like the blog posts have), you need to configure the `jekyll-archives` section in [\_config.yml](_config.yml). See how this is done with the `books` collection for reference. For more details, check the [jekyll-archives-v2 documentation](https://george-gca.github.io/jekyll-archives-v2/). + +### Creating custom metadata groups and archive pages + +Beyond the built-in `categories` and `tags` fields, you can create custom metadata fields for your collections to organize content in new ways. For example, if you have a book review collection, you might want to organize books by their **adaptations** (movies, TV shows, video games, etc.). + +#### Understanding Jekyll's special handling of fields + +Jekyll has **special built-in support** for only two fields: + +- **`categories`** – Automatically splits space-separated values into arrays +- **`tags`** – Automatically splits space-separated values into arrays + +Custom fields (any field name you create) remain as **strings** and require explicit handling in your Liquid templates. + +#### Example: Adding a custom "adaptations" field + +1. **Add the field to your collection frontmatter** + + In your collection item (e.g., `_books/the_godfather.md`): + + ```yaml + --- + layout: book-review + title: The Godfather + author: Mario Puzo + categories: classics crime historical-fiction + adaptations: movie TV-series video-game novel-adaptation + --- + ``` + +2. **Handle the custom field in your layout template** + + In your layout file (e.g., `_layouts/book-review.liquid`), custom fields must be **split** into arrays before you can loop over them: + + ```liquid + {% if page.adaptations %} + {% assign page_adaptations = page.adaptations | split: ' ' %} + {% for adaptation in page_adaptations %} + + {{ adaptation }} + + {% endfor %} + {% endif %} + ``` + + **Why the `split: ' '` filter?** Because `adaptations` is a custom field, Jekyll doesn't automatically convert it to an array like it does for `categories` and `tags`. The `split: ' '` filter breaks the space-separated string into individual items. + +3. **Enable archive pages for your custom field** + + Add your custom field to the `jekyll-archives` configuration in [\_config.yml](_config.yml): + + ```yaml + jekyll-archives: + posts: + enabled: + - year + - tags + - categories + books: + enabled: + - year + - tags + - categories + - adaptations # Add your custom field here + permalinks: + year: "/:collection/:year/" + tags: "/:collection/:type/:name/" + categories: "/:collection/:type/:name/" + adaptations: "/:collection/:type/:name/" # Add permalink pattern here + ``` + +4. **Test your archive pages** + + After configuration, rebuild your site: + + ```bash + docker compose down + docker compose up + ``` + + Your archive pages will be generated at: + - `/books/adaptations/movie/` + - `/books/adaptations/tv-series/` (slugified from `TV-series`) + - `/books/adaptations/video-game/` (slugified from `video-game`) + + Each page will automatically display all items with that adaptation value. + +#### Field naming best practices + +- Use **lowercase** words separated by **hyphens** for multi-word values: `live-action`, `video-game`, `TV-series` +- Choose **meaningful names** that describe the grouping: `genres`, `adaptations`, `media-types`, `settings`, etc. +- Keep field values **short and consistent** across all items in your collection +- Document custom fields in a README or comments for other contributors to understand + +#### Complete example: Book reviews with custom adaptations field + +**File: `_books/the_godfather.md`** + +```yaml +--- +layout: book-review +title: The Godfather +author: Mario Puzo +categories: classics crime historical-fiction +tags: top-100 +adaptations: movie TV-series video-game +--- +``` + +**File: `_layouts/book-review.liquid` (partial)** + +```liquid +{% if page.adaptations %} +
+ Adaptations: + {% assign page_adaptations = page.adaptations | split: ' ' %} + {% for adaptation in page_adaptations %} + + {{ adaptation }} + + {% unless forloop.last %},{% endunless %} + {% endfor %} +
+{% endif %} +``` + +**File: `_config.yml` (jekyll-archives section)** + +```yaml +jekyll-archives: + books: + enabled: + - year + - categories + - tags + - adaptations + permalinks: + year: "/:collection/:year/" + categories: "/:collection/:type/:name/" + tags: "/:collection/:type/:name/" + adaptations: "/:collection/:type/:name/" +``` + +After rebuilding, users can browse books by adaptation at `/books/adaptations/movie/`, etc. ## Adding a new publication To add publications create a new entry in the [\_bibliography/papers.bib](_bibliography/papers.bib) file. You can find the BibTeX entry of a publication in Google Scholar by clicking on the quotation marks below the publication title, then clicking on "BibTeX", or also in the conference page itself. By default, the publications will be sorted by year and the most recent will be displayed first. You can change this behavior and more in the `Jekyll Scholar` section in [\_config.yml](_config.yml) file. -You can add extra information to a publication, like a PDF file in the `assets/pdfs/` directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `annotation`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`. +You can add extra information to a publication, like a PDF file in the `assets/pdfs/` directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `annotation`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `hal`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`. ### Author annotation @@ -141,6 +788,7 @@ There are several custom bibtex keywords that you can use to affect how the entr - `blog`: Adds a "Blog" button redirecting to the specified link - `code`: Adds a "Code" button redirecting to the specified link - `dimensions`: Adds a [Dimensions](https://www.dimensions.ai/) badge (Note: if DOI or PMID is provided just use `true`, otherwise only add the Dimensions' identifier here - the link is generated automatically) +- `hal`: Adds a link to the HAL website (Note: only add the hal identifier (hal-xxx or tel-xxx) here - the link is generated automatically) - `html`: Inserts an "HTML" button redirecting to the user-specified link - `pdf`: Adds a "PDF" button redirecting to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) - `poster`: Adds a "Poster" button redirecting to a specified file (if a full link is not specified, the file will be assumed to be placed in the /assets/pdf/ directory) @@ -154,9 +802,41 @@ You can implement your own buttons by editing the [\_layouts/bib.liquid](_layout A variety of beautiful theme colors have been selected for you to choose from. The default is purple, but you can quickly change it by editing the `--global-theme-color` variable in the [\_sass/\_themes.scss](_sass/_themes.scss) file. Other color variables are listed there as well. The stock theme color options available can be found at [\_sass/\_variables.scss](_sass/_variables.scss). You can also add your own colors to this file assigning each a name for ease of use across the template. +## Customizing layout and UI + +You can customize the layout and user interface in [\_config.yml](_config.yml): + +```yaml +back_to_top: true +footer_fixed: true +max_width: 930px +navbar_fixed: true +``` + +- `back_to_top`: Displays a "back to top" button in the footer. When clicked, it smoothly scrolls the page back to the top. +- `footer_fixed`: When `true`, the footer remains fixed at the bottom of the viewport. When `false`, it appears at the end of the page content. +- `max_width`: Controls the maximum width of the main content area in pixels. The default is `930px`. You can adjust this to make your content wider or narrower. +- `navbar_fixed`: When `true`, the navigation bar stays fixed at the top of the page when scrolling. When `false`, it scrolls with the page content. + ## Adding social media information -You can add your social media links by adding the specified information in the [\_data/socials.yml](_data/socials.yml) file. This information will appear at the bottom of the `About` page and in the search results by default, but this could be changed to appear at the header of the page by setting `enable_navbar_social: true` and doesn't appear in the search by setting `socials_in_search: false`, both in [\_config.yml](_config.yml). +Social media information is managed through the [`jekyll-socials` plugin](https://github.com/george-gca/jekyll-socials). To add your social media links: + +1. Edit [`_data/socials.yml`](_data/socials.yml) to add your social profiles +2. The plugin will automatically display the social icons based on the order they are defined in the file (see the comments at the top of `_data/socials.yml`) + +The template supports icons from: + +- [Academicons](https://jpswalsh.github.io/academicons/) +- [Font Awesome](https://fontawesome.com/) +- [Scholar Icons](https://louisfacun.github.io/scholar-icons/) + +Social media links will appear at the bottom of the `About` page and in the search results by default. You can customize this behavior in [`_config.yml`](_config.yml): + +- `enable_navbar_social: true` – Display social links in the navigation bar +- `socials_in_search: false` – Remove social links from search results + +For more details, see the [`jekyll-socials` documentation](https://github.com/george-gca/jekyll-socials). ## Adding a newsletter @@ -164,9 +844,257 @@ You can add a newsletter subscription form by adding the specified information a Depending on your specified footer behavior, the sign up form either will appear at the bottom of the `About` page and at the bottom of blogposts if `related_posts` are enabled, or in the footer at the bottom of each page. +## Configuring search features + +The theme includes a powerful search functionality that can be customized in [\_config.yml](_config.yml): + +```yaml +bib_search: true +posts_in_search: true +search_enabled: true +socials_in_search: true +``` + +- `bib_search`: Enables search within your publications/bibliography. When enabled, a search box appears on the publications page, allowing visitors to filter publications by title, author, venue, or year. +- `posts_in_search`: Includes blog posts in the search index. Users can search for posts by title, content, or tags. +- `search_enabled`: Enables the site-wide search feature. When enabled, a search box appears in the navigation bar, allowing users to search across your site content. +- `socials_in_search`: Includes your social media links and contact information in search results. This makes it easier for visitors to find ways to connect with you. + +All these search features work in real-time and do not require a page reload. + +## Social media previews + +**al-folio** supports Open Graph (OG) meta tags, which create rich preview objects when your pages are shared on social media platforms like Twitter, Facebook, LinkedIn, and others. These previews include your site's image, title, and description. + +### How to enable + +To enable social media previews: + +1. Open `_config.yml` and set: + + ```yaml + serve_og_meta: true + ``` + +2. Rebuild your site: + ```bash + docker compose down && docker compose up + # or + bundle exec jekyll serve + ``` + +Once enabled, all your site's pages will automatically include Open Graph meta tags in the HTML head element. + +### Configuring preview images + +You can configure what image displays in social media previews on a per-page or site-wide basis. + +**Site-wide default image:** + +Add the following to `_config.yml`: + +```yaml +og_image: /assets/img/your-default-preview-image.png +``` + +Replace the path with your actual image location in `assets/img/`. + +**Per-page custom image:** + +To override the site-wide default for a specific page, add `og_image` to the page's frontmatter: + +```yaml +--- +layout: page +title: My Page +og_image: /assets/img/custom-preview-image.png +--- +``` + +### Preview image best practices + +- **Dimensions:** Use 1200×630 pixels for optimal display on most social media platforms +- **Format:** PNG or JPG formats work best +- **Size:** Keep file size under 5MB +- **Content:** Ensure the image clearly represents your page content + +When a page is shared on social media, the platform will display your configured image along with the page title, description (from your site title or page description), and URL. + +--- + +## Related posts + +The theme can automatically display related posts at the bottom of each blog post. These are selected by finding the most recent posts that share common tags with the current post. + +### How it works + +- By default, the most recent posts that share at least one tag with the current post are displayed +- You can customize how many posts are shown and how many tags must match +- You can disable related posts for individual posts or across your entire site + +### Configuration + +To customize related posts behavior, edit the `related_blog_posts` section in `_config.yml`: + +```yaml +related_blog_posts: + enabled: true + max_related: 5 +``` + +- `enabled`: Set to `true` (default) to show related posts, or `false` to disable them site-wide +- `max_related`: Maximum number of related posts to display (default: 5) + +The theme also uses tags to find related content. Make sure your blog posts include relevant tags in their frontmatter: + +```yaml +--- +layout: post +title: My Blog Post +tags: machine-learning python +--- +``` + +### Disable related posts for a specific post + +To hide related posts on an individual blog post, add this to the post's frontmatter: + +```yaml +--- +layout: post +title: My Blog Post +related_posts: false +--- +``` + +### Additional configuration in \_config.yml + +You can also customize related posts behavior with these settings: + +```yaml +related_blog_posts: + enabled: true + max_related: 5 +``` + +These settings control: + +- Which posts are considered "related" (based on shared tags) +- How many related posts to display +- The algorithm used to calculate post similarity (uses the `classifier-reborn` gem) + +--- + +## Managing publication display + +The theme offers several options for customizing how publications are displayed: + +```yaml +enable_publication_thumbnails: true +max_author_limit: 3 +more_authors_animation_delay: 10 +``` + +- `enable_publication_thumbnails`: When `true`, displays preview images for publications (if specified in the BibTeX entry with the `preview` field). Set to `false` to disable thumbnails for all publications. +- `max_author_limit`: Sets the maximum number of authors shown initially for each publication. If a publication has more authors, they are hidden behind a "more authors" link. Leave blank to always show all authors. +- `more_authors_animation_delay`: Controls the animation speed (in milliseconds) when revealing additional authors. A smaller value means faster animation. + +To add a thumbnail to a publication, include a `preview` field in your BibTeX entry: + +```bibtex +@article{example2024, + title={Example Paper}, + author={Author, First and Author, Second}, + journal={Example Journal}, + year={2024}, + preview={example_preview.png} +} +``` + +Place the image file in `assets/img/publication_preview/`. + +## Adding a Google Calendar + +You can embed a Google Calendar on any page by using the `calendar.liquid` include. + +### Basic usage + +Add the following to your page's Markdown file (for example, in `_pages/teaching.md`): + +```liquid +{% include calendar.liquid calendar_id='your-calendar-id@group.calendar.google.com' timezone='Your/Timezone' %} +``` + +Replace: + +- `your-calendar-id@group.calendar.google.com` with your actual Google Calendar ID (found in Google Calendar Settings → Integrate calendar → Calendar ID) +- `Your/Timezone` with your timezone (e.g., `UTC`, `Asia/Shanghai`, `America/New_York`). The default is `UTC`. + +### Enable the calendar script for your page + +To enable the calendar on your page, add `calendar: true` to the frontmatter: + +```yaml +--- +layout: page +title: teaching +calendar: true +--- +``` + +This setting prevents unnecessary script loading for pages that don't display a calendar. + +### Optional: Customize the calendar style + +You can optionally customize the iframe styling using the `style` parameter: + +```liquid +{% include calendar.liquid calendar_id='your-calendar-id@group.calendar.google.com' timezone='UTC' style='border:0; width:100%; height:800px;' %} +``` + +The default style is `border:0; width:100%; height:600px;`. + +## Updating third-party libraries + +The theme uses various third-party JavaScript and CSS libraries. You can manage these in the `third_party_libraries` section of [\_config.yml](_config.yml): + +```yaml +third_party_libraries: + download: false + bootstrap-table: + version: "1.22.4" + url: + css: "https://cdn.jsdelivr.net/npm/bootstrap-table@{{version}}/dist/bootstrap-table.min.css" + js: "https://cdn.jsdelivr.net/npm/bootstrap-table@{{version}}/dist/bootstrap-table.min.js" + integrity: + css: "sha256-..." + js: "sha256-..." +``` + +- `download`: When `false` (default), libraries are loaded from CDNs. When `true`, the specified library versions are downloaded during build and served from your site. This can improve performance but increases your repository size. +- `version`: Specifies which version of each library to use. Update this to use a newer version. +- `url`: Template URLs for loading the library. The `{{version}}` placeholder is replaced with the version number automatically. +- `integrity`: [Subresource Integrity (SRI)](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) hashes ensure that the library hasn't been tampered with. When updating a library version, you should also update its integrity hash. + +To update a library: + +1. Change the `version` number +2. Obtain the new integrity hash for the updated library version and update the `integrity` field with the new hash. You can: + - Check if the CDN provider (e.g., jsDelivr, cdnjs, unpkg) provides the SRI hash for the file. Many CDN sites display the SRI hash alongside the file URL. + - Generate the SRI hash yourself using a tool such as [SRI Hash Generator](https://www.srihash.org/) or by running the following command in your terminal: + + ```bash + curl -sL [FILE_URL] | openssl dgst -sha384 -binary | openssl base64 -A + ``` + + Replace `[FILE_URL]` with the URL of the library file. Then, prefix the result with `sha384-` and use it in the `integrity` field. + For detailed instructions on updating specific libraries, see the FAQ: + - [How can I update Academicons version](FAQ.md#how-can-i-update-academicons-version-on-the-template) + - [How can I update Font Awesome version](FAQ.md#how-can-i-update-font-awesome-version-on-the-template) + ## Removing content -Since this template have a lot of content, you may want to remove some of it. The easiest way to achieve this and avoid merge conflicts when updating your code (as [pointed by CheariX ](https://github.com/alshedivat/al-folio/pull/2933#issuecomment-2571271117)) is to add the unwanted files to the `exclude` section in your `_config.yml` file instead of actually deleting them, for example: +Since this template has a lot of content, you may want to remove some of it. The easiest way to achieve this and avoid merge conflicts when updating your code (as [pointed by CheariX ](https://github.com/alshedivat/al-folio/pull/2933#issuecomment-2571271117)) is to add the unwanted files to the `exclude` section in your `_config.yml` file instead of actually deleting them, for example: ```yml exclude: @@ -248,6 +1176,28 @@ To remove the repositories, you can: - delete the repositories page [\_pages/repositories.md](_pages/repositories.md) - delete [\_includes/repository/](_includes/repository/) directory +### You can also remove pages through commenting out front-matter blocks + +For `.md` files in [\_pages](_pages/) directory, if you do not want to completely edit or delete them but save for later use, you can temporarily disable these variables. But be aware that Jekyll only recognizes front matter when it appears as uncommented. The layout, permalink, and other front-matter behavior are disabled for that file. + +For example, books.md do: + +```md + + +> What an astonishing thing a book is. It's a flat object made from a tree with flexible parts on which are imprinted lots of funny dark squiggles. But one glance at it and you're inside the mind of another person, maybe somebody dead for thousands of years. Across the millennia, an author is speaking clearly and silently inside your head, directly to you. Writing is perhaps the greatest of human inventions, binding together people who never knew each other, citizens of distant epochs. Books break the shackles of time. A book is proof that humans are capable of working magic. +> +> -- Carl Sagan, Cosmos, Part 11: The Persistence of Memory (1980) + +## Books that I am reading, have read, or will read +``` + ## Adding Token for Lighthouse Badger To add secrets for [lighthouse-badger](https://github.com/alshedivat/al-folio/actions/workflows/lighthouse-badger.yml), create a [personal access token (PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) and add it as a [secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-encrypted-secrets-for-a-repository) named `LIGHTHOUSE_BADGER_TOKEN` to your repository. The [lighthouse-badger documentation](https://github.com/MyActionWay/lighthouse-badger-workflows#lighthouse-badger-easyyml) specifies using an environment variable, but using it as a secret is more secure and appropriate for a PAT. @@ -263,7 +1213,18 @@ Due to the necessary permissions (PAT and others mentioned above), it is recomme ## Customizing fonts, spacing, and more -You can customize the fonts, spacing, and more by editing [\_sass/\_base.scss](_sass/_base.scss). The easiest way to try in advance the changes is by using [chrome dev tools](https://developer.chrome.com/docs/devtools/css) or [firefox dev tools](https://firefox-source-docs.mozilla.org/devtools-user/). In there you can click in the element and find all the attributes that are set for that element and where are they. For more information on how to use this, check [chrome](https://developer.chrome.com/docs/devtools/css) and [firefox](https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/examine_and_edit_css/index.html) how-tos, and [this tutorial](https://www.youtube.com/watch?v=l0sgiwJyEu4). +The `_sass/` directory contains specialized SCSS files organized by feature and usage. To customize fonts, spacing, colors, and other styles, edit the relevant file based on what you're modifying: + +- **Typography:** Edit `_typography.scss` to change fonts, heading styles, links, tables, and blockquotes. +- **Navigation:** Edit `_navbar.scss` to customize the navigation bar and dropdown menus. +- **Colors and themes:** Edit `_themes.scss` to change theme colors and `_variables.scss` for global variables. +- **Blog styles:** Edit `_blog.scss` to customize blog post listings, tags, and pagination. +- **Publications:** Edit `_publications.scss` to modify bibliography and publication display styles. +- **Components:** Edit `_components.scss` to customize reusable components like cards, profiles, and projects. +- **Code and utilities:** Edit `_utilities.scss` for code highlighting, forms, modals, and animations. +- **Layout:** Edit `_layout.scss` for overall page layout styles. + +The easiest way to preview changes in advance is by using [Chrome dev tools](https://developer.chrome.com/docs/devtools/css) or [Firefox dev tools](https://firefox-source-docs.mozilla.org/devtools-user/). Inspect elements to see which styles apply and experiment with changes before editing the SCSS files. For more information on how to use these tools, check [Chrome](https://developer.chrome.com/docs/devtools/css) and [Firefox](https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/examine_and_edit_css/index.html) how-tos, and [this tutorial](https://www.youtube.com/watch?v=l0sgiwJyEu4). ## Scheduled Posts @@ -292,3 +1253,150 @@ In this folder you need to store your file in the same format as you would in `_ - `2025-08-27-file2.md` will be posted exactly on 27-August-2025 - `File3.md` will not be posted at all - `2026-02-31-file4.md` is supposed to be posted on 31-February-2026, but there is no 31st in February hence this file will never be posted either + +## GDPR Cookie Consent Dialog + +**al-folio** includes a built-in GDPR-compliant cookie consent dialog to help you respect visitor privacy and comply with privacy regulations (GDPR, CCPA, etc.). The feature is powered by [Vanilla Cookie Consent](https://cookieconsent.orestbida.com/) and integrates with all analytics providers. + +### How it works + +- A consent dialog appears on the visitor's first visit to your site +- Visitors can **accept all**, **reject all**, or **customize preferences** for analytics cookies +- Analytics scripts (Google Analytics, Cronitor, Pirsch, Openpanel) are **blocked by default** and only run after explicit consent +- Google Consent Mode ensures Google services operate in privacy mode before consent is granted +- User preferences are saved in their browser and respected on subsequent visits +- The dialog is mobile-responsive and supports multiple languages + +### When to use + +- ✅ **Required** if your site serves EU visitors and uses any analytics +- ✅ Recommended for any website using analytics, tracking, or marketing tools +- ❌ Not needed if your site doesn't use any analytics providers + +### How to enable + +1. Open `_config.yml` and locate the following line: + + ```yaml + enable_cookie_consent: false + ``` + +2. Change it to: + + ```yaml + enable_cookie_consent: true + ``` + +3. Rebuild your site: + + ```bash + docker compose down && docker compose up + # or + bundle exec jekyll serve + ``` + +4. The consent dialog will automatically appear on your site's homepage on first visit + +### Customizing the consent dialog + +The consent dialog configuration and messages are defined in [`_scripts/cookie-consent-setup.js`](_scripts/cookie-consent-setup.js). You can customize: + +- Dialog titles and button labels +- Cookie categories and descriptions +- Contact information links (points to `#contact` by default) +- Language translations + +To modify the dialog, edit the `language.translations.en` section in `_scripts/cookie-consent-setup.js`. For example, to change the consent dialog title: + +```javascript +consentModal: { + title: 'Your custom title here', + description: 'Your custom description...', + // ... other options +} +``` + +### Supported analytics providers + +When cookie consent is enabled, these analytics providers are automatically blocked until the user consents: + +- **Google Analytics (GA4)** – Uses Google Consent Mode for privacy-first operation before consent +- **Cronitor RUM** – Real User Monitoring for performance tracking +- **Pirsch Analytics** – GDPR-compliant analytics alternative +- **Openpanel Analytics** – Privacy-focused analytics platform + +Each provider only collects data if: + +1. It's enabled in `_config.yml` (e.g., `enable_google_analytics: true`) +2. The user has granted consent to the "analytics" category in the consent dialog + +### How it integrates with analytics + +When `enable_cookie_consent: true`, the template automatically: + +1. Adds `type="text/plain" data-category="analytics"` to all analytics script tags +2. This tells the cookie consent library to block these scripts until consent is granted +3. Loads the consent library and initializes Google Consent Mode +4. Updates consent preferences when the user changes them in the dialog + +You don't need to modify any analytics configuration—it works automatically. + +### For developers + +If you want to programmatically check consent status or react to consent changes, the library exposes the following: + +```javascript +// Check if user has granted analytics consent +window.CookieConsent.getCategories().analytics; // returns true or false + +// Listen for consent changes +window.CookieConsent.onChange(function (consentData) { + // Handle consent change +}); +``` + +For more API details, see [Vanilla Cookie Consent documentation](https://cookieconsent.orestbida.com/). + +--- + +## Setting up a Personal Access Token (PAT) for Google Scholar Citation Updates + +> [!TIP] +> After setting up al-folio you may want to run `python3 bin/update_citations.py` to fill the `_data/citations.yml` file with your Google Scholar citation counts. + +This project includes an automated workflow to update the citation counts for your publications using Google Scholar. +The workflow commits changes to `_data/citations.yml` directly to the `main` branch. +By default, the `GITHUB_TOKEN` will be used to commit the changes. +However, this token does not have permission to trigger subsequent workflows, such as the site rebuild workflow. +In order to deploy the changes from `main`, you can manually trigger the `deploy` workflow. + +> [!TIP] +> To ensure that these commits can trigger further GitHub Actions workflows (such as site rebuilds), you can use a Personal Access Token (PAT) instead of the default GitHub Actions token. +> If you have set up a PAT, citation updates will trigger further workflows (such as site rebuilds) after committing changes. In order to run the action with a PAT, you need to uncomment the following lines from the workflow file (`update-citations.yml`): +> +> ```yaml +> with: +> token: ${{ secrets.PAT }} +> ``` + +### Why is a PAT required? + +GitHub restricts the default `GITHUB_TOKEN` from triggering other workflows when a commit is made from within a workflow. Using a PAT overcomes this limitation and allows for full automation. + +### How to set up the PAT + +1. **Create a Personal Access Token** + - Go to [GitHub Settings > Developer settings > Personal access tokens](https://github.com/settings/tokens). + - Click "Generate new token" (classic or fine-grained). + - Grant at least the following permissions: + - `repo` (for classic tokens if repo is private), `public_repo` (for classic tokens if repo is public) or `contents: read/write` (for fine-grained tokens) + - Save the token somewhere safe. + +2. **Add the PAT as a repository secret** + - Go to your repository on GitHub. + - Navigate to `Settings` > `Secrets and variables` > `Actions` > `New repository secret`. + - Name the secret `PAT` (must match the name used in the workflow). + - Paste your PAT and save. + +3. **Workflow usage** + The workflow `.github/workflows/update-citations.yml` uses this PAT to commit updates to `_data/citations.yml`. diff --git a/FAQ.md b/FAQ.md index 03ed40aa04284..64d7581a908ee 100644 --- a/FAQ.md +++ b/FAQ.md @@ -18,9 +18,13 @@ Here are some frequently asked questions. If you have a different question, plea - [I am trying to deploy my site, but it fails with Could not find gem 'jekyll-diagrams' in locally installed gems. How do I fix that?](#i-am-trying-to-deploy-my-site-but-it-fails-with-could-not-find-gem-jekyll-diagrams-in-locally-installed-gems-how-do-i-fix-that) - [How can I update Academicons version on the template](#how-can-i-update-academicons-version-on-the-template) - [How can I update Font Awesome version on the template](#how-can-i-update-font-awesome-version-on-the-template) - - [How can I update Tabler Icons version on the template](#how-can-i-update-tabler-icons-version-on-the-template) - [What do all these GitHub actions/workflows mean?](#what-do-all-these-github-actionsworkflows-mean) - [How can I use Google Search Console ID on the template?](#how-can-i-use-google-search-console-id-on-the-template) + - [What are Code Wiki and DeepWiki?](#what-are-code-wiki-and-deepwiki) + - [When to use these tools](#when-to-use-these-tools) + - [What they do](#what-they-do) + - [Limitations](#limitations) + - [Access these tools](#access-these-tools) @@ -107,10 +111,6 @@ To update the Academicons version, you need to download the latest release from To update the Font Awesome version, you need to download the latest release "for the web" from the [Font Awesome website](https://fontawesome.com/download). After downloading, extract the zip file and copy the `scss/` directory content to `_sass/font-awesome/` and the `webfonts/` content to `assets/webfonts/`. -## How can I update Tabler Icons version on the template - -To update the Tabler Icons version, you need to download the latest release from the [Tabler Icons website](https://tabler.io/icons). After downloading, extract the zip file and copy the files `tabler-icons-filled.scss`, `tabler-icons-outline.scss`, and `tabler-icons.scss` from the `webfont/` directory to `_sass/tabler-icons/`, and all the files from `webfont/fonts/` to `assets/fonts/`. - ## What do all these GitHub actions/workflows mean? GitHub actions are a way to automate tasks in the repository. They are defined in `.github/workflows/` directory. Each file in this directory is a workflow. Workflows are made up of one or more jobs, and each job runs on a virtual machine hosted by GitHub. You can see the status of the workflows in the `Actions` tab of your repository. For more information, check the [GitHub Actions documentation](https://docs.github.com/en/actions). @@ -137,3 +137,39 @@ In the configuration file `_config.yml` the tag `google-site-verification` shoul - The string against `content` is the Google Search Console ID that can be used in the template. e.g. `google-site-verification: GoogleSearchConsoleID`. Now set the property `enable_google_verification: true`. It looks like the Domain type property in the Google Search Console to verify the ownership of all URLs across all subdomains with GitHub Pages does not work. + +## What are Code Wiki and DeepWiki? + +**Code Wiki** and **DeepWiki** are AI-powered tools that help you understand GitHub repositories through interactive documentation. They should be treated as supplementary resources when you cannot find the information you need in the official project documentation. + +### When to use these tools + +**Use Code Wiki and DeepWiki only after**: + +- You have reviewed the relevant documentation files in this repository (`README.md`, `INSTALL.md`, `CUSTOMIZE.md`, `FAQ.md`, or `CONTRIBUTING.md`) +- You have checked the [GitHub Discussions Q&A section](https://github.com/alshedivat/al-folio/discussions/categories/q-a) for similar questions +- You have searched existing [GitHub Issues](https://github.com/alshedivat/al-folio/issues) + +### What they do + +**Code Wiki** (powered by Google Gemini) generates interactive documentation from your repository code. It allows you to: + +- Browse your repository's structure and architecture +- Search for specific functions or modules +- Understand how different parts of the codebase work together +- Get diagrams and visual representations of your code architecture + +**DeepWiki** provides an AI-powered interface to ask questions about a repository, similar to having an engineer available 24/7. It allows you to: + +- Ask natural language questions about the codebase +- Get instant answers about how specific features work +- Search for code patterns and implementations + +### Limitations + +These tools are generated automatically from our code and may not always reflect the most current documentation standards or best practices specific to this project. They should not replace official documentation but rather complement it when you need deeper technical insights. + +### Access these tools + +- **Code Wiki**: [Code Wiki for al-folio](https://codewiki.google/github.com/alshedivat/al-folio) +- **DeepWiki**: [DeepWiki for al-folio](https://deepwiki.com/alshedivat/al-folio) diff --git a/Gemfile b/Gemfile index 164c945db8cea..d5827b5eca922 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,9 @@ gem 'jekyll' # Core plugins that directly affect site building group :jekyll_plugins do + gem 'jekyll-3rd-party-libraries' gem 'jekyll-archives-v2' + gem 'jekyll-cache-bust' gem 'jekyll-email-protect' gem 'jekyll-feed' gem 'jekyll-get-json' @@ -16,6 +18,7 @@ group :jekyll_plugins do gem 'jekyll-regex-replace' gem 'jekyll-scholar' gem 'jekyll-sitemap' + gem 'jekyll-socials' gem 'jekyll-tabs' gem 'jekyll-terser', :git => "https://github.com/RobertoJBeltran/jekyll-terser.git" gem 'jekyll-toc' @@ -32,7 +35,7 @@ group :other_plugins do gem 'httparty' gem 'observer' # used by jekyll-scholar gem 'ostruct' # used by jekyll-twitter-plugin - # gem 'terser' # used by jekyll-terser + gem 'terser' # used by jekyll-terser # gem 'unicode_utils' -- should be already installed by jekyll # gem 'webrick' -- should be already installed by jekyll end diff --git a/Gemfile.lock b/Gemfile.lock index cfc2226a96777..930d818606753 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,27 +9,27 @@ GIT GEM remote: https://rubygems.org/ specs: - activesupport (8.0.2) + activesupport (8.1.2) base64 - benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + json logger (>= 1.4.2) minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) uri (>= 0.13.1) - addressable (2.8.7) - public_suffix (>= 2.0.2, < 7.0) - base64 (0.2.0) - benchmark (0.4.0) - bibtex-ruby (6.1.0) + addressable (2.8.8) + public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) + bibtex-ruby (6.2.0) latex-decode (~> 0.0) + logger (~> 1.7) racc (~> 1.7) - bigdecimal (3.1.9) + bigdecimal (4.0.1) citeproc (1.1.0) date forwardable @@ -37,7 +37,7 @@ GEM namae (~> 1.0) observer (< 1.0) open-uri (< 1.0) - citeproc-ruby (2.1.1) + citeproc-ruby (2.1.8) citeproc (~> 1.0, >= 1.0.9) csl (~> 2.0) observer (< 1.0) @@ -45,10 +45,10 @@ GEM fast-stemmer (~> 1.0) matrix (~> 0.4) colorator (1.1.0) - concurrent-ruby (1.3.5) - connection_pool (2.5.3) + concurrent-ruby (1.3.6) + connection_pool (3.0.2) crass (1.0.6) - csl (2.1.0) + csl (2.2.1) forwardable (~> 1.3) namae (~> 1.2) open-uri (< 1.0) @@ -56,13 +56,13 @@ GEM set (~> 1.1) singleton (< 1.0) time (< 1.0) - csl-styles (2.0.1) + csl-styles (2.0.2) csl (~> 2.0) css_parser (1.21.1) addressable - cssminify2 (2.0.1) - csv (3.3.4) - date (3.4.1) + cssminify2 (2.1.0) + csv (3.3.5) + date (3.5.1) deep_merge (1.2.2) drb (2.2.3) em-websocket (0.5.3) @@ -71,52 +71,57 @@ GEM eventmachine (1.2.7) execjs (2.10.0) fast-stemmer (1.0.2) - feedjira (3.2.5) + feedjira (4.0.1) + logger (>= 1.0, < 2) loofah (>= 2.3.1, < 3) sax-machine (>= 1.0, < 2) - ffi (1.17.2-aarch64-linux-gnu) - ffi (1.17.2-aarch64-linux-musl) - ffi (1.17.2-arm-linux-gnu) - ffi (1.17.2-arm-linux-musl) - ffi (1.17.2-arm64-darwin) - ffi (1.17.2-x86_64-darwin) - ffi (1.17.2-x86_64-linux-gnu) - ffi (1.17.2-x86_64-linux-musl) - forwardable (1.3.3) + ffi (1.17.3-aarch64-linux-gnu) + ffi (1.17.3-aarch64-linux-musl) + ffi (1.17.3-arm-linux-gnu) + ffi (1.17.3-arm-linux-musl) + ffi (1.17.3-arm64-darwin) + ffi (1.17.3-x86_64-darwin) + ffi (1.17.3-x86_64-linux-gnu) + ffi (1.17.3-x86_64-linux-musl) + forwardable (1.4.0) forwardable-extended (2.6.0) gemoji (4.1.0) - google-protobuf (4.31.0) + google-protobuf (4.33.4) bigdecimal rake (>= 13) - google-protobuf (4.31.0-aarch64-linux-gnu) + google-protobuf (4.33.4-aarch64-linux-gnu) bigdecimal rake (>= 13) - google-protobuf (4.31.0-aarch64-linux-musl) + google-protobuf (4.33.4-aarch64-linux-musl) bigdecimal rake (>= 13) - google-protobuf (4.31.0-arm64-darwin) + google-protobuf (4.33.4-arm64-darwin) bigdecimal rake (>= 13) - google-protobuf (4.31.0-x86_64-darwin) + google-protobuf (4.33.4-x86_64-darwin) bigdecimal rake (>= 13) - google-protobuf (4.31.0-x86_64-linux-gnu) + google-protobuf (4.33.4-x86_64-linux-gnu) bigdecimal rake (>= 13) - google-protobuf (4.31.0-x86_64-linux-musl) + google-protobuf (4.33.4-x86_64-linux-musl) bigdecimal rake (>= 13) html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) htmlcompressor (0.4.0) - http_parser.rb (0.8.0) - httparty (0.23.1) + http_parser.rb (0.8.1) + httparty (0.24.2) csv mini_mime (>= 1.0.0) multi_xml (>= 0.5.2) - i18n (1.14.7) + i18n (1.14.8) concurrent-ruby (~> 1.0) + jekyll-3rd-party-libraries (0.0.1) + css_parser (>= 1.6, < 2.0) + jekyll (>= 3.6, < 5.0) + nokogiri (>= 1.8, < 2.0) jekyll (4.4.1) addressable (~> 2.4) base64 (~> 0.2) @@ -136,9 +141,11 @@ GEM safe_yaml (~> 1.0) terminal-table (>= 1.8, < 4.0) webrick (~> 1.7) - jekyll-archives-v2 (0.0.6) + jekyll-archives-v2 (0.0.7) activesupport jekyll (>= 3.6, < 5.0) + jekyll-cache-bust (0.0.1) + jekyll (>= 3.6, < 5.0) jekyll-email-protect (1.1.0) jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) @@ -150,24 +157,26 @@ GEM jekyll-jupyter-notebook (0.0.6) jekyll jekyll-link-attributes (1.0.1) - jekyll-minifier (0.1.10) - cssminify2 (~> 2.0) + jekyll-minifier (0.2.2) + cssminify2 (~> 2.1.0) htmlcompressor (~> 0.4) - jekyll (>= 3.5) + jekyll (~> 4.0) json-minify (~> 0.0.3) - uglifier (~> 4.1) + terser (~> 1.2.3) jekyll-paginate-v2 (3.0.0) jekyll (>= 3.0, < 5.0) jekyll-regex-replace (1.1.0) jekyll-sass-converter (3.1.0) sass-embedded (~> 1.75) - jekyll-scholar (7.2.0) + jekyll-scholar (7.3.0) bibtex-ruby (~> 6.0) - citeproc-ruby (~> 2.0) + citeproc-ruby (>= 2.1.6) csl-styles (~> 2.0) jekyll (~> 4.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) + jekyll-socials (0.0.6) + jekyll (>= 3.6, < 5.0) jekyll-tabs (1.2.1) jekyll (>= 3.0, < 5.0) jekyll-toc (0.19.0) @@ -180,97 +189,98 @@ GEM gemoji (>= 3, < 5) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) - json (2.12.2) + json (2.18.0) json-minify (0.0.3) json (> 0) - kramdown (2.5.1) - rexml (>= 3.3.9) + kramdown (2.5.2) + rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - latex-decode (0.4.0) + latex-decode (0.4.2) liquid (4.0.4) - listen (3.9.0) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) logger (1.7.0) - loofah (2.24.1) + loofah (2.25.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) - matrix (0.4.2) + matrix (0.4.3) mercenary (0.4.0) mini_mime (1.1.5) - minitest (5.25.5) - multi_xml (0.7.2) - bigdecimal (~> 3.1) + minitest (6.0.1) + prism (~> 1.5) + multi_xml (0.8.1) + bigdecimal (>= 3.1, < 5) namae (1.2.0) racc (~> 1.7) - nokogiri (1.18.9-aarch64-linux-gnu) + nokogiri (1.19.0-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.9-aarch64-linux-musl) + nokogiri (1.19.0-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.18.9-arm-linux-gnu) + nokogiri (1.19.0-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.9-arm-linux-musl) + nokogiri (1.19.0-arm-linux-musl) racc (~> 1.4) - nokogiri (1.18.9-arm64-darwin) + nokogiri (1.19.0-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.9-x86_64-darwin) + nokogiri (1.19.0-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-gnu) + nokogiri (1.19.0-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.9-x86_64-linux-musl) + nokogiri (1.19.0-x86_64-linux-musl) racc (~> 1.4) observer (0.1.2) open-uri (0.5.0) stringio time uri - ostruct (0.6.1) + ostruct (0.6.3) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (6.0.2) + prism (1.8.0) + public_suffix (7.0.2) racc (1.8.1) - rake (13.2.1) + rake (13.3.1) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rexml (3.4.1) - rouge (4.5.2) + rexml (3.4.4) + rouge (4.7.0) safe_yaml (1.0.5) - sass-embedded (1.89.0-aarch64-linux-gnu) + sass-embedded (1.97.2-aarch64-linux-gnu) google-protobuf (~> 4.31) - sass-embedded (1.89.0-aarch64-linux-musl) + sass-embedded (1.97.2-aarch64-linux-musl) google-protobuf (~> 4.31) - sass-embedded (1.89.0-arm-linux-gnueabihf) + sass-embedded (1.97.2-arm-linux-gnueabihf) google-protobuf (~> 4.31) - sass-embedded (1.89.0-arm-linux-musleabihf) + sass-embedded (1.97.2-arm-linux-musleabihf) google-protobuf (~> 4.31) - sass-embedded (1.89.0-arm64-darwin) + sass-embedded (1.97.2-arm64-darwin) google-protobuf (~> 4.31) - sass-embedded (1.89.0-x86_64-darwin) + sass-embedded (1.97.2-x86_64-darwin) google-protobuf (~> 4.31) - sass-embedded (1.89.0-x86_64-linux-gnu) + sass-embedded (1.97.2-x86_64-linux-gnu) google-protobuf (~> 4.31) - sass-embedded (1.89.0-x86_64-linux-musl) + sass-embedded (1.97.2-x86_64-linux-musl) google-protobuf (~> 4.31) sax-machine (1.3.2) securerandom (0.4.1) set (1.1.2) singleton (0.3.0) - stringio (3.1.7) + stringio (3.2.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - terser (1.2.5) + terser (1.2.6) execjs (>= 0.3.0, < 3) - time (0.4.1) + time (0.4.2) date tzinfo (2.0.6) concurrent-ruby (~> 1.0) - uglifier (4.2.1) - execjs (>= 0.3.0, < 3) unicode-display_width (2.6.0) - uri (1.0.3) - webrick (1.9.1) + uri (1.1.1) + webrick (1.9.2) PLATFORMS aarch64-linux @@ -292,7 +302,9 @@ DEPENDENCIES feedjira httparty jekyll + jekyll-3rd-party-libraries jekyll-archives-v2 + jekyll-cache-bust jekyll-email-protect jekyll-feed jekyll-get-json @@ -304,6 +316,7 @@ DEPENDENCIES jekyll-regex-replace jekyll-scholar jekyll-sitemap + jekyll-socials jekyll-tabs jekyll-terser! jekyll-toc @@ -311,6 +324,7 @@ DEPENDENCIES jemoji observer ostruct + terser BUNDLED WITH - 2.6.9 + 4.0.4 diff --git a/INSTALL.md b/INSTALL.md index b55a1578b86ee..181b7761b0297 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -4,6 +4,10 @@ - [Installing and Deploying](#installing-and-deploying) - [Recommended Approach](#recommended-approach) + - [Template vs. Fork: Which Should I Use?](#template-vs-fork-which-should-i-use) + - [Important Notes for GitHub Pages Sites](#important-notes-for-github-pages-sites) + - [Automatic Deployment](#automatic-deployment) + - [Local Development](#local-development) - [Local setup on Windows](#local-setup-on-windows) - [Local setup using Docker (Recommended)](#local-setup-using-docker-recommended) - [Build your own docker image](#build-your-own-docker-image) @@ -18,27 +22,46 @@ - [Deploy on Netlify](https://www.netlify.com/) - [Deployment to another hosting server (non GitHub Pages)](#deployment-to-another-hosting-server-non-github-pages) - [Deployment to a separate repository (advanced users only)](#deployment-to-a-separate-repository-advanced-users-only) + - [Maintaining Dependencies](#maintaining-dependencies) - [Upgrading from a previous version](#upgrading-from-a-previous-version) ## Recommended Approach -The recommended approach for using **al-folio** is to first create your own site using the template with as few changes as possible, and only when it is up and running customize it however you like. This way it is easier to pinpoint what causes a potential issue in case of a bug. The minimum steps required to create your own site are ([video tutorial here](assets/video/tutorial_al_folio.mp4)): +The recommended approach for using **al-folio** is to first create your own site using the template with as few changes as possible, and only when it is up and running customize it however you like. This way it is easier to pinpoint what causes a potential issue in case of a bug. -1. Create a new repository using this template. For this, click on [Use this template -> Create a new repository](https://github.com/new?template_name=al-folio&template_owner=alshedivat) above the file list. If you plan to upload your site to `.github.io`, note that the name of your repository :warning: **MUST BE** :warning: `.github.io` or `.github.io`, as stated in the [GitHub pages docs](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites). -2. In this new repository, go to [Settings -> Actions -> General -> Workflow permissions](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#configuring-the-default-github_token-permissions) and give `Read and write permissions` to GitHub Actions. -3. Open file `_config.yml`, set `url` to `https://.github.io` and leave `baseurl` **empty** (do NOT delete it), as `baseurl:`. -4. Wait until the GitHub action with subtitle `Deploy site` finishes (check your repository **Actions** tab), which takes ~4 min. Now, in addition to the `main` branch, your repository has a newly built `gh-pages` branch. -5. Finally, in the repository page go to `Settings -> Pages -> Build and deployment`, make sure that `Source` is set to `Deploy from a branch` and set the branch to `gh-pages` (NOT to main). -6. Wait until the GitHub action `pages-build-deployment` finishes (check your repository **Actions** tab), which takes ~45s, then simply navigate to `https://.github.io` in your browser. At this point you should see a copy of the theme's [demo website](https://alshedivat.github.io/al-folio/). - After everything is set up, you can download the repository to your machine and start customizing it. To do so, run the following commands: +**For the quickest setup**, follow the [Quick Start Guide](QUICKSTART.md), which will have you up and running in 5 minutes. + +### Template vs. Fork: Which Should I Use? + +**Use the "Use this template" button** (recommended) when creating your own al-folio site. This creates a clean, independent copy that is not linked to the main al-folio repository. + +**If you already forked the repository**, your fork will work fine, but you should be aware of a common pitfall: + +- Forks maintain a connection to the original repository, which can make it easy to accidentally submit pull requests to al-folio with your personal site changes +- **Solution:** When making changes to your fork, always create a new branch (e.g., `git checkout -b my-site-updates`) and verify that you're pushing to **your own fork** before submitting pull requests +- Only submit pull requests to `alshedivat/al-folio` if you're intentionally contributing improvements that benefit the entire al-folio community + +### Important Notes for GitHub Pages Sites + +If you plan to upload your site to `.github.io`, the repository name :warning: **MUST BE** :warning: `.github.io` or `.github.io`, as stated in the [GitHub pages docs](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites). + +When configuring `_config.yml`, set `url` to `https://.github.io` and leave `baseurl` **empty** (do NOT delete it), setting it as `baseurl:`. + +### Automatic Deployment + +Starting version [v0.3.5](https://github.com/alshedivat/al-folio/releases/tag/v0.3.5), **al-folio** will automatically re-deploy your webpage each time you push new changes to your repository! :sparkles: + +### Local Development + +Once everything is deployed, you can download the repository to your machine and start customizing it locally: ```bash -$ git clone git@github.com:/.git +git clone git@github.com:/.git ``` -Starting version [v0.3.5](https://github.com/alshedivat/al-folio/releases/tag/v0.3.5), **al-folio** will automatically re-deploy your webpage each time you push new changes to your repository! :sparkles: +See [Local setup using Docker](#local-setup-using-docker-recommended) or other sections below for local development options. ## Local setup on Windows @@ -54,8 +77,8 @@ You need to take the following steps to get `al-folio` up and running on your lo - Finally, run the following command that will pull the latest pre-built image from DockerHub and will run your website. ```bash -$ docker compose pull -$ docker compose up +docker compose pull +docker compose up ``` Note that when you run it for the first time, it will download a docker image of size 400MB or so. To see the template running, open your browser and go to `http://localhost:8080`. You should see a copy of the theme's demo website. @@ -71,12 +94,12 @@ Now, feel free to customize the theme however you like (don't forget to change t Build and run a new docker image using: ```bash -$ docker compose up --build +docker compose up --build ``` > If you want to update jekyll, install new ruby packages, etc., all you have to do is build the image again using `--force-recreate` argument at the end of the previous command! It will download Ruby and Jekyll and install all Ruby packages again from scratch. -If you want to use a specific docker version, you can do so by changing `latest` tag to `your_version` in `docker-compose.yaml`. For example, you might have created your website on `v0.10.0` and you want to stick with that. +If you want to use a specific docker version, you can do so by changing the version tag to `your_version` in `docker-compose.yaml` (the `v0.16.3` in `image: amirpourmand/al-folio:v0.16.3`). For example, you might have created your website on `v0.10.0` and you want to stick with that. ### Have Bugs on Docker Image? @@ -120,10 +143,10 @@ For a hands-on walkthrough of running al-folio locally without using Docker, che Assuming you have [Ruby](https://www.ruby-lang.org/en/downloads/) and [Bundler](https://bundler.io/) installed on your system (_hint: for ease of managing ruby gems, consider using [rbenv](https://github.com/rbenv/rbenv)_), and also [Python](https://www.python.org/) and [pip](https://pypi.org/project/pip/) (_hint: for ease of managing python packages, consider using a virtual environment, like [venv](https://docs.python.org/pt-br/3/library/venv.html) or [conda](https://docs.conda.io/en/latest/)_). ```bash -$ bundle install +bundle install # assuming pip is your Python package manager -$ pip install jupyter -$ bundle exec jekyll serve +pip install jupyter +bundle exec jekyll serve ``` To see the template running, open your browser and go to `http://localhost:4000`. You should see a copy of the theme's [demo website](https://alshedivat.github.io/al-folio/). Now, feel free to customize the theme however you like. After you are done, remember to **commit** your final changes. @@ -167,14 +190,12 @@ If you need to manually re-deploy your website to GitHub pages, go to Actions, c 1. [Use this template -> Create a new repository](https://github.com/new?template_name=al-folio&template_owner=alshedivat). 2. Netlify: **Add new site** -> **Import an existing project** -> **GitHub** and give Netlify access to the repository you just created. 3. Netlify: In the deploy settings - - Set **Branch to deploy** to `main` - **Base directory** is empty - Set **Build command** to `sed -i "s/^\(baseurl: \).*$/baseurl:/" _config.yml && bundle exec jekyll build` - Set **Publish directory** to `_site` 4. Netlify: Add the following two **environment variables** - - | Key | Value | | -------------- | -------------------------------------------------------------------------------------- | | `JEKYLL_ENV` | `production` | @@ -187,7 +208,7 @@ If you need to manually re-deploy your website to GitHub pages, go to Actions, c If you decide to not use GitHub Pages and host your page elsewhere, simply run: ```bash -$ bundle exec jekyll build +bundle exec jekyll build ``` which will (re-)generate the static webpage in the `_site/` folder. @@ -196,7 +217,7 @@ Then simply copy the contents of the `_site/` directory to your hosting server. If you also want to remove unused css classes from your file, run: ```bash -$ purgecss -c purgecss.config.js +purgecss -c purgecss.config.js ``` which will replace the css files in the `_site/assets/css/` folder with the purged css files. @@ -215,7 +236,7 @@ Firstly, from the deployment repo dir, checkout the git branch hosting your publ Then from the website sources dir (commonly your al-folio fork's clone): ```bash -$ bundle exec jekyll build --destination $HOME/repo/publishing-source +bundle exec jekyll build --destination $HOME/repo/publishing-source ``` This will instruct jekyll to deploy the website under `$HOME/repo/publishing-source`. @@ -235,15 +256,37 @@ In its default configuration, al-folio will copy the top-level `README.md` to th **Note:** Do _not_ run `jekyll clean` on your publishing source repo as this will result in the entire directory getting deleted, irrespective of the content of `keep_files` in `_config.yml`. +## Maintaining Dependencies + +**al-folio** uses **Bundler** (a Ruby dependency manager) to keep track of Ruby packages (called "gems") needed to run Jekyll and its plugins. + +**To update all dependencies:** + +```bash +bundle update --all +``` + +**After updating:** + +1. Rebuild the Docker image to apply changes: `docker compose up --build` +2. Test locally to ensure everything still works: `docker compose up` +3. Visit `http://localhost:8080` and verify the site renders correctly +4. If your site fails after updating, check the [FAQ](FAQ.md) for troubleshooting + +**For Ruby/Python environment issues:** + +- Always use Docker for consistency with CI/CD (see [Local setup using Docker](#local-setup-using-docker-recommended)) +- Avoid manual Ruby/Python installation when possible + ## Upgrading from a previous version If you installed **al-folio** as described above, you can manually update your code by following the steps below: ```bash # Assuming the current directory is -$ git remote add upstream https://github.com/alshedivat/al-folio.git -$ git fetch upstream -$ git rebase v0.14.6 +git remote add upstream https://github.com/alshedivat/al-folio.git +git fetch upstream +git rebase v0.16.3 ``` If you have extensively customized a previous version, it might be trickier to upgrade. diff --git a/QUICKSTART.md b/QUICKSTART.md new file mode 100644 index 0000000000000..8a9704f74d6c4 --- /dev/null +++ b/QUICKSTART.md @@ -0,0 +1,111 @@ +# Quick Start Guide + +**Get your al-folio site running in 5 minutes.** This guide is for users who just want a working website quickly without deep customization. + +> **Video Tutorial:** Watch a walkthrough of these steps [here](assets/video/tutorial_al_folio.mp4) + + + +- [Quick Start Guide](#quick-start-guide) + - [Step 1: Create Your Repository (1 min)](#step-1-create-your-repository-1-min) + - [Step 2: Configure Deployment (1 min)](#step-2-configure-deployment-1-min) + - [Step 3: Personalize (2 min)](#step-3-personalize-2-min) + - [Step 4: View Your Site (1 min)](#step-4-view-your-site-1-min) + - [What's Next?](#whats-next) + - [Add Your Content](#add-your-content) + - [Customize Appearance](#customize-appearance) + - [Learn More](#learn-more) + - [Get Help from AI](#get-help-from-ai) + + + +## Step 1: Create Your Repository (1 min) + +**⚠️ Important:** Use the **"Use this template"** button, NOT the fork button. This ensures your site is independent and you won't accidentally submit your personal changes back to the al-folio project. + +1. Go to the [al-folio repository](https://github.com/alshedivat/al-folio) +2. Click the green **"Use this template"** button (top right), then select **"Create a new repository"** +3. Name your repository: + - **Personal/Organization site (if you want your site to be at `username.github.io`):** `username.github.io` (replace `username` with your GitHub username) + - **Project site (if you want your site to be at `username.github.io/project-name`):** Any name (e.g., `my-research-website`) +4. Click **"Create repository from template"** + +**Already forked by mistake?** No problem. Your fork will work fine—just be careful when making changes. Create a new branch for your updates (e.g., `git checkout -b my-site-updates`) and make sure you push to **your own repository**, not the main al-folio project. + +## Step 2: Configure Deployment (1 min) + +1. Go to your new repository → **Settings** → **Actions** → **General** → **Workflow permissions** +2. Select **Read and write permissions** +3. Click **Save** + +## Step 3: Personalize (2 min) + +1. Open `_config.yml` in your repository +2. Update these fields: + ```yaml + title: My Website + first_name: Your + last_name: Name + url: https://your-username.github.io # or your custom domain + baseurl: # Leave this empty (do NOT delete it) + ``` +3. Click **Commit changes** (at the bottom of the page) + +## Step 4: View Your Site (1 min) + +1. Go to your repository → **Actions** tab +2. Wait for the "Deploy site" workflow to complete (look for a green checkmark, ~4 minutes) +3. Go to **Settings** → **Pages** → **Build and deployment** +4. Make sure **Source** is set to **Deploy from a branch** +5. Set the branch to **gh-pages** (NOT main) +6. Wait for the "pages-build-deployment" workflow to complete (~45 seconds) +7. Visit `https://your-username.github.io` in your browser + +**That's it!** Your site is live. You now have a working al-folio website. + +--- + +## What's Next? + +Once your site is running, explore these customization options: + +### Add Your Content + +- **Profile picture:** Replace `assets/img/prof_pic.jpg` with your photo +- **About page:** Edit `_pages/about.md` to write your bio +- **Publications:** Add entries to `_bibliography/papers.bib` +- **Blog posts:** Create files in `_posts/` with format `YYYY-MM-DD-title.md` + +### Customize Appearance + +- **Theme color:** Edit `_config.yml`, search for `theme_color` +- **Enable/disable sections:** In `_config.yml`, look for `enabled: false/true` options +- **Social media links:** Edit `_data/socials.yml` + +### Learn More + +- Installation and local setup options: [INSTALL.md](INSTALL.md) +- Full customization guide: [CUSTOMIZE.md](CUSTOMIZE.md) +- Frequently asked questions: [FAQ.md](FAQ.md) +- Troubleshooting: [TROUBLESHOOTING.md](TROUBLESHOOTING.md) + +### Get Help from AI + +Use the **GitHub Copilot Customization Agent** (if you have Copilot) to: + +- Get step-by-step help with customizations +- Understand how to modify specific features +- Apply changes directly to your site + +See [CUSTOMIZE.md § GitHub Copilot Customization Agent](CUSTOMIZE.md#github-copilot-customization-agent) for details. + +--- + +**Common first steps:** + +- Change the theme color in `_config.yml` +- Add your social media links in `_data/socials.yml` +- Upload your profile picture to `assets/img/prof_pic.jpg` +- Write a short bio in `_pages/about.md` + +Happy customizing! 🎉 diff --git a/README.md b/README.md index 7f797dbb5ce3b..ed2e9d765eeb5 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,19 @@ [![deploy](https://github.com/alshedivat/al-folio/actions/workflows/deploy.yml/badge.svg)](https://github.com/alshedivat/al-folio/actions/workflows/deploy.yml) [![Maintainers](https://img.shields.io/badge/maintainers-4-success.svg)](#maintainers) [![GitHub contributors](https://img.shields.io/github/contributors/alshedivat/al-folio.svg)](https://github.com/alshedivat/al-folio/graphs/contributors/) + [![Docker Image Version](https://img.shields.io/docker/v/amirpourmand/al-folio?sort=semver&label=docker%20image&color=blueviolet)](https://hub.docker.com/r/amirpourmand/al-folio) [![Docker Image Size](https://img.shields.io/docker/image-size/amirpourmand/al-folio?sort=date&label=docker%20image%20size&color=blueviolet)](https://hub.docker.com/r/amirpourmand/al-folio) [![Docker Pulls](https://img.shields.io/docker/pulls/amirpourmand/al-folio?color=blueviolet)](https://hub.docker.com/r/amirpourmand/al-folio) [![GitHub release](https://img.shields.io/github/v/release/alshedivat/al-folio)](https://github.com/alshedivat/al-folio/releases/latest) [![GitHub license](https://img.shields.io/github/license/alshedivat/al-folio?color=blue)](https://github.com/alshedivat/al-folio/blob/main/LICENSE) -[![GitHub stars](https://img.shields.io/github/stars/alshedivat/al-folio)](https://github.com/alshedivat/al-folio) +[![GitHub stars](https://img.shields.io/github/stars/alshedivat/al-folio)](https://github.com/alshedivat/al-folio/stargazers) [![GitHub forks](https://img.shields.io/github/forks/alshedivat/al-folio)](https://github.com/alshedivat/al-folio/fork) +[![Code Wiki](https://img.shields.io/badge/Code_Wiki-ask_about_repo-blue?logo=googlegemini)](https://codewiki.google/github.com/alshedivat/al-folio) +[![DeepWiki](https://img.shields.io/badge/DeepWiki-ask_about_repo-lightcyan)](https://deepwiki.com/alshedivat/al-folio) + ## User community @@ -127,7 +131,6 @@ Feel free to add your own page(s) by sending a PR. - @@ -145,7 +148,7 @@ Feel free to add your own page(s) by sending a PR. - + @@ -166,6 +169,18 @@ Feel free to add your own page(s) by sending a PR. + + + + + + + + + + + + @@ -180,7 +195,7 @@ Feel free to add your own page(s) by sending a PR. - + @@ -240,6 +255,10 @@ Run the test yourself: [Google Lighthouse PageSpeed Insights](https://pagespeed. - [Getting started](#getting-started) - [Installing and Deploying](#installing-and-deploying) - [Customizing](#customizing) + - [GitHub Copilot Agents](#github-copilot-agents) + - [Customization Agent](#customization-agent) + - [Documentation Agent](#documentation-agent) + - [Documentation](#documentation) - [Features](#features) - [Light/Dark Mode](#lightdark-mode) - [CV](#cv) @@ -257,16 +276,33 @@ Run the test yourself: [Google Lighthouse PageSpeed Insights](https://pagespeed. - [Atom (RSS-like) Feed](#atom-rss-like-feed) - [Related posts](#related-posts) - [Code quality checks](#code-quality-checks) + - [GDPR Cookie Consent Dialog](#gdpr-cookie-consent-dialog) - [FAQ](#faq) - [Contributing](#contributing) - [Maintainers](#maintainers) - [All Contributors](#all-contributors) - [Star History](#star-history) - [License](#license) - + + ## Getting started +**⚠️ Important: Use "Use this template" (not fork)** + +When creating your own website with al-folio, you have two options: + +- ✅ **Recommended:** Click "[Use this template](https://github.com/new?template_name=al-folio&template_owner=alshedivat)" – This creates a clean copy that is independent from the main al-folio repository. Changes you make to your site won't be accidentally submitted to al-folio as pull requests. +- ❌ **Not recommended:** Forking the repository – This keeps a link to the main al-folio repo, making it easy to accidentally submit your personal site changes as contributions to our project. + +**If you already forked:** Don't worry! You can still work with your fork normally. Just make sure to: + +1. Make changes on a dedicated branch (e.g., `my-site-updates`) +2. When pushing changes, always verify you're pushing to **your own repository**, not the main al-folio repository +3. Never create pull requests to `alshedivat/al-folio` unless you're intentionally contributing improvements that benefit all users + +For quick setup, see [QUICKSTART.md](QUICKSTART.md). + Want to learn more about Jekyll? Check out [this tutorial](https://www.taniarascia.com/make-a-static-website-with-jekyll/). Why Jekyll? Read [Andrej Karpathy's blog post](https://karpathy.github.io/2014/07/01/switching-to-jekyll/)! Why write a blog? Read [Rachel Thomas blog post](https://medium.com/@racheltho/why-you-yes-you-should-blog-7d2544ac1045). ## Installing and Deploying @@ -277,6 +313,46 @@ For installation and deployment details please refer to [INSTALL.md](INSTALL.md) For customization details please refer to [CUSTOMIZE.md](CUSTOMIZE.md). +## GitHub Copilot Agents + +This repository includes two specialized GitHub Copilot agents to enhance your development experience: + +### Customization Agent + +The **Customization Agent** helps you personalize your al-folio website by: + +- Guiding you through configuration changes step-by-step +- Modifying files directly in your repository +- Explaining technical concepts in plain language (great for users without coding experience) +- Assisting with common tasks like updating your CV, adding publications, creating blog posts, and customizing themes + +See [CUSTOMIZE.md § GitHub Copilot Customization Agent](CUSTOMIZE.md#github-copilot-customization-agent) for detailed usage instructions. + +### Documentation Agent + +The **Documentation Agent** maintains clear and up-to-date project documentation by: + +- Updating documentation files when features change +- Writing in a style accessible to academics and researchers +- Keeping documentation synchronized with the codebase +- Following documentation best practices + +See [CONTRIBUTING.md § GitHub Copilot Agents](CONTRIBUTING.md#github-copilot-agents) for more information. + +> **Requirements:** Both agents require a [GitHub Copilot](https://github.com/features/copilot) subscription. For more information about GitHub Copilot and how to use agents, see the [GitHub Copilot documentation](https://docs.github.com/en/copilot). + +## Documentation + +Comprehensive guides for all aspects of your al-folio website: + +- **[Quick Start](QUICKSTART.md)** – Get running in 5 minutes +- **[Installation & Deployment](INSTALL.md)** – Set up your site on GitHub Pages or other platforms +- **[Customization Guide](CUSTOMIZE.md)** – Personalize your website (CVs, publications, themes, etc.) +- **[Troubleshooting](TROUBLESHOOTING.md)** – Fix common issues (deployment, build, styling, content) +- **[FAQ](FAQ.md)** – Frequently asked questions and solutions +- **[Analytics](ANALYTICS.md)** – Add website analytics and visitor tracking +- **[SEO Guide](SEO.md)** – Optimize for search engines and improve discoverability + ## Features ### Light/Dark Mode @@ -292,12 +368,12 @@ This template has a built-in light/dark mode. It detects the user preferred colo ### CV -There are currently 2 different ways of generating the CV page content. The first one is by using a json file located in [assets/json/resume.json](assets/json/resume.json). It is a [known standard](https://jsonresume.org/) for creating a CV programmatically. The second one, currently used as a fallback when the json file is not found, is by using a yml file located in [\_data/cv.yml](_data/cv.yml). This was the original way of creating the CV page content and since it is more human readable than a json file we decided to keep it as an option. - -What this means is, if there is no resume data defined in [\_config.yml](_config.yml) and loaded via a json file, it will load the contents of [\_data/cv.yml](_data/cv.yml) as fallback. +Your CV can be generated in one of two modern formats: **RenderCV** (recommended, with automatic PDF generation) or **JSONResume** (standardized JSON format). You can use both simultaneously and switch between them, or maintain just the one you prefer. [![CV Preview](readme_preview/cv.png)](https://alshedivat.github.io/al-folio/cv/) +For setup and customization details, see [Modifying the CV information](CUSTOMIZE.md#modifying-the-cv-information) in [CUSTOMIZE.md](CUSTOMIZE.md). + --- ### People @@ -310,21 +386,21 @@ You can create a people page if you want to feature more than one person. Each p ### Publications -Your publications' page is generated automatically from your BibTex bibliography. Simply edit [\_bibliography/papers.bib](_bibliography/papers.bib). You can also add new `*.bib` files and customize the look of your publications however you like by editing [\_pages/publications.md](_pages/publications.md). By default, the publications will be sorted by year and the most recent will be displayed first. You can change this behavior and more in the `Jekyll Scholar` section in [\_config.yml](_config.yml) file. - -You can add extra information to a publication, like a PDF file in the [assets/pdf/](assets/pdf/) directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`. +Your publications page is generated automatically from your BibTeX bibliography. You can customize publication display, add extra information like PDFs, and control sorting behavior. [![Publications Preview](readme_preview/publications.png)](https://alshedivat.github.io/al-folio/publications/) +For setup, BibTeX field documentation, and customization options, see [Adding a new publication](CUSTOMIZE.md#adding-a-new-publication) and [Managing publication display](CUSTOMIZE.md#managing-publication-display) in [CUSTOMIZE.md](CUSTOMIZE.md). + --- ### Collections -This Jekyll theme implements `collections` to let you break up your work into categories. The theme comes with two default collections: `news` and `projects`. Items from the `news` collection are automatically displayed on the home page. Items from the `projects` collection are displayed on a responsive grid on projects page. +This Jekyll theme implements `collections` to organize content into categories. The theme comes with default collections for `news`, `projects`, `books`, and `teachings`. You can easily create your own collections for apps, stories, courses, or any other creative work. [![Projects Preview](readme_preview/projects.png)](https://alshedivat.github.io/al-folio/projects/) -You can easily create your own collections, apps, short stories, courses, or whatever your creative work is. To do this, edit the collections in the [\_config.yml](_config.yml) file, create a corresponding folder, and create a landing page for your collection, similar to `_pages/projects.md`. +For detailed instructions on creating and customizing collections, see [Adding Collections](CUSTOMIZE.md#adding-collections) in [CUSTOMIZE.md](CUSTOMIZE.md). --- @@ -365,52 +441,27 @@ Photo formatting is made simple using [Bootstrap's grid system](https://getboots #### GitHub's repositories and user stats -**al-folio** uses [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) and [github-profile-trophy](https://github.com/ryo-ma/github-profile-trophy) to display GitHub repositories and user stats on the `/repositories/` page. +**al-folio** displays GitHub repositories and user stats on the `/repositories/` page using [github-readme-stats](https://github.com/anuraghazra/github-readme-stats) and [github-profile-trophy](https://github.com/ryo-ma/github-profile-trophy). [![Repositories Preview](readme_preview/repositories.png)](https://alshedivat.github.io/al-folio/repositories/) -Edit the `_data/repositories.yml` and change the `github_users` and `github_repos` lists to include your own GitHub profile and repositories to the `/repositories/` page. - -You may also use the following codes for displaying this in any other pages. - -```html - -{% if site.data.repositories.github_users %} -
- {% for user in site.data.repositories.github_users %} {% include repository/repo_user.liquid username=user %} {% endfor %} -
-{% endif %} - - -{% if site.repo_trophies.enabled %} {% for user in site.data.repositories.github_users %} {% if site.data.repositories.github_users.size > 1 %} -

{{ user }}

-{% endif %} -
- {% include repository/repo_trophies.liquid username=user %} -
-{% endfor %} {% endif %} - - -{% if site.data.repositories.github_repos %} -
- {% for repo in site.data.repositories.github_repos %} {% include repository/repo.liquid repository=repo %} {% endfor %} -
-{% endif %} -``` +To configure which repositories and GitHub profiles to display, see [Modifying the user and repository information](CUSTOMIZE.md#modifying-the-user-and-repository-information) in [CUSTOMIZE.md](CUSTOMIZE.md). --- #### Theming -A variety of beautiful theme colors have been selected for you to choose from. The default is purple, but you can quickly change it by editing the `--global-theme-color` variable in the `_sass/_themes.scss` file. Other color variables are listed there as well. The stock theme color options available can be found at [\_sass/\_variables.scss](_sass/_variables.scss). You can also add your own colors to this file assigning each a name for ease of use across the template. +**al-folio** offers a variety of beautiful theme colors to choose from. The default is purple, but you can customize colors, fonts, spacing, and more to match your style. + +For detailed customization instructions, see [Changing theme color](CUSTOMIZE.md#changing-theme-color) and [Customizing fonts, spacing, and more](CUSTOMIZE.md#customizing-fonts-spacing-and-more) in [CUSTOMIZE.md](CUSTOMIZE.md). --- #### Social media previews -**al-folio** supports preview images on social media. To enable this functionality you will need to set `serve_og_meta` to `true` in your [\_config.yml](_config.yml). Once you have done so, all your site's pages will include Open Graph data in the HTML head element. +**al-folio** supports Open Graph preview images on social media. When enabled, your site's pages display rich preview objects with images, titles, and descriptions when shared. -You will then need to configure what image to display in your site's social media previews. This can be configured on a per-page basis, by setting the `og_image` page variable. If for an individual page this variable is not set, then the theme will fall back to a site-wide `og_image` variable, configurable in your [\_config.yml](_config.yml). In both the page-specific and site-wide cases, the `og_image` variable needs to hold the URL for the image you wish to display in social media previews. +For setup and customization, see [Social media previews](CUSTOMIZE.md#social-media-previews) in [CUSTOMIZE.md](CUSTOMIZE.md). --- @@ -422,7 +473,9 @@ It generates an Atom (RSS-like) feed of your posts, useful for Atom and RSS read #### Related posts -By default, there will be a related posts section on the bottom of the blog posts. These are generated by selecting the `max_related` most recent posts that share at least `min_common_tags` tags with the current post. If you do not want to display related posts on a specific post, simply add `related_posts: false` to the front matter of the post. If you want to disable it for all posts, simply set `enabled` to false in the `related_blog_posts` section in [\_config.yml](_config.yml). +By default, blog posts display related posts at the bottom. These are selected by finding the most recent posts that share tags with the current post. You can customize this behavior on a per-post or site-wide basis. + +For configuration details, see [Related posts](CUSTOMIZE.md#related-posts) in [CUSTOMIZE.md](CUSTOMIZE.md). --- @@ -436,6 +489,16 @@ Currently, we run some checks to ensure that the code quality and generated site We decided to keep `Axe` runs manual because fixing the issues are not straightforward and might be hard for people without web development knowledge. +--- + +#### GDPR Cookie Consent Dialog + +**al-folio** includes a built-in, GDPR-compliant cookie consent dialog to ensure your website respects visitor privacy. The dialog is powered by [Vanilla Cookie Consent](https://cookieconsent.orestbida.com/) and integrates seamlessly with all supported analytics providers. + +When enabled, analytics scripts are blocked until the user explicitly consents, and user preferences are saved across visits. This is essential for websites serving visitors in the European Union and other regions with strict privacy regulations. + +For complete setup and customization details, see [GDPR Cookie Consent Dialog](#gdpr-cookie-consent-dialog) in [CUSTOMIZE.md](CUSTOMIZE.md). + ## FAQ For frequently asked questions, please refer to [FAQ.md](FAQ.md). @@ -456,8 +519,8 @@ Our most active contributors are welcome to join the maintainers team. If you ar - - + + diff --git a/SEO.md b/SEO.md new file mode 100644 index 0000000000000..ae2f31d84903b --- /dev/null +++ b/SEO.md @@ -0,0 +1,536 @@ +# SEO Best Practices Guide + +This guide helps you optimize your al-folio website for search engines so your research and work are discoverable. + + + +- [SEO Best Practices Guide](#seo-best-practices-guide) + - [Overview](#overview) + - [Basic SEO Setup](#basic-seo-setup) + - [Sitemap and Robots](#sitemap-and-robots) + - [Site URL and Metadata](#site-url-and-metadata) + - [Enabling Open Graph (Social Media Previews)](#enabling-open-graph-social-media-previews) + - [What is Open Graph?](#what-is-open-graph) + - [Enable in al-folio](#enable-in-al-folio) + - [Schema.org Markup](#schemaorg-markup) + - [What is Schema.org?](#what-is-schemaorg) + - [Enable in al-folio](#enable-in-al-folio-1) + - [What Gets Marked Up](#what-gets-marked-up) + - [Search Console Setup](#search-console-setup) + - [Google Search Console](#google-search-console) + - [Bing Webmaster Tools](#bing-webmaster-tools) + - [Publication Indexing](#publication-indexing) + - [Google Scholar](#google-scholar) + - [DBLP (Computer Science)](#dblp-computer-science) + - [arXiv](#arxiv) + - [Content Optimization](#content-optimization) + - [Page Titles and Descriptions](#page-titles-and-descriptions) + - [Heading Structure](#heading-structure) + - [Image Optimization](#image-optimization) + - [Internal Linking](#internal-linking) + - [RSS Feed for Discovery](#rss-feed-for-discovery) + - [Performance & Mobile](#performance--mobile) + - [SEO Checklist](#seo-checklist) + - [Resources](#resources) + + + +## Overview + +SEO (Search Engine Optimization) makes your website discoverable on Google, Bing, and other search engines. For academics, this means: + +- Your research becomes discoverable when people search for your work +- Your CV/bio appears in search results +- Your publications rank higher +- More citations and collaborations + +al-folio includes SEO basics, but you can optimize further. + +--- + +## Basic SEO Setup + +### Sitemap and Robots + +al-folio auto-generates a `sitemap.xml` and `robots.txt` for you. These tell search engines what pages exist. + +**Verify they exist:** + +- Visit `https://your-site.com/sitemap.xml` – Should show an XML list of pages +- Visit `https://your-site.com/robots.txt` – Should show instructions for search engines + +If they're missing: + +1. Check `_config.yml` has a valid `url` +2. Rebuild: `bundle exec jekyll build` +3. Check `_site/` directory has both files + +**No configuration needed** – al-folio handles this automatically. + +--- + +### Site URL and Metadata + +Ensure `_config.yml` has correct metadata: + +```yaml +title: Your Full Name or Site Title +description: > # Brief description (1-2 sentences) + A description of your research and expertise. + This appears in search results. +author: Your Name +keywords: machine learning, research, academia, etc. +url: https://your-domain.com +lang: en +``` + +All fields are important for SEO. **Avoid leaving fields blank.** + +--- + +## Enabling Open Graph (Social Media Previews) + +### What is Open Graph? + +When someone shares your page on Twitter, Facebook, LinkedIn, etc., Open Graph controls what preview appears. + +**Without Open Graph:** + +- Generic title +- No image +- Ugly preview + +**With Open Graph:** + +- Your custom title +- Your custom image (photo, diagram, etc.) +- Custom description +- Professional preview + +### Enable in al-folio + +Open Graph is disabled by default. To enable: + +1. **Edit `_config.yml`:** + + ```yaml + serve_og_meta: true # Change from false to true + og_image: /assets/img/og-image.png # Path to your image (1200x630px recommended) + ``` + +2. **Create your OG image:** + - Size: 1200x630 pixels + - Format: PNG or JPG + - Content: Your name/logo + key info + - Save to: `assets/img/og-image.png` + +3. **Commit and deploy** + +4. **Test it:** + - Use [Facebook's Sharing Debugger](https://developers.facebook.com/tools/debug/sharing/) + - Paste your site URL + - You should see your custom image and title + +**Per-page OG images:** + +Add to the frontmatter of a blog post or page: + +```markdown +--- +layout: post +title: My Research Paper +og_image: /assets/img/paper-diagram.png +--- +``` + +--- + +## Schema.org Markup + +### What is Schema.org? + +Schema.org is structured data that tells search engines what kind of content is on your page: + +- "This is a Person" (your bio page) +- "This is a Publication" (your paper) +- "This is a BlogPosting" (your article) + +Benefits: + +- Rich snippets in search results +- Better knowledge graph information +- Schema validation helps Google understand your site + +### Enable in al-folio + +Enable in `_config.yml`: + +```yaml +serve_schema_org: true # Change from false to true +``` + +That's it! al-folio automatically marks up: + +- **Author info** (Person schema with name, URL, photo) +- **Blog posts** (BlogPosting schema with date, title, description) +- **Publications** (CreativeWork/ScholarlyArticle schema) + +### What Gets Marked Up + +**Homepage (Person):** + +- Your name, photo, description +- Links to your profiles (LinkedIn, GitHub, etc.) + +**Blog posts (BlogPosting):** + +- Title, date, author, description +- Content +- Publication date and modified date + +**Publications (ScholarlyArticle):** + +- Title, authors, abstract +- Publication date, venue +- URL and PDF links + +--- + +## Search Console Setup + +### Google Search Console + +**Google Search Console** lets you monitor how your site appears in Google search results. + +**Setup:** + +1. Go to [Google Search Console](https://search.google.com/search-console) +2. Add your website: + - Click **"URL prefix"** + - Enter your site URL: `https://your-domain.com` +3. Verify ownership (choose one method): + - **HTML file upload** – Download file, add to repository root + - **HTML tag** – Copy meta tag to `_config.yml` → redeploy + - **Google Analytics** – If you already use Google Analytics + - **DNS record** – Advanced (if you own the domain) + +**Add to `_config.yml`:** + +```yaml +google_site_verification: YOUR_VERIFICATION_CODE +``` + +(Replace `YOUR_VERIFICATION_CODE` with the code from Search Console.) + +**Monitor in Search Console:** + +- **Performance** – Which queries bring traffic, your ranking position +- **Coverage** – Any indexing errors +- **Enhancements** – Schema.org validation +- **Sitemaps** – Your sitemap status + +--- + +### Bing Webmaster Tools + +Similar to Google Search Console but for Bing search: + +1. Go to [Bing Webmaster Tools](https://www.bing.com/webmasters) +2. Add your site +3. Verify (usually auto-verifies if you verified Google) +4. Add to `_config.yml`: + ```yaml + bing_site_verification: YOUR_BING_CODE + ``` + +**Note:** Bing commands are optional but recommended. Check both console dashboards regularly. + +--- + +## Publication Indexing + +### Google Scholar + +**Goal:** Get your publications listed on Google Scholar so they show up in scholar search results. + +**Google Scholar auto-crawls:** + +- Your website automatically (if publicly accessible) +- Your publications page if it has proper markup +- PDFs linked from your site + +**To improve Scholar indexing:** + +1. **Ensure BibTeX has proper format:** + + ```bibtex + @article{mykey, + title={Your Paper Title}, + author={Your Name and Co-Author}, + journal={Journal Name}, + year={2024}, + volume={1}, + pages={1-10}, + doi={10.1234/doi} + } + ``` + +2. **Add PDFs to BibTeX:** + + ```bibtex + @article{mykey, + # ... other fields ... + pdf={my-paper.pdf} # File at assets/pdf/my-paper.pdf + } + ``` + +3. **Submit to Google Scholar (optional):** + - Go to [Google Scholar Author Profile](https://scholar.google.com/citations) + - Create a profile + - Google will find your papers automatically within weeks + +4. **Wait 3-6 months** – Google Scholar takes time to index + +--- + +### DBLP (Computer Science) + +If your research is computer science related: + +1. Go to [DBLP](https://dblp.org/) +2. Search for yourself or your papers +3. If missing, [Submit via DBLP](https://dblp.org/db/contrib/) (requires account) +4. DBLP will verify and add your work + +--- + +### arXiv + +If you have preprints: + +1. Go to [arXiv.org](https://arxiv.org/) +2. Submit your preprint +3. Once listed, arXiv automatically indexes it across search engines + +**Add arXiv link to BibTeX:** + +```bibtex +@article{mykey, + # ... other fields ... + arxiv={2024.12345} # arXiv ID +} +``` + +--- + +## Content Optimization + +### Page Titles and Descriptions + +Every page needs a title and description. These show in search results. + +**In `_config.yml`:** + +```yaml +title: Jane Smith - Computer Science Researcher +description: > + Academic website of Jane Smith, focusing on machine learning and AI ethics. +``` + +**In page/post frontmatter:** + +```markdown +--- +layout: post +title: Novel Deep Learning Architecture for Climate Modeling +description: A new approach to improving climate model accuracy with deep learning +--- +``` + +**Checklist:** + +- [ ] Title under 60 characters (so it doesn't get cut off) +- [ ] Description 120-160 characters +- [ ] Include your name in the site title +- [ ] Include keywords naturally + +--- + +### Heading Structure + +Use proper HTML heading hierarchy for both SEO and accessibility: + +```markdown +# H1: Main Page Title + +Use one H1 per page, usually your blog post or page title + +## H2: Section Heading + +### H3: Subsection + +### H3: Another subsection + +## H2: Another Section +``` + +**Benefits:** + +- Search engines understand your content structure +- Screen readers can navigate better +- Visitors can scan your content + +--- + +### Image Optimization + +**For SEO:** + +- Use descriptive filenames: `neural-network-architecture.png` (not `img1.png`) +- Add alt text (also helps accessibility): + ```markdown + ![Neural network showing three layers with training accuracy of 95%](assets/img/neural-network.png) + ``` + +**For performance:** + +- Optimize image file size (use tools like TinyPNG) +- Use modern formats (WebP instead of large JPGs) +- Responsive images (different sizes for mobile vs desktop) + +--- + +### Internal Linking + +Link between your own pages strategically: + +```markdown +See my [publication on climate AI](./publications/) or my [blog post on neural networks](/blog/2024/neural-networks/). +``` + +**Benefits:** + +- Search engines crawl through your links +- Users discover more of your content +- Distributes "authority" across your site + +--- + +## RSS Feed for Discovery + +al-folio auto-generates an RSS feed at `/feed.xml`. + +**Why RSS matters:** + +- Content aggregators pick up your posts +- Researchers can subscribe to your updates +- Improves discoverability + +**Ensure your feed works:** + +```yaml +# In _config.yml +title: Your Site +description: Your site description +url: https://your-domain.com # MUST be complete URL +``` + +**Test your feed:** + +- Visit `https://your-site.com/feed.xml` +- Should show XML with your recent posts +- Try subscribing in a feed reader (Feedly, etc.) + +--- + +## Performance & Mobile + +Search engines favor fast, mobile-friendly sites. + +**Check your site:** + +- Use [Google PageSpeed Insights](https://pagespeed.web.dev/) +- Enter your site URL +- Review recommendations +- al-folio already optimizes for performance, but you can improve further: + - Compress images + - Minimize CSS/JS (enabled by default) + - Use lazy loading (already enabled) + +**Mobile optimization:** + +- al-folio is responsive by default +- Test on phones/tablets +- Ensure buttons are large enough to tap +- Check readability on small screens + +--- + +## SEO Checklist + +Before considering your site "SEO optimized": + +**Basic Setup:** + +- [ ] `_config.yml` has `title`, `description`, `author`, `url` +- [ ] Sitemap accessible at `/sitemap.xml` +- [ ] `robots.txt` accessible at `/robots.txt` +- [ ] Mobile-friendly (test on phone) + +**Search Console:** + +- [ ] Google Search Console linked +- [ ] Bing Webmaster Tools linked (optional but recommended) +- [ ] No major indexing errors +- [ ] Sitemaps submitted + +**Schema/Open Graph:** + +- [ ] `serve_og_meta: true` (for social sharing) +- [ ] `serve_schema_org: true` (for structured data) +- [ ] Test OG with [Facebook Debugger](https://developers.facebook.com/tools/debug/sharing/) +- [ ] Validate schema at [Schema.org Validator](https://validator.schema.org/) + +**Content:** + +- [ ] Every page has unique title (under 60 chars) +- [ ] Every page has description (120-160 chars) +- [ ] Blog posts have proper dates +- [ ] Images have descriptive alt text +- [ ] Headings follow proper hierarchy + +**Publications:** + +- [ ] BibTeX entries have proper format +- [ ] PDFs linked from BibTeX +- [ ] Submitted to Google Scholar (optional) +- [ ] Indexed on DBLP or arXiv (if applicable) + +**Performance:** + +- [ ] Site loads under 3 seconds (check PageSpeed) +- [ ] No broken links (use lighthouse or similar) +- [ ] RSS feed works (check `/feed.xml`) + +--- + +## Resources + +- **[Google Search Central](https://developers.google.com/search)** – Official SEO guide +- **[Moz SEO Checklist](https://moz.com/beginners-guide-to-seo)** – Beginner-friendly guide +- **[Google PageSpeed Insights](https://pagespeed.web.dev/)** – Performance analysis +- **[Schema.org](https://schema.org/)** – Structured data reference +- **[WebAIM](https://webaim.org/)** – Accessibility (helps SEO too) +- **[Lighthouse Audit](https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpombljlkpstvnztVTNyZe)** – Browser extension + +--- + +**Next Steps:** + +1. Enable Open Graph and Schema.org in `_config.yml` +2. Set up Google Search Console and Bing Webmaster Tools +3. Optimize your page titles and descriptions +4. Add alt text to images and PDFs to your BibTeX +5. Monitor search console regularly for indexing issues + +Your research will be more discoverable with these optimizations! 🔍 diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md new file mode 100644 index 0000000000000..96800a388f56a --- /dev/null +++ b/TROUBLESHOOTING.md @@ -0,0 +1,454 @@ +# Troubleshooting Guide + +This guide covers common issues and their solutions. For more information, see [FAQ.md](FAQ.md) or check [GitHub Discussions](https://github.com/alshedivat/al-folio/discussions). + + + +- [Troubleshooting Guide](#troubleshooting-guide) + - [Deployment Issues](#deployment-issues) + - [Site fails to deploy on GitHub Pages](#site-fails-to-deploy-on-github-pages) + - [Custom domain becomes blank after deployment](#custom-domain-becomes-blank-after-deployment) + - [GitHub Actions: "Unknown tag 'toc'" error](#github-actions-unknown-tag-toc-error) + - [Local Build Issues](#local-build-issues) + - [Docker build fails](#docker-build-fails) + - [Ruby dependency issues](#ruby-dependency-issues) + - [Port already in use](#port-already-in-use) + - [Styling & Layout Problems](#styling--layout-problems) + - [CSS and JS not loading properly](#css-and-js-not-loading-properly) + - [Site looks broken after deployment](#site-looks-broken-after-deployment) + - [Theme colors not applying](#theme-colors-not-applying) + - [Content Not Appearing](#content-not-appearing) + - [Blog posts not showing up](#blog-posts-not-showing-up) + - [Publications not displaying](#publications-not-displaying) + - [Images not loading](#images-not-loading) + - [Configuration Issues](#configuration-issues) + - [YAML syntax errors](#yaml-syntax-errors) + - [Feed (RSS/Atom) not working](#feed-rssatom-not-working) + - [Search not working](#search-not-working) + - [Feature-Specific Issues](#feature-specific-issues) + - [Comments (Giscus) not appearing](#comments-giscus-not-appearing) + - [Related posts broken](#related-posts-broken) + - [Code formatting issues](#code-formatting-issues) + - [Getting Help](#getting-help) + + + +## Deployment Issues + +### Site fails to deploy on GitHub Pages + +**Problem:** GitHub Actions shows an error when deploying. + +**Solution:** + +1. Check your repository **Actions** tab for error messages +2. Ensure you followed [Step 2 of QUICKSTART.md](QUICKSTART.md#step-2-configure-deployment-1-min) (Workflow permissions) +3. Verify your `_config.yml` has correct `url` and `baseurl`: + - Personal site: `url: https://username.github.io` and `baseurl:` (empty) + - Project site: `url: https://username.github.io` and `baseurl: /repo-name/` +4. Check that you're pushing to the `main` (or `master`) branch, NOT `gh-pages` +5. Commit and push a small change to trigger redeployment + +**For YAML syntax errors:** + +- Run `bundle exec jekyll build` locally to see the exact error +- Check for unquoted special characters (`:`, `&`, `#`) in YAML strings + +--- + +### Custom domain becomes blank after deployment + +**Problem:** You set a custom domain (e.g., `example.com`), but it resets to blank after deployment. + +**Solution:** + +1. Create a file named `CNAME` (no extension) in your repository root +2. Add your domain to it: `example.com` (one domain per line) +3. Commit and push +4. The domain will persist after future deployments + +(See [DNS configuration instructions in INSTALL.md](INSTALL.md#deployment) for initial custom domain setup.) + +--- + +### GitHub Actions: "Unknown tag 'toc'" error + +**Problem:** Local build works, but GitHub Actions fails with `Unknown tag 'toc'`. + +**Solution:** + +1. Check your **Settings** → **Pages** → **Source** is set to `Deploy from a branch` +2. Ensure the branch is set to `gh-pages` (NOT `main`) +3. Wait 5 minutes and check Actions again +4. The issue usually resolves after you verify the gh-pages branch is set + +--- + +## Local Build Issues + +### Docker build fails + +**Problem:** `docker compose up` fails or shows errors. + +**Solution:** + +1. Update Docker: `docker compose pull` +2. Rebuild: `docker compose up --build` +3. If still failing, check your system resources (disk space, RAM) +4. For M1/M2 Mac users, verify you're using a compatible Docker version +5. Check Docker Desktop is running + +**For permission issues:** + +- Linux users may need to add your user to the docker group: `sudo usermod -aG docker $USER` +- Then log out and log back in + +--- + +### Ruby dependency issues + +**Problem:** `Gemfile.lock` conflicts or bundle errors. + +**Solution:** + +1. Delete `Gemfile.lock`: `rm Gemfile.lock` +2. Update Bundler: `bundle update` +3. Install gems: `bundle install` +4. Try serving again: `bundle exec jekyll serve` + +--- + +### Port already in use + +**Problem:** "Address already in use" when running `jekyll serve`. + +**Solution - Docker:** + +```bash +docker compose down # Stop the running container +docker compose up # Start fresh +``` + +**Solution - Local Ruby:** + +```bash +# Find and kill the Jekyll process +lsof -i :4000 | grep LISTEN | awk '{print $2}' | xargs kill + +# Or specify a different port +bundle exec jekyll serve --port 5000 +``` + +--- + +## Styling & Layout Problems + +### CSS and JS not loading properly + +**Problem:** Site looks broken: no colors, fonts wrong, links don't work. + +**Common cause:** Incorrect `url` and `baseurl` in `_config.yml`. + +**Solution:** + +1. **Personal/organization site:** + + ```yaml + url: https://username.github.io + baseurl: # MUST be empty (not deleted) + ``` + +2. **Project site:** + + ```yaml + url: https://username.github.io + baseurl: /repository-name/ # Must match your repo name + ``` + +3. **Clear browser cache:** + - Chrome: `Ctrl+Shift+R` (Windows/Linux) or `Cmd+Shift+R` (Mac) + - Firefox: `Ctrl+F5` (Windows/Linux) or `Cmd+R` (Mac) + - Or open a private/incognito window + +4. Redeploy: Make a small change and push to trigger GitHub Actions again + +--- + +### Site looks broken after deployment + +**Checklist:** + +- [ ] Is `baseurl` correct (and not accidentally deleted)? +- [ ] Did you clear your browser cache? +- [ ] Wait 5 minutes for GitHub Pages to update +- [ ] Check GitHub Actions completed successfully + +--- + +### Theme colors not applying + +**Problem:** You changed `_config.yml` color settings but nothing changed. + +**Solution:** + +1. Check your color name is valid in `_sass/_variables.scss` +2. Clear browser cache (see above) +3. Rebuild: `docker compose up --build` (Docker) or `bundle exec jekyll build` (Ruby) +4. Wait for GitHub Actions to complete +5. Visit the site in a private/incognito window + +--- + +## Content Not Appearing + +### Blog posts not showing up + +**Problem:** Created a post in `_posts/` but it's not on the blog page. + +**Checklist:** + +- [ ] Filename format is correct: `YYYY-MM-DD-title.md` (e.g., `2024-01-15-my-post.md`) +- [ ] File is in the `_posts/` directory (not in a subdirectory) +- [ ] Post has required frontmatter: + ```markdown + --- + layout: post + title: My Post Title + date: 2024-01-15 + --- + ``` +- [ ] Post date is NOT in the future (Jekyll doesn't publish future-dated posts by default) +- [ ] Blog posts are enabled in `_config.yml`: `blog_page: true` + +**To fix:** + +1. Check the filename format (uppercase, dashes, no spaces) +2. Verify the date is today or in the past +3. Rebuild: `bundle exec jekyll build` and check for error messages + +--- + +### Publications not displaying + +**Problem:** You added a BibTeX entry to `papers.bib` but it's not showing on the publications page. + +**Checklist:** + +- [ ] File is at `_bibliography/papers.bib` +- [ ] BibTeX syntax is correct (check for missing commas, unmatched braces) +- [ ] Entry has a unique citation key: `@article{einstein1905, ...}` +- [ ] Publication page is enabled: Check `publications_page: true` in `_config.yml` + +**To debug BibTeX errors:** + +```bash +# Local Ruby setup +bundle exec jekyll build 2>&1 | grep -i bibtex + +# Docker +docker compose run --rm web jekyll build 2>&1 | grep -i bibtex +``` + +--- + +### Images not loading + +**Problem:** Image paths broken or showing as missing. + +**Common causes:** + +- Wrong path in Markdown (use relative paths) +- Image file doesn't exist at the specified location +- Case sensitivity (Linux/Mac are case-sensitive) + +**Solutions:** + +1. **Correct path format:** + + ```markdown + ![Alt text](assets/img/image-name.jpg) + ``` + +2. **Check the file exists:** + - Personal images: `assets/img/` + - Paper PDFs: `assets/pdf/` + - Use lowercase filenames, no spaces + +3. **For BibTeX PDF links:** + ```bibtex + @article{mykey, + pdf={my-paper.pdf}, % File should be at assets/pdf/my-paper.pdf + } + ``` + +--- + +## Configuration Issues + +### YAML syntax errors + +**Problem:** GitHub Actions fails with YAML error, or build is silent. + +**Common mistakes:** + +```yaml +# ❌ Wrong: Unquoted colons or ampersands +title: My Site: Research & Teaching + +# ✅ Correct: Quote special characters +title: "My Site: Research & Teaching" +``` + +```yaml +# ❌ Wrong: Inconsistent indentation +nav: +- name: Home + url: / + - name: About # Extra space! + url: /about/ + +# ✅ Correct: Consistent 2-space indentation +nav: + - name: Home + url: / + - name: About + url: /about/ +``` + +**To find errors:** + +1. Use a YAML validator: [yamllint.com](https://www.yamllint.com/) +2. Run locally: `bundle exec jekyll build` shows the exact error line +3. Check that you didn't delete required lines (like `baseurl:`) + +--- + +### Feed (RSS/Atom) not working + +**Problem:** RSS feed at `/feed.xml` is empty or broken. + +**Solution:** + +1. Verify required `_config.yml` fields: + ```yaml + title: Your Site Title + description: Brief description + url: https://your-domain.com # MUST be absolute URL + ``` +2. Ensure `baseurl` is correct +3. Check at least one blog post exists (with correct date) +4. Rebuild and wait for GitHub Actions to complete + +--- + +### Search not working + +**Problem:** Search box is empty or always returns nothing. + +**Solution:** + +1. Ensure search is enabled in `_config.yml`: + ```yaml + search_enabled: true + ``` +2. Check that `_config.yml` has a valid `url` (required for search) +3. Rebuild the site +4. Search index is generated during build; give it a minute after push + +--- + +## Feature-Specific Issues + +### Comments (Giscus) not appearing + +**Problem:** You enabled Giscus in `_config.yml` but comments don't show. + +**Solution:** + +1. Verify you have a GitHub repository for discussions (usually your main repo) +2. Check `_config.yml` has correct settings: + ```yaml + disqus_shortname: false # Make sure this is false + giscus: + repo: username/repo-name + repo_id: YOUR_REPO_ID + category_id: YOUR_CATEGORY_ID + ``` +3. Visit [Giscus.app](https://giscus.app) to get your IDs and verify setup +4. Check the GitHub repo has Discussions enabled (Settings → Features) + +--- + +### Related posts broken + +**Problem:** Related posts feature crashes or shows errors. + +**Solution:** + +1. Related posts requires more gems. If you disabled it in `_config.yml`, that's fine: + ```yaml + related_blog_posts: + enabled: false + ``` +2. If you want to enable it, ensure `Gemfile` has all dependencies installed: + ```bash + bundle install + bundle exec jekyll build + ``` + +--- + +### Code formatting issues + +**Problem:** Code blocks don't have syntax highlighting or look wrong. + +**Solution:** + +1. Use proper markdown syntax: + + ````markdown + ```python + # Your code here + print("hello") + ``` + ```` + +2. For inline code: + + ```markdown + Use `code-here` for inline code. + ``` + +3. Check that your language is supported by Pygments (Python, Ruby, JavaScript, etc. are all supported) + +--- + +## Getting Help + +If you're stuck: + +1. **Check existing documentation:** + - [QUICKSTART.md](QUICKSTART.md) – Get started in 5 minutes + - [INSTALL.md](INSTALL.md) – Installation and deployment + - [CUSTOMIZE.md](CUSTOMIZE.md) – Full customization guide + - [FAQ.md](FAQ.md) – Frequently asked questions + +2. **Search for your issue:** + - [GitHub Discussions](https://github.com/alshedivat/al-folio/discussions) – Q&A from community + - [GitHub Issues](https://github.com/alshedivat/al-folio/issues) – Bug reports and feature requests + +3. **Get help from AI:** + - Use the **GitHub Copilot Customization Agent** (requires Copilot subscription) to get step-by-step help + - See [CUSTOMIZE.md § GitHub Copilot Customization Agent](CUSTOMIZE.md#github-copilot-customization-agent) + +4. **Create a new discussion:** + - [Ask a question](https://github.com/alshedivat/al-folio/discussions/new?category=q-a) on GitHub + - Include error messages and what you're trying to do + +--- + +**Most issues are resolved by:** + +1. Checking `url` and `baseurl` in `_config.yml` +2. Clearing browser cache +3. Waiting for GitHub Actions to complete (~5 minutes) diff --git a/_bibliography/papers.bib b/_bibliography/papers.bib index d8c6b05cf2553..81432932e05fd 100644 --- a/_bibliography/papers.bib +++ b/_bibliography/papers.bib @@ -4,112 +4,112 @@ @string{aps = {American Physical Society,}} @book{einstein1920relativity, - title={Relativity: the Special and General Theory}, - author={Einstein, Albert}, - year={1920}, - publisher={Methuen & Co Ltd}, - html={relativity.html} + title = {Relativity: the Special and General Theory}, + author = {Einstein, Albert}, + year = {1920}, + publisher = {Methuen & Co Ltd}, + html = {relativity.html} } @book{einstein1956investigations, - bibtex_show={true}, - title={Investigations on the Theory of the Brownian Movement}, - author={Einstein, Albert}, - year={1956}, - publisher={Courier Corporation}, - preview={brownian-motion.gif} + bibtex_show = {true}, + title = {Investigations on the Theory of the Brownian Movement}, + author = {Einstein, Albert}, + year = {1956}, + publisher = {Courier Corporation}, + preview = {brownian-motion.gif} } @article{einstein1950meaning, - abbr={AJP}, - bibtex_show={true}, - title={The meaning of relativity}, - author={Einstein, Albert and Taub, AH}, - journal={American Journal of Physics}, - volume={18}, - number={6}, - pages={403--404}, - year={1950}, - publisher={American Association of Physics Teachers} + abbr = {AJP}, + bibtex_show = {true}, + title = {The meaning of relativity}, + author = {Einstein, Albert and Taub, AH}, + journal = {American Journal of Physics}, + volume = {18}, + number = {6}, + pages = {403--404}, + year = {1950}, + publisher = {American Association of Physics Teachers} } @article{PhysRev.47.777, - abbr={PhysRev}, - title={Can Quantum-Mechanical Description of Physical Reality Be Considered Complete?}, - author={Einstein*†, A. and Podolsky*, B. and Rosen*, N.}, - abstract={In a complete theory there is an element corresponding to each element of reality. A sufficient condition for the reality of a physical quantity is the possibility of predicting it with certainty, without disturbing the system. In quantum mechanics in the case of two physical quantities described by non-commuting operators, the knowledge of one precludes the knowledge of the other. Then either (1) the description of reality given by the wave function in quantum mechanics is not complete or (2) these two quantities cannot have simultaneous reality. Consideration of the problem of making predictions concerning a system on the basis of measurements made on another system that had previously interacted with it leads to the result that if (1) is false then (2) is also false. One is thus led to conclude that the description of reality as given by a wave function is not complete.}, - journal={Phys. Rev.}, - location={New Jersey}, - volume={47}, - issue={10}, - pages={777--780}, - numpages={0}, - year={1935}, - month={May}, - publisher=aps, - doi={10.1103/PhysRev.47.777}, - url={http://link.aps.org/doi/10.1103/PhysRev.47.777}, - html={https://journals.aps.org/pr/abstract/10.1103/PhysRev.47.777}, - pdf={example_pdf.pdf}, - altmetric={248277}, - dimensions={true}, - google_scholar_id={qyhmnyLat1gC}, - video={https://www.youtube-nocookie.com/embed/aqz-KE-bpKQ}, - additional_info={. *More Information* can be [found here](https://github.com/alshedivat/al-folio/)}, - annotation={* Example use of superscripts
† Albert Einstein}, - selected={true}, - inspirehep_id = {3255} + abbr = {PhysRev}, + title = {Can Quantum-Mechanical Description of Physical Reality Be Considered Complete?}, + author = {Einstein*†, A. and Podolsky*, B. and Rosen*, N.}, + abstract = {In a complete theory there is an element corresponding to each element of reality. A sufficient condition for the reality of a physical quantity is the possibility of predicting it with certainty, without disturbing the system. In quantum mechanics in the case of two physical quantities described by non-commuting operators, the knowledge of one precludes the knowledge of the other. Then either (1) the description of reality given by the wave function in quantum mechanics is not complete or (2) these two quantities cannot have simultaneous reality. Consideration of the problem of making predictions concerning a system on the basis of measurements made on another system that had previously interacted with it leads to the result that if (1) is false then (2) is also false. One is thus led to conclude that the description of reality as given by a wave function is not complete.}, + journal = {Phys. Rev.}, + location = {New Jersey}, + volume = {47}, + issue = {10}, + pages = {777--780}, + numpages = {0}, + year = {1935}, + month = {May}, + publisher = aps, + doi = {10.1103/PhysRev.47.777}, + url = {https://link.aps.org/doi/10.1103/PhysRev.47.777}, + html = {https://journals.aps.org/pr/abstract/10.1103/PhysRev.47.777}, + pdf = {example_pdf.pdf}, + altmetric = {248277}, + dimensions = {true}, + google_scholar_id = {qyhmnyLat1gC}, + video = {https://www.youtube-nocookie.com/embed/aqz-KE-bpKQ}, + additional_info = {. *More Information* can be [found here](https://github.com/alshedivat/al-folio/)}, + annotation = {* Example use of superscripts
† Albert Einstein}, + selected = {true}, + inspirehep_id = {3255} } @article{einstein1905molekularkinetischen, - title={{\"U}ber die von der molekularkinetischen Theorie der W{\"a}rme geforderte Bewegung von in ruhenden Fl{\"u}ssigkeiten suspendierten Teilchen}, - author={Einstein, A.}, - journal={Annalen der physik}, - volume={322}, - number={8}, - pages={549--560}, - year={1905}, - publisher={Wiley Online Library} + title = {{\"U}ber die von der molekularkinetischen Theorie der W{\"a}rme geforderte Bewegung von in ruhenden Fl{\"u}ssigkeiten suspendierten Teilchen}, + author = {Einstein, A.}, + journal = {Annalen der physik}, + volume = {322}, + number = {8}, + pages = {549--560}, + year = {1905}, + publisher = {Wiley Online Library} } @article{einstein1905movement, - abbr={Ann. Phys.}, - title={Un the movement of small particles suspended in statiunary liquids required by the molecular-kinetic theory 0f heat}, - author={Einstein, A.}, - journal={Ann. Phys.}, - volume={17}, - pages={549--560}, - year={1905} + abbr = {Ann. Phys.}, + title = {Un the movement of small particles suspended in statiunary liquids required by the molecular-kinetic theory 0f heat}, + author = {Einstein, A.}, + journal = {Ann. Phys.}, + volume = {17}, + pages = {549--560}, + year = {1905} } @article{einstein1905electrodynamics, - title={On the electrodynamics of moving bodies}, - author={Einstein, A.}, - year={1905} + title = {On the electrodynamics of moving bodies}, + author = {Einstein, A.}, + year = {1905} } -@Article{einstein1905photoelectriceffect, - bibtex_show={true}, - abbr={Ann. Phys.}, - title="{{\"U}ber einen die Erzeugung und Verwandlung des Lichtes betreffenden heuristischen Gesichtspunkt}", - author={Albert Einstein}, - abstract={This is the abstract text.}, - journal={Ann. Phys.}, - volume={322}, - number={6}, - pages={132--148}, - year={1905}, - doi={10.1002/andp.19053220607}, - award={Albert Einstein receveid the **Nobel Prize in Physics** 1921 *for his services to Theoretical Physics, and especially for his discovery of the law of the photoelectric effect*}, - award_name={Nobel Prize} +@article{einstein1905photoelectriceffect, + bibtex_show = {true}, + abbr = {Ann. Phys.}, + title = {{{\"U}ber einen die Erzeugung und Verwandlung des Lichtes betreffenden heuristischen Gesichtspunkt}}, + author = {Albert Einstein}, + abstract = {This is the abstract text.}, + journal = {Ann. Phys.}, + volume = {322}, + number = {6}, + pages = {132--148}, + year = {1905}, + doi = {10.1002/andp.19053220607}, + award = {Albert Einstein receveid the **Nobel Prize in Physics** 1921 *for his services to Theoretical Physics, and especially for his discovery of the law of the photoelectric effect*}, + award_name = {Nobel Prize} } @book{przibram1967letters, - bibtex_show={true}, - title={Letters on wave mechanics}, - author={Einstein, Albert and Schrödinger, Erwin and Planck, Max and Lorentz, Hendrik Antoon and Przibram, Karl}, - year={1967}, - publisher={Vision}, - preview={wave-mechanics.gif}, - abbr={Vision} + bibtex_show = {true}, + title = {Letters on wave mechanics}, + author = {Einstein, Albert and Schrödinger, Erwin and Planck, Max and Lorentz, Hendrik Antoon and Przibram, Karl}, + year = {1967}, + publisher = {Vision}, + preview = {wave-mechanics.gif}, + abbr = {Vision} } diff --git a/_books/the_godfather.md b/_books/the_godfather.md index c0689e5d91334..cc97f49186c83 100644 --- a/_books/the_godfather.md +++ b/_books/the_godfather.md @@ -8,6 +8,7 @@ isbn: 7539967447 # use ISBN to fetch cover (if no `olid` is provided, dashes are categories: classics crime historical-fiction mystery novels thriller tags: top-100 buy_link: https://www.amazon.com/Godfather-Deluxe-Mario-Puzo/dp/0593542592 +date: 2024-08-23 started: 2024-08-23 finished: 2024-09-07 released: 1969 diff --git a/_config.yml b/_config.yml index 058d07a391794..5ddcfacdd61a9 100644 --- a/_config.yml +++ b/_config.yml @@ -9,9 +9,10 @@ last_name: Lab email: animesh.garg@gatech.edu contact_note: # You can even add a little note about which of these is the best way to reach you. -description: > # the ">" symbol means to ignore newlines until "footer_text:" - A simple, whitespace theme for academics. Based on [*folio](https://github.com/bogoli/-folio) design. -footer_text: > +description: + # the ">" symbol means to ignore newlines until "footer_text:" + # A simple, whitespace theme for academics. Based on [*folio](https://github.com/bogoli/-folio) design. +footer_text: keywords: jekyll, jekyll-theme, academic-website, portfolio-website # add your own keywords or leave empty lang: en # the language of your site (for example: en, fr, cn, ru, etc.) icon: favicon.ico #♾️ # the emoji used as the favicon (alternatively, provide image name in /assets/img/) @@ -35,6 +36,13 @@ repo_trophies: theme_light: flat # https://github.com/ryo-ma/github-profile-trophy theme_dark: gitdimmed # https://github.com/ryo-ma/github-profile-trophy +# External service URLs for repository page +# To use a different instance or service for displaying GitHub stats and trophies, +# update these URLs. These are used in the repository templates. +external_services: + github_readme_stats_url: https://github-readme-stats.vercel.app + github_profile_trophy_url: https://github-profile-trophy.vercel.app + # ----------------------------------------------------------------------------- # RSS Feed # ----------------------------------------------------------------------------- @@ -53,9 +61,7 @@ posts_in_search: true bib_search: true # Dimensions -max_width: 1200px - -# TODO: add layout settings (single page vs. multi-page) +max_width: "1200px" # ----------------------------------------------------------------------------- # Open Graph & Schema.org @@ -109,7 +115,8 @@ giscus: strict: 1 # use strict identification mode reactions_enabled: 1 # enable (1) or disable (0) emoji reactions input_position: bottom # whether to display input form below (bottom) or above (top) the comments - theme: preferred_color_scheme # name of the color scheme (preferred works well with al-folio light/dark mode) + dark_theme: dark # name of the dark color scheme (preferred works well with al-folio dark mode) + light_theme: light # name of the light color scheme (preferred works well with al-folio light mode) emit_metadata: 0 lang: en @@ -120,13 +127,18 @@ disqus_shortname: # put your disqus shortname # External sources. # If you have blog posts published on medium.com or other external sources, # you can display them in your blog by adding a link to the RSS feed. +# Optional: Set default categories and tags for posts from each source. # external_sources: -# - name: -# rss_url: -# - name: +# - name: medium.com +# rss_url: https://medium.com/@al-folio/feed +# categories: [external-posts] +# tags: [medium] +# - name: Google Blog # posts: -# - url: -# published_date: +# - url: https://blog.google/technology/ai/google-gemini-update-flash-ai-assistant-io-2024/ +# published_date: 2024-05-14 +# categories: [external-posts] +# tags: [google] # ----------------------------------------------------------------------------- # Newsletter @@ -156,6 +168,8 @@ collections: output: true people: output: true + teachings: + output: true # ----------------------------------------------------------------------------- # Jekyll settings @@ -202,7 +216,9 @@ keep_files: # Plug-ins plugins: + - jekyll-3rd-party-libraries - jekyll-archives-v2 + - jekyll-cache-bust - jekyll-email-protect - jekyll-feed - jekyll-get-json @@ -214,6 +230,7 @@ plugins: - jekyll-regex-replace - jekyll/scholar - jekyll-sitemap + - jekyll-socials - jekyll-tabs - jekyll-terser - jekyll-toc @@ -261,7 +278,7 @@ jekyll-archives: enabled: [year, tags, categories] # enables year, tag and category archives (remove if you need to disable one of them). display_tags: ["rl", "generative models", "robotics", "vision", "simulation", "planning"] # these tags will be displayed on the front page of your blog -display_categories: #["external-services"] # these categories will be displayed on the front page of your blog +display_categories: ["external-services"] # these categories will be displayed on the front page of your blog # ----------------------------------------------------------------------------- # Jekyll Scholar @@ -275,7 +292,6 @@ scholar: locale: en source: /_bibliography/ - # bibliography: papers.bib bibliography: pair.bib bibliography_template: bib # Note: if you have latex math in your bibtex, the latex filter @@ -334,10 +350,14 @@ filtered_bibtex_keywords: bibtex_show, blog, code, + dimensions, + eprint, google_scholar_id, + hal, html, inspirehep_id, pdf, + pmid, poster, preview, selected, @@ -386,7 +406,7 @@ imagemagick: - ".tiff" - ".gif" output_formats: - webp: "-quality 85" + webp: "-auto-orient -quality 85" # Lazy loading images # If you enable lazy loading, all images will add the loading="lazy" attribute. @@ -406,6 +426,7 @@ enable_pirsch_analytics: false # enables Pirsch analytics (https://pirsch.io/) enable_openpanel_analytics: false # enables Openpanel analytics (https://openpanel.dev/) enable_google_verification: false # enables google site verification enable_bing_verification: false # enables bing site verification +enable_cookie_consent: false # enables GDPR-compliant cookie consent dialog (https://github.com/orestbida/cookieconsent) enable_masonry: true # enables automatic project cards arrangement enable_math: true # enables math typesetting (uses MathJax) enable_tooltips: false # enables automatic tooltip links generated for each section titles on pages and posts @@ -414,7 +435,7 @@ enable_navbar_social: false # enables displaying social links in the navbar on t enable_project_categories: true # enables categorization of projects into multiple categories enable_medium_zoom: true # enables image zoom feature (as on medium.com) enable_progressbar: true # enables a horizontal progress bar linked to the vertical scroll position -enable_video_embedding: false # enables video embedding for bibtex entries. If false, the button opens the video link in an overlap or a new window. +enable_video_embedding: false # enables video embedding for bibtex entries. If false, the button opens the video link in a new window. # ----------------------------------------------------------------------------- # Library versions @@ -612,6 +633,14 @@ third_party_libraries: url: js: "https://cdn.jsdelivr.net/npm/swiper@11.1.0/swiper-element-bundle.min.js.map" version: "11.0.5" + vanilla-cookieconsent: + integrity: + css: "sha256-ygRrixsQlBByBZiOcJamh7JByO9fP+/l5UPtKNJmRsE=" + js: "sha256-vG4vLmOB/AJbJ6awr7Wg4fxonG+fxAp4cIrbIFTvRXU=" + url: + css: "https://cdn.jsdelivr.net/npm/vanilla-cookieconsent@{{version}}/dist/cookieconsent.css" + js: "https://cdn.jsdelivr.net/npm/vanilla-cookieconsent@{{version}}/dist/cookieconsent.umd.js" + version: "3.1.0" vega: integrity: js: "sha256-Yot/cfgMMMpFwkp/5azR20Tfkt24PFqQ6IQS+80HIZs=" diff --git a/_data/citations.yml b/_data/citations.yml new file mode 100644 index 0000000000000..8aa41566c8a05 --- /dev/null +++ b/_data/citations.yml @@ -0,0 +1,4179 @@ +metadata: + last_updated: '2026-02-06' +papers: + qc6CJjYAAAAJ:-1WLWRmjvKAC: + citations: 4 + title: THE DULONG-PETIT LAW OF SPECIFIC HEATS + year: Unknown Year + qc6CJjYAAAAJ:-38epGy1wY0C: + citations: 8 + title: "Antwort auf eine Bemerkung von J. Stark:\u201E\xDCber eine Anwendung des Planckschen Elementargesetzes\u2026\u201D \uFE01" + year: '2006' + qc6CJjYAAAAJ:-3_NAp5WSNkC: + citations: 2 + title: "Die Grundlage der allgemeinen Relativit\xE4tstheorie, 20 M\xE4r 1916" + year: Unknown Year + qc6CJjYAAAAJ:-GalPxRzH2oC: + citations: 0 + title: 'The Palestine Troubles: Einstein''s Protest, Zionism''s Basis and Achievement; the Mandatory''s Task' + year: '1929' + qc6CJjYAAAAJ:-LHtoeeytlUC: + citations: 2526 + title: 'Albert Einstein: Philosopher Scientist' + year: '1969' + qc6CJjYAAAAJ:-R_Z4shfoosC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 22 Jul 1917' + year: Unknown Year + qc6CJjYAAAAJ:-Viv1fr_sjoC: + citations: 145 + title: The special theory of relativity + year: '1905' + qc6CJjYAAAAJ:-_cDHGlXAtsC: + citations: 7941 + title: Sitzungsberichte der Preussischen Akad. d + year: '1917' + qc6CJjYAAAAJ:-fj4grS0xi0C: + citations: 92 + title: 'Conceptions scientifiques, morales et sociales: traduit de l''anglais par Maurice Solovine' + year: '1952' + qc6CJjYAAAAJ:-l7FTdOV6Y0C: + citations: 195 + title: Brownian motion + year: '1936' + qc6CJjYAAAAJ:-qpA3cGbmHsC: + citations: 541 + title: On the Relation between the Expansion and the Mean Density of the Universe + year: '1932' + qc6CJjYAAAAJ:-vzq6BoH5oUC: + citations: 24 + title: "Bemerkung zu der Abhandlung von WR He\" Beitrag zur Theorie der Viskosit\xE4t heterogener Systeme\"" + year: Unknown Year + qc6CJjYAAAAJ:00hq1xGbIBsC: + citations: 0 + title: In Memory of Emmy Noether, Visiting Professor of Mathematics, Bryn Mawr College, 1922-April 1935 + year: Unknown Year + qc6CJjYAAAAJ:041faMmbr2QC: + citations: 39 + title: La relatividad + year: '1970' + qc6CJjYAAAAJ:0765WKWsAZMC: + citations: 8 + title: Remarks to the essays appearing in this collected volume + year: '1951' + qc6CJjYAAAAJ:08ZZubdj9fEC: + citations: 33 + title: 'Einstein''s 1912 manuscript on the special theory of relativity: a facsimile' + year: '1996' + qc6CJjYAAAAJ:0D9gKr9vLLUC: + citations: 10 + title: Elementary Considerations on the Interpretation of the Foundations of Quantum Mechanics + year: '2011' + qc6CJjYAAAAJ:0EnyYjriUFMC: + citations: 1176 + title: 'The Born Einstein Letters: correspondence between Albert Einstein and Max and Hedwig Born from 1916 to 1955 with commentaries by Max Born. Translated by Irene Born' + year: '1971' + qc6CJjYAAAAJ:0KZCP5UExFUC: + citations: 37 + title: 'Einstein''s Annalen papers: the complete collection 1901-1922' + year: '2005' + qc6CJjYAAAAJ:0KrOiVmbFBYC: + citations: 0 + title: "Zeitungen gleichen Sparb\xFCchern: dass sie voll geschrieben sind, bedeutet noch nichts." + year: Unknown Year + qc6CJjYAAAAJ:0SnApaDgcCoC: + citations: 71 + title: podolsky B and Rosen N 1935 Phys + year: Unknown Year + qc6CJjYAAAAJ:0UEtxawf5sEC: + citations: 0 + title: "II. A. On The Inevitability and Prevention Of Nuclear War/Or. Martin E. Hellman The unleashed power of the atom has changed everything save our modes of thinking and we thus \u2026" + year: '1986' + qc6CJjYAAAAJ:0VGYH9MJNTkC: + citations: 0 + title: "Aux historiens des travaux d'Einstein sur la th\xE9orie du rayonnement quantique." + year: Unknown Year + qc6CJjYAAAAJ:0izwh0c-50kC: + citations: 0 + title: "Professora, a maioria da turma n\xE3o est\xE1 entendendo nada! Construindo olhares e atitudes transdisciplinares" + year: Unknown Year + qc6CJjYAAAAJ:0kYikfLtzSYC: + citations: 0 + title: 'The Einstein Theory of Relativity: A Concise Statement by Prof. HA Lorentz' + year: '2009' + qc6CJjYAAAAJ:0klj8wIChNAC: + citations: 0 + title: Sulla teoria della relativita del tempo e dello spazio di Alberto Einsteni, nei rapporti dei fenomeni luminosi ed elettrici + year: '1922' + qc6CJjYAAAAJ:0q7iQwrhYWUC: + citations: 15 + title: Correspondencia con Michele Besso:(1903-1955) + year: '1994' + qc6CJjYAAAAJ:0t1ZDozeHsAC: + citations: 4 + title: Essays in science + year: '1954' + qc6CJjYAAAAJ:0wD49__q8KEC: + citations: 0 + title: 'Albert Einstein] to Heinrich Zangger: Letter, 10 Mar 1917' + year: Unknown Year + qc6CJjYAAAAJ:0z-ogHnYXbUC: + citations: 5 + title: reprinted 1956. On the theory of Brownian movement + year: '1906' + qc6CJjYAAAAJ:12nnf2f32iYC: + citations: 0 + title: "Albert Einstein] to Michael Pol\xE1nyi: Letter, 8 May 1915" + year: Unknown Year + qc6CJjYAAAAJ:17ZO-CJnx_8C: + citations: 241 + title: "Die Nordstr\xF6msche gravitationstheorie vom standpunkt des absoluten Differentialkalk\xFCls" + year: '1914' + qc6CJjYAAAAJ:1AS7WB7zg6gC: + citations: 81 + title: "L'\xE9ther et la th\xE9orie de la relativit\xE9" + year: '1921' + qc6CJjYAAAAJ:1DhOeZtQFr0C: + citations: 428 + title: Principle Points of the General Theory of Relativity + year: '1918' + qc6CJjYAAAAJ:1EM7I_rJWO4C: + citations: 0 + title: Planetary perspective + year: Unknown Year + qc6CJjYAAAAJ:1GSnt3Xtl_sC: + citations: 0 + title: 'Albert Einstein] to Fritz Haber: Letter, before 20 Dec 1918' + year: Unknown Year + qc6CJjYAAAAJ:1HYIo8DVeu0C: + citations: 11 + title: Sulla teoria speciale e generale della relativita:(volgarizzazione) + year: '1921' + qc6CJjYAAAAJ:1Lcp1PKUB6cC: + citations: 0 + title: "Albert Einstein] to Constantin Carath\xE9odory: Letter, 6 Sep 1916" + year: Unknown Year + qc6CJjYAAAAJ:1QLOHW2CHAAC: + citations: 91 + title: Letter to M Besso + year: '1942' + qc6CJjYAAAAJ:1cQOl6Zi554C: + citations: 14 + title: La lucha contra la guerra + year: '1986' + qc6CJjYAAAAJ:1l3MdapXzAoC: + citations: 392 + title: 'Hedwig und Max Born: Briefwechsel 1916-1955' + year: '1969' + qc6CJjYAAAAJ:1lB6hEDIqXYC: + citations: 0 + title: 'Albert Einstein] to Wander and Geertruida de Haas: Letter, before 15 Nov 1915' + year: Unknown Year + qc6CJjYAAAAJ:1n-LKbgTOzoC: + citations: 0 + title: On the quantitative theory of radiation + year: '2005' + qc6CJjYAAAAJ:1u-ON_Kw9acC: + citations: 0 + title: Winter Inquiry Land + year: Unknown Year + qc6CJjYAAAAJ:1xBWf43XMUgC: + citations: 40 + title: "Ueber die thermodynamische Theorie der Potentialdifferenz zwischen Metallen und vollst\xE4ndig dissociirten L\xF6sungen ihrer Salze und \xFCber eine elektrische Methode zur Erforschung \u2026" + year: '2005' + qc6CJjYAAAAJ:2168PZyDXAcC: + citations: 0 + title: 'Albert Einstein] to Willem de Sitter: Letter, 8 Aug 1917' + year: Unknown Year + qc6CJjYAAAAJ:22I2CSi1iVUC: + citations: 0 + title: 'Albert Einstein] to David Hilbert: Letter, 12 Apr 1918' + year: Unknown Year + qc6CJjYAAAAJ:23Hg5vt_rPQC: + citations: 0 + title: "Die Einstein-Sammlung der ETH-Bibliothek in Z\xFCrich: ein Ueberblick f\xFCr Ben\xFCtzer der Handschriften-Abteilung" + year: '1970' + qc6CJjYAAAAJ:2C0LhDdYSbcC: + citations: 1497 + title: "Le principe de relativit\xE9 et ses cons\xE9quences dans la physique moderne" + year: '1910' + qc6CJjYAAAAJ:2KloaMYe4IUC: + citations: 32 + title: The Einstein Reader + year: '2006' + qc6CJjYAAAAJ:2Q0AJrNhS-QC: + citations: 71 + title: "Zur Theorie der R\xE4ume mit Riemann\u2010Metrik und Fernparallelismus" + year: '2006' + qc6CJjYAAAAJ:2VmNxfDIOWgC: + citations: 0 + title: 'Albert Einstein] to Conrad Habicht: Letter, 15 Apr 1904' + year: Unknown Year + qc6CJjYAAAAJ:2ZctHUgIzyAC: + citations: 472 + title: "La g\xE9om\xE9trie et l'exp\xE9rience" + year: '1921' + qc6CJjYAAAAJ:2hfDYGh-f1UC: + citations: 0 + title: Planck-Medaille + year: '1928' + qc6CJjYAAAAJ:2mus-XyGPC0C: + citations: 62 + title: Demonstration of the non-existence of gravitational fields with a non-vanishing total mass free of singularities + year: '1941' + qc6CJjYAAAAJ:35r97b3x0nAC: + citations: 6 + title: "Sur le probl\xE8me cosmologique: th\xE9orie de la gravitation g\xE9n\xE9ralis\xE9e" + year: '1951' + qc6CJjYAAAAJ:3ERjdSgnfPsC: + citations: 0 + title: "Mamlekhet Lin\u1E33e\u02BCus: tokhnit li-yetsirat mish\u1E6Dar \u1E25ayim \u1E25adash, ta\u1E33in \u1E7Fe-enoshi" + year: '1939' + qc6CJjYAAAAJ:3NskZpgvI9IC: + citations: 0 + title: "Probl\xE8mes des dimensions de l'espace et la cosmologie." + year: Unknown Year + qc6CJjYAAAAJ:3_iODIlCio4C: + citations: 0 + title: "Le caract\xE8re unique et multiple de la mati\xE8re dans la repr\xE9sentation physique de l'univers." + year: Unknown Year + qc6CJjYAAAAJ:3eo-xq64HD0C: + citations: 0 + title: 'Albert Einstein] to Wilhelm von Siemens: Letter, 4 Jan 1918' + year: Unknown Year + qc6CJjYAAAAJ:3fE2CSJIrl8C: + citations: 328 + title: A generalization of the relativistic theory of gravitation, II + year: '1946' + qc6CJjYAAAAJ:3pYxbvHKFu8C: + citations: 276 + title: Briefwechsel 1916-1955 + year: '1972' + qc6CJjYAAAAJ:3s1wT3WcHBgC: + citations: 78 + title: A brief outline of the development of the theory of relativity + year: '1921' + qc6CJjYAAAAJ:3s2jc9hNhkQC: + citations: 0 + title: Relativity in Newtonian Mechanics and the Michelson-Morley Experiment + year: Unknown Year + qc6CJjYAAAAJ:3vbIHxFL9FgC: + citations: 149 + title: "Experimenteller Nachweis der Amp\xE8reschen Molekularstr\xF6me" + year: '1915' + qc6CJjYAAAAJ:3z7foVzkq2cC: + citations: 10 + title: The nature of reality + year: '1931' + qc6CJjYAAAAJ:45AZ0Vt6gvEC: + citations: 0 + title: Nachtrag zu meiner Arbeit:Thermodynamische Begruendung des photochemischen Aequivalentgesetzes'(from Annalen der Physik 1912) + year: '1993' + qc6CJjYAAAAJ:4Bh_hC5jS3YC: + citations: 7014 + title: Graviton Mass and Inertia Mass + year: '1911' + qc6CJjYAAAAJ:4DMP91E08xMC: + citations: 537 + title: The Origins of the General Theory of Relativity + year: '1933' + qc6CJjYAAAAJ:4E1Y8I9HL1wC: + citations: 10 + title: Gravitationstheorie + year: '1913' + qc6CJjYAAAAJ:4EsMycecMEYC: + citations: 0 + title: 'PERSONAY SOCIEDAD: PERSPECTIVAS PARA EL SIGLO XXI' + year: '2006' + qc6CJjYAAAAJ:4IpgxnMJogoC: + citations: 0 + title: 'Albert Einstein] to Mileva Einstein-Maric: Letter, 17 Apr 1908' + year: Unknown Year + qc6CJjYAAAAJ:4JMBOYKVnBMC: + citations: 2911 + title: Quantentheorie des einatomigen idealen Gases + year: '1924' + qc6CJjYAAAAJ:4QKQTXcH0q8C: + citations: 76 + title: "Kritisches zu einer von Hrn. de Sitter gegebenen L\xF6sung der Gravitationsgleichungen" + year: '1918' + qc6CJjYAAAAJ:4S6zbAYdD6oC: + citations: 14 + title: Naturwissenschaft und Religion + year: '1960' + qc6CJjYAAAAJ:4TOpqqG69KYC: + citations: 33 + title: 'Die Evolution der Physik: Von Newton bis zur Quantentheorie' + year: '1956' + qc6CJjYAAAAJ:4UtermoNRQAC: + citations: 51 + title: Autobiographische Skizze + year: '1956' + qc6CJjYAAAAJ:4ZjPyBmb-CUC: + citations: 1 + title: The nature and cause of mantle heterogeneity + year: Unknown Year + qc6CJjYAAAAJ:4_yl7nwqy4oC: + citations: 0 + title: Einstein on science + year: '2000' + qc6CJjYAAAAJ:4fKUyHm3Qg0C: + citations: 62 + title: 'Albert Einstein, Mileva Maric: The Love Letters' + year: '2000' + qc6CJjYAAAAJ:4hFrxpcac9AC: + citations: 0 + title: "L'heure H at-elle sonn\xE9 pour le monde?: Effets accumulatifs des explosions nucl\xE9aires" + year: '1955' + qc6CJjYAAAAJ:4oJvMfeQlr8C: + citations: 20 + title: Vorschlag zu einem die Natur des elementaren Strahlungs-Emissionsprozesses betreffenden Experiment + year: '1926' + qc6CJjYAAAAJ:4sHRCyKql0sC: + citations: 0 + title: 'The collected papers of Albert Einstein. Vol. 8, The Berlin years: correspondence, 1914-1918:[English translation]' + year: Unknown Year + qc6CJjYAAAAJ:4xIGDXbuNMYC: + citations: 0 + title: "DESARROLLO DE COMPETENCIAS EN LA FORMACI\xD3N INICIAL DE DOCENTES, A PARTIR DE LA EJECUCI\xD3N" + year: Unknown Year + qc6CJjYAAAAJ:4xcnnZsK8tIC: + citations: 5 + title: "La teor\xEDa de la relatividad: Al alcance de todos" + year: '1925' + qc6CJjYAAAAJ:5-bGDoUgDrYC: + citations: 0 + title: 'Einstein, the Man and His Achievement: A Series of Broadcast Talks' + year: '1967' + qc6CJjYAAAAJ:5-tCjTwfAdEC: + citations: 459 + title: "Die Relativit\xE4tstheorie" + year: '1915' + qc6CJjYAAAAJ:5Hlrm_bZEgcC: + citations: 13 + title: "Einstein und \xD6sterreich: nach einem Vortrag in der Chemisch-Physikalischen Gesellschaft zu Wien im April 1979, hundert Jahre nach der Geburt des gro\xDFen Meisters" + year: '1980' + qc6CJjYAAAAJ:5LOebrzo1TYC: + citations: 0 + title: 'Albert Einstein] to Hendrik A. Lorentz: Letter, 1 Jan 1916' + year: Unknown Year + qc6CJjYAAAAJ:5LPo_wSKItgC: + citations: 104 + title: "Bemerkung zu der Arbeit von A. Friedmann \u201E\xDCber die Kr\xFCmmung des Raumes \u201C" + year: '1922' + qc6CJjYAAAAJ:5McdzzY_mmwC: + citations: 42 + title: Correspondence 1916-1955 [entre] Albert Einstein, Max Born et Hedwig Born + year: '1972' + qc6CJjYAAAAJ:5UUbrqTvKfUC: + citations: 0 + title: Dr. Albert Einstein and American Colleagues, 1931 + year: '1949' + qc6CJjYAAAAJ:5Y1KH4bkPm0C: + citations: 0 + title: 'Albert Einstein] to Carl Heinrich Becker: Letter, 25 Nov 1918' + year: Unknown Year + qc6CJjYAAAAJ:5Y7y0xowK3MC: + citations: 9 + title: "Fisica e realt\xE0" + year: '1965' + qc6CJjYAAAAJ:5awf1xo2G04C: + citations: 15 + title: Escritos sobre la paz + year: '1967' + qc6CJjYAAAAJ:5bFWG3eDk9wC: + citations: 0 + title: 'Albert Einstein] to Emil Beck: Letter, 30 Apr 1917' + year: Unknown Year + qc6CJjYAAAAJ:5bGIVMdsOr0C: + citations: 172 + title: My theory + year: '1919' + qc6CJjYAAAAJ:5pGZGXnFQ_sC: + citations: 10000 + title: Sitzungsber. K + year: '1925' + qc6CJjYAAAAJ:5qfkUJPXOUwC: + citations: 161 + title: Unified field theory of gravitation and electricity + year: '1925' + qc6CJjYAAAAJ:5rMqqAh47xYC: + citations: 26 + title: "Pr\xFCfung der allgemeinen Relativit\xE4tstheorie" + year: '1919' + qc6CJjYAAAAJ:5y95FQUaxGgC: + citations: 0 + title: "Le caract\xE8re r\xE9p\xE9titif cyclique r\xE9gulier des bonds dans l'\xE9volution de la science correspondant \xE0 l'activit\xE9 solaire." + year: Unknown Year + qc6CJjYAAAAJ:62yiFa7nMbkC: + citations: 0 + title: "Die Not der deutschen Wissenschaft. Eine Gefahr f\xFCr die Nation, 21 Dez 1921" + year: Unknown Year + qc6CJjYAAAAJ:6B7w4NK6UsoC: + citations: 0 + title: 'Doctrines about the Universe: With Proof in the Form of a Letter to the Public and to Professor Einstein' + year: '1821' + qc6CJjYAAAAJ:6CdnuHuKHxIC: + citations: 79 + title: Refrigeration + year: '1927' + qc6CJjYAAAAJ:6DS7WFnF4J4C: + citations: 138 + title: Koniglich Preussische Akademie der Wissenschaften + year: '1983' + qc6CJjYAAAAJ:6Dd5luMImnEC: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 15 Apr 1916' + year: Unknown Year + qc6CJjYAAAAJ:6E5OHDUOeTQC: + citations: 0 + title: 'Albert Einstein] to Hermann Weyl: Letter, 31 May 1918' + year: Unknown Year + qc6CJjYAAAAJ:6IwoDg2IE1oC: + citations: 2 + title: Comments on the Work of Friedmann + year: '1986' + qc6CJjYAAAAJ:6biGW3np0psC: + citations: 0 + title: "Conceptos, ambientes de aprendizaje:\xBF c\xF3mo aprendemos los humanos en diferentes contextos? Waleska Aldana Segura" + year: Unknown Year + qc6CJjYAAAAJ:6ftYtcnYaCAC: + citations: 338 + title: Ather and Relativitatstheorie. J + year: '1920' + qc6CJjYAAAAJ:6gD0efnhv6MC: + citations: 0 + title: 'Emmeline Hansen Salt Lake Community College Physics Term Paper: Albert Einstein Biography' + year: Unknown Year + qc6CJjYAAAAJ:6jAoOr-ogVAC: + citations: 0 + title: "La ley de gravitaci\xF3n de Einstein a prop\xF3sito de algunas cr\xEDticas recientes" + year: '1927' + qc6CJjYAAAAJ:6tHXJaRVc1QC: + citations: 95 + title: Sobranie nauchnykh trudov + year: '1967' + qc6CJjYAAAAJ:70eg2SAEIzsC: + citations: 61 + title: "Bietet die feldtheorie M\xF6glichkeiten f\xFCr die L\xF6sung des Quantenproblems?" + year: '1923' + qc6CJjYAAAAJ:7DJsn6tmoAwC: + citations: 325 + title: "\xC4ther und Relativit\xE4ts-theorie" + year: '1920' + qc6CJjYAAAAJ:7DTIKO_nxaIC: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 8 Jan 1917' + year: Unknown Year + qc6CJjYAAAAJ:7VEv-pLvLSsC: + citations: 338 + title: "Elementare Betrachtungen \xFCber die thermische Molekularbewegung in festen K\xF6rpern" + year: '1911' + qc6CJjYAAAAJ:7XUxBq3GufIC: + citations: 0 + title: On the Quantization Condition of Sommerfeld and Epstein + year: '1980' + qc6CJjYAAAAJ:7YMrAF6eRCIC: + citations: 0 + title: 'On the Non-existence of Regular Stationary Solutions of Relativistic Field Equations: Annals of Mathematics, Vol. 44, No. 2, April 1943;(received January 4, 1943)' + year: '1943' + qc6CJjYAAAAJ:7bRg-L-9LFcC: + citations: 15 + title: How I see the world + year: '1991' + qc6CJjYAAAAJ:7eciy3tyNvQC: + citations: 0 + title: Strahlungs-Emission und-Absorption nach der Quantentheorie, 17 Jul 1916 + year: Unknown Year + qc6CJjYAAAAJ:7gse_HdimRUC: + citations: 9 + title: Why Do They Hate the Jews? + year: '1938' + qc6CJjYAAAAJ:7hTFQKV_Y-MC: + citations: 10 + title: 'Human Folly: To Disarm Or Perish?' + year: '1955' + qc6CJjYAAAAJ:7ioeYXKzaWoC: + citations: 29 + title: Komptonsche Experiment + year: '1924' + qc6CJjYAAAAJ:7q08wCQPkLwC: + citations: 0 + title: Briefe Albert Einsteins an Joseph Petzoldt + year: '1971' + qc6CJjYAAAAJ:84Dmd_oSKgsC: + citations: 0 + title: 'Albert Einstein] to Johannes Stark: Letter, 17 Feb 1908' + year: Unknown Year + qc6CJjYAAAAJ:8AbLer7MMksC: + citations: 827 + title: 'The Collected Papers of Albert Einstein, Vol. 5: The Swiss Years: Correspondence, 1902-1914' + year: '1995' + qc6CJjYAAAAJ:8NHCvSvNRCIC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 12 Nov 1917' + year: Unknown Year + qc6CJjYAAAAJ:8QO3eJiZnkEC: + citations: 0 + title: 'Albert Einstein] to the Department of Education: Letter, Canton of Bern' + year: Unknown Year + qc6CJjYAAAAJ:8Rip7PbZ7AYC: + citations: 0 + title: Einstein's Generalized Theory of Gravitation + year: '1969' + qc6CJjYAAAAJ:8VbLR7ExW8oC: + citations: 7 + title: Antwort auf eine Replik Paul Harzers (Nr. 4753, S. 10 und 11) + year: '1914' + qc6CJjYAAAAJ:8Wa-k36u3iwC: + citations: 0 + title: "Albert Einstein] to Th\xE9ophile de Donder: Letter, 17 Jul 1916" + year: Unknown Year + qc6CJjYAAAAJ:8_tS2Vw13FcC: + citations: 0 + title: Otto Stern Papers + year: '1968' + qc6CJjYAAAAJ:8aAMN6PqWdYC: + citations: 36 + title: "Sobre el humanismo: Escritos sobre pol\xEDtica, sociedad y ciencia" + year: '1995' + qc6CJjYAAAAJ:8dmKnlANe1sC: + citations: 2 + title: The Arabs and Palestine + year: '1944' + qc6CJjYAAAAJ:8gBurD7jEYQC: + citations: 9 + title: "Bemerkung zu der Arbeit von D. Mirimanoff \u201E\xDCber die Grundgleichungen\u2026\u201D \uFE01" + year: '1909' + qc6CJjYAAAAJ:8k81kl-MbHgC: + citations: 380 + title: Essays in science + year: '2011' + qc6CJjYAAAAJ:8moDcb_GFzgC: + citations: 0 + title: 'Albert Einstein] to Erwin Freundlich: Letter, 19 Mar 1915' + year: Unknown Year + qc6CJjYAAAAJ:8p-ueveQw4wC: + citations: 10 + title: "Ciencia y religi\xF3n" + year: '1984' + qc6CJjYAAAAJ:8p8iYwVyaVcC: + citations: 25 + title: "Bemerkung zu der Franz Seletyschen Arbeit\u201D \uFE01Beitr\xE4ge zum kosmologischen System \u201E" + year: '1922' + qc6CJjYAAAAJ:8s22W2WWFy4C: + citations: 0 + title: "Die Einstein-Dokumente im Archiv der Humboldt-Universit\xE4t zu Berlin" + year: '1973' + qc6CJjYAAAAJ:94rQ0kDLHKYC: + citations: 4553 + title: Evolution of Physics + year: '1954' + qc6CJjYAAAAJ:9CGX2owmTHMC: + citations: 0 + title: DIE NATLIRWISSENSCHAFTEN + year: Unknown Year + qc6CJjYAAAAJ:9LpHyFPp1DQC: + citations: 525 + title: "Riemann\u2010Geometrie mit Aufrechterhaltung des Begriffes des Fernparallelismus" + year: '1928' + qc6CJjYAAAAJ:9N3KX2BFTccC: + citations: 103 + title: Elementare Uberlegungen zur Interpretation der Grundlagen der Quanten-Mechanik + year: '1953' + qc6CJjYAAAAJ:9PbDelcLwNgC: + citations: 35 + title: On the theory of light production and light absorption + year: '1906' + qc6CJjYAAAAJ:9QTmwX2E1jEC: + citations: 0 + title: 'Albert Einstein] to Walther Rathenau: Letter, 8 Mar 1917' + year: Unknown Year + qc6CJjYAAAAJ:9aOYe38lPcwC: + citations: 16 + title: On the general molecular theory of heat + year: '1904' + qc6CJjYAAAAJ:9bzyojSiTPoC: + citations: 4 + title: Pump, especially for refrigerating machine + year: '1931' + qc6CJjYAAAAJ:9fSugHr6AN8C: + citations: 14 + title: 'Emanuel Lasker: Biogr. e. Schachweltmeisters' + year: '1952' + qc6CJjYAAAAJ:9hNLEifDsrsC: + citations: 0 + title: "Albert Einstein] to Emma Ehrat-\xDChlinger: Letter, last week of Mar 1903" + year: Unknown Year + qc6CJjYAAAAJ:9o6PfxSMcEIC: + citations: 10 + title: "Cum v\u0103d eu lumea: o antologie" + year: '1992' + qc6CJjYAAAAJ:9tJtKg94vZsC: + citations: 210 + title: Do gravitational fields play an essential role in the structure of elementary particles? + year: '1919' + qc6CJjYAAAAJ:9tletLqOvukC: + citations: 4 + title: "Fizika i real\u02B9nost\u02B9: sbornik state\u012D" + year: '1965' + qc6CJjYAAAAJ:9u2w3wkYHSMC: + citations: 92 + title: "Maxwell\u2019s influence on the development of the conception of physical reality" + year: '1931' + qc6CJjYAAAAJ:9xDRhSErrBIC: + citations: 89 + title: "Letter to Schr\xF6dinger" + year: '1950' + qc6CJjYAAAAJ:9xhnSCvx0jcC: + citations: 0 + title: 'Albert Einstein] to Edgar Meyer: Letter, after 12 Oct 1918' + year: Unknown Year + qc6CJjYAAAAJ:A5aiAONn640C: + citations: 20 + title: Religion und Wissenschaft + year: '1930' + qc6CJjYAAAAJ:A8NefVh_EAoC: + citations: 0 + title: 'Albert Einstein] to Otto Stern: Letter, 27 Mar 1916' + year: Unknown Year + qc6CJjYAAAAJ:AE81f6nWjdQC: + citations: 0 + title: "Wir sind gewarnt. Mit einem Vorw. von Albert Einstein.[Aus dem franz\xF6sischen \xFCbertr. von W. Theimer]." + year: '1955' + qc6CJjYAAAAJ:AFXcoJnoRH0C: + citations: 83 + title: Einheitliche Feldtheorie und Hamiltonsches Prinzip + year: '2006' + qc6CJjYAAAAJ:APw3zysQxTcC: + citations: 0 + title: "Einstein: \u0111\u1EDDi song v\xE0 t\u01AF\u1EDFng" + year: '1982' + qc6CJjYAAAAJ:AQkP-AuIKnwC: + citations: 12 + title: La relativit# a speciale + year: '1920' + qc6CJjYAAAAJ:AVQCy-ZCKIsC: + citations: 109 + title: "Planck\u2019s theory of radiation and the theory of specific heat" + year: '1907' + qc6CJjYAAAAJ:AYaE08C4-t8C: + citations: 17 + title: Prinzipien der Forschung + year: '1918' + qc6CJjYAAAAJ:A_-8YG8SPFQC: + citations: 14 + title: 'Albert Einstein] to Michele Besso: Letter, 11 Aug 1916' + year: Unknown Year + qc6CJjYAAAAJ:A_xf8jiGkywC: + citations: 0 + title: 'Albert Einstein] to Wander de Haas: Letter, 7 Aug 1915' + year: Unknown Year + qc6CJjYAAAAJ:AbQWx2m_oG8C: + citations: 23 + title: "\xDCber ein den Elementarproze\xC3\u0178 der Lichtemission betreffendes Experiment" + year: '1921' + qc6CJjYAAAAJ:AdUz3-SiDfgC: + citations: 96 + title: 'Letters on Absolute Parallelism, 1929-1932: Correspondence Between Elie Cartan and Albert Einstein' + year: '1979' + qc6CJjYAAAAJ:AeQkyvggb0MC: + citations: 84 + title: The Theory of Opalescence of Homogeneous Liquids and Liquid Mixtures Near the Critical State + year: '1993' + qc6CJjYAAAAJ:Amrzk_ktLr0C: + citations: 2 + title: "Albert Ajn\u0161tajn: njegova dela i njihov uticaj na na\u0161 svet" + year: '1957' + qc6CJjYAAAAJ:B2rIPIGFPLEC: + citations: 37 + title: Bivector fields + year: '1944' + qc6CJjYAAAAJ:B3FOqHPlNUQC: + citations: 24 + title: "Elektron und allgemeine Relativit\xE4tstheorie" + year: '1925' + qc6CJjYAAAAJ:BCdnXsLIVDwC: + citations: 26 + title: "Bemerkung zu P. Jordans Abhandlung \u201EZur Theorie der Quantenstrahlung\u201D" + year: '1925' + qc6CJjYAAAAJ:BJrLMYCRBhgC: + citations: 0 + title: "Prinzipielles zur verallgemeinerten Relativit\xE4tstheorie und Gravitationstheorie.(German)" + year: Unknown Year + qc6CJjYAAAAJ:BPS1z4jHU5cC: + citations: 63 + title: "Zu Kaluzas Theorie des Zusammenhanges von Gravitation und Elektrizit\xE4t. Erste Mitteilung" + year: '2006' + qc6CJjYAAAAJ:BUYA1_V_uYcC: + citations: 117 + title: "La th\xE9orie de la relativit\xE9 restreinte et g\xE9n\xE9rale" + year: '1990' + qc6CJjYAAAAJ:BW2nPTmhBn4C: + citations: 284 + title: "\xDCber die im elektromagnetischen Felde auf ruhende K\xF6rper ausge\xFCbten ponderomotorischen Kr\xE4fte" + year: '1908' + qc6CJjYAAAAJ:BbFSz4cl-9EC: + citations: 0 + title: VI. GRAVITATIONAL WAVES + year: '1979' + qc6CJjYAAAAJ:BjLbhSWBl98C: + citations: 204 + title: "Experimental proof of the existence of Amp\xE8re's molecular currents" + year: '1915' + qc6CJjYAAAAJ:BnRbUGEozz8C: + citations: 0 + title: 'Albert Einstein] to Willem de Sitter: Letter, before 12 Mar 1917' + year: Unknown Year + qc6CJjYAAAAJ:BqipwSGYUEgC: + citations: 188 + title: Elementary derivation of the equivalence of mass and energy + year: '1935' + qc6CJjYAAAAJ:BtfE7wd9KvMC: + citations: 28 + title: "Meine Antwort. Ueber die anti-relativit\xE4tstheoretische GmbH" + year: '1920' + qc6CJjYAAAAJ:BxcezVm2apwC: + citations: 9 + title: "Sur la th\xE9orie des quantit\xE9s lumineuses et la question de la localisation de l'\xE9nergie \xE9lectromagn\xE9tique" + year: '1910' + qc6CJjYAAAAJ:C-GuzCveMkwC: + citations: 0 + title: "La th\xE9orie de la dispersion de la lumi\xE8re et le mod\xE8le atomique de P. Drude (1904-1913)." + year: Unknown Year + qc6CJjYAAAAJ:C14xlUzwkXEC: + citations: 9 + title: The cosmic religious feeling + year: '1997' + qc6CJjYAAAAJ:C6rTQemI8T8C: + citations: 23 + title: 'Briefe zur Wellenmechanik: 2. IV. 1926-22. XII. 1950 herausgegeben im Auftrage der Osterreichischen Akademie der Wissenschaften von K. Karl Przibram,...' + year: '1963' + qc6CJjYAAAAJ:CB6W3GmKGOEC: + citations: 0 + title: Antrittsrede und Erwiderung von Max Planck am Leibniztag + year: '2006' + qc6CJjYAAAAJ:CC3C2HR4nz8C: + citations: 64 + title: "F\u0131sica e realidade" + year: '2006' + qc6CJjYAAAAJ:CCeGMaHljPEC: + citations: 58 + title: Zur affinen Feldtheorie + year: '2006' + qc6CJjYAAAAJ:CLPBug3NTQYC: + citations: 0 + title: 'Albert Einstein] to Paul Seippel: Letter, 19 Aug 1917' + year: Unknown Year + qc6CJjYAAAAJ:CLQ-NLsb8zAC: + citations: 3122 + title: Ideas and Opinions + year: '1954' + qc6CJjYAAAAJ:COU-sansr_wC: + citations: 102 + title: "Elie Cartan-Albert Einstein: lettres sur le parall\xE9lisme absolu 1929-1932" + year: '1979' + qc6CJjYAAAAJ:CQX_Vi8q7s0C: + citations: 1979 + title: Introduction Einstein's Relativity + year: '1992' + qc6CJjYAAAAJ:CRQ797xmLJIC: + citations: 0 + title: 'Albert Einstein] to Fritz Reiche: Letter, 18 Jul 1914' + year: Unknown Year + qc6CJjYAAAAJ:CRzUtm-VnGAC: + citations: 69 + title: "Der Energiesatz in der allgemeinen Relativit\xE4tstheorie" + year: '1918' + qc6CJjYAAAAJ:CXI6bF9CpJ4C: + citations: 72 + title: "Untersuchungen \xFCber die Theorie der Brownschen Bewegung/Abhandlungen \xFCber die Brownsche Bewegung und verwandte Erscheinungen" + year: '1999' + qc6CJjYAAAAJ:CY3uIpTmi-gC: + citations: 126 + title: Einstein on Cosmic Religion and Other Opinions and Aphorisms + year: '2009' + qc6CJjYAAAAJ:CmbFvBriOyMC: + citations: 197 + title: "O significado da relatividade: com a teoria relativista do campo n\xE3o sim\xE9trico" + year: '1958' + qc6CJjYAAAAJ:CmeMDzcFUg4C: + citations: 0 + title: LA GUERRE ILLEGALE CONTRE L'IRAK + year: '2004' + qc6CJjYAAAAJ:Cn5sofW4b3YC: + citations: 13 + title: "\xDCber die Untersuchung des \xC4therzustandes im magnetischen Felde" + year: '1971' + qc6CJjYAAAAJ:CoqsOaBEKcQC: + citations: 11 + title: Improvements relating to refrigerating apparatus + year: '1927' + qc6CJjYAAAAJ:CrVLTnlDqZQC: + citations: 15 + title: On the moral obligation of the scientist + year: '1945' + qc6CJjYAAAAJ:Cv-mv52rCCkC: + citations: 5237 + title: On the motion of particles suspended in a liquid at rest, assumed by the molecular-kinetic theory of heat + year: '1905' + qc6CJjYAAAAJ:Cx2ibDnldiAC: + citations: 38 + title: On the quantum mechanics of radiation + year: '1917' + qc6CJjYAAAAJ:Cy13deThEpcC: + citations: 0 + title: Wissenschaftlicher Briefwechsel mit Bohr, Einstein, Heisenberg ua. 3. 1940-1949 + year: '1993' + qc6CJjYAAAAJ:D-3shSm-n1oC: + citations: 18 + title: Science, Philosophy, and Religion + year: '1953' + qc6CJjYAAAAJ:D4n_APcuzvwC: + citations: 0 + title: "Comment on Albert von Brunn,\" On Mr. Einstein's Remark about the Irregular Fluctuations of Lunar Longitude with an Approximate Period of the Rotation of the Lunar Nodes\", 24 \u2026" + year: Unknown Year + qc6CJjYAAAAJ:D52hNgOu9GcC: + citations: 0 + title: "Albert Einstein] to Michael Pol\xE1nyi: Letter, 18 Jun 1915" + year: Unknown Year + qc6CJjYAAAAJ:D8wXzuvKacYC: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 17 Oct 1918' + year: Unknown Year + qc6CJjYAAAAJ:DCYT7yIMjgYC: + citations: 9 + title: Theoretische Atomistik + year: '1915' + qc6CJjYAAAAJ:DIubQTN3OvUC: + citations: 130 + title: "Kovarianzeigenschaften der Feldgleichungen der auf die verallgemeinerte Relativit\xE4tstheorie gegr\xFCndeten Gravitationstheorie" + year: '1914' + qc6CJjYAAAAJ:DOLguN9Lh8sC: + citations: 5 + title: 'Albert Einstein] to Moritz Schlick: Letter, 21 May 1917' + year: Unknown Year + qc6CJjYAAAAJ:DPnopAH2kssC: + citations: 10 + title: Jarbuch der Radioaktivitat und Elektronik, 4, 411 (1907), reprinted in The Collected Papers of A. Einstein, vol. 2, 252 + year: '1989' + qc6CJjYAAAAJ:DQNrXyjhriIC: + citations: 2792 + title: Die feldgleichungen der gravitation + year: '1915' + qc6CJjYAAAAJ:D_sINldO8mEC: + citations: 27 + title: Essays in humanism + year: '2011' + qc6CJjYAAAAJ:DejRBzv9GVYC: + citations: 69 + title: 'Ueber den Frieden: Weltordnung oder Weltuntergang?' + year: '1975' + qc6CJjYAAAAJ:Dh4RK7yvr34C: + citations: 0 + title: 'SCIENCE ET PHILOSOPHIE: EINSTEIN ET SPINOZA M.-A. TONNELAT' + year: '1981' + qc6CJjYAAAAJ:DjjA23gMNckC: + citations: 0 + title: Discussions of Lectures in Bad Nauheim, 23-24 Sep 1920 + year: Unknown Year + qc6CJjYAAAAJ:Dq1jD5C1HUoC: + citations: 0 + title: 'Albert Einstein] to Arnold Sommerfeld: Letter, 9 Dec 1915' + year: Unknown Year + qc6CJjYAAAAJ:Dqu_ECg3lNoC: + citations: 4 + title: "Bemerkung zu meiner Arbeit:\u201EEine Beziehung zwischen dem elastischen Verhalten\u2026\u201D \uFE01" + year: '2006' + qc6CJjYAAAAJ:DrOLxFoABAwC: + citations: 3 + title: 'The Origins of the General Theory of Relativity: Being the First Lecture on the George A. Gibson Foundation in the University of Glasgow, Delivered on June 20th, 1933' + year: '1933' + qc6CJjYAAAAJ:DtORCzn_ASQC: + citations: 103 + title: Quantum mechanics and reality + year: '1948' + qc6CJjYAAAAJ:DxlTmyU89zoC: + citations: 0 + title: Kreative Methoden 239 Kindern in Deutsehland lebensweltliche Erfahrungen von politischen Er + year: Unknown Year + qc6CJjYAAAAJ:E2bRg1zSkIsC: + citations: 280 + title: A teoria da relatividade especial e geral + year: '2003' + qc6CJjYAAAAJ:E2dP09oujfMC: + citations: 0 + title: "1. Physikalische Gr\xF6\xDFen und Einheiten" + year: Unknown Year + qc6CJjYAAAAJ:E6rqZ6_0n1EC: + citations: 0 + title: La teoria de la relativitat i altres textos + year: '2000' + qc6CJjYAAAAJ:E8M3ZPqbjf0C: + citations: 0 + title: "Albert Einstein] to Michael Pol\xE1nyi: Letter, 13 Dec 1914" + year: Unknown Year + qc6CJjYAAAAJ:E9iozgzfyhkC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 8 Jul 1914' + year: Unknown Year + qc6CJjYAAAAJ:EF0m1YoOS5EC: + citations: 2 + title: Formal Relationship of the Riemannian Curvature Tensor to the Field Equations of Gravity + year: '1927' + qc6CJjYAAAAJ:EMrlLOzmm-AC: + citations: 0 + title: "Bemerkung zu meiner Arbeit``Zur allgemeinen Relativit\xE4tstheorie\".(German)" + year: Unknown Year + qc6CJjYAAAAJ:END1nS_e-6cC: + citations: 0 + title: 'Albert Einstein] to Hermann Weyl: Letter, 29 Nov 1918' + year: Unknown Year + qc6CJjYAAAAJ:EUsVPkoNztoC: + citations: 0 + title: Jewish Solidarity and Palestine + year: '1938' + qc6CJjYAAAAJ:EXDW3tg14iEC: + citations: 0 + title: 'Albert Einstein] to Romain Rolland: Letter, 22 Mar 1915' + year: Unknown Year + qc6CJjYAAAAJ:EYYDruWGBe4C: + citations: 155 + title: "The Collected Papers of Albert Einstein, Vol. 2, The Swiss Years: Writings, 1900\u20131909 (English Translation Supplement)" + year: '1989' + qc6CJjYAAAAJ:Ecsxi449JjsC: + citations: 0 + title: "Sur le probl\xE8me de la formation de la personnalit\xE9 cr\xE9atrice d'Einstein." + year: Unknown Year + qc6CJjYAAAAJ:Ei5r6KrKXVQC: + citations: 1466 + title: "Theorie der Opaleszenz von homogenen Fl\xFCssigkeiten und Fl\xFCssigkeitsgemischen in der N\xE4he des kritischen Zustandes" + year: '2006' + qc6CJjYAAAAJ:EpJ50YjRFhcC: + citations: 3 + title: Correspondance:" Pourquoi la guerre?" + year: '1989' + qc6CJjYAAAAJ:EpUiTTZsFn8C: + citations: 0 + title: 'Albert Einstein] to Joseph Petzoldt: Letter, 11 Jun 1914' + year: Unknown Year + qc6CJjYAAAAJ:Es-9c2L5hKwC: + citations: 0 + title: Matter, Fields of Information, and Incompleteness + year: '1998' + qc6CJjYAAAAJ:EsO17nB32j8C: + citations: 18 + title: Theory of the Opalescence of Homogeneous and of Mixed Liquids in the Neighborhood of the Critical Region + year: '1910' + qc6CJjYAAAAJ:EsrhoZGmrkoC: + citations: 0 + title: "Grundgedanken und Methoden der Relativit\xE4tstheorie in ihrer Entwicklung dargestellt: Berlin" + year: '1920' + qc6CJjYAAAAJ:Et1yZiPVzsMC: + citations: 0 + title: "G\xE9ometrie complexe, Tome 2: aspects contemporains dans les math\xE9matiques et la physique" + year: '2004' + qc6CJjYAAAAJ:ExNiBuTMO9IC: + citations: 0 + title: Abstracts of Three Lectures on Relativity Delivered at Princeton University... May 11-13, 1921 + year: '1921' + qc6CJjYAAAAJ:F1-V36_CjEsC: + citations: 91 + title: Generation and conversion of light with regard to a heuristic point of view + year: '1905' + qc6CJjYAAAAJ:F4gwyMVh_r0C: + citations: 0 + title: 'Einstein: Science and Religion' + year: Unknown Year + qc6CJjYAAAAJ:FKYJxdYMdFIC: + citations: 916 + title: "The Collected Papers of Albert Einstein, Volume 15 (Translation Supplement): The Berlin Years: Writings & Correspondence, June 1925\u2013May 1927" + year: '2018' + qc6CJjYAAAAJ:FKzTm0Bp8ZYC: + citations: 63 + title: Oeuvres choisies + year: '1991' + qc6CJjYAAAAJ:FP-YCU5gdjEC: + citations: 0 + title: 'Remembering Creation: Towards a Christian Ecosophy' + year: Unknown Year + qc6CJjYAAAAJ:FS78WRl2AkQC: + citations: 0 + title: "Notiz zu unserer Arbeit\" Experimenteller Nachweis der Amp\xE8reschen Molekularstr\xF6me\", 15 Nov 1915" + year: Unknown Year + qc6CJjYAAAAJ:FSHXWovK7t4C: + citations: 0 + title: 'Der Einsteinturm in Potsdam: Architektur und Astrophysik' + year: '1995' + qc6CJjYAAAAJ:FSl0EHHYj-kC: + citations: 0 + title: Impact of Science on the Development of Pacifism, before 9 Dec 1921 + year: Unknown Year + qc6CJjYAAAAJ:FTNwVkz-CAMC: + citations: 80 + title: Outline of a generalized theory of relativity and of a theory of gravitation + year: '1913' + qc6CJjYAAAAJ:FV77Gu53xKkC: + citations: 114 + title: the Theory of Gravitation + year: '1974' + qc6CJjYAAAAJ:FcH-RsB9iB0C: + citations: 0 + title: Symposium on America and the World Situation... + year: '1933' + qc6CJjYAAAAJ:Fd3FjPIBfbkC: + citations: 0 + title: Oorlog als ziekte + year: '1938' + qc6CJjYAAAAJ:Fd6TstiuZzAC: + citations: 0 + title: "Uber den gengenw\xE4rtigen Stand der Feld-Theorie: Np" + year: '1955' + qc6CJjYAAAAJ:FecvS_q01PcC: + citations: 0 + title: BERNARD ROTH 22 The Impact of the Arms Race + year: '1983' + qc6CJjYAAAAJ:FjmlLC3huY4C: + citations: 0 + title: 'Albert Einstein] to Arnold Sommerfeld: Letter, 8 Feb 1916' + year: Unknown Year + qc6CJjYAAAAJ:Fp1gVP7Oym8C: + citations: 0 + title: 'The Militarization of America: A Report' + year: '1948' + qc6CJjYAAAAJ:FtNbRaqWXr4C: + citations: 0 + title: "Une lettre in\xE9dite de A. Einstein." + year: Unknown Year + qc6CJjYAAAAJ:Fu4hY69slDoC: + citations: 0 + title: 'Albert Einstein] to Paul and Tatiana Ehrenfest: Letter, 18 Oct 1916' + year: Unknown Year + qc6CJjYAAAAJ:FwTEoIZreccC: + citations: 5 + title: "Am Sonntag k\xFCss' ich Dich m\xFCndlich: die Liebesbriefe, 1897-1903" + year: '1994' + qc6CJjYAAAAJ:Fx7lCCP36QIC: + citations: 0 + title: "Vom Relativit\xE4ts-Prinzip, 26 Apr 1914" + year: '2003' + qc6CJjYAAAAJ:FzKuKYQlbrwC: + citations: 39 + title: Systematische Untersuchung fiber kompatible Feldgleichungen, welche von einem Riemannschen Raum mit Fernparallelismus gesetzt werden k6nnen + year: '1931' + qc6CJjYAAAAJ:G36d5HCDkJYC: + citations: 212 + title: Remarks on Bertrand Russell's theory of knowledge + year: '1946' + qc6CJjYAAAAJ:GCDlZl827dEC: + citations: 2 + title: SB preuss. Akad. Wiss.(1915), 778 + year: '1916' + qc6CJjYAAAAJ:GGgVawPscysC: + citations: 5 + title: The Religiousness of Science + year: '1934' + qc6CJjYAAAAJ:GHsHDPAyICYC: + citations: 22 + title: 'HA Lorentz: His Creative Genius and His Personality' + year: '1953' + qc6CJjYAAAAJ:GJVTs2krol4C: + citations: 132 + title: "Theoretische bemerkungen \xFCber die brownsche bewegung" + year: '2010' + qc6CJjYAAAAJ:GO2DTSf4MZMC: + citations: 0 + title: Souvenir of the Einstein Meeting at the Royal Albert Hall, Tuesday, October 3, 1933 + year: '1933' + qc6CJjYAAAAJ:GO5CT2y9xrEC: + citations: 12 + title: Lettres d'amour et de science + year: '1993' + qc6CJjYAAAAJ:GOtIa6ILFcwC: + citations: 6 + title: On Boltzmann's Principle and Some Immediate Consequences Thereof Translation by Bertrand Duplantier and Emily Parks from the original German text into French and English + year: '2006' + qc6CJjYAAAAJ:GUYAmugLYisC: + citations: 14 + title: "Bemerkungen zu unserer Arbeit:\u201E\xDCber die elektromagnetischen Grundgleichungen f\xFCr bewegte K\xF6rper\u201D \uFE01" + year: '2006' + qc6CJjYAAAAJ:GZelqfngyKEC: + citations: 1 + title: Correspondence between Barrie Stavis and Albert Einstein + year: '1990' + qc6CJjYAAAAJ:GfAJFcoWUJEC: + citations: 53 + title: "\xDCber den gegenw\xE4rtigen Stand der Feld-Theorie" + year: '1929' + qc6CJjYAAAAJ:GgDznaKzj2MC: + citations: 0 + title: "El gobierno de Felipe Calder\xF3n\xBF hacia un desarrollo humano sustentable? Susana Garcia jimenez" + year: Unknown Year + qc6CJjYAAAAJ:GnPB-g6toBAC: + citations: 172 + title: Einstein on peace + year: '1968' + qc6CJjYAAAAJ:GpOSJs1ZbLkC: + citations: 0 + title: 'Zitate Aus Mein Weltbild: Sieben Radierungen Von Terry Haass' + year: '1975' + qc6CJjYAAAAJ:Gpwnp1kGG20C: + citations: 236 + title: Ernst Mach + year: '1916' + qc6CJjYAAAAJ:Grx829lh2T4C: + citations: 3019 + title: Quantum theory of monatomic ideal gases + year: '1924' + qc6CJjYAAAAJ:GsgvGxwuA5UC: + citations: 17 + title: 'Correspondance 1903-1955: Albert Einstein, Michele Besso' + year: '1979' + qc6CJjYAAAAJ:GtLg2Ama23sC: + citations: 10 + title: "L'\xE9ther et la th\xE9orie de la relativit\xE9: La g\xE9om\xE9trie et l'exp\xE9rience" + year: '1964' + qc6CJjYAAAAJ:GtszHNlY0egC: + citations: 0 + title: 'The collected papers of Albert Einstein. Vol. 8, The Berlin years: correspondence, 1914-1918, P. A, 1914-1917' + year: Unknown Year + qc6CJjYAAAAJ:GwaQhVSQhKEC: + citations: 0 + title: "Theorien verborgener Parameter, EPR-Korrelationen, Bell\u2019sche Ungleichung, GHZ-Zust ande" + year: '1999' + qc6CJjYAAAAJ:GzlcqhCAosUC: + citations: 496 + title: "QUANTEN\u2010MECHANIK UND WIRKLICHKEIT" + year: '1948' + qc6CJjYAAAAJ:H-nlc5mcmJQC: + citations: 2 + title: On Newton (1927) + year: '1979' + qc6CJjYAAAAJ:H1aCVKaixnMC: + citations: 11 + title: Science Fiction and Fantasy + year: '1980' + qc6CJjYAAAAJ:H4IpxOyCX80C: + citations: 186 + title: "L'\xE9volution des id\xE9es en physique" + year: '1963' + qc6CJjYAAAAJ:HKviVsUxM5wC: + citations: 9 + title: "Bemerkung zu Abrahams vorangehender Auseinandersetzung \u201ENochmals Relativit\xE4t und Gravitation\u201D \uFE01" + year: '2006' + qc6CJjYAAAAJ:HM9HXerLlEkC: + citations: 7 + title: Vincenzo Bellini + year: '1935' + qc6CJjYAAAAJ:HPvNdXBGwkEC: + citations: 12 + title: Electrodynamic Movement of Fluid Metals Particularly for Refrigerating Machines + year: '1928' + qc6CJjYAAAAJ:HaiYZdWvYCYC: + citations: 0 + title: Out of the Darkness/A Way Forward by Tom Parish + year: Unknown Year + qc6CJjYAAAAJ:HjGq7OYTVFUC: + citations: 5 + title: Riemann-Metrik mit Aufrechterhaltung des Begriffes der Fern-parallelismus, Preuss + year: '1928' + qc6CJjYAAAAJ:HklM7qHXWrUC: + citations: 459 + title: "Die Relativit\xE4tstheorie" + year: '1925' + qc6CJjYAAAAJ:Hl4CZ0n6gBQC: + citations: 20718 + title: Uber einen die Erzeugung und Verwandlung des Lichtes betreffenden heurischen Gesichtpunkt + year: '1905' + qc6CJjYAAAAJ:HtEfBTGE9r8C: + citations: 183 + title: "La f\xEDsica: aventura del pensamiento" + year: '1939' + qc6CJjYAAAAJ:Hx6RvaqUy9IC: + citations: 0 + title: 'Science: Conjectures and Refutations' + year: '1997' + qc6CJjYAAAAJ:HygtOXotxAUC: + citations: 184 + title: "Sur l'\xE9lectrodynamique des corps en mouvement" + year: '1925' + qc6CJjYAAAAJ:I6TX2FUo6loC: + citations: 91 + title: Theodore von Karman Anniversary Volume + year: '1941' + qc6CJjYAAAAJ:I8ubwoE7ciMC: + citations: 1 + title: Zur Abwehr + year: '1921' + qc6CJjYAAAAJ:I9gX6wnfuA8C: + citations: 328 + title: "\xC4ther und Relativit\xE4tstheorie: Rede gehalten am 5. Mai 1920 an der Reichs-Universit\xE4t zu Leiden" + year: '1920' + qc6CJjYAAAAJ:IEpB_1CIIT4C: + citations: 3908 + title: 'THE EVOLUTION OF PHYSICS: THE GROWTH OF IDEAS FROM THE EARLY CON CEPTS TO RELATIVITY AND QUANTA.' + year: '1938' + qc6CJjYAAAAJ:IHkkN1K1AlAC: + citations: 63 + title: "Beitr\xE4ge zur Quantentheorie" + year: '1914' + qc6CJjYAAAAJ:IMJZBBnUFLgC: + citations: 0 + title: 'Albert Einstein] to Werner Weisbach: Letter, 14 Oct 1916' + year: Unknown Year + qc6CJjYAAAAJ:IT1MJ6E3JesC: + citations: 60 + title: Sehallausbreitung in teilweise disseziierten Gasen. + year: '1920' + qc6CJjYAAAAJ:IWHjjKOFINEC: + citations: 717 + title: Cosmological considerations on the general theory of relativity + year: '1986' + qc6CJjYAAAAJ:IZKZNMMMWs0C: + citations: 0 + title: "Religi\xF6se Sinnstiftung durch Technik?" + year: Unknown Year + qc6CJjYAAAAJ:I__7AI8a974C: + citations: 0 + title: Relatividade Especial e Geral + year: Unknown Year + qc6CJjYAAAAJ:Ib8FQH8mdS0C: + citations: 0 + title: 'Albert Einstein] to Elsa Einstein: Letter, 30 Aug 1915' + year: Unknown Year + qc6CJjYAAAAJ:IfvCfoBprpQC: + citations: 782 + title: 'The collected papers of Albert Einstein. Vol 4, The Swiss years: writings, 1912-1914 [English translation]' + year: Unknown Year + qc6CJjYAAAAJ:IjCSPb-OGe4C: + citations: 1376 + title: The gravitational equations and the problem of motion + year: '1938' + qc6CJjYAAAAJ:IkxDsZK-5NQC: + citations: 0 + title: "Algunas consideraciones sobre el tiempo y la teor\xEDa especial de la relatividad" + year: '1979' + qc6CJjYAAAAJ:Iq19BMNozs4C: + citations: 3 + title: 'Zu Max Plancks sechzegstem Geburtstag: Ansprachen, gehalten am 26. April 1918 in der Deutschen Physikalischen Gesellschaft' + year: '1918' + qc6CJjYAAAAJ:IqrShC7OVU0C: + citations: 6379 + title: Investigations on the theory of the Brownian movement, edited with notes by R + year: '1926' + qc6CJjYAAAAJ:IvSMUa3B7yYC: + citations: 6 + title: "Berichtigung zur Abhandlung:\u201E\xDCber die elektromagnetischen Grundgleichungen f\xFCr bewegte K\xF6rper\u201D \uFE01" + year: '1908' + qc6CJjYAAAAJ:J-pR_7NvFogC: + citations: 28 + title: 'The Swiss Years: Writings, 1914-1917' + year: '1996' + qc6CJjYAAAAJ:J4wmHkHhN-kC: + citations: 2 + title: Memorial to Dr. David Eder + year: '1936' + qc6CJjYAAAAJ:JQOojiI6XY0C: + citations: 17 + title: Tables of Einstein Functions + year: '1962' + qc6CJjYAAAAJ:JQPmwQThujIC: + citations: 472 + title: "La g\xE9om\xE9trie et l'exp\xE9rience, par Albert Einstein; traduit par Maurice Solovine" + year: '1921' + qc6CJjYAAAAJ:JXi_AgyUMBAC: + citations: 101 + title: Relativistic theory of the non-symmetric field + year: '1955' + qc6CJjYAAAAJ:JZsVLox4iN8C: + citations: 2424 + title: 'Autobiographisches in: Albert Einstein: Philosopher-Scientist' + year: '1949' + qc6CJjYAAAAJ:J_g5lzvAfSwC: + citations: 125 + title: Warum Krieg? + year: '1972' + qc6CJjYAAAAJ:JjPkQosUWiAC: + citations: 0 + title: 'Science and Synthesis: An International Colloquium' + year: '1967' + qc6CJjYAAAAJ:JoHZYnTS1h4C: + citations: 2 + title: "La teor\xEDa de la relatividad especial y general al alcance de todos" + year: '1923' + qc6CJjYAAAAJ:JoZmwDi-zQgC: + citations: 29 + title: Das Raum-Feld-und Aether-Problem in der Physik + year: '1930' + qc6CJjYAAAAJ:K-tzbvM8PMoC: + citations: 0 + title: "Briefe zur Wellenmechanik: Schr\xF6dinger, Planck, Einstein, Lorentz" + year: '1963' + qc6CJjYAAAAJ:K3LRdlH-MEoC: + citations: 81 + title: Fundamental ideas and problems of the theory of relativity + year: '2009' + qc6CJjYAAAAJ:K4-iKlO5MD4C: + citations: 703 + title: A Heuristic Viewpoint Concerning the Production and Transformation of Light + year: '1929' + qc6CJjYAAAAJ:K6kyChav4UkC: + citations: 11 + title: Letter to Lincoln Barnett, quoted inThe concept of mass' by Lev Okum + year: '1948' + qc6CJjYAAAAJ:K8XpiWYAYk8C: + citations: 0 + title: "Mgr Aleksandra Ochman Tw\xF3rcze my\u015Blenie\u2013teoria i praktyka szkolna." + year: Unknown Year + qc6CJjYAAAAJ:K9zgXSuleLYC: + citations: 0 + title: 'The Myth of Consistent Skepticism: The Cautionary Case of Albert Einstein' + year: Unknown Year + qc6CJjYAAAAJ:KEHW5XCvxlQC: + citations: 6 + title: 'New Evidence of the Militarization of America: A Report' + year: '1949' + qc6CJjYAAAAJ:KFIQUvoPKFAC: + citations: 0 + title: Planck units and wave-particle duality + year: Unknown Year + qc6CJjYAAAAJ:KIRwYnRZzWQC: + citations: 6 + title: Why socialism? + year: '1951' + qc6CJjYAAAAJ:KOc9rAu6-V4C: + citations: 376 + title: letter to Max Born + year: '1926' + qc6CJjYAAAAJ:KQ7zX_ltr48C: + citations: 0 + title: 'Albert Einstein] to Romain Rolland: Letter, 22 Aug 1917' + year: Unknown Year + qc6CJjYAAAAJ:KUekCDWCRvQC: + citations: 0 + title: Physiology and Pathophysiology of the Heart + year: '1990' + qc6CJjYAAAAJ:KVXOKlNwS8oC: + citations: 61 + title: 'Briefwechsel [zwischen] Albert Einstein und Arnold Sommerfeld: sechzig Briefe aus dem goldenen Zeitalter der modernen Physik' + year: '1968' + qc6CJjYAAAAJ:Kaaf24wrr50C: + citations: 0 + title: "R\xF4le de l'\xE9thique dans l'oeuvre d'Einstein (\xE0 l'exemple de la m\xE9canique quantique)." + year: Unknown Year + qc6CJjYAAAAJ:KbeHZ-DlqmcC: + citations: 0 + title: Deposition in Divorce Proceedings, 23 Dec 1918 + year: Unknown Year + qc6CJjYAAAAJ:KjnAay3C9J8C: + citations: 5 + title: "Die spezielle Relativit\xE4sthorie" + year: '1912' + qc6CJjYAAAAJ:KlAtU1dfN6UC: + citations: 446 + title: On the Influence of Gravitation on the Propagation of Light + year: '1911' + qc6CJjYAAAAJ:KqnX2w3egDsC: + citations: 96 + title: "Vier Vorlesungen \xFCber Relativit\xE4tstheorie gehalten im Mai 1921 an der Universit\xE4t Princeton" + year: '1922' + qc6CJjYAAAAJ:Kr3pDLWb32UC: + citations: 2 + title: "Bemerkung zu der Notiz von W. Anderson\xBB Eine neue Erkl\xE4rung des kontinuierlichen Koronaspektrums \xAB" + year: '1923' + qc6CJjYAAAAJ:KxNY-X0OflYC: + citations: 9 + title: "La th\xE9orie du rayonnement et les quanta" + year: '1911' + qc6CJjYAAAAJ:L2Pn6qttGKUC: + citations: 0 + title: 'Albert Einstein] to Mileva Einstein-Maric: Letter, after 17 Mar 1918' + year: Unknown Year + qc6CJjYAAAAJ:L7JqRCIhofwC: + citations: 6624 + title: Sitzungsberichte der Preussischen Akademie der Wissenschaften zu Berlin + year: '1915' + qc6CJjYAAAAJ:L7vk9XBBNxgC: + citations: 11 + title: Emil Warburg als Forscher + year: '1922' + qc6CJjYAAAAJ:LA-8tw-JpD0C: + citations: 0 + title: "Probleme kann man niemals mit der gleichen Denkweise l\xF6sen durch die sie entstanden sind." + year: Unknown Year + qc6CJjYAAAAJ:LAaCg2gyLagC: + citations: 276 + title: Briefwechsel 1916-1955 + year: '1972' + qc6CJjYAAAAJ:LGA7_l5-FVwC: + citations: 125 + title: Preussiche Akademie der Wissenchaften Berlin + year: '1927' + qc6CJjYAAAAJ:LIyjJRbbAUMC: + citations: 0 + title: "Bei der Redaktion eingegangene B\xFCcher und Schriften." + year: '1916' + qc6CJjYAAAAJ:LNjCCq68lIgC: + citations: 8 + title: 'Relativity, Thermodynamics and Cosmology.(Scientific Books: Relativity, Thermodynamics and Cosmology)' + year: '1934' + qc6CJjYAAAAJ:LPZeul_q3PIC: + citations: 35 + title: "Beweis der Nichtexistenz eines \xFCberall regul\xE4ren zentrische symmetrischen Feldes nach der Feld-Theorie von Th. Kaluza" + year: '1923' + qc6CJjYAAAAJ:LSkeIYDkhQYC: + citations: 0 + title: Letter to a friend of peace + year: '1984' + qc6CJjYAAAAJ:LTdYzzxxQecC: + citations: 0 + title: 'Newton: the man' + year: '1972' + qc6CJjYAAAAJ:LWUVeqegjeYC: + citations: 0 + title: "Albert Einstein] to Constantin Carath\xE9odory: Letter, 10 Dec 1916" + year: Unknown Year + qc6CJjYAAAAJ:LWqeokA2EBkC: + citations: 79 + title: "\xDCber die G\xFCltigkeitsgrenze des Satzes vom thermodynamischen Gleichgewicht und \xFCber die M\xF6glichkeit einer neuen Bestimmung der Elementarquanta" + year: '1907' + qc6CJjYAAAAJ:LYDvBi7O6RsC: + citations: 0 + title: 'Albert Einstein] to Robert Heller: Letter, 20 Jul 1914' + year: Unknown Year + qc6CJjYAAAAJ:LYW2S8xaXYEC: + citations: 0 + title: A minor sidelight on a great man + year: '1956' + qc6CJjYAAAAJ:L_at8tGC9oEC: + citations: 52 + title: The Meaning of + year: '1969' + qc6CJjYAAAAJ:Lbh3VFZM3akC: + citations: 0 + title: 'Albert Einstein] to Hedwig Born: Letter, 8 Feb 1918' + year: Unknown Year + qc6CJjYAAAAJ:LkGwnXOMwfcC: + citations: 2993 + title: The foundation of the general theory of relativity + year: '1916' + qc6CJjYAAAAJ:LkrQC8aPkXYC: + citations: 5304 + title: 'Relativity: The Special and the General Theory: a Popular Exposition by Albert Einstein; Transl. by Robert W. Lawson' + year: '1961' + qc6CJjYAAAAJ:Lmuc1furtc4C: + citations: 0 + title: "Albert Einstein] to Rudolf F\xF6rster: Letter, 16 Nov 1917" + year: Unknown Year + qc6CJjYAAAAJ:LnJLeQ70pnUC: + citations: 0 + title: 'Albert Einstein] to Walter Schottky: Letter, 26 Sep 1917' + year: Unknown Year + qc6CJjYAAAAJ:LoiWQfKZB3kC: + citations: 14 + title: 'Albert Einstein] to Michele Besso: Letter, 3 Jan 1916' + year: Unknown Year + qc6CJjYAAAAJ:LpWf3qrnWeoC: + citations: 0 + title: 'Albert Einstein] to Walter Schottky: Letter, 23 Jun 1918' + year: Unknown Year + qc6CJjYAAAAJ:Lr5Uwm59ZTwC: + citations: 0 + title: VORLESUNGEN UBER SPEZIELLE RELATIVITATSTHEORIE + year: '1999' + qc6CJjYAAAAJ:LsccmWB6Ip4C: + citations: 0 + title: The Application of Catastrophe Theory + year: Unknown Year + qc6CJjYAAAAJ:LwieBGrN4GEC: + citations: 22 + title: Relativity, quanta, and cosmology in the development of the scientific thought of Albert Einstein + year: '1981' + qc6CJjYAAAAJ:LzOrNEA7mwcC: + citations: 0 + title: 'The Impact of modern scientific ideas on society: in commemoration of Einstein' + year: '1981' + qc6CJjYAAAAJ:M0j1y4EgrScC: + citations: 101 + title: "Thermodynamische Begr\xFCndung des photochemischen \xC4quivalentgesetzes" + year: '1912' + qc6CJjYAAAAJ:M0jDNLgoRFEC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 25 Aug 1916' + year: Unknown Year + qc6CJjYAAAAJ:M3NEmzRMIkIC: + citations: 84 + title: Two-body problem in general relativity theory + year: '1936' + qc6CJjYAAAAJ:M3ejUd6NZC8C: + citations: 423 + title: "Prinzipielles zur allgemeinen Relativit\xE4tstheorie" + year: '1918' + qc6CJjYAAAAJ:M8meJADSprsC: + citations: 197 + title: El significado de la relatividad + year: '1971' + qc6CJjYAAAAJ:MDX3w3dAD3YC: + citations: 909 + title: Zum quantensatz von Sommerfeld und Epstein + year: '1917' + qc6CJjYAAAAJ:MGPUR4WVBMEC: + citations: 82 + title: "Notiz zu der Arbeit von A. Friedmann \u201E\xDCber die Kr\xFCmmung des Raumes \u201C" + year: '1923' + qc6CJjYAAAAJ:ML0RJ9NH7IQC: + citations: 322 + title: New possibility for a unified field theory of gravitation and electricity + year: '1928' + qc6CJjYAAAAJ:MNNNGtAgD4EC: + citations: 17 + title: "Bemerkung zu dem Gesetz von E\xF6tv\xF6s" + year: '1911' + qc6CJjYAAAAJ:MTuJV9umhWMC: + citations: 0 + title: "Eine einfache Anwendung des Newtonschen Gravitationsgesetzes auf die kugelf\xF6rmigen Sternhaufen, ca. 18 M\xE4r 1921" + year: Unknown Year + qc6CJjYAAAAJ:MWSB05WFU5AC: + citations: 0 + title: "La corr\xE9lation de l'empirique et du rationnel dans l'oeuvre scientifique d'Einstein." + year: Unknown Year + qc6CJjYAAAAJ:MXK_kJrjxJIC: + citations: 638 + title: On a stationary system with spherical symmetry consisting of many gravitating masses + year: '1939' + qc6CJjYAAAAJ:MqTxh1vmwXEC: + citations: 2 + title: Physikalische Gesellschaft zu Berlin. Berlin, 12. Juni 1931 + year: '2006' + qc6CJjYAAAAJ:MvIMIWP2nqIC: + citations: 786 + title: 'The Collected Papers of Albert Einstein, Vol. 4: The Swiss Years: Writings, 1912-1914' + year: '1996' + qc6CJjYAAAAJ:Mx5hWS9ctUkC: + citations: 0 + title: Einstein's Collected Writings + year: '1960' + qc6CJjYAAAAJ:N6_Y7JlWxwsC: + citations: 41 + title: Physikalische Grundlagen einer Gravitationstheorie + year: '1914' + qc6CJjYAAAAJ:NAGhd4NKCV8C: + citations: 141 + title: "K\xF6niglich Preu\xDFische Akademie der Wissenschaften Berlin" + year: '1916' + qc6CJjYAAAAJ:NGoJ35N4lvkC: + citations: 40 + title: "Bemerkungen zu P. Harzers Abhandlung \xAB\xDCber die Mitf\xFChrung des Lichtes in Glas und die Aberration\xBB(AN 4748)" + year: '1914' + qc6CJjYAAAAJ:NJ774b8OgUMC: + citations: 22 + title: The advent of the quantum theory + year: '1951' + qc6CJjYAAAAJ:NM66qo_NnlUC: + citations: 925 + title: 'The Collected Papers of Albert Einstein: English Translation' + year: '1989' + qc6CJjYAAAAJ:NMxIlDl6LWMC: + citations: 9 + title: 'The Collected Papers of Albert Einstein, Volume 6: The Berlin Years: Writings, 1914-1917' + year: '1997' + qc6CJjYAAAAJ:NNXJ2mIwlScC: + citations: 6 + title: Albert Einstein, Michele Besso, correspondence, 1903-1955 + year: '1972' + qc6CJjYAAAAJ:NRnkAyzcrGMC: + citations: 0 + title: Gravitation of Spinning Matter as a Gauge Theory + year: Unknown Year + qc6CJjYAAAAJ:NU53l0vQ3PcC: + citations: 0 + title: "Ein einfaches Experiment zum Nachweis der Amp\xE8reschen Molekularstr\xF6me, 25 Feb 1916" + year: '1916' + qc6CJjYAAAAJ:NWFKKQzSIN4C: + citations: 4 + title: Besprechungen + year: '1914' + qc6CJjYAAAAJ:NXb4pA-qfm4C: + citations: 4 + title: 'Builders of the Universe: From the Bible to the Theory of Relativity' + year: '1932' + qc6CJjYAAAAJ:NYu48kWxaQAC: + citations: 14 + title: Albert Einstein] to Michele Besso:[A first] letter, 21 Jul 1916 + year: Unknown Year + qc6CJjYAAAAJ:NZNkWSpQBv0C: + citations: 72 + title: Zum Ehrenfestschen Paradoxon + year: '1910' + qc6CJjYAAAAJ:NnTm98qLMbgC: + citations: 573 + title: Mein weltbild + year: '1934' + qc6CJjYAAAAJ:Nnq8S6OXqDYC: + citations: 156 + title: "Allgemeine relativit\xE4tstheorie und bewegungsgesetz" + year: '1927' + qc6CJjYAAAAJ:Np1obAXpBq8C: + citations: 0 + title: 'Albert Einstein] to Hermann Weyl: Letter, 15 Apr 1918' + year: Unknown Year + qc6CJjYAAAAJ:Ns2bVKt8YxIC: + citations: 504 + title: Sidelights on Relativity,... I. Ether and Relativity. II. Geometry and Experience + year: '1922' + qc6CJjYAAAAJ:Nufq_to8ts0C: + citations: 194 + title: "Das Prinzip von der Erhaltung der Schwerpunktsbewegung und die Tr\xE4gheit der Energie" + year: '1906' + qc6CJjYAAAAJ:Nw5Pwe77XXAC: + citations: 0 + title: 'Albert Einstein] to Wilhelm Wien: Letter, 17 Oct 1916' + year: Unknown Year + qc6CJjYAAAAJ:Nw_I7GeUguwC: + citations: 166 + title: "Zur allgemeinen molekularen Theorie der W\xE4rme" + year: '1904' + qc6CJjYAAAAJ:NzUpm4bhSXQC: + citations: 2 + title: "Die Quantentheorie der spezifischen W\xE4rme" + year: '1967' + qc6CJjYAAAAJ:O0MA3yP7Y3UC: + citations: 236 + title: 'The Collected Papers of Albert Einstein, Volume 8: The Berlin Years: Correspondence, 1914-1918.' + year: '1998' + qc6CJjYAAAAJ:O3NaXMp0MMsC: + citations: 139 + title: How I created the theory of relativity + year: '1982' + qc6CJjYAAAAJ:OBae9N4Z9bMC: + citations: 22 + title: "L\u2019\xE9volution des id\xE9es en physique" + year: '1978' + qc6CJjYAAAAJ:OC7j4ufeY2cC: + citations: 0 + title: 'Albert Einstein] to Friedrich Adler: Letter, 20 Oct 1918' + year: Unknown Year + qc6CJjYAAAAJ:ODN9lDrI8hIC: + citations: 16 + title: Appendix II. Generalization of gravitation theory + year: '1953' + qc6CJjYAAAAJ:OLNndOjO69MC: + citations: 0 + title: 'Friedrich Wilhelm Foerster und Albert Einstein: Briefwechsel von 1935 bis 1954' + year: '2001' + qc6CJjYAAAAJ:OPs5gEIPXMUC: + citations: 7843 + title: On gravitational waves Sitzungsber. preuss + year: '1918' + qc6CJjYAAAAJ:OTTXONDVkokC: + citations: 3 + title: On the relativity problem + year: '2007' + qc6CJjYAAAAJ:OVe_t5h5bhEC: + citations: 267 + title: "Mi visi\xF3n del mundo" + year: '1985' + qc6CJjYAAAAJ:Oi-j_DTgP3cC: + citations: 3 + title: 'Einstein und Smoluchowski: Zur Geschichte der Brownschen Bewegung und der Opaleszenz' + year: '1969' + qc6CJjYAAAAJ:OiA2aNrLN7MC: + citations: 0 + title: The Rise and Fall of the Great Ether + year: '1993' + qc6CJjYAAAAJ:OlbiQ0ttILcC: + citations: 189 + title: "Las teor\xEDas de la relatividad" + year: '1922' + qc6CJjYAAAAJ:Ow2R9nchCv8C: + citations: 0 + title: "Albert Einstein] to Michael Pol\xE1nyi: Letter, 10 Feb 1915" + year: Unknown Year + qc6CJjYAAAAJ:OwUwxyS7Fk8C: + citations: 0 + title: On German Literature for Viola Da Gamba in the 16th and 17th Centuries + year: '1977' + qc6CJjYAAAAJ:P1qO8dLd1z8C: + citations: 199 + title: The Photoelectric Effect + year: '1905' + qc6CJjYAAAAJ:P9oYG7HA76QC: + citations: 14 + title: The military mentality + year: '1947' + qc6CJjYAAAAJ:PLWDSxI5WzYC: + citations: 41 + title: Deutsche Physikalische Gesellschaft + year: '1915' + qc6CJjYAAAAJ:PPAp3RzCAaIC: + citations: 61 + title: 'Briefwechsel: Albert Einstein, Arnold Sommerfeld: Sechzig Briefe Aus Dem Goldenen Zeitalter Der Modernen Physik' + year: '1968' + qc6CJjYAAAAJ:PQm_lTwdG-sC: + citations: 126 + title: "Einleitende Bemerkungen \xFCber Grundbegriffe (with French transl. Remarques pr\xE9liminaires sur les principes fondamentaux, by MA Tonnelat)" + year: '1953' + qc6CJjYAAAAJ:PVjk1bu6vJQC: + citations: 0 + title: "Einstein und sein Weltbild: Aufs\xE4tze und Vortr\xE4ge" + year: '1988' + qc6CJjYAAAAJ:PWMd_Z0sy-4C: + citations: 59 + title: "Th\xE9orie unitaire du champ physique" + year: '1930' + qc6CJjYAAAAJ:PbrqR9PZhrEC: + citations: 6 + title: "On Boltzmann\u2019s Principle and Some Immediate Consequences Thereof" + year: '2006' + qc6CJjYAAAAJ:PicmXY_cuE0C: + citations: 2 + title: ADDRESS BEFORE STUDENT BODY CALIFORNIA INSTITUTE OF TECHNOLOGY + year: '1938' + qc6CJjYAAAAJ:PoEJn1poz0QC: + citations: 269 + title: 'Wissenschaftlicher Briefwechsel Mit Bohr, Einstein, Heisenberg, Ua: Scientific Correspondence with Bohr, Einstein, Heisenberg, Ao Volume 1: 1919-1929. 1919-1929' + year: '1979' + qc6CJjYAAAAJ:Q7hiZQKJ-pAC: + citations: 249 + title: 'Cosmic religion: with other opinions and aphorisms' + year: '1931' + qc6CJjYAAAAJ:Q9ss7R9eeXsC: + citations: 11 + title: "Sulla teoria speciale e generale della relativit\xE0" + year: '1921' + qc6CJjYAAAAJ:QAsQKsfVUN4C: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 24 Dec 1917' + year: Unknown Year + qc6CJjYAAAAJ:QBXC_7Xd1GUC: + citations: 13 + title: 'The new physics: the route into the atomic age' + year: '1979' + qc6CJjYAAAAJ:QDEWnZBrHwAC: + citations: 0 + title: 'Albert Einstein] to Arnold Sommerfeld: Letter, after 1 Feb 1918' + year: Unknown Year + qc6CJjYAAAAJ:QI7uKX5mnFEC: + citations: 4 + title: "Cien a\xF1os de relatividad: Los art\xEDculos de Albert Einstein de 1905 y 1906" + year: '2004' + qc6CJjYAAAAJ:QIV2ME_5wuYC: + citations: 727 + title: Does the inertia of a body depend upon its energy-content? + year: '1905' + qc6CJjYAAAAJ:QKtdBID3u5MC: + citations: 39 + title: Einstein und das Universum + year: '1958' + qc6CJjYAAAAJ:QSG1pgF8pGAC: + citations: 0 + title: 'The Theory of Relativity in Contemporary Science: Papers Read at the Celebration of the Seventieth Birthday of Albert Einstein in Princeton, March 19, 1949' + year: '1949' + qc6CJjYAAAAJ:QUKcMBy53xEC: + citations: 0 + title: "L'actualit\xE9 constante de la th\xE9orie de gravitation d'Einstein." + year: Unknown Year + qc6CJjYAAAAJ:QXXbHxWZe5oC: + citations: 4 + title: My Attitude to Quantum Theory + year: '1950' + qc6CJjYAAAAJ:QYdC8u9Cj1oC: + citations: 12 + title: Special and General relativity + year: '1920' + qc6CJjYAAAAJ:Q_E8KsG3g9MC: + citations: 14 + title: Correspondencia (1916-1955) + year: '1999' + qc6CJjYAAAAJ:QaLwMs-zPFMC: + citations: 0 + title: "Notiz zu E. Schr\xF6dingers Arbeit\" Die Energiekomponenten des Gravitationsfeldes\", 5 Feb 1918" + year: Unknown Year + qc6CJjYAAAAJ:QbuKDewGlxwC: + citations: 0 + title: "La Th\xE9orie d'Einstein, ou La piperie relativiste" + year: '1928' + qc6CJjYAAAAJ:QhmGFXoqNHAC: + citations: 0 + title: 'Albert Einstein] to Hermann Weyl: Letter, 27 Sep 1918' + year: Unknown Year + qc6CJjYAAAAJ:QjNCP7ux8QYC: + citations: 5 + title: Mein Weltbild, Herausgegeben von Carl Seelig, Neue, vom Verfasser durchgesehene und wesentlich erweiterte Auflage + year: Unknown Year + qc6CJjYAAAAJ:Qo9Q-PfIzZ0C: + citations: 19 + title: "Observa\xE7\xF5es sobre a situa\xE7\xE3o atual da teoria da luz" + year: '1926' + qc6CJjYAAAAJ:QoN_6baHBqgC: + citations: 3 + title: Geometria ed esperienza1 + year: '1957' + qc6CJjYAAAAJ:Qovp55VTycgC: + citations: 0 + title: F. General relativity and its general covariance + year: Unknown Year + qc6CJjYAAAAJ:QppYajJO_VYC: + citations: 17 + title: "Albert Einstein und Johannes Stark: Briefwechsel und Verh\xE4ltnis der beiden Nobelpreistr\xE4ger" + year: '1966' + qc6CJjYAAAAJ:Qqt8gOYqc0UC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 14 Feb 1917' + year: Unknown Year + qc6CJjYAAAAJ:QuPaituDtm8C: + citations: 2 + title: CULTURE MUST BE ONE OF THE FOUNDATIONS FOR WORLD UNDERSTANDING'. + year: '1996' + qc6CJjYAAAAJ:Qwfv3SoyJx4C: + citations: 2 + title: "Physikalische Gesellschaft zu Berlin und Deutsche Gesellschaft f\xFCr technische Physik. Berlin, 17. Juli 1931" + year: '2006' + qc6CJjYAAAAJ:R3hNpaxXUhUC: + citations: 293 + title: "Lettres \xE0 Maurice Solovine" + year: '1956' + qc6CJjYAAAAJ:R6aXIXmdpM0C: + citations: 3 + title: Pourquoi le socialisme? + year: '1993' + qc6CJjYAAAAJ:RF4BjkDOTHkC: + citations: 974 + title: "Letters on Wave Mechanics: Correspondence with HA Lorentz, Max Planck, and Erwin Schr\xF6dinger" + year: '2011' + qc6CJjYAAAAJ:RJNGbXJAtMsC: + citations: 17 + title: 'The essential Einstein: his greatest works' + year: '2008' + qc6CJjYAAAAJ:RPps9qLA3-kC: + citations: 104 + title: Letter to Jacques Hadamard + year: '1952' + qc6CJjYAAAAJ:Rc-B-9qnGaUC: + citations: 0 + title: Bemerkungen iiber den Wandel der Problemstcllungen in der theoretischen Physik + year: Unknown Year + qc6CJjYAAAAJ:RfUwGJFMQ-0C: + citations: 4133 + title: Zur quantentheorie der strahlung + year: '1917' + qc6CJjYAAAAJ:RgMnzfD6kpIC: + citations: 14 + title: Only then shall we find courage + year: '1946' + qc6CJjYAAAAJ:RmQ8dt0hH3oC: + citations: 0 + title: "Buchbesprechungen \xFCber: Grundz\xFCge der Relativit\xE4tstheorie" + year: '1957' + qc6CJjYAAAAJ:RpHLKABnwqoC: + citations: 0 + title: "Berichtigung zur Abhandlung:\" \xDCber die elektromagnetischen Grundgleichungen f\xFCr bewegte K\xF6rper\", 24 Aug 1908" + year: Unknown Year + qc6CJjYAAAAJ:S0RksyIsHSIC: + citations: 0 + title: "Briefe zur Wellenmechanik: Mit 4 portr\xE4ts" + year: '1963' + qc6CJjYAAAAJ:S2WlVNSe3u4C: + citations: 129 + title: "Kinetische Theorie des W\xE4rmegleichgewichtes und des zweiten Hauptsatzes der Thermodynamik" + year: '1902' + qc6CJjYAAAAJ:S9V7H-Nz35UC: + citations: 7501 + title: On a Heuristic Point of View Toward the Emission and Transformation of Light + year: '1905' + qc6CJjYAAAAJ:SFOYbPikdlgC: + citations: 22 + title: Spaltung der natuerlichsten Feldgleichungen fuer Semi-Vektoren in Spinor-Gleichungen vom Dirac'schen Typus + year: '1933' + qc6CJjYAAAAJ:SLTdnKVCdHAC: + citations: 0 + title: 'Albert Einstein] to Wilhelm Wien: Letter, 18 Mar 1916' + year: Unknown Year + qc6CJjYAAAAJ:SPgoriM2DtkC: + citations: 10 + title: 'Albert Einstein] to Max Born: Letter, after 29 Jun 1918' + year: Unknown Year + qc6CJjYAAAAJ:S_Qw7xXuMuIC: + citations: 844 + title: 'The collected papers of Albert Einstein: The Berlin years: correspondence, January-December 1921' + year: '2009' + qc6CJjYAAAAJ:S_fw-_riRmcC: + citations: 10 + title: Albert einstein to max born + year: '2005' + qc6CJjYAAAAJ:Se3iqnhoufwC: + citations: 985 + title: The world as I see it + year: '2007' + qc6CJjYAAAAJ:SenaEjHFqFYC: + citations: 7 + title: The Structure of Scientific Thought + year: '1960' + qc6CJjYAAAAJ:Sg-YnEhjH50C: + citations: 0 + title: ALBERT EINSTEIN, UN HOMBRE UNIVERSAL + year: Unknown Year + qc6CJjYAAAAJ:ShjGdcaqzI0C: + citations: 190 + title: "\xDCber die elektromagnetischen Grundgleichungen f\xFCr bewegte K\xF6rper" + year: '1908' + qc6CJjYAAAAJ:Sipo1f_CKiIC: + citations: 0 + title: "Albert Einstein] to Walter D\xE4llenbach: Letter, after 15 Jun 1918" + year: Unknown Year + qc6CJjYAAAAJ:SpbQ_efOBbkC: + citations: 0 + title: 'Albert Einstein] to Wander and Geertruida de Haas: Letter, 3 Oct 1916' + year: Unknown Year + qc6CJjYAAAAJ:SrKkpNFED5gC: + citations: 418 + title: "Zum gegenw\xE4rtigen Stand des Strahlungsproblems" + year: '1909' + qc6CJjYAAAAJ:SrsqWtBqNIQC: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 25 Jan 1915' + year: Unknown Year + qc6CJjYAAAAJ:SxVRRePJDnEC: + citations: 0 + title: 'Albert Einstein] to Wladyslaw Natanson: Letter, 24 Aug 1915' + year: Unknown Year + qc6CJjYAAAAJ:SzsLJvG5eXAC: + citations: 2040 + title: Autobiographical Notes, ed + year: '1979' + qc6CJjYAAAAJ:T64LSalLz9oC: + citations: 0 + title: 'Albert Einstein] to Willem de Sitter: Letter, 23 Jan 1917' + year: Unknown Year + qc6CJjYAAAAJ:T8_be82Iz5gC: + citations: 158 + title: Zur Theorie des statischen Gravitationsfeldes + year: '2006' + qc6CJjYAAAAJ:TA1nTKmGtTgC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 19 Aug 1914' + year: Unknown Year + qc6CJjYAAAAJ:TFP_iSt0sucC: + citations: 79 + title: Letters on wave mechanics + year: '1967' + qc6CJjYAAAAJ:TGemctCAZTQC: + citations: 38 + title: The new field theory + year: '1929' + qc6CJjYAAAAJ:TIZ-Mc8IlK0C: + citations: 1102 + title: On the method of theoretical physics + year: '1934' + qc6CJjYAAAAJ:TKTY8N1AUUAC: + citations: 0 + title: 'Albert Einstein] to Wilhelm Wien: Letter, 28 Feb 1916' + year: Unknown Year + qc6CJjYAAAAJ:TNEldfgDb5MC: + citations: 786 + title: 'The Collected Papers of Albert Einstein, Vol. 4: The Swiss Years: Writings, 1912-1914' + year: '1996' + qc6CJjYAAAAJ:TXgqPU86QykC: + citations: 0 + title: Review of Publications-Out of My Later Years + year: '1950' + qc6CJjYAAAAJ:TeJ9juy8vcMC: + citations: 39 + title: On the Present State of the Problem of Gravitation + year: '2007' + qc6CJjYAAAAJ:TewouNez5YAC: + citations: 2 + title: "Filosofia e relativit\xE0" + year: '1965' + qc6CJjYAAAAJ:Tfl4UtY-dJUC: + citations: 66 + title: "Hamilton\u2019s principle and the general theory of relativity" + year: '1916' + qc6CJjYAAAAJ:TiIbgCYny7sC: + citations: 9035 + title: "Zur Elektrodynamik bewegter K\xF6rper" + year: Unknown Year + qc6CJjYAAAAJ:TmnWbB_axlEC: + citations: 84 + title: Untersuchungen uber die Theorie der Brownschen Bewegung + year: '1922' + qc6CJjYAAAAJ:ToZsFq5dof0C: + citations: 3 + title: "Les fondements de la th\xE9orie de la relativit\xE9 g\xE9n\xE9rale. Th\xE9orie unitaire de la gravitation et de l'electricit\xE9. Sur la structure cosmologique de l'espace." + year: '1934' + qc6CJjYAAAAJ:U5uP8zs9lfgC: + citations: 11 + title: Bemerkung zu E. Gehrckes Notiz + year: '1918' + qc6CJjYAAAAJ:UC7Jl7-kV0oC: + citations: 160 + title: Scientific papers presented to Max Born + year: '1953' + qc6CJjYAAAAJ:UEa65astgjsC: + citations: 0 + title: REPLY TO REICHENBACH 75 + year: '1953' + qc6CJjYAAAAJ:UFuRdyijzaAC: + citations: 0 + title: 'Albert Einstein] to Otto Naumann: Letter, 7 Dec 1915' + year: Unknown Year + qc6CJjYAAAAJ:ULOm3_A8WrAC: + citations: 322 + title: On the motion of particles in general relativity theory + year: '1949' + qc6CJjYAAAAJ:UO8fSLLLPykC: + citations: 4 + title: 'Albert Einstein] to Hedwig and Max Born: Letter, 2 Aug 1918' + year: Unknown Year + qc6CJjYAAAAJ:UOgPUojWnykC: + citations: 16 + title: Science and God + year: '1930' + qc6CJjYAAAAJ:UPMPWMAU16oC: + citations: 0 + title: Lecture Notes for Courses on Special Relativity at the University of Berlin and the University of Zurich, Winter Semester 1918-1919, 11 October 1918-second half of February 1919 + year: Unknown Year + qc6CJjYAAAAJ:USX2HHcnDqcC: + citations: 0 + title: "Bemerkung zu Herrn Schr\xF6dingers Notiz\" \xDCber ein L\xF6sungssystem der allgemein kovarianten Gravitationsgleichungen\", 3 M\xE4r 1918" + year: Unknown Year + qc6CJjYAAAAJ:UY3hNwcQ290C: + citations: 27 + title: "La teor\xEDa de la relatividad: Sus or\xEDgenes e impacto sobre el pensamiento moderno" + year: '1983' + qc6CJjYAAAAJ:UbXTy9l1WKIC: + citations: 0 + title: The Effect of Autonomous Algorithms on Networking + year: Unknown Year + qc6CJjYAAAAJ:UeHWp8X0CEIC: + citations: 66 + title: "Sobre la electrodin\xE1mica de los cuerpos en movimiento" + year: '2005' + qc6CJjYAAAAJ:UebtZRa9Y70C: + citations: 975 + title: "\xDCber die spezielle und die allgemeine Relativit\xE4tstheorie" + year: '2008' + qc6CJjYAAAAJ:UlRcoTO8nVoC: + citations: 0 + title: On a Jewish Palestine. First Version, before 27 Jun 1921 + year: Unknown Year + qc6CJjYAAAAJ:Ul_CLA4dPeMC: + citations: 212 + title: 'Religion and Science: Irreconcilable?' + year: '1948' + qc6CJjYAAAAJ:UnhBtiQKoKQC: + citations: 27 + title: 'The Swiss Years: Writing 1900-1909:...' + year: '1989' + qc6CJjYAAAAJ:UoSa6IK8DwsC: + citations: 14 + title: from The Einstein-Freud Correspondence (1931-1932) + year: '1960' + qc6CJjYAAAAJ:UuaQgmrAG1sC: + citations: 0 + title: 'Albert Einstein] to Michele Besso: Letter, 31 Oct 1916' + year: Unknown Year + qc6CJjYAAAAJ:Uwzdpet-joYC: + citations: 0 + title: 'Albert Einstein] to Arnold Sommerfeld: Letter, 28 Nov 1915' + year: Unknown Year + qc6CJjYAAAAJ:V0QqM0Py3VsC: + citations: 0 + title: Die Zuwanderung aus dem Osten Berliner Tageblatt, 30 Dez 1919 + year: Unknown Year + qc6CJjYAAAAJ:V8JMcbNWlSUC: + citations: 0 + title: Relating to relativity + year: '1940' + qc6CJjYAAAAJ:VBbLNo9YSJgC: + citations: 0 + title: 'Albert Einstein] to Wilhelm Wien: Letter, 15 Jun 1914' + year: Unknown Year + qc6CJjYAAAAJ:VGxY11nYJJYC: + citations: 0 + title: "Gen\xE8se de la conception de la gravitation g\xE9om\xE9trique tensorielle (1912-1913)." + year: Unknown Year + qc6CJjYAAAAJ:VJOaslTFpLQC: + citations: 0 + title: 'Albert Einstein] to Arnold Sommerfeld: Letter, 1 Jun 1918' + year: Unknown Year + qc6CJjYAAAAJ:VLnqNzywnoUC: + citations: 450 + title: "Das relativit\xE4tsprinzip: Eine sammlung von abhandlungen" + year: '1915' + qc6CJjYAAAAJ:VOx2b1Wkg3QC: + citations: 45 + title: "O princ\xEDpio da relatividade" + year: '1983' + qc6CJjYAAAAJ:VTkKiNFP83YC: + citations: 4 + title: "Relativit\xE0, Boringhieri" + year: '1960' + qc6CJjYAAAAJ:VXkaQG_c9EQC: + citations: 1 + title: "La educaci\xF3n y la Atenci\xF3n Primaria de la salud en la Complejidad Social" + year: Unknown Year + qc6CJjYAAAAJ:VaBbNeojGYwC: + citations: 0 + title: 'Einstein''s New Theory: Text of His Treatise' + year: '1929' + qc6CJjYAAAAJ:VdWZULf8Gq0C: + citations: 0 + title: Determinism in Classical and Quantal Physics by JM Jauch + year: '1973' + qc6CJjYAAAAJ:VfMbra648c4C: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 3 Mar 1916' + year: Unknown Year + qc6CJjYAAAAJ:VglVhKISWcQC: + citations: 7 + title: ON A HEURISTIC VIEWPOINT OF THE CREATION AND MODIFICATION OF LIGHT + year: '1905' + qc6CJjYAAAAJ:VjBpw8Hezy4C: + citations: 4 + title: Besprechungen + year: '1922' + qc6CJjYAAAAJ:VnuxuLaQPLMC: + citations: 50 + title: "Semi\u2010Vektoren und Spinoren" + year: '1932' + qc6CJjYAAAAJ:VoB_afVdn6EC: + citations: 0 + title: "Cuestiones fundamentales de la f\xEDsica contempor\xE1nea" + year: Unknown Year + qc6CJjYAAAAJ:Vxkav03X4woC: + citations: 1 + title: 'The collected papers of Albert Einstein. Vol 6, The Berlin years: writings, 1914-1917:[English translation]' + year: '2002' + qc6CJjYAAAAJ:VyOdxF-JhwgC: + citations: 253 + title: SB preuss + year: '1916' + qc6CJjYAAAAJ:VyewGSb6xwwC: + citations: 0 + title: 'Albert Einstein] to Wilhelm Wien: Letter, 2 Jun 1917' + year: Unknown Year + qc6CJjYAAAAJ:W1ZWpF0a3GIC: + citations: 1 + title: THE FREEDOM OF LEARNING. + year: '1936' + qc6CJjYAAAAJ:W6h41lW4BooC: + citations: 27 + title: "L'\xE9tat actuel du probl\xE8me des chaleurs sp\xE9cifiques" + year: '1912' + qc6CJjYAAAAJ:W7OEmFMy1HYC: + citations: 1606 + title: Lens-like action of a star by the deviation of light in the gravitational field + year: '1936' + qc6CJjYAAAAJ:WC4w5-ZrDNIC: + citations: 10 + title: "Textos fundamentais da f\xEDsica moderna" + year: '2001' + qc6CJjYAAAAJ:WD7AgJrCjNIC: + citations: 0 + title: La discussion Einstein-Bohr. + year: Unknown Year + qc6CJjYAAAAJ:WF5omc3nYNoC: + citations: 1035 + title: On gravitational waves + year: '1937' + qc6CJjYAAAAJ:WIVIxizkzXoC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 26 Dec 1915' + year: Unknown Year + qc6CJjYAAAAJ:WIXB4To3Tx4C: + citations: 111 + title: "Relativit\xE4t und gravitation. Erwiderung auf eine bemerkung von M. Abraham" + year: '1912' + qc6CJjYAAAAJ:WM2K3OHRCGMC: + citations: 218 + title: "Notas autobiogr\xE1ficas" + year: '2003' + qc6CJjYAAAAJ:WMtz-WDmgKQC: + citations: 59 + title: "Newtons Mechanik und ihr Einflu\xDF auf die Gestaltung der theoretischen Physik" + year: '1927' + qc6CJjYAAAAJ:WQTnNU6cpycC: + citations: 0 + title: 'Albert Einstein] to Geertruida de Haas: Letter, before 10 Apr 1915' + year: Unknown Year + qc6CJjYAAAAJ:WTSGYGHz1bkC: + citations: 0 + title: The collected papers of Albert Einstein. Vol. 11, Cumulative index, bibliography, list of correspondence, chronology, and errata to volumes 1-10 + year: Unknown Year + qc6CJjYAAAAJ:WY6AygvC5sMC: + citations: 0 + title: "Albert Einstein] to Walter D\xE4llenbach: Letter, 31 May 1915" + year: Unknown Year + qc6CJjYAAAAJ:WYtWvJut7doC: + citations: 0 + title: Reply to Welcome of Scientists of the California Institute of Technology in 1931 + year: '1949' + qc6CJjYAAAAJ:WgBxaE7EUScC: + citations: 0 + title: Autograph Manuscript of Einstein's Theory of Relativity + year: '1931' + qc6CJjYAAAAJ:WliCQ7fkH-wC: + citations: 49 + title: Emission and absorption of radiation according to the quantum theory + year: '1916' + qc6CJjYAAAAJ:WtgKeONp1i0C: + citations: 187 + title: "Lettres a Maurice Solovine: reprod. en facsimil\xE9 et trad. en fran\xE7aise: avec une introduction et trois photographies" + year: '1956' + qc6CJjYAAAAJ:WxjA8IQWSGYC: + citations: 0 + title: Dr. Einstein to Dean Muelder + year: '1955' + qc6CJjYAAAAJ:WzbvD7BMtBoC: + citations: 0 + title: 'Albert Einstein] to Wladyslaw Natanson: Letter, 14 Sep 1917' + year: Unknown Year + qc6CJjYAAAAJ:X-Dm1JipzzIC: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 18 Dec 1915' + year: Unknown Year + qc6CJjYAAAAJ:X1xEhyGaivYC: + citations: 1 + title: "Ged\xE4chtnisrede auf Karl Schwarzschild" + year: '2006' + qc6CJjYAAAAJ:X3EXpuCuTEcC: + citations: 0 + title: The collecteds of albert einstein v 9 the berlin years correspondence january 1919 april 1920 (hardback) + year: '2004' + qc6CJjYAAAAJ:X5QHDg3V9EEC: + citations: 2 + title: Science and synthesis + year: '1971' + qc6CJjYAAAAJ:X5YyAB84Iw4C: + citations: 297 + title: Philosopher-Scientist + year: '1970' + qc6CJjYAAAAJ:XK2cf6JOk9AC: + citations: 0 + title: 'Gefaehrliche Freundschaft: Konsens in schwieriger Zeit' + year: '1996' + qc6CJjYAAAAJ:XOE35tnTnDYC: + citations: 49 + title: Space-time + year: '1929' + qc6CJjYAAAAJ:XR3BWSlh_xcC: + citations: 14 + title: "Sobre la teor\xEDa especial y la teoria general de la relatividad" + year: '1983' + qc6CJjYAAAAJ:XUAslYVNQLQC: + citations: 266 + title: Relativita + year: '1960' + qc6CJjYAAAAJ:XWcFhoZvYIAC: + citations: 0 + title: "Problemy fiziki: klassika i sovremennost\u02B9" + year: '1982' + qc6CJjYAAAAJ:XX7pGhTe5MgC: + citations: 0 + title: 'Albert Einstein] to Paul Gruner: Letter, 11 Feb 1908' + year: Unknown Year + qc6CJjYAAAAJ:XZvG1uL-wj0C: + citations: 1148 + title: 'On the method of theoretical physics: The Herbert Spencer lecture, delivered at Oxford 10 June 1933' + year: '1933' + qc6CJjYAAAAJ:Xc-mKOjpdrwC: + citations: 0 + title: Relativistische Physik + year: Unknown Year + qc6CJjYAAAAJ:XdYaqolBBq8C: + citations: 30 + title: 'The Collected Papers of Albert Einstein, Volume 9: The Berlin Years: Correspondence, January 1919-April 1920' + year: '2004' + qc6CJjYAAAAJ:XdwVV_xN3QMC: + citations: 1463 + title: Draft of a Generalized Theory of Relativity and a Theory of Gravitation + year: '1913' + qc6CJjYAAAAJ:XeErXHja3Z8C: + citations: 14 + title: "\xDCber die Interferenzeigenschaften des durch Kanalstrahlen emittierten Lichtes" + year: '1926' + qc6CJjYAAAAJ:XfMaBeGYgSgC: + citations: 0 + title: 'Albert Einstein] to Wander and Geertruida de Haas: Letter, 10 Aug 1915' + year: Unknown Year + qc6CJjYAAAAJ:Xi1bsBfZRoQC: + citations: 0 + title: 'Reise nach Japan Palestine Spanien 6 Oktober 1922-12.3. 23: Various places' + year: '1923' + qc6CJjYAAAAJ:XiSMed-E-HIC: + citations: 67 + title: What I believe + year: '1956' + qc6CJjYAAAAJ:Xnn2mF3JXD4C: + citations: 72 + title: "Untersuchungen \xFCber die Theorie der Brownschen Bewegung" + year: '1922' + qc6CJjYAAAAJ:XtJa11BXPS4C: + citations: 35 + title: Atomic war or peace + year: '1947' + qc6CJjYAAAAJ:Xtec1x7NZGAC: + citations: 0 + title: Constante de Planck + year: Unknown Year + qc6CJjYAAAAJ:XzWLPxS1ir4C: + citations: 0 + title: "Research@ FrankfurtSchool in Zeiten der Finanzmarktkrise \u201EA Collection of Working Papers \u201C" + year: Unknown Year + qc6CJjYAAAAJ:Y0agIcFmOsQC: + citations: 1306 + title: A correction on my work-A new determination of molecular dimensions + year: '1969' + qc6CJjYAAAAJ:Y1W0x10ZrwMC: + citations: 0 + title: Nonlinear Partial Differential Equations with Applications + year: Unknown Year + qc6CJjYAAAAJ:Y3Sh7dCAXz0C: + citations: 6 + title: "Correspondance 1903-1955, publi\xE9e par P" + year: '1972' + qc6CJjYAAAAJ:Y6EZgx1ah38C: + citations: 0 + title: "L'\xE9lectron et la th\xE9orie de la relativit\xE9 g\xE9n\xE9rale" + year: '1997' + qc6CJjYAAAAJ:YEBtnu9hOHUC: + citations: 0 + title: "A Statement of Purpose by the Emergency Committee of Atomic Scientists Incorporated: Presented to the Friends of the Committee on Sunday, November Seventeenth, 1946, at the \u2026" + year: '1946' + qc6CJjYAAAAJ:YFjsv_pBGBYC: + citations: 56 + title: Essays in physics + year: '1950' + qc6CJjYAAAAJ:YK4ucWkmU_UC: + citations: 73 + title: 'Albert Einstein, the Human Side: New Glimpses from His Archives' + year: '1981' + qc6CJjYAAAAJ:YP-lgzILWVMC: + citations: 0 + title: 'Albert Einstein] to Mileva Einstein-Maric: Letter, 8 Apr 1916' + year: Unknown Year + qc6CJjYAAAAJ:YV61qt6iSr0C: + citations: 9 + title: "Los fundamentos de la geometr\xEDa" + year: '1948' + qc6CJjYAAAAJ:YXPZ0dOdYS4C: + citations: 2 + title: 'Einstein''s Zurich Notebook: Transcription and Facsimile' + year: '2007' + qc6CJjYAAAAJ:YZzzgH80nR8C: + citations: 29 + title: The Late Emmy Noether + year: '1935' + qc6CJjYAAAAJ:YbLjypsZzowC: + citations: 92 + title: "\xBF Por qu\xE9 la Guerra?" + year: '2001' + qc6CJjYAAAAJ:YiBZ6_7J9mkC: + citations: 0 + title: "THEORY OF RELATIVITY ON EINSTEIN: Einstein the Searcher. A. Moskowski. London, 1921. Albert Einstein. Anton Reiser. New York, 1930. Contemporary Immortals. A. Henderson. New \u2026" + year: '1938' + qc6CJjYAAAAJ:YiZc1oW-E3oC: + citations: 0 + title: 'Albert Einstein] to Otto Naumann: Letter, after 1 Oct 1915' + year: Unknown Year + qc6CJjYAAAAJ:Yo42cslQ7-cC: + citations: 20 + title: Physics, philosophy and scientific progress. + year: '1950' + qc6CJjYAAAAJ:YoqGh_aPxy4C: + citations: 79 + title: The common language of science + year: '1941' + qc6CJjYAAAAJ:YpRCXavlr0AC: + citations: 0 + title: 'Albert Einstein] to Michele and Anna Besso-Winteler: Letter, 1 Aug 1917' + year: Unknown Year + qc6CJjYAAAAJ:YsMSGLbcyi4C: + citations: 2308 + title: The particle problem in the general theory of relativity + year: '1935' + qc6CJjYAAAAJ:YvgfBAebZEkC: + citations: 0 + title: 'Notice to the world: renounce war or perish; world peace or universal death.[Sound recording]' + year: '1955' + qc6CJjYAAAAJ:Z5m8FVwuT1cC: + citations: 19 + title: Mi credo humanista + year: '1991' + qc6CJjYAAAAJ:ZDu_srLEjN8C: + citations: 145 + title: Preussische akademie der wissenschaften, Phys-math + year: '1925' + qc6CJjYAAAAJ:ZEcFV8kAgqMC: + citations: 0 + title: 'Albert Einstein] to Edgar Meyer: Letter, 30 Oct 1917' + year: Unknown Year + qc6CJjYAAAAJ:ZHR7-34Bl2wC: + citations: 0 + title: "Ged\xE4chtnisrede des Hrn. Einstein auf Karl Schwarzschild, 29 Jun 1916" + year: Unknown Year + qc6CJjYAAAAJ:ZHo1McVdvXMC: + citations: 1 + title: 'The collected papers of Albert Einstein. Vol. 3: The Swiss years: Writings 1909-1911; Vol. 5: The Swiss years: Correspondence 1902-1914' + year: '1993' + qc6CJjYAAAAJ:ZM__uENUXnMC: + citations: 0 + title: 'Albert Einstein] to the Council of Education: Letter, Canton of Zurich, 20 Jan 1908' + year: Unknown Year + qc6CJjYAAAAJ:ZWXmI6zqLYMC: + citations: 0 + title: "Bemerkung zu E. Gehrckes Notiz\" \xDCber den \xC4ther\", 29 Nov 1918" + year: Unknown Year + qc6CJjYAAAAJ:ZYLUaBFA95QC: + citations: 11 + title: 'Briefwechsel: Sechzig Briefe aus dem goldenen Zeitalter der modernen Physik' + year: '1968' + qc6CJjYAAAAJ:ZbQVaL1IMbQC: + citations: 631 + title: Quanzeml~ orie der stralllung + year: '1916' + qc6CJjYAAAAJ:ZbiiB1Sm8G8C: + citations: 14 + title: 'Albert Einstein] to Michele Besso: Letter, 6 Apr 1916' + year: Unknown Year + qc6CJjYAAAAJ:ZeXyd9-uunAC: + citations: 318 + title: "Physik und realit\xE4t" + year: '1936' + qc6CJjYAAAAJ:ZfRJV9d4-WMC: + citations: 94 + title: Pourquoi la guerre? + year: '1933' + qc6CJjYAAAAJ:ZgPQhQxLujAC: + citations: 6 + title: Mein Weltbild, hrsg. v + year: '1977' + qc6CJjYAAAAJ:Zk83zdSX4-UC: + citations: 5 + title: "L'\xE9vidence de la th\xE9orie de Einstein" + year: '1923' + qc6CJjYAAAAJ:ZnWe2zbntUIC: + citations: 2 + title: 'Relativiteit: speciale en algemene theorie' + year: '1986' + qc6CJjYAAAAJ:Zph67rFs4hoC: + citations: 396 + title: "Grundz\xFCge der Relativit\xE4tstheorie" + year: '2002' + qc6CJjYAAAAJ:ZppSRAJs3i8C: + citations: 5 + title: 'Albert Einstein] to Moritz Schlick: Letter, 6 Feb 1917' + year: Unknown Year + qc6CJjYAAAAJ:ZuSUVyMx-TgC: + citations: 0 + title: 'Albert Einstein] to David Hilbert: Letter, 30 May 1916' + year: Unknown Year + qc6CJjYAAAAJ:ZysSsiWj_g4C: + citations: 21 + title: "Bemerkungen \xFCber periodische Schwankungen der Mondl\xE4nge, welche bisher nach der Newtonschen Mechanik nicht erkl\xE4rbar erschienen" + year: '1919' + qc6CJjYAAAAJ:_8B_re9sV0EC: + citations: 0 + title: 'Albert Einstein] to Romain Rolland: Letter, 15 Sep 1915' + year: Unknown Year + qc6CJjYAAAAJ:_8F20clBW_QC: + citations: 3 + title: Gelegentliches von Albert Einstein + year: '1929' + qc6CJjYAAAAJ:_9Xh93LWpsYC: + citations: 43 + title: "\xDCber Friedrich Kottlers Abhandlung \u201C\xDCber Einsteins \xC4quivalenzhypothese und die Gravitation\u201D" + year: '1916' + qc6CJjYAAAAJ:_IsBomjs8bsC: + citations: 26 + title: "Lassen sich Brechungsexponenten der K\xF6rper f\xFCr R\xF6ntgenstrahlen experimentell ermitteln?" + year: '1918' + qc6CJjYAAAAJ:_Nt1UvVys9QC: + citations: 23 + title: Gravitational and electromagnetic fields + year: '1931' + qc6CJjYAAAAJ:_Re3VWB3Y0AC: + citations: 135 + title: 'Einstein and the Poet: In Search of the Cosmic Man' + year: '1983' + qc6CJjYAAAAJ:_Ybze24A_UAC: + citations: 17 + title: The collected works of Bernhard Riemann + year: '1953' + qc6CJjYAAAAJ:_axFR9aDTf0C: + citations: 6 + title: Theoretical remark on the superconductivity of metals + year: '2005' + qc6CJjYAAAAJ:_bh1rdP-zDcC: + citations: 43 + title: "Die Diracgleichungen f\xFCr Semivektoren" + year: '1933' + qc6CJjYAAAAJ:_inCrQx-FbQC: + citations: 0 + title: "Depuis le principe d'\xE9quivalence jusqu'aux \xE9quations de la gravitation." + year: Unknown Year + qc6CJjYAAAAJ:_kc_bZDykSQC: + citations: 409 + title: A generalization of the relativistic theory of gravitation + year: '1945' + qc6CJjYAAAAJ:_mQi-xiA4oYC: + citations: 459 + title: "Die Relativit\xE4ts-Theorie" + year: '1911' + qc6CJjYAAAAJ:a2necdfpwlEC: + citations: 155 + title: "Eine Beziehung zwischen dem elastischen Verhalten und der spezifischen W\xE4rme bei festen K\xF6rpern mit einatomigem Molek\xFCl" + year: '1911' + qc6CJjYAAAAJ:a9-T7VOCCH8C: + citations: 3782 + title: The Science and the Life of Albert Einstein + year: '1982' + qc6CJjYAAAAJ:aDdGf5um_jkC: + citations: 0 + title: 'Albert Einstein] to Gustav Mie: Letter, 2 Jun 1917' + year: Unknown Year + qc6CJjYAAAAJ:aEPHIGigqugC: + citations: 4285 + title: "Physics and Reality, in \u201CIdeas and Opinions\u201D" + year: '1954' + qc6CJjYAAAAJ:aEyKTaVlRPYC: + citations: 10 + title: El mundo tal como yo lo veo + year: '1989' + qc6CJjYAAAAJ:aKos2Y7kUz0C: + citations: 107 + title: letter to Ernst Mach + year: '1923' + qc6CJjYAAAAJ:aMQnNzTHVu4C: + citations: 7 + title: 'Essays in Science (New York: Philosophical Library, 1934)' + year: Unknown Year + qc6CJjYAAAAJ:aXI_bbQgCfgC: + citations: 168 + title: "Die Ursache der M\xE4anderbildung der Flu\xDFl\xE4ufe und des sogenannten Baerschen Gesetzes" + year: '1926' + qc6CJjYAAAAJ:aXwx4OqTWR4C: + citations: 0 + title: Einstein Appeals for War Resisters + year: '1932' + qc6CJjYAAAAJ:abCsMXLaarkC: + citations: 8 + title: "Religi\xF3n y ciencia" + year: '2000' + qc6CJjYAAAAJ:abG-DnoFyZgC: + citations: 293 + title: The fundamentals of theoretical physics + year: '1950' + qc6CJjYAAAAJ:ace9KxS0p5UC: + citations: 284 + title: Zur theorie der lichterzeugung und lichtabsorption + year: '1906' + qc6CJjYAAAAJ:adHtZc2wMuEC: + citations: 129 + title: "Neue M\xF6glichkeit f\xFCr eine einheitliche Feldtheorie von Gravitation und Elektrizit\xE4t" + year: '1928' + qc6CJjYAAAAJ:adgdM4TzidAC: + citations: 184 + title: "Sur l'\xE9lectrodynamique des corps en mouvement" + year: '1905' + qc6CJjYAAAAJ:ae0xyBWlIcIC: + citations: 0 + title: "Albert Einstein] to Michael Pol\xE1nyi: Letter, 6 Jul 1915" + year: Unknown Year + qc6CJjYAAAAJ:afceBpUbn5YC: + citations: 59 + title: Atomic education urged by Einstein + year: '1946' + qc6CJjYAAAAJ:afcu1OVO0wMC: + citations: 10 + title: Autobiographical notes (1949) + year: Unknown Year + qc6CJjYAAAAJ:afsF9h1fxg0C: + citations: 2 + title: Physical meaning of geometrical propositions + year: '1961' + qc6CJjYAAAAJ:b9WrW9Envh0C: + citations: 0 + title: 'Albert Einstein Letter: Princeton, NJ, to JN Smith, Laguna Beach, Calif' + year: '1950' + qc6CJjYAAAAJ:bB6ab1qDjH0C: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 26 Nov 1916' + year: Unknown Year + qc6CJjYAAAAJ:bCjgOgSFrM0C: + citations: 1218 + title: "Die plancksche theorie der strahlung und die theorie der spezifischen w\xE4rme" + year: '1906' + qc6CJjYAAAAJ:bEWYMUwI8FkC: + citations: 284 + title: Why war? + year: '1933' + qc6CJjYAAAAJ:bFuYayV9R1gC: + citations: 0 + title: GENERAL RELATIVITY VERSUS QUANTUM THEORY + year: Unknown Year + qc6CJjYAAAAJ:bNEIKWRbVi8C: + citations: 0 + title: King's College Lecture, before 13 Jun 1921 + year: Unknown Year + qc6CJjYAAAAJ:bO_hriczGZwC: + citations: 0 + title: 'Albert Einstein] to Adolf von Harnack: Letter, 6 Oct 1917' + year: Unknown Year + qc6CJjYAAAAJ:bQkGhl1z2hUC: + citations: 0 + title: 'Albert Einstein] to Paul Hertz: Letter, 22 Aug 1915' + year: Unknown Year + qc6CJjYAAAAJ:bUu3lypoyhcC: + citations: 680 + title: On the quantum theory of radiation + year: '1972' + qc6CJjYAAAAJ:bcT4vkklUMwC: + citations: 0 + title: "Briefe zur Wellenmechanik: Schr\xF6dinger, Planck, Einstein, Lorentz; mit 4 Portr" + year: '1963' + qc6CJjYAAAAJ:bczYY1dZPtQC: + citations: 93 + title: "M\xE9thode pour la d\xE9termination de valeurs statistiques d'observations concernant des grandeurs soumises a des fluctuations irr\xE9guli\xE8res" + year: '1914' + qc6CJjYAAAAJ:bf7w-NijnqMC: + citations: 14 + title: Kinetic theory of thermal equilibrium and of the second law of thermodynamics + year: '1902' + qc6CJjYAAAAJ:bgW0xdllhO4C: + citations: 17 + title: Personal God Concept Causes Science-Religion Conflict + year: '1940' + qc6CJjYAAAAJ:bjlTY1bLvvcC: + citations: 0 + title: So You Want to + year: '2003' + qc6CJjYAAAAJ:blknAaTinKkC: + citations: 165 + title: "Zur Theorie der Radiometerkr\xE4fte" + year: '1924' + qc6CJjYAAAAJ:bnK-pcrLprsC: + citations: 30 + title: Unified field theory based on Riemannian metrics and distant parallelism + year: '1930' + qc6CJjYAAAAJ:boGf3zyra0UC: + citations: 0 + title: 'The collected papers of Albert Einstein. vol. 9, The Berlin years: correspondence, January 1919-April 1920:[English translation]' + year: Unknown Year + qc6CJjYAAAAJ:brChLMnLtjYC: + citations: 161 + title: Relativity Principle and its Consequences in Modern Physics. Collection of Scientific Works, V. 1 + year: '1965' + qc6CJjYAAAAJ:bsl25C5uMOsC: + citations: 26 + title: Field theories, old and new + year: '1960' + qc6CJjYAAAAJ:btULBOGQ_gcC: + citations: 0 + title: 'Albert Einstein] to Erwin Freundlich: Letter, 3 Sep 1917' + year: Unknown Year + qc6CJjYAAAAJ:bxbQgRQgr4sC: + citations: 0 + title: Selected works of Einstein with historical commentaries + year: '1979' + qc6CJjYAAAAJ:bz8QjSJIRt4C: + citations: 0 + title: 'Relativity: an interpretation of Einstein''s theory' + year: '1931' + qc6CJjYAAAAJ:c3oc_9pK2TEC: + citations: 9 + title: The Fight Against War + year: '1933' + qc6CJjYAAAAJ:c4A-nLdbYHEC: + citations: 1565 + title: 'Concepts of space: The history of theories of space in physics' + year: '1969' + qc6CJjYAAAAJ:c5LcigzBm8MC: + citations: 0 + title: 'Albert Einstein] to Heinrich Zangger: Letter, 24 Jun 1918' + year: Unknown Year + qc6CJjYAAAAJ:cB__R-XWw9UC: + citations: 147 + title: "Aus meinen sp\xE4ten Jahren" + year: '1952' + qc6CJjYAAAAJ:cG0OFEevkNgC: + citations: 0 + title: 'In Memory of Emmy Noether...: Abstract of Address Delivered by Professor Hermann Weyl... and Copy of Letter of Professor Albert Einstein' + year: '1935' + qc6CJjYAAAAJ:cNe27ouKFcQC: + citations: 7262 + title: "Die grundlage der allgemeinen relativit\xE4tstheorie" + year: '2006' + qc6CJjYAAAAJ:cOfwuRB03ygC: + citations: 3 + title: "Die spezielle relativit\xE4tstheorie Einsteins und die logik" + year: '1924' + qc6CJjYAAAAJ:cRMvf6lLvU8C: + citations: 271 + title: "Einige Argumente f\xFCr die Annahme einer molekularen Agitation beim absoluten Nullpunkt" + year: '1913' + qc6CJjYAAAAJ:cSdaV2aYdYsC: + citations: 425 + title: Spielen Gravitationsfelder im Aufbau der materiellen Elementarteilchen eine wesentliche Rolle? + year: '1919' + qc6CJjYAAAAJ:cTdzRpWJKHEC: + citations: 104 + title: Sitsungsber. Preus. Akad. Wiss + year: '1915' + qc6CJjYAAAAJ:caH3YpRUWsIC: + citations: 0 + title: Theories and sociology of the history of science + year: Unknown Year + qc6CJjYAAAAJ:cdM53WF7QocC: + citations: 14 + title: 'Albert Einstein] to Michele Besso: Letter, 9 Mar 1917' + year: Unknown Year + qc6CJjYAAAAJ:cjagZD1ri60C: + citations: 260 + title: On the present status of the radiation problem + year: '1909' + qc6CJjYAAAAJ:co-xmOEWlm8C: + citations: 0 + title: Physical Principles of Sensing + year: Unknown Year + qc6CJjYAAAAJ:coeFWI40FR8C: + citations: 3 + title: Letter on the creative process + year: '1971' + qc6CJjYAAAAJ:cvMPO0XfNn8C: + citations: 0 + title: "cr\xE9ateur et rebelle" + year: '1972' + qc6CJjYAAAAJ:cww_0JKUTDwC: + citations: 169 + title: Eine Theorie der Grundlagen der Thermodynamik + year: '1903' + qc6CJjYAAAAJ:cxS_fjKIGZMC: + citations: 0 + title: 'Einstein, the Man, the Jew: Excerpts from His Articles, Speeches and Statements' + year: '1955' + qc6CJjYAAAAJ:d4Uf0zfqV5IC: + citations: 0 + title: "Signification de la relativit\xE9: appendice \xE0 la cinqui\xE8me \xE9dition de\" The meaning of relativity\"(d\xE9cembre 1954). Compl\xE9ments" + year: '1960' + qc6CJjYAAAAJ:d4tt_xEv1X8C: + citations: 221 + title: Lichtgeschwindigkeit und statik des Gravitationsfeldes + year: '1912' + qc6CJjYAAAAJ:d6JCS5z0ckYC: + citations: 4 + title: The establishment of an international bureau of meteorology + year: '1927' + qc6CJjYAAAAJ:dBIO0h50nwkC: + citations: 44 + title: Physics & reality + year: '2003' + qc6CJjYAAAAJ:dDz6LBb16w8C: + citations: 18 + title: The work and personality of Walther Nernst + year: '1942' + qc6CJjYAAAAJ:dFKc6_kCK1wC: + citations: 8 + title: "Bemerkung zu der Abhandlung von E. Trefftz:\u201CDas statische Gravitationsfeld zweier Massenpunkte in der Einsteinschen Theorie\u201D" + year: '2006' + qc6CJjYAAAAJ:dJ-sGqsME_YC: + citations: 9 + title: "Correspondence 1903\u20131955, ed" + year: '1972' + qc6CJjYAAAAJ:dTyEYWd-f8wC: + citations: 186 + title: "L'\xE9volution des id\xE9es en physique: des premiers concepts aux th\xE9ories de la relativit\xE9 et des quanta" + year: '1948' + qc6CJjYAAAAJ:dX-nQPao9noC: + citations: 0 + title: "Quelques explications concernant les d\xE9placements\" rouges\" dans les spectres des galaxies lointaines." + year: Unknown Year + qc6CJjYAAAAJ:dY-VugTTHzcC: + citations: 0 + title: "L'Heure H at-elle sonn\xE9 pour le monde?: effets accumulatifs des explosions nucl\xE9aires. Pr\xE9c\xE9d\xE9 d'un Message de Albert Einstein" + year: '1955' + qc6CJjYAAAAJ:dZbaGXT4iR0C: + citations: 40 + title: Education + year: '1950' + qc6CJjYAAAAJ:dgXhHFWAKKUC: + citations: 10 + title: 'Albert Einstein] to Max Born: Letter, after 3 Jul 1918' + year: Unknown Year + qc6CJjYAAAAJ:dhFuZR0502QC: + citations: 199 + title: 'Corrections and additional remarks to our paper: The influence of the expansion of space on the gravitation fields surrounding the individual stars' + year: '1946' + qc6CJjYAAAAJ:dhZ1Wuf5EGsC: + citations: 0 + title: "Continuous Symmetries and Conservation Laws. Noether\u2019s Theorem" + year: Unknown Year + qc6CJjYAAAAJ:dpaHy1TF288C: + citations: 0 + title: 'Albert Einstein] to Conrad Habicht: Letter, 14 Dec 1909' + year: Unknown Year + qc6CJjYAAAAJ:dtdq7L-L3iMC: + citations: 0 + title: Early life and education + year: Unknown Year + qc6CJjYAAAAJ:e3CVSTJ63dQC: + citations: 7 + title: "Der gegenw\xE4rtige Stand der Relativit\xE4tstheorie..." + year: '1931' + qc6CJjYAAAAJ:e3UXjaW_PBUC: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 4 Nov 1915' + year: Unknown Year + qc6CJjYAAAAJ:e84hm74t-eoC: + citations: 5713 + title: "Eine neue bestimmung der molek\xFCldimensionen" + year: '1906' + qc6CJjYAAAAJ:eAUscmXIlQ8C: + citations: 29 + title: Nichteuklidische Geometrie und Physik + year: '1925' + qc6CJjYAAAAJ:eCFM_hdDfssC: + citations: 0 + title: The equivalence of gravitational and inertial mass + year: Unknown Year + qc6CJjYAAAAJ:eGJUmgNLeWAC: + citations: 4 + title: Besprechungen + year: '1918' + qc6CJjYAAAAJ:eJXPG6dFmWUC: + citations: 489 + title: The theory of relativity + year: '1996' + qc6CJjYAAAAJ:eKGuBlYFiu8C: + citations: 0 + title: "L'\xE9lectronique quantique et la th\xE9orie d'irradiation d'Einstein." + year: Unknown Year + qc6CJjYAAAAJ:eMMeJKvmdy0C: + citations: 12 + title: Det Moderne Verdensbillede + year: '1939' + qc6CJjYAAAAJ:ealulPZkXgsC: + citations: 3 + title: Expectations of a definite form + year: '1950' + qc6CJjYAAAAJ:ec1XJgWlWRUC: + citations: 0 + title: Relational, Linear-Time Communication for Replication + year: Unknown Year + qc6CJjYAAAAJ:ehoypfNsBj8C: + citations: 20 + title: Antwort auf vorstehende Betrachtung + year: '1920' + qc6CJjYAAAAJ:eiwtZcG9oBcC: + citations: 0 + title: 'A Letter from Einstein: Praises Dean Muelder''s Distinguished Lecture" The Idea of the Responsible Society"' + year: '1955' + qc6CJjYAAAAJ:eq2jaN3J8jMC: + citations: 66 + title: "\xDCber den Frieden: Weltordnung oder Weltuntergang?" + year: '1976' + qc6CJjYAAAAJ:esGtpfCv0y8C: + citations: 0 + title: Butsurigaku wa ikani tsukuraretaka + year: '1962' + qc6CJjYAAAAJ:evX43VCCuoAC: + citations: 300 + title: 'Scientific Correspondence with Bohr, Einstein, Heisenberg and Others...: 1919-1929' + year: '1979' + qc6CJjYAAAAJ:f-E_jMG6T4AC: + citations: 0 + title: La correspondance entre Einstein et De Broglie. + year: Unknown Year + qc6CJjYAAAAJ:f13iAvnbnnYC: + citations: 0 + title: PROBABILITY AND STOCHASTIC PROCESSES + year: Unknown Year + qc6CJjYAAAAJ:f14mYpCygl4C: + citations: 0 + title: "Kritisches zu einer von Hrn. De Sitter gegebenen L\xF6sung der Gravitationsgleichungen, 7 M\xE4r 1918" + year: Unknown Year + qc6CJjYAAAAJ:f2IySw72cVMC: + citations: 39 + title: Briefe an Maurice Solovine + year: '1960' + qc6CJjYAAAAJ:f36TrmluGJsC: + citations: 0 + title: 'Albert Einstein] to Otto Stern: Letter, after 4 Jun 1914' + year: Unknown Year + qc6CJjYAAAAJ:f8T_-ThkUo0C: + citations: 0 + title: "Histoire de la compr\xE9hension de l'origine du spectre infrarouge (1912-1920)(II)." + year: Unknown Year + qc6CJjYAAAAJ:f9jR0vFhilIC: + citations: 0 + title: "Sushchnost\u02B9 teorii otnositel\u02B9nosti: Perevod s angli\u012Dskogo" + year: '1955' + qc6CJjYAAAAJ:fEOibwPWpKIC: + citations: 150 + title: "\xDCber den \xC4ther" + year: '1924' + qc6CJjYAAAAJ:fHS53ZCY-AEC: + citations: 0 + title: 'Albert Einstein] to Kathia Adler: Letter, 20 Feb 1917' + year: Unknown Year + qc6CJjYAAAAJ:fLJJVVwU7EQC: + citations: 268 + title: "Ein einfaches Experiment zum Nachweis der Amp\xE8reschen Molekularstr\xF6me" + year: '1916' + qc6CJjYAAAAJ:fPk4N6BV_jEC: + citations: 66 + title: "Sobre a eletrodin\xE2mica dos corpos em movimento" + year: '1983' + qc6CJjYAAAAJ:fSKd39tHJ84C: + citations: 0 + title: To Prevent Misunderstanding + year: '1949' + qc6CJjYAAAAJ:fTLh7q_iUBEC: + citations: 40 + title: "Bemerkungen zu P. Harzers Abhandlung\xBB \xDCber die Mitf\xFChrung des Lichtes in Glas und die Aberration \xAB." + year: '1914' + qc6CJjYAAAAJ:fXCg-C-QWH4C: + citations: 0 + title: "Albert Einstein, o lado humano: r\xE1pidas vis\xF5es colhidas em seus arquivos" + year: '1979' + qc6CJjYAAAAJ:fZtrMt_Z7PsC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, beginning Dec 1914' + year: Unknown Year + qc6CJjYAAAAJ:fh7vmlWxvT0C: + citations: 61 + title: 'Albert Einstein/Arnold Sommerfeld: Briefwechsel: Sechzig Briefe aus dem goldenen Zeitalter der modernen Physik' + year: '1968' + qc6CJjYAAAAJ:fixghrsIJ_wC: + citations: 0 + title: L'assoluto nella teoria di Einstein + year: '1923' + qc6CJjYAAAAJ:fveVehIkgekC: + citations: 0 + title: The Collected Papers of Albert Einstein, Vol. 6 The Berlin Years 1914-1917 + year: '1998' + qc6CJjYAAAAJ:g-FVFPYC6a8C: + citations: 0 + title: Does Nature Violate Local Realism? + year: '1997' + qc6CJjYAAAAJ:g2bnS7N2_ggC: + citations: 29 + title: Testimorial from Professor Einstein (Appendix II) + year: '1945' + qc6CJjYAAAAJ:g2zAJ5Cw7N4C: + citations: 85 + title: On the limit of validity of the law of thermodynamic equilibrium and on the possibility of a new determination of the elementary quanta + year: '1907' + qc6CJjYAAAAJ:g5m5HwL7SMYC: + citations: 144 + title: TIME, SPACE, AND GRAVITATION. + year: '1920' + qc6CJjYAAAAJ:gKLIUvgTho8C: + citations: 28 + title: "Comment on the Paper by WR He\xDF,\u2018Contribution to the theory of the viscosity of heterogeneous systems,\u2019" + year: '1920' + qc6CJjYAAAAJ:gNsIjQZ6FscC: + citations: 86 + title: Letter + year: '1934' + qc6CJjYAAAAJ:gUOu-QWEMMQC: + citations: 7 + title: Zu Dr. Berliners siebzigstem Geburtstag + year: '1932' + qc6CJjYAAAAJ:gV6rEsy15s0C: + citations: 3521 + title: Bemerkungen zu der Arbeit + year: '1914' + qc6CJjYAAAAJ:gYAb_yFic6IC: + citations: 32 + title: Zur Methodik der Theoretischen Physik + year: '1934' + qc6CJjYAAAAJ:gmHTDCtJMcoC: + citations: 159 + title: "Folgerungen aus den Capillarit\xE4tserscheinungen" + year: '1901' + qc6CJjYAAAAJ:gqMmJtG4vxUC: + citations: 14 + title: 'Albert Einstein] to Michele Besso: Letter, 10 Dec 1915' + year: Unknown Year + qc6CJjYAAAAJ:h0mLeC6b6wcC: + citations: 18 + title: Electrons et photons + year: '1928' + qc6CJjYAAAAJ:h7-KW5G1enMC: + citations: 119 + title: Induktion und Deduktion in der Physik + year: '1919' + qc6CJjYAAAAJ:hB2aVRuWZNwC: + citations: 5 + title: "Ejn\u0161tejnovskaja teorija otnosite\u013Enosti" + year: '1972' + qc6CJjYAAAAJ:hEXC_dOfxuUC: + citations: 394 + title: Reply to critics + year: '1949' + qc6CJjYAAAAJ:hEp1lTclR2YC: + citations: 314 + title: On the generalized theory of gravitation + year: '1950' + qc6CJjYAAAAJ:hKjooKYXoHIC: + citations: 56 + title: "\xDCber die formale Beziehung des Riemannschen Kr\xFCmmungstensors zu den Feldgleichungen der Gravitation" + year: '1927' + qc6CJjYAAAAJ:hMod-77fHWUC: + citations: 5114 + title: "La relativit\xE9" + year: '1964' + qc6CJjYAAAAJ:hMwNgRnlwaMC: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, 10 Sep 1914' + year: Unknown Year + qc6CJjYAAAAJ:hTqO-V9ugBQC: + citations: 184 + title: "Sur l'\xE9lectrodynamique des corps en mouvement" + year: '1965' + qc6CJjYAAAAJ:hUq98zRk74IC: + citations: 15 + title: EddingtonsTheorie und Hamiltonsches Prinzip + year: '1925' + qc6CJjYAAAAJ:hVd5agGqjXwC: + citations: 382 + title: Physikalische Gesellschaft Zuerich + year: '1916' + qc6CJjYAAAAJ:hbz17DqrwuEC: + citations: 149 + title: Notiz zu unserer Arbeit + year: '1915' + qc6CJjYAAAAJ:hcF2OqvMasEC: + citations: 125 + title: Warum Krieg? + year: '1933' + qc6CJjYAAAAJ:he8YCnfqqkoC: + citations: 37 + title: "Rapports et Discussions du Cinqui\xE8me Conseil Solvay" + year: '1928' + qc6CJjYAAAAJ:hegzVdMJwJYC: + citations: 0 + title: "Quelques probl\xE8mes touchant les recherches sur Einstein" + year: Unknown Year + qc6CJjYAAAAJ:hfzGNhXhx5MC: + citations: 231 + title: "Dialog \xFCber Einw\xE4nde gegen die Relativit\xE4tstheorie" + year: '1918' + qc6CJjYAAAAJ:htV_5D2kmyYC: + citations: 32 + title: The way out + year: '1946' + qc6CJjYAAAAJ:htyGaKyDgHMC: + citations: 31 + title: "Zwei strenge statische L\xF6sungen der Feldgleichungen der einheitlichen Feldtheorie" + year: '1930' + qc6CJjYAAAAJ:hy8If-OszRcC: + citations: 0 + title: Divorce Agreement, 12 Jun 1918 + year: Unknown Year + qc6CJjYAAAAJ:i91s68tWr-MC: + citations: 84 + title: "\xDCber einen Satz der Wahrscheinlichkeitsrechnung und seine Anwendung in der Strahlungstheorie" + year: '1910' + qc6CJjYAAAAJ:i9zlNfTiRXIC: + citations: 0 + title: 'As it was: the UNESCO Courier December 1951' + year: '1996' + qc6CJjYAAAAJ:iH-uZ7U-co4C: + citations: 113 + title: Knowledge of past and future in quantum mechanics + year: '1931' + qc6CJjYAAAAJ:iKmOvsfbmGkC: + citations: 0 + title: Discussion following lecture," On the Present State of the Problem of Specific Heats"(Doc. 26), 3 Nov 1911 + year: '2003' + qc6CJjYAAAAJ:iKz1iSBcTNcC: + citations: 0 + title: 'Albert Einstein] to Elsa Einstein: Letter, 11 Sep 1915' + year: Unknown Year + qc6CJjYAAAAJ:iMbXGt5dmAEC: + citations: 0 + title: "Proceedings of the Second Marcel Grossmann Meeting on General Relativity: Organized and Held at the Internat. Centre for Theoret. Physics, Trieste, 5-11 July, 1979: Held in \u2026" + year: '1982' + qc6CJjYAAAAJ:iRaVAuoZnuIC: + citations: 17 + title: Geometria no euclidea y fisica + year: '1926' + qc6CJjYAAAAJ:i_7YvbSbtFEC: + citations: 8747 + title: "Berichtigung zu meiner Arbeit:\u201EEine neue Bestimmung der Molek\xFCldimensionen\u201D \uFE01" + year: '2006' + qc6CJjYAAAAJ:ifIdVpG6JtcC: + citations: 15 + title: On the" Cosmologic Problem" + year: '1945' + qc6CJjYAAAAJ:in81wS_EFI4C: + citations: 0 + title: Relativites restreinte et generale Relativite generale, cosmologie et theories unitaires + year: '1994' + qc6CJjYAAAAJ:inmFHauC9wsC: + citations: 241 + title: Statistische Untersuchung der Bewegung eines Resonators in einem Strahlungsfeld + year: '1910' + qc6CJjYAAAAJ:iomT83CKXisC: + citations: 0 + title: "La th\xE9orie de la relativit\xE9 d'Einstein et la dialectique." + year: Unknown Year + qc6CJjYAAAAJ:isC4tDSrTZIC: + citations: 3873 + title: "\xDCber Gravitationswellen" + year: '1918' + qc6CJjYAAAAJ:it4f3qIuXWYC: + citations: 13 + title: "Principios de f\xEDsica te\xF3rica" + year: '1983' + qc6CJjYAAAAJ:j2GxDk2JBlYC: + citations: 12 + title: Correspondance avec Michele Besso + year: '1979' + qc6CJjYAAAAJ:j3f4tGmQtD8C: + citations: 116 + title: Principles of research + year: '1954' + qc6CJjYAAAAJ:j5aT6aphRxQC: + citations: 178 + title: "Zum gegenw\xE4rtigen Stande des Gravitations-problems" + year: '1914' + qc6CJjYAAAAJ:j8SEvjWlNXcC: + citations: 183 + title: Letters on absolute parallelism + year: '1979' + qc6CJjYAAAAJ:j8pvxH-kN2QC: + citations: 52 + title: "Notiz zu E. Schr\xF6dingers Arbeit" + year: '1918' + qc6CJjYAAAAJ:jEJjQKk8aPQC: + citations: 0 + title: 'Albert Einstein] to Felix Klein: Letter, 27 Apr 1918' + year: Unknown Year + qc6CJjYAAAAJ:jKT558fuBk8C: + citations: 6 + title: Antwort auf eine Bemerkung von W. Anderson + year: '1924' + qc6CJjYAAAAJ:jPVjDSAV6m0C: + citations: 19 + title: Darstellung der Semi-Vektoren Als Gewohnliche Vektoren von Besonderem Differentiations Charakter + year: '1934' + qc6CJjYAAAAJ:jhmUvTrEinIC: + citations: 9 + title: 'Helle Zeit-dunkle Zeit: In memoriam Albert Einstein' + year: '1956' + qc6CJjYAAAAJ:jjenCjXDw2QC: + citations: 0 + title: My faith + year: Unknown Year + qc6CJjYAAAAJ:jmwITWCuk8IC: + citations: 14 + title: Einstein on the atomic bomb + year: '1945' + qc6CJjYAAAAJ:jtusTj6o6osC: + citations: 0 + title: A memorial to PAM Dirac + year: '1990' + qc6CJjYAAAAJ:k4O5U3vRA4YC: + citations: 5500 + title: The special and general theory + year: '1920' + qc6CJjYAAAAJ:k6nH7jlkaTkC: + citations: 0 + title: The Einstein Centennial + year: '1982' + qc6CJjYAAAAJ:kF4WlwDc9qcC: + citations: 42 + title: Hedwig und Max Born + year: '1916' + qc6CJjYAAAAJ:kFzFP8IdBVAC: + citations: 380 + title: Einstein's essays in science + year: '2009' + qc6CJjYAAAAJ:kGbpvR7Ecy8C: + citations: 40 + title: Bivector fields II + year: '1944' + qc6CJjYAAAAJ:kMrClmKSQGwC: + citations: 251 + title: "Briefwechsel 1916\xB11955 von Albert Einstein und Hedwig und Max Born, Kommentiert von Max Born" + year: '1969' + qc6CJjYAAAAJ:kNdYIx-mwKoC: + citations: 494 + title: Sidelights on relativity + year: '2009' + qc6CJjYAAAAJ:kO05sadLmrgC: + citations: 69 + title: "Bemerkungen zu der Notiz von Hrn. Paul Ehrenfest:\u201D \uFE01Die Translation deformierbarer Elektronen und der Fl\xE4chensatz \u201E" + year: '1907' + qc6CJjYAAAAJ:kPzzr9KoCG0C: + citations: 0 + title: "L\u2019agopuntura in campo oncologico. Riflessioni ed esperienze dell\u2019ultimo decennio." + year: Unknown Year + qc6CJjYAAAAJ:k_IJM867U9cC: + citations: 119 + title: "Relativit\xE4tstheorie in mathematischer Behandlung" + year: '1925' + qc6CJjYAAAAJ:kbDB7uaqCfAC: + citations: 0 + title: "Albert Einstein] to Walter D\xE4llenbach: Letter, after 15 Feb 1917" + year: Unknown Year + qc6CJjYAAAAJ:kqeZabM7ilsC: + citations: 4022 + title: Preuss, Sitzungsber + year: '1915' + qc6CJjYAAAAJ:l0_JBNIuc60C: + citations: 54 + title: Quoted in + year: '1990' + qc6CJjYAAAAJ:l1jknz_x7mgC: + citations: 0 + title: Court Expert Opinion in the Matter of Signal Co. vs. Atlas Works, ca. 3 Dec 1921 + year: Unknown Year + qc6CJjYAAAAJ:l6Q3WhenKVUC: + citations: 578 + title: Geometrie und erfahrung + year: '1921' + qc6CJjYAAAAJ:l7t_Zn2s7bgC: + citations: 628 + title: Ether and the Theory of Relativity + year: '2007' + qc6CJjYAAAAJ:lAj_JhtUatoC: + citations: 0 + title: 'Albert Einstein] to Friedrich Adler: Letter, 4 Aug 1918' + year: Unknown Year + qc6CJjYAAAAJ:lAvqOWfki2wC: + citations: 0 + title: Sitzungsber. Preus. Akad. Wiss. Berlin (Math. Phys.) 778 (1915) + year: '1915' + qc6CJjYAAAAJ:lCh-sgrp-YMC: + citations: 0 + title: The collecteds of albert einstein v 9 the berlin years correspondence january 1919-april 1920 english translation (paperback) + year: '2004' + qc6CJjYAAAAJ:lEqHes_HPG0C: + citations: 761 + title: 'The principle of relativity: a collection of original memoirs on the special and general theory of relativity' + year: '1923' + qc6CJjYAAAAJ:lIaPce-xyHYC: + citations: 0 + title: "Privatgutachten zu dem Einspruch gegen die Patentanmeldung G43359 der Gesellschaft f\xFCr nautische Instrumente auf Grund des Pantentes 241637, 16 Jul 1918" + year: Unknown Year + qc6CJjYAAAAJ:lLDkS9sB7dAC: + citations: 36 + title: "Grundgedanken und Probleme der Relativit\xE4tstheorie" + year: '1923' + qc6CJjYAAAAJ:lLPirIASiZEC: + citations: 826 + title: "The Collected Papers of Albert Einstein, Volume 15 (Translation Supplement): The Berlin Years: Writings & Correspondence, June 1925\u2013May 1927" + year: '2018' + qc6CJjYAAAAJ:lOG7zRu2uA8C: + citations: 47 + title: The foundations of general relativity theory + year: '1973' + qc6CJjYAAAAJ:lPNvfOEJVFUC: + citations: 17 + title: "Die {\\ it Planck} sche Theorie der Strahlung und die Theorie der spezifischen W\xE4rme.(German)" + year: Unknown Year + qc6CJjYAAAAJ:lR2ECBI0YV4C: + citations: 121 + title: Quantentheoretische Bemerkungen zum Experiment von Stern und Gerlach + year: '1922' + qc6CJjYAAAAJ:lVu93_cgYy4C: + citations: 0 + title: OPERATIONALISM AND FUNDAMENTAL MODELS OF PHYSICS + year: '1983' + qc6CJjYAAAAJ:lX_RDcPAamoC: + citations: 4 + title: Foreword to Concepts of Space, by Max Jammer + year: '1954' + qc6CJjYAAAAJ:ldfaerwXgEUC: + citations: 43 + title: Algebraic properties of the field in the relativistic theory of the asymmetric field + year: '1954' + qc6CJjYAAAAJ:lms347EBdh4C: + citations: 15 + title: Verhandl. deut. physik + year: '1915' + qc6CJjYAAAAJ:m1cs02wJCiwC: + citations: 0 + title: "Hilbert et le probl\xE8me de covariance dans les \xE9quations de la gravitation." + year: Unknown Year + qc6CJjYAAAAJ:mB3voiENLucC: + citations: 146 + title: A new form of the general relativistic field equations + year: '1955' + qc6CJjYAAAAJ:mN77zE6YZBUC: + citations: 683 + title: Ueber spezielle und allgemeine Relativitaetstheorie, 127 + year: '1969' + qc6CJjYAAAAJ:mNm_27jwclsC: + citations: 13 + title: Open Letter to the General Assembly of the United Nations + year: '1947' + qc6CJjYAAAAJ:mSXQG6lSlFkC: + citations: 0 + title: 'Albert Einstein] to Wander and Geertruida de Haas: Letter, ca. 10 May 1915' + year: Unknown Year + qc6CJjYAAAAJ:mSnHxa73OtAC: + citations: 0 + title: 'The collected papers of Albert Einstein. Vol. 1, The early years: 1879-1902:[English translation]' + year: Unknown Year + qc6CJjYAAAAJ:mVC4hKzE2FoC: + citations: 12 + title: "Berichtigung zu meiner Arbeit:\u201EDie Plancksche Theorie der Strahlung etc.\u201D \uFE01" + year: '1907' + qc6CJjYAAAAJ:mZB2-lCpWbQC: + citations: 10 + title: 'Albert Einstein] to Max Born: Letter, 27 Feb 1916' + year: Unknown Year + qc6CJjYAAAAJ:maZDTaKrznsC: + citations: 116 + title: The Bianchi identities in the generalized theory of gravitation + year: '1950' + qc6CJjYAAAAJ:mdGv78FIKkEC: + citations: 0 + title: "UN GIORNO LE MACCHINE RIUSCIRANNO A RISOLVERE TUTTI I PROBLEMI, MA MAI NESSUNA DI ESSE POTR\xC0 PORNE UNO\u2026" + year: Unknown Year + qc6CJjYAAAAJ:mmBnJtEBTSAC: + citations: 14 + title: Albert Einstein] to Michele Besso:[A second] letter, 21 Jul 1916 + year: Unknown Year + qc6CJjYAAAAJ:mnAcAzq93VMC: + citations: 117 + title: Riemannian Geometry with Maintaining the Notion of distant parallelism + year: '1928' + qc6CJjYAAAAJ:mpaOjDK6XBIC: + citations: 3 + title: Mossbauer Effect + year: '1958' + qc6CJjYAAAAJ:mqGkWRiPAHEC: + citations: 0 + title: "Albert Einstein] to Walther Sch\xFCcking: Letter, 22 Oct 1915" + year: Unknown Year + qc6CJjYAAAAJ:n0_S8QYMK-AC: + citations: 0 + title: "L'article d'Einstein\" Remarques th\xE9oriques sur la superconductivit\xE9 des m\xE9taux\"." + year: Unknown Year + qc6CJjYAAAAJ:n1qY4L4uFdgC: + citations: 792 + title: 'The collected papers of Albert Einstein. Vol. 12, The Berlin years: correspondence, January-December 1921' + year: Unknown Year + qc6CJjYAAAAJ:n35PH7pn8T4C: + citations: 53 + title: "Grundgedanken und Methoden der Relativit\xE4tstheorie, in ihrer Entwicklung dargestellt" + year: '1920' + qc6CJjYAAAAJ:n94QCav8jycC: + citations: 12 + title: From the philosophy of Bertrand Russell + year: '1944' + qc6CJjYAAAAJ:nFloTcPoiwMC: + citations: 0 + title: "R\xF4le du principe d'\xE9quivalence et apparition de la th\xE9orie g\xE9n\xE9rale de la relativit\xE9." + year: Unknown Year + qc6CJjYAAAAJ:nOiSByfp82kC: + citations: 39 + title: "Systematische Untersuchung \xFCber kompatible Feldgleichungen, welche in einem Riemannschen Raume mit Fernparallelismus gesetzt werden k\xF6nnen" + year: '1931' + qc6CJjYAAAAJ:nU66GSXDKhoC: + citations: 29 + title: Elementare theorie der wasserwellen und des fluges + year: '1916' + qc6CJjYAAAAJ:nZtlP1Cc3DIC: + citations: 0 + title: Einstein und die Interviewer, 10 Aug 1921 + year: Unknown Year + qc6CJjYAAAAJ:nazVBdFzvK0C: + citations: 172 + title: Einstein on Peace, ed. Otto Nathan and Heinz Norden + year: '1960' + qc6CJjYAAAAJ:njp6nI0QjqAC: + citations: 359 + title: "\xDCber die Entwickelung unserer Anschauungen \xFCber das Wesen und die Konstitution der Strahlung" + year: '1909' + qc6CJjYAAAAJ:nlKf13ul9_IC: + citations: 3 + title: "Pol\xEDtica y pacifismo" + year: '1960' + qc6CJjYAAAAJ:nlmsuG0oqtYC: + citations: 0 + title: APPLICATION OF STOCHASTIC DIFFERENTIAL EQUATIONS TO THE DESCRIPTION CF TURBULENT DIFFUSION + year: '1978' + qc6CJjYAAAAJ:nmIsvVfQd4cC: + citations: 21 + title: Investigations on the Theory of Non-Uniform Gases + year: '1956' + qc6CJjYAAAAJ:nrtMV_XWKgEC: + citations: 39 + title: Os fundamentos da teoria da relatividade geral + year: '1916' + qc6CJjYAAAAJ:ntg98fmFLVcC: + citations: 408 + title: The elementary theory of the Brownian motion + year: '1908' + qc6CJjYAAAAJ:nvAonm6-wpUC: + citations: 0 + title: "Neue Zugangswege zur Entw\xF6hnungs-behandlung in Sachsen, Sachsen-Anhalt und Th\xFCringen" + year: Unknown Year + qc6CJjYAAAAJ:nwfoItMF7hMC: + citations: 145 + title: "Teor\u0131a cu\xE1ntica de gases ideales monoat\xF3micos, Sitz" + year: '1924' + qc6CJjYAAAAJ:o4Qvs5Y5TLQC: + citations: 182 + title: The Early Years 1879-1902 + year: '1987' + qc6CJjYAAAAJ:o9ULDYDKYbIC: + citations: 36 + title: "Bemerkung zu Herrn Schr\xF6dingers Notiz" + year: '1918' + qc6CJjYAAAAJ:oAywNP-vUhwC: + citations: 37 + title: Eine neue formale Deutung der Maxwellschen Feldgleichungen der Elektrodynamik + year: '1916' + qc6CJjYAAAAJ:oFKsPyNwwpYC: + citations: 85 + title: "\xDCber die M\xF6glichkeit einer neuen Pr\xFCfung des Relativit\xE4tsprinzips" + year: '2006' + qc6CJjYAAAAJ:oFWWKr2Zb18C: + citations: 150 + title: On the ether + year: '1991' + qc6CJjYAAAAJ:oJZlKik0E8QC: + citations: 11 + title: Albert Einstein + year: '1999' + qc6CJjYAAAAJ:oQQVFBP0nzwC: + citations: 5 + title: "Einstein und Ulm: Festakt, Sch\xFClerwettbewerb und Ausstellung zum 100. Geburtstag von Albert Einstein" + year: '1979' + qc6CJjYAAAAJ:oR5SthnA400C: + citations: 4 + title: 'Le pouvoir nu: propos sur la guerre et la paix, 1914-1955' + year: '1991' + qc6CJjYAAAAJ:oYLFIHfuHKwC: + citations: 238 + title: "Zum kosmologischen Problem der allgemeinen Relativit\xE4tstheorie" + year: '1931' + qc6CJjYAAAAJ:oea97a5D_h0C: + citations: 4 + title: "\xDCber den gegenw\xE4rtigen Stand der allgemeinen Relativit\xE4tsteorie" + year: '1930' + qc6CJjYAAAAJ:ojlX30-wUrgC: + citations: 194 + title: Religion and science + year: '1930' + qc6CJjYAAAAJ:oldoQiaHq2UC: + citations: 124 + title: "Einheitliche Theorie von Gravitation und Elektrizit\xE4t. Zweite Abhandlung" + year: '2006' + qc6CJjYAAAAJ:oqD4_j7ulsYC: + citations: 19859 + title: On the movement of small particles suspended in stationary liquids required by the molecular-kinetic theory of heat + year: '1905' + qc6CJjYAAAAJ:osi8XriVlOYC: + citations: 0 + title: 'Albert Einstein] to Wander and Geertruida de Haas: Letter, 6 Jul 1915' + year: Unknown Year + qc6CJjYAAAAJ:oursBaop5wYC: + citations: 1509 + title: Zur theorie der brownschen bewegung + year: '1906' + qc6CJjYAAAAJ:oy0z8GdgWhYC: + citations: 0 + title: 'On the Nature of Spirit: Masculinity, Femininity, and Human Identity' + year: Unknown Year + qc6CJjYAAAAJ:oynPyU19kbsC: + citations: 69 + title: "Berichtigungen zu der Arbeit:\" \xDCber das Relativit\xE4tsprinzip und die aus demselben gezogenen Folgerungen\"" + year: '1908' + qc6CJjYAAAAJ:p2vkXumR6kMC: + citations: 4 + title: Verlandlungen der deutchen physikalischen Gesellschaft + year: '1917' + qc6CJjYAAAAJ:p6f6DfXMsGMC: + citations: 0 + title: "Resultados de la terapia floral en el tratamiento del brote de agudizaci\xF3n de la psoriasis" + year: Unknown Year + qc6CJjYAAAAJ:p7qoFRH4VUUC: + citations: 5 + title: 'Albert Einstein] to Moritz Schlick: Letter, 14 Dec 1915' + year: Unknown Year + qc6CJjYAAAAJ:p866XJ6hu_8C: + citations: 8 + title: B. Ho mann and L. Infeld + year: '1938' + qc6CJjYAAAAJ:p9YawgimX9oC: + citations: 38 + title: Albert Einstein und die Schweiz + year: '1952' + qc6CJjYAAAAJ:pGq6TLPqxssC: + citations: 0 + title: 'Albert Einstein] to Paul Hertz: Letter, 9 Oct 1915' + year: Unknown Year + qc6CJjYAAAAJ:pOP5Rf-i_loC: + citations: 0 + title: Non-euclidean geometry and physics (1926) + year: '2005' + qc6CJjYAAAAJ:pRWBApOjXDcC: + citations: 72 + title: "Untersuchungen \xFCber die Theorie der Brownschen Bewegung" + year: '1997' + qc6CJjYAAAAJ:pUxgyZctzPYC: + citations: 65 + title: "Prinzipielles zur verallgemeinerten Relativit\xE4tstheorie und Gravitationstheorie" + year: '1914' + qc6CJjYAAAAJ:pa8xeX_DvI4C: + citations: 23 + title: B. Podolsky & N. Rosen, 1935 + year: Unknown Year + qc6CJjYAAAAJ:polMJLZb0X8C: + citations: 0 + title: 'Albert Einstein] to Erwin Freundlich: Letter, between 1 and 25 Mar 1915' + year: Unknown Year + qc6CJjYAAAAJ:prKdS1S5QkMC: + citations: 0 + title: Creator and Rebel + year: '1972' + qc6CJjYAAAAJ:prvsfHNhuEoC: + citations: 0 + title: 'Albert Einstein] to David Hilbert: Letter, 18 Nov 1915' + year: Unknown Year + qc6CJjYAAAAJ:pxXbYLTb8EgC: + citations: 2 + title: Selected passages on Machian ideas + year: '1995' + qc6CJjYAAAAJ:pzedKLaGEyUC: + citations: 0 + title: THE ANTHROPIC PRINCIPLE IN COSMOLOGY AND IN BIOLOGY + year: Unknown Year + qc6CJjYAAAAJ:q-jS9JxWzv0C: + citations: 0 + title: What is the Responsibility of Scientists in War? + year: Unknown Year + qc6CJjYAAAAJ:q1ZQJjUA47MC: + citations: 233 + title: On the motion, required by the molecular-kinetic theory of heat, of particles suspended in a fluid at rest + year: '1905' + qc6CJjYAAAAJ:q2Dn1KgioksC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, before 10 Apr 1914' + year: Unknown Year + qc6CJjYAAAAJ:q2HS4OCVtYIC: + citations: 1 + title: "Kurze Skizze zur Entwicklung der Relativit\xE4tstheorie" + year: Unknown Year + qc6CJjYAAAAJ:q3SxJD15z-gC: + citations: 0 + title: 'Albert Einstein] to Tullio Levi-Civita: Letter, 2 Apr 1915' + year: Unknown Year + qc6CJjYAAAAJ:q3oQSFYPqjQC: + citations: 40 + title: "Quatre conf\xE9rences sur la th\xE9orie de la relativit\xE9 faites \xE0 l'Universit\xE9 de Princeton" + year: '2005' + qc6CJjYAAAAJ:qCpRzq7zkD8C: + citations: 2134 + title: "Zur allgemeinen Relativit\xE4tstheorie" + year: '1915' + qc6CJjYAAAAJ:qPeb-qHga9sC: + citations: 309 + title: "Auf die Riemann-Metrik und den Fern-Parallelismus gegr\xFCndete einheitliche Feldtheorie" + year: '1930' + qc6CJjYAAAAJ:qbqt7gslDFUC: + citations: 0 + title: The manuscript of Einstein's" Zur einheitlichen Feld-Theorie". + year: Unknown Year + qc6CJjYAAAAJ:qdR3duxP4mUC: + citations: 0 + title: "En busca del eslab\xF3n perdido entre educaci\xF3n y desarrollo: desaf\xEDos y retos para la universidad en Am\xE9rica Latina y el Caribe" + year: Unknown Year + qc6CJjYAAAAJ:qjMakFHDy7sC: + citations: 3177 + title: On the electrodynamics of moving bodies + year: '1905' + qc6CJjYAAAAJ:qsWQJNntlusC: + citations: 3171 + title: Ideas and opinions + year: '1995' + qc6CJjYAAAAJ:quBVm8e4N6QC: + citations: 62 + title: "Zu Kaluzas Theorie des Zusammenhanges von Gravitation und Elektrizit\xE4t. Zweite Mitteilung" + year: '2006' + qc6CJjYAAAAJ:qxL8FJ1GzNcC: + citations: 602 + title: Geometrie und erfahrung + year: '1921' + qc6CJjYAAAAJ:qyhmnyLat1gC: + citations: 27493 + title: Can quantum-mechanical description of physical reality be considered complete? + year: '1935' + qc6CJjYAAAAJ:qzuIxkxWBNsC: + citations: 0 + title: 'Albert Einstein] to Edgar Meyer: Letter, 4 Nov 1918' + year: Unknown Year + qc6CJjYAAAAJ:r-XlWH_wwbwC: + citations: 9 + title: La questione del metodo + year: '1954' + qc6CJjYAAAAJ:r0BpntZqJG4C: + citations: 198 + title: On the non-existence of regular stationary solutions of relativistic field equations + year: '1943' + qc6CJjYAAAAJ:r0s_y6AIs4IC: + citations: 1 + title: Waarom oorlog? + year: '1986' + qc6CJjYAAAAJ:r4zddjZt6C4C: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 25 May 1914' + year: Unknown Year + qc6CJjYAAAAJ:r7QigD7TRWAC: + citations: 12 + title: 'Scienza e vita: lettere 1916-1955' + year: '1973' + qc6CJjYAAAAJ:r8lgQMkXaCEC: + citations: 0 + title: Oorlog als ziekte. Met een voorw. van Albert Einstein. Naar de Nederlandse vertaling bewerkt door C. van Emde Boas + year: '1938' + qc6CJjYAAAAJ:rCzfLUpcSPoC: + citations: 467 + title: "A evolu\xE7\xE3o da f\xEDsica: o desenvolvimento das ideias desde os primitivos conceitos at\xE9 \xE0 Relatividade e aos Quanta" + year: '1939' + qc6CJjYAAAAJ:rFyVMFCKTwsC: + citations: 334 + title: Elementare Theorie der Brownschen) Bewegung + year: '1908' + qc6CJjYAAAAJ:rKOGDx9nJ1EC: + citations: 3 + title: "Gelegentliches: Zum f\xFCnfzigsten Geburtstag 14. M\xE4rz 1929 dargebracht von der Soncino-Gesellschaft der Freunde des J\xFCdischen Buches zu Berlin" + year: '1929' + qc6CJjYAAAAJ:rPbfW60zdgkC: + citations: 1174 + title: Physics and reality + year: '1936' + qc6CJjYAAAAJ:rQcm2j6_ZE8C: + citations: 21 + title: Max Planck als Forscher + year: '1913' + qc6CJjYAAAAJ:rUiCm8s56TIC: + citations: 7 + title: A new analysis of molecule dimensions + year: '1968' + qc6CJjYAAAAJ:rWqKpwLRvsIC: + citations: 2792 + title: Die feldgleichungen der gravitation + year: Unknown Year + qc6CJjYAAAAJ:rbgNTKsR3fAC: + citations: 0 + title: The Absence of Negative Gravitational Mass and Related Problems + year: Unknown Year + qc6CJjYAAAAJ:rc0DTgEpx5oC: + citations: 0 + title: "Einheitliche Feldtheorie von Gravitation und Elektrizit\xE4t.(German)" + year: Unknown Year + qc6CJjYAAAAJ:rjBKtydo3wgC: + citations: 39 + title: "\xBF Por qu\xE9 socialismo?" + year: '2001' + qc6CJjYAAAAJ:rp474-M6Y4oC: + citations: 16 + title: "Einstein sagt: Zitate, Einf\xE4lle, Gedanken" + year: '1999' + qc6CJjYAAAAJ:rq4rw-O2q6QC: + citations: 0 + title: 'The anthropomorphized product shelf: Symmetric multimodal human-environment interaction' + year: '2006' + qc6CJjYAAAAJ:rr29yNp9FasC: + citations: 23 + title: "\xDCber ein den Elementarproze\xDF der Lichtemission betreffendes Experiment" + year: '2006' + qc6CJjYAAAAJ:rsrKZ8bNWIsC: + citations: 0 + title: 'Albert Einstein] to Heinrich Zangger: Letter, between 24 Jul and 7 Aug 1915' + year: Unknown Year + qc6CJjYAAAAJ:rt-opDMcQ_cC: + citations: 0 + title: 'PROBLEM GAMBLING & AOD: IMPULSIVELY SEPARATED?' + year: Unknown Year + qc6CJjYAAAAJ:rv4tAfkFLVgC: + citations: 0 + title: "O Papel da Epistemologia em uma Disciplina e Evolu\xE7\xE3o dos Conceitos da F\xEDsica\xB7" + year: Unknown Year + qc6CJjYAAAAJ:rywEMSoAiS0C: + citations: 0 + title: "Histoire de la d\xE9couverte des \xE9quations de la gravitation (Einstein et Hilbert)." + year: Unknown Year + qc6CJjYAAAAJ:rzkGdFpNPO0C: + citations: 0 + title: 'Prospettive relativistiche: dell''etere e della geometria' + year: '1922' + qc6CJjYAAAAJ:s1ouQE5r0WUC: + citations: 17 + title: Mein Glaubensbekenntnis + year: '1930' + qc6CJjYAAAAJ:s2G-WRnXBicC: + citations: 2 + title: My Views + year: '1967' + qc6CJjYAAAAJ:s9piBQ-TX4wC: + citations: 0 + title: "La th\xE9orie corpusculaire des rayons X et la structure des cristaux." + year: Unknown Year + qc6CJjYAAAAJ:sAujV351FBYC: + citations: 4822 + title: The meaning of relativity + year: '1950' + qc6CJjYAAAAJ:sIDMtVbdO0QC: + citations: 20 + title: "\xDCber die gegenw\xE4rtige Krise der theoretischen Physik" + year: '1922' + qc6CJjYAAAAJ:sJK75vZXtG0C: + citations: 207 + title: Mis ideas y opiniones + year: '2011' + qc6CJjYAAAAJ:sNmaIFBj_lkC: + citations: 7 + title: Compton Effect + year: '1966' + qc6CJjYAAAAJ:sYWh8IhQ1GMC: + citations: 13 + title: Letter to Michele Besso's Family + year: '1989' + qc6CJjYAAAAJ:scjTk0LcRdsC: + citations: 0 + title: "Nous ne pouvons pas r\xE9soudre nos probl\xE8mes avec le m\xEAme mode de pens\xE9e que nous utilisions quand nous les avons cr\xE9\xE9s." + year: Unknown Year + qc6CJjYAAAAJ:seU1ZbiIO-YC: + citations: 0 + title: The Principles of humanism + year: '1974' + qc6CJjYAAAAJ:sgVRHlApM4oC: + citations: 67 + title: The laws of science and the laws of ethics + year: '1950' + qc6CJjYAAAAJ:sgsej9ZJWHMC: + citations: 4043 + title: "N\xE4herungsweise Integration der Feldgleichungen der Gravitation" + year: '1916' + qc6CJjYAAAAJ:siTy-4AL0AwC: + citations: 0 + title: "O conhecimento cient\xEDfico no nosso contexto social e hist\xF3rico: um ano de realiza\xE7\xF5es" + year: '2008' + qc6CJjYAAAAJ:sk-5v2XeZBgC: + citations: 21 + title: Theoretische Bemerkungen zur Supraleitung der Metalle + year: '1922' + qc6CJjYAAAAJ:spwacExez6wC: + citations: 0 + title: "Meine Antwort. \xFCber die anti-relativit\xE4tstheoretische GmbH Berliner Tageblatt, 27 Aug 1920" + year: Unknown Year + qc6CJjYAAAAJ:t1niNHmIXQYC: + citations: 0 + title: Religion, Spirituality, and Stress + year: Unknown Year + qc6CJjYAAAAJ:t3sMychFT9UC: + citations: 0 + title: "Divulgaci\xF3n de la Ciencia para Ni\xF1os a Trav\xE9s de Revistas Mexicanas: Aproximaci\xF3n a Partir de la Construcci\xF3n del Discurso." + year: Unknown Year + qc6CJjYAAAAJ:t6hKUfryX1MC: + citations: 0 + title: Uproar in the Lecture Hall, 13 Feb 1920 + year: Unknown Year + qc6CJjYAAAAJ:t6usbXjVLHcC: + citations: 135 + title: The human side + year: '1979' + qc6CJjYAAAAJ:t7izwRedFcYC: + citations: 4 + title: Albert Einstein, il lato humano + year: '1980' + qc6CJjYAAAAJ:tHxcpc5o5bgC: + citations: 10 + title: A. Einstein autobiographical notes + year: '1970' + qc6CJjYAAAAJ:tVzLobxzA7YC: + citations: 7 + title: "Geografia, ecologia da paisagem e teledetec\xE7\xE3o, enquadramento\u2013contextualiza\xE7\xE3o" + year: '2004' + qc6CJjYAAAAJ:tWiuw1KVSQEC: + citations: 93 + title: "La Th\xE9orie de la Relativit\xE9" + year: '1935' + qc6CJjYAAAAJ:tYdqGa2HnWcC: + citations: 0 + title: 'Albert Einstein] to Arnold Sommerfeld: Letter, 3 Aug 1916' + year: Unknown Year + qc6CJjYAAAAJ:tai-Ft5GzhwC: + citations: 0 + title: Storia del concetto di spazio + year: '1966' + qc6CJjYAAAAJ:tgTmbKTkO1IC: + citations: 16 + title: "Nachtrag zu meiner Arbeit:\u201EThermodynamische Begr\xFCndung des photochemischen Aquivalentgesetzes\u201D \uFE01" + year: '1912' + qc6CJjYAAAAJ:tkaPQYYpVKoC: + citations: 16 + title: Physik als Abenteuer der Erkenntnis + year: '1938' + qc6CJjYAAAAJ:tltQ_bo2KloC: + citations: 19 + title: My Credo + year: '1986' + qc6CJjYAAAAJ:tntj4plCNvAC: + citations: 123 + title: Relativity and the Problem of Space + year: '1954' + qc6CJjYAAAAJ:tzPJaSocouwC: + citations: 29 + title: Fund-raising telegram for the Emergency Committee of Atomic Scientists, 23 May 1946 + year: '1960' + qc6CJjYAAAAJ:u0Mu_IsstPMC: + citations: 28 + title: "Die Kompatibilit\xE4t der Feldgleichungen in der einheitlichen Feldtheorie" + year: '1930' + qc6CJjYAAAAJ:uAPFzskPt0AC: + citations: 15 + title: "equations of motion\uFB01 one therefore could not doubt that the laws of nature are" + year: '1907' + qc6CJjYAAAAJ:uCYQzKCmtZwC: + citations: 1241 + title: Out of my later years + year: '1950' + qc6CJjYAAAAJ:uH1VZYVfkoQC: + citations: 10 + title: 'Albert Einstein] to Max Born: Letter, 24 Jun 1918' + year: Unknown Year + qc6CJjYAAAAJ:uK1dVpBkok0C: + citations: 0 + title: UNCERTAINTIES AND HOPES + year: '1993' + qc6CJjYAAAAJ:uQrt9rju91QC: + citations: 0 + title: 'Albert Einstein] to Paul Hertz: Letter, between 14 Aug and 4 Nov 1915' + year: Unknown Year + qc6CJjYAAAAJ:uXirmJe02n4C: + citations: 84 + title: "Berichtigungen zu der Arbeit:\" \xDCber das Relativit\xE4tsprinzip und die aus demselben gezogenen Folgerungen\", 29 Feb 1908" + year: Unknown Year + qc6CJjYAAAAJ:u_mOZUIutIEC: + citations: 35 + title: "\xDCber eine Methode zur Bestimmung des Verh\xE4ltnisses der transversalen und longitudinalen Masse des Elektrons" + year: '1906' + qc6CJjYAAAAJ:ufKn5pxu7C0C: + citations: 28 + title: "Bemerkung zu meiner Arbeit \u201CZur allgemeinen Relativit\xE4tstheorie\u201D" + year: '2006' + qc6CJjYAAAAJ:ufrVoPGSRksC: + citations: 637 + title: The influence of the expansion of space on the gravitation fields surrounding the individual stars + year: '1945' + qc6CJjYAAAAJ:uh8FjILnQOkC: + citations: 0 + title: "Bemerkungen zu P. Harzers Abhandlung,\" \xDCber die Mitf\xFChrung des Lichtes in Glas und die Aberration\", 18 Jul 1914" + year: Unknown Year + qc6CJjYAAAAJ:ujJXPdh5xs4C: + citations: 0 + title: "Lehrs\xE4tze \xFCber das Weltall: Mit Beweis in Form eines offenen Briefes an Professor Einstein. In einer von Gerhard R\xFChm bearbeiteten Neuauflage" + year: '1965' + qc6CJjYAAAAJ:ult01sCh7k0C: + citations: 313 + title: Wolfgang Pauli + year: '2001' + qc6CJjYAAAAJ:umqufdRvDiIC: + citations: 7 + title: "Einstein \xFCber \u201Ewahre Kultur \u201Cund die Stellung der Geometrie im Wissenschaftssystem" + year: '1979' + qc6CJjYAAAAJ:uoeYKOKFegwC: + citations: 14 + title: Einstein on Humanism + year: '1993' + qc6CJjYAAAAJ:uqZYSrDi9MMC: + citations: 0 + title: Ideas fundamentales y problemas de la teoria de la relatividad + year: '1924' + qc6CJjYAAAAJ:uwWlEQcBbEIC: + citations: 0 + title: 'Albert Einstein] to Felix Klein: Letter, 26 Mar 1917' + year: Unknown Year + qc6CJjYAAAAJ:v-tg9Wi2VGwC: + citations: 0 + title: Overture to the comic opera Don Giovanni, K + year: '1900' + qc6CJjYAAAAJ:vCSeWdjOjw8C: + citations: 14 + title: 'Albert Einstein] to Michele Besso: Letter, 22 Sep 1917' + year: Unknown Year + qc6CJjYAAAAJ:vM5yiaU9oLoC: + citations: 0 + title: 'Albert Einstein] to Hans Albert Einstein: Letter, before 4 Apr 1915' + year: Unknown Year + qc6CJjYAAAAJ:vMcOFpnEpxoC: + citations: 8 + title: Inst. intern. phys + year: '1911' + qc6CJjYAAAAJ:vPKCt-r_nWsC: + citations: 0 + title: Albert Einstein to Heinrich Zangger + year: '2005' + qc6CJjYAAAAJ:vRqMK49ujn8C: + citations: 26 + title: "Fysika jako dobrodru\u017Estv\xED pozn\xE1n\xED" + year: '1958' + qc6CJjYAAAAJ:vV6vV6tmYwMC: + citations: 159 + title: Living philosophies + year: '1979' + qc6CJjYAAAAJ:v_xunPV0uK0C: + citations: 69 + title: On the five-dimensional representation of gravitation and electricity + year: '1941' + qc6CJjYAAAAJ:viPVbuMW504C: + citations: 310 + title: Collected Scientific Works + year: '1965' + qc6CJjYAAAAJ:viTTOddtVMkC: + citations: 0 + title: IDEAS PARA MEDITAR CON CALMA + year: Unknown Year + qc6CJjYAAAAJ:vj8KeYadoLsC: + citations: 63 + title: Diskussion + year: '1920' + qc6CJjYAAAAJ:vjZqxyZ7hS4C: + citations: 15 + title: "Zum gegenw\xE4rtigen Stande des Problems der spezifischen W\xE4rme" + year: '1911' + qc6CJjYAAAAJ:vkz5F8TaVKkC: + citations: 28 + title: 'Albert Einstein, Max Born, Hedwig Born: Correspondance, 1916-1955' + year: '1972' + qc6CJjYAAAAJ:vlECJaBXBlQC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 1 May 1918' + year: Unknown Year + qc6CJjYAAAAJ:vofGIMt6cyEC: + citations: 5 + title: "Zum hundertj\xE4hrigen Gedenktag von Lord Kelvins Geburt. 26. Juni 1824" + year: '1924' + qc6CJjYAAAAJ:vptNTMqK6uYC: + citations: 0 + title: "A educa\xE7\xE3o inclusiva e as transforma\xE7\xF5es dos processos de constru\xE7\xE3o do conhecimento" + year: Unknown Year + qc6CJjYAAAAJ:vq25oHwZT-8C: + citations: 17 + title: "Koniglich Preussische Akademie f\xFCr Wissenschaft 844 (1915);[Links] A. Einstein" + year: '1916' + qc6CJjYAAAAJ:vt8c2csMsvAC: + citations: 1 + title: "Introduction aux th\xE8ories de M. Einstein en vue de leur application a l'astronomie" + year: '1921' + qc6CJjYAAAAJ:vytXtR8tOLIC: + citations: 466 + title: B. preuss + year: '1916' + qc6CJjYAAAAJ:vzY-6mMDyDUC: + citations: 86 + title: 'The Berlin Years, Correspondence 1914-1918: English Translation' + year: '1998' + qc6CJjYAAAAJ:w1G5vK4DiEkC: + citations: 0 + title: 'Albert Einstein] to Gustav Mie: Letter, 8 Feb 1918' + year: Unknown Year + qc6CJjYAAAAJ:w2Gke83ceDMC: + citations: 0 + title: Considerations on electrodynamics, the ether, geometry and relativity + year: '1972' + qc6CJjYAAAAJ:w2UhwfzvF0QC: + citations: 433 + title: On a generalization of Kaluza's theory of electricity + year: '1938' + qc6CJjYAAAAJ:w7CBUyPWg-0C: + citations: 10 + title: Eine ableitung des theorems von Jacobi + year: '1917' + qc6CJjYAAAAJ:wEOyVsangm4C: + citations: 741 + title: Philosopher-Scientist, ed + year: '1970' + qc6CJjYAAAAJ:wGzT3bKASkAC: + citations: 275 + title: "\xDCber die vom Relativit\xE4tsprinzip geforderte Tr\xE4gheit der Energie" + year: '1907' + qc6CJjYAAAAJ:wNvz2w4be3AC: + citations: 0 + title: 'On the Contribution of Intellectuals to International Reconciliation: Letter, after 29 Sep 1920' + year: Unknown Year + qc6CJjYAAAAJ:wTekDMGr9GkC: + citations: 0 + title: Einstein und die Geophysik:(Einstein and geophysics) + year: '2005' + qc6CJjYAAAAJ:wW8w_uPXRNAC: + citations: 1 + title: Statistische Mechanik + year: '1979' + qc6CJjYAAAAJ:wdLM4YbmhYkC: + citations: 0 + title: "La teoria della relativit\xE0" + year: '1987' + qc6CJjYAAAAJ:wgKq3sYidysC: + citations: 517 + title: Concerning an heuristic point of view toward the emission and transformation of light + year: '1965' + qc6CJjYAAAAJ:wkm4DBaukwsC: + citations: 8 + title: "Antwort auf eine Abhandlung M. v. Laues \u201EEin Satz der Wahrscheinlichkeitsrechnung und seine Anwendung auf die Strahlungstheorie\u201D \uFE01" + year: '1915' + qc6CJjYAAAAJ:wlh7PBhwZ8MC: + citations: 14 + title: 'Albert Einstein] to Michele Besso: Letter, 6 Sep 1916' + year: Unknown Year + qc6CJjYAAAAJ:wuD5JclIwkYC: + citations: 225 + title: Science and religion + year: '1940' + qc6CJjYAAAAJ:wy5MF_2MSNEC: + citations: 14 + title: 'Albert Einstein] to Michele Besso: Letter, 9 Jul 1918' + year: Unknown Year + qc6CJjYAAAAJ:xMZGxf1v-3YC: + citations: 0 + title: 'Albert Einstein] to Hans Albert and Eduard Einstein: Letter, 10 Dec 1918' + year: Unknown Year + qc6CJjYAAAAJ:xUT3DyvLuJwC: + citations: 0 + title: 'Albert Einstein] to Arnold Sommerfeld: Letter, 14 Jan 1908' + year: Unknown Year + qc6CJjYAAAAJ:xZ4F5NOCMJ0C: + citations: 0 + title: Why lnformation Technology lnspired but Cannot Deliver Knowledge Management + year: '2004' + qc6CJjYAAAAJ:xii_ZKWM4-0C: + citations: 44 + title: "Bemerkungen zu den P. Hertzschen Arbeiten:\u201E\xDCber die mechanischen Grundlagen der Thermodynamik\u201D \uFE01" + year: '1911' + qc6CJjYAAAAJ:xu-w60CxnpAC: + citations: 0 + title: "Briefe zur Wellenmechanik [von][Erwin] Schr\xF6dinger,[Max] Planck,[ALbert] Einstein und [Hendrik Antoon] Lorentz" + year: '1963' + qc6CJjYAAAAJ:xvKSgulxyWUC: + citations: 6 + title: 'The collected papers of Albert Einstein: writings, 1912-1914. The Swiss years' + year: '1966' + qc6CJjYAAAAJ:xwIxJehhd2UC: + citations: 0 + title: "Albert Einstein] to Rudolf F\xF6rster: Letter, 19 Feb 1918" + year: Unknown Year + qc6CJjYAAAAJ:xyKys1DtkaQC: + citations: 30 + title: Wissenschaftlicher Briefwechsel mit Bohr, Einstein, Heisenberg ua. Bd. 4. 1955-1956 + year: '2001' + qc6CJjYAAAAJ:yCjxvIMm6_oC: + citations: 17 + title: "Nachtr\xE4gliche Antwort auf eine Frage von Herrn Rei\xDFner" + year: '1914' + qc6CJjYAAAAJ:yG6gRY0c4kQC: + citations: 0 + title: 'Albert Einstein] to Gustav Mie: Letter, 29 Dec 1917' + year: Unknown Year + qc6CJjYAAAAJ:yIeBiWEAh44C: + citations: 1309 + title: "\xDCber den Einflu\xDF der Schwerkraft auf die Ausbreitung des Lichtes" + year: '2006' + qc6CJjYAAAAJ:yJjnfzR0HrkC: + citations: 869 + title: Strahlungs-emission und absorption nach der quantentheorie + year: '1916' + qc6CJjYAAAAJ:yKZlB_2wKysC: + citations: 0 + title: 'Albert Einstein] to Paul Ehrenfest: Letter, 4 Sep 1918' + year: Unknown Year + qc6CJjYAAAAJ:yNlG6JgpFqoC: + citations: 237 + title: A generalized theory of gravitation + year: '1948' + qc6CJjYAAAAJ:yNohvu9kXXYC: + citations: 389 + title: Quantentheorie des idealen einatomigen Gases, Sitzber + year: '1924' + qc6CJjYAAAAJ:yS0fcbgecPsC: + citations: 21 + title: Education for independent thought + year: '1952' + qc6CJjYAAAAJ:yXZqsUWzai8C: + citations: 138 + title: "Koniglich Preu\u03B2ische Akademie der Wissenschaften" + year: '1916' + qc6CJjYAAAAJ:yZoBfgUKqwcC: + citations: 45 + title: "\xDCber eine naheliegende Erg\xE4nzung des Fundamentes der allgemeinen Relativit\xE4tstheorie" + year: '1921' + qc6CJjYAAAAJ:ypzvKOdbExQC: + citations: 0 + title: VICTOR J. STENGER + year: '1990' + qc6CJjYAAAAJ:yxAilOxaV9sC: + citations: 0 + title: Le lien entre science et art dans la conception du monde de Einstein. + year: Unknown Year + qc6CJjYAAAAJ:yymuTJNBJz4C: + citations: 0 + title: "Z Einsteinovy Pra\u017Esk\xE9 korespondence" + year: '1962' + qc6CJjYAAAAJ:z2g7kDSNNyoC: + citations: 17 + title: "Eine neue elektrostatische Methode zur Messung kleiner Elektrizit\xE4tsmengen" + year: '1908' + qc6CJjYAAAAJ:zCpYd49hD24C: + citations: 0 + title: "Einstein e la sua relativit\xE0" + year: '1922' + qc6CJjYAAAAJ:zEYdoEEwLqEC: + citations: 11 + title: "Sur les forces pond\xE9romotrices qui agissent sur des conducteurs ferromagn\xE9tiques dispos\xE9s dans un champ magn\xE9tique et parcourus par un courant" + year: '1910' + qc6CJjYAAAAJ:zG6RlwjYRPQC: + citations: 19 + title: Marian v. Smoluchowski + year: '1917' + qc6CJjYAAAAJ:zI9YInTrFVIC: + citations: 0 + title: 'Albert Einstein] to Wander de Haas: Letter, 17 Mar 1915' + year: Unknown Year + qc6CJjYAAAAJ:zLWjf1WUPmwC: + citations: 19 + title: "Les fondements de la th\xE9orie de la relativit\xE9 g\xE9n\xE9rale" + year: '1933' + qc6CJjYAAAAJ:zLla2nKXDtwC: + citations: 0 + title: On the Misery of Children, 7 Oct 1921 + year: Unknown Year + qc6CJjYAAAAJ:zPkyA21Y468C: + citations: 0 + title: Physical Interpretations of Relativity Theory + year: Unknown Year + qc6CJjYAAAAJ:zTJoPluU4X4C: + citations: 0 + title: Nonlinear Model Equations and Variational Principles + year: Unknown Year + qc6CJjYAAAAJ:z_wVstp3MssC: + citations: 24 + title: 'About Zionism: Speeches and Letters by Professor Albert Einstein' + year: '1930' + qc6CJjYAAAAJ:za7pDTvVV8kC: + citations: 16 + title: Zur Theorie der Lichtfortpflanzung in dispergierenden Medien + year: '2006' + qc6CJjYAAAAJ:ziRtHtnO-_kC: + citations: 0 + title: Robert Nathan + year: '1967' + qc6CJjYAAAAJ:ziW8EwMpto0C: + citations: 0 + title: "Albert Einstein] to Rudolf F\xF6rster: Letter, 17 Jan 1918" + year: Unknown Year + qc6CJjYAAAAJ:zxzvZ9-XIW8C: + citations: 73 + title: Albert Einstein, the human side + year: '2013' diff --git a/_data/cv.yml b/_data/cv.yml index 5885b30b63048..080b9df634852 100644 --- a/_data/cv.yml +++ b/_data/cv.yml @@ -1,97 +1,189 @@ -- title: General Information - type: map - contents: - - name: Full Name - value: Albert Einstein - - name: Date of Birth - value: 14th March 1879 - - name: Languages - value: English, German - -- title: Education - type: time_table - contents: - - title: PhD - institution: University of Zurich, Zurich, Switzerland - year: 1905 - description: - - Description 1. - - Description 2. - - title: Description 3. - contents: - - Sub-description 1. - - Sub-description 2. - - title: Federal teaching diploma - institution: Eidgenössische Technische Hochschule, Zurich, Switzerland - year: 1900 - description: - - Description 1. - - Description 2. - -- title: Experience - type: time_table - contents: - - title: Professor of Theoretical Physics - institution: Institute for Advanced Study, Princeton University - year: 1933 - 1955 - description: - - Description 1. - - Description 2. - - title: Description 3. - contents: - - Sub-description 1. - - Sub-description 2. - - title: Visiting Professor - institution: California Institute of Technology, Pasadena, California, US - year: 1933 - description: - - Description 1. - - Description 2. - - - title: Director - institution: Kaiser Wilhelm Institute for Physics, Berlin, Germany. - year: 1917-1933 - - - title: Professor of Theoretical Physics - institution: Karl-Ferdinand University, Prague, Czechoslovakia - year: 1911 - 1917 - description: - - - title: Associate Professor of Theoretical Physics - institution: University of Zurich, Zurich, Switzerland - year: 1909 - 1911 - -- title: Open Source Projects - type: time_table - contents: - - title: al-folio - year: 2015-now - description: A beautiful, simple, clean, and responsive Jekyll theme for academics. - -- title: Honors and Awards - type: time_table - contents: - - year: 1921 - items: - - Nobel Prize in Physics - - Matteucci Medal - - year: 2029 - items: - - Max Planck Medal - -- title: Academic Interests - type: nested_list - contents: - - title: Topic 1. - items: - - Description 1. - - Description 2. - - title: Topic 2. - items: - - Description 1. - - Description 2. - -- title: Other Interests - type: list - contents: - - Hobbies: Hobby 1, Hobby 2, etc. +cv: + name: Albert Einstein + label: Scientist + email: einstein@example.com + location: Princeton, NJ + image: "" + summary: A German-born theoretical physicist, widely ranked among the greatest and most influential scientists of all time + + social_networks: + - network: X + username: AlbertEinstein + - network: GitHub + username: example + - network: LinkedIn + username: example + + address: + street: 2712 Broadway St + city: San Francisco + region: California + postalCode: CA 94115 + countryCode: US + + sections: + Education: + - institution: University of Zurich + location: Zurich, Switzerland + url: https://www.uzh.ch/ + area: Physics + studyType: PhD + start_date: 1900 + end_date: 1905 + score: "" + courses: "Theory of Relativity" + highlights: + - Description 1. + - Description 2. + + - institution: Eidgenössische Technische Hochschule + location: Zurich, Switzerland + area: Physics + studyType: Federal teaching diploma + start_date: 1896 + end_date: 1900 + highlights: + - Description 1. + - Description 2. + + Experience: + - company: Institute for Advanced Study, Princeton University + position: Professor of Theoretical Physics + location: Princeton University, NJ + start_date: 1933 + end_date: 1955 + summary: Teaching at Palmer Physical Laboratory (now 302 Frist Campus Center). While not a professor at Princeton, I associated with the physics professors and continued to give lectures on campus. + highlights: + - Relativity + - Description 2. + + - company: California Institute of Technology + position: Visiting Professor + location: Pasadena, California, US + start_date: 1933 + end_date: 1933 + highlights: + - Description 1. + - Description 2. + + - company: Kaiser Wilhelm Institute for Physics + position: Director + location: Berlin, Germany + start_date: 1917 + end_date: 1933 + + - company: Karl-Ferdinand University + position: Professor of Theoretical Physics + location: Prague, Czechoslovakia + start_date: 1911 + end_date: 1917 + + - company: University of Zurich + position: Associate Professor of Theoretical Physics + location: Zurich, Switzerland + start_date: 1909 + end_date: 1911 + + Volunteer: + - company: People's Climate March + position: Lead Organizer + location: Zurich, Switzerland + start_date: 2014-04-01 + end_date: 2015-07-01 + summary: Lead organizer for the New York City branch of the People's Climate March, the largest climate march in history. + highlights: + - "Awarded 'Climate Hero' award by Greenpeace for my efforts organizing the march." + - "Men of the year 2014 by Time magazine" + + Awards: + - title: Nobel Prize in Physics + authors: + - "Royal Swedish Academy of Sciences" + date: 1921-11-01 + awarder: Royal Swedish Academy of Sciences + url: https://www.nobelprize.org/prizes/physics/1921/einstein/biographical/ + summary: The Nobel Prizes are five separate prizes that, according to Alfred Nobel's will of 1895, are awarded to 'those who, during the preceding year, have conferred the greatest benefit to humankind.' + + - title: Max Planck Medal + authors: + - "German Physical Society" + date: 2029 + awarder: German Physical Society + summary: Awarded for outstanding scientific achievement + + Publications: + - title: Zur Elektrodynamik bewegter Körper + authors: + - Albert Einstein + publisher: Annalen der Physik + releaseDate: 1905-06-30 + url: https://en.wikisource.org/wiki/Translation:On_the_Electrodynamics_of_Moving_Bodies + summary: It concerned an interpretation of the Michelson–Morley experiment and the properties of light and time. Special relativity incorporates the principle that the speed of light is the same for all inertial observers regardless of the state of motion of the source. + + - title: Über einen die Erzeugung und Verwandlung des Lichtes betreffenden heuristischen Gesichtspunkt + authors: + - Albert Einstein + publisher: Annalen der Physik + releaseDate: 1905-03-18 + url: https://de.wikisource.org/wiki/Über_einen_die_Erzeugung_und_Verwandlung_des_Lichtes_betreffenden_heuristischen_Gesichtspunkt + summary: In the second paper, he applied the quantum theory to light to explain the photoelectric effect. In particular, he used the idea of light quanta (photons) to explain experimental results, but stressed the importance of the experimental results. The importance of his work on the photoelectric effect earned him the Nobel Prize in Physics in 1921. + + - title: Die Grundlage der allgemeinen Relativitätstheorie + authors: + - Albert Einstein + publisher: Annalen der Physik + releaseDate: 1916-03-20 + url: https://de.wikisource.org/wiki/Die_Grundlage_der_allgemeinen_Relativitätstheorie + summary: The publication of the theory of general relativity made him internationally famous. He was professor of physics at the universities of Zurich (1909–1911) and Prague (1911–1912), before he returned to ETH Zurich (1912–1914). + + Skills: + - name: Physics + level: Master + icon: fa-solid fa-hashtag + keywords: "Quantum Mechanics, Quantum Computing, Quantum Information, Quantum Cryptography, Quantum Communication, Quantum Teleportation" + + Languages: + - name: German + summary: "Native speaker" + + - name: English + summary: "Fluent" + + Interests: + - name: Physics + icon: fa-solid fa-tag + keywords: "Quantum Mechanics, Quantum Computing, Quantum Information, Quantum Cryptography, Quantum Communication, Quantum Teleportation" + + Certificates: + - name: Machine Learning + date: 2018-01-01 + issuer: Stanford University + icon: fa-solid fa-location-dot + + - name: Quantum Computing + date: 2018-01-01 + issuer: Stanford University + icon: fa-solid fa-tag + + - name: Quantum Information + date: 2018-01-01 + issuer: Stanford University + icon: fa-solid fa-envelope + + Projects: + - name: Quantum Computing + summary: Quantum computing is the use of quantum-mechanical phenomena such as superposition and entanglement to perform computation. Computers that perform quantum computations are known as quantum computers. + highlights: + - Quantum Teleportation + - Quantum Cryptography + start_date: 2018-01-01 + end_date: 2018-01-01 + + References: + - name: Professor John Doe + icon: fa-solid fa-laptop + reference: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam condimentum, diam quis convallis euismod, arcu mi ullamcorper lorem, a vestibulum nunc magna at sem. Sed in risus ac felis varius blandit. + + - name: Professor Jane Smith + icon: fa-solid fa-thumbtack + reference: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam condimentum, diam quis convallis euismod, arcu mi ullamcorper lorem, a vestibulum nunc magna at sem. Sed in risus ac felis varius blandit. diff --git a/_data/repositories.yml b/_data/repositories.yml index 97161fc3e507f..776ba189e7613 100644 --- a/_data/repositories.yml +++ b/_data/repositories.yml @@ -1,5 +1,6 @@ github_users: + repo_description_lines_max: 2 github_repos: diff --git a/_data/socials.yml b/_data/socials.yml index a72fcaf2eda75..981eba50117ed 100644 --- a/_data/socials.yml +++ b/_data/socials.yml @@ -1,53 +1,17 @@ # this file contains the social media links and usernames of the author -# the commented lines are the default social media links supported by the template # the socials will be displayed in the order they are defined here - -# acm_id: # your dl.acm.org/profile/id -# blogger_url: # your blogger URL +# for more information, please refer to the documentation of jekyll-socials plugin: https://github.com/george-gca/jekyll-socials +# cv_pdf: /assets/pdf/example_pdf.pdf # path to your CV PDF file bluesky_url: https://bsky.app/profile/animesh-garg.bsky.social # your bluesky URL -# dblp_url: https://dblp.org/pid/123/5728.html # your DBLP profile url -# discord_id: # your discord id (18-digit unique numerical identifier) email: animesh.garg@gatech.edu # your email address -# facebook_id: # your facebook id -# flickr_id: # your flickr id github_username: animesh-garg # your GitHub user name -# gitlab_username: # your GitLab user name -# hal_id: # your HAL id (https://hal.science/) -# ieee_id: # your ieeexplore.ieee.org/author/id -# inspirehep_id: 1010907 # Inspire HEP author ID -# instagram_id: # your instagram id -# kaggle_id: # your kaggle id -# keybase_username: # your keybase user name -# lastfm_id: # your lastfm id -# lattes_id: # your ID on Lattes (Brazilian Lattes CV) -# leetcode_id: # your LeetCode id linkedin_username: animeshgarg # your LinkedIn user name -# mastodon_username: # your mastodon instance+username in the format instance.tld/@username -# medium_username: # your Medium username -# orcid_id: 0000-0003-0482-4296 # your ORCID ID -# osf_id: # your OSF ID -# pinterest_id: # your pinterest id -# publons_id: # your ID on Publons -# quora_username: # your Quora username -# research_gate_profile: # your profile on ResearchGate # rss_icon: true # comment this line to hide the RSS icon scholar_userid: zp8V7ZMAAAAJ # your Google Scholar ID -# scopus_id: # your profile on Scopus -# semanticscholar_id: 1873736 # your Semantic Scholar ID -# spotify_id: # your spotify id -# stackoverflow_id: # your stackoverflow id -# strava_userid: # your strava user id -# telegram_username: # your Telegram user name -# unsplash_id: # your unsplash id # wechat_qr: # filename of your wechat qr-code saved as an image (e.g., wechat-qr.png if saved to assets/img/wechat-qr.png) # whatsapp_number: # your WhatsApp number (full phone number in international format. Omit any zeroes, brackets, or dashes when adding the phone number in international format.) -# wikidata_id: # your wikidata id -# wikipedia_id: # your wikipedia id (Case sensitive) -# work_url: # work page URL x_username: animesh_garg # your X handle -# youtube_id: # your youtube channel id (youtube.com/@) -# zotero_username: # your zotero username -# custom_social: # can be any name here other than the ones already defined above +# custom_social: # can be any name here other than the ones already defined in the jekyll-socials plugin # logo: https://www.alberteinstein.com/wp-content/uploads/2024/03/cropped-favicon-192x192.png # can be png, svg, jpg # title: Custom Social # url: https://www.alberteinstein.com/ diff --git a/_includes/calendar.liquid b/_includes/calendar.liquid new file mode 100644 index 0000000000000..fab192dd7b98f --- /dev/null +++ b/_includes/calendar.liquid @@ -0,0 +1,25 @@ +{% if include.calendar_id %} +
+

Upcoming Events

+ + + + +
+{% endif %} diff --git a/_includes/course_schedule.liquid b/_includes/course_schedule.liquid new file mode 100644 index 0000000000000..363387b6c2ebb --- /dev/null +++ b/_includes/course_schedule.liquid @@ -0,0 +1,71 @@ +{% assign course = site.teachings | where: 'course_id', include.course_id | first %} + +{% if course %} +
+

{{ course.title }}

+ + {% if course.description %} +
+ {{ course.description | markdownify }} +
+ {% endif %} + + {% if course.instructor %} +

Instructor: {{ course.instructor }}

+ {% endif %} + + {% if course.term %} +

Term: {{ course.term }}

+ {% endif %} + + {% if course.schedule %} +

Maruan

Rohan Deb Sarkar

Maruan

Rohan Deb Sarkar

Amir Pourmand

George
+ + + + + + + + + + {% for entry in course.schedule %} + + + + + + + {% endfor %} + +
WeekDateTopicMaterials
{{ entry.week }}{{ entry.date }} + {% if entry.topic %} + {{ entry.topic }} + {% endif %} + {% if entry.description %} +
{{ entry.description | markdownify }}
+ {% endif %} +
+ {% if entry.materials %} +
    + {% for material in entry.materials %} +
  • + {% if material.url %} + {% if material.url contains '://' %} + {{ material.name }} + {% else %} + {{ material.name }} + {% endif %} + {% else %} + {{ material.name }} + {% endif %} +
  • + {% endfor %} +
+ {% endif %} +
+ {% else %} +

No schedule available for this course.

+ {% endif %} + +{% endif %} diff --git a/_includes/courses.liquid b/_includes/courses.liquid new file mode 100644 index 0000000000000..85858d38bf5ab --- /dev/null +++ b/_includes/courses.liquid @@ -0,0 +1,37 @@ +{% if site.teachings %} +
+ {% assign courses_by_year = site.teachings | sort: 'year' | reverse | group_by: 'year' %} + + {% for year_group in courses_by_year %} +

{{ year_group.name }}

+
+ {% assign year_courses = year_group.items | sort: 'term' %} + {% for course in year_courses %} +
+

+ {{ course.title }} +

+ +
+ {% if course.term %} + {{ course.term }} + {% endif %} + + {% if course.instructor %} + {{ course.instructor }} + {% endif %} +
+ + {% if course.description %} +
+ {{ course.description | markdownify }} +
+ {% endif %} +
+ {% endfor %} +
+ {% endfor %} +
+{% else %} +

No courses available yet.

+{% endif %} diff --git a/_includes/cv/awards.liquid b/_includes/cv/awards.liquid new file mode 100644 index 0000000000000..a57cac51d6ea2 --- /dev/null +++ b/_includes/cv/awards.liquid @@ -0,0 +1,66 @@ +{% comment %} + Unified awards entry renderer for both formats +{% endcomment %} + +
    + {% for entry in entries %} +
  • +
    + {% capture start_date %} + {% if entry.date %}{{ entry.date }}{% endif %} + {% endcapture %} + + {% if start_date != '' %} +
    + + + + + + +
    + + {{- start_date | split: '-' | slice: 0, 1 | join: '' -}} + +
    +
    +
    + {% if entry.url %} +
    + {{ entry.title }} +
    + {% elsif entry.title %} +
    {{ entry.title }}
    + {% endif %} + + {% if entry.awarder %} +
    {{ entry.awarder }}
    + {% endif %} + + {% if entry.summary %} +

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    + {% endif %} +
    + {% else %} +
    + {% if entry.url %} +
    + {{ entry.title }} +
    + {% elsif entry.title %} +
    {{ entry.title }}
    + {% endif %} + + {% if entry.awarder %} +
    {{ entry.awarder }}
    + {% endif %} + + {% if entry.summary %} +

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    + {% endif %} +
    + {% endif %} +
    +
  • + {% endfor %} +
diff --git a/_includes/cv/certificates.liquid b/_includes/cv/certificates.liquid new file mode 100644 index 0000000000000..05613ebc97ff0 --- /dev/null +++ b/_includes/cv/certificates.liquid @@ -0,0 +1,28 @@ +{% comment %} + Unified certificates entry renderer for both formats +{% endcomment %} + +
    + {% for entry in entries %} +
  • + {% if entry.icon %} + + {% endif %} + {% if entry.url %} + {{ entry.name }} + {% else %} + {{ entry.name }} + {% endif %} + + {% if entry.issuer %} + - {{ entry.issuer }} + {% endif %} + + {% if entry.date %} + ({{ entry.date | split: '-' | slice: 0, 1 | join: '' }}) + {% endif %} +
  • + {% endfor %} +
diff --git a/_includes/cv/education.liquid b/_includes/cv/education.liquid new file mode 100644 index 0000000000000..773e74f43976c --- /dev/null +++ b/_includes/cv/education.liquid @@ -0,0 +1,93 @@ +{% comment %} + Unified education entry renderer for both RenderCV and JSONResume formats + Handles both: + - RenderCV: institution, area, studyType (or degree), start_date, end_date, location, courses, highlights + - JSONResume: institution, area, studyType, startDate, endDate, location, courses, highlights +{% endcomment %} + +
    + {% for entry in entries %} +
  • +
    +
    + {% capture start_date %} + {% if entry.start_date %}{{ entry.start_date }}{% elsif entry.startDate %}{{ entry.startDate }}{% endif %} + {% endcapture %} + {% capture end_date %} + {% if entry.end_date %}{{ entry.end_date }}{% elsif entry.endDate %}{{ entry.endDate }}{% endif %} + {% endcapture %} + + {% if start_date != '' %} + {% comment %} Extract year only from dates like "1933-01-01" or just use "1933" as is {% endcomment %} + {% assign startDate = start_date | split: '-' | first %} + {% assign endDate = end_date | split: '-' | first | default: 'Present' %} + {% assign date = startDate | append: ' - ' | append: endDate %} + {% else %} + {% assign date = null %} + {% endif %} + + + + + + + {% capture location %} + {% if entry.location %}{{ entry.location }}{% endif %} + {% endcapture %} + {% if location != '' %} + + + + {% endif %} + +
    + {% if date %} + {{ date }} + {% endif %} +
    +

    + + {{ location }} +

    +
    +
    +
    + {% capture study_type %} + {% if entry.studyType %}{{ entry.studyType }}{% elsif entry.degree %}{{ entry.degree }}{% endif %} + {% endcapture %} + + {% if entry.url %} +
    + {{ study_type }} +
    + {% elsif study_type != '' %} +
    {{ study_type }}
    + {% endif %} + + {% if entry.institution %} +
    {{ entry.institution }}
    + {% endif %} + + {% if entry.area %} +
    {{ entry.area }}
    + {% endif %} + + {% if entry.courses or entry.highlights %} +
      + {% for item in entry.courses %} +
    • + {{ item }} +
    • + {% endfor %} + {% for item in entry.highlights %} +
    • + {{ item | markdownify | remove: '

      ' | remove: '

      ' }}
      +
    • + {% endfor %} +
    + {% endif %} +
    +
    +
  • + {% endfor %} +
diff --git a/_includes/cv/experience.liquid b/_includes/cv/experience.liquid new file mode 100644 index 0000000000000..515a39bf67ed3 --- /dev/null +++ b/_includes/cv/experience.liquid @@ -0,0 +1,91 @@ +{% comment %} + Unified work/experience entry renderer for both RenderCV and JSONResume formats + Handles both: + - RenderCV: company, position, start_date, end_date, location, url, summary, highlights + - JSONResume: name, position, startDate, endDate, location, url, summary, highlights +{% endcomment %} + +
    + {% for entry in entries %} +
  • +
    +
    + {% capture start_date %} + {% if entry.start_date %}{{ entry.start_date }}{% elsif entry.startDate %}{{ entry.startDate }}{% endif %} + {% endcapture %} + {% capture end_date %} + {% if entry.end_date %}{{ entry.end_date }}{% elsif entry.endDate %}{{ entry.endDate }}{% endif %} + {% endcapture %} + + {% if start_date != '' %} + {% comment %} Extract year only from dates like "1933-01-01" or just use "1933" as is {% endcomment %} + {% assign startDate = start_date | split: '-' | first %} + {% assign endDate = end_date | split: '-' | first | default: 'Present' %} + {% assign date = startDate | append: ' - ' | append: endDate %} + {% else %} + {% assign date = '' %} + {% endif %} + + + + + + + {% capture location %} + {% if entry.location %}{{ entry.location }}{% endif %} + {% endcapture %} + {% if location != '' %} + + + + {% endif %} + +
    + {{ date }} +
    +

    + + {{ location }} +

    +
    +
    +
    + {% capture position_title %} + {% if entry.position %}{{ entry.position }}{% endif %} + {% endcapture %} + + {% if entry.url %} +
    + {{ position_title }} +
    + {% elsif position_title != '' %} +
    {{ position_title }}
    + {% endif %} + + {% capture company_name %} + {% if entry.name %}{{ entry.name }}{% elsif entry.company %}{{ entry.company }}{% elsif entry.organization %}{{ entry.organization }}{% endif %} + {% endcapture %} + {% if company_name != '' %} +
    {{ company_name }}
    + {% endif %} + + {% if entry.summary %} +
    + {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }} +
    + {% endif %} + + {% if entry.highlights %} +
      + {% for item in entry.highlights %} +
    • + {{ item | markdownify | remove: '

      ' | remove: '

      ' }}
      +
    • + {% endfor %} +
    + {% endif %} +
    +
    +
  • + {% endfor %} +
diff --git a/_includes/cv/interests.liquid b/_includes/cv/interests.liquid new file mode 100644 index 0000000000000..f4997a75a8eef --- /dev/null +++ b/_includes/cv/interests.liquid @@ -0,0 +1,29 @@ +{% comment %} + Unified interests entry renderer for both formats +{% endcomment %} + +
+ {% for entry in entries %} +
+ {% if entry.icon %} + + {% endif %} + {{ entry.name }}: + {% if entry.keywords %} + {% for keyword in entry.keywords %} + {% if forloop.last %} + {{ keyword }} + {% else %} + {{ keyword }}, + {% endif %} + {% endfor %} + {% endif %} +
+ {% endfor %} +
+ + diff --git a/_includes/cv/languages.liquid b/_includes/cv/languages.liquid new file mode 100644 index 0000000000000..5f58dd1feb5e6 --- /dev/null +++ b/_includes/cv/languages.liquid @@ -0,0 +1,28 @@ +{% comment %} + Unified languages entry renderer for both formats + - RenderCV uses: name, summary + - JSONResume uses: language, fluency +{% endcomment %} + +
+ {% for entry in entries %} +
+ {% if entry.icon %} + + {% endif %} + {% capture lang_name %} + {% if entry.name %}{{ entry.name }}{% elsif entry.language %}{{ entry.language }}{% endif %} + {% endcapture %} + {% capture fluency %} + {% if entry.summary %}{{ entry.summary }}{% elsif entry.fluency %}{{ entry.fluency }}{% endif %} + {% endcapture %} + {{ lang_name }}: {{ fluency }} +
+ {% endfor %} +
+ + diff --git a/_includes/cv/projects.liquid b/_includes/cv/projects.liquid new file mode 100644 index 0000000000000..7f5dc86d6c69e --- /dev/null +++ b/_includes/cv/projects.liquid @@ -0,0 +1,31 @@ +{% comment %} + Unified projects entry renderer for both formats +{% endcomment %} + +
    + {% for entry in entries %} +
  • + {% if entry.url %} +
    + {{ entry.name }} +
    + {% else %} +
    {{ entry.name }}
    + {% endif %} + + {% if entry.summary %} +

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    + {% endif %} + + {% if entry.highlights %} +
      + {% for item in entry.highlights %} +
    • + {{ item | markdownify | remove: '

      ' | remove: '

      ' }}
      +
    • + {% endfor %} +
    + {% endif %} +
  • + {% endfor %} +
diff --git a/_includes/cv/publications.liquid b/_includes/cv/publications.liquid new file mode 100644 index 0000000000000..22f530adc57b5 --- /dev/null +++ b/_includes/cv/publications.liquid @@ -0,0 +1,70 @@ +{% comment %} + Unified publications entry renderer for both formats +{% endcomment %} + +
    + {% for entry in entries %} +
  • +
    + {% capture pub_date %} + {% if entry.releaseDate %}{{ entry.releaseDate }}{% elsif entry.date %}{{ entry.date }}{% endif %} + {% endcapture %} + + {% if pub_date != '' %} +
    + + + + + + +
    + + {{- pub_date | split: '-' | slice: 0, 1 | join: '' -}} + +
    +
    +
    + {% if entry.url %} +
    + {{ entry.title | default: entry.name }} +
    + {% elsif entry.title %} +
    {{ entry.title }}
    + {% endif %} + + {% if entry.publisher %} +
    + {{ entry.publisher }} +
    + {% endif %} + + {% if entry.summary %} +

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    + {% endif %} +
    + {% else %} +
    + {% if entry.url %} +
    + {{ entry.title | default: entry.name }} +
    + {% elsif entry.title %} +
    {{ entry.title }}
    + {% endif %} + + {% if entry.publisher %} +
    + {{ entry.publisher }} +
    + {% endif %} + + {% if entry.summary %} +

    {{ entry.summary | markdownify | remove: '

    ' | remove: '

    ' }}

    + {% endif %} +
    + {% endif %} +
    +
  • + {% endfor %} +
diff --git a/_includes/cv/references.liquid b/_includes/cv/references.liquid new file mode 100644 index 0000000000000..8fc9456f43b02 --- /dev/null +++ b/_includes/cv/references.liquid @@ -0,0 +1,15 @@ +{% comment %} + Unified references entry renderer for both formats +{% endcomment %} + +
    + {% for entry in entries %} +
  • + {% if entry.icon %} + + {% endif %} + {{ entry.name }} +

    {{ entry.reference | markdownify | remove: '

    ' | remove: '

    ' }}

    +
  • + {% endfor %} +
diff --git a/_includes/cv/skills.liquid b/_includes/cv/skills.liquid new file mode 100644 index 0000000000000..a35e49b81afec --- /dev/null +++ b/_includes/cv/skills.liquid @@ -0,0 +1,32 @@ +{% comment %} + Unified skills entry renderer for both formats +{% endcomment %} + +
+ {% for entry in entries %} +
+ {% if entry.icon %} + + {% endif %} + + {{- entry.name -}} + {%- if entry.level %} ({{ entry.level }}){% endif %}: + {% if entry.keywords %} + {% for keyword in entry.keywords %} + {% if forloop.last %} + {{ keyword }} + {% else %} + {{ keyword }}, + {% endif %} + {% endfor %} + {% endif %} +
+ {% endfor %} +
+ + diff --git a/_includes/disqus.liquid b/_includes/disqus.liquid index 6979a4eced2df..2874b42ed7403 100644 --- a/_includes/disqus.liquid +++ b/_includes/disqus.liquid @@ -9,5 +9,5 @@ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); })(); - + diff --git a/_includes/distill_scripts.liquid b/_includes/distill_scripts.liquid index 8a8aa1f329486..24d80d2f18a6d 100644 --- a/_includes/distill_scripts.liquid +++ b/_includes/distill_scripts.liquid @@ -120,12 +120,7 @@ {% if page.tikzjax %} - + {% endif %} {% if page.typograms %} @@ -194,20 +189,58 @@ {% endif %} +{% if site.enable_cookie_consent %} + + + +{% endif %} + {% if site.enable_google_analytics %} - - + + {% endif %} {% if site.enable_cronitor_analytics %} - - + + {% endif %} {% if site.enable_pirsch_analytics %} {% endif %} {% if site.enable_openpanel_analytics %} - - + + {% endif %} {% if site.enable_progressbar %} diff --git a/_includes/giscus.liquid b/_includes/giscus.liquid index e489536df4ce0..f4e6f06905e09 100644 --- a/_includes/giscus.liquid +++ b/_includes/giscus.liquid @@ -9,33 +9,17 @@ {% endif %} {% if site.giscus.repo %} - - + + {% else %} - {% capture giscus_warning %} > ##### giscus comments misconfigured > Please follow instructions at - [http://giscus.app](http://giscus.app) and update your giscus configuration. {: .block-danger } {% endcapture %} + {% capture giscus_warning %} +> ##### giscus comments misconfigured +> Please follow instructions at [http://giscus.app](http://giscus.app) and update your giscus configuration. +{: .block-danger } + {% endcapture %} {{ giscus_warning | markdownify }} {% endif %} diff --git a/_includes/head.liquid b/_includes/head.liquid index 69e99de9a39bf..d79bea9ee3d6a 100644 --- a/_includes/head.liquid +++ b/_includes/head.liquid @@ -1,6 +1,14 @@ {% include metadata.liquid %} + + + + + + +{% endif %} + +{% if site.enable_cookie_consent %} + + {% endif %} diff --git a/_includes/header.liquid b/_includes/header.liquid index f8994d53f5132..80295e436b888 100644 --- a/_includes/header.liquid +++ b/_includes/header.liquid @@ -6,12 +6,12 @@ PAIR Logo - {% elsif page.permalink != '/' %} + {% elsif page.permalink == '/' %} {% if site.title == 'blank' %} {% if site.first_name %} @@ -31,7 +31,7 @@ {% elsif site.enable_navbar_social %} - + {% endif %} {% endif %} @@ -140,9 +140,9 @@
  • {% endif %} diff --git a/_includes/metadata.liquid b/_includes/metadata.liquid index b1155b69d2f61..e12e394b40d05 100644 --- a/_includes/metadata.liquid +++ b/_includes/metadata.liquid @@ -85,6 +85,9 @@ {% when 'acm_id' %} {% capture link %}https://dl.acm.org/profile/{{ social[1] }}/{% endcapture %} {% assign sameaslinks = sameaslinks | push: link %} + {% when 'arxiv_id' %} + {% capture link %}https://arxiv.org/a/{{ social[1] }}.html{% endcapture %} + {% assign sameaslinks = sameaslinks | push: link %} {% when 'blogger_url' %} {% capture link %}{{ social[1] }}{% endcapture %} {% assign sameaslinks = sameaslinks | push: link %} diff --git a/_includes/projects_horizontal.liquid b/_includes/projects_horizontal.liquid index eb89125f83c16..8630e69e1d72e 100644 --- a/_includes/projects_horizontal.liquid +++ b/_includes/projects_horizontal.liquid @@ -4,14 +4,7 @@
    {% if project.img %}
    - {% - include figure.liquid - loading="eager" - path=project.img - sizes="(min-width: 768px) 156px, 50vw" - alt="project thumbnail" - class="card-img" - %} + {% include figure.liquid loading="eager" path=project.img sizes="(min-width: 768px) 156px, 50vw" alt="project thumbnail" class="card-img" %}
    {% endif %}
    diff --git a/_includes/repository/repo.liquid b/_includes/repository/repo.liquid index e353de0b8333a..d2e4c64c1566c 100644 --- a/_includes/repository/repo.liquid +++ b/_includes/repository/repo.liquid @@ -36,12 +36,12 @@ {{ include.repository }} {{ include.repository }}
    diff --git a/_includes/repository/repo_trophies.liquid b/_includes/repository/repo_trophies.liquid index 8535bd59cd3d9..d0f3e9ca5c015 100644 --- a/_includes/repository/repo_trophies.liquid +++ b/_includes/repository/repo_trophies.liquid @@ -4,12 +4,12 @@ {{ include.username }} {{ include.username }} @@ -17,12 +17,12 @@ {{ include.username }} {{ include.username }} @@ -30,12 +30,12 @@ {{ include.username }} {{ include.username }} diff --git a/_includes/repository/repo_user.liquid b/_includes/repository/repo_user.liquid index 2889cff368207..d41519c9c69ec 100644 --- a/_includes/repository/repo_user.liquid +++ b/_includes/repository/repo_user.liquid @@ -23,12 +23,12 @@ {{ include.username }} {{ include.username }}
    diff --git a/_includes/scripts.liquid b/_includes/scripts.liquid index 0f0738816fd90..e6b21ae57437b 100644 --- a/_includes/scripts.liquid +++ b/_includes/scripts.liquid @@ -98,6 +98,11 @@ {% endif %} +{% if page.calendar %} + + +{% endif %} + {% if page.chart and page.chart.plotly %} + {% endif %} {% if page.typograms %} @@ -223,29 +223,58 @@ {% endunless %} {% endif %} +{% if site.enable_cookie_consent %} + + + +{% endif %} + {% if site.enable_google_analytics %} - - - + + {% endif %} {% if site.enable_cronitor_analytics %} - - + + {% endif %} {% if site.enable_pirsch_analytics %} {% endif %} {% if site.enable_openpanel_analytics %} - - + + {% endif %} {% if site.enable_progressbar %} diff --git a/_layouts/about.liquid b/_layouts/about.liquid index 7e27fcdab53bb..f5b9435cb58e3 100644 --- a/_layouts/about.liquid +++ b/_layouts/about.liquid @@ -55,7 +55,7 @@ layout: default {% include media.liquid limit=true %} {% endif %} - + {% if page.latest_posts and page.latest_posts.enabled %}

    @@ -75,7 +75,7 @@ layout: default {% if page.social %} diff --git a/_layouts/bib.liquid b/_layouts/bib.liquid index 034e0b8ec15e8..34a6e31878488 100644 --- a/_layouts/bib.liquid +++ b/_layouts/bib.liquid @@ -4,7 +4,7 @@ {% if site.enable_publication_thumbnails %}
    {%- if entry.abbr -%} -