• R/O
  • SSH
  • HTTPS

blogs: コミット


コミットメタ情報

リビジョン85 (tree)
日時2019-01-25 19:32:50
作者hirukawa_ryo

ログメッセージ

IMPORT PROJECT: flexmark-ext-inline-tags

変更サマリ

差分

--- flexmark-ext-inline-tags/trunk/gradlew.bat (nonexistent)
+++ flexmark-ext-inline-tags/trunk/gradlew.bat (revision 85)
@@ -0,0 +1,84 @@
1+@if "%DEBUG%" == "" @echo off
2+@rem ##########################################################################
3+@rem
4+@rem Gradle startup script for Windows
5+@rem
6+@rem ##########################################################################
7+
8+@rem Set local scope for the variables with windows NT shell
9+if "%OS%"=="Windows_NT" setlocal
10+
11+set DIRNAME=%~dp0
12+if "%DIRNAME%" == "" set DIRNAME=.
13+set APP_BASE_NAME=%~n0
14+set APP_HOME=%DIRNAME%
15+
16+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17+set DEFAULT_JVM_OPTS=
18+
19+@rem Find java.exe
20+if defined JAVA_HOME goto findJavaFromJavaHome
21+
22+set JAVA_EXE=java.exe
23+%JAVA_EXE% -version >NUL 2>&1
24+if "%ERRORLEVEL%" == "0" goto init
25+
26+echo.
27+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28+echo.
29+echo Please set the JAVA_HOME variable in your environment to match the
30+echo location of your Java installation.
31+
32+goto fail
33+
34+:findJavaFromJavaHome
35+set JAVA_HOME=%JAVA_HOME:"=%
36+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37+
38+if exist "%JAVA_EXE%" goto init
39+
40+echo.
41+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42+echo.
43+echo Please set the JAVA_HOME variable in your environment to match the
44+echo location of your Java installation.
45+
46+goto fail
47+
48+:init
49+@rem Get command-line arguments, handling Windows variants
50+
51+if not "%OS%" == "Windows_NT" goto win9xME_args
52+
53+:win9xME_args
54+@rem Slurp the command line arguments.
55+set CMD_LINE_ARGS=
56+set _SKIP=2
57+
58+:win9xME_args_slurp
59+if "x%~1" == "x" goto execute
60+
61+set CMD_LINE_ARGS=%*
62+
63+:execute
64+@rem Setup the command line
65+
66+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67+
68+@rem Execute Gradle
69+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70+
71+:end
72+@rem End local scope for the variables with windows NT shell
73+if "%ERRORLEVEL%"=="0" goto mainEnd
74+
75+:fail
76+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77+rem the _cmd.exe /c_ return code!
78+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79+exit /b 1
80+
81+:mainEnd
82+if "%OS%"=="Windows_NT" endlocal
83+
84+:omega
--- flexmark-ext-inline-tags/trunk/javadoc.css (nonexistent)
+++ flexmark-ext-inline-tags/trunk/javadoc.css (revision 85)
@@ -0,0 +1,574 @@
1+/* Javadoc style sheet */
2+/*
3+Overall document style
4+*/
5+
6+@import url('resources/fonts/dejavu.css');
7+
8+body {
9+ background-color:#ffffff;
10+ color:#353833;
11+ font-family:Meiryo, "メイリオ", YuGothic, "Yu Gothic", "游ゴシック", Osaka, "MS PGothic", "MS Pゴシック", sans-serif;
12+ font-size:14px;
13+ margin:0;
14+}
15+a:link, a:visited {
16+ text-decoration:none;
17+ color:#4A6782;
18+}
19+a:hover, a:focus {
20+ text-decoration:none;
21+ color:#bb7a2a;
22+}
23+a:active {
24+ text-decoration:none;
25+ color:#4A6782;
26+}
27+a[name] {
28+ color:#353833;
29+}
30+a[name]:hover {
31+ text-decoration:none;
32+ color:#353833;
33+}
34+pre {
35+ font-family:MeiryoKe_Gothic, 'MigMix 1M', "MS Gothic", monospace;
36+ font-size:14px;
37+}
38+h1 {
39+ font-size:20px;
40+}
41+h2 {
42+ font-size:18px;
43+}
44+h3 {
45+ font-size:16px;
46+ font-style:italic;
47+}
48+h4 {
49+ font-size:13px;
50+}
51+h5 {
52+ font-size:12px;
53+}
54+h6 {
55+ font-size:11px;
56+}
57+ul {
58+ list-style-type:disc;
59+}
60+code, tt {
61+ font-family:MeiryoKe_Gothic, 'MigMix 1M', "MS Gothic", monospace;
62+ font-size:14px;
63+ padding-top:4px;
64+ margin-top:8px;
65+ line-height:1.4em;
66+}
67+dt code {
68+ font-family:MeiryoKe_Gothic, 'MigMix 1M', "MS Gothic", monospace;
69+ font-size:14px;
70+ padding-top:4px;
71+}
72+table tr td dt code {
73+ font-family:MeiryoKe_Gothic, 'MigMix 1M', "MS Gothic", monospace;
74+ font-size:14px;
75+ vertical-align:top;
76+ padding-top:4px;
77+}
78+sup {
79+ font-size:8px;
80+}
81+/*
82+Document title and Copyright styles
83+*/
84+.clear {
85+ clear:both;
86+ height:0px;
87+ overflow:hidden;
88+}
89+.aboutLanguage {
90+ float:right;
91+ padding:0px 21px;
92+ font-size:11px;
93+ z-index:200;
94+ margin-top:-9px;
95+}
96+.legalCopy {
97+ margin-left:.5em;
98+}
99+.bar a, .bar a:link, .bar a:visited, .bar a:active {
100+ color:#FFFFFF;
101+ text-decoration:none;
102+}
103+.bar a:hover, .bar a:focus {
104+ color:#bb7a2a;
105+}
106+.tab {
107+ background-color:#0066FF;
108+ color:#ffffff;
109+ padding:8px;
110+ width:5em;
111+ font-weight:bold;
112+}
113+/*
114+Navigation bar styles
115+*/
116+.bar {
117+ background-color:#4D7A97;
118+ color:#FFFFFF;
119+ padding:.8em .5em .4em .8em;
120+ height:auto;/*height:1.8em;*/
121+ font-size:11px;
122+ margin:0;
123+}
124+.topNav {
125+ background-color:#4D7A97;
126+ color:#FFFFFF;
127+ float:left;
128+ padding:0;
129+ width:100%;
130+ clear:right;
131+ height:2.8em;
132+ padding-top:10px;
133+ overflow:hidden;
134+ font-size:12px;
135+}
136+.bottomNav {
137+ margin-top:10px;
138+ background-color:#4D7A97;
139+ color:#FFFFFF;
140+ float:left;
141+ padding:0;
142+ width:100%;
143+ clear:right;
144+ height:2.8em;
145+ padding-top:10px;
146+ overflow:hidden;
147+ font-size:12px;
148+}
149+.subNav {
150+ background-color:#dee3e9;
151+ float:left;
152+ width:100%;
153+ overflow:hidden;
154+ font-size:12px;
155+}
156+.subNav div {
157+ clear:left;
158+ float:left;
159+ padding:0 0 5px 6px;
160+ text-transform:uppercase;
161+}
162+ul.navList, ul.subNavList {
163+ float:left;
164+ margin:0 25px 0 0;
165+ padding:0;
166+}
167+ul.navList li{
168+ list-style:none;
169+ float:left;
170+ padding: 5px 6px;
171+ text-transform:uppercase;
172+}
173+ul.subNavList li{
174+ list-style:none;
175+ float:left;
176+}
177+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
178+ color:#FFFFFF;
179+ text-decoration:none;
180+ text-transform:uppercase;
181+}
182+.topNav a:hover, .bottomNav a:hover {
183+ text-decoration:none;
184+ color:#bb7a2a;
185+ text-transform:uppercase;
186+}
187+.navBarCell1Rev {
188+ background-color:#F8981D;
189+ color:#253441;
190+ margin: auto 5px;
191+}
192+.skipNav {
193+ position:absolute;
194+ top:auto;
195+ left:-9999px;
196+ overflow:hidden;
197+}
198+/*
199+Page header and footer styles
200+*/
201+.header, .footer {
202+ clear:both;
203+ margin:0 20px;
204+ padding:5px 0 0 0;
205+}
206+.indexHeader {
207+ margin:10px;
208+ position:relative;
209+}
210+.indexHeader span{
211+ margin-right:15px;
212+}
213+.indexHeader h1 {
214+ font-size:13px;
215+}
216+.title {
217+ color:#2c4557;
218+ margin:10px 0;
219+}
220+.subTitle {
221+ margin:5px 0 0 0;
222+}
223+.header ul {
224+ margin:0 0 15px 0;
225+ padding:0;
226+}
227+.footer ul {
228+ margin:20px 0 5px 0;
229+}
230+.header ul li, .footer ul li {
231+ list-style:none;
232+ font-size:13px;
233+}
234+/*
235+Heading styles
236+*/
237+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
238+ background-color:#dee3e9;
239+ border:1px solid #d0d9e0;
240+ margin:0 0 6px -8px;
241+ padding:7px 5px;
242+}
243+ul.blockList ul.blockList ul.blockList li.blockList h3 {
244+ background-color:#dee3e9;
245+ border:1px solid #d0d9e0;
246+ margin:0 0 6px -8px;
247+ padding:7px 5px;
248+}
249+ul.blockList ul.blockList li.blockList h3 {
250+ padding:0;
251+ margin:15px 0;
252+}
253+ul.blockList li.blockList h2 {
254+ padding:0px 0 20px 0;
255+}
256+/*
257+Page layout container styles
258+*/
259+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
260+ clear:both;
261+ padding:10px 20px;
262+ position:relative;
263+}
264+.indexContainer {
265+ margin:10px;
266+ position:relative;
267+ font-size:12px;
268+}
269+.indexContainer h2 {
270+ font-size:13px;
271+ padding:0 0 3px 0;
272+}
273+.indexContainer ul {
274+ margin:0;
275+ padding:0;
276+}
277+.indexContainer ul li {
278+ list-style:none;
279+ padding-top:2px;
280+}
281+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
282+ font-size:12px;
283+ font-weight:bold;
284+ margin:10px 0 0 0;
285+ color:#4E4E4E;
286+}
287+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
288+ margin:5px 0 10px 0px;
289+ font-size:14px;
290+ font-family:MeiryoKe_Gothic, 'MigMix 1M', "MS Gothic", monospace;
291+}
292+.serializedFormContainer dl.nameValue dt {
293+ margin-left:1px;
294+ font-size:1.1em;
295+ display:inline;
296+ font-weight:bold;
297+}
298+.serializedFormContainer dl.nameValue dd {
299+ margin:0 0 0 1px;
300+ font-size:1.1em;
301+ display:inline;
302+}
303+/*
304+List styles
305+*/
306+ul.horizontal li {
307+ display:inline;
308+ font-size:0.9em;
309+}
310+ul.inheritance {
311+ margin:0;
312+ padding:0;
313+}
314+ul.inheritance li {
315+ display:inline;
316+ list-style:none;
317+}
318+ul.inheritance li ul.inheritance {
319+ margin-left:15px;
320+ padding-left:15px;
321+ padding-top:1px;
322+}
323+ul.blockList, ul.blockListLast {
324+ margin:10px 0 10px 0;
325+ padding:0;
326+}
327+ul.blockList li.blockList, ul.blockListLast li.blockList {
328+ list-style:none;
329+ margin-bottom:15px;
330+ line-height:1.4;
331+}
332+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
333+ padding:0px 20px 5px 10px;
334+ border:1px solid #ededed;
335+ background-color:#f8f8f8;
336+}
337+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
338+ padding:0 0 5px 8px;
339+ background-color:#ffffff;
340+ border:none;
341+}
342+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
343+ margin-left:0;
344+ padding-left:0;
345+ padding-bottom:15px;
346+ border:none;
347+}
348+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
349+ list-style:none;
350+ border-bottom:none;
351+ padding-bottom:0;
352+}
353+table tr td dl, table tr td dl dt, table tr td dl dd {
354+ margin-top:0;
355+ margin-bottom:1px;
356+}
357+/*
358+Table styles
359+*/
360+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
361+ width:100%;
362+ border-left:1px solid #EEE;
363+ border-right:1px solid #EEE;
364+ border-bottom:1px solid #EEE;
365+}
366+.overviewSummary, .memberSummary {
367+ padding:0px;
368+}
369+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
370+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
371+ position:relative;
372+ text-align:left;
373+ background-repeat:no-repeat;
374+ color:#253441;
375+ font-weight:bold;
376+ clear:none;
377+ overflow:hidden;
378+ padding:0px;
379+ padding-top:10px;
380+ padding-left:1px;
381+ margin:0px;
382+ white-space:pre;
383+}
384+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
385+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
386+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
387+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
388+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
389+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
390+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
391+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
392+ color:#FFFFFF;
393+}
394+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
395+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
396+ white-space:nowrap;
397+ padding-top:5px;
398+ padding-left:12px;
399+ padding-right:12px;
400+ padding-bottom:7px;
401+ display:inline-block;
402+ float:left;
403+ background-color:#F8981D;
404+ border: none;
405+ height:16px;
406+}
407+.memberSummary caption span.activeTableTab span {
408+ white-space:nowrap;
409+ padding-top:5px;
410+ padding-left:12px;
411+ padding-right:12px;
412+ margin-right:3px;
413+ display:inline-block;
414+ float:left;
415+ background-color:#F8981D;
416+ height:16px;
417+}
418+.memberSummary caption span.tableTab span {
419+ white-space:nowrap;
420+ padding-top:5px;
421+ padding-left:12px;
422+ padding-right:12px;
423+ margin-right:3px;
424+ display:inline-block;
425+ float:left;
426+ background-color:#4D7A97;
427+ height:16px;
428+}
429+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
430+ padding-top:0px;
431+ padding-left:0px;
432+ padding-right:0px;
433+ background-image:none;
434+ float:none;
435+ display:inline;
436+}
437+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
438+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
439+ display:none;
440+ width:5px;
441+ position:relative;
442+ float:left;
443+ background-color:#F8981D;
444+}
445+.memberSummary .activeTableTab .tabEnd {
446+ display:none;
447+ width:5px;
448+ margin-right:3px;
449+ position:relative;
450+ float:left;
451+ background-color:#F8981D;
452+}
453+.memberSummary .tableTab .tabEnd {
454+ display:none;
455+ width:5px;
456+ margin-right:3px;
457+ position:relative;
458+ background-color:#4D7A97;
459+ float:left;
460+
461+}
462+.overviewSummary td, .memberSummary td, .typeSummary td,
463+.useSummary td, .constantsSummary td, .deprecatedSummary td {
464+ text-align:left;
465+ padding:0px 0px 12px 10px;
466+}
467+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
468+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
469+ vertical-align:top;
470+ padding-right:0px;
471+ padding-top:8px;
472+ padding-bottom:3px;
473+}
474+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
475+ background:#dee3e9;
476+ text-align:left;
477+ padding:8px 3px 3px 7px;
478+}
479+td.colFirst, th.colFirst {
480+ white-space:nowrap;
481+ font-size:13px;
482+}
483+td.colLast, th.colLast {
484+ font-size:13px;
485+}
486+td.colOne, th.colOne {
487+ font-size:13px;
488+}
489+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
490+.useSummary td.colFirst, .useSummary th.colFirst,
491+.overviewSummary td.colOne, .overviewSummary th.colOne,
492+.memberSummary td.colFirst, .memberSummary th.colFirst,
493+.memberSummary td.colOne, .memberSummary th.colOne,
494+.typeSummary td.colFirst{
495+ width:25%;
496+ vertical-align:top;
497+}
498+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
499+ font-weight:bold;
500+}
501+.tableSubHeadingColor {
502+ background-color:#EEEEFF;
503+}
504+.altColor {
505+ background-color:#FFFFFF;
506+}
507+.rowColor {
508+ background-color:#EEEEEF;
509+}
510+/*
511+Content styles
512+*/
513+.description pre {
514+ margin-top:0;
515+}
516+.deprecatedContent {
517+ margin:0;
518+ padding:10px 0;
519+}
520+.docSummary {
521+ padding:0;
522+}
523+
524+ul.blockList ul.blockList ul.blockList li.blockList h3 {
525+ font-style:normal;
526+}
527+
528+div.block {
529+ font-size:14px;
530+ font-family:Meiryo, "メイリオ", YuGothic, "Yu Gothic", "游ゴシック", Osaka, "MS PGothic", "MS Pゴシック", sans-serif;
531+}
532+
533+td.colLast div {
534+ padding-top:0px;
535+}
536+
537+
538+td.colLast a {
539+ padding-bottom:3px;
540+}
541+/*
542+Formatting effect styles
543+*/
544+.sourceLineNo {
545+ color:green;
546+ padding:0 30px 0 0;
547+}
548+h1.hidden {
549+ visibility:hidden;
550+ overflow:hidden;
551+ font-size:10px;
552+}
553+.block {
554+ display:block;
555+ margin:3px 10px 2px 0px;
556+ color:#474747;
557+}
558+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
559+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
560+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
561+ font-weight:bold;
562+}
563+.deprecationComment, .emphasizedPhrase, .interfaceName {
564+ font-style:italic;
565+}
566+
567+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
568+div.block div.block span.interfaceName {
569+ font-style:normal;
570+}
571+
572+div.contentContainer ul.blockList li.blockList h2{
573+ padding-bottom:0px;
574+}
--- flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/kbd/Kbd.java (nonexistent)
+++ flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/kbd/Kbd.java (revision 85)
@@ -0,0 +1,60 @@
1+package net.osdn.blogs.flexmark.ext.kbd;
2+
3+import com.vladsch.flexmark.util.ast.CustomNode;
4+import com.vladsch.flexmark.util.sequence.BasedSequence;
5+
6+public class Kbd extends CustomNode {
7+ protected BasedSequence openingMarker = BasedSequence.NULL;
8+ protected BasedSequence text = BasedSequence.NULL;
9+ protected BasedSequence closingMarker = BasedSequence.NULL;
10+
11+ @Override
12+ public BasedSequence[] getSegments() {
13+ return new BasedSequence[] { openingMarker, text, closingMarker };
14+ }
15+
16+ @Override
17+ public void getAstExtra(StringBuilder out) {
18+ segmentSpanChars(out, openingMarker, "open");
19+ segmentSpanChars(out, text, "text");
20+ segmentSpanChars(out, closingMarker, "close");
21+ }
22+
23+ public Kbd() {
24+ }
25+
26+ public Kbd(BasedSequence chars) {
27+ super(chars);
28+ }
29+
30+ public Kbd(BasedSequence openingMarker, BasedSequence text, BasedSequence closingMarker) {
31+ super(openingMarker.baseSubSequence(openingMarker.getStartOffset(), closingMarker.getEndOffset()));
32+ this.openingMarker = openingMarker;
33+ this.text = text;
34+ this.closingMarker = closingMarker;
35+ }
36+
37+ public BasedSequence getOpeningMarker() {
38+ return openingMarker;
39+ }
40+
41+ public void setOpeningMarker(BasedSequence openingMarker) {
42+ this.openingMarker = openingMarker;
43+ }
44+
45+ public BasedSequence getText() {
46+ return text;
47+ }
48+
49+ public void setText(BasedSequence text) {
50+ this.text = text;
51+ }
52+
53+ public BasedSequence getClosingMarker() {
54+ return closingMarker;
55+ }
56+
57+ public void setClosingMarker(BasedSequence closingMarker) {
58+ this.closingMarker = closingMarker;
59+ }
60+}
--- flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/kbd/KbdExtension.java (nonexistent)
+++ flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/kbd/KbdExtension.java (revision 85)
@@ -0,0 +1,44 @@
1+package net.osdn.blogs.flexmark.ext.kbd;
2+
3+import com.vladsch.flexmark.Extension;
4+import com.vladsch.flexmark.html.HtmlRenderer;
5+import com.vladsch.flexmark.html.HtmlRenderer.HtmlRendererExtension;
6+import com.vladsch.flexmark.parser.Parser;
7+import com.vladsch.flexmark.parser.Parser.ParserExtension;
8+import com.vladsch.flexmark.util.options.MutableDataHolder;
9+
10+import net.osdn.blogs.flexmark.ext.kbd.internal.KbdInlineParserExtension;
11+import net.osdn.blogs.flexmark.ext.kbd.internal.KbdNodeRenderer;
12+
13+public class KbdExtension implements ParserExtension, HtmlRendererExtension {
14+
15+ private KbdExtension() {
16+ }
17+
18+ public static Extension create() {
19+ return new KbdExtension();
20+ }
21+
22+ @Override
23+ public void rendererOptions(final MutableDataHolder options) {
24+
25+ }
26+
27+ @Override
28+ public void parserOptions(final MutableDataHolder options) {
29+
30+ }
31+
32+ @Override
33+ public void extend(Parser.Builder parserBuilder) {
34+ parserBuilder.customInlineParserExtensionFactory(new KbdInlineParserExtension.Factory());
35+ }
36+
37+ @Override
38+ public void extend(HtmlRenderer.Builder rendererBuilder, String rendererType) {
39+ if ("HTML".equals(rendererType)) {
40+ rendererBuilder.nodeRendererFactory(new KbdNodeRenderer.Factory());
41+ }
42+ }
43+
44+}
--- flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/kbd/internal/KbdInlineParserExtension.java (nonexistent)
+++ flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/kbd/internal/KbdInlineParserExtension.java (revision 85)
@@ -0,0 +1,72 @@
1+package net.osdn.blogs.flexmark.ext.kbd.internal;
2+
3+import java.util.Set;
4+import java.util.regex.Matcher;
5+import java.util.regex.Pattern;
6+
7+import com.vladsch.flexmark.parser.InlineParser;
8+import com.vladsch.flexmark.parser.InlineParserExtension;
9+import com.vladsch.flexmark.parser.InlineParserExtensionFactory;
10+import com.vladsch.flexmark.util.sequence.BasedSequence;
11+
12+import net.osdn.blogs.flexmark.ext.kbd.Kbd;
13+
14+public class KbdInlineParserExtension implements InlineParserExtension {
15+ private final Pattern PATTERN = Pattern.compile("\\['([^']*)'\\]");
16+
17+ public KbdInlineParserExtension(final InlineParser inlineParser) {
18+ }
19+
20+ @Override
21+ public void finalizeDocument(final InlineParser inlineParser) {
22+ }
23+
24+ @Override
25+ public void finalizeBlock(final InlineParser inlineParser) {
26+ }
27+
28+ @Override
29+ public boolean parse(final InlineParser inlineParser) {
30+ if (inlineParser.peek(1) == '\'') {
31+ BasedSequence input = inlineParser.getInput();
32+ Matcher matcher = inlineParser.matcher(PATTERN);
33+ if (matcher != null) {
34+ BasedSequence tag = input.subSequence(matcher.start(), matcher.end());
35+ BasedSequence text = input.subSequence(matcher.start(1), matcher.end(1));
36+ Kbd node = new Kbd(tag.subSequence(0, 2), text, tag.endSequence(2));
37+ node.setCharsFromContent();
38+ inlineParser.flushTextNode();
39+ inlineParser.getBlock().appendChild(node);
40+ return true;
41+ }
42+ }
43+ return false;
44+ }
45+
46+ public static class Factory implements InlineParserExtensionFactory {
47+ @Override
48+ public Set<Class<? extends InlineParserExtensionFactory>> getAfterDependents() {
49+ return null;
50+ }
51+
52+ @Override
53+ public CharSequence getCharacters() {
54+ return "['";
55+ }
56+
57+ @Override
58+ public Set<Class<? extends InlineParserExtensionFactory>> getBeforeDependents() {
59+ return null;
60+ }
61+
62+ @Override
63+ public InlineParserExtension create(final InlineParser inlineParser) {
64+ return new KbdInlineParserExtension(inlineParser);
65+ }
66+
67+ @Override
68+ public boolean affectsGlobalScope() {
69+ return false;
70+ }
71+ }
72+}
--- flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/kbd/internal/KbdNodeRenderer.java (nonexistent)
+++ flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/kbd/internal/KbdNodeRenderer.java (revision 85)
@@ -0,0 +1,43 @@
1+package net.osdn.blogs.flexmark.ext.kbd.internal;
2+
3+import java.util.HashSet;
4+import java.util.Set;
5+
6+import com.vladsch.flexmark.html.CustomNodeRenderer;
7+import com.vladsch.flexmark.html.HtmlWriter;
8+import com.vladsch.flexmark.html.renderer.NodeRenderer;
9+import com.vladsch.flexmark.html.renderer.NodeRendererContext;
10+import com.vladsch.flexmark.html.renderer.NodeRendererFactory;
11+import com.vladsch.flexmark.html.renderer.NodeRenderingHandler;
12+import com.vladsch.flexmark.util.options.DataHolder;
13+
14+import net.osdn.blogs.flexmark.ext.kbd.Kbd;
15+
16+public class KbdNodeRenderer implements NodeRenderer {
17+
18+ public KbdNodeRenderer(DataHolder options) {
19+ }
20+
21+ @Override
22+ public Set<NodeRenderingHandler<?>> getNodeRenderingHandlers() {
23+ Set<NodeRenderingHandler<?>> set = new HashSet<NodeRenderingHandler<?>>();
24+ set.add(new NodeRenderingHandler<Kbd>(Kbd.class, new CustomNodeRenderer<Kbd>() {
25+ @Override
26+ public void render(Kbd node, NodeRendererContext context, HtmlWriter html) {
27+ KbdNodeRenderer.this.render(node, context, html);
28+ }
29+ }));
30+ return set;
31+ }
32+
33+ private void render(Kbd node, NodeRendererContext context, HtmlWriter html) {
34+ html.withAttr().tag("kbd").text(node.getText()).tag("/kbd");
35+ }
36+
37+ public static class Factory implements NodeRendererFactory {
38+ @Override
39+ public NodeRenderer create(final DataHolder options) {
40+ return new KbdNodeRenderer(options);
41+ }
42+ }
43+}
--- flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/samp_button/SampButton.java (nonexistent)
+++ flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/samp_button/SampButton.java (revision 85)
@@ -0,0 +1,60 @@
1+package net.osdn.blogs.flexmark.ext.samp_button;
2+
3+import com.vladsch.flexmark.util.ast.CustomNode;
4+import com.vladsch.flexmark.util.sequence.BasedSequence;
5+
6+public class SampButton extends CustomNode {
7+ protected BasedSequence openingMarker = BasedSequence.NULL;
8+ protected BasedSequence text = BasedSequence.NULL;
9+ protected BasedSequence closingMarker = BasedSequence.NULL;
10+
11+ @Override
12+ public BasedSequence[] getSegments() {
13+ return new BasedSequence[] { openingMarker, text, closingMarker };
14+ }
15+
16+ @Override
17+ public void getAstExtra(StringBuilder out) {
18+ segmentSpanChars(out, openingMarker, "open");
19+ segmentSpanChars(out, text, "text");
20+ segmentSpanChars(out, closingMarker, "close");
21+ }
22+
23+ public SampButton() {
24+ }
25+
26+ public SampButton(BasedSequence chars) {
27+ super(chars);
28+ }
29+
30+ public SampButton(BasedSequence openingMarker, BasedSequence text, BasedSequence closingMarker) {
31+ super(openingMarker.baseSubSequence(openingMarker.getStartOffset(), closingMarker.getEndOffset()));
32+ this.openingMarker = openingMarker;
33+ this.text = text;
34+ this.closingMarker = closingMarker;
35+ }
36+
37+ public BasedSequence getOpeningMarker() {
38+ return openingMarker;
39+ }
40+
41+ public void setOpeningMarker(BasedSequence openingMarker) {
42+ this.openingMarker = openingMarker;
43+ }
44+
45+ public BasedSequence getText() {
46+ return text;
47+ }
48+
49+ public void setText(BasedSequence text) {
50+ this.text = text;
51+ }
52+
53+ public BasedSequence getClosingMarker() {
54+ return closingMarker;
55+ }
56+
57+ public void setClosingMarker(BasedSequence closingMarker) {
58+ this.closingMarker = closingMarker;
59+ }
60+}
--- flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/samp_button/SampButtonExtension.java (nonexistent)
+++ flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/samp_button/SampButtonExtension.java (revision 85)
@@ -0,0 +1,44 @@
1+package net.osdn.blogs.flexmark.ext.samp_button;
2+
3+import com.vladsch.flexmark.Extension;
4+import com.vladsch.flexmark.html.HtmlRenderer;
5+import com.vladsch.flexmark.html.HtmlRenderer.HtmlRendererExtension;
6+import com.vladsch.flexmark.parser.Parser;
7+import com.vladsch.flexmark.parser.Parser.ParserExtension;
8+import com.vladsch.flexmark.util.options.MutableDataHolder;
9+
10+import net.osdn.blogs.flexmark.ext.samp_button.internal.SampButtonInlineParserExtension;
11+import net.osdn.blogs.flexmark.ext.samp_button.internal.SampButtonNodeRenderer;
12+
13+public class SampButtonExtension implements ParserExtension, HtmlRendererExtension {
14+
15+ private SampButtonExtension() {
16+ }
17+
18+ public static Extension create() {
19+ return new SampButtonExtension();
20+ }
21+
22+ @Override
23+ public void rendererOptions(final MutableDataHolder options) {
24+
25+ }
26+
27+ @Override
28+ public void parserOptions(final MutableDataHolder options) {
29+
30+ }
31+
32+ @Override
33+ public void extend(Parser.Builder parserBuilder) {
34+ parserBuilder.customInlineParserExtensionFactory(new SampButtonInlineParserExtension.Factory());
35+ }
36+
37+ @Override
38+ public void extend(HtmlRenderer.Builder rendererBuilder, String rendererType) {
39+ if ("HTML".equals(rendererType)) {
40+ rendererBuilder.nodeRendererFactory(new SampButtonNodeRenderer.Factory());
41+ }
42+ }
43+
44+}
--- flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/samp_button/internal/SampButtonInlineParserExtension.java (nonexistent)
+++ flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/samp_button/internal/SampButtonInlineParserExtension.java (revision 85)
@@ -0,0 +1,72 @@
1+package net.osdn.blogs.flexmark.ext.samp_button.internal;
2+
3+import java.util.Set;
4+import java.util.regex.Matcher;
5+import java.util.regex.Pattern;
6+
7+import com.vladsch.flexmark.parser.InlineParser;
8+import com.vladsch.flexmark.parser.InlineParserExtension;
9+import com.vladsch.flexmark.parser.InlineParserExtensionFactory;
10+import com.vladsch.flexmark.util.sequence.BasedSequence;
11+
12+import net.osdn.blogs.flexmark.ext.samp_button.SampButton;
13+
14+public class SampButtonInlineParserExtension implements InlineParserExtension {
15+ private final Pattern PATTERN = Pattern.compile("\\[\"([^\"]*)\"\\]");
16+
17+ public SampButtonInlineParserExtension(final InlineParser inlineParser) {
18+ }
19+
20+ @Override
21+ public void finalizeDocument(final InlineParser inlineParser) {
22+ }
23+
24+ @Override
25+ public void finalizeBlock(final InlineParser inlineParser) {
26+ }
27+
28+ @Override
29+ public boolean parse(final InlineParser inlineParser) {
30+ if (inlineParser.peek(1) == '"') {
31+ BasedSequence input = inlineParser.getInput();
32+ Matcher matcher = inlineParser.matcher(PATTERN);
33+ if (matcher != null) {
34+ BasedSequence tag = input.subSequence(matcher.start(), matcher.end());
35+ BasedSequence text = input.subSequence(matcher.start(1), matcher.end(1));
36+ SampButton node = new SampButton(tag.subSequence(0, 2), text, tag.endSequence(2));
37+ node.setCharsFromContent();
38+ inlineParser.flushTextNode();
39+ inlineParser.getBlock().appendChild(node);
40+ return true;
41+ }
42+ }
43+ return false;
44+ }
45+
46+ public static class Factory implements InlineParserExtensionFactory {
47+ @Override
48+ public Set<Class<? extends InlineParserExtensionFactory>> getAfterDependents() {
49+ return null;
50+ }
51+
52+ @Override
53+ public CharSequence getCharacters() {
54+ return "[\"";
55+ }
56+
57+ @Override
58+ public Set<Class<? extends InlineParserExtensionFactory>> getBeforeDependents() {
59+ return null;
60+ }
61+
62+ @Override
63+ public InlineParserExtension create(final InlineParser inlineParser) {
64+ return new SampButtonInlineParserExtension(inlineParser);
65+ }
66+
67+ @Override
68+ public boolean affectsGlobalScope() {
69+ return false;
70+ }
71+ }
72+}
--- flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/samp_button/internal/SampButtonNodeRenderer.java (nonexistent)
+++ flexmark-ext-inline-tags/trunk/src/main/java/net/osdn/blogs/flexmark/ext/samp_button/internal/SampButtonNodeRenderer.java (revision 85)
@@ -0,0 +1,43 @@
1+package net.osdn.blogs.flexmark.ext.samp_button.internal;
2+
3+import java.util.HashSet;
4+import java.util.Set;
5+
6+import com.vladsch.flexmark.html.CustomNodeRenderer;
7+import com.vladsch.flexmark.html.HtmlWriter;
8+import com.vladsch.flexmark.html.renderer.NodeRenderer;
9+import com.vladsch.flexmark.html.renderer.NodeRendererContext;
10+import com.vladsch.flexmark.html.renderer.NodeRendererFactory;
11+import com.vladsch.flexmark.html.renderer.NodeRenderingHandler;
12+import com.vladsch.flexmark.util.options.DataHolder;
13+
14+import net.osdn.blogs.flexmark.ext.samp_button.SampButton;
15+
16+public class SampButtonNodeRenderer implements NodeRenderer {
17+
18+ public SampButtonNodeRenderer(DataHolder options) {
19+ }
20+
21+ @Override
22+ public Set<NodeRenderingHandler<?>> getNodeRenderingHandlers() {
23+ Set<NodeRenderingHandler<?>> set = new HashSet<NodeRenderingHandler<?>>();
24+ set.add(new NodeRenderingHandler<SampButton>(SampButton.class, new CustomNodeRenderer<SampButton>() {
25+ @Override
26+ public void render(SampButton node, NodeRendererContext context, HtmlWriter html) {
27+ SampButtonNodeRenderer.this.render(node, context, html);
28+ }
29+ }));
30+ return set;
31+ }
32+
33+ private void render(SampButton node, NodeRendererContext context, HtmlWriter html) {
34+ html.withAttr().attr("class", "button").tag("samp").text(node.getText()).tag("/samp");
35+ }
36+
37+ public static class Factory implements NodeRendererFactory {
38+ @Override
39+ public NodeRenderer create(final DataHolder options) {
40+ return new SampButtonNodeRenderer(options);
41+ }
42+ }
43+}
旧リポジトリブラウザで表示