PageRenderTime 48ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/modules-services/service-translator/src/main/webapp/google-code-prettify/tests/prettify_test_2.html

http://github.com/lucmoreau/ProvToolbox
HTML | 893 lines | 844 code | 49 blank | 0 comment | 0 complexity | 2ead6af174eab9727d472e96ae2ee3ad MD5 | raw file
Possible License(s): AGPL-3.0, BSD-3-Clause, Apache-2.0, GPL-3.0
  1. <!DOCTYPE HTML PUBLIC "-//W5C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Code Prettifier</title>
  5. <script>(function () {
  6. var sourceBaseUrl = /[&?]distrib/.test(location.search)
  7. ? "../distrib/google-code-prettify/" : "../src/";
  8. var sources = [
  9. "prettify.js",
  10. "lang-css.js",
  11. // Language extensions tested.
  12. "lang-clj.js",
  13. "lang-lisp.js",
  14. "lang-xq.js",
  15. "lang-n.js",
  16. "lang-tex.js"
  17. ];
  18. var styles = [
  19. "prettify.css"
  20. ];
  21. if (window.console) {
  22. console.log("sourceBaseUrl=" + sourceBaseUrl);
  23. }
  24. for (var i = 0; i < sources.length; ++i) {
  25. document.write(
  26. "<script src=\"" + sourceBaseUrl + sources[i] + "\"><\/script>");
  27. }
  28. for (var i = 0; i < styles.length; ++i) {
  29. document.write(
  30. "<link rel=\"stylesheet\" href=\"" + sourceBaseUrl + styles[i] + "\">");
  31. }
  32. })();
  33. </script>
  34. <script src="test_base.js" type="text/javascript"
  35. onerror="alert('Error: failed to load ' + this.src)"></script>
  36. <link rel="stylesheet" type="text/css" href="test_styles.css" />
  37. </head>
  38. <body onload="go(goldens)" bgcolor="white">
  39. <div id="timing"></div>
  40. <div id="errorReport" style="white-space: pre"></div>
  41. <h1>XQuery mode</h1>
  42. From <code>http://www.patrick-wied.at/static/xquery/prettify/</code>
  43. <pre class="prettyprint lang-xq" id="xquery">
  44. (:
  45. Took some of Mike Brevoort's xquery code samples because they are nice and show common xquery syntax
  46. :)
  47. (:~
  48. : Given a sequence of version URIs, publish all of these versions of each document
  49. : If there is a version of the same document already published, unpublish it 1st
  50. :
  51. : When "publish" is referred to, we mean that it is put into the PUBLISHED collection
  52. : unpublish removes content from this collection
  53. : @param $version_uris - sequence of uris of versions of managed documents to publish
  54. :)
  55. declare function comoms-dls:publish($version_uris as item()*) {
  56. for $uri in $version_uris
  57. let $doc := fn:doc($uri)
  58. let $managed_base_uri := $doc/node()/property::dls:version/dls:document-uri/text()
  59. let $existing := comoms-dls:publishedDoc($managed_base_uri)
  60. let $unpublishExisting := if($existing) then comoms-dls:unpublishVersion((xdmp:node-uri($existing))) else ()
  61. let $addPermissions := dls:document-add-permissions($uri, (xdmp:permission('mkp-anon', 'read')))
  62. return
  63. dls:document-add-collections($uri, ("PUBLISHED"))
  64. };
  65. declare function comoms-dls:publishLatest($uri) {
  66. (: TODO check if it's in the draft collection probably :)
  67. let $latest_version_uri := comoms-dls:latestVersionUri($uri)
  68. let $log:= xdmp:log(fn:concat("latest: ", $latest_version_uri))
  69. let $log:= xdmp:log(fn:concat("uri: ", $uri))
  70. return comoms-dls:publish($latest_version_uri)
  71. };
  72. declare function comoms-dls:latestVersionUri($uri) {
  73. let $latest_version_num :=
  74. (
  75. for $version in dls:document-history($uri)/dls:version
  76. order by fn:number($version//dls:version-id/text()) descending
  77. return $version//dls:version-id/text()
  78. )[1]
  79. return dls:document-version-uri($uri, $latest_version_num)
  80. };
  81. declare function comoms-dls:unpublish($uris as item()*) {
  82. for $uri in $uris
  83. return
  84. let $published_doc := comoms-dls:publishedDoc($uri)
  85. return
  86. if($published_doc) then
  87. let $published_version_uri := xdmp:node-uri($published_doc)
  88. return comoms-dls:unpublishVersion($published_version_uri)
  89. else
  90. ()
  91. };
  92. declare function comoms-dls:latestPublishedDocAuthor($uri) {
  93. let $author_id := doc($uri)/property::dls:version/dls:author/text()
  94. return
  95. if($author_id) then
  96. comoms-user:getUsername($author_id)
  97. else
  98. ()
  99. };
  100. (:~
  101. : Given a sequence of version URIs, unpublish all of these versions of each document
  102. :)
  103. declare function comoms-dls:unpublishVersion($version_uris as item()*) {
  104. for $uri in $version_uris
  105. return
  106. let $removePermissions := dls:document-remove-permissions($uri, (xdmp:permission('mkp-anon', 'read')))
  107. return dls:document-remove-collections($uri, ("PUBLISHED"))
  108. };
  109. (:~
  110. : Given the base URI of a managed piece of content, return the document of the node
  111. : of the version that is published
  112. :)
  113. declare function comoms-dls:publishedDoc($uri) {
  114. fn:collection("PUBLISHED")[property::dls:version/dls:document-uri = $uri]
  115. };
  116. (:~
  117. : Test if any version of the managed document is published
  118. :)
  119. declare function comoms-dls:isPublished($uri) {
  120. if( comoms-dls:publishedDoc($uri)) then
  121. fn:true()
  122. else
  123. fn:false()
  124. };
  125. declare function comoms-dls:publishedState($uri) {
  126. let $doc := comoms-dls:publishedDoc($uri)
  127. let $published_uri := if($doc) then xdmp:node-uri($doc) else ()
  128. let $latest := comoms-dls:latestVersionUri($uri)
  129. return
  130. if($doc) then
  131. if($latest ne $published_uri) then
  132. "stale"
  133. else
  134. "published"
  135. else
  136. "unpublished"
  137. };
  138. declare function comoms-dls:getManagedDocUri($uri) {
  139. let $doc := fn:doc($uri)
  140. let $managed_uri := $doc/property::dls:version/dls:document-uri/text()
  141. let $managed_uri := if($managed_uri) then $managed_uri else $uri
  142. return $managed_uri
  143. };
  144. (:~
  145. : Given a manage content url (e.g. /content/123456.xml) return the appropriate
  146. : version of the document based on what stage collection is being viewed and
  147. : what's published
  148. :
  149. : @param $uri a manage content url (e.g. /content/123456.xml) - NOT A VERSIONED URI
  150. :)
  151. declare function comoms-dls:doc($uri) {
  152. let $doc := fn:root(comoms-dls:collection()[property::dls:version/dls:document-uri = $uri][1])
  153. return
  154. if($doc) then
  155. $doc
  156. else
  157. let $managedDocInCollection := comoms-dls:collection-name() = xdmp:document-get-collections($uri)
  158. return
  159. if($managedDocInCollection) then
  160. fn:doc($uri)
  161. else
  162. ()
  163. };
  164. (:~
  165. : Get the collection to be used when querying for content
  166. : THIS or comoms-dls:collection-name() SHOULD BE USED WHEN BUILDING ANY QUERY FOR MANAGED CONTENT
  167. :)
  168. declare function comoms-dls:collection() {
  169. fn:collection( comoms-dls:collection-name() )
  170. };
  171. (:~
  172. : Get the collection nameto be used when querying for content
  173. : THIS or comoms-dls:collection() SHOULD BE USED WHEN BUILDING ANY QUERY FOR MANAGED CONTENT
  174. :)
  175. declare function comoms-dls:collection-name() as xs:string {
  176. let $default_collection := "PUBLISHED"
  177. return
  178. if(comoms-user:isAdmin()) then
  179. let $pub_stage_collection_cookie := comoms-util:getCookie("COMOMS_COLLECTION")
  180. return
  181. if($pub_stage_collection_cookie) then
  182. $pub_stage_collection_cookie
  183. else
  184. $default_collection
  185. else
  186. $default_collection
  187. };
  188. (:~
  189. : Check if the published collection is being viewed
  190. :)
  191. declare function comoms-dls:isViewingPublished() {
  192. if(comoms-dls:collection-name() = "PUBLISHED") then
  193. fn:true()
  194. else
  195. fn:false()
  196. };
  197. (:~
  198. : Get the best URL for the content URI.
  199. : This is either the default URI based on detail type or should also take
  200. : into account friendly urls and navigation structures to figure out the
  201. : best choice
  202. :)
  203. declare function comoms-dls:contentUrl($uri) {
  204. (: TODO: add friendly URL and nav structure logic 1st :)
  205. let $doc := fn:doc($uri)
  206. let $managedDocUri := $doc/property::dls:version/dls:document-uri
  207. let $uri := if($managedDocUri) then $managedDocUri else $uri
  208. let $type := $doc/node()/fn:name()
  209. let $content_id := fn:tokenize( fn:tokenize($uri, "/")[3], "\.")[1]
  210. return
  211. fn:concat("/", $type, "/", $content_id)
  212. };
  213. (:
  214. :
  215. : gets list of doc versions and uri.
  216. :
  217. :)
  218. declare function comoms-dls:versionHistory($uri) {
  219. let $published_doc := comoms-dls:publishedDoc($uri)
  220. let $published_uri := if($published_doc) then xdmp:node-uri($published_doc) else ()
  221. return
  222. &lt;versions&gt;
  223. {
  224. for $version in dls:document-history($uri)/dls:version
  225. let $version_num := $version/dls:version-id/text()
  226. let $created := $version/dls:created/text()
  227. let $author_id := $version/dls:author/text()
  228. let $author := comoms-user:getUsername($author_id)
  229. let $note := $version/dls:annotation/text()
  230. let $version_uri := xdmp:node-uri(dls:document-version($uri, $version_num))
  231. let $published := $published_uri eq $version_uri
  232. return
  233. &lt;version&gt;
  234. &lt;version-number&gt;{$version_num}&lt;/version-number&gt;
  235. &lt;created&gt;{$created}&lt;/created&gt;
  236. &lt;author&gt;{$author}&lt;/author&gt;
  237. &lt;published&gt;{$published}&lt;/published&gt;
  238. &lt;version-uri&gt;{$version_uri}&lt;/version-uri&gt;
  239. &lt;/version&gt;
  240. }
  241. &lt;/versions&gt;
  242. };
  243. (: ########################################################################### :)
  244. (: PRIVATE FUNCTIONS :)
  245. (: ########################################################################### :)
  246. declare function comoms-dls:_import() {
  247. "xquery version '1.0-ml';
  248. import module namespace dls = 'http://marklogic.com/xdmp/dls' at '/MarkLogic/dls.xqy'; "
  249. };
  250. (: ----
  251. ---- :)
  252. xquery version '1.0-ml';
  253. declare variable $URI as xs:string external;
  254. declare function local:document-move-forest($uri as xs:string, $forest-ids as xs:unsignedLong*)
  255. {
  256. xdmp:document-insert(
  257. $uri,
  258. fn:doc($uri),
  259. xdmp:document-get-permissions($uri),
  260. xdmp:document-get-collections($uri),
  261. xdmp:document-get-quality($uri),
  262. $forest-ids
  263. )
  264. };
  265. let $xml :=
  266. &lt;xml att="blah" att2="blah"&gt;
  267. sdasd&lt;b&gt;asdasd&lt;/b&gt;
  268. &lt;/xml&gt;
  269. (: -------- :)
  270. for $d in fn:doc("depts.xml")/depts/deptno
  271. let $e := fn:doc("emps.xml")/emps/emp[deptno = $d]
  272. where fn:count($e) &gt;= 10
  273. order by fn:avg($e/salary) descending
  274. return
  275. &lt;big-dept&gt;
  276. {
  277. $d,
  278. &lt;headcount&gt;{fn:count($e)}&lt;/headcount&gt;,
  279. &lt;avgsal&gt;{fn:avg($e/salary)}&lt;/avgsal&gt;
  280. }
  281. &lt;/big-dept&gt;
  282. (: -------- :)
  283. declare function local:depth($e as node()) as xs:integer
  284. {
  285. (: A node with no children has depth 1 :)
  286. (: Otherwise, add 1 to max depth of children :)
  287. if (fn:empty($e/*)) then 1
  288. else fn:max(for $c in $e/* return local:depth($c)) + 1
  289. };
  290. local:depth(fn:doc("partlist.xml"))
  291. (: -------- :)
  292. &lt;html&gt;&lt;head/&gt;&lt;body&gt;
  293. {
  294. for $act in doc("hamlet.xml")//ACT
  295. let $speakers := distinct-values($act//SPEAKER)
  296. return
  297. &lt;div&gt;{ string($act/TITLE) }&lt;/h1&gt;
  298. &lt;ul&gt;
  299. {
  300. for $speaker in $speakers
  301. return &lt;li&gt;{ $speaker }&lt;/li&gt;
  302. }
  303. &lt;/ul&gt;
  304. &lt;/div&gt;
  305. }
  306. &lt;/body&gt;&lt;/html&gt;
  307. (: -------- :)
  308. {
  309. for $book in doc("books.xml")//book
  310. return
  311. if (contains($book/author/text(),"Herbert") or contains($book/author/text(),"Asimov"))
  312. then $book
  313. else $book/text()
  314. let $let := &lt;x&gt;"test"&lt;/x&gt;
  315. return element element {
  316. attribute attribute { 1 },
  317. element test { 'a' },
  318. attribute foo { "bar" },
  319. fn:doc()[ foo/@bar eq $let ],
  320. //x }
  321. }
  322. (: -------- :)
  323. &lt;bib&gt;
  324. {
  325. for $b in doc("http://bstore1.example.com/bib.xml")/bib/book
  326. where $b/publisher = "Addison-Wesley" and $b/@year &gt; 1991
  327. return
  328. &lt;book year="{ $b/@year }"&gt;
  329. { $b/title }
  330. &lt;/book&gt;
  331. }
  332. &lt;/bib&gt;
  333. (: -------- :)
  334. </pre>
  335. <h1>Nemerle code</h1>
  336. <pre id="nemerle" class="prettyprint lang-nemerle">
  337. class Set ['a]
  338. {
  339. mutable storage : list ['a] = [];
  340. public Add (e : 'a) : void
  341. {
  342. when (! Contains (e))
  343. storage ::= e;
  344. }
  345. public Contains (e : 'a) : bool
  346. {
  347. storage.Contains (e)
  348. }
  349. }
  350. def s1 = Set ();
  351. s1.Add (3);
  352. s1.Add (42);
  353. assert (s1.Contains (3));
  354. // s1.Add ("foo"); // error here!
  355. def s2 = Set ();
  356. s2.Add ("foo");
  357. assert (s2.Contains ("foo"));
  358. </pre>
  359. <h1>Tex support</h1>
  360. <pre id="latex" class="prettyprint lang-tex">% resume.tex
  361. % vim:set ft=tex spell:
  362. \documentclass[10pt,letterpaper]{article}
  363. \usepackage[letterpaper,margin=0.8in]{geometry}
  364. \usepackage{mdwlist}
  365. \usepackage[T1]{fontenc}
  366. \usepackage{textcomp}
  367. \pagestyle{empty}
  368. \setlength{\tabcolsep}{0em}
  369. </pre>
  370. <h1>Issue 144</h1>
  371. Escaped quotes in bash.
  372. <pre id="issue144" class="prettyprint">
  373. #! /bin/bash
  374. # toascii.sh
  375. for i in $(echo $* | fold -w 1);do
  376. printf "%x " \'$i;
  377. done;
  378. echo
  379. </pre>
  380. <h1>Issue 145</h1>
  381. <pre id="issue145" class="prettyprint">
  382. &lt;script type="text/javascript"&gt;
  383. &lt;!--
  384. var target = $$.css('backgroundImage').replace(/^url[\(\)'"]/g, '');
  385. // nice long chain: wrap img element in span
  386. $$.wrap('&lt;span style="position: relative;"&gt;&lt;/span&gt;')
  387. --&gt;
  388. &lt;/script&gt;
  389. </pre>
  390. <h1>Clojure Syntax Highlighting</h1>
  391. <pre class="prettyprint lang-clj" id="clojure">
  392. ; Clojure test comment
  393. (ns test
  394. (:gen-class))
  395. (def foo "bar")
  396. (defn bar [arg1 arg2 & args]
  397. "sample function"
  398. (for [arg args]
  399. (prn arg)))
  400. (bar "foo" "bar" "blah" :baz)
  401. </pre>
  402. <h1>HTML 5 language on code</h1>
  403. <p>
  404. The text is specified to be lisp by the class attribute.
  405. Semicolon is normally a valid punctuation character but
  406. in lisp it is a comment so should be colored as a comment
  407. if the className is being properly parsed.</p>
  408. <code class="prettyprint language-lisp" id="html5conv1">; foo</code>
  409. <h1>HTML 5 language on nested code element</h1>
  410. <p>The language is attached to a CODE element inside a PRE.</p>
  411. <pre class="prettyprint" id="html5conv2"
  412. ><code class="language-lisp">; foo</code></pre>
  413. <h1>HTML 5 language on nested code element not foiled by space</h1>
  414. <p>The language is attached to a CODE element inside a PRE and there
  415. is space between the PRE element's tags and CODE element's tags.</p>
  416. <pre class="prettyprint" id="html5conv3">
  417. <code class="language-lisp">
  418. ; foo
  419. </code>
  420. </pre>
  421. <h1>HTML 5 nested code element language ignored if not only content</h1>
  422. <p>The below is not treated as lisp despite there being a lisp
  423. language specifier on the contained CODE element, the CODE element
  424. does not wrap all non-space content.</p>
  425. <pre class="prettyprint" id="html5conv4">
  426. before CODE
  427. <code class="language-lisp">; foo</code>
  428. </pre>
  429. </body>
  430. <script type="text/javascript">
  431. /**
  432. * maps ids of rewritten code to the expected output.
  433. * For brevity, <span class="foo"> has been changed to `FOO and close span tags
  434. * have been changed to `END.
  435. */
  436. var goldens = {
  437. xquery: (
  438. '`COM(: \n' +
  439. '\tTook some of Mike Brevoort\'s xquery code samples because they are nice and show common xquery syntax \n' +
  440. ':)`END`PLN\n' +
  441. ' \n' +
  442. ' `END`COM(:~\n' +
  443. ' : Given a sequence of version URIs, publish all of these versions of each document\n' +
  444. ' : If there is a version of the same document already published, unpublish it 1st\n' +
  445. ' :\n' +
  446. ' : When "publish" is referred to, we mean that it is put into the PUBLISHED collection\n' +
  447. ' : unpublish removes content from this collection\n' +
  448. ' : @param $version_uris - sequence of uris of versions of managed documents to publish\n' +
  449. ' :)`END`PLN\n' +
  450. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:publish(`END<span class="var pln">$version_uris`END`PLN `END`KWDas`END`PLN `END`KWDitem`END`PLN()*) {\n' +
  451. ' `END`KWDfor`END`PLN `END<span class="var pln">$uri`END`PLN `END`KWDin`END`PLN `END<span class="var pln">$version_uris`END`PLN\n' +
  452. ' `END`KWDlet`END`PLN `END<span class="var pln">$doc`END`PLN := `END<span class="fun pln">fn:doc`END`PLN(`END<span class="var pln">$uri`END`PLN)\n' +
  453. ' `END`KWDlet`END`PLN `END<span class="var pln">$managed_base_uri`END`PLN := `END<span class="var pln">$doc`END`PLN/`END`KWDnode`END`PLN()/property::dls:version/dls:document-uri/`END`KWDtext`END`PLN()\n' +
  454. ' `END`KWDlet`END`PLN `END<span class="var pln">$existing`END`PLN := comoms-dls:publishedDoc(`END<span class="var pln">$managed_base_uri`END`PLN)\n' +
  455. ' `END`KWDlet`END`PLN `END<span class="var pln">$unpublishExisting`END`PLN := `END`KWDif`END`PLN(`END<span class="var pln">$existing`END`PLN) `END`KWDthen`END`PLN comoms-dls:unpublishVersion((`END<span class="fun pln">xdmp:node-uri`END`PLN(`END<span class="var pln">$existing`END`PLN))) `END`KWDelse`END`PLN ()\n' +
  456. ' `END`KWDlet`END`PLN `END<span class="var pln">$addPermissions`END`PLN := `END<span class="fun pln">dls:document-add-permissions`END`PLN(`END<span class="var pln">$uri`END`PLN, (`END<span class="fun pln">xdmp:permission`END`PLN(`END`STR\'mkp-anon\'`END`PLN, `END`STR\'read\'`END`PLN)))\n' +
  457. ' `END`KWDreturn`END`PLN\n' +
  458. ' `END<span class="fun pln">dls:document-add-collections`END`PLN(`END<span class="var pln">$uri`END`PLN, (`END`STR"PUBLISHED"`END`PLN)) \n' +
  459. ' };\n' +
  460. ' \n' +
  461. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:publishLatest(`END<span class="var pln">$uri`END`PLN) {\n' +
  462. ' `END`COM(: TODO check if it\'s in the draft collection probably :)`END`PLN\n' +
  463. ' \n' +
  464. ' `END`KWDlet`END`PLN `END<span class="var pln">$latest_version_uri`END`PLN := comoms-dls:latestVersionUri(`END<span class="var pln">$uri`END`PLN)\n' +
  465. ' `END`KWDlet`END`PLN `END<span class="var pln">$log`END`PLN:= `END<span class="fun pln">xdmp:log`END`PLN(`END<span class="fun pln">fn:concat`END`PLN(`END`STR"latest: "`END`PLN, `END<span class="var pln">$latest_version_uri`END`PLN)) \n' +
  466. ' `END`KWDlet`END`PLN `END<span class="var pln">$log`END`PLN:= `END<span class="fun pln">xdmp:log`END`PLN(`END<span class="fun pln">fn:concat`END`PLN(`END`STR"uri: "`END`PLN, `END<span class="var pln">$uri`END`PLN)) \n' +
  467. ' `END`KWDreturn`END`PLN comoms-dls:publish(`END<span class="var pln">$latest_version_uri`END`PLN) \n' +
  468. ' \n' +
  469. ' };\n' +
  470. ' \n' +
  471. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:latestVersionUri(`END<span class="var pln">$uri`END`PLN) {\n' +
  472. ' `END`KWDlet`END`PLN `END<span class="var pln">$latest_version_num`END`PLN :=\n' +
  473. ' (\n' +
  474. ' `END`KWDfor`END`PLN `END<span class="var pln">$version`END`PLN `END`KWDin`END`PLN `END<span class="fun pln">dls:document-history`END`PLN(`END<span class="var pln">$uri`END`PLN)/dls:version\n' +
  475. ' `END`KWDorder`END`PLN `END`KWDby`END`PLN `END<span class="fun pln">fn:number`END`PLN(`END<span class="var pln">$version`END`PLN//dls:version-id/`END`KWDtext`END`PLN()) `END`KWDdescending`END`PLN\n' +
  476. ' `END`KWDreturn`END`PLN `END<span class="var pln">$version`END`PLN//dls:version-id/`END`KWDtext`END`PLN()\n' +
  477. ' )[1]\n' +
  478. ' \n' +
  479. ' \n' +
  480. ' `END`KWDreturn`END`PLN `END<span class="fun pln">dls:document-version-uri`END`PLN(`END<span class="var pln">$uri`END`PLN, `END<span class="var pln">$latest_version_num`END`PLN)\n' +
  481. ' };\n' +
  482. ' \n' +
  483. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:unpublish(`END<span class="var pln">$uris`END`PLN `END`KWDas`END`PLN `END`KWDitem`END`PLN()*) {\n' +
  484. ' `END`KWDfor`END`PLN `END<span class="var pln">$uri`END`PLN `END`KWDin`END`PLN `END<span class="var pln">$uris`END`PLN\n' +
  485. ' `END`KWDreturn`END`PLN\n' +
  486. ' `END`KWDlet`END`PLN `END<span class="var pln">$published_doc`END`PLN := comoms-dls:publishedDoc(`END<span class="var pln">$uri`END`PLN)\n' +
  487. ' `END`KWDreturn`END`PLN\n' +
  488. ' `END`KWDif`END`PLN(`END<span class="var pln">$published_doc`END`PLN) `END`KWDthen`END`PLN\n' +
  489. ' `END`KWDlet`END`PLN `END<span class="var pln">$published_version_uri`END`PLN := `END<span class="fun pln">xdmp:node-uri`END`PLN(`END<span class="var pln">$published_doc`END`PLN)\n' +
  490. ' `END`KWDreturn`END`PLN comoms-dls:unpublishVersion(`END<span class="var pln">$published_version_uri`END`PLN) \n' +
  491. ' `END`KWDelse`END`PLN\n' +
  492. ' ()\n' +
  493. ' };\n' +
  494. ' \n' +
  495. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:latestPublishedDocAuthor(`END<span class="var pln">$uri`END`PLN) {\n' +
  496. ' `END`KWDlet`END`PLN `END<span class="var pln">$author_id`END`PLN := `END<span class="fun pln">doc`END`PLN(`END<span class="var pln">$uri`END`PLN)/property::dls:version/dls:author/`END`KWDtext`END`PLN()\n' +
  497. ' `END`KWDreturn`END`PLN\n' +
  498. ' `END`KWDif`END`PLN(`END<span class="var pln">$author_id`END`PLN) `END`KWDthen`END`PLN\n' +
  499. ' comoms-user:getUsername(`END<span class="var pln">$author_id`END`PLN)\n' +
  500. ' `END`KWDelse`END`PLN\n' +
  501. ' ()\n' +
  502. ' \n' +
  503. ' };\n' +
  504. ' \n' +
  505. ' `END`COM(:~\n' +
  506. ' : Given a sequence of version URIs, unpublish all of these versions of each document\n' +
  507. ' :)`END`PLN\n' +
  508. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:unpublishVersion(`END<span class="var pln">$version_uris`END`PLN `END`KWDas`END`PLN `END`KWDitem`END`PLN()*) {\n' +
  509. ' `END`KWDfor`END`PLN `END<span class="var pln">$uri`END`PLN `END`KWDin`END`PLN `END<span class="var pln">$version_uris`END`PLN\n' +
  510. ' `END`KWDreturn`END`PLN\n' +
  511. ' `END`KWDlet`END`PLN `END<span class="var pln">$removePermissions`END`PLN := `END<span class="fun pln">dls:document-remove-permissions`END`PLN(`END<span class="var pln">$uri`END`PLN, (`END<span class="fun pln">xdmp:permission`END`PLN(`END`STR\'mkp-anon\'`END`PLN, `END`STR\'read\'`END`PLN)))\n' +
  512. ' `END`KWDreturn`END`PLN `END<span class="fun pln">dls:document-remove-collections`END`PLN(`END<span class="var pln">$uri`END`PLN, (`END`STR"PUBLISHED"`END`PLN)) \n' +
  513. ' };\n' +
  514. ' \n' +
  515. ' `END`COM(:~\n' +
  516. ' : Given the base URI of a managed piece of content, return the document of the node\n' +
  517. ' : of the version that is published\n' +
  518. ' :)`END`PLN\n' +
  519. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:publishedDoc(`END<span class="var pln">$uri`END`PLN) {\n' +
  520. ' `END<span class="fun pln">fn:collection`END`PLN(`END`STR"PUBLISHED"`END`PLN)[property::dls:version/dls:document-uri = `END<span class="var pln">$uri`END`PLN]\n' +
  521. ' };\n' +
  522. ' \n' +
  523. ' \n' +
  524. ' `END`COM(:~\n' +
  525. ' : Test if any version of the managed document is published\n' +
  526. ' :)`END`PLN\n' +
  527. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:isPublished(`END<span class="var pln">$uri`END`PLN) {\n' +
  528. ' `END`KWDif`END`PLN( comoms-dls:publishedDoc(`END<span class="var pln">$uri`END`PLN)) `END`KWDthen`END`PLN\n' +
  529. ' `END<span class="fun pln">fn:true`END`PLN()\n' +
  530. ' `END`KWDelse`END`PLN\n' +
  531. ' `END<span class="fun pln">fn:false`END`PLN()\n' +
  532. ' };\n' +
  533. ' \n' +
  534. ' \n' +
  535. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:publishedState(`END<span class="var pln">$uri`END`PLN) {\n' +
  536. ' `END`KWDlet`END`PLN `END<span class="var pln">$doc`END`PLN := comoms-dls:publishedDoc(`END<span class="var pln">$uri`END`PLN)\n' +
  537. ' `END`KWDlet`END`PLN `END<span class="var pln">$published_uri`END`PLN := `END`KWDif`END`PLN(`END<span class="var pln">$doc`END`PLN) `END`KWDthen`END`PLN `END<span class="fun pln">xdmp:node-uri`END`PLN(`END<span class="var pln">$doc`END`PLN) `END`KWDelse`END`PLN ()\n' +
  538. ' `END`KWDlet`END`PLN `END<span class="var pln">$latest`END`PLN := comoms-dls:latestVersionUri(`END<span class="var pln">$uri`END`PLN)\n' +
  539. ' `END`KWDreturn`END`PLN\n' +
  540. ' `END`KWDif`END`PLN(`END<span class="var pln">$doc`END`PLN) `END`KWDthen`END`PLN\n' +
  541. ' `END`KWDif`END`PLN(`END<span class="var pln">$latest`END`PLN ne `END<span class="var pln">$published_uri`END`PLN) `END`KWDthen`END`PLN\n' +
  542. ' `END`STR"stale"`END`PLN\n' +
  543. ' `END`KWDelse`END`PLN\n' +
  544. ' `END`STR"published"`END`PLN\n' +
  545. ' `END`KWDelse`END`PLN\n' +
  546. ' `END`STR"unpublished"`END`PLN\n' +
  547. ' };\n' +
  548. ' \n' +
  549. ' \n' +
  550. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:getManagedDocUri(`END<span class="var pln">$uri`END`PLN) {\n' +
  551. ' `END`KWDlet`END`PLN `END<span class="var pln">$doc`END`PLN := `END<span class="fun pln">fn:doc`END`PLN(`END<span class="var pln">$uri`END`PLN)\n' +
  552. ' `END`KWDlet`END`PLN `END<span class="var pln">$managed_uri`END`PLN := `END<span class="var pln">$doc`END`PLN/property::dls:version/dls:document-uri/`END`KWDtext`END`PLN()\n' +
  553. ' `END`KWDlet`END`PLN `END<span class="var pln">$managed_uri`END`PLN := `END`KWDif`END`PLN(`END<span class="var pln">$managed_uri`END`PLN) `END`KWDthen`END`PLN `END<span class="var pln">$managed_uri`END`PLN `END`KWDelse`END`PLN `END<span class="var pln">$uri`END`PLN\n' +
  554. ' `END`KWDreturn`END`PLN `END<span class="var pln">$managed_uri`END`PLN\n' +
  555. ' };\n' +
  556. ' \n' +
  557. ' `END`COM(:~\n' +
  558. ' : Given a manage content url (e.g. /content/123456.xml) return the appropriate\n' +
  559. ' : version of the document based on what stage collection is being viewed and\n' +
  560. ' : what\'s published\n' +
  561. ' :\n' +
  562. ' : @param $uri a manage content url (e.g. /content/123456.xml) - NOT A VERSIONED URI\n' +
  563. ' :)`END`PLN\n' +
  564. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:doc(`END<span class="var pln">$uri`END`PLN) {\n' +
  565. ' `END`KWDlet`END`PLN `END<span class="var pln">$doc`END`PLN := `END<span class="fun pln">fn:root`END`PLN(comoms-dls:collection()[property::dls:version/dls:document-uri = `END<span class="var pln">$uri`END`PLN][1])\n' +
  566. ' `END`KWDreturn`END`PLN\n' +
  567. ' `END`KWDif`END`PLN(`END<span class="var pln">$doc`END`PLN) `END`KWDthen`END`PLN\n' +
  568. ' `END<span class="var pln">$doc`END`PLN\n' +
  569. ' `END`KWDelse`END`PLN\n' +
  570. ' `END`KWDlet`END`PLN `END<span class="var pln">$managedDocInCollection`END`PLN := comoms-dls:collection-name() = `END<span class="fun pln">xdmp:document-get-collections`END`PLN(`END<span class="var pln">$uri`END`PLN)\n' +
  571. ' `END`KWDreturn`END`PLN\n' +
  572. ' `END`KWDif`END`PLN(`END<span class="var pln">$managedDocInCollection`END`PLN) `END`KWDthen`END`PLN\n' +
  573. ' `END<span class="fun pln">fn:doc`END`PLN(`END<span class="var pln">$uri`END`PLN)\n' +
  574. ' `END`KWDelse`END`PLN\n' +
  575. ' ()\n' +
  576. ' };\n' +
  577. ' \n' +
  578. ' `END`COM(:~\n' +
  579. ' : Get the collection to be used when querying for content\n' +
  580. ' : THIS or comoms-dls:collection-name() SHOULD BE USED WHEN BUILDING ANY QUERY FOR MANAGED CONTENT\n' +
  581. ' :)`END`PLN\n' +
  582. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:collection() {\n' +
  583. ' `END<span class="fun pln">fn:collection`END`PLN( comoms-dls:collection-name() )\n' +
  584. ' };\n' +
  585. ' \n' +
  586. ' `END`COM(:~\n' +
  587. ' : Get the collection nameto be used when querying for content\n' +
  588. ' : THIS or comoms-dls:collection() SHOULD BE USED WHEN BUILDING ANY QUERY FOR MANAGED CONTENT\n' +
  589. ' :)`END`PLN\n' +
  590. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:collection-name() `END`KWDas`END`PLN `END`TYPxs:string`END`PLN {\n' +
  591. ' `END`KWDlet`END`PLN `END<span class="var pln">$default_collection`END`PLN := `END`STR"PUBLISHED"`END`PLN\n' +
  592. ' `END`KWDreturn`END`PLN\n' +
  593. ' `END`KWDif`END`PLN(comoms-user:isAdmin()) `END`KWDthen`END`PLN\n' +
  594. ' `END`KWDlet`END`PLN `END<span class="var pln">$pub_stage_collection_cookie`END`PLN := comoms-util:getCookie(`END`STR"COMOMS_COLLECTION"`END`PLN)\n' +
  595. ' `END`KWDreturn`END`PLN\n' +
  596. ' `END`KWDif`END`PLN(`END<span class="var pln">$pub_stage_collection_cookie`END`PLN) `END`KWDthen`END`PLN\n' +
  597. ' `END<span class="var pln">$pub_stage_collection_cookie`END`PLN\n' +
  598. ' `END`KWDelse`END`PLN\n' +
  599. ' `END<span class="var pln">$default_collection`END`PLN\n' +
  600. ' `END`KWDelse`END`PLN\n' +
  601. ' `END<span class="var pln">$default_collection`END`PLN\n' +
  602. ' };\n' +
  603. ' \n' +
  604. ' `END`COM(:~\n' +
  605. ' : Check if the published collection is being viewed\n' +
  606. ' :)`END`PLN\n' +
  607. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:isViewingPublished() {\n' +
  608. ' `END`KWDif`END`PLN(comoms-dls:collection-name() = `END`STR"PUBLISHED"`END`PLN) `END`KWDthen`END`PLN\n' +
  609. ' `END<span class="fun pln">fn:true`END`PLN()\n' +
  610. ' `END`KWDelse`END`PLN\n' +
  611. ' `END<span class="fun pln">fn:false`END`PLN()\n' +
  612. ' };\n' +
  613. ' \n' +
  614. ' `END`COM(:~\n' +
  615. ' : Get the best URL for the content URI.\n' +
  616. ' : This is either the default URI based on detail type or should also take\n' +
  617. ' : into account friendly urls and navigation structures to figure out the\n' +
  618. ' : best choice\n' +
  619. ' :)`END`PLN\n' +
  620. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:contentUrl(`END<span class="var pln">$uri`END`PLN) {\n' +
  621. ' \n' +
  622. ' `END`COM(: TODO: add friendly URL and nav structure logic 1st :)`END`PLN\n' +
  623. ' \n' +
  624. ' `END`KWDlet`END`PLN `END<span class="var pln">$doc`END`PLN := `END<span class="fun pln">fn:doc`END`PLN(`END<span class="var pln">$uri`END`PLN)\n' +
  625. ' `END`KWDlet`END`PLN `END<span class="var pln">$managedDocUri`END`PLN := `END<span class="var pln">$doc`END`PLN/property::dls:version/dls:document-uri\n' +
  626. ' `END`KWDlet`END`PLN `END<span class="var pln">$uri`END`PLN := `END`KWDif`END`PLN(`END<span class="var pln">$managedDocUri`END`PLN) `END`KWDthen`END`PLN `END<span class="var pln">$managedDocUri`END`PLN `END`KWDelse`END`PLN `END<span class="var pln">$uri`END`PLN\n' +
  627. ' `END`KWDlet`END`PLN `END<span class="var pln">$type`END`PLN := `END<span class="var pln">$doc`END`PLN/`END`KWDnode`END`PLN()/`END<span class="fun pln">fn:name`END`PLN()\n' +
  628. ' `END`KWDlet`END`PLN `END<span class="var pln">$content_id`END`PLN := `END<span class="fun pln">fn:tokenize`END`PLN( `END<span class="fun pln">fn:tokenize`END`PLN(`END<span class="var pln">$uri`END`PLN, `END`STR"/"`END`PLN)[3], `END`STR"\\."`END`PLN)[1]\n' +
  629. ' `END`KWDreturn`END`PLN\n' +
  630. ' `END<span class="fun pln">fn:concat`END`PLN(`END`STR"/"`END`PLN, `END<span class="var pln">$type`END`PLN, `END`STR"/"`END`PLN, `END<span class="var pln">$content_id`END`PLN)\n' +
  631. ' };\n' +
  632. ' \n' +
  633. ' `END`COM(:\n' +
  634. ' :\n' +
  635. ' : gets list of doc versions and uri.\n' +
  636. ' :\n' +
  637. ' :)`END`PLN\n' +
  638. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:versionHistory(`END<span class="var pln">$uri`END`PLN) {\n' +
  639. ' `END`KWDlet`END`PLN `END<span class="var pln">$published_doc`END`PLN := comoms-dls:publishedDoc(`END<span class="var pln">$uri`END`PLN)\n' +
  640. ' `END`KWDlet`END`PLN `END<span class="var pln">$published_uri`END`PLN := `END`KWDif`END`PLN(`END<span class="var pln">$published_doc`END`PLN) `END`KWDthen`END`PLN `END<span class="fun pln">xdmp:node-uri`END`PLN(`END<span class="var pln">$published_doc`END`PLN) `END`KWDelse`END`PLN ()\n' +
  641. ' `END`KWDreturn`END`PLN\n' +
  642. ' `END`TAG&lt;versions&gt;`END`PLN\n' +
  643. ' {\n' +
  644. ' `END`KWDfor`END`PLN `END<span class="var pln">$version`END`PLN `END`KWDin`END`PLN `END<span class="fun pln">dls:document-history`END`PLN(`END<span class="var pln">$uri`END`PLN)/dls:version\n' +
  645. ' `END`KWDlet`END`PLN `END<span class="var pln">$version_num`END`PLN := `END<span class="var pln">$version`END`PLN/dls:version-id/`END`KWDtext`END`PLN()\n' +
  646. ' `END`KWDlet`END`PLN `END<span class="var pln">$created`END`PLN := `END<span class="var pln">$version`END`PLN/dls:created/`END`KWDtext`END`PLN()\n' +
  647. ' `END`KWDlet`END`PLN `END<span class="var pln">$author_id`END`PLN := `END<span class="var pln">$version`END`PLN/dls:author/`END`KWDtext`END`PLN()\n' +
  648. ' `END`KWDlet`END`PLN `END<span class="var pln">$author`END`PLN := comoms-user:getUsername(`END<span class="var pln">$author_id`END`PLN)\n' +
  649. ' \n' +
  650. ' \n' +
  651. ' `END`KWDlet`END`PLN `END<span class="var pln">$note`END`PLN := `END<span class="var pln">$version`END`PLN/dls:annotation/`END`KWDtext`END`PLN()\n' +
  652. ' `END`KWDlet`END`PLN `END<span class="var pln">$version_uri`END`PLN := `END<span class="fun pln">xdmp:node-uri`END`PLN(`END<span class="fun pln">dls:document-version`END`PLN(`END<span class="var pln">$uri`END`PLN, `END<span class="var pln">$version_num`END`PLN))\n' +
  653. ' `END`KWDlet`END`PLN `END<span class="var pln">$published`END`PLN := `END<span class="var pln">$published_uri`END`PLN `END`KWDeq`END`PLN `END<span class="var pln">$version_uri`END`PLN\n' +
  654. ' `END`KWDreturn`END`PLN\n' +
  655. ' `END`TAG&lt;version&gt;`END`PLN\n' +
  656. ' `END`TAG&lt;version-number&gt;`END`PLN{`END<span class="var pln">$version_num`END`PLN}`END`TAG&lt;/version-number&gt;`END`PLN\n' +
  657. ' `END`TAG&lt;created&gt;`END`PLN{`END<span class="var pln">$created`END`PLN}`END`TAG&lt;/created&gt;`END`PLN \n' +
  658. ' `END`TAG&lt;author&gt;`END`PLN{`END<span class="var pln">$author`END`PLN}`END`TAG&lt;/author&gt;`END`PLN\n' +
  659. ' `END`TAG&lt;published&gt;`END`PLN{`END<span class="var pln">$published`END`PLN}`END`TAG&lt;/published&gt;`END`PLN\n' +
  660. ' `END`TAG&lt;version-uri&gt;`END`PLN{`END<span class="var pln">$version_uri`END`PLN}`END`TAG&lt;/version-uri&gt;`END`PLN\n' +
  661. ' `END`TAG&lt;/version&gt;`END`PLN \n' +
  662. ' } \n' +
  663. ' `END`TAG&lt;/versions&gt;`END`PLN\n' +
  664. ' };\n' +
  665. ' \n' +
  666. ' \n' +
  667. ' \n' +
  668. ' \n' +
  669. ' \n' +
  670. ' \n' +
  671. ' `END`COM(: ########################################################################### :)`END`PLN\n' +
  672. ' `END`COM(: PRIVATE FUNCTIONS :)`END`PLN\n' +
  673. ' `END`COM(: ########################################################################### :)`END`PLN\n' +
  674. ' \n' +
  675. ' `END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN comoms-dls:_import() {\n' +
  676. ' `END`STR"xquery version \'1.0-ml\';\n' +
  677. ' import module namespace dls = \'http://marklogic.com/xdmp/dls\' at \'/MarkLogic/dls.xqy\'; "`END`PLN\n' +
  678. ' }; \n' +
  679. ' \n' +
  680. '`END`COM(: ----\n' +
  681. '---- :)`END`PLN\n' +
  682. '`END`KWDxquery`END`PLN `END`KWDversion`END`PLN `END`STR\'1.0-ml\'`END`PLN;\n' +
  683. '`END`KWDdeclare`END`PLN `END`KWDvariable`END`PLN `END<span class="var pln">$URI`END`PLN `END`KWDas`END`PLN `END`TYPxs:string`END`PLN `END`KWDexternal`END`PLN;\n' +
  684. ' \n' +
  685. '`END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN local:document-move-forest(`END<span class="var pln">$uri`END`PLN `END`KWDas`END`PLN `END`TYPxs:string`END`PLN, `END<span class="var pln">$forest-ids`END`PLN `END`KWDas`END`PLN `END`TYPxs:unsignedLong`END`PLN*)\n' +
  686. '{\n' +
  687. ' `END<span class="fun pln">xdmp:document-insert`END`PLN(\n' +
  688. ' `END<span class="var pln">$uri`END`PLN,\n' +
  689. ' `END<span class="fun pln">fn:doc`END`PLN(`END<span class="var pln">$uri`END`PLN),\n' +
  690. ' `END<span class="fun pln">xdmp:document-get-permissions`END`PLN(`END<span class="var pln">$uri`END`PLN),\n' +
  691. ' `END<span class="fun pln">xdmp:document-get-collections`END`PLN(`END<span class="var pln">$uri`END`PLN),\n' +
  692. ' `END<span class="fun pln">xdmp:document-get-quality`END`PLN(`END<span class="var pln">$uri`END`PLN),\n' +
  693. ' `END<span class="var pln">$forest-ids`END`PLN\n' +
  694. ' )\n' +
  695. '};\n' +
  696. ' \n' +
  697. '`END`KWDlet`END`PLN `END<span class="var pln">$xml`END`PLN :=\n' +
  698. ' `END`TAG&lt;xml`END`PLN att=`END`STR"blah"`END`PLN att2=`END`STR"blah"`END`TAG&gt;`END`PLN\n' +
  699. ' sdasd`END`TAG&lt;b&gt;`END`PLNasdasd`END`TAG&lt;/b&gt;`END`PLN\n' +
  700. ' `END`TAG&lt;/xml&gt;`END`PLN\n' +
  701. '`END`COM(: -------- :)`END`PLN\n' +
  702. '`END`KWDfor`END`PLN `END<span class="var pln">$d`END`PLN `END`KWDin`END`PLN `END<span class="fun pln">fn:doc`END`PLN(`END`STR"depts.xml"`END`PLN)/depts/deptno\n' +
  703. '`END`KWDlet`END`PLN `END<span class="var pln">$e`END`PLN := `END<span class="fun pln">fn:doc`END`PLN(`END`STR"emps.xml"`END`PLN)/emps/emp[deptno = `END<span class="var pln">$d`END`PLN]\n' +
  704. '`END`KWDwhere`END`PLN `END<span class="fun pln">fn:count`END`PLN(`END<span class="var pln">$e`END`PLN) &gt;= 10\n' +
  705. '`END`KWDorder`END`PLN `END`KWDby`END`PLN `END<span class="fun pln">fn:avg`END`PLN(`END<span class="var pln">$e`END`PLN/salary) `END`KWDdescending`END`PLN\n' +
  706. '`END`KWDreturn`END`PLN\n' +
  707. ' `END`TAG&lt;big-dept&gt;`END`PLN\n' +
  708. ' {\n' +
  709. ' `END<span class="var pln">$d`END`PLN,\n' +
  710. ' `END`TAG&lt;headcount&gt;`END`PLN{`END<span class="fun pln">fn:count`END`PLN(`END<span class="var pln">$e`END`PLN)}`END`TAG&lt;/headcount&gt;`END`PLN,\n' +
  711. ' `END`TAG&lt;avgsal&gt;`END`PLN{`END<span class="fun pln">fn:avg`END`PLN(`END<span class="var pln">$e`END`PLN/salary)}`END`TAG&lt;/avgsal&gt;`END`PLN\n' +
  712. ' }\n' +
  713. ' `END`TAG&lt;/big-dept&gt;`END`PLN\n' +
  714. '`END`COM(: -------- :)`END`PLN\n' +
  715. '`END`KWDdeclare`END`PLN `END`KWDfunction`END`PLN local:depth(`END<span class="var pln">$e`END`PLN `END`KWDas`END`PLN `END`KWDnode`END`PLN()) `END`KWDas`END`PLN `END`TYPxs:integer`END`PLN\n' +
  716. '{\n' +
  717. ' `END`COM(: A node with no children has depth 1 :)`END`PLN\n' +
  718. ' `END`COM(: Otherwise, add 1 to max depth of children :)`END`PLN\n' +
  719. ' `END`KWDif`END`PLN (`END<span class="fun pln">fn:empty`END`PLN(`END<span class="var pln">$e`END`PLN/*)) `END`KWDthen`END`PLN 1\n' +
  720. ' `END`KWDelse`END`PLN `END<span class="fun pln">fn:max`END`PLN(`END`KWDfor`END`PLN `END<span class="var pln">$c`END`PLN `END`KWDin`END`PLN `END<span class="var pln">$e`END`PLN/* `END`KWDreturn`END`PLN local:depth(`END<span class="var pln">$c`END`PLN)) + 1\n' +
  721. '};\n' +
  722. ' \n' +
  723. 'local:depth(`END<span class="fun pln">fn:doc`END`PLN(`END`STR"partlist.xml"`END`PLN))\n' +
  724. ' \n' +
  725. '`END`COM(: -------- :)`END`PLN\n' +
  726. '`END`TAG&lt;html&gt;&lt;head`END`PLN/`END`TAG&gt;&lt;body&gt;`END`PLN\n' +
  727. '{\n' +
  728. ' `END`KWDfor`END`PLN `END<span class="var pln">$act`END`PLN `END`KWDin`END`PLN `END<span class="fun pln">doc`END`PLN(`END`STR"hamlet.xml"`END`PLN)//ACT\n' +
  729. ' `END`KWDlet`END`PLN `END<span class="var pln">$speakers`END`PLN := `END<span class="fun pln">distinct-values`END`PLN(`END<span class="var pln">$act`END`PLN//SPEAKER)\n' +
  730. ' `END`KWDreturn`END`PLN\n' +
  731. ' `END`TAG&lt;div&gt;`END`PLN{ `END<span class="fun pln">string`END`PLN(`END<span class="var pln">$act`END`PLN/TITLE) }`END`TAG&lt;/h1&gt;`END`PLN\n' +
  732. ' `END`TAG&lt;ul&gt;`END`PLN\n' +
  733. ' {\n' +
  734. ' `END`KWDfor`END`PLN `END<span class="var pln">$speaker`END`PLN `END`KWDin`END`PLN `END<span class="var pln">$speakers`END`PLN\n' +
  735. ' `END`KWDreturn`END`PLN `END`TAG&lt;li&gt;`END`PLN{ `END<span class="var pln">$speaker`END`PLN }`END`TAG&lt;/li&gt;`END`PLN\n' +
  736. ' }\n' +
  737. ' `END`TAG&lt;/ul&gt;`END`PLN\n' +
  738. ' `END`TAG&lt;/div&gt;`END`PLN\n' +
  739. '}\n' +
  740. '`END`TAG&lt;/body&gt;&lt;/html&gt;`END`PLN\n' +
  741. '`END`COM(: -------- :)`END`PLN\n' +
  742. '{\n' +
  743. '\t`END`KWDfor`END`PLN `END<span class="var pln">$book`END`PLN `END`KWDin`END`PLN `END<span class="fun pln">doc`END`PLN(`END`STR"books.xml"`END`PLN)//book\n' +
  744. ' `END`KWDreturn`END`PLN\n' +
  745. '\t`END`KWDif`END`PLN (`END<span class="fun pln">contains`END`PLN(`END<span class="var pln">$book`END`PLN/author/`END`KWDtext`END`PLN(),`END`STR"Herbert"`END`PLN) `END`KWDor`END`PLN `END<span class="fun pln">contains`END`PLN(`END<span class="var pln">$book`END`PLN/author/`END`KWDtext`END`PLN(),`END`STR"Asimov"`END`PLN))\n' +
  746. '\t\t`END`KWDthen`END`PLN `END<span class="var pln">$book`END`PLN\n' +
  747. '\t`END`KWDelse`END`PLN `END<span class="var pln">$book`END`PLN/`END`KWDtext`END`PLN()\n' +
  748. '\t\n' +
  749. '\t`END`KWDlet`END`PLN `END<span class="var pln">$let`END`PLN := `END`TAG&lt;x&gt;`END`STR"test"`END`TAG&lt;/x&gt;`END`PLN\n' +
  750. '\t`END`KWDreturn`END`PLN `END`KWDelement`END`PLN `END`KWDelement`END`PLN {\n' +
  751. '\t`END`KWDattribute`END`PLN `END`KWDattribute`END`PLN { 1 },\n' +
  752. '\t`END`KWDelement`END`PLN test { `END`STR\'a\'`END`PLN },\n' +
  753. '\t`END`KWDattribute`END`PLN foo { `END`STR"bar"`END`PLN },\n' +
  754. '\t`END<span class="fun pln">fn:doc`END`PLN()[ foo/`END`LIT@bar`END`PLN `END`KWDeq`END`PLN `END<span class="var pln">$let`END`PLN ],\n' +
  755. '\t//x }\n' +
  756. '}\n' +
  757. '`END`COM(: -------- :)`END`PLN\n' +
  758. '`END`TAG&lt;bib&gt;`END`PLN\n' +
  759. ' {\n' +
  760. ' `END`KWDfor`END`PLN `END<span class="var pln">$b`END`PLN `END`KWDin`END`PLN `END<span class="fun pln">doc`END`PLN(`END`STR"http://bstore1.example.com/bib.xml"`END`PLN)/bib/book\n' +
  761. ' `END`KWDwhere`END`PLN `END<span class="var pln">$b`END`PLN/publisher = `END`STR"Addison-Wesley"`END`PLN `END`KWDand`END`PLN `END<span class="var pln">$b`END`PLN/`END`LIT@year`END`PLN &gt; 1991\n' +
  762. ' `END`KWDreturn`END`PLN\n' +
  763. ' `END`TAG&lt;book`END`PLN year=`END`STR"`END`PLN{ `END<span class="var pln">$b`END`PLN/`END`LIT@year`END`PLN }`END`STR"`END`TAG&gt;`END`PLN\n' +
  764. ' { `END<span class="var pln">$b`END`PLN/title }\n' +
  765. ' `END`TAG&lt;/book&gt;`END`PLN\n' +
  766. ' }\n' +
  767. '`END`TAG&lt;/bib&gt;`END`PLN\n' +
  768. '`END`COM(: -------- :)`END'),
  769. nemerle: (
  770. '`KWDclass`END`PLN Set `END`PUN[`END`PLN\'a`END`PUN]`END`PLN\n' +
  771. '`END`PUN{`END`PLN\n' +
  772. ' `END`KWDmutable`END`PLN storage `END`PUN:`END`PLN `END`TYPlist`END`PLN `END`PUN[`END`PLN\'a`END`PUN]`END`PLN `END`PUN=`END`PLN `END`PUN[];`END`PLN\n' +
  773. ' `END`KWDpublic`END`PLN Add `END`PUN(`END`PLNe `END`PUN:`END`PLN \'a`END`PUN)`END`PLN `END`PUN:`END`PLN `END`TYPvoid`END`PLN\n' +
  774. ' `END`PUN{`END`PLN\n' +
  775. ' `END`KWDwhen`END`PLN `END`PUN(!`END`PLN Contains `END`PUN(`END`PLNe`END`PUN))`END`PLN\n' +
  776. ' storage `END`PUN::=`END`PLN e`END`PUN;`END`PLN\n' +
  777. ' `END`PUN}`END`PLN\n' +
  778. ' `END`KWDpublic`END`PLN Contains `END`PUN(`END`PLNe `END`PUN:`END`PLN \'a`END`PUN)`END`PLN `END`PUN:`END`PLN `END`TYPbool`END`PLN\n' +
  779. ' `END`PUN{`END`PLN\n' +
  780. ' storage`END`PUN.`END`PLNContains `END`PUN(`END`PLNe`END`PUN)`END`PLN\n' +
  781. ' `END`PUN}`END`PLN\n' +
  782. '`END`PUN}`END`PLN\n' +
  783. ' \n' +
  784. '`END`KWDdef`END`PLN s1 `END`PUN=`END`PLN Set `END`PUN();`END`PLN\n' +
  785. 's1`END`PUN.`END`PLNAdd `END`PUN(`END`LIT3`END`PUN);`END`PLN\n' +
  786. 's1`END`PUN.`END`PLNAdd `END`PUN(`END`LIT42`END`PUN);`END`PLN\n' +
  787. '`END`KWDassert`END`PLN `END`PUN(`END`PLNs1`END`PUN.`END`PLNContains `END`PUN(`END`LIT3`END`PUN));`END`PLN\n' +
  788. '`END`COM// s1.Add ("foo"); // error here!`END`PLN\n' +
  789. '`END`KWDdef`END`PLN s2 `END`PUN=`END`PLN Set `END`PUN();`END`PLN\n' +
  790. 's2`END`PUN.`END`PLNAdd `END`PUN(`END`STR"foo"`END`PUN);`END`PLN\n' +
  791. '`END`KWDassert`END`PLN `END`PUN(`END`PLNs2`END`PUN.`END`PLNContains `END`PUN(`END`STR"foo"`END`PUN));`END'),
  792. latex: (
  793. '`COM% resume.tex`END`PLN\n' +
  794. '`END`COM% vim:set ft=tex spell:`END`PLN\n' +
  795. '`END`KWD\\documentclass`END`PUN[`END`LIT10pt`END`PLN,letterpaper`END`PUN]{`END`PLNarticle`END`PUN}`END`PLN\n' +
  796. '`END`KWD\\usepackage`END`PUN[`END`PLNletterpaper,margin`END`PUN=`END`LIT0.8in`END`PUN]{`END`PLNgeometry`END`PUN}`END`PLN\n' +
  797. '`END`KWD\\usepackage`END`PUN{`END`PLNmdwlist`END`PUN}`END`PLN\n' +
  798. '`END`KWD\\usepackage`END`PUN[`END`PLNT1`END`PUN]{`END`PLNfontenc`END`PUN}`END`PLN\n' +
  799. '`END`KWD\\usepackage`END`PUN{`END`PLNtextcomp`END`PUN}`END`PLN\n' +
  800. '`END`KWD\\pagestyle`END`PUN{`END`PLNempty`END`PUN}`END`PLN\n' +
  801. '`END`KWD\\setlength`END`PUN{`END`KWD\\tabcolsep`END`PUN}{`END`LIT0em`END`PUN}`END'
  802. ),
  803. issue144: (
  804. '`COM#! /bin/bash`END`PLN\n' +
  805. '`END`COM# toascii.sh`END`PLN\n' +
  806. '`END`KWDfor`END`PLN i `END`KWDin`END`PLN $`END`PUN(`END`PLNecho $`END`PUN*' +
  807. '`END`PLN `END`PUN|`END`PLN fold `END`PUN-`END`PLNw `END`LIT1`END`PUN);`END' +
  808. '`KWDdo`END`PLN\n' +
  809. ' printf `END`STR"%x "`END`PLN \\\'$i`END`PUN;`END`PLN\n' +
  810. '`END`KWDdone`END`PUN;`END`PLN\n' +
  811. 'echo`END'
  812. ),
  813. clojure: '`COM; Clojure test comment`END`PLN\n' +
  814. '`END`OPN(`END`KWDns`END`PLN test\n' +
  815. ' `END`OPN(`END`TYP:gen-class`END`CLO))`END`PLN\n' +
  816. '\n' +
  817. '`END`OPN(`END`KWDdef`END`PLN foo `END`STR"bar"`END`CLO)`END`PLN\n' +
  818. '`END`OPN(`END`KWDdefn`END`PLN bar `END`OPN[`END`PLNarg1 arg2 &amp; args`END`CLO]`END`PLN\n' +
  819. ' `END`STR"sample function"`END`PLN\n' +
  820. ' `END`OPN(`END`KWDfor`END`PLN `END`OPN[`END`PLNarg args`END`CLO]`END`PLN\n' +
  821. ' `END`OPN(`END`KWDprn`END`PLN arg`END`CLO)))`END`PLN\n' +
  822. '\n' +
  823. '`END`OPN(`END`PLNbar `END`STR"foo"`END`PLN `END`STR"bar"`END`PLN `END`STR"blah"`END`PLN `END`TYP:baz`END`CLO)`END',
  824. html5conv1: '`COM; foo`END',
  825. html5conv2: '<code class="language-lisp">`COM; foo`END</code>',
  826. html5conv3: ('<code class="language-lisp">`PLN\n' +
  827. '`END`COM; foo`END`PLN\n' +
  828. '`END</code>\n'),
  829. html5conv4: ('`PLNbefore CODE\n' +
  830. '`END<code class="language-lisp">`PUN;`END`PLN foo`END</code>\n')
  831. };
  832. </script>
  833. </html>