{"id":13424197,"url":"https://github.com/gaalcaras/academic","last_synced_at":"2025-04-06T05:16:13.164Z","repository":{"id":41293867,"uuid":"77161271","full_name":"gaalcaras/academic","owner":"gaalcaras","description":"Jekyll theme with a focus on simplicity, typography and flexibility","archived":false,"fork":false,"pushed_at":"2021-03-13T03:31:05.000Z","size":8709,"stargazers_count":88,"open_issues_count":8,"forks_count":88,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T03:09:52.536Z","etag":null,"topics":["gem","i18n","jekyll","jekyll-theme","multilingual"],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gaalcaras.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-12-22T16:53:07.000Z","updated_at":"2025-01-29T15:49:00.000Z","dependencies_parsed_at":"2022-08-30T04:53:04.030Z","dependency_job_id":null,"html_url":"https://github.com/gaalcaras/academic","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaalcaras%2Facademic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaalcaras%2Facademic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaalcaras%2Facademic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaalcaras%2Facademic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gaalcaras","download_url":"https://codeload.github.com/gaalcaras/academic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247436286,"owners_count":20938533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gem","i18n","jekyll","jekyll-theme","multilingual"],"created_at":"2024-07-31T00:00:50.061Z","updated_at":"2025-04-06T05:16:13.117Z","avatar_url":"https://github.com/gaalcaras.png","language":"CSS","funding_links":[],"categories":["CSS"],"sub_categories":[],"readme":"# academic\n\nAcademic is a [Jekyll](http://jekyllrb.com/) theme with a focus on simplicity, typography and flexibility.\nI originally designed it for my personal blog during my PhD thesis.\n\nCheck out my [personal website](https://gaalcaras.com) or my [blog](https://sociologs.com) to get a better feel for the Academic theme.\n\n![Academic screenshot](screenshot.png)\n\n**Simplicity**: both in design and configuration, Academic aims to let the writer and its readers focus on the content.\nAlmost all of the theme configuration happens in the `_config.yml` file.\n\n**Typography**: the goal of Academic is to let the author write very long and detailed posts, while being kind to its readers' eyes.\n\n**Flexibility**: Academic can be used to generate different layouts while keeping the same look and feel.\nAll features require you to *opt in*, which means that you can either use a very lean `_config.yml` or a very detailed one if you want to use more features.\n\n---\n\nTable of contents:\n\n\n* [Features](#features)\n* [Installation](#installation)\n* [Usage](#usage)\n\t* [Change the brand color](#change-the-brand-color)\n\t* [Setup your `_config.yml` file](#setup-your-_config-yml-file)\n\t\t* [General settings](#general-settings)\n\t\t* [Author](#author)\n\t\t* [Navigation menu](#navigation-menu)\n\t\t* [Multilingual and i18n support](#multilingual-and-i18n-support)\n\t\t* [Plugins](#plugins)\n\t* [Layouts](#layouts)\n\t\t* [Post layout](#post-layout)\n\t\t* [Page layout](#page-layout)\n\t\t* [About layout](#about-layout)\n\t\t* [Archive layout](#archive-layout)\n\t\t* [404 layout](#404-layout)\n\t\t* [Sitemap layout](#sitemap-layout)\n* [Contributing](#contributing)\n* [Release log](#release-log)\n* [License](#license)\n\n## Features\n\n+ **Responsive design** on every page\n+ Designed with **typography best practices** (and my own tastes) in mind:\n    + Simple but elegant fonts, with modular scale\n    + High contrast colors and backgrounds as much as possible ([read more](http://contrastrebellion.com/), [and more](https://backchannel.com/how-the-web-became-unreadable-a781ddc711b6))\n    + Comfortable line length (around 66 characters, [read more](http://webtypography.net/2.1.2))\n    + Attention to vertical rhythm, law of proximity and so on ([read more](http://typographyhandbook.com/))\n+ If you'd like a **multilingual** website, Academic has basic **i18n** support (no plugin required):\n    + *Supported languages* : English, French\n    + Lang selector to change languages automatically added in header and footer\n    + Basic SEO support for multilingual pages (sitemap and `\u003chead\u003e`)\n+ Posts layout allows you to:\n    + Add an **image thumbnail** and a **summary**\n    + Use mathematical notations with **MathJax** (loaded only on posts)\n    + **Tables and footnotes** styled by default (with the `redcarpet` markdown engine)\n    + Add your name and a shortbio at the end of each post\n+ Easily add a \"call to action\" (RSS feed, Twitter, etc.) at the end of each post and on your homepage\n+ **Add a Creative Commons license** to your website directly from your `_config.yml` file\n+ **Sitemap** and **404 page** layout\n+ Piwik tracking\n+ **About page** layout:\n    + Responsive two-columns layout\n    + Just fill out your usernames for Twitter, Github, LinkedIn, Keybase ; contact email or personal website ; link to your curriculum vitae.\n    + Academic automatically loads your Github profile picture.\n+ Choose between a **navigation menu** at the top or a **short pitch** for your blog\n+ Navigation menu:\n    + Hide pages from the navigation menu\n    + Add external links in the menu from the `_config.yml` file\n\n## Installation\n\nAdd this line to your Jekyll site's Gemfile:\n\n```ruby\ngem \"academic\"\n```\n\nAnd add this line to your Jekyll site's `_config.yml`:\n\n```yaml\ntheme: academic\n```\n\nAnd then execute:\n\n```\n$ bundle\n```\n\nOr install it yourself as:\n\n```\n$ gem install academic\n```\n\nThen add the `jekyll-data` plugin to your `Gemfile` ([see also](https://github.com/ashmaroli/jekyll-data#installation)):\n\n```ruby\ngroup :jekyll_plugins do\n  gem 'jekyll-data'\nend\n```\n\nI suggest you install and use `redcarpet` to generate your markdown ([read more](http://jekyllrb.com/docs/configuration/#redcarpet)).\n\n## Usage\n\n### Change the brand color\n\nAcademic uses 4 shades of grey (very dark grey for the main content, ligther greys to lessen the emphasis on some elements) and a single \"brand\" color.\n\nBy default, the brand color is `#d33682` (purple). If it's not to your taste, you can easily change it by overriding the `$brand-color` variable in `/assets/styles.scss`.\n\n```scss\n$brand-color: red;\n```\n\n### Setup your `_config.yml` file\n\n#### General settings\n\n`title_html`: [optional] you can style the title of your website with html elements.\n\nExample:\n\n```html\ntitle_html: \"\u003cb\u003ehello\u003c/b\u003eworld\"\n```\n\n`pitch`: [optional] a small sentence or motto to quickly describe your blog. If no pitch is detected, Academic will fill the top bar with a navigation menu. If you want to display a short pitch in the top bar, Academic will put thput the navigation menu in the footer. Please note that `pitch` is only used in the top bar ; it is different from the `description` field (used in the footer and the meta tags for search engines).\n\n`description`: [recommended] short description for search engines. It's displayed in the footer of every page. Not to be confused with `pitch`.\n\n`cc`: [optional] choose among the [Creative Commons](https://creativecommons.org/licenses/) licenses (v4). Accepted values are : `by`, `by-sa`, `by-nd`, `by-nc`, `by-nc-sa`, `by-nc-nd`. Defining the `cc` variable will add a small sentence in the footer. If no value is given, a small copyright is added instead.\n\n`nb_posts_page`: [optional] number of posts to display on the homepage. By default, all posts are listed. Note that you should create a page with the archive layout.\n\n`archive_permalink`: [optional] permalink of the archive page. Set to `\"/archive\"` by default.\n\n`repo`: [optional] link to your website repo. If defined, it's added in the footer. Nothing is displayed otherwise.\n\n`piwik`: [optional]\n\n+ `url`: [mandatory] URL of your Piwik Instance without a trailing slash (like `mywebsite.com/piwik`)\n+ `site_id`: [mandatory] The ID of your website in your Piwik instance\n\n#### Author\n\n`email`: [optional] add email address in about layout.\n\n`curriculum`: [optional]\n\n+ `name`: [optional] text of the link. Default : Curriculum Vitae.\n+ `url`: [mandatory] url of the curriculum file.\n\n`shortbio`: [optional] describe yourself in a sentence or two. If `shortbio` is defined, a small element is added at the end of the post to introduce the author to the readers.\n\n`author_display`: [optional] if `true`, the author's name (and `author_website`) is added in the footer. `false` by default.\n\n`author_website`: [optional] url to the external website of the author. If `author_website` exists, it is added in the about layout and in the footer (if `author_display` is `true`).\n\n`twitter_username`: [optional] your Twitter username. If it exists, your account will be linked in the \"call to action\" boxes (homepage and posts), in the footer and on the about page.\n\n`github_username`: [optional] your Github username. If it exists, your account will be linked in the footer and on the about page.\n\n`keybase_username`: [optional] your Keybase username. If it exists, your account will be linked on the about page.\n\n`linkedin_username`: [optional] your LinkedIn username. If it exists, your account will be linked on the about page.\n\n#### Navigation menu\n\n`nav_ext_links`: [optional] you can choose to add external links in the top bar. Each item has two attributes:\n\n+ `name`: [mandatory] text for the link\n+ `url`: [mandatory] url\n\nExample:\n\n```yaml\nnav_ext_links:\n  - name: Link 1\n    url: http://jupiterbroadcasting.com/\n  - name: Link 2\n    url: http://wallabag.org/\n```\n\n#### Multilingual and i18n support\n\nAcademic works perfectly well as a single language website.\nBy default, Academic is in English.\nYou can easily switch to another supported language :\n\n```yaml\nlangs: [\"fr\"]\n```\n\nIf you need to translate part of your pages or posts, Academic also supports basic i18n and multilingual features.\n\nTo enable multilingual mode, just add the following to your `_config.yml`:\n\n```yaml\nlangs: [\"fr\", \"en\"]\ndefaults:\n  - scope:\n      path: \"\"\n    values:\n      lang: \"fr\"\n```\n\nThe `langs` variable should be an array containing your languages.\nImportant: the first item should be your \"default\" language (ie the language that you translate posts from or/and that has the largest content available).\nThe double quotes around the language *do* matter.\n\nDon't forget to define a default lang for your whole website.\n\nIf you want to translate some of the variables in your `_config.yml`, you can just do this:\n\n```yaml\ntitle:\n  fr: \"Nom du site en Français\"\n  en: \"English name of the website\"\n```\n\nTranslating posts and pages is very easy.\nLet's say my default lang is `fr` and I want to translate `_posts/billet-au-hasard.md` to English.\n\n```yaml\n---\nlayout: post\ntitle:  \"Billet au hasard\"\npermalink: /fr/billet-au-hasard/\ndate:   2017-02-14 15:32:29 +0100\n---\n```\n\nFirst, I'll create a new file named `_posts/billet-au-hasard.en.md`.\nBoth files have to share the *exact same name before the first extension* (`.md` or `.en.md`) in order to signal to Academic that these posts are translations of eachother.\n\nThen, in `_posts/billet-au-hasard.en.md`, add the lang and change the permalink in your frontmatter:\n\n```yaml\nlayout: post\ntitle: \"Random post\"\npermalink: /en/random-post\ndate:   2017-02-14 15:32:29 +0100\nlang: en\n```\n\nThat's it!\nAcademic will handle the lang selector and will add `\u003clink /\u003e` to the `\u003chead\u003e` section to improve SEO.\n\nNote that you have to handle the permalinks manually.\nI recommend that you use the subdirectory `/lang/` naming convention everywhere, as exemplified above.\nYou should at least take care of your homepage URL.\n\nIf you'd like Academic to support more languages, please contribute by adding the appropriate translations in `/_data/i18n_academic.yml`.\n\n#### Plugins\n\nAcademic is compatible with the `jekyll-last-modified-at` plugin ([repo](https://github.com/gjtorikian/jekyll-last-modified-at)). If installed, the last modified date will be (discretely) displayed in the posts lists and in the post layout.\n\nIf you specified a Github `repo`, the last modified date will point to the revision history of the file.\n\n### Layouts\n\n#### Post layout\n\nIn the yaml header, you can add some tags to help Academic.\n\n`summary`: [optional] a short text or abstract. Used in the posts lists and on the post page.\n\n`thumbnail`: [optional] relative path to image or absolute url to an image that describes your post. Used in the posts lists and on the post page.\n\n#### Page layout\n\nIn the yaml header, you can add some tags to help Academic.\n\n`invisible`: [optional] if `true`, then this page will not be listed in the navigation menu.\n\n#### About layout\n\nWill automatically put the content of the page on the right column. The left column will automatically be filled with the author info provided in the `_config.yml`.\n\n#### Archive layout\n\nCreate a `archive.md` page, choose the \"archive\" layout. You don't need to write anything in this file, all posts published will be listed in reverse chronological order.\n\n#### 404 layout\n\nCreate a `404.md` page, set the layout:\n\n```\nlayout: pagenotfound\n```\n\nThe content of the page will be used in the 404 page.\n\n#### Sitemap layout\n\nCreate a `sitemap.xml` page, set the layout:\n\n```\nlayout: sitemap\n```\n\nYou now have a sitemap you can feed to the search engines.\n\n### Includes\n\nSometimes you need to use figures and images in your posts, with detailed captions and maybe even the source of the image.\nThe `image.html` allows you to do just that without all the HTML markup.\n\n```\n{% include image.html src=\"/assets/img/zotero-archives-numeriques/screencast.gif\"\n                      caption=\"Notre solution en action\" \n                      desc=\"Screencast de capture Zotero\"\n                      source=\"Google\"\n                      href=\"http://google.com\"%}\n```\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/gaalcaras/academic. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n## Release log\n\n+ 0.1.3 [2016-12]: design refinements (page and about layouts)\n+ 0.1.2 [2016-12]: bug fixes (footer, assets and gemfile cleaning) + `repo` var\n+ 0.1.1 [2016-12]: bug fixes (404 page layout, footer, posts list)\n+ 0.1.0 [2016-12]: first release of the theme.\n\n## License\n\nThe theme is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaalcaras%2Facademic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaalcaras%2Facademic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaalcaras%2Facademic/lists"}