diff options
| author | Yuchen Pei <hi@ypei.me> | 2022-09-19 11:22:21 +1000 | 
|---|---|---|
| committer | Yuchen Pei <hi@ypei.me> | 2022-09-19 11:22:21 +1000 | 
| commit | ef1b927861f9a949aed20341144ffb5bfd42f038 (patch) | |
| tree | 48bd4688928546bedc6504aad76bf6e0327fcef9 /javascript/app/components/text-file.js | |
| parent | 117850d8f659517cb818a857dc04c8f5157795c4 (diff) | |
Removing the web client
Diffstat (limited to 'javascript/app/components/text-file.js')
| -rw-r--r-- | javascript/app/components/text-file.js | 67 | 
1 files changed, 0 insertions, 67 deletions
diff --git a/javascript/app/components/text-file.js b/javascript/app/components/text-file.js deleted file mode 100644 index 2239571..0000000 --- a/javascript/app/components/text-file.js +++ /dev/null @@ -1,67 +0,0 @@ -/* global showdown */ -import Ember from 'ember'; -import {initializeLineSelection} from '../utils/line-selection'; - -function escapeHtml(text) { -  return text.replace(/[\"&<>]/g, function (a) { -    return { '"': '"', '&': '&', '<': '<', '>': '>' }[a]; -  }); -} - -function addLineNumbers (text) { -  const start = "<table class='source-code'><tbody>"; -  const end = "</tbody></table>"; -  let lineNumber = 0; -  const lines = text.split("\n").map((line) => { -    lineNumber ++; -    const lineNumberHtml = "<td id='LN"+lineNumber+"' class='line-number'>"+lineNumber+"</td>"; -    const lineContentHtml = "<td id='LC"+lineNumber+"' class='line-content'>"+escapeHtml(line)+"</td>"; -    return "<tr>"+ lineNumberHtml + lineContentHtml + "</tr>"; -  }).join(""); -  return start + lines + end; -} - -const markdownExtensions = ["markdown", "mdown", "mkdn", "mkd", "md"]; - -export default Ember.Component.extend({ -  isMarkdown : Ember.computed('path',function() { -    const maybeExtension = this.get('path').split('.').pop(); -    return markdownExtensions.any((extension) => (maybeExtension === extension)); -  }), -  html : Ember.computed('path','isMarkdown',function() { -    if(this.get('isMarkdown')) { -      return this.markdownConverter.makeHtml(this.get('text')); -    } else { -      return addLineNumbers(this.get('text')); -    } -  }), -  init() { -    this._super(...arguments); -    this.markdownConverter = new showdown.Converter(); -  }, -  didInsertElement() { -    const sourceCodeContainerElement = this.element.querySelector('.source-code-container'); -    initializeLineSelection(sourceCodeContainerElement,this); -    this.element.parentNode.scrollTop = 0; -  }, -  willDestroyElement : function () { -    this.cleanup(); -  }, -  cleanup() { -    if(this._onhashchange) { -      window.removeEventListener('hashchange',this._onhashchange); -    } -    if(this._onkeydown) { -      document.removeEventListener('keydown',this._onkeydown); -    } -    if(this._onkeyup) { -      document.removeEventListener('keyup',this._onkeyup); -    } -  }, -  pathObserver : Ember.observer('path',function() { -    Ember.run.next(this,() => { -      this.cleanup(); -      this.didInsertElement(); -    }); -  }) -});  | 
