This repository was archived by the owner on Sep 6, 2020. It is now read-only.

Repository files navigation

This project has been moved to https://github.com/box-project/box

If you are looking to upgrade, don't forget to have a look at the upgrade guide.


Box

Build Status

What is it?

The Box application simplifies the Phar building process. Out of the box (no pun intended), the application can do many great things:

  • Add, replace, and remove files and stubs in existing Phars.
  • Extract a whole Phar, or cherry pick which files you want.
  • Retrieve information about the Phar extension, or a Phar file.
    • List the contents of a Phar.
  • Verify the signature of an existing Phar.
  • Generate RSA (PKCS#1 encoded) private keys for OpenSSL signing.
    • Extract public keys from existing RSA private keys.
  • Use Git tags and short commit hashes for versioning.

Since the application is based on the Box library, you get its benefits as well:

  • On the fly search and replace of placeholders.
  • Compact file contents based on file type.
  • Generate custom stubs.

Forks

Because of the lack of proper maintenance on my part, I created a wiki page to list the known forks of this project. Please feel free to add to this list. You can find the wiki page here.

How do I get started?

You can use Box in one of three ways:

As a Phar (Recommended)

You may download a ready-to-use version of Box as a Phar:

$ curl -LSs https://box-project.github.io/box2/installer.php | php

The command will check your PHP settings, warn you of any issues, and the download it to the current directory. From there, you may place it anywhere that will make it easier for you to access (such as /usr/local/bin) and chmod it to 755. You can even rename it to just box to avoid having to type the .phar extension every time.

$ box --version

Whenever a new version of the application is released, you can simply run the update command to get the latest version:

$ box update

As a Global Composer Install

This is probably the best way when you have other tools like phpunit and other tools installed in this way:

$ composer global require kherge/box --prefer-source

As a Composer Dependency

You may also install Box as a dependency for your Composer managed project:

$ composer require --dev kherge/box

(or)

{
"require-dev": {
"kherge/box": "~2.5"
}
}

Be aware that using this approach requires additional configuration steps to prevent Box's own dependencies from accidentally being added to your Phar, causing file size bloat. You can find more information about this issue on the wiki.

Once you have installed the application, you can run the help command to get detailed information about all of the available commands. This should be your go-to place for information about how to use Box. You may also find additional useful information on the wiki. If you happen to come across any information that could prove to be useful to others, the wiki is open for you to contribute.

$ box help

Creating a Phar

To get started, you may want to check out the example application that is ready to be built by Box. How your project is structured is entirely up to you. All that Box requires is that you have a file called box.json at the root of your project directory. You can find a complete and detailed list of configuration settings available by seeing the help information for the build command:

$ box help build

You may find example configuration files for popular projects on the wiki.

Once you have configured your project using box.json (or box.json.dist), you can simply run the build command in the directory containing box.json:

$ box build -v

The -v option enabled verbose output. This will provide you with a lot of useful information for debugging your build process. Once you are satisfied with the results, I recommend not using the verbose option. It may considerably slow down the build process.

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

GPG Signature

You can find kherge's GPG on keybase.io.

32E4 B747 57B1 D652 34FC 389F 293D 7712 4151 5FE8

About

An application for building and managing Phars.

Resources

Stars

1.2k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, '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
This repository was archived by the owner on Sep 6, 2020. It is now read-only.

Repository files navigation

This project has been moved to https://github.com/box-project/box

If you are looking to upgrade, don't forget to have a look at the upgrade guide.


Box

Build Status

What is it?

The Box application simplifies the Phar building process. Out of the box (no pun intended), the application can do many great things:

  • Add, replace, and remove files and stubs in existing Phars.
  • Extract a whole Phar, or cherry pick which files you want.
  • Retrieve information about the Phar extension, or a Phar file.
    • List the contents of a Phar.
  • Verify the signature of an existing Phar.
  • Generate RSA (PKCS#1 encoded) private keys for OpenSSL signing.
    • Extract public keys from existing RSA private keys.
  • Use Git tags and short commit hashes for versioning.

Since the application is based on the Box library, you get its benefits as well:

  • On the fly search and replace of placeholders.
  • Compact file contents based on file type.
  • Generate custom stubs.

Forks

Because of the lack of proper maintenance on my part, I created a wiki page to list the known forks of this project. Please feel free to add to this list. You can find the wiki page here.

How do I get started?

You can use Box in one of three ways:

As a Phar (Recommended)

You may download a ready-to-use version of Box as a Phar:

$ curl -LSs https://box-project.github.io/box2/installer.php | php

The command will check your PHP settings, warn you of any issues, and the download it to the current directory. From there, you may place it anywhere that will make it easier for you to access (such as /usr/local/bin) and chmod it to 755. You can even rename it to just box to avoid having to type the .phar extension every time.

$ box --version

Whenever a new version of the application is released, you can simply run the update command to get the latest version:

$ box update

As a Global Composer Install

This is probably the best way when you have other tools like phpunit and other tools installed in this way:

$ composer global require kherge/box --prefer-source

As a Composer Dependency

You may also install Box as a dependency for your Composer managed project:

$ composer require --dev kherge/box

(or)

{
"require-dev": {
"kherge/box": "~2.5"
}
}

Be aware that using this approach requires additional configuration steps to prevent Box's own dependencies from accidentally being added to your Phar, causing file size bloat. You can find more information about this issue on the wiki.

Once you have installed the application, you can run the help command to get detailed information about all of the available commands. This should be your go-to place for information about how to use Box. You may also find additional useful information on the wiki. If you happen to come across any information that could prove to be useful to others, the wiki is open for you to contribute.

$ box help

Creating a Phar

To get started, you may want to check out the example application that is ready to be built by Box. How your project is structured is entirely up to you. All that Box requires is that you have a file called box.json at the root of your project directory. You can find a complete and detailed list of configuration settings available by seeing the help information for the build command:

$ box help build

You may find example configuration files for popular projects on the wiki.

Once you have configured your project using box.json (or box.json.dist), you can simply run the build command in the directory containing box.json:

$ box build -v

The -v option enabled verbose output. This will provide you with a lot of useful information for debugging your build process. Once you are satisfied with the results, I recommend not using the verbose option. It may considerably slow down the build process.

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

GPG Signature

You can find kherge's GPG on keybase.io.

32E4 B747 57B1 D652 34FC 389F 293D 7712 4151 5FE8

About

An application for building and managing Phars.

Resources

Stars

1.2k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, '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
This repository was archived by the owner on Sep 6, 2020. It is now read-only.

Repository files navigation

This project has been moved to https://github.com/box-project/box

If you are looking to upgrade, don't forget to have a look at the upgrade guide.


Box

Build Status

What is it?

The Box application simplifies the Phar building process. Out of the box (no pun intended), the application can do many great things:

  • Add, replace, and remove files and stubs in existing Phars.
  • Extract a whole Phar, or cherry pick which files you want.
  • Retrieve information about the Phar extension, or a Phar file.
    • List the contents of a Phar.
  • Verify the signature of an existing Phar.
  • Generate RSA (PKCS#1 encoded) private keys for OpenSSL signing.
    • Extract public keys from existing RSA private keys.
  • Use Git tags and short commit hashes for versioning.

Since the application is based on the Box library, you get its benefits as well:

  • On the fly search and replace of placeholders.
  • Compact file contents based on file type.
  • Generate custom stubs.

Forks

Because of the lack of proper maintenance on my part, I created a wiki page to list the known forks of this project. Please feel free to add to this list. You can find the wiki page here.

How do I get started?

You can use Box in one of three ways:

As a Phar (Recommended)

You may download a ready-to-use version of Box as a Phar:

$ curl -LSs https://box-project.github.io/box2/installer.php | php

The command will check your PHP settings, warn you of any issues, and the download it to the current directory. From there, you may place it anywhere that will make it easier for you to access (such as /usr/local/bin) and chmod it to 755. You can even rename it to just box to avoid having to type the .phar extension every time.

$ box --version

Whenever a new version of the application is released, you can simply run the update command to get the latest version:

$ box update

As a Global Composer Install

This is probably the best way when you have other tools like phpunit and other tools installed in this way:

$ composer global require kherge/box --prefer-source

As a Composer Dependency

You may also install Box as a dependency for your Composer managed project:

$ composer require --dev kherge/box

(or)

{
"require-dev": {
"kherge/box": "~2.5"
}
}

Be aware that using this approach requires additional configuration steps to prevent Box's own dependencies from accidentally being added to your Phar, causing file size bloat. You can find more information about this issue on the wiki.

Once you have installed the application, you can run the help command to get detailed information about all of the available commands. This should be your go-to place for information about how to use Box. You may also find additional useful information on the wiki. If you happen to come across any information that could prove to be useful to others, the wiki is open for you to contribute.

$ box help

Creating a Phar

To get started, you may want to check out the example application that is ready to be built by Box. How your project is structured is entirely up to you. All that Box requires is that you have a file called box.json at the root of your project directory. You can find a complete and detailed list of configuration settings available by seeing the help information for the build command:

$ box help build

You may find example configuration files for popular projects on the wiki.

Once you have configured your project using box.json (or box.json.dist), you can simply run the build command in the directory containing box.json:

$ box build -v

The -v option enabled verbose output. This will provide you with a lot of useful information for debugging your build process. Once you are satisfied with the results, I recommend not using the verbose option. It may considerably slow down the build process.

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

GPG Signature

You can find kherge's GPG on keybase.io.

32E4 B747 57B1 D652 34FC 389F 293D 7712 4151 5FE8

About

An application for building and managing Phars.

Resources

Stars

1.2k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, '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
This repository was archived by the owner on Sep 6, 2020. It is now read-only.

Repository files navigation

This project has been moved to https://github.com/box-project/box

If you are looking to upgrade, don't forget to have a look at the upgrade guide.


Box

Build Status

What is it?

The Box application simplifies the Phar building process. Out of the box (no pun intended), the application can do many great things:

  • Add, replace, and remove files and stubs in existing Phars.
  • Extract a whole Phar, or cherry pick which files you want.
  • Retrieve information about the Phar extension, or a Phar file.
    • List the contents of a Phar.
  • Verify the signature of an existing Phar.
  • Generate RSA (PKCS#1 encoded) private keys for OpenSSL signing.
    • Extract public keys from existing RSA private keys.
  • Use Git tags and short commit hashes for versioning.

Since the application is based on the Box library, you get its benefits as well:

  • On the fly search and replace of placeholders.
  • Compact file contents based on file type.
  • Generate custom stubs.

Forks

Because of the lack of proper maintenance on my part, I created a wiki page to list the known forks of this project. Please feel free to add to this list. You can find the wiki page here.

How do I get started?

You can use Box in one of three ways:

As a Phar (Recommended)

You may download a ready-to-use version of Box as a Phar:

$ curl -LSs https://box-project.github.io/box2/installer.php | php

The command will check your PHP settings, warn you of any issues, and the download it to the current directory. From there, you may place it anywhere that will make it easier for you to access (such as /usr/local/bin) and chmod it to 755. You can even rename it to just box to avoid having to type the .phar extension every time.

$ box --version

Whenever a new version of the application is released, you can simply run the update command to get the latest version:

$ box update

As a Global Composer Install

This is probably the best way when you have other tools like phpunit and other tools installed in this way:

$ composer global require kherge/box --prefer-source

As a Composer Dependency

You may also install Box as a dependency for your Composer managed project:

$ composer require --dev kherge/box

(or)

{
"require-dev": {
"kherge/box": "~2.5"
}
}

Be aware that using this approach requires additional configuration steps to prevent Box's own dependencies from accidentally being added to your Phar, causing file size bloat. You can find more information about this issue on the wiki.

Once you have installed the application, you can run the help command to get detailed information about all of the available commands. This should be your go-to place for information about how to use Box. You may also find additional useful information on the wiki. If you happen to come across any information that could prove to be useful to others, the wiki is open for you to contribute.

$ box help

Creating a Phar

To get started, you may want to check out the example application that is ready to be built by Box. How your project is structured is entirely up to you. All that Box requires is that you have a file called box.json at the root of your project directory. You can find a complete and detailed list of configuration settings available by seeing the help information for the build command:

$ box help build

You may find example configuration files for popular projects on the wiki.

Once you have configured your project using box.json (or box.json.dist), you can simply run the build command in the directory containing box.json:

$ box build -v

The -v option enabled verbose output. This will provide you with a lot of useful information for debugging your build process. Once you are satisfied with the results, I recommend not using the verbose option. It may considerably slow down the build process.

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

GPG Signature

You can find kherge's GPG on keybase.io.

32E4 B747 57B1 D652 34FC 389F 293D 7712 4151 5FE8

About

An application for building and managing Phars.

Resources

Stars

1.2k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, '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
This repository was archived by the owner on Sep 6, 2020. It is now read-only.

Repository files navigation

This project has been moved to https://github.com/box-project/box

If you are looking to upgrade, don't forget to have a look at the upgrade guide.


Box

Build Status

What is it?

The Box application simplifies the Phar building process. Out of the box (no pun intended), the application can do many great things:

  • Add, replace, and remove files and stubs in existing Phars.
  • Extract a whole Phar, or cherry pick which files you want.
  • Retrieve information about the Phar extension, or a Phar file.
    • List the contents of a Phar.
  • Verify the signature of an existing Phar.
  • Generate RSA (PKCS#1 encoded) private keys for OpenSSL signing.
    • Extract public keys from existing RSA private keys.
  • Use Git tags and short commit hashes for versioning.

Since the application is based on the Box library, you get its benefits as well:

  • On the fly search and replace of placeholders.
  • Compact file contents based on file type.
  • Generate custom stubs.

Forks

Because of the lack of proper maintenance on my part, I created a wiki page to list the known forks of this project. Please feel free to add to this list. You can find the wiki page here.

How do I get started?

You can use Box in one of three ways:

As a Phar (Recommended)

You may download a ready-to-use version of Box as a Phar:

$ curl -LSs https://box-project.github.io/box2/installer.php | php

The command will check your PHP settings, warn you of any issues, and the download it to the current directory. From there, you may place it anywhere that will make it easier for you to access (such as /usr/local/bin) and chmod it to 755. You can even rename it to just box to avoid having to type the .phar extension every time.

$ box --version

Whenever a new version of the application is released, you can simply run the update command to get the latest version:

$ box update

As a Global Composer Install

This is probably the best way when you have other tools like phpunit and other tools installed in this way:

$ composer global require kherge/box --prefer-source

As a Composer Dependency

You may also install Box as a dependency for your Composer managed project:

$ composer require --dev kherge/box

(or)

{
"require-dev": {
"kherge/box": "~2.5"
}
}

Be aware that using this approach requires additional configuration steps to prevent Box's own dependencies from accidentally being added to your Phar, causing file size bloat. You can find more information about this issue on the wiki.

Once you have installed the application, you can run the help command to get detailed information about all of the available commands. This should be your go-to place for information about how to use Box. You may also find additional useful information on the wiki. If you happen to come across any information that could prove to be useful to others, the wiki is open for you to contribute.

$ box help

Creating a Phar

To get started, you may want to check out the example application that is ready to be built by Box. How your project is structured is entirely up to you. All that Box requires is that you have a file called box.json at the root of your project directory. You can find a complete and detailed list of configuration settings available by seeing the help information for the build command:

$ box help build

You may find example configuration files for popular projects on the wiki.

Once you have configured your project using box.json (or box.json.dist), you can simply run the build command in the directory containing box.json:

$ box build -v

The -v option enabled verbose output. This will provide you with a lot of useful information for debugging your build process. Once you are satisfied with the results, I recommend not using the verbose option. It may considerably slow down the build process.

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

GPG Signature

You can find kherge's GPG on keybase.io.

32E4 B747 57B1 D652 34FC 389F 293D 7712 4151 5FE8

About

An application for building and managing Phars.

Resources

Stars

1.2k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, '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
This repository was archived by the owner on Sep 6, 2020. It is now read-only.

Repository files navigation

This project has been moved to https://github.com/box-project/box

If you are looking to upgrade, don't forget to have a look at the upgrade guide.


Box

Build Status

What is it?

The Box application simplifies the Phar building process. Out of the box (no pun intended), the application can do many great things:

  • Add, replace, and remove files and stubs in existing Phars.
  • Extract a whole Phar, or cherry pick which files you want.
  • Retrieve information about the Phar extension, or a Phar file.
    • List the contents of a Phar.
  • Verify the signature of an existing Phar.
  • Generate RSA (PKCS#1 encoded) private keys for OpenSSL signing.
    • Extract public keys from existing RSA private keys.
  • Use Git tags and short commit hashes for versioning.

Since the application is based on the Box library, you get its benefits as well:

  • On the fly search and replace of placeholders.
  • Compact file contents based on file type.
  • Generate custom stubs.

Forks

Because of the lack of proper maintenance on my part, I created a wiki page to list the known forks of this project. Please feel free to add to this list. You can find the wiki page here.

How do I get started?

You can use Box in one of three ways:

As a Phar (Recommended)

You may download a ready-to-use version of Box as a Phar:

$ curl -LSs https://box-project.github.io/box2/installer.php | php

The command will check your PHP settings, warn you of any issues, and the download it to the current directory. From there, you may place it anywhere that will make it easier for you to access (such as /usr/local/bin) and chmod it to 755. You can even rename it to just box to avoid having to type the .phar extension every time.

$ box --version

Whenever a new version of the application is released, you can simply run the update command to get the latest version:

$ box update

As a Global Composer Install

This is probably the best way when you have other tools like phpunit and other tools installed in this way:

$ composer global require kherge/box --prefer-source

As a Composer Dependency

You may also install Box as a dependency for your Composer managed project:

$ composer require --dev kherge/box

(or)

{
"require-dev": {
"kherge/box": "~2.5"
}
}

Be aware that using this approach requires additional configuration steps to prevent Box's own dependencies from accidentally being added to your Phar, causing file size bloat. You can find more information about this issue on the wiki.

Once you have installed the application, you can run the help command to get detailed information about all of the available commands. This should be your go-to place for information about how to use Box. You may also find additional useful information on the wiki. If you happen to come across any information that could prove to be useful to others, the wiki is open for you to contribute.

$ box help

Creating a Phar

To get started, you may want to check out the example application that is ready to be built by Box. How your project is structured is entirely up to you. All that Box requires is that you have a file called box.json at the root of your project directory. You can find a complete and detailed list of configuration settings available by seeing the help information for the build command:

$ box help build

You may find example configuration files for popular projects on the wiki.

Once you have configured your project using box.json (or box.json.dist), you can simply run the build command in the directory containing box.json:

$ box build -v

The -v option enabled verbose output. This will provide you with a lot of useful information for debugging your build process. Once you are satisfied with the results, I recommend not using the verbose option. It may considerably slow down the build process.

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

GPG Signature

You can find kherge's GPG on keybase.io.

32E4 B747 57B1 D652 34FC 389F 293D 7712 4151 5FE8

About

An application for building and managing Phars.

Resources

Stars

1.2k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, '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
This repository was archived by the owner on Sep 6, 2020. It is now read-only.

Repository files navigation

This project has been moved to https://github.com/box-project/box

If you are looking to upgrade, don't forget to have a look at the upgrade guide.


Box

Build Status

What is it?

The Box application simplifies the Phar building process. Out of the box (no pun intended), the application can do many great things:

  • Add, replace, and remove files and stubs in existing Phars.
  • Extract a whole Phar, or cherry pick which files you want.
  • Retrieve information about the Phar extension, or a Phar file.
    • List the contents of a Phar.
  • Verify the signature of an existing Phar.
  • Generate RSA (PKCS#1 encoded) private keys for OpenSSL signing.
    • Extract public keys from existing RSA private keys.
  • Use Git tags and short commit hashes for versioning.

Since the application is based on the Box library, you get its benefits as well:

  • On the fly search and replace of placeholders.
  • Compact file contents based on file type.
  • Generate custom stubs.

Forks

Because of the lack of proper maintenance on my part, I created a wiki page to list the known forks of this project. Please feel free to add to this list. You can find the wiki page here.

How do I get started?

You can use Box in one of three ways:

As a Phar (Recommended)

You may download a ready-to-use version of Box as a Phar:

$ curl -LSs https://box-project.github.io/box2/installer.php | php

The command will check your PHP settings, warn you of any issues, and the download it to the current directory. From there, you may place it anywhere that will make it easier for you to access (such as /usr/local/bin) and chmod it to 755. You can even rename it to just box to avoid having to type the .phar extension every time.

$ box --version

Whenever a new version of the application is released, you can simply run the update command to get the latest version:

$ box update

As a Global Composer Install

This is probably the best way when you have other tools like phpunit and other tools installed in this way:

$ composer global require kherge/box --prefer-source

As a Composer Dependency

You may also install Box as a dependency for your Composer managed project:

$ composer require --dev kherge/box

(or)

{
"require-dev": {
"kherge/box": "~2.5"
}
}

Be aware that using this approach requires additional configuration steps to prevent Box's own dependencies from accidentally being added to your Phar, causing file size bloat. You can find more information about this issue on the wiki.

Once you have installed the application, you can run the help command to get detailed information about all of the available commands. This should be your go-to place for information about how to use Box. You may also find additional useful information on the wiki. If you happen to come across any information that could prove to be useful to others, the wiki is open for you to contribute.

$ box help

Creating a Phar

To get started, you may want to check out the example application that is ready to be built by Box. How your project is structured is entirely up to you. All that Box requires is that you have a file called box.json at the root of your project directory. You can find a complete and detailed list of configuration settings available by seeing the help information for the build command:

$ box help build

You may find example configuration files for popular projects on the wiki.

Once you have configured your project using box.json (or box.json.dist), you can simply run the build command in the directory containing box.json:

$ box build -v

The -v option enabled verbose output. This will provide you with a lot of useful information for debugging your build process. Once you are satisfied with the results, I recommend not using the verbose option. It may considerably slow down the build process.

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

GPG Signature

You can find kherge's GPG on keybase.io.

32E4 B747 57B1 D652 34FC 389F 293D 7712 4151 5FE8

About

An application for building and managing Phars.

Resources

Stars

1.2k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, '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
This repository was archived by the owner on Sep 6, 2020. It is now read-only.

Repository files navigation

This project has been moved to https://github.com/box-project/box

If you are looking to upgrade, don't forget to have a look at the upgrade guide.


Box

Build Status

What is it?

The Box application simplifies the Phar building process. Out of the box (no pun intended), the application can do many great things:

  • Add, replace, and remove files and stubs in existing Phars.
  • Extract a whole Phar, or cherry pick which files you want.
  • Retrieve information about the Phar extension, or a Phar file.
    • List the contents of a Phar.
  • Verify the signature of an existing Phar.
  • Generate RSA (PKCS#1 encoded) private keys for OpenSSL signing.
    • Extract public keys from existing RSA private keys.
  • Use Git tags and short commit hashes for versioning.

Since the application is based on the Box library, you get its benefits as well:

  • On the fly search and replace of placeholders.
  • Compact file contents based on file type.
  • Generate custom stubs.

Forks

Because of the lack of proper maintenance on my part, I created a wiki page to list the known forks of this project. Please feel free to add to this list. You can find the wiki page here.

How do I get started?

You can use Box in one of three ways:

As a Phar (Recommended)

You may download a ready-to-use version of Box as a Phar:

$ curl -LSs https://box-project.github.io/box2/installer.php | php

The command will check your PHP settings, warn you of any issues, and the download it to the current directory. From there, you may place it anywhere that will make it easier for you to access (such as /usr/local/bin) and chmod it to 755. You can even rename it to just box to avoid having to type the .phar extension every time.

$ box --version

Whenever a new version of the application is released, you can simply run the update command to get the latest version:

$ box update

As a Global Composer Install

This is probably the best way when you have other tools like phpunit and other tools installed in this way:

$ composer global require kherge/box --prefer-source

As a Composer Dependency

You may also install Box as a dependency for your Composer managed project:

$ composer require --dev kherge/box

(or)

{
"require-dev": {
"kherge/box": "~2.5"
}
}

Be aware that using this approach requires additional configuration steps to prevent Box's own dependencies from accidentally being added to your Phar, causing file size bloat. You can find more information about this issue on the wiki.

Once you have installed the application, you can run the help command to get detailed information about all of the available commands. This should be your go-to place for information about how to use Box. You may also find additional useful information on the wiki. If you happen to come across any information that could prove to be useful to others, the wiki is open for you to contribute.

$ box help

Creating a Phar

To get started, you may want to check out the example application that is ready to be built by Box. How your project is structured is entirely up to you. All that Box requires is that you have a file called box.json at the root of your project directory. You can find a complete and detailed list of configuration settings available by seeing the help information for the build command:

$ box help build

You may find example configuration files for popular projects on the wiki.

Once you have configured your project using box.json (or box.json.dist), you can simply run the build command in the directory containing box.json:

$ box build -v

The -v option enabled verbose output. This will provide you with a lot of useful information for debugging your build process. Once you are satisfied with the results, I recommend not using the verbose option. It may considerably slow down the build process.

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

GPG Signature

You can find kherge's GPG on keybase.io.

32E4 B747 57B1 D652 34FC 389F 293D 7712 4151 5FE8

About

An application for building and managing Phars.

Resources

Stars

1.2k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages