Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
e7469805
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e7469805
编写于
8月 07, 2011
作者:
X
Xavier Noria
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
guides generation: apparently this workaround for RedCloth is not needed anymore
上级
e06db727
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
26 addition
and
47 deletion
+26
-47
railties/guides/rails_guides/generator.rb
railties/guides/rails_guides/generator.rb
+4
-44
railties/guides/rails_guides/textile_extensions.rb
railties/guides/rails_guides/textile_extensions.rb
+22
-3
未找到文件。
railties/guides/rails_guides/generator.rb
浏览文件 @
e7469805
...
...
@@ -199,50 +199,10 @@ def set_index(body, view)
end
def
textile
(
body
,
lite_mode
=
false
)
# If the issue with notextile is fixed just remove the wrapper.
with_workaround_for_notextile
(
body
)
do
|
body
|
t
=
RedCloth
.
new
(
body
)
t
.
hard_breaks
=
false
t
.
lite_mode
=
lite_mode
t
.
to_html
(
:notestuff
,
:plusplus
,
:code
)
end
end
# For some reason the notextile tag does not always turn off textile. See
# LH ticket of the security guide (#7). As a temporary workaround we deal
# with code blocks by hand.
def
with_workaround_for_notextile
(
body
)
code_blocks
=
[]
body
.
gsub!
(
%r{<(yaml|shell|ruby|erb|html|sql|plain)>(.*?)</
\1
>}m
)
do
|
m
|
brush
=
case
$1
when
'ruby'
,
'sql'
,
'plain'
$1
when
'erb'
'ruby; html-script: true'
when
'html'
'xml'
# html is understood, but there are .xml rules in the CSS
else
'plain'
end
code_blocks
.
push
(
<<
HTML
)
<notextile>
<div class="code_container">
<pre class="brush:
#{
brush
}
; gutter: false; toolbar: false">
#{
ERB
::
Util
.
h
(
$2
).
strip
}
</pre>
</div>
</notextile>
HTML
"
\n
dirty_workaround_for_notextile_
#{
code_blocks
.
size
-
1
}
\n
"
end
body
=
yield
body
body
.
gsub
(
%r{<p>dirty_workaround_for_notextile_(
\d
+)</p>}
)
do
|
_
|
code_blocks
[
$1
.
to_i
]
end
t
=
RedCloth
.
new
(
body
)
t
.
hard_breaks
=
false
t
.
lite_mode
=
lite_mode
t
.
to_html
(
:notestuff
,
:plusplus
,
:code
)
end
def
warn_about_broken_links
(
html
)
...
...
railties/guides/rails_guides/textile_extensions.rb
浏览文件 @
e7469805
...
...
@@ -33,11 +33,30 @@ def plusplus(body)
body
.
gsub!
(
'<plus>'
,
'+'
)
end
def
brush_for
(
code_type
)
case
code_type
when
'ruby'
,
'sql'
,
'plain'
code_type
when
'erb'
'ruby; html-script: true'
when
'html'
'xml'
# html is understood, but there are .xml rules in the CSS
else
'plain'
end
end
def
code
(
body
)
body
.
gsub!
(
%r{<(yaml|shell|ruby|erb|html|sql|plain)>(.*?)</
\1
>}m
)
do
|
m
|
es
=
ERB
::
Util
.
h
(
$2
)
css_class
=
$1
.
in?
([
'erb'
,
'shell'
])
?
'html'
:
$1
%{<notextile><div class="code_container"><code class="#{css_class}">#{es}</code></div></notextile>}
<<
HTML
<notextile>
<div class="code_container">
<pre class="brush:
#{
brush_for
(
$1
)
}
; gutter: false; toolbar: false">
#{
ERB
::
Util
.
h
(
$2
).
strip
}
</pre>
</div>
</notextile>
HTML
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录