Some documentation links use single quotes for attributes, which produces inconsistent HTML

Created on 31 August 2010, over 14 years ago
Updated 12 September 2024, 4 months ago

Problem/Motivation

There are some documentation links that have invalid HTML. According the HTML specification, every attribute in a HTML tag have a pair (attribute, value) with a notation like (with double quotes). In the documentation, there are some links that have the value of the @href attribute with only one quote.

Steps to reproduce

Proposed resolution

Fix the quoting of the href attribute.
Use this to find instances.
$ git grep -ri "/code>

Remaining tasks

Review
Commit

User interface changes

API changes

Data model changes

Release notes snippet

I attach a patch that solves this little bug.

๐Ÿ› Bug report
Status

Fixed

Version

11.0 ๐Ÿ”ฅ

Component
Markupย  โ†’

Last updated about 2 months ago

No maintainer
Created by

๐Ÿ‡ช๐Ÿ‡ธSpain rvilar Montcada i Reixac, Catalonia

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • ๐Ÿ‡บ๐Ÿ‡ธUnited States smustgrave

    This issue is being reviewed by the kind folks in Slack, #needs-review-queue-initiative. We are working to keep the size of Needs Review queue [2700+ issues] to around 400 (1 month or less), following Review a patch or merge request โ†’ as a guide.

    At this time we will need a D10 version of patch #41 and a recheck using the same grep as before.

  • Status changed to Needs review almost 2 years ago
  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia Abhisheksingh27

    Adding reroll for 10.1.x as the patch #41 failed to apply in drupal 10.
    please review

  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia Abhisheksingh27

    Adding #46 patch again with improved coding satandards.

  • Status changed to RTBC almost 2 years ago
  • ๐Ÿ‡บ๐Ÿ‡ธUnited States smustgrave

    @Abhisheksingh27 please include interdiffs with patches.

    Following what @quietone ran grep -ri "<a href='" core| awk -F: '{print $1}' | sort | nl and got

         1  core/assets/vendor/jquery/jquery.js
         2  core/assets/vendor/jquery/jquery.js
         3  core/assets/vendor/jquery/jquery.min.js
         4  core/modules/views/tests/src/Functional/GlossaryTest.php
         5  core/node_modules/jquery-form/node_modules/jquery/dist/jquery.js
         6  core/node_modules/jquery-form/node_modules/jquery/dist/jquery.js
         7  core/node_modules/jquery-form/node_modules/jquery/dist/jquery.min.js
         8  core/node_modules/jquery-form/node_modules/jquery/dist/jquery.slim.js
         9  core/node_modules/jquery-form/node_modules/jquery/dist/jquery.slim.js
        10  core/node_modules/jquery-form/node_modules/jquery/dist/jquery.slim.min.js
        11  core/node_modules/jquery-form/node_modules/jquery/external/sizzle/dist/sizzle.js
        12  core/node_modules/jquery-form/node_modules/jquery/external/sizzle/dist/sizzle.js
        13  core/node_modules/jquery-form/node_modules/jquery/external/sizzle/dist/sizzle.min.js
        14  core/node_modules/jquery-ui/build/tasks/testswarm.js
        15  core/node_modules/jquery-ui/external/jquery-1.10.0/jquery.js
        16  core/node_modules/jquery-ui/external/jquery-1.10.0/jquery.js
        17  core/node_modules/jquery-ui/external/jquery-1.10.1/jquery.js
        18  core/node_modules/jquery-ui/external/jquery-1.10.1/jquery.js
        19  core/node_modules/jquery-ui/external/jquery-1.10.2/jquery.js
        20  core/node_modules/jquery-ui/external/jquery-1.10.2/jquery.js
        21  core/node_modules/jquery-ui/external/jquery-1.11.0/jquery.js
        22  core/node_modules/jquery-ui/external/jquery-1.11.0/jquery.js
        23  core/node_modules/jquery-ui/external/jquery-1.11.0/jquery.js
        24  core/node_modules/jquery-ui/external/jquery-1.11.0/jquery.js
        25  core/node_modules/jquery-ui/external/jquery-1.11.0/jquery.js
        26  core/node_modules/jquery-ui/external/jquery-1.11.0/jquery.js
        27  core/node_modules/jquery-ui/external/jquery-1.11.1/jquery.js
        28  core/node_modules/jquery-ui/external/jquery-1.11.1/jquery.js
        29  core/node_modules/jquery-ui/external/jquery-1.11.1/jquery.js
        30  core/node_modules/jquery-ui/external/jquery-1.11.1/jquery.js
        31  core/node_modules/jquery-ui/external/jquery-1.11.2/jquery.js
        32  core/node_modules/jquery-ui/external/jquery-1.11.2/jquery.js
        33  core/node_modules/jquery-ui/external/jquery-1.11.2/jquery.js
        34  core/node_modules/jquery-ui/external/jquery-1.11.2/jquery.js
        35  core/node_modules/jquery-ui/external/jquery-1.11.3/jquery.js
        36  core/node_modules/jquery-ui/external/jquery-1.11.3/jquery.js
        37  core/node_modules/jquery-ui/external/jquery-1.11.3/jquery.js
        38  core/node_modules/jquery-ui/external/jquery-1.11.3/jquery.js
        39  core/node_modules/jquery-ui/external/jquery-1.12.0/jquery.js
        40  core/node_modules/jquery-ui/external/jquery-1.12.0/jquery.js
        41  core/node_modules/jquery-ui/external/jquery-1.12.0/jquery.js
        42  core/node_modules/jquery-ui/external/jquery-1.12.1/jquery.js
        43  core/node_modules/jquery-ui/external/jquery-1.12.1/jquery.js
        44  core/node_modules/jquery-ui/external/jquery-1.12.1/jquery.js
        45  core/node_modules/jquery-ui/external/jquery-1.12.2/jquery.js
        46  core/node_modules/jquery-ui/external/jquery-1.12.2/jquery.js
        47  core/node_modules/jquery-ui/external/jquery-1.12.2/jquery.js
        48  core/node_modules/jquery-ui/external/jquery-1.12.3/jquery.js
        49  core/node_modules/jquery-ui/external/jquery-1.12.3/jquery.js
        50  core/node_modules/jquery-ui/external/jquery-1.12.3/jquery.js
        51  core/node_modules/jquery-ui/external/jquery-1.12.4/jquery.js
        52  core/node_modules/jquery-ui/external/jquery-1.12.4/jquery.js
        53  core/node_modules/jquery-ui/external/jquery-1.12.4/jquery.js
        54  core/node_modules/jquery-ui/external/jquery-1.8.0/jquery.js
        55  core/node_modules/jquery-ui/external/jquery-1.8.0/jquery.js
        56  core/node_modules/jquery-ui/external/jquery-1.8.1/jquery.js
        57  core/node_modules/jquery-ui/external/jquery-1.8.1/jquery.js
        58  core/node_modules/jquery-ui/external/jquery-1.8.2/jquery.js
        59  core/node_modules/jquery-ui/external/jquery-1.8.2/jquery.js
        60  core/node_modules/jquery-ui/external/jquery-1.8.3/jquery.js
        61  core/node_modules/jquery-ui/external/jquery-1.8.3/jquery.js
        62  core/node_modules/jquery-ui/external/jquery-1.9.0/jquery.js
        63  core/node_modules/jquery-ui/external/jquery-1.9.0/jquery.js
        64  core/node_modules/jquery-ui/external/jquery-1.9.1/jquery.js
        65  core/node_modules/jquery-ui/external/jquery-1.9.1/jquery.js
        66  core/node_modules/jquery-ui/external/jquery-2.0.0/jquery.js
        67  core/node_modules/jquery-ui/external/jquery-2.0.1/jquery.js
        68  core/node_modules/jquery-ui/external/jquery-2.0.2/jquery.js
        69  core/node_modules/jquery-ui/external/jquery-2.0.3/jquery.js
        70  core/node_modules/jquery-ui/external/jquery-2.1.0/jquery.js
        71  core/node_modules/jquery-ui/external/jquery-2.1.1/jquery.js
        72  core/node_modules/jquery-ui/external/jquery-2.1.2/jquery.js
        73  core/node_modules/jquery-ui/external/jquery-2.1.3/jquery.js
        74  core/node_modules/jquery-ui/external/jquery-2.1.4/jquery.js
        75  core/node_modules/jquery-ui/external/jquery-2.2.0/jquery.js
        76  core/node_modules/jquery-ui/external/jquery-2.2.1/jquery.js
        77  core/node_modules/jquery-ui/external/jquery-2.2.2/jquery.js
        78  core/node_modules/jquery-ui/external/jquery-2.2.3/jquery.js
        79  core/node_modules/jquery-ui/external/jquery-2.2.4/jquery.js
        80  core/node_modules/jquery-ui/external/jquery-3.0.0/jquery.js
        81  core/node_modules/jquery-ui/external/jquery-3.0.0/jquery.js
        82  core/node_modules/jquery-ui/external/jquery-3.1.0/jquery.js
        83  core/node_modules/jquery-ui/external/jquery-3.1.0/jquery.js
        84  core/node_modules/jquery-ui/external/jquery-3.1.1/jquery.js
        85  core/node_modules/jquery-ui/external/jquery-3.1.1/jquery.js
        86  core/node_modules/jquery-ui/external/jquery-3.2.0/jquery.js
        87  core/node_modules/jquery-ui/external/jquery-3.2.0/jquery.js
        88  core/node_modules/jquery-ui/external/jquery-3.2.1/jquery.js
        89  core/node_modules/jquery-ui/external/jquery-3.2.1/jquery.js
        90  core/node_modules/jquery-ui/external/jquery-3.3.0/jquery.js
        91  core/node_modules/jquery-ui/external/jquery-3.3.0/jquery.js
        92  core/node_modules/jquery-ui/external/jquery-3.3.1/jquery.js
        93  core/node_modules/jquery-ui/external/jquery-3.3.1/jquery.js
        94  core/node_modules/jquery-ui/external/jquery-3.4.0/jquery.js
        95  core/node_modules/jquery-ui/external/jquery-3.4.0/jquery.js
        96  core/node_modules/jquery-ui/external/jquery-3.4.1/jquery.js
        97  core/node_modules/jquery-ui/external/jquery-3.4.1/jquery.js
        98  core/node_modules/jquery-ui/external/jquery-3.5.0/jquery.js
        99  core/node_modules/jquery-ui/external/jquery-3.5.0/jquery.js
       100  core/node_modules/jquery-ui/external/jquery-3.5.1/jquery.js
       101  core/node_modules/jquery-ui/external/jquery-3.5.1/jquery.js
       102  core/node_modules/jquery-ui/external/jquery-3.6.0/jquery.js
       103  core/node_modules/jquery-ui/external/jquery-3.6.0/jquery.js
       104  core/node_modules/jquery-ui/external/jquery-custom/jquery.js
       105  core/node_modules/jquery-ui/external/jquery-custom/jquery.js
       106  core/node_modules/jquery-ui/external/jquery-custom/jquery.js
       107  core/node_modules/jquery-ui/external/jquery-custom/jquery.js
       108  core/node_modules/jquery-ui/external/jquery/jquery.js
       109  core/node_modules/jquery-ui/external/jquery/jquery.js
       110  core/node_modules/jquery-ui/external/qunit/qunit.js
       111  core/node_modules/jquery-ui/external/qunit/qunit.js
       112  core/node_modules/jquery-ui/node_modules/jquery/dist/jquery.js
       113  core/node_modules/jquery-ui/node_modules/jquery/dist/jquery.js
       114  core/node_modules/jquery-ui/node_modules/jquery/dist/jquery.min.js
       115  core/node_modules/jquery-ui/node_modules/jquery/dist/jquery.slim.js
       116  core/node_modules/jquery-ui/node_modules/jquery/dist/jquery.slim.js
       117  core/node_modules/jquery-ui/node_modules/jquery/dist/jquery.slim.min.js
       118  core/node_modules/jquery-ui/node_modules/jquery/external/sizzle/dist/sizzle.js
       119  core/node_modules/jquery-ui/node_modules/jquery/external/sizzle/dist/sizzle.js
       120  core/node_modules/jquery-ui/node_modules/jquery/external/sizzle/dist/sizzle.min.js
       121  core/node_modules/jquery/dist/jquery.js
       122  core/node_modules/jquery/dist/jquery.js
       123  core/node_modules/jquery/dist/jquery.min.js
       124  core/node_modules/jquery/dist/jquery.slim.js
       125  core/node_modules/jquery/dist/jquery.slim.js
       126  core/node_modules/jquery/dist/jquery.slim.min.js
       127  core/node_modules/jquery/external/sizzle/dist/sizzle.js
       128  core/node_modules/jquery/external/sizzle/dist/sizzle.js
       129  core/node_modules/jquery/external/sizzle/dist/sizzle.min.js
       130  core/node_modules/js-sdsl/README.md
       131  core/node_modules/js-sdsl/README.zh-CN.md
    

    So mainly just node_modules stuff. Did see GlossaryTest as mentioned but as quietone pointed out this should be fine.

    Updating remaining tasks in issue summary.

  • ๐Ÿ‡บ๐Ÿ‡ธUnited States xjm

    Thanks @quietone and @smustgrave.

    Re: GlossaryTest, is the comment maybe just wrong? If it's true, then the whole view has bad markup. If it's false, it should be changed. Manually testing now...

  • Status changed to Needs work almost 2 years ago
  • ๐Ÿ‡บ๐Ÿ‡ธUnited States xjm
    1. I confirmed GlossaryTest just has an incorrect comment -- the attribute is correctly double-quoted -- so we might as well fix that comment too, since it's part of the same pattern.

    2. +++ b/core/modules/book/book.module
      @@ -167,7 +167,7 @@ function book_form_node_form_alter(&$form, FormStateInterface $form_state, $form
      - * @todo: Remove this in favor of an entity field.
      + * @todo Remove this in favor of an entity field.
      

      Scope creep here.

    3. -1,About Umami,"<p>Umami is a fictional food magazine that has been created to demonstrate how you might build a Drupal site using functionality provided 'out of the box'.</p><p>For more information visit <a href='https://www.drupal.org/docs/umami-drupal-demonstration-installation-profile'>https://www.drupal.org/docs/umami-drupal-demonstration-installation-profile</a>.</p>",Samuel Adamson,about-umami
      +1,About Umami,"<p>Umami is a fictional food magazine that has been created to demonstrate how you might build a Drupal site using functionality provided 'out of the box'.</p><p>For more information visit <a href="https://www.drupal.org/docs/8/umami-drupal-8-demonstration-installation-profile">https://www.drupal.org/docs/8/umami-drupal-8-demonstration-installation-profile</a>.</p>",Samuel Adamson,about-umami
      
       id,title,body,author,slug
      -1,Acerca de Umami,"<p> Umami es una revista ficticia de alimentos que se ha creado para demostrar cรณmo se puede construir un sitio de Drupal con la funcionalidad que se proporciona 'fuera de la caja'. </p> <p> Para obtener mรกs informaciรณn, visite <a href='https://www.drupal.org/docs/umami-drupal-demonstration-installation-profile'>https://www.drupal.org/docs/umami-drupal-demonstration-installation-profile</a>.</p> ",Samuel Adamson,acerca-de-umami
      

      These are changing the URLs themselves as well as how they are quoted. And, in fact, they seem to be reverting another fix. The URL in HEAD (without the /8/) appears to be the correct one.

    NW mainly for point 3; the others are trivial. Thanks!

  • First commit to issue fork.
  • ๐Ÿ‡บ๐Ÿ‡ธUnited States ksenzee Washington state

    I worked with my team (@dcmorris, @jmarcella, @tinycanary) at Drupalcon Portland 2024 to resurrect this patch and see what's left of it in 11.x. We'll post results soon.

  • First commit to issue fork.
  • Status changed to Needs review 8 months ago
  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia gauravvvv Delhi, India
  • Status changed to Needs work 8 months ago
  • The Needs Review Queue Bot โ†’ tested this issue.

    While you are making the above changes, we recommend that you convert this patch to a merge request โ†’ . Merge requests are preferred over patches. Be sure to hide the old patch files as well. (Converting an issue to a merge request without other contributions to the issue will not receive credit.)

  • Pipeline finished with Failed
    8 months ago
    Total: 879s
    #177214
  • Issue was unassigned.
  • Status changed to Needs review 4 months ago
  • ๐Ÿ‡ณ๐Ÿ‡ฟNew Zealand quietone

    Let's finish this small change.

    From #50
    1. Fixed
    2. No book module on 11.x
    3. Fixed.

    I tested the changes to Umami by installing and confirming the output on the about page for both languages.

    And a final check with this grep shows that there are no other href attributes starting with a single quote.

    $ git grep -ri "<a href='" core| awk -F: '{print $1}' | sort | nl
    $ 
    
  • Status changed to Needs work 4 months ago
  • ๐Ÿ‡บ๐Ÿ‡ธUnited States smustgrave

    2 small comments on MR.

  • Status changed to Needs review 4 months ago
  • ๐Ÿ‡ณ๐Ÿ‡ฟNew Zealand quietone
  • Status changed to RTBC 4 months ago
  • ๐Ÿ‡บ๐Ÿ‡ธUnited States smustgrave

    Thanks @quietone my 2 questions are answered.

    • nod_ โ†’ committed b85397f2 on 11.x
      Issue #898656 by quietone, Abhisheksingh27, virajthakrar, smustgrave,...
  • Status changed to Fixed 4 months ago
  • ๐Ÿ‡ซ๐Ÿ‡ทFrance nod_ Lille

    Committed b85397f and pushed to 11.x. Thanks!

  • Automatically closed - issue fixed for 2 weeks with no activity.

Production build 0.71.5 2024