parsing.js 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // transformer les balises [...] en <div class="...">
  2. let bodyContent = $('#body').html()
  3. .replace(/\[([^\/\]]+)\]/g, '<div class="$1">')
  4. .replace(/\[\/([^\]]+)\]/g, '</div>');
  5. $('#body').empty().append(bodyContent);
  6. // isoler les chiffres des titres
  7. let moments = document.getElementsByClassName("moment");
  8. for(let i = 0; i < moments.length; i++) {
  9. moments[i].innerHTML = "<span class='first-letter'>" + moments[i].innerHTML.substring(0, moments[i].innerHTML.indexOf('—')) + "</span>" + moments[i].innerHTML.slice(moments[i].innerHTML.indexOf(' —'));
  10. }
  11. // cleaner le balisage des éléments contenant plusieurs paragraphes
  12. let contentToParse = [];
  13. let labeurs = document.getElementsByClassName("labeur");
  14. for(let i = 0; i < labeurs.length; i++) {
  15. contentToParse.push(labeurs[i]);
  16. }
  17. let latours = document.getElementsByClassName("latour");
  18. for(let i = 0; i < latours.length; i++) {
  19. contentToParse.push(latours[i]);
  20. }
  21. let lampes = document.getElementsByClassName("lampe");
  22. for(let i = 0; i < lampes.length; i++) {
  23. contentToParse.push(lampes[i]);
  24. }
  25. for(let i = 0; i < contentToParse.length; i++) {
  26. if (contentToParse[i].childNodes.length == 1) {
  27. contentToParse[i].innerHTML = '<p>' + contentToParse[i].innerHTML + '</p>';
  28. } else {
  29. contentToParse[i].innerHTML = "<p>" + contentToParse[i].innerHTML.replace("<p>", "");
  30. }
  31. // headers latour / lampe
  32. if (contentToParse[i].classList.contains("latour")) {
  33. contentToParse[i].childNodes[0].innerHTML = "<div class='latour-header'><div><img src='{{ url('theme://assets/map.png') }}' alt='carte'></div><div>" + contentToParse[i].childNodes[0].innerHTML + "</div></div>";
  34. } else if (contentToParse[i].classList.contains("lampe")) {
  35. contentToParse[i].childNodes[0].innerHTML = "<div class='lampe-header'><div><img src='{{ url('theme://assets/lampe.png') }}' alt='lampe'></div><div>" + contentToParse[i].childNodes[0].innerHTML + "</div></div>";
  36. }
  37. // micro-typo
  38. for(j = 0; j < contentToParse[i].childNodes.length; j++) {
  39. let contentHTML = contentToParse[i].childNodes[j].innerHTML;
  40. if (contentHTML != undefined) {
  41. contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' :', '&nbsp;:');
  42. contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' ?', '&nbsp;?');
  43. contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' !', '&nbsp;!');
  44. contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll('« ', '«&nbsp;');
  45. contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' »', '&nbsp;»');
  46. contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll('“', '«&nbsp;');
  47. contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll('”', '&nbsp;»');
  48. contentToParse[i].childNodes[j].innerHTML = contentToParse[i].childNodes[j].innerHTML.replaceAll(' min', '&nbsp;min');
  49. }
  50. }
  51. }