Yocto Project Documentation
 help / color / mirror / Atom feed
From: Trevor Woerner <twoerner@gmail.com>
To: docs@lists.yoctoproject.org
Subject: [PATCH v2 2/8] docs: copy only the command from a console block
Date: Tue, 22 Sep 2026 14:32:43 -0400	[thread overview]
Message-ID: <20260922183249.2433345-3-twoerner@gmail.com> (raw)
In-Reply-To: <20260922183249.2433345-1-twoerner@gmail.com>

The copy button matches the literal "$ " prompt, so on a block prompted
any other way it matches nothing and falls back to copying every line,
prompt and output included. Match a pattern covering each prompt shape
the manuals use instead, so the button gives the command alone whatever
the prompt looks like.

AI-Generated: codex/claude-opus 5 (xhigh)
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
changes in v2:
- dropped the stylesheet change, so a mouse selection keeps the output
- the comment now says this governs the copy button only, and only
  reaches a block the console lexer has read
---
 documentation/conf.py | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/documentation/conf.py b/documentation/conf.py
index 48d28a686807..313cabec05bb 100644
--- a/documentation/conf.py
+++ b/documentation/conf.py
@@ -242,4 +242,30 @@ intersphinx_mapping = {
 # -- sphinx_copybutton configuration -----------------------------------------
 
 # sphinx-copybutton configuration
-copybutton_prompt_text = "$ "
+# This governs the copy button only. A mouse selection is a separate
+# mechanism and takes whatever the theme leaves selectable, which is the
+# command and its output; Sphinx already excludes the prompt itself.
+#
+# It also only reaches a block the console lexer read, since that is what
+# marks a prompt as a prompt.
+#
+# Strip the prompt from a copied line wherever the prompt cannot be
+# confused with content. The pattern is not scoped to console blocks, so
+# every alternative has to stay safe inside a BitBake or configuration
+# example as well; measured over the built manuals, each one matches only
+# lines the lexer itself marks as a prompt.
+#
+# A bare "#" is deliberately absent. It opens a root prompt, a comment and
+# a line of program output alike, and nothing distinguishes them - which is
+# why the root prompts are given a preamble before this is switched on.
+copybutton_prompt_text = "|".join((
+    r"^(?:\S+[@:]\S*)?\$\s+",   # "$ ", and "user@host:~$ "
+    r"^\S+[@:]\S*#\s+",         # "root@qemux86-64:~# ", a root prompt
+    r"^[A-Za-z]:\\[^>]*>\s*",   # "C:\WINDOWS\system32>", cmd.exe
+    r"^DISKPART>\s*",           # diskpart prints a prompt of its own
+    r"^pydevshell>\s+",         # bitbake -c pydevshell
+))
+copybutton_prompt_is_regexp = True
+copybutton_only_copy_prompt_lines = True
+copybutton_remove_prompts = True
+copybutton_line_continuation_character = "\\"
-- 
2.50.0.173.g8b6f19ccfc3a



  parent reply	other threads:[~2026-09-22 18:33 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22 18:32 [PATCH v2 0/8] docs: editorial repairs to the examples Trevor Woerner
2026-09-22 18:32 ` [PATCH v2 1/8] docs: give the root prompts a preamble Trevor Woerner
2026-09-23 10:17   ` [docs] " Quentin Schulz
2026-09-24 16:00     ` Trevor Woerner
2026-09-22 18:32 ` Trevor Woerner [this message]
2026-09-23 10:41   ` [docs] [PATCH v2 2/8] docs: copy only the command from a console block Quentin Schulz
2026-09-23 10:43     ` Quentin Schulz
2026-09-22 18:32 ` [PATCH v2 3/8] docs: show a prompt on commands the reader is meant to type Trevor Woerner
2026-09-23 10:49   ` [docs] " Quentin Schulz
2026-09-24 15:59     ` Trevor Woerner
2026-09-22 18:32 ` [PATCH v2 4/8] docs: write an elided passage as a comment Trevor Woerner
2026-09-23 10:50   ` [docs] " Quentin Schulz
2026-09-22 18:32 ` [PATCH v2 5/8] docs: mark the placeholders in examples Trevor Woerner
2026-09-23 10:57   ` [docs] " Quentin Schulz
2026-09-24 15:58     ` Trevor Woerner
2026-09-22 18:32 ` [PATCH v2 6/8] docs: remove real accounts from the examples Trevor Woerner
2026-09-23 11:02   ` [docs] " Quentin Schulz
2026-09-24 15:55     ` Trevor Woerner
2026-09-22 18:32 ` [PATCH v2 7/8] kernel-dev: give each example block one thing to hold Trevor Woerner
2026-09-23 11:05   ` [docs] " Quentin Schulz
2026-09-22 18:32 ` [PATCH v2 8/8] ref-manual: put the ARCHIVER_MODE comments on their own lines Trevor Woerner
2026-09-23 11:09   ` [docs] " Quentin Schulz
2026-09-24 15:55     ` Trevor Woerner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260922183249.2433345-3-twoerner@gmail.com \
    --to=twoerner@gmail.com \
    --cc=docs@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox