diff --git a/.gitignore b/.gitignore index 16182c5d0..05dfac0b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ -/_site \ No newline at end of file +/_site +/.jekyll-metadata +/downloads/cheatsheets/*.aux +/downloads/cheatsheets/*.log +/.bundle +/vendor \ No newline at end of file diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 000000000..944880fa1 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.2.0 diff --git a/CNAME b/CNAME index 615972c11..e9fe306fb 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -elixir-lang.org +elixir-lang.org \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..f24d05f4a --- /dev/null +++ b/Gemfile @@ -0,0 +1,8 @@ +source 'https://rubygems.org' + +gem 'github-pages' +gem 'json', '>= 2.0.0' +gem 'webrick', '>= 1.8' +gem 'csv', '~> 3.3' +gem 'base64', '~> 0.2.0' +gem 'bigdecimal', '~> 3.1' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 000000000..f77a0774e --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,270 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.0.7.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) + base64 (0.2.0) + bigdecimal (3.1.9) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.23.10) + concurrent-ruby (1.2.2) + csv (3.3.3) + dnsruby (1.61.9) + simpleidn (~> 0.1) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + ethon (0.16.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.8.1) + faraday (2.7.4) + faraday-net_http (>= 2.0, < 3.1) + ruby2_keywords (>= 0.0.4) + faraday-net_http (3.0.2) + ffi (1.15.5) + forwardable-extended (2.6.0) + gemoji (3.0.1) + github-pages (228) + github-pages-health-check (= 1.17.9) + jekyll (= 3.9.3) + jekyll-avatar (= 0.7.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.4.0) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.15.1) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.12.0) + kramdown (= 2.3.2) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.13.6, < 2.0) + rouge (= 3.26.0) + terminal-table (~> 1.4) + github-pages-health-check (1.17.9) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (>= 3.0, < 5.0) + typhoeus (~> 1.3) + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.8.0) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + jekyll (3.9.3) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (>= 0.7, < 2) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (>= 1.17, < 3) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.4.0) + commonmarker (~> 0.23.7) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.15.1) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) + octokit (~> 4.0, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.12.0) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + json (2.6.3) + kramdown (2.3.2) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.8.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + mini_portile2 (2.8.9) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.19.0) + nokogiri (1.18.9) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (4.0.7) + racc (1.8.1) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.4.2) + rouge (3.26.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + simpleidn (0.2.1) + unf (~> 0.1.4) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (1.8.0) + webrick (1.8.2) + +PLATFORMS + ruby + +DEPENDENCIES + base64 (~> 0.2.0) + bigdecimal (~> 3.1) + csv (~> 3.3) + github-pages + json (>= 2.0.0) + webrick (>= 1.8) + +BUNDLED WITH + 2.5.23 diff --git a/README.md b/README.md index 105415698..a091828d8 100644 --- a/README.md +++ b/README.md @@ -1,54 +1,70 @@ -### Contents for Elixir website hosted at elixir-lang.org +This projects holds the contents for the Elixir website hosted at [elixir-lang.org](https://elixir-lang.org). -It is automatically transformed by [Jekyll](http://github.com/mojombo/jekyll) into a static site. +It is automatically transformed by [Jekyll](https://github.com/jekyll/jekyll) into a static site. -### Development +## Contributing -Development is done in the `next` branch, while `master` contains the docs and guides for the latest stable release. +#### 1. Fork and clone this repository -### Contributing to the blog +[Fork this +repository](https://github.com/elixir-lang/elixir-lang.github.com/fork) and +clone your fork. If you don't know what forking means or don't know how to do +it, nice instructions are available +[here](https://help.github.com/articles/fork-a-repo/). - Create a new file inside `_posts/YYYY-MM-DD-post-title.markdown` following the template: +#### 2. Install Ruby - --- - layout: post - title: - author: - category: - excerpt: - --- +This website is compiled into a static website using +[Jekyll](http://jekyllrb.com), a static-site generator written in Ruby. To +install Ruby you can follow [this +guide](https://www.ruby-lang.org/en/documentation/installation/). To check that +Ruby is installed correctly, run `ruby --version` in your shell; it should be +`1.9.3` or later. - Body text goes here... +#### 3. Install Bundler to manage dependencies - Or use `_bin/newpost` to bootstrap a new post file: +[Bundler](http://bundler.io) handles Ruby dependencies. To install it, simply +run: - export EDITOR=vim; _bin/newpost 'Post title' +```bash +$ gem install bundler +``` -### Contributing improvements or bug fixes +Once you have installed it, `cd` into the local clone of your fork and run: -1. Fork elixir-lang.github.com +```bash +$ bundle install +``` -2. Make your changes +to download and install the necessary dependencies. -3. Test it locally +#### 4. Run Jekyll - You need to install `jekyll`, `jekyll-redirect-from` and `redcarpet` +In order to run a development server (with live-reloading on) just run: - ```shell - $ gem install jekyll jekyll-redirect-from redcarpet - $ jekyll serve # check localhost:4000 - ``` +```bash +$ bundle exec jekyll serve +``` -4. Send a pull-request for your changes. +The generated site will be available at [http://localhost:4000](http://localhost:4000). You can stop the +server with Ctrl+C. -### License +#### 5. Make your changes and push them -* "Elixir" and the Elixir logo are copyrighted to [Plataformatec](http://plataformatec.com.br/). You may not reuse anything therein without permission. +Now you're ready to make your changes! Be sure to test the changes locally using +the development server. Once you're done with your changes, push those changes +to your fork and then [submit a **pull +request**](https://help.github.com/articles/using-pull-requests/). For a nice +wrap-up on how to open a good pull request have a look at the [Elixir +contributing +guide](https://github.com/elixir-lang/elixir/#contributing). + +## License + +* "Elixir" and the Elixir logo are registered trademarks of the Elixir team. See [our trademark policy](https://elixir-lang.org/trademarks). * The HTML and CSS are copyrighted to [AlienWp](http://alienwp.com/) under [GPL license, version 2](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). * The Social Icons are copyrighted to [Xeloader](http://xeloader.deviantart.com/art/Socialis-2-Freebie-213292616). -* The written textual contents available in the guides and blog are licensed under Apache 2.0. - -* The available docs are licensed under the same license as their projects. +* The written textual contents available in the guides and blog are licensed under [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). diff --git a/_bin/newpost b/_bin/newpost deleted file mode 100755 index 1092a5c78..000000000 --- a/_bin/newpost +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env ruby - -unless ARGV[0] - puts 'Usage: _bin/newpost "Post Title"' - exit(-1) -end - -date_prefix = Time.now.strftime("%Y-%m-%d") -post_name = ARGV.join ' ' -permalink = post_name.strip.downcase.gsub(/[^a-zA-Z0-9]/, '-') -filename = "#{date_prefix}-#{permalink}.markdown" -post = File.expand_path("../_posts/#{filename}", File.dirname(__FILE__)) - -header = <<-END ---- -layout: post -title: #{post_name} -author: -category: -excerpt: ---- - -Body text goes here... -END - -File.open(post, 'w') do |f| - f << header -end - -if editor = ENV['EDITOR'] do - system(editor, post) -else - puts "Post created at: #{post}" -end - -exit(0) diff --git a/_config.yml b/_config.yml index 78201b070..635db0b94 100644 --- a/_config.yml +++ b/_config.yml @@ -1,5 +1,29 @@ -markdown: redcarpet -pygments: true -permalink: /blog/:year/:month/:day/:title -redcarpet: - extensions: ['with_toc_data'] +highlighter: rouge +permalink: none +kramdown: + input: GFM + hard_wrap: false +repository: elixir-lang/elixir-lang.github.com +url: https://elixir-lang.org +exclude: + - _build/ + - vendor/ + - Gemfile + - Gemfile.lock + - CNAME + - .gitignore + - README.md + - js/toc/README.md +plugins: + - jemoji + - jekyll-sitemap + - jekyll-redirect-from + - jekyll-seo-tag +defaults: + - scope: + path: "" + type: posts + values: + layout: post + permalink: /blog/:year/:month/:day/:title/ + image: /images/social/elixir-og-card.jpg diff --git a/_data/elixir-versions.yml b/_data/elixir-versions.yml new file mode 100644 index 000000000..468bdabbf --- /dev/null +++ b/_data/elixir-versions.yml @@ -0,0 +1,88 @@ +stable: v1_19 + +v1_19: + name: v1.19 + minimum_otp: 26.0 + recommended_otp: 28.1 + otp_versions: [28, 27, 26] + version: 1.19.4 + +v1_18: + name: v1.18 + minimum_otp: 26.0 + recommended_otp: 27.3.4 + otp_versions: [27, 26, 25] + version: 1.18.4 + +v1_17: + name: v1.17 + minimum_otp: 25.0 + recommended_otp: 27.1.2 + otp_versions: [27, 26, 25] + version: 1.17.3 + +v1_16: + name: v1.16 + minimum_otp: 24.0 + otp_versions: [26, 25, 24] + version: 1.16.3 + +v1_15: + name: v1.15 + minimum_otp: 24.0 + otp_versions: [26, 25, 24] + version: 1.15.8 + +v1_14: + name: v1.14 + minimum_otp: 23.0 + otp_versions: [25, 24, 23] + version: 1.14.5 + +v1_13: + name: v1.13 + minimum_otp: 22.0 + otp_versions: [24, 23, 22] + version: 1.13.4 + +v1_12: + name: v1.12 + minimum_otp: 22.0 + otp_versions: [24, 23, 22] + version: 1.12.3 + +v1_11: + name: v1.11 + minimum_otp: 21.0 + otp_versions: [23, 22, 21] + version: 1.11.4 + +v1_10: + name: v1.10 + minimum_otp: 21.0 + otp_versions: [22, 21] + version: 1.10.4 + +v1_9: + name: v1.9 + minimum_otp: 20.0 + otp_versions: [22, 21, 20] + version: 1.9.4 + +v1_8: + name: v1.8 + minimum_otp: 20.0 + otp_versions: [22, 21, 20] + version: 1.8.2 + +v1_7: + name: v1.7 + minimum_otp: 19.0 + otp_versions: [21, 20, 19] + version: 1.7.4 + +v1_6: + name: v1.6 + minimum_otp: 19.0 + otp_versions: [21, 20, 19] + version: 1.6.6 diff --git a/_includes/bottom.html b/_includes/bottom.html index da7ab3085..bfc4fb987 100644 --- a/_includes/bottom.html +++ b/_includes/bottom.html @@ -1,36 +1,12 @@ -