{"id":19428204,"url":"https://github.com/marlinfirmware/marlindocumentation","last_synced_at":"2025-05-14T14:09:45.066Z","repository":{"id":37335440,"uuid":"55904385","full_name":"MarlinFirmware/MarlinDocumentation","owner":"MarlinFirmware","description":"Marlin Firmware Documentation Project","archived":false,"fork":false,"pushed_at":"2025-04-07T05:18:29.000Z","size":74706,"stargazers_count":378,"open_issues_count":9,"forks_count":819,"subscribers_count":45,"default_branch":"master","last_synced_at":"2025-04-15T00:39:29.520Z","etag":null,"topics":["documentation","jekyll","marlin","marlin-documentation","marlin-firmware"],"latest_commit_sha":null,"homepage":"https://marlinfw.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarlinFirmware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2016-04-10T14:42:40.000Z","updated_at":"2025-04-07T05:18:33.000Z","dependencies_parsed_at":"2023-02-19T20:00:56.415Z","dependency_job_id":"7b19985a-899c-47af-9a08-cc8343685257","html_url":"https://github.com/MarlinFirmware/MarlinDocumentation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarlinFirmware%2FMarlinDocumentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarlinFirmware%2FMarlinDocumentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarlinFirmware%2FMarlinDocumentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarlinFirmware%2FMarlinDocumentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarlinFirmware","download_url":"https://codeload.github.com/MarlinFirmware/MarlinDocumentation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254160474,"owners_count":22024569,"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":["documentation","jekyll","marlin","marlin-documentation","marlin-firmware"],"created_at":"2024-11-10T14:14:32.264Z","updated_at":"2025-05-14T14:09:40.053Z","avatar_url":"https://github.com/MarlinFirmware.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/MarlinFirmware/Marlin/bugfix-2.1.x/buildroot/share/pixmaps/logo/marlin-outrun-nf-500.png\" height=\"250\" alt=\"Marlin Firmware logo\" /\u003e\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eMarlin Documentation Project\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"/LICENSE\" target=\"_blank\"\u003e\u003cimg alt=\"GPL-V3.0 License\" src=\"https://img.shields.io/github/license/MarlinFirmware/MarlinDocumentation.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"//github.com/MarlinFirmware/MarlinDocumentation/graphs/contributors\" target=\"_blank\"\u003e\u003cimg alt=\"Contributors\" src=\"https://img.shields.io/github/contributors/marlinfirmware/marlindocumentation.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"//github.com/MarlinFirmware/MarlinDocumentation/releases\" target=\"_blank\"\u003e\u003cimg alt=\"Last Updated\" src=\"https://img.shields.io/github/last-commit/marlinfirmware/marlindocumentation?label=last%20updated\"\u003e\u003c/a\u003e\n  \u003ca href=\"//github.com/MarlinFirmware/MarlinDocumentation/actions/workflows/jekyll-pub.yml\" target=\"_blank\"\u003e\u003cimg alt=\"Jekyll Deploy Status\" src=\"https://github.com/MarlinFirmware/MarlinDocumentation/actions/workflows/jekyll-pub.yml/badge.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"//github.com/sponsors/thinkyhead\" target=\"_blank\"\u003e\u003cimg alt=\"GitHub Sponsors\" src=\"https://img.shields.io/github/sponsors/thinkyhead?color=db61a2\"\u003e\u003c/a\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"//x.com/marlinfirmware\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/twitter/follow/MarlinFirmware\" alt=\"@MarlinFirmware\" /\u003e\u003c/a\u003e\n  \u003ca href=\"//fosstodon.org/@marlinfirmware\" target=\"_blank\"\u003e\u003cimg alt=\"Follow MarlinFirmware on Mastodon\" src=\"https://img.shields.io/mastodon/follow/109450200866020466?domain=https%3A%2F%2Ffosstodon.org\u0026logoColor=%2300B\u0026style=social\"\u003e\u003c/a\u003e\n  \u003ca href=\"//bsky.app/profile/marlinfw.org\" target=\"_blank\"\u003e\u003cimg alt=\"Follow MarlinFirmware on Bluesky\" src=\"https://img.shields.io/badge/-Bluesky-3686f7?style=flat\u0026logo=icloud\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## About\n\nThis repository contains the raw documentation for [Marlin 3D printer firmware](//github.com/MarlinFirmware/Marlin) which is automatically deployed to [marlinfw.org](//marlinfw.org/). This documentation is open and available on GitHub so anyone may contribute by completing, correcting, or creating articles.\n\n## Table of Contents\n\n- [Technical details](#technical-details)\n- [How to contribute](#how-to-contribute)\n  - [Coding style](#coding-style)\n  - [Editorial style](#editorial-style)\n  - [Work in progress](#work-in-progress)\n- [Local Jekyll preview](#local-jekyll-preview)\n  - [Installing Ruby on Windows](#installing-ruby-on-windows)\n  - [Installing Ruby on macOS](#installing-ruby-on-macos)\n  - [Installing Ruby on Ubuntu](#installing-ruby-on-ubuntu)\n  - [Set up Marlin Documentation project](#set-up-marlin-documentation-project)\n  - [Jekyll basics](#jekyll-basics)\n  - [Previewing content](#previewing-content)\n  - [License](#license)\n\n## Technical details\n\nThe Marlin Documentation Project is built using the following technologies:\n\n- [Ruby](//www.ruby-lang.org/)\n- [RubyGems](//rubygems.org/)\n- [Jekyll](//jekyllrb.com/)\n- [GitHub Pages](//pages.github.com/)\n\n## How to contribute\n\nTo work with the documentation, first [fork](//docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) this repository to your GitHub account, then clone **your MarlinDocumentation fork** locally. You should do all work within your own fork before submitting it as a [Pull Request](//docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) to the `master` branch. You can download the [GitHub Desktop app](//github.com/apps/desktop) and use GitHub's \"Open in Desktop\" option, or from your own desktop, open a terminal/cmd window and do:\n\nFor example, change into the root of C:\\\\:\n\n```bash\ncd C:\\\n```\n\nClone Marlin Documentation repository:\n\n```bash\ngit clone https://github.com/MarlinFirmware/MarlinDocumentation.git\n```\n\nThis will create a local `C:\\MarlinDocumentation` folder linked to your fork.\n\nTo add new documentation or edit existing documentation, start by [creating a new branch](//docs.github.com/en/issues/tracking-your-work-with-issues/creating-a-branch-for-an-issue) as a copy of the `master` branch. You can do this using the GitHub web interface, from within GitHub Desktop, or from the command line.\n\nIf your new document is about \"mashed potatoes\" then name the new branch accordingly:\n\n```\ngit checkout master -b doc-mashed_potatoes\n```\n\nInside the `_docs` folder, add the new file `mashed-potatoes.md` and let flow all your creativity into it. When you feel your masterpiece is ready to be shared with the world, commit the changes and push them up to **your Marlin Documentation fork**. This is done most easily from within the GitHub Desktop app, but here are the command line commands for reference:\n\n```sh\ngit add mashed-potatoes.md\ngit commit -m \"Added a new document about potatoes\"\ngit push\n```\n\nNext, start a new Pull Request to the upstream repository ([MarlinFirmware/MarlinDocumentation](//github.com/MarlinFirmware/MarlinDocumentation)).\n\n\u003e [!TIP]\n\u003e Check out GitHub's documentation on [creating a new branch](//docs.github.com/en/issues/tracking-your-work-with-issues/creating-a-branch-for-an-issue), [managing branches](//docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository), and creating [Pull Requests](//docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) if you're new to contributing with git.\n\n### Coding style\n\nThis Jekyll-based site is based on the [Markdown](//www.markdownguide.org/) language in delicious [YAML](//yaml.org/) wrapper. Be careful with this format because even small typos can cause Jekyll to reject the page. If you've installed Jekyll as described below, you can use it to build and preview the documentation and this will tell you where your errors are.\n\n### Editorial style\n\nTry to be neutral, concise, and straightforward. Avoid use of personal pronouns, unless avoiding them proves awkward. Provide images and give examples where needed. Check your spelling, grammar, and punctuation.\n\n### Work in progress\n\nYou can use the `_tmp` folder for work-in-progress, and they will not be included in the site deployment.\n\n## Local Jekyll preview\n\nIf you'd like to be able to preview your contributions before submitting them, you'll need to install Jekyll on your system. Instructions for Windows and macOS are given below:\n\n### Installing Ruby on Windows\n\n1. Download and install a Ruby+Devkit `3.3.4` from [RubyInstaller Download Archives](//rubyinstaller.org/downloads/archives/). Use default options for installation.\n\n2. Run the `ridk install` step on the last stage of the installation wizard. Choose option `3` for `MSYS2 and MINGW development tool chain`. This is needed for installing gems with native extensions. You can find additional information regarding this in the [RubyInstaller Documentation](//github.com/oneclick/rubyinstaller2#using-the-installer-on-a-target-system).\n\n\u003e [!TIP]\n\u003e Once the `MSYS2 and MINGW development toolchain` install is complete, the installation wizard will reprompt which components should be installed. If you see a \"Install MSYS2 and MINGW development toolchain succeeded\" message above it, you can close the Command Prompt window and continue below.\n\n3. Open a new Command Prompt so that changes to the `PATH` environment variable become effective, then check that everything is working:\n\n   ```sh\n   ruby -v\n   ```\n   If `ruby 3.3.4 (2024-07-09 revision be1089c8ec)` is reported, then proceed to [Set up the Marlin Documentation project](#set-up-marlin-documentation-project).\n\n### Installing Ruby on macOS\n\n\u003e [!NOTE]\n\u003e Ruby may come preinstalled, but macOS' \"system Ruby\" is outdated, unmaintained, and not recommended for general use.\n\u003e\n\u003e There are many popular package managers for macOS, but we'll cover installation with [Homebrew](//brew.sh/) \u0026 [MacPorts](//www.macports.org/).\n\n1. Install a package manager. You **do not** need to install both:\n\n   - Install Homebrew by launching Terminal and running the following command:\n\n      ```sh\n      /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n      ```\n\n   - Install MacPorts by downloading \u0026 installing the correct package for your version of macOS from the [Installing MacPorts](//www.macports.org/install.php) page.\n\n     - Either Xcode or Command Line Tools for Xcode are required to install packages with MacPorts. You **do not** need to install both. These are available for free on [Apple's Developer Program website](https://developer.apple.com/download/). An Apple Developer Program membership is not required, but you will need to sign in with your Apple ID.\n\n2. Install `chruby` and `ruby-install`:\n\n   - Homebrew:\n\n     ```sh\n     brew install chruby ruby-install\n     ```\n\n   - MacPorts:\n\n     ```sh\n     sudo port install chruby ruby-install\n     ```\n\n3. Install Ruby `3.3.4`:\n\n   ```sh\n   ruby-install ruby 3.3.4\n   ```\n\n   The configure, build, and install process will take a few minutes.\n\n4. Configure your shell to automatically use `chruby`:\n\n   - Homebrew:\n\n     ```sh\n     echo \"\" \u003e\u003e ~/.zshrc\n     echo \"# Ruby Configuration\" \u003e\u003e ~/.zshrc\n     echo \"source $(brew --prefix)/opt/chruby/share/chruby/chruby.sh\" \u003e\u003e ~/.zshrc\n     echo \"source $(brew --prefix)/opt/chruby/share/chruby/auto.sh\" \u003e\u003e ~/.zshrc\n     echo \"chruby ruby-3.3.4\" \u003e\u003e ~/.zshrc\n     ```\n\n   - MacPorts:\n\n     ```sh\n     echo \"\" \u003e\u003e ~/.zshrc\n     echo \"# Ruby Configuration\" \u003e\u003e ~/.zshrc\n     echo \"source ${prefix}/opt/local/share/chruby/chruby.sh\" \u003e\u003e ~/.zshrc\n     echo \"source ${prefix}/opt/local/share/chruby/auto.sh\" \u003e\u003e ~/.zshrc\n     echo \"chruby ruby-3.3.4\" \u003e\u003e ~/.zshrc\n     ```\n\n5. Quit and relaunch Terminal, then check that everything is working:\n\n   ```sh\n   ruby -v\n   ```\n   It should report `ruby 3.3.4 (2024-07-09 revision be1089c8ec)`. If not, repeat the above steps.\n\n\u003e [!NOTE]\n\u003e When using `ruby-install` you'll find your Ruby installations in `~/.rubies/` and you can switch between them with `chruby`. New instances of `zsh` in Terminal will default to 3.3.4 due to the changes made to `~/.zshrc`.\n\n6. Proceed to [Set up the Marlin Documentation project](#set-up-marlin-documentation-project). (Note that `bundler` is already included.)\n\n### Installing Ruby on Ubuntu\n\n1. Ensure APT is up to date:\n\n   ```sh\n   sudo apt update\n   ```\n\n2. Install prerequisites:\n\n   ```sh\n   sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev\n   ```\n\n3. Install rbenv:\n\n   ```sh\n   curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash\n   echo 'export PATH=\"$HOME/.rbenv/bin:$PATH\"' \u003e\u003e ~/.bashrc\n   echo 'eval \"$(rbenv init -)\"' \u003e\u003e ~/.bashrc\n   source ~/.bashrc\n   ```\n\n4. Install Ruby 3.3.4:\n\n   ```sh\n   rbenv install 3.3.4\n   rbenv global 3.3.4\n   ```\n\n\u003e [!NOTE]\n\u003e When using `rbenv` you'll find your Ruby installations in `~/.rbenv/versions/` and you can switch between them with `rbenv global \u003cversion\u003e`.\n\n5. Check Ruby version:\n\n   ```sh\n   ruby -v\n   ```\n   It should report `ruby 3.3.4 (2024-07-09 revision be1089c8ec)`. If not, repeat the above steps.\n\n6. Add environment variables to your `~/.bashrc` file to configure the gem installation path:\n\n   ```sh\n   echo '# Install Ruby Gems to ~/gems' \u003e\u003e ~/.bashrc\n   echo 'export GEM_HOME=\"$HOME/gems\"' \u003e\u003e ~/.bashrc\n   echo 'export PATH=\"$HOME/gems/bin:$PATH\"' \u003e\u003e ~/.bashrc\n   source ~/.bashrc\n   ```\n\n7. Install Bundler Gem:\n\n   ```sh\n   gem install bundler\n   ```\n\n8. Proceed to **Set up Marlin Documentation project**.\n\n### Set up Marlin Documentation project\n\nOnce Ruby is installed, set up the Marlin Documentation project with Bundler. Open Command Prompt or Terminal and `cd` to the working path of **your Marlin Documentation fork**. Execute the following commands:\n\n```sh\nrm -f Gemfile.lock\nbundle config set path 'vendor/bundle'\nbundle install\n```\n\n\u003e [!NOTE]\n\u003e You only need to execute the above commands **once** to complete the install. If you see errors at this stage you may need to update your Ruby installation, fix your Ruby environment, or resolve dependencies between the Ruby gems.\n\n### Jekyll basics\n\nJekyll uses a combination of YAML, Markdown, Liquid, and HTML to define the site content and layout. A `_config.yml` file defines a site structure with \"collections\" corresponding to sub-folders. The website is \"compiled\" to produce static HTML and Javascript. The most important folders in the site are:\n\n- `_layouts` contains the general layouts (aka page templates).\n- `_includes` has partial layouts included by others.\n- `_meta` is where we keep top-level page descriptions.\n- Sections: `_basics`, `_configuration`, `_development`, `_features`, `_gcode`, `_hardware`….\n\n### Previewing content\n\nTo start a mini web server and preview your changes, run the following command:\n\n```sh\nbundle exec jekyll serve --watch --incremental\n```\n\nWith the `serve --watch --incremental` parameters, Jekyll watches local files for changes and triggers an automatic incremental build of the site on every save. It also starts a mini-web server so documentation can be previewed in a browser at [http://localhost:4000/](http://localhost:4000).\n\n\u003e [!TIP]\n\u003e The main Marlin repository comes with the [`mfdoc`](//github.com/MarlinFirmware/Marlin/blob/bugfix-2.1.x/buildroot/share/git/mfdoc) script containing the commands above as a shortcut to preview the documentation.\n\n## License\n\nThis documentation is licensed under the [GPLv3 license](/LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarlinfirmware%2Fmarlindocumentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarlinfirmware%2Fmarlindocumentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarlinfirmware%2Fmarlindocumentation/lists"}