{"id":17498155,"url":"https://github.com/scampersand/jekyll-pants","last_synced_at":"2026-04-27T21:31:50.546Z","repository":{"id":56878707,"uuid":"63551216","full_name":"scampersand/jekyll-pants","owner":"scampersand","description":"Jekyll plugin for typographic punctuation","archived":false,"fork":false,"pushed_at":"2016-10-17T21:03:11.000Z","size":29,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-18T00:31:50.241Z","etag":null,"topics":["jekyll","jekyll-plugin","smart-quotes","smartypants"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/scampersand.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}},"created_at":"2016-07-17T20:32:37.000Z","updated_at":"2019-03-04T01:45:26.000Z","dependencies_parsed_at":"2022-08-20T11:40:41.788Z","dependency_job_id":null,"html_url":"https://github.com/scampersand/jekyll-pants","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/scampersand/jekyll-pants","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scampersand%2Fjekyll-pants","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scampersand%2Fjekyll-pants/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scampersand%2Fjekyll-pants/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scampersand%2Fjekyll-pants/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scampersand","download_url":"https://codeload.github.com/scampersand/jekyll-pants/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scampersand%2Fjekyll-pants/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32356598,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["jekyll","jekyll-plugin","smart-quotes","smartypants"],"created_at":"2024-10-19T16:10:31.189Z","updated_at":"2026-04-27T21:31:50.523Z","avatar_url":"https://github.com/scampersand.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jekyll-pants\n\n[![gem](https://img.shields.io/gem/v/jekyll-pants.svg?maxAge=2592000\u0026style=plastic)](https://rubygems.org/gems/jekyll-pants)\n[![travis](https://img.shields.io/travis/scampersand/jekyll-pants.svg?maxAge=2592000\u0026style=plastic)](https://travis-ci.org/agriffis/jekyll-pants)\n[![codecov](https://img.shields.io/codecov/c/github/scampersand/jekyll-pants.svg?maxAge=2592000\u0026style=plastic)](https://codecov.io/gh/scampersand/jekyll-pants)\n\nJekyll-Pants is a [Jekyll](http://jekyllrb.com/) plugin to convert plain ASCII\npunctuation to typographic punctuation HTML entities. It relies on\n[RubyPants](https://github.com/jmcnevin/rubypants) which is a Ruby port of the\nsmart-quotes library SmartyPants.\n\n\u003ctable\u003e\n\u003ctr\u003e\u003cth\u003eInput\u003c/th\u003e\u003cth\u003eOutput\u003c/th\u003e\u003cth\u003eRendered\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd valign=top\u003e\u003cpre\u003eHere's an example--as\nyou can see...\u003c/pre\u003e\u003c/td\u003e\n\u003ctd valign=top\u003e\u003cpre\u003eHere\u0026amp;#8217;s an example\u0026amp;#8212;as\nyou can see\u0026amp;#8230;\u003c/pre\u003e\u003c/td\u003e\n\u003ctd valign=top\u003eHere\u0026#8217;s an example\u0026#8212;as you can see\u0026#8230;\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n\n## Rationale\n\nThis plugin exists because the default Jekyll support for smart quotes is limited to:\n\n 1. [Markdown](https://daringfireball.net/projects/markdown/) parsed by\n    [kramdown](http://kramdown.gettalong.org/) (see note below for how to\n    disable kramdown's quoting in favor of jekyll-pants).\n\n 2. The [smartify](https://jekyllrb.com/docs/templates/#filters) filter which is\n    actually another way to invoke kramdown's markdown processor, so it doesn't\n    work as desired on HTML.\n\nUnlike the built-in solutions, jekyll-pants works on HTML, making it suitable\nfor applying typographic punctuation to an entire site of hand-authored HTML pages.\n\n## Usage\n\nAdd `jekyll-pants` to your site's Gemfile in the `:jekyll-plugins` group and run\n`bundle` to install and update Gemfile.lock:\n\n```ruby\ngroup :jekyll_plugins do\n  gem \"jekyll-pants\"\nend\n```\n\nIn your base layout, filter the content through the `pants` filter:\n\n```liquid\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n  \u003chead\u003e...\u003c/head\u003e\n  \u003cbody\u003e\n    {{content|pants}}\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\nSince RubyPants parses HTML tags, this will apply typographic quoting, dashes\nand ellipses to text content, but will ignore preformatted text in `\u003cpre\u003e` and `\u003cscript\u003e`.\n\n## Configuration\n\nBy default, this plugin invokes RubyPants with no options, so RubyPants runs in\nits default mode which is \"old-school.\" In old-school mode, double-dash\ntranslates to an en-dash and triple-dash translates to an em-dash.\n\nThis can be modified in Jekyll's `_config.yml` under the `pants` key, for\nexample:\n\n```yaml\npants:\n  options: [1, 'prevent_breaks']\n```\n\nFor the available options, see https://github.com/jmcnevin/rubypants/blob/master/lib/rubypants/core.rb\n\n## Compatibility with kramdown\n\nJekyll's default markdown processor\nis [kramdown](http://kramdown.gettalong.org/), and by default kramdown applies\nsmart quoting and typographic substitutions. Its algorithm works a little\ndifferently from RubyPants which means that you'll get mixed results with\ncontent coming from both markdown and HTML sources.\n\nJekyll-Pants supplies a parser subclass as\n[recommended by kramdown's author](https://github.com/gettalong/kramdown/pull/379).\nThe subclass is called `Pantsdown` and removes the `:smart_quotes` and\n`:typographic_syms` span parsers from the list.\n\nTo use this subclass and thereby defer to RubyPants for\nquotes, dashes and ellipses, put the following in your `_config.yml`:\n\n```yaml\nkramdown:\n  input: Pantsdown\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscampersand%2Fjekyll-pants","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscampersand%2Fjekyll-pants","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscampersand%2Fjekyll-pants/lists"}