Luminous Changelog since 0.6.0 ============================== ##v0.7.0 (12/01/13): - Important stuff (maybe): - License change: GPL to LGPL. - Luminous is a composer package. - New stuff: - SCSS scanner. - Changes to markup/CSS: - luminous.css is now compiled from luminous.scss (SCSS) - Markup has been modernised and cleaned a bit - CSS selectors favoured over superfluous classes, e.g. nth-child instead of an alternating class, ".code > span" instead of a line class. - Bundled fonts (dejavu) have been removed - we now reference Consolas, Deja Vu and fall back to plain old 'monospace'. - Luminous elements have theme specific borders by default - Misc backwardly incompatible changes: - The 'include-jquery' setting defaults to 'false' - most people now have jQuery on their sites anyway and including a second version of it isn't a great idea. - Height unconstrained elements are now the default in the HTML formatter - Removed support for word-wrapping, nobody used this and it would mangle source code to be syntactically invalid anyway. HTML is not generous to this problem. - Misc: - Support one-time option setting via third parameter of luminous::highlight() - HTML output with JavaScript fixes line numbers to the left of the widget regardless of how it's horizontally scrolled. - HTML output with JavaScript allows toggling the line numbers (hover over the line numbers to show the control) - Preliminary JavaScript API for manipulating Luminous elements (not documented or properly tested yet...) - Filesystem cache now uses subdirectories; the cache items are organised into directories using the first two digits of the cache ID (a hex string). This makes things neater by reducing the number of items in a single directory, and may improve performance slightly on some filesystems. - examples/index.php example browser - Security improvements to testing files, should you have them on your server. - Fix broken tests on PHP5.4. - Misc language fixes: - C#: added missing 'void' keyword, added a lot of types ##v0.6.7-2 (10/6/12): - Fixed another problem with unnecessary scrollbars ##v0.6.7-1 (19/05/12): - Fixed a regression which introduced scrollbars on inline code ##v0.6.7 (24/04/12): Likely to be the final release in 0.6 series. Further releases will be on the 0.7 tree. - New stuff: - Ability to set custom line number for first line in output, thanks [Martin Sikora](https://github.com/martinsik) - Line highlighting (click with JS) uses CSS transitions - Fixes: - Small improvements to JavaDoc-like comment highlighting - CSS scanner won't break on @media { ... } rules - CSS scanner won't break on @keyframe { ... } rules - CSS scanner will highlight round brackets in selectors (like :nth-child(n+1)) - HTML output now a tiny bit compressed - HTML output with unconstrained height will scroll horizontally instead of spilling overflow. ##v0.6.6 (26/02/12): Maintenance release - Fixed: - Parse errors on PHP 5.2.0 (due to using unescaped '$' in doubly quoted strings) - Improved: - Cache error behaviour is less ugly. Errors can more easily be detected programmatically, and suppressed (or handled silently). See the cache's docs on how to do this. - Made testing/developing on Windows slightly more possible. Don't expect miracles. ##v0.6.5 (15/10/11): - New stuff: - kimono.css theme (based on the more famous Monokai theme) - versioncheck.php (in root) - Version checking script. Run from either a browser or the command line to query the website's API as to the most recent version and output whether you're running it. - style and client both have .htaccesses to ensure that they are in fact readable; this might be useful if for some reason you've put Luminous in a directory which a .htaccess forbids access to (e.g. somewhere in a framework). - Misc stuff: - Some really minor optimisations. Absolutely tiny. You won't notice them. - Updated jQuery to 1.6.4 - The external CSS output by `luminous::head_html() ` now have IDs set, the theme is IDed as 'luminous-theme'. This makes changing the theme via JS a lot neater (see theme switcher example). Why didn't we think of this earlier? - SQL cache is a tiny bit faster as it does not try to purge old elements excessively anymore (max: once per 24 hours). - GitHub theme is a little bit cleaner with interpolated elements (including PHP short output tags) - Diff scanner: the scanner has been split into two. The old behaviour (where embedded source code was highlighted) has been renamed to diff-pretty, and 'diff' now represents a plain scanner which does not highlight embedded code. If you want the old behaviour, use diff-pretty (valid code: diffpretty. See the languages page for more aliases.). This is because the pretty diff scanner is much slower and can encounter problems, so users may prefer a more reliable and faster but plain option. - Some of the JS examples have been fixed. - Language fixes: - Support for Java annotations - Django scanner recognises {% comment %} ... {% endcomment %} blocks - Ruby scanner has been altered with respect to how it detects regular expression literals. It is now similar to Kate/Kwrite's syntax highlighting and should be slightly better at figuring out what's a regex and what's a division operator. If it causes problems please report it, preferably with an explanation of how Ruby's grammar works in that particular case. - Ruby on Rails will now terminate comments at the end of the Rails block as well as newlines - Bash scanner will not go into heredoc mode inside ((...)) blocks; this prevents false positives on shift operations - Bash scanner should get fewer false positives when picking out comments - Perl scanner recognises heredoc openings when the delimiter is preceded by a backslash - PHP scanner is a little more careful about detecting user-definitions of functions and classes, i.e. it correctly highlights class names after implements and extends, and won't get confused by PHP5.3+ closures. - PHP Snippet mode will detect ` http:/) - User API now throws Exception if the highlighting function is called with non-string arguments - Some .htaccesses are provided to prevent search engines/bots crawling the Luminous directories (many of the files aren't supposed to be executed individually and will therefore populate error logs should a bot discover a directory) - Minor tweaks to the geonyx theme - Obsolete JavaScript has been removed and replaced with a much less intrusive behaviour of double click the line numbers to hide them, js inclusion is disabled by default by User API. - Infinite loop bug in the abstract formatter/word wrap method fixed (although this wasn't actually reachable by any of the formatters) - Language fixes: - Pod/cut style comments in Perl should now work all the time - C/C++'s "#if 0 ... #endif" blocks (which are highlighted as comments) now nest - Python recognises a list of exceptions as types - New Stuff: - Go language support - Internal/Development: - Unit test of stateful scanner much more useful - Formatter base class unit test (tests/unit/formatter.php) - Syntax test for scanners (syntax.php) - Stateful scanner throws an exception if the initial state is popped (downgraded from an assertion) - Stateful scanner safety check no longer requires that an iteration advances the pointer as long as the state is changed - Coding standards applied in all formatters - All scanning classes have complete API documentation - Paste test (interface.php) works properly with Unicode ## v0.6.0 (16/04/11): - 0.6.0 is a near-total rewrite with a lot of changes. The hosting has moved from Google Code to GitHub and most code is freshly written. - Changelog is restarted