@@ -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