Result
コード見せたいけどSyntax highlight使うほどじゃない時とかに。gistでいいんじゃ、と言われたらそれまでですが。
jQuery
;( function ( $, window, document, undefined ) { 'use strict' ; var pluginName = 'lineLine' , defaults = { startsFrom: 0, className: 'lineline' }; //オプションセッティング function Plugin( element, options ) { this .element = element; this .options = $.extend( {}, defaults, options); this ._defaults = defaults; this ._name = pluginName; this .init(); } Plugin.prototype.init = function () { var self = this ; var lines = $(self.element).html().split( '\n' ); var lineCount = lines.length; //textareaをtableにする var html = '<div class="' + self.options.className + '"><table class="' + self.options.className + '-code" border="0" cellspacing="0" cellpadding="0">' ; //ナンバリング for ( var i = self.options.startsFrom; i < lineCount; i++){ html += '<tr><td class="' + self.options.className + '-numbers">' + (i + 1) + '</td><td class="' + self.options.className + '-lines">' + lines[i] + '</td></tr>' ; } html += '</table></div>' ; $(self.element).before(html); $(self.element).remove(); }; $.fn[pluginName] = function ( options ) { return this .each( function () { if (!$.data( this , 'plugin_' + pluginName)) { $.data( this , 'plugin_' + pluginName, new Plugin( this , options )); } }); }; })( jQuery, window, document ); //textareaを指定 $( 'textarea' ).lineLine(); |
css
.lineline{ max-height : 300px ; width : 700px ; margin : 50px auto 0 ; background : #ececec ; padding : 20px ; overflow : auto ; text-align : left ; } .lineline-numbers { width : 20px ; border-right : 1px solid #ccc ; padding-right : 5px ; color : #777 ; } .lineline-lines{ padding-left : 20px ; white-space : pre ; white-space : -moz- pre ; white-space : - pre ; white-space : -o- pre ; word-wrap : break-word; } .lineline- code { font-family : 'Consolas' ; font-size : 12px ; line-height : 18px ; width : 100% ; white-space : nowrap ; } |
html
via
add line number to textarea or code or any dom element lineLine