From b62e6141a28839ef1842ef1740650066c9b64e9b Mon Sep 17 00:00:00 2001 From: Gurkirat Singh Date: Sat, 7 May 2022 00:14:58 +0530 Subject: [PATCH 1/3] feature (plugins): add url manipulation plugin --- plugins/available/url.plugin.bash | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 plugins/available/url.plugin.bash diff --git a/plugins/available/url.plugin.bash b/plugins/available/url.plugin.bash new file mode 100644 index 00000000..bb4248f8 --- /dev/null +++ b/plugins/available/url.plugin.bash @@ -0,0 +1,44 @@ +# shellcheck shell=bash +cite about-plugin +about-plugin 'Basic url handling and manipulation functions' + +function slugify() { + about 'takes the text and transform to slug url, also supports formats like (html,link,rst,md)' + group 'url' + param "1: Text to transform (optional)" + param "2: Output format (html,rst,link,md). Omit or pass any text to return only output" + + local TXT=$1 + local OUTPUT=$2 + local SLUG + + if [[ -z $TXT ]]; then + read -rp "Enter the valid string: " TXT + fi + + # Pass 1 - Clean the url + SLUG=$(echo -n "$TXT" | tr -cd ' [:alnum:]._-' | tr -s ' ') + + # Pass 2 - Transformation + SLUG=$(echo -n "$SLUG" | tr '[:upper:]' '[:lower:]' | tr ' ' '-') + + case "$OUTPUT" in + html | htm) + echo "$TXT" + ;; + href | link) + echo "#$SLUG" + ;; + md) + echo "[$TXT](#$SLUG)" + ;; + rst) + echo "\`$TXT <#$SLUG>\`_" + ;; + + *) + echo "$SLUG" + ;; + esac + +} From 324eba4b83964440f7db72b0fdef9c4ec33c010e Mon Sep 17 00:00:00 2001 From: Gurkirat Singh Date: Sat, 7 May 2022 00:15:23 +0530 Subject: [PATCH 2/3] improve (lint): add plugins/available/url.plugin.bash --- clean_files.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/clean_files.txt b/clean_files.txt index 758e3b80..f8dae5ae 100644 --- a/clean_files.txt +++ b/clean_files.txt @@ -134,6 +134,7 @@ plugins/available/rbenv.plugin.bash plugins/available/ruby.plugin.bash plugins/available/textmate.plugin.bash plugins/available/todo.plugin.bash +plugins/available/url.plugin.bash plugins/available/xterm.plugin.bash plugins/available/zoxide.plugin.bash From 0805de548f1340fbb59a4fe66fe850f74328c176 Mon Sep 17 00:00:00 2001 From: Gurkirat Singh Date: Sat, 7 May 2022 00:18:05 +0530 Subject: [PATCH 3/3] improve (plugins): add credits in url.plugin --- plugins/available/url.plugin.bash | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/available/url.plugin.bash b/plugins/available/url.plugin.bash index bb4248f8..72a41bfd 100644 --- a/plugins/available/url.plugin.bash +++ b/plugins/available/url.plugin.bash @@ -17,6 +17,7 @@ function slugify() { fi # Pass 1 - Clean the url + # Credits: https://stackoverflow.com/a/20007549/10362396 SLUG=$(echo -n "$TXT" | tr -cd ' [:alnum:]._-' | tr -s ' ') # Pass 2 - Transformation