{"id":46996091,"url":"https://github.com/pyiron/pyiron.github.io","last_synced_at":"2026-03-11T15:17:25.684Z","repository":{"id":27287922,"uuid":"113221010","full_name":"pyiron/pyiron.github.io","owner":"pyiron","description":"Website for pyiron - an integrated development environment (IDE) for computational materials science.","archived":false,"fork":false,"pushed_at":"2025-09-18T10:57:21.000Z","size":14133,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-09-18T11:40:43.384Z","etag":null,"topics":["jekyll","pyiron"],"latest_commit_sha":null,"homepage":"http://pyiron.org","language":"SCSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyiron.png","metadata":{"files":{"readme":"README.md","changelog":"news/_posts/2016-04-06-pyCMW-the-pyiron-predecessor.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-12-05T18:56:55.000Z","updated_at":"2025-09-18T10:57:24.000Z","dependencies_parsed_at":"2023-11-20T17:28:47.365Z","dependency_job_id":"a5a1185e-e79b-4949-8abf-d84ac4bb0725","html_url":"https://github.com/pyiron/pyiron.github.io","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pyiron/pyiron.github.io","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyiron%2Fpyiron.github.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyiron%2Fpyiron.github.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyiron%2Fpyiron.github.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyiron%2Fpyiron.github.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyiron","download_url":"https://codeload.github.com/pyiron/pyiron.github.io/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyiron%2Fpyiron.github.io/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30385497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-11T14:10:17.325Z","status":"ssl_error","status_checked_at":"2026-03-11T14:09:37.934Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["jekyll","pyiron"],"created_at":"2026-03-11T15:17:24.796Z","updated_at":"2026-03-11T15:17:25.679Z","avatar_url":"https://github.com/pyiron.png","language":"SCSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is where we host the landing page for [pyiron](https://pyiron.org).\n\n# Notes for developers + maintainers\n## In general\nThe site is rendered using [jekyll](https://jekyllrb.com/) and doesn't have too many exotic options activated, so many questions\ncan be answered in the jekyll documentation itself.\n\nJump to:\n\n- [Running the server locally](#running-the-server-locally)\n  - [Install Ruby and Bundler](#install-ruby-and-bundler)\n  - [Install the website and serve it](#install-the-website-and-serve-it)\n\n- [Site layout](#site-layout)\n  - [Top-level configuration](#top-level-configuration)\n  - [HTML pages](#html-pages)\n  - [Blogs](#blogs)\n  - [Stylesheets](#stylesheets)\n  - [External links](#external-links)\n  - [Images](#images)\n  - [Downloads](#downloads)\n\n- [Testing](#testing)\n  - [Staging beta features](#staging-beta-features)\n  - [CI integration](#ci-integration)\n\n## Running the server locally\n### Install Ruby and Bundler\nBundler is an environment/package manager for Ruby, similar to how Conda works for python.\n\nTo install on Mac OS X (ruby should already be installed but can still be updated/managed using homebrew if you have it installed):\n```\nbrew install ruby\ngem install bundler\n```\n\n**Using Conda**\nAlternatively, for those who want to use conda to configure the ruby environment on Mac OS X:\n```\nconda install clangxx_osx-64 ruby make rb-jekyll\n```\non Linux:\n```\nconda install gxx_impl_linux-64 ruby make rb-jekyll\n```\n\nThere is some trouble with installing ruby packages via conda: \n```\nIgnoring eventmachine-1.2.7 because its extensions are not built. Try: gem pristine eventmachine --version 1.2.7\nIgnoring ffi-1.11.1 because its extensions are not built. Try: gem pristine ffi --version 1.11.1\nIgnoring http_parser.rb-0.6.0 because its extensions are not built. Try: gem pristine http_parser.rb --version 0.6.0\nIgnoring sassc-2.3.0 because its extensions are not built. Try: gem pristine sassc --version 2.3.0\n```\nThis is probably related to the pinning of the ruby version https://github.com/conda-forge/rb-eventmachine-feedstock/issues/3\nbut compiling locally seems to work fine. \n\nAnd for Mac Users you might have to activate Xcode first:\n```\nxcode-select --install\nxcodebuild -license\n```\n\n### Install the website and serve it\n```bash\ngit clone https://github.com/pyiron/pyiron.github.io.git\ncd pyiron.github.io\nbundle install  # you only have to repeat this if/when you change the underlying site layout.\nbundle exec jekyll serve\n```\nThen go to the website at localhost (127.0.0.1:4000)\n\n_N.B._ When you make changes to most files other than `_config.yml`, the local server will auto-refresh and immediately reflect the changes. For\nchanges made to `_config.yml` you will have to restart the server.\n\n## Site layout\n\n### Top-level configuration\n\nAs with most jekyll sites, a number of general settings can be controlled directly by editing the `_config.yml` file.\nThis is where we control e.g. the contact email address, the website colors, names of alumni contributors + steering committee, etc.\nVariables stored in this file can be accessed in HTML pages using [liquid syntax](https://shopify.github.io/liquid/basics/introduction/),\nbeginning with the prefix `site.` For example,\n\n```html\n\u003c!-- Create a link to write an email to our contact address --\u003e\n\u003cp\u003e\u003ca href=\"mailto:{{ site.email }}\"\u003e{{ site.email }}\u003c/a\u003e\u003c/p\u003e\n```\n\nTo add a collection of data the site, create a .yml file under `_data/`, like the example collections we currently have in place (`affiliated_projects.yml`, `collaborators.yml`, etc.). Then access them with the liquid prefix `site.data.`:\n\nTo create a banner message on the home page (for important messages to share with visitors like workshop registration or site maintenance, etc.), simply set the `alert` variable in `_config.yml` similarly to the example provided in there.\n\n```html\n\u003c!-- Create an HTML elemenmt for all the github bots listed for our site --\u003e\n{% for bot in site.data.github_bots %}\n\t\u003ci class=\"bot\" id=\"{{ bot }}\"\u003e\u003c/i\u003e\n{% endfor %}\n```\n\n### HTML pages\n_A quick note about `_layouts/`:_\nAll active pages on the site inherit their layout from `_layouts/default.html`, so changes made to this file will reflect throughout the entire site.\n\n- **index.html**: pyiron's home page. Customized quite a bit.\n- **team/index.html**: Pulls developer names and information from \n- **getting-started/index.html**: Basic instructions for starting and using the MyBinder instance.\n- **news/index.html**: New updates for pyiron. Pulls from `news/_posts/`.\n- **publications/index.html**: Papers published with pyiron, usually with MyBinder links. Pulls from `publications/_posts/`\n- **privacy/index.html**: A very basic GDPR page about how we use visitors' data (we don't use visitors' data).\n- **licenses/index.html**: Information about the licenses/credits for pyiron and this website.\n- **404.html**: Renders when a searched page cannot be found.\n\n### Blogs\nthe pyiron site technically hosts two blogs: `news` and `publications`. New posts are easy to add to either blog; just create a .md file under e.g. `news/_posts/` based on the examples that are already in there. The filename convention `YYYY-MM-DD-name-of-post.md` is unfortunately quite strict because that's how jekyll orders the posts. If you use a different date format your post will probably not show up.\n\nThe 3 most recent posts in `news/` items are also added automatically to the home page.\n\nYou can control the number of blog posts shown per page under pyiron.org/news/ and pyiron.org/publications/ by the variable `posts-per-page` in `_config.yml`.\n\n### Stylesheets\nThe stylesheets for the site are written in Scss (sassy css), under `_sass`. The main colors of the site are stored in `_sass/variables.scss` (they are also stored in `_config.yml`, since these two files apparently cannot transfer variables to each other). Other than that, there is more or less one Scss file for each \"main\" HTML file, although technically all stylesheets are imported for each page that's based on `default.html`. This is because `default.html` includes `css/screen.scss`, which in turn imports all the Scss files under `_sass`.\n\nHowever, I have used `_sass/elements.scss` in some places as a kind of \"overarching\" stylesheet.\n\n### External links\nWe use external links for the documentation ([readthedocs](https://pyiron.readthedocs.io/en/latest/)), the [MyBinder instance](https://mybinder.org/v2/gh/pyiron/pyiron/master), and the \"Imprint\" (another GDPR thing; here we just point to MPIE's Imprint page).\n\n### Images\nAll the main images like our logos are stored in `images/`, except the file `favicon.png` in the root folder, which sets the image shown in browser tabs.\n\nThe news cards on the front page are automatically decorated with images based on their category. If a new category is created for a post, a corresponding image (with the name news-icon-category_name.png) should be added to `images/`. Otherwise the default news icon will be used for that post.\n\n### Downloads\nRight now there is only one file to download directly from the site:\n- `LICENSE`: The BSD License for pyiron\n\n## Testing\nWe have a pretty simple, brute-force set of tests that essentially clicks every link accessible within\n2 mouse clicks of the homepage and checks if they render the 404 page. The tests are written in Ruby, and\ntheir requirements are listed in the `:development, :test` group in the Gemfile.\n\nTo run the tests locally - assuming you've already run bundle install - just run\n\n```sh\nbundle exec rake \n```\n\n`rake` invokes the commands within the `Rakefile`, which tells Ruby to look for tests within `spec/` (which is also the default in most cases). `spec/spec_helper.rb` also provides several configuration options for running the tests. To write new tests, simply add them to `spec/links_spec.rb` based on the examples already in there.\n\n### Staging beta features\nIt is recommended for more dramatic pull requests that you first publish and explore them somewhere on a live github pages server, since that environment has certain subtle differences from your local environment and from the one on travis. To do this, fork or mirror this repository to your own account and configure its github pages to publish from whatever branch you're working on.\n\n### CI integration\nWe run the above-mentioned tests for every pull request using [travis CI](https://travis-ci.com). This is\nconfigured very minimalistically in .travis.yml in this repository's root.\n\nThe tests should not take more than ~30s once the travis build has started, so let them all pass before merging your\npull request. This makes it much harder to break the website with buggy commits.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyiron%2Fpyiron.github.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyiron%2Fpyiron.github.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyiron%2Fpyiron.github.io/lists"}