{"id":25506444,"url":"https://github.com/datadesk/baker","last_synced_at":"2025-04-10T11:40:44.034Z","repository":{"id":37802504,"uuid":"193990660","full_name":"datadesk/baker","owner":"datadesk","description":"A build tool by and for the Los Angeles Times","archived":false,"fork":false,"pushed_at":"2025-03-26T16:53:50.000Z","size":6435,"stargazers_count":28,"open_issues_count":35,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-09T23:09:58.113Z","etag":null,"topics":["build-tool","javascript","journalism","news","nodejs","static-site-generator"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/datadesk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2019-06-26T23:27:33.000Z","updated_at":"2025-04-06T15:09:57.000Z","dependencies_parsed_at":"2023-12-23T16:24:01.804Z","dependency_job_id":"b3fb9458-1a65-4f6c-9fb6-93e41d09a75b","html_url":"https://github.com/datadesk/baker","commit_stats":{"total_commits":485,"total_committers":7,"mean_commits":69.28571428571429,"dds":0.311340206185567,"last_synced_commit":"dc9f47e3571a9225133dc4a787a2192f0712a89c"},"previous_names":[],"tags_count":66,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datadesk%2Fbaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datadesk%2Fbaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datadesk%2Fbaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datadesk%2Fbaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datadesk","download_url":"https://codeload.github.com/datadesk/baker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248210666,"owners_count":21065588,"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":["build-tool","javascript","journalism","news","nodejs","static-site-generator"],"created_at":"2025-02-19T06:42:15.679Z","updated_at":"2025-04-10T11:40:44.018Z","avatar_url":"https://github.com/datadesk.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"./.github/baker.jpg\" alt=\"Baker\" width=250\u003e\n\n`@datagraphics/baker` is a build tool by and for the Los Angeles Times. The Times uses it to build the static pages published at latimes.com/projects. You can use it however you'd like.\n\nAn example of how The Times puts the package to use is available at [datadesk/baker-example-page-template](https://github.com/datadesk/baker-example-page-template).\n\n[![npm](https://badgen.net/npm/v/@datagraphics/baker)](https://www.npmjs.org/package/@datagraphics/baker)\n\n## Requirements\n\n* [Node.js](https://nodejs.org/en/) version 14 and higher\n* [Node Package Manager](https://www.w3schools.com/whatis/whatis_npm.asp)\n\n## Installation\n\n```sh\nnpm install -D @datagraphics/baker\n```\n\n## What is Baker and why do you use it?\n\nBaker is a development environment that can be converted into a static website that’s ready for the web. With a minimal amount of HTML, CSS and JavaScript, you can publish a project. The Los Angeles Times uses Baker to write custom code for projects that aren’t possible within the rigid templates of our content management system.\n\n## Does anyone else use Baker?\n\nYes. Here are some examples of Baker is use outside of the Los Angeles Times.\n\n* [AMSAT’s amateur satellite index](https://amsat.org/amateur-satellite-index)\n* The [\"First Visual Story\"](https://palewi.re/docs/first-visual-story/) training tutorial by [Ben Welsh](https://palewi.re/who-is-ben-welsh/), [Armand Emamdjomeh](http://emamd.net/) and [Vanessa Martinez](https://www.vanessa-martinez.com/)\n* [e.e. cummings free poetry archive](https://cummings.ee/) by [Ben Welsh](https://palewi.re/who-is-ben-welsh/)\n* [Noodle Tracker](https://noodletracker.com/) by [Matt Stiles](https://mattstiles.me/)\n* [hotsauce.gay](https://hotsauce.gay/) and [men who don't move](https://caseymm.github.io/men-who-dont-move/) by [Casey Miller](https://caseymmiller.com/)\n* A variety of news applications by [ProPublica](https://propublica.org), including [\"Does Your Local Museum or University Still Have Native American Remains?\"](https://projects.propublica.org/repatriation-nagpra-database/) and [\"Look Up Which Fortune 500 Companies Fund Election Deniers\"](https://projects.propublica.org/fortune-500-company-election-deniers-jan-6/).\n* [\"Did your neighborhood turn out to vote?\"](https://projects.thecity.nyc/zeldin-hochul-election-voter-turnout-nyc/) and other features by [THE CITY](https://www.thecity.nyc/)\n* [Maryland precinct-level election results](https://www.thebaltimorebanner.com/politics-power/state-government/precinct-level-governor-election-vote-data-O25RWFHG35DEFCYOZNZDVRS374/) by [The Baltimore Banner](https://www.thebaltimorebanner.com/)\n* [moneyinpolitics.wtf](https://moneyinpolitics.wtf/) by [Ben Welsh](https://palewi.re/who-is-ben-welsh/), Derek Willis, Anu Narayanswamy and Agustin Armendariz\n\nIf you know of other examples, please add them to the list.\n\n## How does Baker work?\n\nBaker brings together a bunch of different technologies.\n\nThe HTML templating is powered by [Nunjucks](https://mozilla.github.io/nunjucks/), giving us a Jinja2-like experience for organizing and creating our HTML pages. This is also very similar to the templating language used in Django.\n\nCSS styles are written using the preprocessor [Sass](https://sass-lang.com/). Sass enhances CSS by adding features that don't exist in CSS yet like nesting, mixins, inheritance and other tricks. Baker also uses the postprocessor called Autoprefixer, which automatically adds special prefixes to our CSS for browser support. (`--webkit`, `--moz`, etc.) \n\nJavaScript is bundled using [Rollup](https://www.rollupjs.org/guide/en/), which makes it possible for us to write modern JavaScript that gets optimized and prepared in a way that makes it load as fast as possible for our users. Code we write is passed through a JavaScript compiler called [Babel](https://babeljs.io/), which rewrites our code to make sure it works in all the browsers we support.\n\nData imports, powered by [quaff](https://www.npmjs.com/package/quaff), allow for easily imported structured data files into templates, which is useful for making data visualizations.\n\n## How do I get started using it?\n\nThe repository at [github.com/datadesk/baker-example-page-template](https://github.com/datadesk/baker-example-page-template) is our premade starter that comes with HTML, styles and scripts ready for experimentation. It also includes GitHub Actions that can deploy staging and production version of your page. It works after only minimal configuration. You could customize it to match the look and feel of your site.\n\n## Contributing\n\n[Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) the repository and [clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) it locally. The enter the code directory and install the package's dependencies.\n\n```sh\nnpm install\n```\n\n[Branch](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging) off. Make any changes. Preview them with the test server.\n\n```sh\nnpm start\n```\n\nRun our tests.\n\n```sh\nnpm run build\n```\n\nOnce they pass, your changes should be briefly documented in the `CHANGELOG.md` file under the `[Unreleased]` header. Depending on the type of change you are making, you may need to add a new subheader as defined by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). For example, if you are changing how a feature works, you may need to add a `### [Changed]` subhead.\n\n[Commit](https://git-scm.com/docs/git-commit). Submit a [pull request](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).\n\n## Releasing\n\nThis package is distributed using npm. To publish a new release, you will need to have an [npmjs](https://www.npmjs.com/) account with ownership of the [@datagraphics/baker](https://www.npmjs.com/package/@datagraphics/baker) namespace.\n\nNext you should use npm's version command to up the version number. You have to decide if you're a major, minor or patch release. If you're unsure, review the standards defined at [semver.org](https://semver.org/). Then run one of the commands below. The code will be updated appropriately.\n\n```sh\n# Pick one and only one!\nnpm version major\nnpm version minor\nnpm version patch\n```\n\nRename the `[Unreleased]` section of the `CHANGELOG.md` with the same version number. Commit.\n\n```sh\ngit add CHANGELOG.md\ngit commit -m \"Updated CHANGELOG\"\n```\n\nRelease the new version of the package.\n\n```sh\nnpm publish\n```\n\nPush your work to GitHub, including tag created by the `npm version` command.\n\n```sh\ngit push origin main --tags\n```\n\nCreate a new release on GitHub at [github.com/datadesk/baker/releases](https://github.com/datadesk/baker/releases) with the same version number. Paste the changelog entry into the post as a bullet list.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatadesk%2Fbaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatadesk%2Fbaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatadesk%2Fbaker/lists"}