Date: prev next · Thread: first prev next last
2020 Archives by date, by thread · List index




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: users+unsubscribe@de.libreoffice.org
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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.