1/** 2 * @license 3 * Copyright (C) 2009 Google Inc. 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18/** 19 * @fileoverview 20 * Registers a language handler for Wiki pages. 21 * 22 * Based on WikiSyntax at http://code.google.com/p/support/wiki/WikiSyntax 23 * 24 * @author mikesamuel@gmail.com 25 */ 26 27PR['registerLangHandler']( 28 PR['createSimpleLexer']( 29 [ 30 // Whitespace 31 [PR['PR_PLAIN'], /^[\t \xA0a-gi-z0-9]+/, null, 32 '\t \xA0abcdefgijklmnopqrstuvwxyz0123456789'], 33 // Wiki formatting 34 [PR['PR_PUNCTUATION'], /^[=*~\^\[\]]+/, null, '=*~^[]'] 35 ], 36 [ 37 // Meta-info like #summary, #labels, etc. 38 ['lang-wiki.meta', /(?:^^|\r\n?|\n)(#[a-z]+)\b/], 39 // A WikiWord 40 [PR['PR_LITERAL'], /^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/ 41 ], 42 // A preformatted block in an unknown language 43 ['lang-', /^\{\{\{([\s\S]+?)\}\}\}/], 44 // A block of source code in an unknown language 45 ['lang-', /^`([^\r\n`]+)`/], 46 // An inline URL. 47 [PR['PR_STRING'], 48 /^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i], 49 [PR['PR_PLAIN'], /^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/] 50 ]), 51 ['wiki']); 52 53PR['registerLangHandler']( 54 PR['createSimpleLexer']([[PR['PR_KEYWORD'], /^#[a-z]+/i, null, '#']], []), 55 ['wiki.meta']); 56