syntax.js 938 B

123456789101112131415161718192021222324252627282930313233343536
  1. 'use strict';
  2. import $ from 'jquery';
  3. const languageAliases = {
  4. 'html': 'xml',
  5. 'c': 'cpp',
  6. };
  7. $(function () {
  8. $('code[class^="language-"]').each(function () {
  9. const nightMode = $('body').hasClass('night-mode');
  10. let language = this.className.replace(/.*language-(\S+).*/, '$1');
  11. if (languageAliases.hasOwnProperty(language)) {
  12. language = languageAliases[language];
  13. }
  14. const theme = nightMode ? 'darkula' : 'tomorrow';
  15. Promise.all([
  16. import('highlight.js/lib/highlight'),
  17. import(`highlight.js/lib/languages/${language}`),
  18. import(`highlight.js/styles/${theme}.css`),
  19. ]).then(imports => {
  20. const [hljs, definition] = imports;
  21. hljs.registerLanguage(language, definition);
  22. hljs.highlightBlock(this);
  23. }).catch(e => {
  24. console && console.log(e);
  25. });
  26. });
  27. });