teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

修正

2018/04/12 00:40

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  かくなる上は、城主寺尾守様に当評議御査収頂き、下々の声、何卒お聞き入れ頂くよう願い奉る次第。
18
18
 
19
- 最後に重ねて、皆の日々の勤勉に対し、謝辞を述べたし。
19
+ 最後に重ねて、皆の日々の勤勉に対し、謝辞を述ぶる
20
20
 
21
21
 
22
22
  ####補足

4

謝辞

2018/04/12 00:40

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -8,6 +8,17 @@
8
8
 
9
9
  そろそろポイントが貯まってきたので、有効活用させていただこうと存ずる。
10
10
 
11
+ ##謝辞
12
+
13
+ おのおのがた、大儀であらせられた。かねてよりの見出しドーンを心苦しう思われておられる皆々の心情、相分かった。
14
+
15
+ また、自動差保御人の誤りをご懸念されるのも尤も。されど、失敗を恐れていては技術の進歩はありえぬ。技士の名折れと心得よ。
16
+
17
+ かくなる上は、城主寺尾守様に当評議御査収頂き、下々の声、何卒お聞き入れ頂くよう願い奉る次第。
18
+
19
+ 最後に重ねて、皆の日々の勤勉に対し、謝辞を述べたし。
20
+
21
+
11
22
  ####補足
12
23
 
13
24
  いつも質問を根こそぎ削除され申すがため、此度こそはベストアンサーを選びとう御座る。

3

欠落した行の補完

2018/04/12 00:38

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -119,6 +119,8 @@
119
119
  if(line.trim().match(/^*/.*$/)) { return LINE_TYPE.COMMENT_END; }
120
120
 
121
121
  if(line.trim().match(/^#.+$/)) { return LINE_TYPE.COMMENT_START; }
122
+
123
+ if(line.trim().match(/^```.*$/)) { return LINE_TYPE.CODE_BLOCK; } // 欠落しておった
122
124
 
123
125
  // erase string literal
124
126
  line = line.replace(/"(.+)"/g, "");

2

いいだしっぺの法則

2018/04/11 07:34

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -10,4 +10,303 @@
10
10
 
11
11
  ####補足
12
12
 
13
- いつも質問を根こそぎ削除され申すがため、此度こそはベストアンサーを選びとう御座る。
13
+ いつも質問を根こそぎ削除され申すがため、此度こそはベストアンサーを選びとう御座る。
14
+
15
+
16
+ ####例
17
+
18
+ 老母を医者に送り迎えする傍ら、つらつらとコードなどを書いておった。
19
+
20
+ ```jQuery
21
+ $(function()
22
+ {
23
+ const LINE_TYPE = { WORD: 0, CODE: 1, BLANK: 2, CODE_BLOCK: 3, FOREIGN: 4, COMMENT_START: 5, COMMENT_END: 6 };
24
+
25
+ $("#confirm-button").on("click", function()
26
+ {
27
+ let content = $("#hoge").val();
28
+ let lines = content.split("\n");
29
+ let continually = 0;
30
+ let skip_code_block = false;
31
+ let start_code_block = false;
32
+ let start_comment_block = false;
33
+
34
+ for(let i = lines.length; i >= 0 ; i--)
35
+ {
36
+ let line_type = isCodeLine(lines[i], i);
37
+
38
+ switch(line_type)
39
+ {
40
+ case LINE_TYPE.FOREIGN:
41
+ if(!start_code_block)
42
+ {
43
+ lines[i] = "> " + lines[i];
44
+ break;
45
+ }
46
+
47
+ case LINE_TYPE.COMMENT_START:
48
+ case LINE_TYPE.COMMENT_END:
49
+ if(line_type == LINE_TYPE.COMMENT_START) { start_comment_block = false; }
50
+ if(line_type == LINE_TYPE.COMMENT_END) { start_comment_block = true; }
51
+
52
+ case LINE_TYPE.BLANK:
53
+ if(!start_code_block){ break; }
54
+
55
+ case LINE_TYPE.CODE:
56
+ if(!skip_code_block)
57
+ {
58
+ continually++;
59
+ start_code_block = true;
60
+ }
61
+ break;
62
+
63
+ case LINE_TYPE.CODE_BLOCK:
64
+ skip_code_block != skip_code_block;
65
+
66
+ break;
67
+
68
+ case LINE_TYPE.WORD:
69
+ if(start_comment_block)
70
+ {
71
+ if(!skip_code_block)
72
+ {
73
+ continually++;
74
+ start_code_block = true;
75
+ }
76
+ break;
77
+ }
78
+
79
+ start_code_block = false;
80
+ if(continually < 5) { continue; }
81
+
82
+ // コードブロックでラップ
83
+ let target = i + 1;
84
+ lines.splice(target + continually, 0, "```\n");
85
+ if(lines[target].trim() == "") { target++; }
86
+ lines.splice(target, 0, "```何のコードですか?\n");
87
+
88
+ continually = 0;
89
+
90
+ break;
91
+ }
92
+ }
93
+
94
+
95
+ // 確認ウィンドウ表示
96
+
97
+ let html = parseMarkdown(lines);
98
+
99
+ let button = $("<button/>").attr("id", "submit-button").html("投稿する");
100
+ let control = $("<div/>").addClass("controls").append(button);
101
+ let preview = $("<div/>").addClass("preview").append(html);
102
+ let outer = $("<div/>").addClass("shadow").append(preview).append(control);
103
+
104
+ $("body").append(outer);
105
+ $("input.code-tag").on("focus", function()
106
+ {
107
+ clearInterval(timer);
108
+ $(this).css("background-color", "#fff").css("opacity", 1);
109
+ });
110
+ });
111
+
112
+ function isCodeLine(line, i)
113
+ {
114
+ if(line === undefined) { return LINE_TYPE.WORD; }
115
+ if(line.trim().length == 0) { return LINE_TYPE.BLANK; }
116
+
117
+ if(line.trim().match(/^//.*$/)) { return LINE_TYPE.COMMENT_START; }
118
+ if(line.trim().match(/^/*.*$/)) { return LINE_TYPE.COMMENT_START; }
119
+ if(line.trim().match(/^*/.*$/)) { return LINE_TYPE.COMMENT_END; }
120
+
121
+ if(line.trim().match(/^#.+$/)) { return LINE_TYPE.COMMENT_START; }
122
+
123
+ // erase string literal
124
+ line = line.replace(/"(.+)"/g, "");
125
+ line = line.replace(/'(.+)'/g, "");
126
+
127
+ let all_charactors = line.length;
128
+ var alpha_numerics = 0;
129
+
130
+ line.split("").forEach(function(value)
131
+ {
132
+ alpha_numerics += (value.match(/[a-zA-Z0-9 \"'`/#%&$.,:;<>()[]{}\t]/))? 1 : 0;
133
+ });
134
+
135
+ let alpha_numeric_ratio = alpha_numerics / all_charactors;
136
+
137
+ if(isForeginLanguage(line, alpha_numeric_ratio)) { return LINE_TYPE.FOREIGN; }
138
+ if(alpha_numeric_ratio > 0.75) { return LINE_TYPE.CODE; }
139
+
140
+ return LINE_TYPE.WORD;
141
+ }
142
+
143
+ function isForeginLanguage(line, alpha_numeric_ratio)
144
+ {
145
+ if(alpha_numeric_ratio < 0.95) { return false; }
146
+ if(line.trim().match(/^.+[.,!?]$/)) { return true; }
147
+ if(line.length < 40) { return false; }
148
+ return false;
149
+ }
150
+
151
+ ///////////////////////////////////////////////////
152
+ //
153
+ // ここから適当
154
+
155
+ function parseMarkdown(lines)
156
+ {
157
+ let html = "";
158
+
159
+ for(let i in lines)
160
+ {
161
+ lines[i] = lines[i].replace(/</g, "&lt;");
162
+ lines[i] = lines[i].replace(/>/g, "&gt;");
163
+ if(lines[i].trim().match(/^&gt; .+$/)){ lines[i] = lines[i].replace(/^&gt; (.+)$/ ,"<blockquote>$1</blockquote>"); }
164
+ html += lines[i] + "\n";
165
+ }
166
+
167
+ let result = html.replace(/```(.*)\n([^`]+)```/g, "<br><input type='text' class='code-tag' placeholder='$1'></span><pre>$2</pre>");
168
+
169
+ return result;
170
+ }
171
+
172
+ let timer;
173
+ let angle = 0;
174
+
175
+ timer = setInterval(function()
176
+ {
177
+ let radian = angle * (Math.PI / 180) / 2;
178
+ angle += 20;
179
+ if(angle >= 180) { angle -= 180; }
180
+
181
+ $("input.code-tag").css("opacity", Math.sin(radian) + 0.5);
182
+
183
+ }, 150);
184
+ });
185
+ ```
186
+
187
+ ```HTML
188
+ <!DOCTYPE html>
189
+ <html>
190
+ <head>
191
+ <title>TODO supply a title</title>
192
+ <meta charset="UTF-8">
193
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
194
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
195
+ <script src="./markdown.js"></script>
196
+ <style>
197
+
198
+ html {
199
+ height: 100%;
200
+ }
201
+
202
+ body {
203
+ height: 100%;
204
+ margin: 0;
205
+ }
206
+
207
+ textarea {
208
+ width: 640px;
209
+ height: 640px;
210
+ margin: 0px;
211
+ }
212
+
213
+ div.pane {
214
+ float: left;
215
+ margin: 4px;
216
+ padding: 0px;
217
+ width: 640px;
218
+ height: 640px;
219
+ border: solid 1px #efefef;
220
+ }
221
+
222
+ div.shadow {
223
+ box-sizing: border-box;
224
+ position: absolute;
225
+ width: 100%;
226
+ height: 100%;
227
+ top: 0px;
228
+ left: 0px;
229
+ background-color: rgba(0,0,0, 0.75);
230
+ text-align: center;
231
+ }
232
+
233
+ div.controls {
234
+ clear: both;
235
+ box-sizing: border-box;
236
+ padding: 12px 4px;
237
+ text-align: center;
238
+ }
239
+
240
+ div.preview {
241
+ display: inline-block;
242
+ text-align: left;
243
+ width: 95%;
244
+ margin-top: 20px;
245
+ padding: 10px;
246
+ left: 10px;
247
+ top: 10px;
248
+ background-color: #fefefe;
249
+ }
250
+
251
+ pre {
252
+ box-sizing: border-box;
253
+ border: solid 1px #efefef;
254
+ margin: 5px 10px 20px 10px;
255
+ padding: 10px;
256
+ font-weight: bold;
257
+ }
258
+
259
+ blockquote {
260
+ border-left: solid 4px #aaa;
261
+ padding-left: 10px;
262
+ }
263
+
264
+ input.code-tag {
265
+ clear: both;
266
+ margin-top: 20px;
267
+ margin-left: 10px;
268
+ background-color: #ff9999;
269
+ }
270
+
271
+ </style>
272
+ </head>
273
+ <body>
274
+ <div id="content-pane" class="pane">
275
+ <textarea id="hoge" name="hoge" class="hoge">
276
+ 以下のコードが全く動かないんですが、なんとかしてください。
277
+
278
+ #include <studio.h>
279
+ #include <stdlib.h>
280
+ #include <math.h>
281
+
282
+ /*
283
+ * ここからがメイン関数です。
284
+ */
285
+ int main()
286
+ {
287
+ // メッセージを出力する
288
+ printf("Hello, world %d", add(2, 3));
289
+ }
290
+
291
+ /*
292
+ * かさーん。
293
+ */
294
+ int add(int a, int b)
295
+ {
296
+ return a + b;
297
+ }
298
+
299
+ The following error message appears. It seems to me like a bug. Are there any ways to fix this? The version I'm using is PHP 5.4.
300
+ というエラーメッセージが出ます。
301
+
302
+ もう、全然わかんないです。゚(゚´Д`゚)゚。
303
+ </textarea>
304
+ </div>
305
+
306
+ <div class="controls">
307
+ <button type="button" id="confirm-button">質問文を確認して投稿する</button>
308
+ </div>
309
+
310
+ </body>
311
+ </html>
312
+ ```

1

補足

2018/04/11 07:24

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -6,4 +6,8 @@
6
6
 
7
7
  良い方法が思いつかないのであれば、協力を惜しまない良き回答者も多かろうぞ。
8
8
 
9
- そろそろポイントが貯まってきたので、有効活用させていただこうと存ずる。
9
+ そろそろポイントが貯まってきたので、有効活用させていただこうと存ずる。
10
+
11
+ ####補足
12
+
13
+ いつも質問を根こそぎ削除され申すがため、此度こそはベストアンサーを選びとう御座る。