elaborate that npm help uses browser - #2502

Closed
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better
Closed

elaborate that npm help uses browser#2502
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better

Conversation

@ariccio

Copy link
Copy Markdown
Contributor

As I mentioned in issue #2501 it is is mildly annoying to me that I forget that the npm help command opens a browser, and probably a few other people.

I have added "(in a browser)" to the npm usage string at the npm help line. Is this a reasonable change? It makes the output slightly more verbose, but reduces the occasional surprise of opening a browser with a saved session of over 900 tabs just to view a single help page. Yes, really, I do have 1004 tabs open currently, and that's an outlier, but I'm sure this impacts other people in less unusual circumstances.

References

Fixes#2501

As I mentioned in issue npm#2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
@ariccio
ariccio requested a review from a team as a code ownerJanuary 16, 2021 22:33
@wraithgar

Copy link
Copy Markdown
Contributor

npm help only opens in a browser (by default) on windows, because there is no man command in windows. This is driven by the config value of viewer which is set to browser in windows, and man in osx and linux.

At the very least we would want to make sure to indicate that this is only the default in windows. Not sure how to do that succinctly off the top of my head.

@ljharb

Copy link
Copy Markdown
Contributor

@wraithgar maybe include npm config get viewer dynamically in the help output?

@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release release: next These items should be addressed in the next release semver:patch semver patch level for changes labels Jan 20, 2021

@ruyadornoruyadorno left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have this explained as part of npm help help.

We can not land this as-is for the reasons @wraithgar just mentioned but maybe it's worth exploring the solution from @ljharb, I'm not 100% sure about having a conditional in usage messages but if that's feasible then it may even keep this (in a browser) value in windows-only.

@ruyadornoruyadorno removed the release: next These items should be addressed in the next release label Jan 21, 2021
@ariccio

Copy link
Copy Markdown
ContributorAuthor

It might be very reasonable to display this on windows only! I like that idea, but (of course) that makes this a non-trivial change. What's the best way to do that?

@wraithgar

Copy link
Copy Markdown
Contributor

I believe that when this file is loaded the config is already loaded. You could gate the extra output behind a conditional that checks if viewer is set to browser.

@ljharb

Copy link
Copy Markdown
Contributor

This approach has the benefit of matching "the current config", including if a user overrode it.

@ruyadornoruyadorno added the pr: needs tests requires tests before merging label Feb 1, 2021
isaacs pushed a commit that referenced this pull request Feb 1, 2021
As I mentioned in issue #2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
PR-URL: #2502
Credit: @ariccioClose: #2502
Reviewed-by: @isaacs
@isaacsisaacs mentioned this pull request Feb 1, 2021
@isaacsisaacs closed this in 13a5e31Feb 1, 2021
@ruyadornoruyadorno removed the pr: needs tests requires tests before merging label Feb 2, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm usage should explain that it will open in a browser

5 participants

@ariccio@wraithgar@ljharb@ruyadorno@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

elaborate that npm help uses browser - #2502

Closed
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better
Closed

elaborate that npm help uses browser#2502
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better

Conversation

@ariccio

Copy link
Copy Markdown
Contributor

As I mentioned in issue #2501 it is is mildly annoying to me that I forget that the npm help command opens a browser, and probably a few other people.

I have added "(in a browser)" to the npm usage string at the npm help line. Is this a reasonable change? It makes the output slightly more verbose, but reduces the occasional surprise of opening a browser with a saved session of over 900 tabs just to view a single help page. Yes, really, I do have 1004 tabs open currently, and that's an outlier, but I'm sure this impacts other people in less unusual circumstances.

References

Fixes#2501

As I mentioned in issue npm#2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
@ariccio
ariccio requested a review from a team as a code ownerJanuary 16, 2021 22:33
@wraithgar

Copy link
Copy Markdown
Contributor

npm help only opens in a browser (by default) on windows, because there is no man command in windows. This is driven by the config value of viewer which is set to browser in windows, and man in osx and linux.

At the very least we would want to make sure to indicate that this is only the default in windows. Not sure how to do that succinctly off the top of my head.

@ljharb

Copy link
Copy Markdown
Contributor

@wraithgar maybe include npm config get viewer dynamically in the help output?

@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release release: next These items should be addressed in the next release semver:patch semver patch level for changes labels Jan 20, 2021

@ruyadornoruyadorno left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have this explained as part of npm help help.

We can not land this as-is for the reasons @wraithgar just mentioned but maybe it's worth exploring the solution from @ljharb, I'm not 100% sure about having a conditional in usage messages but if that's feasible then it may even keep this (in a browser) value in windows-only.

@ruyadornoruyadorno removed the release: next These items should be addressed in the next release label Jan 21, 2021
@ariccio

Copy link
Copy Markdown
ContributorAuthor

It might be very reasonable to display this on windows only! I like that idea, but (of course) that makes this a non-trivial change. What's the best way to do that?

@wraithgar

Copy link
Copy Markdown
Contributor

I believe that when this file is loaded the config is already loaded. You could gate the extra output behind a conditional that checks if viewer is set to browser.

@ljharb

Copy link
Copy Markdown
Contributor

This approach has the benefit of matching "the current config", including if a user overrode it.

@ruyadornoruyadorno added the pr: needs tests requires tests before merging label Feb 1, 2021
isaacs pushed a commit that referenced this pull request Feb 1, 2021
As I mentioned in issue #2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
PR-URL: #2502
Credit: @ariccioClose: #2502
Reviewed-by: @isaacs
@isaacsisaacs mentioned this pull request Feb 1, 2021
@isaacsisaacs closed this in 13a5e31Feb 1, 2021
@ruyadornoruyadorno removed the pr: needs tests requires tests before merging label Feb 2, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm usage should explain that it will open in a browser

5 participants

@ariccio@wraithgar@ljharb@ruyadorno@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

elaborate that npm help uses browser - #2502

Closed
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better
Closed

elaborate that npm help uses browser#2502
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better

Conversation

@ariccio

Copy link
Copy Markdown
Contributor

As I mentioned in issue #2501 it is is mildly annoying to me that I forget that the npm help command opens a browser, and probably a few other people.

I have added "(in a browser)" to the npm usage string at the npm help line. Is this a reasonable change? It makes the output slightly more verbose, but reduces the occasional surprise of opening a browser with a saved session of over 900 tabs just to view a single help page. Yes, really, I do have 1004 tabs open currently, and that's an outlier, but I'm sure this impacts other people in less unusual circumstances.

References

Fixes#2501

As I mentioned in issue npm#2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
@ariccio
ariccio requested a review from a team as a code ownerJanuary 16, 2021 22:33
@wraithgar

Copy link
Copy Markdown
Contributor

npm help only opens in a browser (by default) on windows, because there is no man command in windows. This is driven by the config value of viewer which is set to browser in windows, and man in osx and linux.

At the very least we would want to make sure to indicate that this is only the default in windows. Not sure how to do that succinctly off the top of my head.

@ljharb

Copy link
Copy Markdown
Contributor

@wraithgar maybe include npm config get viewer dynamically in the help output?

@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release release: next These items should be addressed in the next release semver:patch semver patch level for changes labels Jan 20, 2021

@ruyadornoruyadorno left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have this explained as part of npm help help.

We can not land this as-is for the reasons @wraithgar just mentioned but maybe it's worth exploring the solution from @ljharb, I'm not 100% sure about having a conditional in usage messages but if that's feasible then it may even keep this (in a browser) value in windows-only.

@ruyadornoruyadorno removed the release: next These items should be addressed in the next release label Jan 21, 2021
@ariccio

Copy link
Copy Markdown
ContributorAuthor

It might be very reasonable to display this on windows only! I like that idea, but (of course) that makes this a non-trivial change. What's the best way to do that?

@wraithgar

Copy link
Copy Markdown
Contributor

I believe that when this file is loaded the config is already loaded. You could gate the extra output behind a conditional that checks if viewer is set to browser.

@ljharb

Copy link
Copy Markdown
Contributor

This approach has the benefit of matching "the current config", including if a user overrode it.

@ruyadornoruyadorno added the pr: needs tests requires tests before merging label Feb 1, 2021
isaacs pushed a commit that referenced this pull request Feb 1, 2021
As I mentioned in issue #2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
PR-URL: #2502
Credit: @ariccioClose: #2502
Reviewed-by: @isaacs
@isaacsisaacs mentioned this pull request Feb 1, 2021
@isaacsisaacs closed this in 13a5e31Feb 1, 2021
@ruyadornoruyadorno removed the pr: needs tests requires tests before merging label Feb 2, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm usage should explain that it will open in a browser

5 participants

@ariccio@wraithgar@ljharb@ruyadorno@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

elaborate that npm help uses browser - #2502

Closed
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better
Closed

elaborate that npm help uses browser#2502
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better

Conversation

@ariccio

Copy link
Copy Markdown
Contributor

As I mentioned in issue #2501 it is is mildly annoying to me that I forget that the npm help command opens a browser, and probably a few other people.

I have added "(in a browser)" to the npm usage string at the npm help line. Is this a reasonable change? It makes the output slightly more verbose, but reduces the occasional surprise of opening a browser with a saved session of over 900 tabs just to view a single help page. Yes, really, I do have 1004 tabs open currently, and that's an outlier, but I'm sure this impacts other people in less unusual circumstances.

References

Fixes#2501

As I mentioned in issue npm#2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
@ariccio
ariccio requested a review from a team as a code ownerJanuary 16, 2021 22:33
@wraithgar

Copy link
Copy Markdown
Contributor

npm help only opens in a browser (by default) on windows, because there is no man command in windows. This is driven by the config value of viewer which is set to browser in windows, and man in osx and linux.

At the very least we would want to make sure to indicate that this is only the default in windows. Not sure how to do that succinctly off the top of my head.

@ljharb

Copy link
Copy Markdown
Contributor

@wraithgar maybe include npm config get viewer dynamically in the help output?

@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release release: next These items should be addressed in the next release semver:patch semver patch level for changes labels Jan 20, 2021

@ruyadornoruyadorno left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have this explained as part of npm help help.

We can not land this as-is for the reasons @wraithgar just mentioned but maybe it's worth exploring the solution from @ljharb, I'm not 100% sure about having a conditional in usage messages but if that's feasible then it may even keep this (in a browser) value in windows-only.

@ruyadornoruyadorno removed the release: next These items should be addressed in the next release label Jan 21, 2021
@ariccio

Copy link
Copy Markdown
ContributorAuthor

It might be very reasonable to display this on windows only! I like that idea, but (of course) that makes this a non-trivial change. What's the best way to do that?

@wraithgar

Copy link
Copy Markdown
Contributor

I believe that when this file is loaded the config is already loaded. You could gate the extra output behind a conditional that checks if viewer is set to browser.

@ljharb

Copy link
Copy Markdown
Contributor

This approach has the benefit of matching "the current config", including if a user overrode it.

@ruyadornoruyadorno added the pr: needs tests requires tests before merging label Feb 1, 2021
isaacs pushed a commit that referenced this pull request Feb 1, 2021
As I mentioned in issue #2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
PR-URL: #2502
Credit: @ariccioClose: #2502
Reviewed-by: @isaacs
@isaacsisaacs mentioned this pull request Feb 1, 2021
@isaacsisaacs closed this in 13a5e31Feb 1, 2021
@ruyadornoruyadorno removed the pr: needs tests requires tests before merging label Feb 2, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm usage should explain that it will open in a browser

5 participants

@ariccio@wraithgar@ljharb@ruyadorno@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

elaborate that npm help uses browser - #2502

Closed
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better
Closed

elaborate that npm help uses browser#2502
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better

Conversation

@ariccio

Copy link
Copy Markdown
Contributor

As I mentioned in issue #2501 it is is mildly annoying to me that I forget that the npm help command opens a browser, and probably a few other people.

I have added "(in a browser)" to the npm usage string at the npm help line. Is this a reasonable change? It makes the output slightly more verbose, but reduces the occasional surprise of opening a browser with a saved session of over 900 tabs just to view a single help page. Yes, really, I do have 1004 tabs open currently, and that's an outlier, but I'm sure this impacts other people in less unusual circumstances.

References

Fixes#2501

As I mentioned in issue npm#2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
@ariccio
ariccio requested a review from a team as a code ownerJanuary 16, 2021 22:33
@wraithgar

Copy link
Copy Markdown
Contributor

npm help only opens in a browser (by default) on windows, because there is no man command in windows. This is driven by the config value of viewer which is set to browser in windows, and man in osx and linux.

At the very least we would want to make sure to indicate that this is only the default in windows. Not sure how to do that succinctly off the top of my head.

@ljharb

Copy link
Copy Markdown
Contributor

@wraithgar maybe include npm config get viewer dynamically in the help output?

@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release release: next These items should be addressed in the next release semver:patch semver patch level for changes labels Jan 20, 2021

@ruyadornoruyadorno left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have this explained as part of npm help help.

We can not land this as-is for the reasons @wraithgar just mentioned but maybe it's worth exploring the solution from @ljharb, I'm not 100% sure about having a conditional in usage messages but if that's feasible then it may even keep this (in a browser) value in windows-only.

@ruyadornoruyadorno removed the release: next These items should be addressed in the next release label Jan 21, 2021
@ariccio

Copy link
Copy Markdown
ContributorAuthor

It might be very reasonable to display this on windows only! I like that idea, but (of course) that makes this a non-trivial change. What's the best way to do that?

@wraithgar

Copy link
Copy Markdown
Contributor

I believe that when this file is loaded the config is already loaded. You could gate the extra output behind a conditional that checks if viewer is set to browser.

@ljharb

Copy link
Copy Markdown
Contributor

This approach has the benefit of matching "the current config", including if a user overrode it.

@ruyadornoruyadorno added the pr: needs tests requires tests before merging label Feb 1, 2021
isaacs pushed a commit that referenced this pull request Feb 1, 2021
As I mentioned in issue #2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
PR-URL: #2502
Credit: @ariccioClose: #2502
Reviewed-by: @isaacs
@isaacsisaacs mentioned this pull request Feb 1, 2021
@isaacsisaacs closed this in 13a5e31Feb 1, 2021
@ruyadornoruyadorno removed the pr: needs tests requires tests before merging label Feb 2, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm usage should explain that it will open in a browser

5 participants

@ariccio@wraithgar@ljharb@ruyadorno@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

elaborate that npm help uses browser - #2502

Closed
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better
Closed

elaborate that npm help uses browser#2502
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better

Conversation

@ariccio

Copy link
Copy Markdown
Contributor

As I mentioned in issue #2501 it is is mildly annoying to me that I forget that the npm help command opens a browser, and probably a few other people.

I have added "(in a browser)" to the npm usage string at the npm help line. Is this a reasonable change? It makes the output slightly more verbose, but reduces the occasional surprise of opening a browser with a saved session of over 900 tabs just to view a single help page. Yes, really, I do have 1004 tabs open currently, and that's an outlier, but I'm sure this impacts other people in less unusual circumstances.

References

Fixes#2501

As I mentioned in issue npm#2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
@ariccio
ariccio requested a review from a team as a code ownerJanuary 16, 2021 22:33
@wraithgar

Copy link
Copy Markdown
Contributor

npm help only opens in a browser (by default) on windows, because there is no man command in windows. This is driven by the config value of viewer which is set to browser in windows, and man in osx and linux.

At the very least we would want to make sure to indicate that this is only the default in windows. Not sure how to do that succinctly off the top of my head.

@ljharb

Copy link
Copy Markdown
Contributor

@wraithgar maybe include npm config get viewer dynamically in the help output?

@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release release: next These items should be addressed in the next release semver:patch semver patch level for changes labels Jan 20, 2021

@ruyadornoruyadorno left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have this explained as part of npm help help.

We can not land this as-is for the reasons @wraithgar just mentioned but maybe it's worth exploring the solution from @ljharb, I'm not 100% sure about having a conditional in usage messages but if that's feasible then it may even keep this (in a browser) value in windows-only.

@ruyadornoruyadorno removed the release: next These items should be addressed in the next release label Jan 21, 2021
@ariccio

Copy link
Copy Markdown
ContributorAuthor

It might be very reasonable to display this on windows only! I like that idea, but (of course) that makes this a non-trivial change. What's the best way to do that?

@wraithgar

Copy link
Copy Markdown
Contributor

I believe that when this file is loaded the config is already loaded. You could gate the extra output behind a conditional that checks if viewer is set to browser.

@ljharb

Copy link
Copy Markdown
Contributor

This approach has the benefit of matching "the current config", including if a user overrode it.

@ruyadornoruyadorno added the pr: needs tests requires tests before merging label Feb 1, 2021
isaacs pushed a commit that referenced this pull request Feb 1, 2021
As I mentioned in issue #2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
PR-URL: #2502
Credit: @ariccioClose: #2502
Reviewed-by: @isaacs
@isaacsisaacs mentioned this pull request Feb 1, 2021
@isaacsisaacs closed this in 13a5e31Feb 1, 2021
@ruyadornoruyadorno removed the pr: needs tests requires tests before merging label Feb 2, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm usage should explain that it will open in a browser

5 participants

@ariccio@wraithgar@ljharb@ruyadorno@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

elaborate that npm help uses browser - #2502

Closed
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better
Closed

elaborate that npm help uses browser#2502
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better

Conversation

@ariccio

Copy link
Copy Markdown
Contributor

As I mentioned in issue #2501 it is is mildly annoying to me that I forget that the npm help command opens a browser, and probably a few other people.

I have added "(in a browser)" to the npm usage string at the npm help line. Is this a reasonable change? It makes the output slightly more verbose, but reduces the occasional surprise of opening a browser with a saved session of over 900 tabs just to view a single help page. Yes, really, I do have 1004 tabs open currently, and that's an outlier, but I'm sure this impacts other people in less unusual circumstances.

References

Fixes#2501

As I mentioned in issue npm#2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
@ariccio
ariccio requested a review from a team as a code ownerJanuary 16, 2021 22:33
@wraithgar

Copy link
Copy Markdown
Contributor

npm help only opens in a browser (by default) on windows, because there is no man command in windows. This is driven by the config value of viewer which is set to browser in windows, and man in osx and linux.

At the very least we would want to make sure to indicate that this is only the default in windows. Not sure how to do that succinctly off the top of my head.

@ljharb

Copy link
Copy Markdown
Contributor

@wraithgar maybe include npm config get viewer dynamically in the help output?

@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release release: next These items should be addressed in the next release semver:patch semver patch level for changes labels Jan 20, 2021

@ruyadornoruyadorno left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have this explained as part of npm help help.

We can not land this as-is for the reasons @wraithgar just mentioned but maybe it's worth exploring the solution from @ljharb, I'm not 100% sure about having a conditional in usage messages but if that's feasible then it may even keep this (in a browser) value in windows-only.

@ruyadornoruyadorno removed the release: next These items should be addressed in the next release label Jan 21, 2021
@ariccio

Copy link
Copy Markdown
ContributorAuthor

It might be very reasonable to display this on windows only! I like that idea, but (of course) that makes this a non-trivial change. What's the best way to do that?

@wraithgar

Copy link
Copy Markdown
Contributor

I believe that when this file is loaded the config is already loaded. You could gate the extra output behind a conditional that checks if viewer is set to browser.

@ljharb

Copy link
Copy Markdown
Contributor

This approach has the benefit of matching "the current config", including if a user overrode it.

@ruyadornoruyadorno added the pr: needs tests requires tests before merging label Feb 1, 2021
isaacs pushed a commit that referenced this pull request Feb 1, 2021
As I mentioned in issue #2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
PR-URL: #2502
Credit: @ariccioClose: #2502
Reviewed-by: @isaacs
@isaacsisaacs mentioned this pull request Feb 1, 2021
@isaacsisaacs closed this in 13a5e31Feb 1, 2021
@ruyadornoruyadorno removed the pr: needs tests requires tests before merging label Feb 2, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm usage should explain that it will open in a browser

5 participants

@ariccio@wraithgar@ljharb@ruyadorno@darcyclarke
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

elaborate that npm help uses browser - #2502

Closed
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better
Closed

elaborate that npm help uses browser#2502
ariccio wants to merge 1 commit into
npm:latestfrom
ariccio:explain-help-slightly-better

Conversation

@ariccio

Copy link
Copy Markdown
Contributor

As I mentioned in issue #2501 it is is mildly annoying to me that I forget that the npm help command opens a browser, and probably a few other people.

I have added "(in a browser)" to the npm usage string at the npm help line. Is this a reasonable change? It makes the output slightly more verbose, but reduces the occasional surprise of opening a browser with a saved session of over 900 tabs just to view a single help page. Yes, really, I do have 1004 tabs open currently, and that's an outlier, but I'm sure this impacts other people in less unusual circumstances.

References

Fixes#2501

As I mentioned in issue npm#2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
@ariccio
ariccio requested a review from a team as a code ownerJanuary 16, 2021 22:33
@wraithgar

Copy link
Copy Markdown
Contributor

npm help only opens in a browser (by default) on windows, because there is no man command in windows. This is driven by the config value of viewer which is set to browser in windows, and man in osx and linux.

At the very least we would want to make sure to indicate that this is only the default in windows. Not sure how to do that succinctly off the top of my head.

@ljharb

Copy link
Copy Markdown
Contributor

@wraithgar maybe include npm config get viewer dynamically in the help output?

@darcyclarkedarcyclarke added Release 7.x work is associated with a specific npm 7 release release: next These items should be addressed in the next release semver:patch semver patch level for changes labels Jan 20, 2021

@ruyadornoruyadorno left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already have this explained as part of npm help help.

We can not land this as-is for the reasons @wraithgar just mentioned but maybe it's worth exploring the solution from @ljharb, I'm not 100% sure about having a conditional in usage messages but if that's feasible then it may even keep this (in a browser) value in windows-only.

@ruyadornoruyadorno removed the release: next These items should be addressed in the next release label Jan 21, 2021
@ariccio

Copy link
Copy Markdown
ContributorAuthor

It might be very reasonable to display this on windows only! I like that idea, but (of course) that makes this a non-trivial change. What's the best way to do that?

@wraithgar

Copy link
Copy Markdown
Contributor

I believe that when this file is loaded the config is already loaded. You could gate the extra output behind a conditional that checks if viewer is set to browser.

@ljharb

Copy link
Copy Markdown
Contributor

This approach has the benefit of matching "the current config", including if a user overrode it.

@ruyadornoruyadorno added the pr: needs tests requires tests before merging label Feb 1, 2021
isaacs pushed a commit that referenced this pull request Feb 1, 2021
As I mentioned in issue #2501 this is mildly annoying to me, and probably a few other people. I have added "(in a browser)" to the npm usage string at the npm help line.
PR-URL: #2502
Credit: @ariccioClose: #2502
Reviewed-by: @isaacs
@isaacsisaacs mentioned this pull request Feb 1, 2021
@isaacsisaacs closed this in 13a5e31Feb 1, 2021
@ruyadornoruyadorno removed the pr: needs tests requires tests before merging label Feb 2, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Release 7.xwork is associated with a specific npm 7 releasesemver:patchsemver patch level for changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm usage should explain that it will open in a browser

5 participants

@ariccio@wraithgar@ljharb@ruyadorno@darcyclarke