123456789101112131415161718192021222324252627282930313233343536373839 |
- Line numbers
- ============
- Highlight.js' notable lack of line numbers support is not an oversight but a
- feature. Following is the explanation of this policy from the current project
- maintainer (hey guys!):
- One of the defining design principles for highlight.js from the start was
- simplicity. Not the simplicity of code (in fact, it's quite complex) but
- the simplicity of usage and of the actual look of highlighted snippets on
- HTML pages. Many highlighters, in my opinion, are overdoing it with such
- things as separate colors for every single type of lexemes, striped
- backgrounds, fancy buttons around code blocks and — yes — line numbers.
- The more fancy stuff resides around the code the more it distracts a
- reader from understanding it.
- This is why it's not a straightforward decision: this new feature will not
- just make highlight.js better, it might actually make it worse simply by
- making it look more bloated in blog posts around the Internet. This is why
- I'm asking people to show that it's worth it.
- The only real use-case that ever was brought up in support of line numbers
- is referencing code from the descriptive text around it. On my own blog I
- was always solving this either with comments within the code itself or by
- breaking the larger snippets into smaller ones and describing each small
- part separately. I'm not saying that my solution is better. But I don't
- see how line numbers are better either. And the only way to show that they
- are better is to set up some usability research on the subject. I doubt
- anyone would bother to do it.
- Then there's maintenance. So far the core code of highlight.js is
- maintained by only one person — yours truly. Inclusion of any new code in
- highlight.js means that from that moment I will have to fix bugs in it,
- improve it further, make it work together with the rest of the code,
- defend its design. And I don't want to do all this for the feature that I
- consider "evil" and probably will never use myself.
- This position is `subject to discuss <http://groups.google.com/group/highlightjs>`_.
- Also it doesn't stop anyone from forking the code and maintaining line-numbers implementation separately.
|