12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- Prism.languages.treeview = {
- "treeview-part": {
- pattern: /(^|\n).+/,
- inside: {
- "entry-line": [
- {
- pattern: /\|-- |├── /,
- alias: "line-h"
- },
- {
- pattern: /\| |│ /,
- alias: "line-v"
- },
- {
- pattern: /`-- |└── /,
- alias: "line-v-last"
- },
- {
- pattern: / {4}/,
- alias: "line-v-gap"
- }
- ],
- "entry-name": {
- pattern: /.*\S.*/,
- inside: {
- // symlink
- "operator": / -> /,
- }
- }
- }
- }
- };
- Prism.hooks.add('wrap', function(env) {
- if (env.language === 'treeview') {
- // Remove line breaks
- if(env.type === 'treeview-part') {
- env.content = env.content.replace(/\n/g,'')+'<br />';
- }
- if(env.type === 'entry-name') {
- if(/(^|[^\\])\/\s*$/.test(env.content)) {
- env.content = env.content.slice(0,-1);
- // This is a folder
- env.classes.push('dir');
- } else {
- if(/(^|[^\\])[=*|]\s*$/.test(env.content)) {
- env.content = env.content.slice(0,-1);
- }
-
- var parts = env.content.toLowerCase().split('.');
- while (parts.length > 1) {
- parts.shift();
- // Ex. 'foo.min.js' would become '<span class="token keyword ext-min-js ext-js">foo.min.js</span>'
- env.classes.push('ext-' + parts.join('-'));
- }
- }
- if(env.content.charAt(0)==='.') {
- env.classes.push('dotfile');
- }
- }
- }
- });
|