URLs mit Klammern

Hallo,

gibt es eine Option, dass bei der automatischen Erkennung von URLs eine Klammer am Ende der URL mit erkannt wird?

Grund: Ich schreibe oft Texte, in denen ich auf Wikipedia-Einträge verlinken muss. Viele URLs in Wikipedia enden mit einer Klammer, z.b.:
https://de.wikipedia.org/wiki/Almas_(Raumstation)

Bei der URL-Erkennung wird die schließende Klammer aber immer als normales Satzzeichen, nicht Teil der URL, interpretiert, und der Link stimmt dann nicht mehr. Ich muss jedesmal extra "Hyperlink bearbeiten" klicken und die Klammer manuell ergänzen. Bei Hunderten URLs in einem Text ist das natürlich ein erheblicher Zusatzaufwand, daher wäre es toll, wenn das automatisch richtig erkannt würde.

Danke
Stephan

Das Problem ist, wie soll das Programm unterscheiden können zwischen
einem "https://de.wikipedia.org/wiki/Almas_(Raumstation)" und einem
"(siehe https://de.wikipedia.org/wiki/Almas_Raumstation)"? Der
Unterschied sieht für dich als Menschen recht einfach aus, aber für nen
Computer ist so etwas zu erkennen eine recht verzwickte Angelegenheit.

Mir fällt da keine vernünftige Lösung ein. Alles, was ich dir anbieten
kann, ist ein Makro, schnell zusammengeschustert, aus verschiedenne
Quellen, also nicht schön, aber es funktioniert. Dann musst du nur den
kompletten Link markieren, und das Makro aufrufen. Das setzt dann diesen
merkierten Text als sowohl Text wie auch URL für den Hyperlink ein
(egal, was vorher drin stand). Wenn du das Makro ins Mausmenü oder auf
eine Tastenkombination legst, sollte das einigermaßen handhabbar sein
(von komfortabel mag ich trotzdem nicht sprechen).

sub KorrigiereHyperLnk
  Dim vSelections
  Dim vSel
  Dim vCursor
  Dim i1 As Integer

  vSelections = ThisComponent.getCurrentSelection()
  
  If IsNull(vSelections) OR IsEmpty(vSelections) OR
vSelections.getCount() < 1 Then
    MsgBox "Es ist nichts selektiert"
  Elseif vSelections.getCount() > 1 Then
    MsgBox "Es sind zu viele Passagen selektiert"
  Else
    dim document as object
    dim dispatcher as object
    document = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    For i1 = 0 To vSelections.getCount() - 1
      vSel = vSelections.getByIndex(i1)
      vCursor=ThisComponent.Text.createTextCursorByRange(vSel)
      dim args2(4) as new com.sun.star.beans.PropertyValue
      args2(0).Name = "Hyperlink.Text"
      args2(0).Value = vCursor.getString()
      args2(1).Name = "Hyperlink.URL"
      args2(1).Value = args2(0).Value
      args2(2).Name = "Hyperlink.Target"
      args2(2).Value = ""
      args2(3).Name = "Hyperlink.Name"
      args2(3).Value = ""
      args2(4).Name = "Hyperlink.Type"
      args2(4).Value = 1
      
      dispatcher.executeDispatch(document, ".uno:SetHyperlink", "", 0, args2())
    Next
  End If
end sub

Wolfgang

Mir ist gerade noch ne Alternative eingefallen, von der ich aber nicht
weiß, ob das praktikabel oder ne Schnapsidee ist. Wenn du einfach statt
der schließenden Klammer (")") dessen Hex-Wert angibst ("%29"), dann
funktioniert die automatische Erkennung. Also statt

https://de.wikipedia.org/wiki/Almas_(Raumstation)

müsstest du

https://de.wikipedia.org/wiki/Almas_(Raumstation%29

schreiben. Sieht halt etwas gewöhnungsbedürftig aus, aber funktioniert
ebenfalls.

Wolfgang

Hallo sag ich da mal,

weil jetzt der Link richtig erkannt ist habe ich zum Schluß die automatische Kennung ausgeschaltet und %29 gegen )_ ausgetausch. Konnte es nicht für alles machen, aber der Text war lesbar. )_ mußte ich mehmen damit ich den Text später weiter ändern konnte.

Gruß
Christian Palm