I didn’t test this, but it will change the whole URL while changes are only needed in its fragment component (after the first #
).
I didn’t test this, but it will change the whole URL while changes are only needed in its fragment component (after the first #
).
skip the following substitute command if the line contains an http link in markdown format
Why you assume there’s only one link in the line?
Also, you perform substitutions in the whole URL instead only the fragment component.
Do what you want to. Why should we care?
Bad advise for sed. regex101 doesn’t support POSIX regexes, so you are unable to get the same results as with sed
.
NB: global substitution s///g
is not applicable here because you need to perform new substitutions in a substituted text. Both sed
regexp syntaxes (basic and extended) don’t support lookarounds that could solve this issue.
As I see, you’ve already got an answer how to convert text to lower case. So I just tell you how to replace all occurrences of %20
with -
. You need to repeat substitution until no matches found. For such iteration you need to use branching to label. Below is sed script with comments.
:subst # label
s/(\[[^]]+\]\([^)]*#[^)]*)%20([^)]*\))/\1-\2/ # replace the first occurrence of `%20` in the URL fragment
t subst # go to the 'subst' label if the substitution took place
However there are some cases when this script will fail, e. g. if there is an escaped ]
character in the link text. You cannot avoid such mistakes using only simple regexps, you need a full featured markdown parser for this.
What is wrong with gitea? Is not forgejo just a slightly modified fork that is regularly synchronized with gitea codebase? I know nothing about motivation of forgejo authors, where can I read about it?
You won’t get it here. Everybody will recommend his favorite distro.
IMHO the best would be to solve your problems in OpenSUSE. This is definitely possible. You really need to switch to another distro only if you feel youself uncomfortable with the release cycle, package management tools or packages present in the repo of your current distro.