Skip to main content

Generate a slug just like GitHub does for markdown headings. (JavaScript Port)

Project description

github-slugger

Build

This is a Python Fork of the JavaScript github-slugger package

Generate a slug just like GitHub does for markdown headings. It also ensures slugs are unique in the same way GitHub does it. The overall goal of this package is to emulate the way GitHub handles generating markdown heading anchors as close as possible.

This project is not a markdown or HTML parser: passing alpha *bravo* charlie or alpha <em>bravo</em> charlie doesn’t work. Instead pass the plain text value of the heading: alpha bravo charlie.

Install

pip install github-slugger

Usage

from github_slugger import GithubSlugger

slugger = GithubSlugger()

slugger.slug('foo')
# returns 'foo'

slugger.slug('foo')
# returns 'foo-1'

slugger.slug('bar')
# returns 'bar'

slugger.slug('foo')
# returns 'foo-2'

slugger.slug('Привет non-latin 你好')
# returns 'привет-non-latin-你好'

slugger.slug('😄 emoji')
# returns '-emoji'

slugger.reset()

slugger.slug('foo')
# returns 'foo'

Check test/fixtures.json for more examples.

If you need, you can also use the underlying implementation which does not keep track of the previously slugged strings (not recommended):

from github_slugger import slug

slug('foo bar baz')
# returns 'foo-bar-baz'

slug('foo bar baz')
# returns the same slug 'foo-bar-baz' because it does not keep track

Contributing

Contributions welcome! Please read the contributing guidelines first.

License

ISC

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

github-slugger-0.0.3.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

github_slugger-0.0.3-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file github-slugger-0.0.3.tar.gz.

File metadata

  • Download URL: github-slugger-0.0.3.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.9

File hashes

Hashes for github-slugger-0.0.3.tar.gz
Algorithm Hash digest
SHA256 e607450e8568c0c1b9a41f5748f422e5a22c1d9799d52bc6dd6575397c1ccb22
MD5 64fa4563ea1ecc6132be20d181b0b776
BLAKE2b-256 fee9c3fcf0d020dd1911c02f7c6b75e9ff809252c423dd4c3bcf8f1b0b86bf31

See more details on using hashes here.

File details

Details for the file github_slugger-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for github_slugger-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2d531ff0e439762900bf0ec3be10771b1d3635a6d4486113f1352fa19c091a91
MD5 d419807df596f60eb24b3421079757e1
BLAKE2b-256 31410cfe9970e00c3e9470a5ab559d27a5320695f553b7c240b3933ddf7e9825

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page