Author: anoopknayak Date: Wed Sep 18 09:36:49 2013 New Revision: 1524352 URL: http://svn.apache.org/r1524352 Log: First commit after making the bloodhound LiveSyntaxHighlightingPlugin
Added: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/ (with props) bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/__init__.py (with props) bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/bhlivesyntaxhighlight.py (with props) bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/codemirror.css (with props) bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/wikimarkup.css (with props) bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/js/ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/js/codemirror.js (with props) bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/js/livesyntaxhighlight.js (with props) bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/js/wikimarkup.js (with props) bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/templates/ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/setup.py (with props) Modified: bloodhound/branches/livesyntaxhighlighting/ (props changed) bloodhound/branches/livesyntaxhighlighting/.gitignore Propchange: bloodhound/branches/livesyntaxhighlighting/ ------------------------------------------------------------------------------ --- svn:global-ignores (added) +++ svn:global-ignores Wed Sep 18 09:36:49 2013 @@ -0,0 +1 @@ +tracdeveloperplugin Modified: bloodhound/branches/livesyntaxhighlighting/.gitignore URL: http://svn.apache.org/viewvc/bloodhound/branches/livesyntaxhighlighting/.gitignore?rev=1524352&r1=1524351&r2=1524352&view=diff ============================================================================== --- bloodhound/branches/livesyntaxhighlighting/.gitignore (original) +++ bloodhound/branches/livesyntaxhighlighting/.gitignore Wed Sep 18 09:36:49 2013 @@ -6,3 +6,4 @@ *.rej .svn installer/bloodhound +tracdeveloperplugin \ No newline at end of file Propchange: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/ ------------------------------------------------------------------------------ --- svn:global-ignores (added) +++ svn:global-ignores Wed Sep 18 09:36:49 2013 @@ -0,0 +1,3 @@ +*.codeintel +*.sublime-project +*.sublime-workspace Added: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/__init__.py URL: http://svn.apache.org/viewvc/bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/__init__.py?rev=1524352&view=auto ============================================================================== --- bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/__init__.py (added) +++ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/__init__.py Wed Sep 18 09:36:49 2013 @@ -0,0 +1,16 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. \ No newline at end of file Propchange: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/__init__.py ------------------------------------------------------------------------------ svn:eol-style = native Added: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/bhlivesyntaxhighlight.py URL: http://svn.apache.org/viewvc/bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/bhlivesyntaxhighlight.py?rev=1524352&view=auto ============================================================================== --- bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/bhlivesyntaxhighlight.py (added) +++ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/bhlivesyntaxhighlight.py Wed Sep 18 09:36:49 2013 @@ -0,0 +1,68 @@ +import pkg_resources +import re + +from trac.core import * +from trac.util.html import html +from trac.web.api import IRequestFilter +from trac.web.chrome import ITemplateProvider, add_stylesheet,add_script + +class LiveSyntaxHighlightingPlugin(Component): + implements (IRequestFilter, ITemplateProvider) + + ### IRequestFilter methods + + ### Future implementation ### + # def match_request(self, req): + # if re.match(r'.*?(/wiki/)', req.path_info) or re.match(r'/wiki/', + # req.path_info): + # if req.args['action'] == "edit": + # return True + + def pre_process_request(self, req, handler): + return handler + + def post_process_request(self, req, template, data, content_type): + flag = False + if re.match(r'.*?(/wiki/)', req.path_info) or re.match(r'/wiki/', + req.path_info): + if req.args['action'] == "edit": + flag = True + + if flag: + + ### Future implementation ### + # defaults = {} + # prefs = dict((key, req.session.get('wiki_%s' % key, defaults.get(key))) + # for key in ('editrows','sidebyside','livesyntaxhighlight')) + # if 'from_editor' in req.args: + # livesyntaxhighlight = req.args.get('livesyntaxhighlight') or None + # if livesyntaxhighlight != prefs['livesyntaxhighlight']: + # req.session.set('wiki_livesyntaxhighlight', + # int(bool(livesyntaxhighlight)), 1) + # else: + # livesyntaxhighlight = prefs['livesyntaxhighlight'] + # if livesyntaxhighlight: + add_script(req, 'livesyntaxhighlight/js/codemirror.js') + add_script(req, 'livesyntaxhighlight/js/wikimarkup.js') + add_stylesheet(req, 'livesyntaxhighlight/css/codemirror.css') + add_stylesheet(req, 'livesyntaxhighlight/css/wikimarkup.css') + add_script(req, "livesyntaxhighlight/js/livesyntaxhighlight.js") + + ### Future implementation ### + # data.update({'livesyntaxhighlight', livesyntaxhighlight}) + # self.env.log(data) + # self.env.log(template) + return template, data, content_type + else: + self.log.debug("Condition not satisfied ") + return template, data, content_type + + + ### ITemplateProvider methods + def get_templates_dirs(self): + resource_filename = pkg_resources.resource_filename + return [resource_filename('bhlivesyntaxhighlight', 'templates')] + + def get_htdocs_dirs(self): + resource_filename = pkg_resources.resource_filename + return [('livesyntaxhighlight', resource_filename('bhlivesyntaxhighlight', 'htdocs'))] \ No newline at end of file Propchange: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/bhlivesyntaxhighlight.py ------------------------------------------------------------------------------ svn:eol-style = native Added: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/codemirror.css URL: http://svn.apache.org/viewvc/bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/codemirror.css?rev=1524352&view=auto ============================================================================== --- bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/codemirror.css (added) +++ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/codemirror.css Wed Sep 18 09:36:49 2013 @@ -0,0 +1,259 @@ +/* BASICS */ + +.CodeMirror { + /* Set height, width, borders, and global font properties here */ + font-family: monospace; + height: 300px; +} +.CodeMirror-scroll { + /* Set scrolling behaviour here */ + overflow: auto; +} + +/* PADDING */ + +.CodeMirror-lines { + padding: 4px 0; /* Vertical padding around content */ +} +.CodeMirror pre { + padding: 0 4px; /* Horizontal padding of content */ +} + +.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + background-color: white; /* The little square between H and V scrollbars */ +} + +/* GUTTER */ + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; + white-space: nowrap; +} +.CodeMirror-linenumbers {} +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; +} + +/* CURSOR */ + +.CodeMirror div.CodeMirror-cursor { + border-left: 1px solid black; + z-index: 3; +} +/* Shown when moving in bi-directional text */ +.CodeMirror div.CodeMirror-secondarycursor { + border-left: 1px solid silver; +} +.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor { + width: auto; + border: 0; + background: #7e7; + z-index: 1; +} +/* Can style cursor different in overwrite (non-insert) mode */ +.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {} + +.cm-tab { display: inline-block; } + +/* DEFAULT THEME */ + +.cm-s-default .cm-keyword {color: #708;} +.cm-s-default .cm-atom {color: #219;} +.cm-s-default .cm-number {color: #164;} +.cm-s-default .cm-def {color: #00f;} +.cm-s-default .cm-variable {color: black;} +.cm-s-default .cm-variable-2 {color: #05a;} +.cm-s-default .cm-variable-3 {color: #085;} +.cm-s-default .cm-property {color: black;} +.cm-s-default .cm-operator {color: black;} +.cm-s-default .cm-comment {color: #a50;} +.cm-s-default .cm-string {color: #a11;} +.cm-s-default .cm-string-2 {color: #f50;} +.cm-s-default .cm-meta {color: #555;} +.cm-s-default .cm-error {color: #f00;} +.cm-s-default .cm-qualifier {color: #555;} +.cm-s-default .cm-builtin {color: #30a;} +.cm-s-default .cm-bracket {color: #997;} +.cm-s-default .cm-tag {color: #170;} +.cm-s-default .cm-attribute {color: #00c;} +.cm-s-default .cm-header {color: blue;} +.cm-s-default .cm-quote {color: #090;} +.cm-s-default .cm-hr {color: #999;} +.cm-s-default .cm-link {color: #00c;} + +.cm-negative {color: #d44;} +.cm-positive {color: #292;} +.cm-header, .cm-strong {font-weight: bold;} +.cm-em {font-style: italic;} +.cm-link {text-decoration: underline;} + +.cm-invalidchar {color: #f00;} + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} +.CodeMirror-activeline-background {background: #e8f2ff;} + +/* STOP */ + +/* The rest of this file contains styles related to the mechanics of + the editor. You probably shouldn't touch them. */ + +.CodeMirror { + line-height: 1; + position: relative; + overflow: hidden; + background: white; + color: black; +} + +.CodeMirror-scroll { + /* 30px is the magic margin used to hide the element's real scrollbars */ + /* See overflow: hidden in .CodeMirror */ + margin-bottom: -30px; margin-right: -30px; + padding-bottom: 30px; padding-right: 30px; + height: 100%; + outline: none; /* Prevent dragging from highlighting the element */ + position: relative; +} +.CodeMirror-sizer { + position: relative; +} + +/* The fake, visible scrollbars. Used to force redraw during scrolling + before actuall scrolling happens, thus preventing shaking and + flickering artifacts. */ +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { + position: absolute; + z-index: 6; + display: none; +} +.CodeMirror-vscrollbar { + right: 0; top: 0; + overflow-x: hidden; + overflow-y: scroll; +} +.CodeMirror-hscrollbar { + bottom: 0; left: 0; + overflow-y: hidden; + overflow-x: scroll; +} +.CodeMirror-scrollbar-filler { + right: 0; bottom: 0; +} +.CodeMirror-gutter-filler { + left: 0; bottom: 0; +} + +.CodeMirror-gutters { + position: absolute; left: 0; top: 0; + padding-bottom: 30px; + z-index: 3; +} +.CodeMirror-gutter { + white-space: normal; + height: 100%; + padding-bottom: 30px; + margin-bottom: -32px; + display: inline-block; + /* Hack to make IE7 behave */ + *zoom:1; + *display:inline; +} +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4; +} + +.CodeMirror-lines { + cursor: text; +} +.CodeMirror pre { + /* Reset some styles that the rest of the page might have set */ + -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; + border-width: 0; + background: transparent; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible; +} +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} +.CodeMirror-code pre { + border-right: 30px solid transparent; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; +} +.CodeMirror-wrap .CodeMirror-code pre { + border-right: none; + width: auto; +} +.CodeMirror-linebackground { + position: absolute; + left: 0; right: 0; top: 0; bottom: 0; + z-index: 0; +} + +.CodeMirror-linewidget { + position: relative; + z-index: 2; + overflow: auto; +} + +.CodeMirror-widget {} + +.CodeMirror-wrap .CodeMirror-scroll { + overflow-x: hidden; +} + +.CodeMirror-measure { + position: absolute; + width: 100%; + height: 0; + overflow: hidden; + visibility: hidden; +} +.CodeMirror-measure pre { position: static; } + +.CodeMirror div.CodeMirror-cursor { + position: absolute; + visibility: hidden; + border-right: none; + width: 0; +} +.CodeMirror-focused div.CodeMirror-cursor { + visibility: visible; +} + +.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } + +.cm-searching { + background: #ffa; + background: rgba(255, 255, 0, .4); +} + +/* IE7 hack to prevent it from returning funny offsetTops on the spans */ +.CodeMirror span { *vertical-align: text-bottom; } + +@media print { + /* Hide the cursor when printing */ + .CodeMirror div.CodeMirror-cursor { + visibility: hidden; + } +} Propchange: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/codemirror.css ------------------------------------------------------------------------------ svn:eol-style = native Added: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/wikimarkup.css URL: http://svn.apache.org/viewvc/bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/wikimarkup.css?rev=1524352&view=auto ============================================================================== --- bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/wikimarkup.css (added) +++ bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/wikimarkup.css Wed Sep 18 09:36:49 2013 @@ -0,0 +1,48 @@ +.cm-wm-syntaxerror { + color: #FFF; + background-color: #900; +} + +.cm-wm-deleted { + text-decoration: line-through; +} + + +.cm-wm-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ + padding-left: 10px; +} + +.cm-wm-box { + border-top-width: 0px ! important; + border-style: solid; + border-width: 1px; + border-color: inherit; +} + +.cm-wm-underline { + text-decoration: underline; +} + +.cm-wm-superscript{ + vertical-align: super; + font-size: 8px; +} +.cm-wm-subscript{ + vertical-align: sub; + font-size: 8px; +} +.cm-wm-header1{ + font-size: 2em; /* font size of h1 tag according to w3c*/ + font-weight: bold; +} +.cm-wm-header2{ + font-size: 1.5em; /* font size of h2 tag according to w3c*/ + font-weight: bold; +} +.cm-wm-header3{ + font-size: 1.17em; /* font size of h3 tag according to w3c*/ + font-weight: bold; +} +.cm-wm-header5 { + font-weight: bold; +} \ No newline at end of file Propchange: bloodhound/branches/livesyntaxhighlighting/bloodhound_livesyntaxhighlighting/bhlivesyntaxhighlight/htdocs/css/wikimarkup.css ------------------------------------------------------------------------------ svn:eol-style = native