{"id":13673465,"url":"https://lispcookbook.github.io/cl-cookbook/","last_synced_at":"2025-04-28T09:30:41.214Z","repository":{"id":35776909,"uuid":"40056794","full_name":"LispCookbook/cl-cookbook","owner":"LispCookbook","description":"The Common Lisp Cookbook","archived":false,"fork":false,"pushed_at":"2025-04-22T11:29:28.000Z","size":24138,"stargazers_count":969,"open_issues_count":66,"forks_count":145,"subscribers_count":44,"default_branch":"master","last_synced_at":"2025-04-22T12:37:54.463Z","etag":null,"topics":["common-lisp","cookbooks","examples","lisp"],"latest_commit_sha":null,"homepage":"http://lispcookbook.github.io/cl-cookbook/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LispCookbook.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"license.md","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},"funding":{"github":["vindarel"],"ko_fi":"vindarel"}},"created_at":"2015-08-01T18:51:44.000Z","updated_at":"2025-04-22T11:29:32.000Z","dependencies_parsed_at":"2023-10-04T13:59:15.419Z","dependency_job_id":"4b0ef35b-6170-43b7-bc68-c03bb155c7b3","html_url":"https://github.com/LispCookbook/cl-cookbook","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LispCookbook%2Fcl-cookbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LispCookbook%2Fcl-cookbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LispCookbook%2Fcl-cookbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LispCookbook%2Fcl-cookbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LispCookbook","download_url":"https://codeload.github.com/LispCookbook/cl-cookbook/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251284867,"owners_count":21564684,"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":["common-lisp","cookbooks","examples","lisp"],"created_at":"2024-08-02T10:00:47.349Z","updated_at":"2025-04-28T09:30:41.208Z","avatar_url":"https://github.com/LispCookbook.png","language":"JavaScript","funding_links":["https://github.com/sponsors/vindarel","https://ko-fi.com/vindarel"],"categories":["Common Lisp","Lisp","Online ##"],"sub_categories":["Weblocks","[Common Lisp](https://common-lisp.net)"],"readme":"# Lisp Cookbook\n\nA Cookbook is an invaluable resource, as it shows how to do various things in a clear fashion without all the theoretical context. Sometimes you just need to look things up. While cookbooks can never replace proper documentation such as the [HyperSpec][hs] or books such as [Practical Common Lisp][pcl], every language deserves a good cookbook, Common Lisp included.\n\nThe CL Cookbook aims to tackle all sort of topics, for the beginner as for the more advanced developer.\n\n\n## Contributing\n\nThanks for contributing to the Cookbook.\n\nYou can start by having a look at the [style guide](STYLEGUIDE.md).\n\nWhen adding new content, please ensure it renders properly.\n\nThere are three ways to do this:\n\n### Install Jekyll system-wide\n\nThe first option is to install [Jekyll][jekyll] globally and to run `jekyll serve` in a folder where this repository was checked out.\n\nThen open `http://127.0.0.1:4000/cl-cookbook/` (the last `/` is important).\n\n### Install system locally using Ruby gems\n\nAnother option is to install the Jekyll version of this repository locally with Ruby gems. Since bundler 1.17.3 requires Ruby 2.5 that is rather old, it is recommended to install it using `rbenv`:\n\n1. Install [rbenv](https://github.com/rbenv/rbenv) using your package manager, or follow [these instructions](https://github.com/rbenv/rbenv#basic-github-checkout) to install it manually.\n2. Install [ruby-build](https://github.com/rbenv/ruby-build#installation). If you did a manual installation in the previous step, it is recommended to install ruby-build as a rbenv plugin.\n3. Run `rbenv install 2.5.0` to install Ruby 2.5.0. Run `which gem` to make sure it points to `~/.rbenv/shims/gem`.\n4. Run `gem install bundler -v 2.1.4` to install bundler.\n5. `cd` to the `cl-cookbook` directory and run `bundle install --path vendor/bundle` to install Jekyll locally.\n6. Run `bundle exec jekyll serve` to generate the site and host it.\n\n### Use a Docker container\n\nSince it can be a bit troublesome to install older versions of Ruby onto newer Linux-based systems, another option is to use `docker`.\n\n1. Build the container by executing `sudo docker build -t cl-cookbook .` in this directory.\n2. Run Jekyll inside the container `sudo docker run -p 4000:4000 -v $(pwd):/cl-cookbook cl-cookbook` from this directory.\n3. Open your web browser and navigate to `http://127.0.0.1:4000/cl-cookbook/`.\n\nThis command will mount the current working directory into the container and incremental builds are actived so you will be able to see your latest changes without restarting or rebuilding the container.\n\n### Troubleshooting\n\nIt can happen that you have older version of ruby installed in the system and\nbundler install will fail. To fix this, you need to update ruby. If system update\nis not an option, consider installing [rbenv][rbenv].\n\n~~~ sh\n    # Check rbenv homepage for install instructions on systems other than Mac OS X\n    brew install rbenv ruby-build\n\n    # Add rbenv to bash so that it loads every time you open a terminal\n    echo 'if which rbenv \u003e /dev/null; then eval \"$(rbenv init -)\"; fi' \u003e\u003e ~/.bash_profile\n    source ~/.bash_profile\n\n    # Install Ruby\n    rbenv install 2.5.0\n    rbenv global 2.5.0\n    ruby -v\n~~~\n\nAfter this you can proceed as usual:\n\n1. `gem install bundler`\n2. `bundle install --path vendor/bundle`\n3. `bundle exec jekyll serve`\n\nAlso, refer to the [CONTRIBUTING.md][contributing] file.\n\n### Building the EPUB and the PDF\n\nRun `make epub`. See `make-cookbook.lisp`.\n\nYou need a decently recent version of [Calibre](https://calibre-ebook.com/). They provide an easy binary installation.\n\nTo exclude regions of text from the output (for example, embedded videos that makes no sense in a print format), use these flags:\n\n    \u003c!-- epub-exclude-start --\u003e\n    \u003c!-- epub-exclude-end --\u003e\n\nOur build script roughly does the following:\n\n- concatenate all markdown content into one file\n- change yaml frontmatters to a markdown title\n- delete the mark regions from the file\n- make internal links work on the EPUB.\n\nIt uses some metadata in `metadata.txt`.\n\nWe can check the resulting EPUB with `epubcheck`.\n\n\n## Origins\n\nThis is a fork of the [Common Lisp Cookbook][sf], moved from SourceForge.\n\nThis project brings the Common Lisp Cookbook to this decade. Development of the original Common Lisp Cookbook in SourceForge halted in 2007. In the meantime, a lot has happened in the land of Common Lisp. Tools and implementations have been improving, and some have fallen out of favor. Most notably, Common Lisp users can now benefit from the [Quicklisp][ql] library manager.\n\nThe main goal is making the Cookbook more modern and more accessible in addition to updating and expanding the content.\n\n[sf]: http://cl-cookbook.sourceforge.net/\n[ql]: https://www.quicklisp.org/\n[hs]: http://www.lispworks.com/documentation/HyperSpec/Front/X_Master.htm\n[pcl]: http://www.gigamonkeys.com/book/\n[jekyll]: https://jekyllrb.com/docs/installation/\n[rbenv]: https://github.com/rbenv/rbenv\n[contributing]: CONTRIBUTING.md\n[bundler-v2]: https://stackoverflow.com/questions/54087856/cant-find-gem-bundler-0-a-with-executable-bundle-gemgemnotfoundexceptio\n\n## Development with GNU Guix\n\nTo enter a development environment in which all the required software dependencies are made available, run `guix shell` in the project's root directory. The provided Guix [manifest file](manifest.scm) will be automatically sourced after giving [authorization](https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-shell.html) for Guix to do so.\n\n## Support\n\nYou can support the individuals that constantly improve the Cookbook. See the Github Sponsors icon. Thanks for them!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/lispcookbook.github.io%2Fcl-cookbook%2F","html_url":"https://awesome.ecosyste.ms/projects/lispcookbook.github.io%2Fcl-cookbook%2F","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/lispcookbook.github.io%2Fcl-cookbook%2F/lists"}