# Task Lists This Gem provides various components necessary for integrating [Task Lists](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments) into your GitHub-flavored-Markdown user content. `HTML::Pipeline::TaskList` is a successor to [TaskList](https://github.com/github/task_list) which GitHub stopped supporting and updating in 2016. This gem updates key components to support changes to underlying gems. ## Components The Task List feature is made of several different components: * GitHub-flavored-Markdown Ruby Filter * Summary Ruby Model: summarizes task list items * JavaScript: frontend task list update behavior * CSS: styles Markdown task list items ## Usage & Integration The backend components are designed for rendering the Task List item checkboxes, and the frontend components handle updating the Markdown source (embedded in the markup). ### Backend: Markdown pipeline filter Rendering Task List item checkboxes from source Markdown depends on the `HTML::Pipeline::TaskList::Filter`, designed to integrate with the [`html-pipeline`](https://github.com/jch/html-pipeline) gem. For example: ``` ruby require 'html/pipeline' require 'html/pipeline/task_list/filter' pipeline = HTML::Pipeline.new [ HTML::Pipeline::MarkdownFilter, HTML::Pipeline::TaskList::Filter ] pipeline.call "- [ ] task list item" ``` ### Frontend: Markdown Updates Task List updates on the frontend require specific HTML markup structure, and must be enabled with JavaScript. Rendered HTML (the `