Skip to content
This repository was archived by the owner on Apr 22, 2020. It is now read-only.

Commit ce2482d

Browse files
Issue 123 : YAML mode
1 parent 88303bb commit ce2482d

File tree

2 files changed

+112
-1
lines changed

2 files changed

+112
-1
lines changed

src/lang-yaml.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Contributed by ribrdb @ code.google.com
2+
3+
/**
4+
* @fileoverview
5+
* Registers a language handler for YAML.
6+
*
7+
* @author ribrdb
8+
*/
9+
10+
PR.registerLangHandler(
11+
PR.createSimpleLexer(
12+
[
13+
[PR.PR_PUNCTUATION, /^[:|>?]/, null, ':|>?'],
14+
[PR.PR_DECLARATION, /^%(?:YAML|TAG)[^#\r\n]+/, null, '%'],
15+
[PR.PR_TYPE, /^[&]\S+/, null, '&'],
16+
[PR.PR_TYPE, /^!\S*/, null, '!'],
17+
[PR.PR_STRING, /^"(?:[^\\"]|\\.)*(?:"|$)/, null, '"'],
18+
[PR.PR_STRING, /^'(?:[^']|'')*(?:'|$)/, null, "'"],
19+
[PR.PR_COMMENT, /^#[^\r\n]*/, null, '#']
20+
],
21+
[
22+
[PR.PR_DECLARATION, /^(?:---|\.\.\.)(?:[\r\n]|$)/],
23+
[PR.PR_PUNCTUATION, /^-/],
24+
[PR.PR_KEYWORD, /^\w+:[ \r\n]/]
25+
]), ['yaml', 'yml']);

tests/prettify_test.html

Lines changed: 87 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
onerror="alert('Error: failed to load ' + this.src)"></script>
2525
<script src="../src/lang-vb.js" type="text/javascript"
2626
onerror="alert('Error: failed to load ' + this.src)"></script>
27+
<script src="../src/lang-yaml.js" type="text/javascript"
28+
onerror="alert('Error: failed to load ' + this.src)"></script>
2729
<script src="test_base.js" type="text/javascript"
2830
onerror="alert('Error: failed to load ' + this.src)"></script>
2931
<link rel="stylesheet" type="text/css" href="../src/prettify.css" />
@@ -1117,6 +1119,50 @@ <h1>VHDL mode</h1>
11171119

11181120
end architecture foo_architecture;
11191121
</pre>
1122+
1123+
<h1>YAML mode</h1>
1124+
<pre class="prettyprint lang-yaml" id="yaml1">
1125+
application: mirah-lang
1126+
version: 1
1127+
1128+
# Here's a comment
1129+
handlers:
1130+
- url: /red/*
1131+
servlet: mysite.server.TeamServlet
1132+
init_params:
1133+
teamColor: red
1134+
bgColor: "#CC0000"
1135+
name: redteam
1136+
- url: /blue/*
1137+
servlet: mysite.server.TeamServlet
1138+
init_params:
1139+
teamColor: blue
1140+
bgColor: "#0000CC"
1141+
name: blueteam
1142+
- url: /register/*
1143+
jsp: /register/start.jsp
1144+
- url: *.special
1145+
filter: mysite.server.LogFilterImpl
1146+
init_params:
1147+
logType: special
1148+
</pre>
1149+
<pre class="prettyprint lang-yaml" id="yaml2">
1150+
%YAML 1.1
1151+
---
1152+
!!map {
1153+
? !!str ""
1154+
: !!str "value",
1155+
? !!str "explicit key"
1156+
: !!str "value",
1157+
? !!str "simple key"
1158+
: !!str "value",
1159+
? !!seq [
1160+
!!str "collection",
1161+
!!str "simple",
1162+
!!str "key"
1163+
]
1164+
: !!str "value"
1165+
}</pre>
11201166
</body>
11211167

11221168
<script type="text/javascript">
@@ -2554,7 +2600,47 @@ <h1>VHDL mode</h1>
25542600
'&nbsp; &nbsp; `END`KWDend`END`PLN `END`KWDif`END`PUN;`END`PLN<br>' +
25552601
'&nbsp; `END`KWDend`END`PLN `END`KWDprocess`END`PLN dummy_p`END`PUN;`END`PLN<br>' +
25562602
'<br>' +
2557-
'`END`KWDend`END`PLN `END`KWDarchitecture`END`PLN foo_architecture`END`PUN;`END'
2603+
'`END`KWDend`END`PLN `END`KWDarchitecture`END`PLN foo_architecture`END`PUN;`END',
2604+
yaml1: '`KWDapplication: `END`PLNmirah`END`PUN-`END`PLNlang<br>' +
2605+
'`END`KWDversion: `END`PLN1<br>' +
2606+
'<br>' +
2607+
'`END`COM# Here\'s a comment`END`PLN<br>' +
2608+
'`END`KWDhandlers:<br>' +
2609+
'`END`PLN&nbsp; `END`PUN-`END`PLN `END`KWDurl: `END`PLN/red/*<br>' +
2610+
'&nbsp; &nbsp; &nbsp;`END`KWDservlet: `END`PLNmysite.server.TeamServlet<br>' +
2611+
'&nbsp; &nbsp; &nbsp;`END`KWDinit_params:<br>' +
2612+
'`END`PLN&nbsp; &nbsp; &nbsp; &nbsp;`END`KWDteamColor: `END`PLNred<br>' +
2613+
'&nbsp; &nbsp; &nbsp; &nbsp;`END`KWDbgColor: `END`STR"#CC0000"`END`PLN<br>' +
2614+
'&nbsp; &nbsp; &nbsp;`END`KWDname: `END`PLNredteam<br>' +
2615+
'&nbsp; `END`PUN-`END`PLN `END`KWDurl: `END`PLN/blue/*<br>' +
2616+
'&nbsp; &nbsp; &nbsp;`END`KWDservlet: `END`PLNmysite.server.TeamServlet<br>' +
2617+
'&nbsp; &nbsp; &nbsp;`END`KWDinit_params:<br>' +
2618+
'`END`PLN&nbsp; &nbsp; &nbsp; &nbsp;`END`KWDteamColor: `END`PLNblue<br>' +
2619+
'&nbsp; &nbsp; &nbsp; &nbsp;`END`KWDbgColor: `END`STR"#0000CC"`END`PLN<br>' +
2620+
'&nbsp; &nbsp; &nbsp;`END`KWDname: `END`PLNblueteam<br>' +
2621+
'&nbsp; `END`PUN-`END`PLN `END`KWDurl: `END`PLN/register/*<br>' +
2622+
'&nbsp; &nbsp; &nbsp;`END`KWDjsp: `END`PLN/register/start.jsp<br>' +
2623+
'&nbsp; `END`PUN-`END`PLN `END`KWDurl: `END`PLN*.special<br>' +
2624+
'&nbsp; &nbsp; &nbsp;`END`KWDfilter: `END`PLNmysite.server.LogFilterImpl<br>' +
2625+
'&nbsp; &nbsp; &nbsp;`END`KWDinit_params:<br>' +
2626+
'`END`PLN&nbsp; &nbsp; &nbsp; &nbsp;`END`KWDlogType: `END`PLNspecial<br>' +
2627+
'&nbsp; `END',
2628+
yaml2: '`DEC%YAML 1.1`END`PLN<br>' +
2629+
'`END`DEC---<br>' +
2630+
'`END`TYP!!map`END`PLN {<br>' +
2631+
'&nbsp; `END`PUN?`END`PLN `END`TYP!!str`END`PLN `END`STR""`END`PLN<br>' +
2632+
'&nbsp; `END`PUN:`END`PLN `END`TYP!!str`END`PLN `END`STR"value"`END`PLN,<br>' +
2633+
'&nbsp; `END`PUN?`END`PLN `END`TYP!!str`END`PLN `END`STR"explicit key"`END`PLN<br>' +
2634+
'&nbsp; `END`PUN:`END`PLN `END`TYP!!str`END`PLN `END`STR"value"`END`PLN,<br>' +
2635+
'&nbsp; `END`PUN?`END`PLN `END`TYP!!str`END`PLN `END`STR"simple key"`END`PLN<br>' +
2636+
'&nbsp; `END`PUN:`END`PLN `END`TYP!!str`END`PLN `END`STR"value"`END`PLN,<br>' +
2637+
'&nbsp; `END`PUN?`END`PLN `END`TYP!!seq`END`PLN [<br>' +
2638+
'&nbsp; &nbsp; `END`TYP!!str`END`PLN `END`STR"collection"`END`PLN,<br>' +
2639+
'&nbsp; &nbsp; `END`TYP!!str`END`PLN `END`STR"simple"`END`PLN,<br>' +
2640+
'&nbsp; &nbsp; `END`TYP!!str`END`PLN `END`STR"key"`END`PLN<br>' +
2641+
'&nbsp; ]<br>' +
2642+
'&nbsp; `END`PUN:`END`PLN `END`TYP!!str`END`PLN `END`STR"value"`END`PLN<br>' +
2643+
'}`END'
25582644
};
25592645
</script>
25602646

0 commit comments

Comments
 (0)