https://github.com/rlespinasse/slugify-value
Github Action to slugify a value
https://github.com/rlespinasse/slugify-value
github-actions hacktoberfest slug utilities
Last synced: 22 days ago
JSON representation
Github Action to slugify a value
- Host: GitHub
- URL: https://github.com/rlespinasse/slugify-value
- Owner: rlespinasse
- License: mit
- Created: 2021-10-07T20:22:47.000Z (over 3 years ago)
- Default Branch: v1.x
- Last Pushed: 2024-04-29T22:38:23.000Z (12 months ago)
- Last Synced: 2024-05-23T03:30:49.146Z (11 months ago)
- Topics: github-actions, hacktoberfest, slug, utilities
- Language: Shell
- Homepage:
- Size: 39.1 KB
- Stars: 4
- Watchers: 3
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Slugify
> [!NOTE]
> A GitHub Action that transforms input strings into URL-friendly slugsThis action creates standardized slug versions of your input variables, offering multiple formatting options:
## Output Formats
- `_SLUG`
- Converts text to lowercase
- Replaces special characters with **-** (except **0-9**, **a-z**, **.**, and **_**)
- Removes leading and trailing **-$*
- Limits string length to **63** characters
- `_SLUG_CS`
- Same as `_SLUG` but preserves original case sensitivity
- `_SLUG_URL` and `_SLUG_URL_CS`
- Same as their respective base versions (`_SLUG` or `_SLUG_CS`)
- Additionally replaces **.** and **_** with **-**
- Perfect for URL-safe stringsEach output variable maintains consistent formatting rules while serving different use cases, from basic slugification to URL-ready strings.
## Usage
- Slugify a value and store it using a key
```yaml
- uses: rlespinasse/[email protected]
with:
key: KEY_NAME
value: value_to_slugify
```Will make available
- `KEY_NAME`
- `KEY_NAME_SLUG`
- `KEY_NAME_SLUG_CS`
- `KEY_NAME_SLUG_URL`
- `KEY_NAME_SLUG_URL_CS`- Slugify the value of an environment variable
```yaml
- uses: rlespinasse/[email protected]
with:
key: EXISTING_ENV_VAR
```Will make available
- `EXISTING_ENV_VAR_SLUG`
- `EXISTING_ENV_VAR_SLUG_CS`
- `EXISTING_ENV_VAR_SLUG_URL`
- `EXISTING_ENV_VAR_SLUG_URL_CS`- Slugify the value of an environment variable with prefix
```yaml
- uses: rlespinasse/[email protected]
with:
key: EXISTING_ENV_VAR
prefix: CI_
```Will make available
- `CI_EXISTING_ENV_VAR`
- `CI_EXISTING_ENV_VAR_SLUG`
- `CI_EXISTING_ENV_VAR_SLUG_CS`
- `CI_EXISTING_ENV_VAR_SLUG_URL`
- `CI_EXISTING_ENV_VAR_SLUG_URL_CS`- Slugify a value with a different slug length
```yaml
- uses: rlespinasse/[email protected]
with:
key: EXISTING_ENV_VAR
slug-maxlength: 80
```Will produce SLUG variables with a 80-char length
- Slugify a value without length limit
```yaml
- uses: rlespinasse/[email protected]
with:
key: EXISTING_ENV_VAR
slug-maxlength: "nolimit"
```Will produce SLUG variables without limiting the output length
- Slugify a value without publishing the environment variables
```yaml
- uses: rlespinasse/[email protected]
with:
key: KEY_NAME
value: value_to_slugify
publish-env: false
```Will **not** make available
- `KEY_NAME`
- `KEY_NAME_SLUG`
- `KEY_NAME_SLUG_CS`
- `KEY_NAME_SLUG_URL`
- `KEY_NAME_SLUG_URL_CS`## Inputs
| Input | Description | Mandatory | Default |
| -------------- | ----------------------------------------------------------------------------------------------------- | --------- | ------- |
| key | Environment variable that will hold the value and serve as prefix to slugified value | Yes | |
| value | The value to slugify. If not set the value will be taken from the `key` input as environment variable | No | |
| prefix | The value will be prepend to each generated variable | No | |
| slug-maxlength | The value is a number or `nolimit` to reflect the length of the slug outputs | No | 63 |
| publish-env | In addition of the action output, the slug values are publish as environment variables | No | true |## Outputs
| Output | Description |
| ----------- | ------------------------------- |
| value | The value to be slugify |
| slug | Value Slug |
| slug-cs | Value Slug (Case-sensitive) |
| slug-url | Value Slug URL |
| slug-url-cs | Value Slug URL (Case-sensitive) |