@@ -332,25 +332,40 @@ def get_verifier(verify, verify_re):
332332            # kbd role  
333333            'verify' , 
334334            ':kbd:`space`' , 
335-             '<p><kbd class="kbd docutils literal notranslate">space</kbd></p>' , 
336-             '\\ sphinxAtStartPar\n \\ sphinxkeyboard{\\ sphinxupquote{space}}' , 
335+             ( 
336+                 '<p>'  
337+                 '<span class="kbdcompound">'  
338+                 '<kbd class="kbd docutils literal notranslate">space</kbd>'  
339+                 '</span>'  
340+                 '</p>'  
341+             ), 
342+             ( 
343+                 '\\ sphinxAtStartPar\n '  
344+                 '\\ DUrole{kbdcompound}{'  
345+                 '\\ sphinxkeyboard{\\ sphinxupquote{space}}'  
346+                 '}'  
347+             ), 
337348        ), 
338349        ( 
339350            # kbd role  
340351            'verify' , 
341352            ':kbd:`Control+X`' , 
342353            ( 
343354                '<p>'  
355+                 '<span class="kbdcompound">'  
344356                '<kbd class="kbd docutils literal notranslate">Control</kbd>'  
345-                 '+ '  
357+                 '<span class="kbdsep">+</span> '  
346358                '<kbd class="kbd docutils literal notranslate">X</kbd>'  
359+                 '</span>'  
347360                '</p>'  
348361            ), 
349362            ( 
350363                '\\ sphinxAtStartPar\n '  
364+                 '\\ DUrole{kbdcompound}{'  
351365                '\\ sphinxkeyboard{\\ sphinxupquote{Control}}'  
352-                 '+ '  
366+                 '\\ DUrole{kbdsep}{+} '  
353367                '\\ sphinxkeyboard{\\ sphinxupquote{X}}'  
368+                 '}'  
354369            ), 
355370        ), 
356371        ( 
@@ -359,16 +374,20 @@ def get_verifier(verify, verify_re):
359374            ':kbd:`Alt+^`' , 
360375            ( 
361376                '<p>'  
377+                 '<span class="kbdcompound">'  
362378                '<kbd class="kbd docutils literal notranslate">Alt</kbd>'  
363-                 '+ '  
379+                 '<span class="kbdsep">+</span> '  
364380                '<kbd class="kbd docutils literal notranslate">^</kbd>'  
381+                 '</span>'  
365382                '</p>'  
366383            ), 
367384            ( 
368385                '\\ sphinxAtStartPar\n '  
386+                 '\\ DUrole{kbdcompound}{'  
369387                '\\ sphinxkeyboard{\\ sphinxupquote{Alt}}'  
370-                 '+ '  
388+                 '\\ DUrole{kbdsep}{+} '  
371389                '\\ sphinxkeyboard{\\ sphinxupquote{\\ textasciicircum{}}}'  
390+                 '}'  
372391            ), 
373392        ), 
374393        ( 
@@ -377,67 +396,108 @@ def get_verifier(verify, verify_re):
377396            ':kbd:`M-x  M-s`' , 
378397            ( 
379398                '<p>'  
399+                 '<span class="kbdcompound">'  
380400                '<kbd class="kbd docutils literal notranslate">M</kbd>'  
381-                 '- '  
401+                 '<span class="kbdsep">-</span> '  
382402                '<kbd class="kbd docutils literal notranslate">x</kbd>'  
383-                 '   '  
403+                 '<span class="kbdsep">  </span> '  
384404                '<kbd class="kbd docutils literal notranslate">M</kbd>'  
385-                 '- '  
405+                 '<span class="kbdsep">-</span> '  
386406                '<kbd class="kbd docutils literal notranslate">s</kbd>'  
407+                 '</span>'  
387408                '</p>'  
388409            ), 
389410            ( 
390411                '\\ sphinxAtStartPar\n '  
412+                 '\\ DUrole{kbdcompound}{'  
391413                '\\ sphinxkeyboard{\\ sphinxupquote{M}}'  
392-                 '\\ sphinxhyphen{}'  
414+                 '\\ DUrole{kbdsep}{ \\ sphinxhyphen{} }'  
393415                '\\ sphinxkeyboard{\\ sphinxupquote{x}}'  
394-                 '   '  
416+                 '\\ DUrole{kbdsep}{  } '  
395417                '\\ sphinxkeyboard{\\ sphinxupquote{M}}'  
396-                 '\\ sphinxhyphen{}'  
418+                 '\\ DUrole{kbdsep}{ \\ sphinxhyphen{} }'  
397419                '\\ sphinxkeyboard{\\ sphinxupquote{s}}'  
420+                 '}'  
398421            ), 
399422        ), 
400423        ( 
401424            # kbd role  
402425            'verify' , 
403426            ':kbd:`-`' , 
404-             '<p><kbd class="kbd docutils literal notranslate">-</kbd></p>' , 
405-             '\\ sphinxAtStartPar\n \\ sphinxkeyboard{\\ sphinxupquote{\\ sphinxhyphen{}}}' , 
427+             ( 
428+                 '<p>'  
429+                 '<span class="kbdcompound">'  
430+                 '<kbd class="kbd docutils literal notranslate">-</kbd>'  
431+                 '</span>'  
432+                 '</p>'  
433+             ), 
434+             ( 
435+                 '\\ sphinxAtStartPar\n '  
436+                 '\\ DUrole{kbdcompound}{'  
437+                 '\\ sphinxkeyboard{\\ sphinxupquote{\\ sphinxhyphen{}}}'  
438+                 '}'  
439+             ), 
406440        ), 
407441        ( 
408442            # kbd role  
409443            'verify' , 
410444            ':kbd:`Caps Lock`' , 
411-             '<p><kbd class="kbd docutils literal notranslate">Caps Lock</kbd></p>' , 
412-             '\\ sphinxAtStartPar\n \\ sphinxkeyboard{\\ sphinxupquote{Caps Lock}}' , 
445+             ( 
446+                 '<p>'  
447+                 '<span class="kbdcompound">'  
448+                 '<kbd class="kbd docutils literal notranslate">Caps Lock</kbd>'  
449+                 '</span>'  
450+                 '</p>'  
451+             ), 
452+             ( 
453+                 '\\ sphinxAtStartPar\n '  
454+                 '\\ DUrole{kbdcompound}{'  
455+                 '\\ sphinxkeyboard{\\ sphinxupquote{Caps Lock}}'  
456+                 '}'  
457+             ), 
413458        ), 
414459        ( 
415460            # kbd role  
416461            'verify' , 
417462            ':kbd:`sys   rq`' , 
418-             '<p><kbd class="kbd docutils literal notranslate">sys   rq</kbd></p>' , 
419-             '\\ sphinxAtStartPar\n \\ sphinxkeyboard{\\ sphinxupquote{sys   rq}}' , 
463+             ( 
464+                 '<p>'  
465+                 '<span class="kbdcompound">'  
466+                 '<kbd class="kbd docutils literal notranslate">sys   rq</kbd>'  
467+                 '</span>'  
468+                 '</p>'  
469+             ), 
470+             ( 
471+                 '\\ sphinxAtStartPar\n '  
472+                 '\\ DUrole{kbdcompound}{'  
473+                 '\\ sphinxkeyboard{\\ sphinxupquote{sys   rq}}'  
474+                 '}'  
475+             ), 
420476        ), 
421477        ( 
422478            # kbd role  
423479            'verify' , 
424480            ':kbd:`⌘+⇧+M`' , 
425481            ( 
426482                '<p>'  
483+                 '<span class="kbdcompound">'  
427484                '<kbd class="kbd docutils literal notranslate">⌘</kbd>'  
428-                 '+ '  
485+                 '<span class="kbdsep">+</span> '  
429486                '<kbd class="kbd docutils literal notranslate">⇧</kbd>'  
430-                 '+ '  
487+                 '<span class="kbdsep">+</span> '  
431488                '<kbd class="kbd docutils literal notranslate">M</kbd>'  
489+                 '</span>'  
432490                '</p>'  
433491            ), 
434492            ( 
435493                '\\ sphinxAtStartPar\n '  
494+                 '\\ DUrole{kbdcompound}{'  
436495                '\\ sphinxkeyboard{\\ sphinxupquote{⌘}}'  
437-                 '+ '  
496+                 '\\ DUrole{kbdsep}{+} '  
438497                '\\ sphinxkeyboard{\\ sphinxupquote{⇧}}'  
439-                 '+ '  
498+                 '\\ DUrole{kbdsep}{+} '  
440499                '\\ sphinxkeyboard{\\ sphinxupquote{M}}'  
500+                 '}'  
441501            ), 
442502        ), 
443503        ( 
0 commit comments