質問編集履歴
1
途中経過の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,100 +40,26 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
+
### 途中経過
|
43
44
|
|
44
45
|
|
45
46
|
|
47
|
+
試したことformat withと正規表現を用いてバリデーションを試みました。
|
46
48
|
|
47
|
-
一応、html_safeを使っている記述です。
|
48
49
|
|
50
|
+
|
49
|
-
/app/
|
51
|
+
/app/models/post.rb
|
50
52
|
|
51
53
|
```ruby
|
52
54
|
|
53
|
-
|
55
|
+
validates :text, format: { with: ^(?!.*script).*$ }, presence: true
|
54
56
|
|
55
|
-
|
57
|
+
```
|
56
|
-
|
57
|
-
require 'rouge/plugins/redcarpet'
|
58
|
-
|
59
|
-
class HTMLwithCoderay < Redcarpet::Render::HTML
|
60
|
-
|
61
|
-
include Rouge::Plugins::Redcarpet
|
62
|
-
|
63
|
-
def block_code(code, language)
|
64
|
-
|
65
|
-
language = language.split(':')[0]
|
66
58
|
|
67
59
|
|
68
60
|
|
69
|
-
|
61
|
+
しかし結果はSyntaxエラーになります。
|
70
62
|
|
71
|
-
|
63
|
+
書き方が間違っているのかそもそもformat withの場合このようなバリデーションはかけられないため
|
72
64
|
|
73
|
-
lang = 'ruby'
|
74
|
-
|
75
|
-
when 'yml'
|
76
|
-
|
77
|
-
lang = 'yaml'
|
78
|
-
|
79
|
-
when 'css'
|
80
|
-
|
81
|
-
lang = 'css'
|
82
|
-
|
83
|
-
when 'html'
|
84
|
-
|
85
|
-
lang = 'html'
|
86
|
-
|
87
|
-
when ''
|
88
|
-
|
89
|
-
lang = 'md'
|
90
|
-
|
91
|
-
else
|
92
|
-
|
93
|
-
lang = language
|
94
|
-
|
95
|
-
end
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
CodeRay.scan(code, lang).div
|
100
|
-
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
@@markdown = Redcarpet::Markdown.new Redcarpet::Render::HTML,
|
108
|
-
|
109
|
-
autolink: true,
|
110
|
-
|
111
|
-
|
65
|
+
カスタムバリデーターを使った方が良いのか模索中です。
|
112
|
-
|
113
|
-
no_intra_emphasis: true,
|
114
|
-
|
115
|
-
fenced_code_blocks: true,
|
116
|
-
|
117
|
-
tables: true,
|
118
|
-
|
119
|
-
hard_wrap: true,
|
120
|
-
|
121
|
-
xhtml: true,
|
122
|
-
|
123
|
-
lax_html_blocks: true,
|
124
|
-
|
125
|
-
strikethrough: true,
|
126
|
-
|
127
|
-
fencedcodeblocks:true,
|
128
|
-
|
129
|
-
highlight: true
|
130
|
-
|
131
|
-
def html(markdown)
|
132
|
-
|
133
|
-
@@markdown.render(markdown).html_safe
|
134
|
-
|
135
|
-
end
|
136
|
-
|
137
|
-
end
|
138
|
-
|
139
|
-
```
|