Am 04.05.2020 um 11:42 schrieb Stephan Matthiesen: > 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.
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 -- Donald Trump ist ein großer Visionär, der seiner Zeit weit voraus ist: Er verbreitet schon jetzt den Slogan "make America great again", obwohl dieser erst in der Ära /nach/ ihm seine volle Bedeutung entfalten wird. -- Liste abmelden mit E-Mail an: [email protected] Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy
