parent
01cb0ea656
commit
907dafd366
@ -0,0 +1,4 @@ |
||||
@import './markdown' |
||||
@import './ckeditor' |
||||
@import './macros' |
||||
@import './rouge' |
@ -0,0 +1,22 @@ |
||||
// Specific styles for displaying rendered markdown on all pages |
||||
// This is still selected by div.wiki since this is still used throughout the app. |
||||
|
||||
div.wiki |
||||
|
||||
// Style pre tags alone |
||||
pre |
||||
margin: 1em 1em 1em 1.6em |
||||
padding: 2px 2px 2px 0 |
||||
background-color: #fafafa |
||||
border: 1px solid #dadada |
||||
width: auto |
||||
overflow-x: auto |
||||
overflow-y: hidden |
||||
|
||||
// Avoid doubling borders in pre > code |
||||
pre > code |
||||
display: block |
||||
border: none |
||||
background: transparent |
||||
color: initial |
||||
|
@ -0,0 +1,206 @@ |
||||
.highlight table td { padding: 5px; } |
||||
.highlight table pre { margin: 0; } |
||||
.highlight .cm { |
||||
color: #999988; |
||||
font-style: italic; |
||||
} |
||||
.highlight .cp { |
||||
color: #999999; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .c1 { |
||||
color: #999988; |
||||
font-style: italic; |
||||
} |
||||
.highlight .cs { |
||||
color: #999999; |
||||
font-weight: bold; |
||||
font-style: italic; |
||||
} |
||||
.highlight .c, .highlight .cd { |
||||
color: #999988; |
||||
font-style: italic; |
||||
} |
||||
.highlight .err { |
||||
color: #a61717; |
||||
background-color: #e3d2d2; |
||||
} |
||||
.highlight .gd { |
||||
color: #000000; |
||||
background-color: #ffdddd; |
||||
} |
||||
.highlight .ge { |
||||
color: #000000; |
||||
font-style: italic; |
||||
} |
||||
.highlight .gr { |
||||
color: #aa0000; |
||||
} |
||||
.highlight .gh { |
||||
color: #999999; |
||||
} |
||||
.highlight .gi { |
||||
color: #000000; |
||||
background-color: #ddffdd; |
||||
} |
||||
.highlight .go { |
||||
color: #888888; |
||||
} |
||||
.highlight .gp { |
||||
color: #555555; |
||||
} |
||||
.highlight .gs { |
||||
font-weight: bold; |
||||
} |
||||
.highlight .gu { |
||||
color: #aaaaaa; |
||||
} |
||||
.highlight .gt { |
||||
color: #aa0000; |
||||
} |
||||
.highlight .kc { |
||||
color: #000000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .kd { |
||||
color: #000000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .kn { |
||||
color: #000000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .kp { |
||||
color: #000000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .kr { |
||||
color: #000000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .kt { |
||||
color: #445588; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .k, .highlight .kv { |
||||
color: #000000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .mf { |
||||
color: #009999; |
||||
} |
||||
.highlight .mh { |
||||
color: #009999; |
||||
} |
||||
.highlight .il { |
||||
color: #009999; |
||||
} |
||||
.highlight .mi { |
||||
color: #009999; |
||||
} |
||||
.highlight .mo { |
||||
color: #009999; |
||||
} |
||||
.highlight .m, .highlight .mb, .highlight .mx { |
||||
color: #009999; |
||||
} |
||||
.highlight .sb { |
||||
color: #d14; |
||||
} |
||||
.highlight .sc { |
||||
color: #d14; |
||||
} |
||||
.highlight .sd { |
||||
color: #d14; |
||||
} |
||||
.highlight .s2 { |
||||
color: #d14; |
||||
} |
||||
.highlight .se { |
||||
color: #d14; |
||||
} |
||||
.highlight .sh { |
||||
color: #d14; |
||||
} |
||||
.highlight .si { |
||||
color: #d14; |
||||
} |
||||
.highlight .sx { |
||||
color: #d14; |
||||
} |
||||
.highlight .sr { |
||||
color: #009926; |
||||
} |
||||
.highlight .s1 { |
||||
color: #d14; |
||||
} |
||||
.highlight .ss { |
||||
color: #990073; |
||||
} |
||||
.highlight .s { |
||||
color: #d14; |
||||
} |
||||
.highlight .na { |
||||
color: #008080; |
||||
} |
||||
.highlight .bp { |
||||
color: #999999; |
||||
} |
||||
.highlight .nb { |
||||
color: #0086B3; |
||||
} |
||||
.highlight .nc { |
||||
color: #445588; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .no { |
||||
color: #008080; |
||||
} |
||||
.highlight .nd { |
||||
color: #3c5d5d; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .ni { |
||||
color: #800080; |
||||
} |
||||
.highlight .ne { |
||||
color: #990000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .nf { |
||||
color: #990000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .nl { |
||||
color: #990000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .nn { |
||||
color: #555555; |
||||
} |
||||
.highlight .nt { |
||||
color: #000080; |
||||
} |
||||
.highlight .vc { |
||||
color: #008080; |
||||
} |
||||
.highlight .vg { |
||||
color: #008080; |
||||
} |
||||
.highlight .vi { |
||||
color: #008080; |
||||
} |
||||
.highlight .nv { |
||||
color: #008080; |
||||
} |
||||
.highlight .ow { |
||||
color: #000000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .o { |
||||
color: #000000; |
||||
font-weight: bold; |
||||
} |
||||
.highlight .w { |
||||
color: #bbbbbb; |
||||
} |
@ -1,175 +0,0 @@ |
||||
/*-- copyright |
||||
OpenProject is a project management system. |
||||
Copyright (C) 2012-2015 the OpenProject Foundation (OPF) |
||||
|
||||
This program is free software; you can redistribute it and/or |
||||
modify it under the terms of the GNU General Public License version 3. |
||||
|
||||
OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
||||
Copyright (C) 2006-2013 Jean-Philippe Lang |
||||
Copyright (C) 2010-2013 the ChiliProject Team |
||||
|
||||
This program is free software; you can redistribute it and/or |
||||
modify it under the terms of the GNU General Public License |
||||
as published by the Free Software Foundation; either version 2 |
||||
of the License, or (at your option) any later version. |
||||
|
||||
This program is distributed in the hope that it will be useful, |
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
GNU General Public License for more details. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with this program; if not, write to the Free Software |
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||
|
||||
See doc/COPYRIGHT.rdoc for more details. |
||||
|
||||
++*/ |
||||
|
||||
.CodeRay { |
||||
background-color: hsl(0,0%,95%); |
||||
// border: 1px solid silver; |
||||
color: black; |
||||
} |
||||
.CodeRay pre { |
||||
margin: 0px; |
||||
} |
||||
|
||||
// Inline-block style for span.CodeRay |
||||
code.CodeRay { |
||||
display: inline-block; |
||||
} |
||||
|
||||
// Block style for code in pre |
||||
pre code.CodeRay { |
||||
display: block; |
||||
// Pre has its own border, so hide coderay's here. |
||||
border: none; |
||||
} |
||||
|
||||
.CodeRay span { |
||||
display: inline-block; |
||||
} |
||||
|
||||
span.CodeRay { white-space: pre; border: 0px; padding: 2px; } |
||||
|
||||
table.CodeRay { border-collapse: collapse; width: 100%; padding: 2px; } |
||||
table.CodeRay td { padding: 2px 4px; vertical-align: top; } |
||||
|
||||
.CodeRay .line-numbers { |
||||
background-color: hsl(180,65%,90%); |
||||
color: gray; |
||||
text-align: right; |
||||
-webkit-user-select: none; |
||||
-moz-user-select: none; |
||||
user-select: none; |
||||
} |
||||
.CodeRay .line-numbers a { |
||||
background-color: hsl(180,65%,90%) !important; |
||||
color: gray !important; |
||||
text-decoration: none !important; |
||||
} |
||||
.CodeRay .line-numbers pre { |
||||
word-break: normal; |
||||
} |
||||
.CodeRay .line-numbers a:target { color: blue !important; } |
||||
.CodeRay .line-numbers .highlighted { color: red !important; } |
||||
.CodeRay .line-numbers .highlighted a { color: red !important; } |
||||
.CodeRay span.line-numbers { padding: 0px 4px; } |
||||
.CodeRay .line { display: block; float: left; width: 100%; } |
||||
.CodeRay .code { width: 100%; } |
||||
|
||||
.CodeRay .debug { color: white !important; background: blue !important; } |
||||
|
||||
.CodeRay .annotation { color:#007 } |
||||
.CodeRay .attribute-name { color:#b48 } |
||||
.CodeRay .attribute-value { color:#700 } |
||||
.CodeRay .binary { color:#549 } |
||||
.CodeRay .binary .char { color:#325 } |
||||
.CodeRay .binary .delimiter { color:#325 } |
||||
.CodeRay .char { color:#D20 } |
||||
.CodeRay .char .content { color:#D20 } |
||||
.CodeRay .char .delimiter { color:#710 } |
||||
.CodeRay .class { color:#B06; font-weight:bold } |
||||
.CodeRay .class-variable { color:#369 } |
||||
.CodeRay .color { color:#0A0 } |
||||
.CodeRay .comment { color:#777 } |
||||
.CodeRay .comment .char { color:#444 } |
||||
.CodeRay .comment .delimiter { color:#444 } |
||||
.CodeRay .constant { color:#036; font-weight:bold } |
||||
.CodeRay .decorator { color:#B0B } |
||||
.CodeRay .definition { color:#099; font-weight:bold } |
||||
.CodeRay .delimiter { color:black } |
||||
.CodeRay .directive { color:#088; font-weight:bold } |
||||
.CodeRay .docstring { color:#D42; } |
||||
.CodeRay .doctype { color:#34b } |
||||
.CodeRay .done { text-decoration: line-through; color: gray } |
||||
.CodeRay .entity { color:#800; font-weight:bold } |
||||
.CodeRay .error { color:#F00; background-color:#FAA } |
||||
.CodeRay .escape { color:#666 } |
||||
.CodeRay .exception { color:#C00; font-weight:bold } |
||||
.CodeRay .float { color:#60E } |
||||
.CodeRay .function { color:#06B; font-weight:bold } |
||||
.CodeRay .function .delimiter { color:#024; font-weight:bold } |
||||
.CodeRay .global-variable { color:#d70 } |
||||
.CodeRay .hex { color:#02b } |
||||
.CodeRay .id { color:#33D; font-weight:bold } |
||||
.CodeRay .include { color:#B44; font-weight:bold } |
||||
.CodeRay .inline { background-color: hsla(0,0%,0%,0.07); color: black } |
||||
.CodeRay .inline-delimiter { font-weight: bold; color: #666 } |
||||
.CodeRay .instance-variable { color:#33B } |
||||
.CodeRay .integer { color:#00D } |
||||
.CodeRay .imaginary { color:#f00 } |
||||
.CodeRay .important { color:#D00 } |
||||
.CodeRay .key { color: #606 } |
||||
.CodeRay .key .char { color: #60f } |
||||
.CodeRay .key .delimiter { color: #404 } |
||||
.CodeRay .keyword { color:#080; font-weight:bold } |
||||
.CodeRay .label { color:#970; font-weight:bold } |
||||
.CodeRay .local-variable { color:#950 } |
||||
.CodeRay .map .content { color:#808 } |
||||
.CodeRay .map .delimiter { color:#40A} |
||||
.CodeRay .map { background-color:hsla(200,100%,50%,0.06); } |
||||
.CodeRay .namespace { color:#707; font-weight:bold } |
||||
.CodeRay .octal { color:#40E } |
||||
.CodeRay .operator { } |
||||
.CodeRay .predefined { color:#369; font-weight:bold } |
||||
.CodeRay .predefined-constant { color:#069 } |
||||
.CodeRay .predefined-type { color:#0a8; font-weight:bold } |
||||
.CodeRay .preprocessor { color:#579 } |
||||
.CodeRay .pseudo-class { color:#00C; font-weight:bold } |
||||
.CodeRay .regexp { background-color:hsla(300,100%,50%,0.06); } |
||||
.CodeRay .regexp .content { color:#808 } |
||||
.CodeRay .regexp .delimiter { color:#404 } |
||||
.CodeRay .regexp .modifier { color:#C2C } |
||||
.CodeRay .reserved { color:#080; font-weight:bold } |
||||
.CodeRay .shell { background-color:hsla(120,100%,50%,0.06); } |
||||
.CodeRay .shell .content { color:#2B2 } |
||||
.CodeRay .shell .delimiter { color:#161 } |
||||
.CodeRay .string { background-color:hsla(0,100%,50%,0.05); } |
||||
.CodeRay .string .char { color: #b0b } |
||||
.CodeRay .string .content { color: #D20 } |
||||
.CodeRay .string .delimiter { color: #710 } |
||||
.CodeRay .string .modifier { color: #E40 } |
||||
.CodeRay .symbol { color:#A60 } |
||||
.CodeRay .symbol .content { color:#A60 } |
||||
.CodeRay .symbol .delimiter { color:#740 } |
||||
.CodeRay .tag { color:#070; font-weight:bold } |
||||
.CodeRay .type { color:#339; font-weight:bold } |
||||
.CodeRay .value { color: #088 } |
||||
.CodeRay .variable { color:#037 } |
||||
|
||||
.CodeRay .insert { background: hsla(120,100%,50%,0.12) } |
||||
.CodeRay .delete { background: hsla(0,100%,50%,0.12) } |
||||
.CodeRay .change { color: #bbf; background: #007 } |
||||
.CodeRay .head { color: #f8f; background: #505 } |
||||
.CodeRay .head .filename { color: white; } |
||||
|
||||
.CodeRay .delete .eyecatcher { background-color: hsla(0,100%,50%,0.2); border: 1px solid hsla(0,100%,45%,0.5); margin: -1px; border-bottom: none; border-top-left-radius: 5px; border-top-right-radius: 5px; } |
||||
.CodeRay .insert .eyecatcher { background-color: hsla(120,100%,50%,0.2); border: 1px solid hsla(120,100%,25%,0.5); margin: -1px; border-top: none; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; } |
||||
|
||||
.CodeRay .insert .insert { color: #0c0; background:transparent; font-weight:bold } |
||||
.CodeRay .delete .delete { color: #c00; background:transparent; font-weight:bold } |
||||
.CodeRay .change .change { color: #88f } |
||||
.CodeRay .head .head { color: #f4f } |
@ -0,0 +1,53 @@ |
||||
#-- encoding: UTF-8 |
||||
|
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# Copyright (C) 2012-2017 the OpenProject Foundation (OPF) |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: |
||||
# Copyright (C) 2006-2017 Jean-Philippe Lang |
||||
# Copyright (C) 2010-2013 the ChiliProject Team |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License |
||||
# as published by the Free Software Foundation; either version 2 |
||||
# of the License, or (at your option) any later version. |
||||
# |
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with this program; if not, write to the Free Software |
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
module OpenProject::TextFormatting |
||||
module Filters |
||||
class SyntaxHighlightFilter < HTML::Pipeline::SyntaxHighlightFilter |
||||
def initialize(*args) |
||||
super(*args) |
||||
|
||||
@formatter = highlighter_class |
||||
end |
||||
|
||||
## |
||||
# Get highlighter class for the current context |
||||
def highlighter_class |
||||
# Get syntax highlighting options. If we're in a CSS-constrained environment (i.e., mail), |
||||
# inline syntax highlighting. |
||||
if context[:inline_css] |
||||
Rouge::Formatters::HTMLInline.new Rouge::Themes::Github |
||||
else |
||||
Rouge::Formatters::HTML.new |
||||
end |
||||
end |
||||
end |
||||
end |
||||
end |
Loading…
Reference in new issue