BTW, for unknown reasons your mails always go to the spam folder. I don't experience the same issue with other members of the ml, and I don't understand if the issue is on my account or on yours...
On Monday, October 31, 2022, Paolo Prete <paolopr...@gmail.com> wrote: > > Thank you as always! > > In Spontini-Editor there are examples with generated SVG files that rely > on point-and-click in order to be edited. Although included paths are dummy > paths, I would like to clean them without post-processing the files. But I > think I don't have alternatives, given that the functions you use are not > part of the API (and I need to make this operation any supported LilyPond > version). I preview I have to do some Python postprocess script with regex > > > Cheers, > Paolo > > > On Monday, October 31, 2022, Jean Abou Samra <j...@abou-samra.fr> wrote: > >> Le 31/10/2022 à 17:56, Jean Abou Samra a écrit : >> >>> In general, no. >>> >> >> >> Well, I spoke too fast. You can do >> >> \version "2.23.80" >> >> #(set! >> (@@ (lily output-ps) stencil-dispatch-alist) >> (assq-set! >> (@@ (lily output-ps) stencil-dispatch-alist) >> 'grob-cause >> (lambda (offset grob) >> (if (ly:get-option 'point-and-click) >> (let* ((cause (ly:grob-property grob 'cause)) >> (music-origin (if (ly:stream-event? cause) >> (ly:event-property cause 'origin))) >> (point-and-click (ly:get-option 'point-and-click))) >> (if (and >> (ly:input-location? music-origin) >> (cond ((boolean? point-and-click) point-and-click) >> ((symbol? point-and-click) >> (ly:in-event-class? cause point-and-click)) >> (else (any (lambda (t) >> (ly:in-event-class? cause t)) >> point-and-click)))) >> (let* ((location (ly:input-file-line-char-column >> music-origin)) >> (raw-file (car location)) >> (file (if (is-absolute? raw-file) >> raw-file >> (string-append (ly-getcwd) "/" >> raw-file))) >> (x-ext (ly:grob-extent grob grob X)) >> (y-ext (ly:grob-extent grob grob Y))) >> >> (if (and (< 0 (interval-length x-ext)) >> (< 0 (interval-length y-ext))) >> (ly:format " ~4f ~4f ~4f ~4f >> (textedit://~a:~a:~a:~a) mark_URI\n" >> (+ (car offset) (car x-ext)) >> (+ (cdr offset) (car y-ext)) >> (+ (car offset) (cdr x-ext)) >> (+ (cdr offset) (cdr y-ext)) >> >> ;; Backslashes are not valid >> ;; file URI path separators. >> ;;;;;;;;;;;;;;;;(ly:string-percent-encode >> ;;;;;;;;;;;;;;;; (ly:string-substitute >> "\\" "/" file)) >> "foo.ly" >> >> (cadr location) >> (caddr location) >> (1+ (cadddr location))) >> "")) >> "")) >> "")))) >> >> { c' } >> >> >> >> >> Basically, tamper with the LilyPond function that outputs >> these textedit:// links. In this example, I'm replacing >> the file name with "foo.ly". >> >> However, this is using undocumented variables that are explicitly >> not public, so you're at your own risk -- it can and almost >> certainly will break with some future version of LilyPond, >> and a replacement will not be guaranteed to exist. Also, it >> would need different code to work in SVG output. >> >> If you can use a different method, that would be really preferable. >> >> Best, >> Jean >> >> >> >>