[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to convert an arbitrary string into a filename
From: |
Jean Louis |
Subject: |
Re: How to convert an arbitrary string into a filename |
Date: |
Thu, 27 Apr 2023 07:52:55 +0300 |
User-agent: |
Mutt/2.2.9+54 (af2080d) (2022-11-21) |
* Eli Zaretskii <eliz@gnu.org> [2023-04-26 16:09]:
> If you need to convert an accented character to its base character
> (i.e. "remove" the accent), Emacs has much more general facilities:
>
> (require 'ucs-normalize)
> (substring (ucs-normalize-NFKD-string "Ć") 0 1)
> => "C"
Alright, then like this:
(defun string-slug (s &optional random)
"Return slug for Website Revision System by using string S.
RANDOM number may be added on the end."
(let* ((random (or random nil))
;; (case-fold-search t)
(s (replace-regexp-in-string "[^[:word:]]" " " s))
(s (replace-regexp-in-string " +" " " s))
(s (substring (ucs-normalize-NFKD-string s) 0 1))
(s (replace-regexp-in-string "^[[:space:]]+" "" s))
(s (replace-regexp-in-string "[[:space:]]+$" "" s))
(s (replace-regexp-in-string " " "-" s))
(s (if random (concat s "-" (number-to-string (random-number))) s)))
s))
(string-slug " OK, here, üößčć") ➜ ""
It doesn't give good result.
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
In support of Richard M. Stallman
https://stallmansupport.org/
Re: How to convert an arbitrary string into a filename, Marcin Borkowski, 2023/04/26
Re: How to convert an arbitrary string into a filename, Jean Louis, 2023/04/26
Re: How to convert an arbitrary string into a filename, Emanuel Berg, 2023/04/27
Re: How to convert an arbitrary string into a filename, Emanuel Berg, 2023/04/27
Re: How to convert an arbitrary string into a filename, James Thomas, 2023/04/29