content.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. function injectCSS () {
  2. var link = document.createElement('link');
  3. link.rel = 'stylesheet';
  4. link.type = 'text/css';
  5. link.href = '#';
  6. link.id = 'theme';
  7. document.head.appendChild(link);
  8. };
  9. $(function () {
  10. injectCSS();
  11. $('body').addClass('markdown-body');//github
  12. $('pre').attr('id', 'markdown').hide();
  13. chrome.extension.sendMessage({
  14. message: 'markdown',
  15. markdown: $('#markdown').text()
  16. }, function (res) {
  17. $('body').append('<div id="html">').find('#html').append(res.marked);
  18. Prism.highlightAll();
  19. });
  20. chrome.extension.sendMessage({
  21. message: 'settings',
  22. }, function (data) {
  23. $('#theme').attr('href', chrome.extension.getURL('/themes/'+data.theme+'.css'));
  24. $('#theme').attr('disabled', data.raw);
  25. $('#markdown')[data.raw?'show':'hide']();
  26. $('#html')[data.raw?'hide':'show']();
  27. });
  28. });
  29. chrome.extension.onMessage.addListener(function (req, sender, sendResponse) {
  30. switch (req.message) {
  31. case 'reload':
  32. window.location.reload(true);
  33. break;
  34. case 'theme':
  35. var raw = $('#theme').attr('disabled') == 'disabled';
  36. $('#theme').remove();
  37. injectCSS();
  38. $('#theme').attr('href', chrome.extension.getURL('/themes/'+req.theme+'.css'));
  39. $('#theme').attr('disabled', raw);
  40. break;
  41. case 'raw':
  42. $('#theme').attr('disabled', !($('#theme').attr('disabled') == 'disabled'));
  43. $('#markdown, #html').toggle();
  44. break;
  45. }
  46. });