all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index"
@ 2024-02-07 13:27 Mekeor Melire
  2024-02-07 14:51 ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2024-02-07 13:27 UTC (permalink / raw)
  To: 68970

[-- Attachment #1: Type: text/plain, Size: 1515 bytes --]

After a discussion on emacs-devel[1] and a discussion on a
bug-report[2], this was commited on the master-branch:

    756daa93b3ef7ce33e741ab30000fa397fcd9783
    Author:     Mekeor Melire <mekeor@posteo.de>
    AuthorDate: Mon Dec 4 16:37:37 2023 +0100
    Commit:     Eli Zaretskii <eliz@gnu.org>
    CommitDate: Sat Jan 27 12:18:17 2024 +0200

    Add option Info-url-alist

The new option Info-url-alist allow users to add custom mappings from
manual-names to URLs. When the URL-SPEC is provided as string, users may
use the %e format-sequence. But in the most common case, namely when
URLs need to use a .html-suffix, this is not usable:

In the case of the special "Top" node, the %e format-sequence resolves
to "", i.e. the empty string. It is thus not possible to use a URL-SPEC
like "https://example.com/%e.html" because "https://example.com/.html"
is invalid. The user rather wants "https://example.com/index.html" in
this case.

Currently, the user needs to choose to use a function as URL-SPEC in
this case. This works but is tedious, especially since this is the most
common case.

Thus, I suggest to provide another format-sequence to the
URL-SPEC-string: %i. It will resolve the "Top" node as "index", thus
allowing for "https://example.com/%i.html" to be used as URL-SPEC.

Find attached a patch that does so, and also refills the doc-string.


[1]  https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg01286.html

[2]  https://lists.gnu.org/archive/html/bug-gnu-emacs/2023-12/msg00156.html



[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Provide-format-sequence-i-in-Info-url-for-node.patch --]
[-- Type: text/x-patch, Size: 5488 bytes --]

From 03752ac8f3b2c86dd81da21db4fb5981461af3e5 Mon Sep 17 00:00:00 2001
From: Mekeor Melire <mekeor@posteo.de>
Date: Wed, 7 Feb 2024 14:47:07 +0100
Subject: [PATCH] Provide format-sequence %i in Info-url-for-node

* lisp/info.el (Info-url-for-node): Provide format-sequence %i which
resolves "Top" node as "index".
(Info-url-alist): Explain it in refilled docstring.
---
 lisp/info.el | 76 ++++++++++++++++++++++++++++++----------------------
 1 file changed, 44 insertions(+), 32 deletions(-)

diff --git a/lisp/info.el b/lisp/info.el
index e91cc7b8e54..7c58879e545 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -227,28 +227,35 @@ Info-url-alist
      "https://www.gnu.org/software/emacs/manual/html_node/%m/%e"))
   "Alist telling `Info-mode' where manuals are accessible online.
 
-Each element of this list has the form (MANUALs . URL-SPEC).
-MANUALs represents the name of one or more manuals.  It can
-either be a string or a list of strings.  URL-SPEC can be a
-string in which the substring \"%m\" will be expanded to the
-manual-name, \"%n\" to the node-name, and \"%e\" to the
-URL-encoded node-name (without a `.html' suffix).  (The
-URL-encoding of the node-name mimics GNU Texinfo, as documented
-at Info node `(texinfo)HTML Xref Node Name Expansion'.)
-Alternatively, URL-SPEC can be a function which is given
-manual-name, node-name and URL-encoded node-name as arguments,
-and is expected to return the corresponding URL as a string.
+Each element of this list has the form (MANUALs . URL-SPEC).  MANUALs
+represents the name of one or more manuals.  It can either be a string
+or a list of strings.  URL-SPEC can be a string in which the format
+sequences explained below can be used.  Alternatively, it can be a
+function which is given arguments corresponding to the format sequences
+below and is expected to return the corresponding URL as a string.
+
+`%m' represents the manual-name.
+
+`%n' represents the (raw) node-name.
+
+`%e' represents a URL-encoded node-name.  (The encoding mimics GNU
+     Texinfo, as documented at Info node `(texinfo)HTML Xref Node Name
+     Expansion'.)  It does not include any suffix like `.html'.  In case
+     of the `Top' node, it is the empty string.
+
+`%i' represents a URL-encoded node-name, which in case of the `Top'
+     node, is the string \"index\".
 
 This variable particularly affects the command
 `Info-goto-node-web', which see.
 
 The default value of this variable refers to the official,
 HTTPS-accessible HTML-representations of all manuals that Emacs
-includes.  These URLs refer to the most recently released version
-of Emacs, disregarding the version of the running Emacs.  In
-other words, the content of your local Info node and the
-associated online node may differ.  The resource represented by
-the generated URL may even be not found by the gnu.org server."
+includes.  These URLs refer to the most recently released version of
+Emacs, disregarding the version of the running Emacs.  In other words,
+the content of your local Info node and the associated online node may
+differ.  The resource represented by the generated URL may even be not
+found by the gnu.org server."
   :version "30.1"
   :type '(alist
            :tag "Mapping from manual-name(s) to URL-specification"
@@ -1922,26 +1929,31 @@ Info-url-for-node
              (encoded-node
                ;; Reproduce GNU Texinfo's way of URL-encoding.
                ;; (info "(texinfo) HTML Xref Node Name Expansion")
-               (if (equal node "Top")
-                 ""
-                 (url-hexify-string
-                   (string-replace " " "-"
-                     (mapconcat
-                       (lambda (ch)
-                         (if (or (< ch 32)      ; ^@^A-^Z^[^\^]^^^-
-                               (<= 33 ch 47)    ; !"#$%&'()*+,-./
-                               (<= 58 ch 64)    ; :;<=>?@
-                               (<= 91 ch 96)    ; [\]_`
-                               (<= 123 ch 127)) ; {|}~ DEL
-                           (format "_00%x" ch)
-                           (char-to-string ch)))
-                       node ""))))))
+               (url-hexify-string
+                 (string-replace " " "-"
+                   (mapconcat
+                     (lambda (ch)
+                       (if (or (< ch 32)      ; ^@^A-^Z^[^\^]^^^-
+                             (<= 33 ch 47)    ; !"#$%&'()*+,-./
+                             (<= 58 ch 64)    ; :;<=>?@
+                             (<= 91 ch 96)    ; [\]_`
+                             (<= 123 ch 127)) ; {|}~ DEL
+                         (format "_00%x" ch)
+                         (char-to-string ch)))
+                     node ""))))
+             (top-as-empty-node
+               (if (string= node "Top") "" encoded-node))
+             (top-as-index-node
+               (if (string= node "Top") "index" encoded-node)))
     (cond
       ((stringp url-spec)
         (format-spec url-spec
-          `((?m . ,manual) (?n . ,node) (?e . ,encoded-node))))
+          `((?m . ,manual) (?n . ,node)
+             (?e . ,top-as-empty-node)
+             (?i . ,top-as-index-node))))
       ((functionp url-spec)
-        (funcall url-spec manual node encoded-node))
+        (funcall url-spec manual node
+          top-as-empty-node top-as-index-node))
       (t (error "URL-specification neither string nor function")))
     (error "No URL-specification associated with manual-name `%s'"
       manual)))
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index"
  2024-02-07 13:27 bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index" Mekeor Melire
@ 2024-02-07 14:51 ` Eli Zaretskii
  2024-02-07 19:52   ` Mekeor Melire
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2024-02-07 14:51 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 68970

> From: Mekeor Melire <mekeor@posteo.de>
> Date: Wed, 07 Feb 2024 13:27:35 +0000
> 
> The new option Info-url-alist allow users to add custom mappings from
> manual-names to URLs. When the URL-SPEC is provided as string, users may
> use the %e format-sequence. But in the most common case, namely when
> URLs need to use a .html-suffix, this is not usable:
> 
> In the case of the special "Top" node, the %e format-sequence resolves
> to "", i.e. the empty string. It is thus not possible to use a URL-SPEC
> like "https://example.com/%e.html" because "https://example.com/.html"
> is invalid. The user rather wants "https://example.com/index.html" in
> this case.

Sorry, I don't think I understand: "https://example.com/" stands for
"https://example.com/index.html", AFAIK.  This is why %e produces an
empty string for the Top node.  So why would users want to specify
"https://example.com/%e.html" instead of just "https://example.com/%e"?

IOW, I don't see why users will need to use the .html extension in the
alist, it works without the extension.

What am I missing?





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index"
  2024-02-07 14:51 ` Eli Zaretskii
@ 2024-02-07 19:52   ` Mekeor Melire
  2024-02-07 20:18     ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2024-02-07 19:52 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 68970

2024-02-07 16:51 eliz@gnu.org:

> Sorry, I don't think I understand: "https://example.com/" stands for
> "https://example.com/index.html", AFAIK.  This is why %e produces an
> empty string for the Top node.  So why would users want to specify
> "https://example.com/%e.html" instead of just "https://example.com/%e"?
>
> IOW, I don't see why users will need to use the .html extension in the
> alist, it works without the extension.
>
> What am I missing?

Let's assume we have a manual with "Top" node as well as a node called
"Foo". Let's further assume the webserver is configured so that
example.com/Foo does not resolve to example.com/Foo.html but rather
results in "not found". This is why the user must choose to use
example.com/%e.html as URL-specification currently. But then they have
the problem that the "Top" node is translated to example.com/.html.

I suggested to add another format-sequence, %i, that translates the
"Top" node as "index". Thus, example.com/%i.html would translate to
example.com/index.html in case of "Top".

We could also instead provide a format-sequence, %s, that includes the
".html" suffix -- except in case of the "Top" node which would be
translated to the empty string. Thus, the user would use example.com/%s.
"Foo" would be translated to example.com/Foo.html; and "Top" would be
translated to "example.com/".





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index"
  2024-02-07 19:52   ` Mekeor Melire
@ 2024-02-07 20:18     ` Eli Zaretskii
  2024-02-07 22:10       ` Mekeor Melire
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2024-02-07 20:18 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 68970

> From: Mekeor Melire <mekeor@posteo.de>
> Cc: 68970@debbugs.gnu.org
> Date: Wed, 07 Feb 2024 19:52:15 +0000
> 
> 2024-02-07 16:51 eliz@gnu.org:
> 
> > Sorry, I don't think I understand: "https://example.com/" stands for
> > "https://example.com/index.html", AFAIK.  This is why %e produces an
> > empty string for the Top node.  So why would users want to specify
> > "https://example.com/%e.html" instead of just "https://example.com/%e"?
> >
> > IOW, I don't see why users will need to use the .html extension in the
> > alist, it works without the extension.
> >
> > What am I missing?
> 
> Let's assume we have a manual with "Top" node as well as a node called
> "Foo". Let's further assume the webserver is configured so that
> example.com/Foo does not resolve to example.com/Foo.html but rather
> results in "not found".

Why would we assume a strange configuration like that?  That's not
what happens on gnu.org, for example.  Which documentation sites that
offer Texinfo-derived manuals have such configurations?

> This is why the user must choose to use example.com/%e.html as
> URL-specification currently. But then they have the problem that the
> "Top" node is translated to example.com/.html.
> 
> I suggested to add another format-sequence, %i, that translates the
> "Top" node as "index". Thus, example.com/%i.html would translate to
> example.com/index.html in case of "Top".

I understand, but the overlap in functionality between %e and %i is
got to cause some confusion, so if there's a way to avoid that, I'd
prefer it.  The code intentionally produces an empty string for "Top",
and there's a good reason for it doing so.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index"
  2024-02-07 20:18     ` Eli Zaretskii
@ 2024-02-07 22:10       ` Mekeor Melire
  2024-02-08  6:26         ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2024-02-07 22:10 UTC (permalink / raw)
  To: 68970; +Cc: Eli Zaretskii

2024-02-07 22:18 eliz@gnu.org:

> > Let's assume we have a manual with "Top" node as well as a node called
> > "Foo". Let's further assume the webserver is configured so that
> > example.com/Foo does not resolve to example.com/Foo.html but rather
> > results in "not found".
>
> Why would we assume a strange configuration like that?  That's not
> what happens on gnu.org, for example.  Which documentation sites that
> offer Texinfo-derived manuals have such configurations?

Yes, gnu.org does allow to omit the .html suffix.

I am working on an Emacs package that will provide more entries to
Info-url-alist. That's why I have a tentative list, as you requested, at
hand, indeed. Here's a list of entries that require a .html suffix:

    (("annotate" "bfd" "ctf-spec" "gdb" "stabs") "https://sourceware.org/gdb/current/onlinedocs/gdb/%i.html")
    (("as" "bfd" "binutils" "ld" "gprof") "https://sourceware.org/binutils/docs/%m/%i.html")
    (("cc-mode") "https://cc-mode.sourceforge.net/html-manual/%i.html")
    (("cgdb") "https://cgdb.github.io/docs/%i.html")
    (("chickadee") "https://files.dthompson.us/docs/chickadee/latest/%i.html")
    (("cuirass" "guix") "https://guix.gnu.org/%m/manual/html_node/%i.html")
    (("forge" "magit" "ghub" "transient" "magit-section" "with-editor") "https://magit.vc/manual/%m/%i.html")
    (("gnutls" "gnutls-client-server-use-case" "gnutls-crypto-layers" "gnutls-handshake-sequence" "gnutls-handshake-state" "gnutls-internals" "gnutls-layers" "gnutls-logo" "gnutls-modauth" "gnutls-x509" "pkcs11-vision") "https://gnutls.org/manual/html_node/%i.html")
    (("guile-algorithms") "https://guile-algorithms.lajszczak.dev/%i.html")
    (("guile-email") "https://guile-email.systemreboot.net/manual/dev/en/%i.html")
    (("gwl") "https://guixwl.org/manual/html_node/%i.html")
    (("haskell-mode") "https://haskell.github.io/%m/manual/latest/%i.html")
    (("haunt") "https://files.dthompson.us/docs/%m/latest/%i.html")
    (("libc") "https://sourceware.org/%m/manual/html_node/%i.html")
    (("mailutils") "https://mailutils.org/manual/html_node/%i.html")
    (("mercury" "mercury_faq" "mercury_library" "mercury_ref" "mercury_trans_guide" "mercury_user_guide") "https://mercurylang.org/information/doc-release/%m/%i.html")
    (("org") "https://orgmode.org/manual/%i.html")
    (("orgguide") "https://orgmode.org/guide/%i.html")
    (("zsh") "https://zsh.sourceforge.io/Doc/Release/%i.html")

(Note that some domains are duplicated here.)

Here's a tentative list of non-gnu.org online manual URLs that work
without .html suffix:

    (("7400-1" "7400-1-hidden" "analysis" "ckt" "clocks" "coordinate-space" "lepton-manual" "lepton-scheme" "net-attribute" "path-example" "rf_cascade" "text-layout") "https://lepton-eda.github.io/%m.html/%e")
    (("emacs-shroud") "https://www.nongnu.org/emacs-shroud/manual/html_node/%e")
    (("emacsy") "https://www.nongnu.org/emacsy/manual/html_node/%e")
    (("geiser") "https://www.nongnu.org/geiser/%e")
    (("gnutls-guile") "https://gnutls.gitlab.io/guile/manual/html_node/%e")
    (("guile-proba") "https://luis-felipe.gitlab.io/%m/manual/%e")
    (("guile-shapefile") "https://hugonikanor.github.io/guile-shapefile/%e")
    (("octave") "https://docs.octave.org/latest/%e")
    (("optionmatrix") "https://anthonybradford.github.io/optionmatrix/%e")
    (("polipo") "https://www.irif.fr/~jch/software/%m/manual/%e")
    (("sawfish") "https://sawfish.tuxfamily.org/%m.html/%e")
    (("scm" "Xlibscm" "hobbit" "slib" "r5rs") "https://people.csail.mit.edu/jaffer/%m/%e")
    (("slime") "https://slime.common-lisp.dev/doc/html/%e")

As you can see the .html-requiring-case is very common. It would be nice
if users can conveniently use a string in this case, rather than going
for a function.

> > This is why the user must choose to use example.com/%e.html as
> > URL-specification currently. But then they have the problem that the
> > "Top" node is translated to example.com/.html.
> >
> > I suggested to add another format-sequence, %i, that translates the
> > "Top" node as "index". Thus, example.com/%i.html would translate to
> > example.com/index.html in case of "Top".
>
> I understand, but the overlap in functionality between %e and %i is
> got to cause some confusion, so if there's a way to avoid that, I'd
> prefer it.  The code intentionally produces an empty string for "Top",
> and there's a good reason for it doing so.

The "good reason" is only to keep URLs a little shorter, if possible,
for ease on eyes. :)

Another idea would be to let users specify two URL-SPECs: One for the
Top-node; another for non-Top nodes.

Another idea would be to only provide one format-sequence, for sake of
simplicity, namely one that works with .html-suffix-requiring-URLs. And
use that format-sequence in the default value of Info-url-alist. The
default URLs would be a little longer then.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index"
  2024-02-07 22:10       ` Mekeor Melire
@ 2024-02-08  6:26         ` Eli Zaretskii
  2024-02-08 20:20           ` Mekeor Melire
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2024-02-08  6:26 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 68970

> From: Mekeor Melire <mekeor@posteo.de>
> Cc: Eli Zaretskii <eliz@gnu.org>
> Date: Wed, 07 Feb 2024 22:10:25 +0000
> 
> 2024-02-07 22:18 eliz@gnu.org:
> 
> > > Let's assume we have a manual with "Top" node as well as a node called
> > > "Foo". Let's further assume the webserver is configured so that
> > > example.com/Foo does not resolve to example.com/Foo.html but rather
> > > results in "not found".
> >
> > Why would we assume a strange configuration like that?  That's not
> > what happens on gnu.org, for example.  Which documentation sites that
> > offer Texinfo-derived manuals have such configurations?
> 
> Yes, gnu.org does allow to omit the .html suffix.
> 
> I am working on an Emacs package that will provide more entries to
> Info-url-alist. That's why I have a tentative list, as you requested, at
> hand, indeed. Here's a list of entries that require a .html suffix:

I tried several of those, and they all work without index.html.  For
example, these work for me:

  https://sourceware.org/gdb/current/onlinedocs/gdb
  https://sourceware.org/gdb/current/onlinedocs/annotate
  https://sourceware.org/gdb/current/onlinedocs/stabs
  https://cc-mode.sourceforge.net/html-manual
  https://orgmode.org/manual

Some of them also work with a trailing slash, some don't.

So I still don't see why we would need %i.

> > I understand, but the overlap in functionality between %e and %i is
> > got to cause some confusion, so if there's a way to avoid that, I'd
> > prefer it.  The code intentionally produces an empty string for "Top",
> > and there's a good reason for it doing so.
> 
> The "good reason" is only to keep URLs a little shorter, if possible,
> for ease on eyes. :)
> 
> Another idea would be to let users specify two URL-SPECs: One for the
> Top-node; another for non-Top nodes.

I'd prefer this latter alternative.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index"
  2024-02-08  6:26         ` Eli Zaretskii
@ 2024-02-08 20:20           ` Mekeor Melire
  2024-02-09  7:02             ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2024-02-08 20:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 68970

2024-02-08 08:26 eliz@gnu.org:

> I tried several of those, and they all work without index.html.  For
> example, these work for me:
>
>   https://sourceware.org/gdb/current/onlinedocs/gdb
>   https://sourceware.org/gdb/current/onlinedocs/annotate
>   https://sourceware.org/gdb/current/onlinedocs/stabs
>   https://cc-mode.sourceforge.net/html-manual
>   https://orgmode.org/manual
>
> Some of them also work with a trailing slash, some don't.

Thank you for taking time to try it out.

Sorry that I was not precise in my statement. You are right,
"index.html" can be omitted.[1]

But let me try to explain what I really meant. Let's look at a node
named "Summary". Texinfo will generate a "Summary.html" file for it. For
this file, some webservers do not allow to omit the .html suffix when
requesting it via HTTP. For example:

    https://sourceware.org/gdb/current/onlinedocs/gdb/Summary
    -> error 404, not found

    https://sourceware.org/gdb/current/onlinedocs/gdb/Summary.html
    -> works fine

Thus, for the GDB manual, the user would consider to use

    https://sourceware.org/gdb/current/onlinedocs/gdb/%e.html

because %e does not contain the .html-suffix and because the webserver
requires to keep the .html-suffix for non-index-HTMLs. But that
URL-specification would not work in case of the "Top"-node because %e
will be substituted with the empty string "" in that case, thus
yielding:

    https://sourceware.org/gdb/current/onlinedocs/gdb/.html
    -> error 404, not found

The user would now understand that, with the restrictions of the current
implementation of the feature, they must define a custom function and
use it as URL-specification for the GDB-manual.

> > Another idea would be to let users specify two URL-SPECs: One for the
> > Top-node; another for non-Top nodes.
>
> I'd prefer this latter alternative.

Having thought about this idea again, it seems unnecessary because we
know that the "Top" node is always translated as "index.html". Here's a
quote from (info "(texinfo) HTML Xref Node Name Expansion"):

    A special exception: the Top node (*note The Top Node) is always
    mapped to the file 'index.html', to match web server software.

As a result, I'd like to propose yet another approach. Currently, the
implementation on the master branch offers %m (manual-name), %n (raw
node-name) and %e (URL-encoded node-name without .html-suffix). Let's
add the format-sequence %E that does include the .html-suffix. In case
of the Top-node, it'll be the empty-string "", i.e. it'll behave just
like %e in that case.

| node  | %e    | %E         |
|-------+-------+------------|
| "Top" | ""    | ""         |
| "Foo" | "Foo" | "Foo.html" |

The gnu.org webserver is configured to allow omission of the
.html-suffix. We can thus use the %e format-sequence:

| URL-specification    | https://gnu.org/s/emacs/manual/html_node/emacs/%e    |
|----------------------+------------------------------------------------------|
| URL for "Top" node   | https://gnu.org/s/emacs/manual/html_node/emacs/      |
| URL for "Intro" node | https://gnu.org/s/emacs/manual/html_node/emacs/Intro |

The sourceware.org does not allow to omit the .html-suffix. But it
allows to omit "index.html". We can thus use %E:

| URL-specification      | https://sourceware.org/gdb/current/onlinedocs/gdb/%E           |
|------------------------+----------------------------------------------------------------|
| URL for "Top" node     | https://sourceware.org/gdb/current/onlinedocs/gdb/             |
| URL for "Summary" node | https://sourceware.org/gdb/current/onlinedocs/gdb/Summary.html |

I think with these format-sequences we'd cover a lot of cases.

We would not cover the case when the webserver does not allow to omit
"index.html" but this is a very uncommon case. Thus, it'd be fine when
users need to use a custom function as URL-specification.



[1]  Of course, webservers can be configured to not serve index.html
     when a directory is requested. But the default is to do so.

     When using the common Apache webserver, one can disable this
     "defaulting to index.html" with the "DirectoryIndex disabled"
     directive, as documented here:

     https://httpd.apache.org/docs/trunk/mod/mod_dir.html#directoryindex





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index"
  2024-02-08 20:20           ` Mekeor Melire
@ 2024-02-09  7:02             ` Eli Zaretskii
  2024-02-09 22:00               ` bug#68970: [PATCH] In Info-url-alist, add .html extension to %e format-sequence Mekeor Melire
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2024-02-09  7:02 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 68970

> From: Mekeor Melire <mekeor@posteo.de>
> Cc: 68970@debbugs.gnu.org
> Date: Thu, 08 Feb 2024 20:20:18 +0000
> 
> But let me try to explain what I really meant. Let's look at a node
> named "Summary". Texinfo will generate a "Summary.html" file for it. For
> this file, some webservers do not allow to omit the .html suffix when
> requesting it via HTTP. For example:
> 
>     https://sourceware.org/gdb/current/onlinedocs/gdb/Summary
>     -> error 404, not found
> 
>     https://sourceware.org/gdb/current/onlinedocs/gdb/Summary.html
>     -> works fine
> 
> Thus, for the GDB manual, the user would consider to use
> 
>     https://sourceware.org/gdb/current/onlinedocs/gdb/%e.html
> 
> because %e does not contain the .html-suffix and because the webserver
> requires to keep the .html-suffix for non-index-HTMLs. But that
> URL-specification would not work in case of the "Top"-node because %e
> will be substituted with the empty string "" in that case, thus
> yielding:
> 
>     https://sourceware.org/gdb/current/onlinedocs/gdb/.html
>     -> error 404, not found
> 
> The user would now understand that, with the restrictions of the current
> implementation of the feature, they must define a custom function and
> use it as URL-specification for the GDB-manual.
> 
> > > Another idea would be to let users specify two URL-SPECs: One for the
> > > Top-node; another for non-Top nodes.
> >
> > I'd prefer this latter alternative.
> 
> Having thought about this idea again, it seems unnecessary because we
> know that the "Top" node is always translated as "index.html". Here's a
> quote from (info "(texinfo) HTML Xref Node Name Expansion"):
> 
>     A special exception: the Top node (*note The Top Node) is always
>     mapped to the file 'index.html', to match web server software.
> 
> As a result, I'd like to propose yet another approach. Currently, the
> implementation on the master branch offers %m (manual-name), %n (raw
> node-name) and %e (URL-encoded node-name without .html-suffix). Let's
> add the format-sequence %E that does include the .html-suffix. In case
> of the Top-node, it'll be the empty-string "", i.e. it'll behave just
> like %e in that case.

Why should %e omit the .html extension in the first place?  What
problems will we cause if we make %e include the .html extension when
that is required, and omit it when it isn't (like when converting the
"Top" node)?

AFAICS, the use of %e in Emacs 29 doesn't add the .html extension to
the produced URLs, but would producing the .html extension from %e
cause any problems with the GNU manuals we had in Info-url-alist in
Emacs 29?  Do we know of any package which augments Info-url-alist
with specs that use %e.html?

> | node  | %e    | %E         |
> |-------+-------+------------|
> | "Top" | ""    | ""         |
> | "Foo" | "Foo" | "Foo.html" |
> 
> The gnu.org webserver is configured to allow omission of the
> .html-suffix. We can thus use the %e format-sequence:
> 
> | URL-specification    | https://gnu.org/s/emacs/manual/html_node/emacs/%e    |
> |----------------------+------------------------------------------------------|
> | URL for "Top" node   | https://gnu.org/s/emacs/manual/html_node/emacs/      |
> | URL for "Intro" node | https://gnu.org/s/emacs/manual/html_node/emacs/Intro |
> 
> The sourceware.org does not allow to omit the .html-suffix. But it
> allows to omit "index.html". We can thus use %E:
> 
> | URL-specification      | https://sourceware.org/gdb/current/onlinedocs/gdb/%E           |
> |------------------------+----------------------------------------------------------------|
> | URL for "Top" node     | https://sourceware.org/gdb/current/onlinedocs/gdb/             |
> | URL for "Summary" node | https://sourceware.org/gdb/current/onlinedocs/gdb/Summary.html |
> 
> I think with these format-sequences we'd cover a lot of cases.

I'm asking why cannot we make %e behave like your proposed %E?





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: [PATCH] In Info-url-alist, add .html extension to %e format-sequence
  2024-02-09  7:02             ` Eli Zaretskii
@ 2024-02-09 22:00               ` Mekeor Melire
  2024-02-10  7:46                 ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2024-02-09 22:00 UTC (permalink / raw)
  To: 68970; +Cc: Eli Zaretskii

[-- Attachment #1: Type: text/plain, Size: 2023 bytes --]

2024-02-09 09:02 eliz@gnu.org:

> Why should %e omit the .html extension in the first place?

Because by omitting the .html extension, URLs are a little shorter. By
five characters.

> What problems will we cause if we make %e include the .html extension
> when that is required, and omit it when it isn't (like when converting
> the "Top" node)?

Yes, we could make %e include the .html extension for non-Top-nodes and
for Top-nodes it could be replaced with the empty string "".

> AFAICS, the use of %e in Emacs 29

Info-url-alist is not present in Emacs 29. It is only part of the
master-branch, i.e. upcoming Emacs 30. It was committed on 27th January
2024, i.e. just a couple of days ago, in a commit authored by me.

> doesn't add the .html extension to the produced URLs, but would
> producing the .html extension from %e cause any problems with the GNU
> manuals we had in Info-url-alist in Emacs 29?

No, adding the .html extension for non-Top-nodes to %e would not cause
any problems.

> Do we know of any package which augments Info-url-alist with specs
> that use %e.html?

It's very unlikely because it's just a couple of days old. I myself am
working on a package that will provide a community-maintained value for
Info-url-alist. While working on it, I realized that the current
implementation of %e would not work for many cases.

> I'm asking why cannot we make %e behave like your proposed %E?

We can do so. I was just trying to keep URLs a little shorter, by saving
five characters (".html"). But I think, you are right, it's more
important to cover as many cases as possible with as few
format-sequences as possible. Find attached a patch that implements
this. Note that in the mean time, the fill-column has been changed for
the Emacs repository via directory-local variables. For this patch, I
did not use the "new" fill-column value so that the changes to the
docstring can be seen well in the diff. Please let me know if you'd like
the docstrings to be refilled according to the new fill-column.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-In-Info-url-alist-add-.html-extension-to-e-format-se.patch --]
[-- Type: text/x-patch, Size: 4789 bytes --]

From 7eab913663fe8570d44f9c4399eb0547f1cc510f Mon Sep 17 00:00:00 2001
From: Mekeor Melire <mekeor@posteo.de>
Date: Fri, 9 Feb 2024 23:30:52 +0100
Subject: [PATCH] In Info-url-alist, add .html extension to %e format-sequence

* lisp/info.el (Info-url-for-node): Implement the change. (Bug#68970)
(Info-url-alist): Document the change.
* test/lisp/info-tests.el (test-info-urls): Adjust tests to account
for the change.
---
 lisp/info.el            | 31 +++++++++++++++++--------------
 test/lisp/info-tests.el | 12 ++++++------
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/lisp/info.el b/lisp/info.el
index e91cc7b8e54..9be92f198c4 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -231,8 +231,9 @@ Info-url-alist
 MANUALs represents the name of one or more manuals.  It can
 either be a string or a list of strings.  URL-SPEC can be a
 string in which the substring \"%m\" will be expanded to the
-manual-name, \"%n\" to the node-name, and \"%e\" to the
-URL-encoded node-name (without a `.html' suffix).  (The
+manual-name and \"%n\" to the node-name. \"%e\" will expand to
+the URL-encoded node-name, including the `.html' extension; in
+case of the Top node, it will expand to the empty string.  (The
 URL-encoding of the node-name mimics GNU Texinfo, as documented
 at Info node `(texinfo)HTML Xref Node Name Expansion'.)
 Alternatively, URL-SPEC can be a function which is given
@@ -1924,18 +1925,20 @@ Info-url-for-node
                ;; (info "(texinfo) HTML Xref Node Name Expansion")
                (if (equal node "Top")
                  ""
-                 (url-hexify-string
-                   (string-replace " " "-"
-                     (mapconcat
-                       (lambda (ch)
-                         (if (or (< ch 32)      ; ^@^A-^Z^[^\^]^^^-
-                               (<= 33 ch 47)    ; !"#$%&'()*+,-./
-                               (<= 58 ch 64)    ; :;<=>?@
-                               (<= 91 ch 96)    ; [\]_`
-                               (<= 123 ch 127)) ; {|}~ DEL
-                           (format "_00%x" ch)
-                           (char-to-string ch)))
-                       node ""))))))
+                 (concat
+                   (url-hexify-string
+                     (string-replace " " "-"
+                       (mapconcat
+                         (lambda (ch)
+                           (if (or (< ch 32)      ; ^@^A-^Z^[^\^]^^^-
+                                 (<= 33 ch 47)    ; !"#$%&'()*+,-./
+                                 (<= 58 ch 64)    ; :;<=>?@
+                                 (<= 91 ch 96)    ; [\]_`
+                                 (<= 123 ch 127)) ; {|}~ DEL
+                             (format "_00%x" ch)
+                             (char-to-string ch)))
+                         node "")))
+                   ".html"))))
     (cond
       ((stringp url-spec)
         (format-spec url-spec
diff --git a/test/lisp/info-tests.el b/test/lisp/info-tests.el
index 0dfdbf417e8..9835491912d 100644
--- a/test/lisp/info-tests.el
+++ b/test/lisp/info-tests.el
@@ -29,17 +29,17 @@
 
 (ert-deftest test-info-urls ()
   (should (equal (Info-url-for-node "(emacs)Minibuffer")
-                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer.html"))
   (should (equal (Info-url-for-node "(emacs)Minibuffer File")
-                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-File"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-File.html"))
   (should (equal (Info-url-for-node "(elisp)Backups and Auto-Saving")
-                 "https://www.gnu.org/software/emacs/manual/html_node/elisp/Backups-and-Auto_002dSaving"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/elisp/Backups-and-Auto_002dSaving.html"))
   (should (equal (Info-url-for-node "(eintr)car & cdr")
-                 "https://www.gnu.org/software/emacs/manual/html_node/eintr/car-_0026-cdr"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/eintr/car-_0026-cdr.html"))
   (should (equal (Info-url-for-node "(emacs-mime)\tIndex")
-                 "https://www.gnu.org/software/emacs/manual/html_node/emacs-mime/Index"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/emacs-mime/Index.html"))
   (should (equal (Info-url-for-node  "(gnus) Don't Panic")
-                 "https://www.gnu.org/software/emacs/manual/html_node/gnus/Don_0027t-Panic"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/gnus/Don_0027t-Panic.html"))
   (should-error (Info-url-for-node "(nonexistent)Example")))
 
 ;;; info-tests.el ends here
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* bug#68970: [PATCH] In Info-url-alist, add .html extension to %e format-sequence
  2024-02-09 22:00               ` bug#68970: [PATCH] In Info-url-alist, add .html extension to %e format-sequence Mekeor Melire
@ 2024-02-10  7:46                 ` Eli Zaretskii
  2024-02-10 13:16                   ` Mekeor Melire
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2024-02-10  7:46 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 68970

> From: Mekeor Melire <mekeor@posteo.de>
> Cc: Eli Zaretskii <eliz@gnu.org>
> Date: Fri, 09 Feb 2024 22:00:47 +0000
> 
> > I'm asking why cannot we make %e behave like your proposed %E?
> 
> We can do so. I was just trying to keep URLs a little shorter, by saving
> five characters (".html"). But I think, you are right, it's more
> important to cover as many cases as possible with as few
> format-sequences as possible. Find attached a patch that implements
> this. Note that in the mean time, the fill-column has been changed for
> the Emacs repository via directory-local variables. For this patch, I
> did not use the "new" fill-column value so that the changes to the
> docstring can be seen well in the diff. Please let me know if you'd like
> the docstrings to be refilled according to the new fill-column.

From where I stand, the fill-column for commit log messages is just a
guideline, not a hard requirement.  It is more important to have the
doc strings filled so they are easily readable.  The hard requirements
are spelled out in CONTRIBUTE.

> --- a/lisp/info.el
> +++ b/lisp/info.el
> @@ -231,8 +231,9 @@ Info-url-alist
>  MANUALs represents the name of one or more manuals.  It can
>  either be a string or a list of strings.  URL-SPEC can be a
>  string in which the substring \"%m\" will be expanded to the
> -manual-name, \"%n\" to the node-name, and \"%e\" to the
> -URL-encoded node-name (without a `.html' suffix).  (The
> +manual-name and \"%n\" to the node-name. \"%e\" will expand to
                                          ^^
Two spaces between sentences, please.

> --- a/test/lisp/info-tests.el
> +++ b/test/lisp/info-tests.el
> @@ -29,17 +29,17 @@
>  
>  (ert-deftest test-info-urls ()
>    (should (equal (Info-url-for-node "(emacs)Minibuffer")
> -                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer"))
> +                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer.html"))
>    (should (equal (Info-url-for-node "(emacs)Minibuffer File")
> -                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-File"))
> +                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-File.html"))
>    (should (equal (Info-url-for-node "(elisp)Backups and Auto-Saving")
> -                 "https://www.gnu.org/software/emacs/manual/html_node/elisp/Backups-and-Auto_002dSaving"))
> +                 "https://www.gnu.org/software/emacs/manual/html_node/elisp/Backups-and-Auto_002dSaving.html"))
>    (should (equal (Info-url-for-node "(eintr)car & cdr")
> -                 "https://www.gnu.org/software/emacs/manual/html_node/eintr/car-_0026-cdr"))
> +                 "https://www.gnu.org/software/emacs/manual/html_node/eintr/car-_0026-cdr.html"))
>    (should (equal (Info-url-for-node "(emacs-mime)\tIndex")
> -                 "https://www.gnu.org/software/emacs/manual/html_node/emacs-mime/Index"))
> +                 "https://www.gnu.org/software/emacs/manual/html_node/emacs-mime/Index.html"))
>    (should (equal (Info-url-for-node  "(gnus) Don't Panic")
> -                 "https://www.gnu.org/software/emacs/manual/html_node/gnus/Don_0027t-Panic"))
> +                 "https://www.gnu.org/software/emacs/manual/html_node/gnus/Don_0027t-Panic.html"))
>    (should-error (Info-url-for-node "(nonexistent)Example")))

Should we add here tests for the Top node?

Thanks.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: [PATCH] In Info-url-alist, add .html extension to %e format-sequence
  2024-02-10  7:46                 ` Eli Zaretskii
@ 2024-02-10 13:16                   ` Mekeor Melire
  2024-02-10 13:56                     ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2024-02-10 13:16 UTC (permalink / raw)
  To: 68970; +Cc: Eli Zaretskii

2024-02-10 09:46 eliz@gnu.org:

> > From: Mekeor Melire <mekeor@posteo.de>
> > Cc: Eli Zaretskii <eliz@gnu.org>
> > Date: Fri, 09 Feb 2024 22:00:47 +0000
> >
> > Note that in the mean time, the fill-column has been changed for the
> > Emacs repository via directory-local variables. For this patch, I
> > did not use the "new" fill-column value so that the changes to the
> > docstring can be seen well in the diff. Please let me know if you'd
> > like the docstrings to be refilled according to the new fill-column.
>
> From where I stand, the fill-column for commit log messages is just a
> guideline, not a hard requirement.  It is more important to have the
> doc strings filled so they are easily readable.  The hard requirements
> are spelled out in CONTRIBUTE.

Sorry, I was referring to emacs-lisp-docstring-fill-column which Stefan
Kangas increased from 65 to 72 on 2nd February 2024. Should I refill the
docstring of Info-url-alist to match the new value?

> Two spaces between sentences, please.

Sorry, I will fix it.

> Should we add here tests for the Top node?

Yes, that's a good idea. I will do so.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: [PATCH] In Info-url-alist, add .html extension to %e format-sequence
  2024-02-10 13:16                   ` Mekeor Melire
@ 2024-02-10 13:56                     ` Eli Zaretskii
  2024-02-10 22:41                       ` bug#68970: [PATCH v2] " Mekeor Melire
  0 siblings, 1 reply; 14+ messages in thread
From: Eli Zaretskii @ 2024-02-10 13:56 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 68970

> From: Mekeor Melire <mekeor@posteo.de>
> Cc: Eli Zaretskii <eliz@gnu.org>
> Date: Sat, 10 Feb 2024 13:16:21 +0000
> 
> 2024-02-10 09:46 eliz@gnu.org:
> 
> > > From: Mekeor Melire <mekeor@posteo.de>
> > > Cc: Eli Zaretskii <eliz@gnu.org>
> > > Date: Fri, 09 Feb 2024 22:00:47 +0000
> > >
> > > Note that in the mean time, the fill-column has been changed for the
> > > Emacs repository via directory-local variables. For this patch, I
> > > did not use the "new" fill-column value so that the changes to the
> > > docstring can be seen well in the diff. Please let me know if you'd
> > > like the docstrings to be refilled according to the new fill-column.
> >
> > From where I stand, the fill-column for commit log messages is just a
> > guideline, not a hard requirement.  It is more important to have the
> > doc strings filled so they are easily readable.  The hard requirements
> > are spelled out in CONTRIBUTE.
> 
> Sorry, I was referring to emacs-lisp-docstring-fill-column which Stefan
> Kangas increased from 65 to 72 on 2nd February 2024. Should I refill the
> docstring of Info-url-alist to match the new value?

I understood, and answered your question above.  To clarify: if the
doc string looks okay to you, there's no need to refill.

> > Two spaces between sentences, please.
> 
> Sorry, I will fix it.
> 
> > Should we add here tests for the Top node?
> 
> Yes, that's a good idea. I will do so.

Thanks.





^ permalink raw reply	[flat|nested] 14+ messages in thread

* bug#68970: [PATCH v2] In Info-url-alist, add .html extension to %e format-sequence
  2024-02-10 13:56                     ` Eli Zaretskii
@ 2024-02-10 22:41                       ` Mekeor Melire
  2024-02-11  7:27                         ` Eli Zaretskii
  0 siblings, 1 reply; 14+ messages in thread
From: Mekeor Melire @ 2024-02-10 22:41 UTC (permalink / raw)
  To: 68970; +Cc: Eli Zaretskii

[-- Attachment #1: Type: text/plain, Size: 293 bytes --]

2024-02-10 15:56 eliz@gnu.org:

> if the doc string looks okay to you, there's no need to refill.

I decided to not refill the docstring.

> > > Two spaces between sentences, please.

Done.

> > > Should we add here tests for the Top node?

Done.

Find attached the new version of the patch.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-In-Info-url-alist-add-.html-extension-to-e-format-se.patch --]
[-- Type: text/x-patch, Size: 5037 bytes --]

From 7241f2ab1867f2d84c4e25c3ae5bba509718697f Mon Sep 17 00:00:00 2001
From: Mekeor Melire <mekeor@posteo.de>
Date: Fri, 9 Feb 2024 23:30:52 +0100
Subject: [PATCH] In Info-url-alist, add .html extension to %e format-sequence

* lisp/info.el (Info-url-for-node): Implement the change. (Bug#68970)
(Info-url-alist): Document the change.
* test/lisp/info-tests.el (test-info-urls): Adjust tests to account for
the change and add a test for the "Top" node.
---
 lisp/info.el            | 31 +++++++++++++++++--------------
 test/lisp/info-tests.el | 16 +++++++++-------
 2 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/lisp/info.el b/lisp/info.el
index e91cc7b8e54..a6e78187e3b 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -231,8 +231,9 @@ Info-url-alist
 MANUALs represents the name of one or more manuals.  It can
 either be a string or a list of strings.  URL-SPEC can be a
 string in which the substring \"%m\" will be expanded to the
-manual-name, \"%n\" to the node-name, and \"%e\" to the
-URL-encoded node-name (without a `.html' suffix).  (The
+manual-name and \"%n\" to the node-name.  \"%e\" will expand to
+the URL-encoded node-name, including the `.html' extension; in
+case of the Top node, it will expand to the empty string.  (The
 URL-encoding of the node-name mimics GNU Texinfo, as documented
 at Info node `(texinfo)HTML Xref Node Name Expansion'.)
 Alternatively, URL-SPEC can be a function which is given
@@ -1924,18 +1925,20 @@ Info-url-for-node
                ;; (info "(texinfo) HTML Xref Node Name Expansion")
                (if (equal node "Top")
                  ""
-                 (url-hexify-string
-                   (string-replace " " "-"
-                     (mapconcat
-                       (lambda (ch)
-                         (if (or (< ch 32)      ; ^@^A-^Z^[^\^]^^^-
-                               (<= 33 ch 47)    ; !"#$%&'()*+,-./
-                               (<= 58 ch 64)    ; :;<=>?@
-                               (<= 91 ch 96)    ; [\]_`
-                               (<= 123 ch 127)) ; {|}~ DEL
-                           (format "_00%x" ch)
-                           (char-to-string ch)))
-                       node ""))))))
+                 (concat
+                   (url-hexify-string
+                     (string-replace " " "-"
+                       (mapconcat
+                         (lambda (ch)
+                           (if (or (< ch 32)      ; ^@^A-^Z^[^\^]^^^-
+                                 (<= 33 ch 47)    ; !"#$%&'()*+,-./
+                                 (<= 58 ch 64)    ; :;<=>?@
+                                 (<= 91 ch 96)    ; [\]_`
+                                 (<= 123 ch 127)) ; {|}~ DEL
+                             (format "_00%x" ch)
+                             (char-to-string ch)))
+                         node "")))
+                   ".html"))))
     (cond
       ((stringp url-spec)
         (format-spec url-spec
diff --git a/test/lisp/info-tests.el b/test/lisp/info-tests.el
index 0dfdbf417e8..8020a7419cf 100644
--- a/test/lisp/info-tests.el
+++ b/test/lisp/info-tests.el
@@ -28,18 +28,20 @@
 (require 'ert-x)
 
 (ert-deftest test-info-urls ()
+  (should (equal (Info-url-for-node "(tramp)Top")
+                 "https://www.gnu.org/software/emacs/manual/html_node/tramp/"))
   (should (equal (Info-url-for-node "(emacs)Minibuffer")
-                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer.html"))
   (should (equal (Info-url-for-node "(emacs)Minibuffer File")
-                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-File"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/emacs/Minibuffer-File.html"))
   (should (equal (Info-url-for-node "(elisp)Backups and Auto-Saving")
-                 "https://www.gnu.org/software/emacs/manual/html_node/elisp/Backups-and-Auto_002dSaving"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/elisp/Backups-and-Auto_002dSaving.html"))
   (should (equal (Info-url-for-node "(eintr)car & cdr")
-                 "https://www.gnu.org/software/emacs/manual/html_node/eintr/car-_0026-cdr"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/eintr/car-_0026-cdr.html"))
   (should (equal (Info-url-for-node "(emacs-mime)\tIndex")
-                 "https://www.gnu.org/software/emacs/manual/html_node/emacs-mime/Index"))
-  (should (equal (Info-url-for-node  "(gnus) Don't Panic")
-                 "https://www.gnu.org/software/emacs/manual/html_node/gnus/Don_0027t-Panic"))
+                 "https://www.gnu.org/software/emacs/manual/html_node/emacs-mime/Index.html"))
+  (should (equal (Info-url-for-node "(gnus) Don't Panic")
+                 "https://www.gnu.org/software/emacs/manual/html_node/gnus/Don_0027t-Panic.html"))
   (should-error (Info-url-for-node "(nonexistent)Example")))
 
 ;;; info-tests.el ends here
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* bug#68970: [PATCH v2] In Info-url-alist, add .html extension to %e format-sequence
  2024-02-10 22:41                       ` bug#68970: [PATCH v2] " Mekeor Melire
@ 2024-02-11  7:27                         ` Eli Zaretskii
  0 siblings, 0 replies; 14+ messages in thread
From: Eli Zaretskii @ 2024-02-11  7:27 UTC (permalink / raw)
  To: Mekeor Melire; +Cc: 68970-done

> From: Mekeor Melire <mekeor@posteo.de>
> Cc: Eli Zaretskii <eliz@gnu.org>
> Date: Sat, 10 Feb 2024 22:41:35 +0000
> 
> > if the doc string looks okay to you, there's no need to refill.
> 
> I decided to not refill the docstring.
> 
> > > > Two spaces between sentences, please.
> 
> Done.
> 
> > > > Should we add here tests for the Top node?
> 
> Done.
> 
> Find attached the new version of the patch.

Thanks, installed on the master branch, and closing the bug.





^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2024-02-11  7:27 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-07 13:27 bug#68970: 30.0.50; Info.el: Info-url-alist should support format-sequence that encodes "Top" node as "index" Mekeor Melire
2024-02-07 14:51 ` Eli Zaretskii
2024-02-07 19:52   ` Mekeor Melire
2024-02-07 20:18     ` Eli Zaretskii
2024-02-07 22:10       ` Mekeor Melire
2024-02-08  6:26         ` Eli Zaretskii
2024-02-08 20:20           ` Mekeor Melire
2024-02-09  7:02             ` Eli Zaretskii
2024-02-09 22:00               ` bug#68970: [PATCH] In Info-url-alist, add .html extension to %e format-sequence Mekeor Melire
2024-02-10  7:46                 ` Eli Zaretskii
2024-02-10 13:16                   ` Mekeor Melire
2024-02-10 13:56                     ` Eli Zaretskii
2024-02-10 22:41                       ` bug#68970: [PATCH v2] " Mekeor Melire
2024-02-11  7:27                         ` Eli Zaretskii

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.