Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: "copy" button mangles content of Makefile snippet #12000

Open
sumpfralle opened this issue Mar 26, 2024 · 2 comments
Open

docs: "copy" button mangles content of Makefile snippet #12000

sumpfralle opened this issue Mar 26, 2024 · 2 comments

Comments

@sumpfralle
Copy link

The rendered docs contain Makefile snippets in some places, e.g.: https://nuttx.apache.org/docs/latest/guides/customapps.html#makefile

The content of the snippet is supposed to be exportable via the "copy" button in the top right corner.
But for the above example only a broken/mangled text is exported:





files






Build targets





Compile C Files

(COBJS): %$(OBJEXT): %.c
(call COMPILE, $<, $@)

Add object files to the apps archive


(call ARCHIVE, libapps.a, $(COBJS))

Create directory links



Setup any special pre-build context



Setup any special pre-configuration context



Make the dependency file, Make.deps


(Q) $(MKDEP) $(ROOTDEPPATH) "$(CC)" -- $(CFLAGS) -- $(SRCS) > Make.dep

Clean the results of the last build


(call CLEAN)

Remove the build context and directory links



Restore the directory to its original state


(call DELFILE, Make.dep)

Include dependencies

The following details are missing:

  • leading $
  • leading #
  • some other lines
  • indentation (spaces instead of tabs)

The indentation issue is minor, since make (and editors) will complain about mangling, anyway.

But the first two issues (especially missing $) can really take a lot of time to understand/debug (makefile error messages are sometimes hard to grasp).

It looks like copybutton.js causes the issue:

// get filtered text
let exclude = '.linenos, .gp, .go';

The above code snippet causes the removal of all "nodes" with the .linenos, .gp and .go CSS classes.

The .gp class seems to be used for the comment characters (#) and for $.

The .go class is used for most assignments.

The above exclusions are configured in Documentation/conf.py. They were introduced in
14d311c (with the addition of sphinx's "copy button" feature). I assume, .go and .gp can be removed without causing issues.

@acassis
Copy link
Contributor

acassis commented Mar 29, 2024

@btashton could you please take a look?

@xiaoxiang781216 did you face this issue too?

@btashton
Copy link
Contributor

I can look this weekend. Thanks for the report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants