Minichan

Topic: Firefox and JavaScript files

boof started this discussion 3 months ago #129,718

The use of JavaScript files with Firefox is a way to work around restrictions that were put on browser extensions, and do things that now non-working extensions used to do in previous versions of Firefox. The methods of using JavaScript files are not supported by Mozilla, meaning that as continuing changes have been made to newer versions of Firefox, changes to the JavaScript files have been required. Future changes to Firefox could require more changes, or perhaps disable the use of JavaScript files entirely. So, when finding JavaScript files for Firefox, keep in mind that they might not work for the version of Firefox that you are using.
This page has some detail on the topic:
https://www.userchrome.org/what-is-userchrome-js.html

Anonymous B joined in and replied with this 3 months ago, 11 hours later[^] [v] #1,394,469

boof (OP) replied with this 3 months ago, 4 minutes later, 11 hours after the original post[^] [v] #1,394,470

@previous (B)
interesting that you put a gif here, as the example javascript file that I'll use in this topic is for freezing/resuming/restarting gifs seen on pages.

Anonymous B replied with this 3 months ago, 1 minute later, 11 hours after the original post[^] [v] #1,394,471

@previous (boof)

Anonymous C joined in and replied with this 3 months ago, 2 minutes later, 11 hours after the original post[^] [v] #1,394,472

@previous (B)

boof (OP) replied with this 3 months ago, 11 hours later, 23 hours after the original post[^] [v] #1,394,511

To use JavaScript files with Firefox requires at least three other files be already present. Their names are config.js, config-prefs.js, and userChrome.js. Different people have come up with different methods of varying complexity, and choosing another method might mean using four or more files instead. Some methods use other files instead of the userChrome.js file. I have described six sources of these files in these notes: alice0775, ardiman, MrOtherGuy, xiaoxiaoflood, onemen, and BSTweaker. I have tested their files with Firefox ESR 115 for the ability to run the JavaScript file AnimationToggleButtonuc.js, described later in these notes.

A black dude joined in and replied with this 3 months ago, 1 minute later, 23 hours after the original post[^] [v] #1,394,512

@previous (boof)
That’s like saying, "you need JavaScript files to use JavaScript files."

boof (OP) replied with this 3 months ago, 1 day later, 2 days after the original post[^] [v] #1,394,621

In the simplest case of using three files, a file named config.js is to be put into the "Firefox installation folder", which is where the firefox.exe file is. If you don't already know how to get to that folder, enter about:support into the address/URL field, and look down the list of Application Basics for Application Binary. For the 64-bit portable Firefox 115 version, the folder is Firefox64, which is itself in the App folder.

The file config-prefs.js goes into the pref folder which is in the defaults folder, itself found in the Firefox installation folder.

With the least complicated method, the file userChrome.js goes into the chrome folder (you will have to create that folder, if you haven't already for some other purpose such as running css files), which is in your "profile folder". Any JavaScript files that you want to run are also to be put into the chrome folder (or a folder in the chrome folder, depending on the method). If you don't already know how to get to your profile folder, enter about:support into the address/URL field, and look down the list of Application Basics for Profile Folder. For the portable version of Firefox, the profile folder is in the Data folder. For the specific details, read the instructions for each of the sources of the files described in the next few paragraphs.

boof (OP) double-posted this 3 months ago, 22 hours later, 2 days after the original post[^] [v] #1,394,719

sources of files required for using JavaScript files with Firefox

alice0775, https://github.com/alice0775/userChrome.js
The files available are in a few different versions for versions of Firefox from 68 on up to at least 143. To find the appropriate files for Firefox 115, I downloaded the master.zip from the link revealed by clicking the green Code button on the alice0775 page, and searched the unzipped contents for the config.js, config-prefs.js, and userChrome.js files, choosing the newest of each that is not for 116 or more. Later, I made every file individually by finding the files at the web site, clicking "raw", copying text to Notepad++, and saving with the appropriate file name. The text is far more readable in files made that way than in the downloaded files, which have a continuous crowd of text. This readability issue is true for all of sources described here, not just alice0775. These are the specific file versions that I got: config.js for Firefox 103, config-prefs.js for Firefox 92, and userChrome.js for Firefox 106.
alice0775's files worked to run AnimationToggleButtonuc.js that was written for Firefox 94, using Firefox 115.

boof (OP) triple-posted this 3 months ago, 1 day later, 4 days after the original post[^] [v] #1,394,870

another file source

ardiman, https://github.com/ardiman/userChrome.js
The files appear to have been prepared for Firefox 57, which is from November 14, 2017. In addition to the files config.js, config-prefs.js, and userChrome.js, aridman also provides a fourth file, userChromeJS.js. It is to be placed with config.js in the Firefox installation folder.
ardiman's files did not work to run AnimationToggleButtonuc.js that was written for Firefox 94, using Firefox 115.

boof (OP) quadruple-posted this 3 months ago, 23 hours later, 5 days after the original post[^] [v] #1,394,989

another file source

MrOtherGuy, https://github.com/MrOtherGuy/fx-autoconfig
The files that were current when I got them should be compatible with Firefox 115. I inferred such from the statement in the README text: "Note as of version 0.8 fx-autoconfig is incompatible with Firefox ESR 102" which implies that the currently newest files work with Firefox ESR 115.
The files config.js and config-prefs.js are found in the profile/chrome area of MrOtherGuy's github page, and go into the expected folders as described earlier in these notes. Unlike the simpler methods with three files, MrOtherGuy requires creating a set of four folders of files that go into the chrome folder. Three of these folders are required to run JavaScript files: JS, resources, and utilsfound. The fourth, named CSS, is used if you also want to run css files. The files that go into these folders are found on MrOtherGuy's github area named "profile/chrome". Javascript files such as AnimationToggleButtonuc.js that you want to run are to be put into the JS folder.
MrOtherGuy's files go beyond the simplest method and put a choice called userScripts in the Tools menu of the menubar. That menu addition is for toggling scripts on and off.
MrOtherGuy's files worked to run AnimationToggleButtonuc.js that was written for Firefox 94, using Firefox 115.

boof (OP) quintuple-posted this 3 months ago, 22 hours later, 5 days after the original post[^] [v] #1,395,102

another file source

xiaoxiaoflood, https://github.com/xiaoxiaoflood/firefox-scripts
The README text on that page indicated that the current files are good for at least Firefox 131, and by clicking the history link for the file README.md, I found that files were prepared for Firefox since version 56. I found files that are good for Firefox 115 linked on this page:
https://github.com/xiaoxiaoflood/firefox-scripts/blob/bd8ccfb6266a1e9de55aaab309296a65e7e7a78a/fx-folder.zip
The files config.js and config-prefs.js can be found in the installation-folder area at that page, and go into the expected folders as described earlier in these notes. Unlike the simpler methods with three files, xiaoxiaoflood requires creating a folder named utils that goes into the chrome folder. The files that go into the utils folder can be found in the chrome area at the link given earlier, and clicking utils. Only the files seen in the main area are needed, and not any others that you would see by further clicking other links next to folder icons, and not any of the many JavaScript files seen listed in the frame on the left side of the screen.
Alternatively, the files can be downloaded and found inside fx-folder.zip and utils.zip, but they will have the readability problem as described in the notes about alice0775's files.

Note that five of the utils files have changed their names and extensions with Firefox versions after 115 (BootstrapLoader.jsm became BootstrapLoader.js, RDFDataSource.jsm became RDFDataSource.sys.mjs, RDFManifestConverter.jsm became RDFManifestConverter.sys.mjs, userChrome.jsm became userChrome.js, and xPref.jsm became xPref.sys.mjs). The name chrome.manifest did not change. Also, an additional seventh utils file, ChromeManifest.sys.mjs, was added to the original set of six.

There is an optional file named rebuild_userChrome.uc.js to put into the chrome folder that provides a button for the toolbar for the ability to toggle scripts on and off. That file can be found in the list of JavaScript files seen by clicking the chrome link in the frame on the left side of the screen and looking at the list that appears. The one that is good for Firefox 115 is on this page:
https://github.com/xiaoxiaoflood/firefox-scripts/blob/bd8ccfb6266a1e9de55aaab309296a65e7e7a78a/chrome/rebuild_userChrome.uc.js
Javascript files (such as rebuild_userChrome.uc.js) go into the chrome folder.
xiaoxiaoflood's files worked to run AnimationToggleButtonuc.js that was written for Firefox 94, using Firefox 115.

boof (OP) sextuple-posted this 3 months ago, 1 day later, 6 days after the original post[^] [v] #1,395,280

another file source

onemen, https://github.com/onemen/firefox-scripts
I found that the files were sourced from xiaoxiaoflood (described previously), and like that source, the README text on the page indicated that the current files are good for at least Firefox 131, and by clicking the history link for the file README.md, I found that files were prepared for Firefox since version 56. I found files that are good for Firefox 115 linked on this page:
https://github.com/onemen/firefox-scripts/blob/bd8ccfb6266a1e9de55aaab309296a65e7e7a78a/fx-folder.zip
Read the notes for xiaoxiaoflood for navigating onemen's pages to get and use the files.
The optional file named rebuild_userChrome.uc.js good for Firefox 115 is on this page:
https://github.com/onemen/firefox-scripts/blob/bd8ccfb6266a1e9de55aaab309296a65e7e7a78a/chrome/rebuild_userChrome.uc.js

boof (OP) septuple-posted this 3 months ago, 23 hours later, 1 week after the original post[^] [v] #1,395,458

another file source

BSTweaker, https://bitbucket.org/BSTweaker/userchromejs/src/master/loader/
This source is described in the README text of alice0775. It is for something special called UserChromeJSLoader.mjs, a file that is to be placed in the chrome folder. There is a page with the description "UserScriptLoader: remove backward-compatible code assuming Firefox >= 115" at https://bitbucket.org/BSTweaker/userchromejs/commits/bfd26fde6ad8651962b079b752ff2cc8324c2364
The description at alice0775 and at BSTweaker's site is confusing to me, and I am unsure that I have correctly followed the directions. What I did was start with the three files from alice0775. Then, change the config.js text by removing the first "try {" block (which ends with "} catch(ex) {};"), then inserting the "try {" block given in the BSTweaker README notes. Anyhow, the BSTweaker seems unnecessary other than for some future version of Firefox where more complicated handling becomes required to run JavaScript files due to more restrictions. BSTweaker gives further instructions for running scripts in a sandbox and for running modular scripts, which I did not try.

boof (OP) octuple-posted this 3 months ago, 23 hours later, 1 week after the original post[^] [v] #1,395,638

I found more file sources, but I have not tested them yet. I'll add those on when I do.

meanwhile...

avoiding pitfalls using JavaScript files with Firefox

To better ensure that the JavaScript files get activated, clear Firefox's startup cache and restart after putting a JavaScript file into the appropriate folder. Click the three lines button, Help, Troubleshooting Information, and click the Clear startup cache... button. Another way to get to the Troubleshooting Information page is to enter about:support into the address/URL field. Alternatively, delete the startupCache folder in the profile folder.

boof (OP) nonuple-posted this 3 months ago, 1 day later, 1 week after the original post[^] [v] #1,395,858

As described earlier, changes with newer versions of Firefox can affect whether or not your JavaScript files work. Major changes happened with Firefox 69. The browser user interface file was renamed from browser.xul to browser.xhtml, so JavaScript files that only referred to chrome://browser/content/browser.xul no longer worked. Another change was that Firefox no longer loaded userChrome.css or userContent.css files by default, requiring the changing of a setting in about:config -- toolkit.legacyUserProfileCustomizations.stylesheets has to be set to true to restore this ability. That setting does not necessarily affect the running of a given JavaScript file, however. Anyhow, since that change, alice0775's updated config.js file ensures that the setting is put to true.
https://briangrinstead.com/blog/xbl-replacement-newsletter-19/
https://www.userchrome.org/firefox-changes-userchrome-css.html

boof (OP) decuple-posted this 3 months ago, 22 hours later, 1 week after the original post[^] [v] #1,395,995

The use of extended support release (ESR) editions of Firefox can ensure some stability. Firefox releases new versions of its regular edition often enough to be concerned that a JavaScript file that is new might stop working at any time, and a newer fixed version of the file might not appear very quickly, if at all. ESR editions do not run the risk of automatically updating to a version that changes anything significant about how the browser works. These are the ESR versions from 2023 to 2025: 115 was released on 2023/07/04, 128 on 2024/07/09, and 140 on 2025/06/24.

boof (OP) undecuple-posted this 3 months ago, 1 day later, 1 week after the original post[^] [v] #1,396,231

an example JavaScript file: AnimationToggleButton.uc.js

https://github.com/ardiman/userChrome.js/tree/master/animationtogglebutton
Here is the README desription, translated: This script makes a button that allows you to turn gif animations on and off or play them only once. The button can be freely positioned using the Customize Toolbar window and changes its appearance depending on its status.
Rightclicking the button pauses gifs, while leftclick resumes the animation. Middleclick (mousewheel) makes animations play from the start once. Note that the page has to reload for the change to take effect.

The file is from 2016. The site text says that ardiman's scripts are good for Firefox 57, which came out in 2017. In 2021, someone on reddit said that to get the script working again, all that was needed was to make a change to the sixth line:
change "xul" in "chrome: //browser/content/browser.xul" to "xhtml". However, subsequent changes to Firefox make that single change insufficient to make the file usable. People have posted updated JavaScript text in the forum at https://www.camp-firefox.de.

boof (OP) duodecuple-posted this 3 months ago, 1 minute later, 1 week after the original post[^] [v] #1,396,232

Here are the pages at https://www.camp-firefox.de where later versions of the AnimationToggleButton JavaScript text were posted:
Firefox 94 -- from 2021, in post #6:
https://www.camp-firefox.de/forum/thema/133649-script-f%C3%BCr-animierte-grafiken-funktioniert-ab-ff-94-nicht-mehr-vollst%C3%A4ndig/
This version of AnimationToggleButton.uc.js works with Firefox ESR 115.

This next instance from 2022 is exactly the same as the previous source, post #6, except for an error in line 73. Instead of "setPref('once');", it should be "setPref('none');".
https://www.camp-firefox.de/forum/thema/135594-zur%C3%BCck-und-vorw%C3%A4rts-button-verschieben/?postID=1213574#post1213574
Firefox 126 -- from 2024, different relevant versions posted in post #1, #20, and #21. The #1 version is the same as the 2021 post #6 version described earlier, apart from comment lines and an error in line 75. Instead of "setPref('once');", it should be "setPref('none');". #20 and 21 should be equivalent to each other despite not being exactly alike, but see #22 for how to correct #21 (replace BrowserReloadSkipCache() with BrowserCommands.reloadSkipCache()).
https://www.camp-firefox.de/forum/thema/137909-ff126-animationtogglebutton-uc-js-tuts-nich-mehr/
Firefox 126 -- from 2024, the same as from the previous source, post #20:
https://github.com/Endor8/userChrome.js/blob/master/Firefox%20126/AnimationToggleButton.uc.js
Firefox 135, known to work in 138 -- from 2025:
https://github.com/Endor8/userChrome.js/blob/master/Firefox%20135/AnimationToggleButton.uc.js
Firefox 138 -- from 2025, posts #4.421, #4.431, #4.441:
https://www.camp-firefox.de/forum/thema/112673-userchrome-js-scripte-f%C3%BCr-den-fuchs-diskussion/?pageNo=222

boof (OP) tridecuple-posted this 3 months ago, 22 hours later, 1 week after the original post[^] [v] #1,396,402

Here are versions that were put on github prior to the one for Firefox 57. Notice that the file used to be named AnimationToggleButton_Movable.uc.js. Endor8 at github had several of the same files as ardiman.
from 2013, AnimationToggleButton_Movable.uc.js, v. 0.3.1
https://github.com/ardiman/userChrome.js/blob/7bd440fa877bf1f223d23cad4c4ceaa7de7f73b9/animationtogglebutton_movable/AnimationToggleButton_Movable.uc.js
https://github.com/Endor8/userChrome.js/blob/7bd440fa877bf1f223d23cad4c4ceaa7de7f73b9/animationtogglebutton_movable/AnimationToggleButton_Movable.uc.js
from 2014, v. 0.3.1 yet different from 2013 version
https://github.com/ardiman/userChrome.js/blob/5f01b4d2eefcb530c8031f5563c8e57f07cc7021/animationtogglebutton_movable/AnimationToggleButton_Movable.uc.js
https://github.com/Endor8/userChrome.js/blob/5f01b4d2eefcb530c8031f5563c8e57f07cc7021/animationtogglebutton_movable/AnimationToggleButton_Movable.uc.js
from 2015, v. 0.4
https://github.com/ardiman/userChrome.js/blob/c7666f121c3ffa0c7eb5a6139d832f3ac9e49c49/animationtogglebutton_movable/AnimationToggleButton_Movable.uc.js
https://github.com/Endor8/userChrome.js/blob/c7666f121c3ffa0c7eb5a6139d832f3ac9e49c49/animationtogglebutton_movable/AnimationToggleButton_Movable.uc.js
from 2015, simply renamed AnimationToggleButton_Movable.uc.js as AnimationToggleButtonuc.js, v. 0.4
https://github.com/ardiman/userChrome.js/blob/20edba8895a6141685c363156bc0c3c8f679b1d4/animationtogglebutton/AnimationToggleButton.uc.js
https://github.com/Endor8/userChrome.js/blob/20edba8895a6141685c363156bc0c3c8f679b1d4/animationtogglebutton/AnimationToggleButton.uc.js
from 2016, v. 0.4.1
https://github.com/ardiman/userChrome.js/blob/5956ddc396a46010ea7fd3cea9fda1f82b31ee7b/animationtogglebutton/AnimationToggleButton.uc.js
from 2016, v. 0.4.2
https://github.com/ardiman/userChrome.js/blob/c6252ae3acc131745cfca1fb09b3dd5303809118/animationtogglebutton/AnimationToggleButton.uc.js
from 2017, exactly the same as the previous listed above
https://github.com/Endor8/userChrome.js/blob/c4effaa1997627bfb9f79a08b01a42386d075c2f/animationtogglebutton/AnimationToggleButton.uc.js

boof (OP) quattuodecuple-posted this 3 months ago, 1 day later, 1 week after the original post[^] [v] #1,396,653

I have tested the other sources of loader files. Here is one:

benzBrake, https://github.com/benzBrake/FirefoxCustomize/tree/master/userChromeJS/Loader
There are sets of files available whose usability spans at least from Firefox 57 to Firefox 142. The README text says to use one of fx57.zip, fx72.zip, fx100.zip, and fx142.zip depending on which version of Firefox you are using. Use the one numbered that is not greater than your version. For Firefox 115, use fx100.zip.
Extract (unzip) the contents of the file. Put the files config.js, config-prefs.js, and userChrome.js into the appropriate folders as described earlier in these notes. Additionally, put the provided userChromeJS folder (with its contents) and the utils folder (and its contents) into your chrome folder. Note that the fx57.zip does not include config.js and config-prefs.js files.
benzBrake's files worked to run AnimationToggleButtonuc.js that was written for Firefox 94, using Firefox 115

boof (OP) sexadecuple-posted this 3 months ago, 1 day later, 2 weeks after the original post[^] [v] #1,396,861

another file source

Aris-t2, https://github.com/Aris-t2/CustomJSforFx
The files as they appeared when I got them are good for at least Firefox 115. At the github page, click the script_loader link to find links to areas named firefox and profile. The firefox link contains the file config.js and another link, labelled default/pref. The default/pref area contains the file config-prefs.js. Click the profile link to find the file userChrome.js, and another link, userChrome, to find the files userChromeJS.js and userChromeJSutilities.js. Put the files config.js, config-prefs.js, and userChrome.js into the appropriate folders as described earlier in these notes. Make a folder named userChrome in your chrome folder, and put the files userChromeJS.js and userChromeJSutilities.js into the userChrome folder.
There are older file sets found at:
https://github.com/Aris-t2/CustomJSforFx/tree/master/outdated_legacy
Method 1 is based on files from https://github.com/nuchi/firefox-quantum-userchromejs, method 2 is based on files from ardiman and Endor8 (described next in these notes), and method 3 is based on files from xiaoxiaoflood (described later).
Aris-t2's files worked to run AnimationToggleButtonuc.js that was written for Firefox 94, using Firefox 115.

boof (OP) sedecuple-posted this 3 months ago, 1 hour later, 2 weeks after the original post[^] [v] #1,396,876

Aris-t2's method has the unusual requirement that you modify the userChrome.js for every JavaScript file that you want to run, though there is a way to avoid having to do that. Put custom scripts into the userChrome folder, and modify the userChrome.js line:
userChrome.import("/userChrome/my_script_name.uc.js", "UChrm");
replacing my_script_name.uc.js with the name of your script file, such as AnimationToggleButton.uc.js
Make more such lines as necessary for more scripts that you might have.
Alternatively, use an asterisk in place of the file name, so that any JavaScript file in the folder will get activated:
userChrome.import("/userChrome/*", "UChrm");

(Edited 3 minutes later.)

boof (OP) septuadecuple-posted this 3 months ago, 8 minutes later, 2 weeks after the original post[^] [v] #1,396,878

Note that with userChrome.import("/userChrome/ and so on being in the script means that your JavaScript files should be put into the userChrome folder, unless you change the line to userChrome.import("*", "UChrm"); in which case the files go straight into the chrome folder.

boof (OP) octadecuple-posted this 3 months ago, 22 hours later, 2 weeks after the original post[^] [v] #1,397,019

another file source

Endor8, https://github.com/Endor8/userChrome.js/tree/master/userChrome
The file firefox-anpassungen.zip as it was when I got it contained files good for at least Firefox 113. They include the files config.js and config-prefs.js which go into the appropriate folders as described earlier in these notes. There is a userChromeJS folder (itself containing files) that goes into the Firefox installation folder. There is also a ready-made chrome folder (with a userChrome.js file) that belongs in your profile folder.
Endor8's files worked to run AnimationToggleButtonuc.js that was written for Firefox 94, using Firefox 115.

boof (OP) just kept on posting this 3 months ago, 23 hours later, 2 weeks after the original post[^] [v] #1,397,186

another file source

Merci-chao, https://github.com/Merci-chao/firefox-scripts
The files were sourced from xiaoxiaoflood (described previously), and like that source, the README text on the page indicated that the current files are good for at least Firefox 131. By clicking the history link for the file README.md, I found that files were prepared for Firefox since version 56. By clicking around as described for xiaoxiaoflood, I found files that are good for Firefox 115 linked on this page:
https://github.com/Merci-chao/firefox-scripts/blob/bd8ccfb6266a1e9de55aaab309296a65e7e7a78a/fx-folder.zip
Read the notes for xiaoxiaoflood for navigating Merci-chao's pages to get and use the files.
The optional file named rebuild_userChrome.uc.js good for Firefox 115 is on this page:
https://github.com/Merci-chao/firefox-scripts/blob/bd8ccfb6266a1e9de55aaab309296a65e7e7a78a/chrome/rebuild_userChrome.uc.js
Merci-chao's files worked to run AnimationToggleButtonuc.js that was written for Firefox 94, using Firefox 115, regardless of testing with the files good for Firefox 131 or the older files that I figured were good for 115.

boof (OP) just kept on posting this 3 months ago, 1 day later, 2 weeks after the original post[^] [v] #1,397,350

OK, those are the sources of JavaScript loader files that I have found. Most of them also have JavaScript files that can be used for all sorts of purposes, as how Firefox extensions operate. Now here are more file sources.

Other sources of JavaScript files

In addition to the sources already described that provided loader files (config.js and so on), here are others that have made JavaScript files for Firefox (not loader files).
https://github.com/Harv/userChromeJS
https://github.com/aminomancer/uc.css.js
https://github.com/Merci-chao/userChrome.js
https://github.com/sdavidg/firefoxChromeScripts
https://github.com/ywzhaiqi/userChromeJS
https://www.cnblogs.com/ziyunfei/archive/2011/11/25/2263756.html
https://github.com/lastdream2013/userChrome
https://github.com/feiruo/userChromeJS
https://github.com/defpt/userChromeJs
https://u6.getuploader.com/script/

boof (OP) just kept on posting this 3 months ago, 1 day later, 2 weeks after the original post[^] [v] #1,397,531

More about text file encoding

Be aware of text file encoding standards and what works with program files. Prior to the spring of 2018 and the Microsoft Windows 10 Build 1903 update, Notepad would by default save text files with an encoding labelled as ANSI (American National Standards Institute), although the encoding was something specific to Microsoft and not the institute. There was a choice to save using UTF-8 (Unicode Transformation Format, 8-bit), but there was a byte order mark (BOM) included, and the use of the BOM is not standard for many programming languages. Now by default, Notepad saves files using UFT-8 encoding with no BOM. If you are using an earlier version of Microsoft Windows, then use software such as Notepad++ instead of Notepad to ensure that you are saving program files in the expected UFT-8 no BOM format. Notepad++ saves text files that way by default.

boof (OP) just kept on posting this 3 months ago, 23 hours later, 2 weeks after the original post[^] [v] #1,397,716

The update to Notepad also changed its ability to recognize end-of-line (EOL) character standards of other operating systems. Windows uses two non-printing characters, carriage return (CR) and line feed (LF), to indicate ends of lines. Linux and macOS X and newer use just the line feed character, while Macs used to use just the carriage return character. Prior to the Notepad update, files made while using a different operating system would display as a crowded mess. The JavaScript and other files described in these notes are often found with the LF-only standard. Notepad++ can be used to convert such files to the Windows standard: click Edit, EOL Conversion, Windows (CR LF).
:

Please familiarise yourself with the rules and markup syntax before posting.