{"id":13608953,"url":"https://github.com/michaelravedoni/jekyll-book-framework","last_synced_at":"2026-01-23T01:19:19.904Z","repository":{"id":202189626,"uuid":"158940477","full_name":"michaelravedoni/jekyll-book-framework","owner":"michaelravedoni","description":"A Jekyll framework for publishing book in multiple format (HTML, PDF, epub)","archived":false,"fork":false,"pushed_at":"2019-01-13T09:59:23.000Z","size":7732,"stargazers_count":25,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-07T14:42:36.794Z","etag":null,"topics":["book","jekyll-template","paged-media","publishing","web-publications"],"latest_commit_sha":null,"homepage":"https://michaelravedoni.github.io/jekyll-book-framework/","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/michaelravedoni.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}},"created_at":"2018-11-24T13:46:22.000Z","updated_at":"2023-11-07T03:29:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"ada50b27-e33b-4860-a02f-eb98a1b03b84","html_url":"https://github.com/michaelravedoni/jekyll-book-framework","commit_stats":null,"previous_names":["michaelravedoni/jekyll-book-framework"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelravedoni%2Fjekyll-book-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelravedoni%2Fjekyll-book-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelravedoni%2Fjekyll-book-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelravedoni%2Fjekyll-book-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelravedoni","download_url":"https://codeload.github.com/michaelravedoni/jekyll-book-framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248605454,"owners_count":21132175,"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":["book","jekyll-template","paged-media","publishing","web-publications"],"created_at":"2024-08-01T19:01:31.278Z","updated_at":"2026-01-23T01:19:19.892Z","avatar_url":"https://github.com/michaelravedoni.png","language":"CSS","funding_links":[],"categories":["CSS"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003ejekyll-book-framework\u003c/h1\u003e \u003cbr\u003e\n\u003c!--\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"jekyll-book-framework logo\" title=\"jekyll-book-framework logo\" src=\"docs/logo-jekyll-book-framework.png\" width=\"300\"\u003e\n\u003c/p\u003e--\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cstrong\u003ePublish and write a book\u003c/strong\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  A jekyll framework for publishing book in multiple format (HTML, PDF, epub)\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e\n    \u003ca href=\"#documentation\"\u003eDocumentation\u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"https://michaelravedoni.github.io/jekyll-book-framework/\"\u003eDemo\u003c/a\u003e\n    \u003cspan\u003e | \u003c/span\u003e\n    \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\n  \u003c/h3\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003csub\u003eBuilt with ❤︎ by\n  \u003ca href=\"https://michael.ravedoni.com/en\"\u003eMichael Ravedoni\u003c/a\u003e and\n  \u003ca href=\"https://github.com/michaelravedoni/jekyll-book-framework/contributors\"\u003e\n    contributors\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Features](#features)\n- [Usage](#usage)\n- [Deployment](#deployment)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n- [Release History](#release-history)\n- [Authors and acknowledgment](#authors-and-acknowledgment)\n\n## Introduction\n[![license](https://img.shields.io/github/license/mashape/apistatus.svg?style=flat-square)](https://github.com/michaelravedoni/jekyll-book-framework/blob/master/LICENSE)\n\nThis tool is inspired by [Antoine Fauchié](https://gitlab.com/antoinentl)'s excellent [thesis](https://memoire.quaternum.net/) (_Vers un système modulaire de publication : éditer avec le numérique_). The [project](https://gitlab.com/antoinentl/systeme-modulaire-de-publication) on which his thesis was based served as the basis for the development of `jekyll-book-framework`.\n\nTo get an idea, you can see the [demo of this project](https://michaelravedoni.github.io/jekyll-book-framework/).\n\n## Features\n\n- Markdown writing format\n- PDF auto generation with [paged.js](https://gitlab.pagedmedia.org/tools/pagedjs)\n- Static site generator with [Jekyll](https://jekyllrb.com/)\n- Clean interface\n\n## Usage\n\n**Clone** the project using git:\n\n```bash\ngit clone https://github.com/michaelravedoni/jekyll-book-framework.git\ncd jekyll-book-framework\n```\n\nOr, **download** manually : [Download](https://github.com/michaelravedoni/jekyll-book-framework/archive/master.zip) the project and unzip it. Once done:\n1. Rename the directory with the name you want. For example: `my-book` (`JEKYLL-BOOK-NAME` in the following steps).\n2. Edit the configuration file (`_data/meta.yml`) as needed.\n3. Edit the stylesheet variables located in `book/styles`.\n4. Edit the book/work content files located in `book/text`.\n5. Install the dependencies, start and deploy the project (see below).\n\n### Install\nTo run the project, you have to install [Jekyll](https://jekyllrb.com/docs/installation/) (and therefore [Ruby](https://www.ruby-lang.org/en/documentation/installation/)). Also install [npm](https://www.npmjs.com/get-npm) if you want to easily deploy the FTP life application (see [_deploy_](#deploy)) or to easily run the project.\n\nAfter you install [Ruby](https://www.ruby-lang.org/en/documentation/installation/), install the Jekyll CLI:\n\n```bash\n$ gem install jekyll bundler\n```\n\nEnter in your project's folder:\n\n```bash\ncd JEKYLL-BOOK-NAME\n```\n\nInstall all Ruby and npm dependencies, such as Jekyll and plugins:\n\n```bash\nbundle install\nnpm run install\n```\n\n### Start\nTo start and serve the project for development, run:\n\n```bash\nnpm run dev\n```\nPreview your local book in your web browser at `http://localhost:4000`.\n\nTo build the component for production, run:\n\n```bash\nnpm run build\n```\n## Deployment\n\nAt some point you will probably want to publish what you have built so that it can be shared with the wider world. The projects currently supports three methods of deployment: Netlify, Github Pages and Rsync.\n\n### Netlify\n\nAssuming you have created a repository for this project on GitHub, sign up or log in to [Netlify](https://www.netlify.com/) using your GitHub account.\n\n1. Click the big button labeled *new site from Git*\n2. Select your repository\n3. Configure the basic build settings: choose appropriate branch (`master` by default)\n4. You can set the default build command to `jekyll` and the publish directory to `_site/`, but this is not necessare since the `netlify.toml` file has all the information pre-configured.\n5. Netlify will auto-generate a site URL for you, or you can set it yourself. The default example uses `http://JEKYLL-BOOK-NAME.netlify.com`. Set this as your `baseurl` in `_config.yml`.\n6. Now, every time you push up a commit to `master` on GitHub, Netlify will automatically rebuild your site using the settings in `netlify.toml`. Pretty cool!\n\n### GitHub Pages\n\nUnlike Netlify, GitHub Pages does not support continuous deployment. This means you will need to manually deploy the site by running a script provided in `bin/github-deploy.sh` in the project folder.\n\n1. In `_config-github.yml`, set the `baseurl` in the format that GitHub Pages expects (https://yourusername.github.io/JEKYLL-BOOK-NAME for most sites).\n2. At this point you can run `bin/github-deploy.sh` and everything will be pushed up to GitHub on the `gh-pages` branch:\n\n```bash\nnpm run deploy-github\n```\n\nIt may take a few moments for everything to become visible online. If you get git errors when deploying because of upstream changes, you can always delete the `gh-pages` branch on GitHub and re-run the deploy script.\n\nIf you want, you can remove the `_site` directory from your `.gitignore` file so that you can check built files into version control.\n\n### Via FTP (RSync)\nAny web server capable of hosting static files will work (S3, FTP server, etc.). For deploying the site via FTP (RSync), follow this instructions. In the main project folder `/`, run (if not already done) :\n```bash\nnpm install\n```\n\nRename the `env-model.json` file in `env.json` and open-it. Then fill the `\u003cuser\u003e`, `\u003chost\u003e` and `\u003cpath/\u003e` with your FTP remote server informations. For example:\n```bash\nusername_example@example.ftp.com:web/JEKYLL-BOOK-NAME/\n```\n\nThen, to deploy the app, run :\n```bash\nnpm run stage            #For testing on your test server\nnpm run stage-dry        #If you want to run a dry test\n\nnpm run deploy-rsync     #For the production server\nnpm run deploy-rsync-dry #If you want to run a dry test\n```\n\n## Documentation\n\n### Architecture\n\n- `data/meta.yml`: Contains all the metadata of the project and the book. Change the variables on your needs.\n\n- `book`: Contains all the contents of the book. `book/text` contains all the markdown files. If you have a translation, `book/fr` contains the translated book.\n\n- `index.md`: Home page of the book (editable)\n\n- `_bibliography`: Contains the bibliographys in BibTex format (.bib file) necessary for the [jekyll-scholar](https://github.com/inukshuk/jekyll-scholar) plugin\n\n- `materials`: Directory containing all the files (image, text, media) and drafts of the book for discussion\n\n- `images`: Directory containing the files and images necessary for the book\n\n- `output` : Directory containing the output formats of the book\n\n- `_includes`, `_layouts`, `_sass`, `_plugins` and others: Files necessary for the working of Jekyll\n\nAll the files and directories can be modified for customization and your own needs.\n\n### Branches\n\nFor each development or writing idea, we recommend creating a specific branch in your project. This will facilitate project discussions and monitoring.\n\n### Commits format\nTo make the use of Git more understandable, here is a list of conventions for writing _commits_:\n\n- `admin` : technical management of the repository or site\n- `style` : styles\n- `edit` : content edition\n- `fix` : correction, modification following a remark\n- `org` : organization of files, repository, site\n- `gen` : automation for the generation of the different files and formats\n- `test` : test (but normally reported in a specific branch)\n\n## Contributing\n\nWe’re really happy to accept contributions from the community, that’s the main reason why we open-sourced it! There are many ways to contribute, even if you’re not a technical person.\n\n1. [Fork](https://help.github.com/articles/fork-a-repo/) this [project](https://github.com/michaelravedoni/jekyll-book-framework)\n2. Create your feature branch (`git checkout -b feature/fooBar`)\n3. Commit your changes (`git commit -am 'Add some fooBar'`)\n4. Push to the branch (`git push origin feature/fooBar`)\n5. Create a new Pull Request\n\n## Release History\n\nYou will find the releases history in the [release](https://github.com/michaelravedoni/jekyll-book-framework/releases) section. For more detail, you can check the [changelog.md](https://github.com/michaelravedoni/jekyll-book-framework/blob/master/CHANGELOG.md) file.\n\n## Roadmap\n\n- Styles and css restructuration\n- i18n\n- auto pdf genarator\n- epub, mobi and markdown export\n- create different work layouts\n- define a workflow (version, edition, translation)\n- create template for git issues (Github and GitLab)\n- create deploy command for GitLab\n\n## Authors and acknowledgment\n\n* **Michael Ravedoni** - *Initial work* - [michaelravedoni](https://github.com/michaelravedoni)\n* **Antoine Fauchié** - *Inspirated work and [project](https://gitlab.com/antoinentl/systeme-modulaire-de-publication)* - [antoinentl](https://gitlab.com/antoinentl)\n\nSee also the list of [contributors](https://github.com/michaelravedoni/jekyll-book-framework/contributors) who participated in this project.\n\n* **[electric-book](https://github.com/electricbookworks/electric-book)** - *Inspiration* - [Electric Book Works](https://electricbookworks.com/)\n* **[Quire](https://github.com/gettypubs/quire)** - *Inspiration* - [Getty Publications](https://github.com/gettypubs)\n\n## License\n\n[MIT License](https://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelravedoni%2Fjekyll-book-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelravedoni%2Fjekyll-book-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelravedoni%2Fjekyll-book-framework/lists"}