vrana / jush
JUSH - JavaScript Syntax Highlighter
Package info
Language:JavaScript
pkg:composer/vrana/jush
README
Highlights the full stack of PHP application starting with HTML, PHP, SQL and JavaScript code and ending with HTTP headers, php.ini settings or database variables.
Features
- Highlights and links documentation in spaghetti code like nothing else:
<?php mysql_query("SELECT 1"); ?> - Supported languages: everything related to PHP: HTML5, JS, CSS 3, SQL including variables (multiple dialects),
php.inidirectives, HTTP and e-mail headers, Apache config. Anything could be embedded into each other, e.g.header("Content-Type: text/html")orcolor: expression(parentNode.style.color). - Allows using HTML tags in source code (could be used for pointing out important parts):
echo "This part is <b>important</b>.". Produces overlapping HTML tags in this case though. - Performance is a priority.
<textarea>syntax highlight.
Installation instructions
-
Add following snippet before the
</body>tag in HTML file:<script src="jush.js"></script> <script> jush.style('jush.css'); jush.highlight_tag('code'); </script>
All
<code class="jush">tags will be highlighted. Language is determined by the class name beginning with "jush-" (e.g.<code class="jush-js">). Default language ishtm. It is also possible to use<code class="language-*">. -
If you want to enable dark mode, call
jush.style('jush-dark.css'). To enable it only based on user preferences, calljush.style('jush-dark.css', '(prefers-color-scheme: dark)').
Alternatively call jush.highlight(language, text) to syntax highlight single text.
Command-line help reference
It is also possible to use JUSH for opening the appropriate documentation in a browser:
Syntax: node jush-help.js filename line column [tabsize] [word]
Example: node jush-help.js demo.html 2 2
The example should open a browser with documentation of the <html> tag which is at position 2:2 of demo.html.
Updating language references
The update/ directory holds scripts which sync a language module's list of keywords, functions and classes from an upstream reference file. For example, update/php.php rebuilds the class and function lists in modules/jush-php.js from a php.api file (from scite-files):
php update/php.php path/to/php.api
update/sql.php rebuilds the MySQL/MariaDB lists in modules/jush-sql.js from the MySQL online manual (the index pages are cached in the given directory) and a checkout of mariadb-docs:
php update/sql.php path/to/mysql-cache path/to/mariadb-docs