frescobaldi / frescobaldi

Frescobaldi LilyPond Editor
http://www.frescobaldi.org/
GNU General Public License v2.0
732 stars 153 forks source link

Generating URL for LilyPond documentation #1163

Open uliska opened 4 years ago

uliska commented 4 years ago

When (finally) looking at the PR #1153 (for #1147) I found that documentation isn't found because the generated URL (at least for the website documentation) is wrong (maybe it has changed on lilypond.org?)

lilydoc.documentation.Documentation.home() has to be reconsidered, and 'Documentation' must not (always?) be appended to the URL.

(This is a note-to-self issue because I found it when not at home and intend to look into it ASAP).

fedelibre commented 1 year ago

1153 is working fine on current master.

The problem I see is that you cannot take an URL which works in the browser and paste it in Frescobaldi preferences, because it won't work. You have to read Frescobaldi user manual and use http://lilypond.org/doc/v2.24 instead of http://lilypond.org/doc/v2.24/Documentation/web/manuals. This is not straightforward. I wrote the instructions in the user manual years ago and I forgot how it works :-)

@PeterBjuhr We should make life easier for users. My suggestions are the following:

fedelibre commented 1 year ago

Or maybe better: do not use the permanent links which redirect to the right URL. Let's add the latest stable and development links and keep them updated after a new LilyPond stable release. It's not cumbersome, given the low frequency of LilyPond stable releases.

Right now we would have just:

So users will have immediately the two documentations ready and will learn how to enter a different version.

fedelibre commented 1 year ago

Adding the remote URLs of the two latest versions is quite easy:

$ git diff
diff --git a/frescobaldi_app/lilydoc/manager.py b/frescobaldi_app/lilydoc/manager.py
index 9bb39df0..7a1865cc 100644
--- a/frescobaldi_app/lilydoc/manager.py
+++ b/frescobaldi_app/lilydoc/manager.py
@@ -127,7 +127,7 @@ def urls():
     # split in local and non-local ones (local are preferred)
     user_prefixes = []
     local = []
-    remote = []
+    remote = ['http://lilypond.org/doc/v2.24', 'http://lilypond.org/doc/v2.25']
     for p in user_paths:
         user_prefixes.append(p) if os.path.isdir(p) else remote.append(p)
     remote.sort(key=util.naturalsort)

These are not listed in the Preferences, where only those set by the user are present, IIUC.

Pro: easy default for most users. Cons: the versions must be updated every time a new stable LilyPond is released (but this usually happens once a year or more).

Before sending a PR (which should also contain an update in the user guide), what do you think?

PeterBjuhr commented 1 year ago

I think we can manage to update the links on release. We have other stuff to update as well, right?

Perhaps we could have a checklist or even an automated script to do the per release updates.

fedelibre commented 1 year ago

I've just opened a PR. I put the URLs in appinfo.py so it's easier to remember.

jeanas commented 1 year ago

As an alternative, we could reuse the lilychooser and propose one URL per LilyPond version the user has installed. This might be more complicated though; I'm fine with going with the simpler approach for now.

fedelibre commented 1 year ago

Ok, then let's keep this issue open for this alternative?

jeanas commented 1 year ago

Agreed.