Parcourir la source

eur-lex: add the annexes to the TOC too.

Adrien Nader il y a 8 ans
Parent
commit
15f79285c7
1 fichiers modifiés avec 40 ajouts et 6 suppressions
  1. 40 6
      eur-lex/eur-lex_toc.user.js

+ 40 - 6
eur-lex/eur-lex_toc.user.js

@@ -30,17 +30,28 @@ style.innerHTML = '\
   margin: 0.5em;\
   border-radius: 0.2em;\
 }\
+#the-toc-this-website-lacks h1 {\
+  text-align: center;\
+  font-size: x-large;\
+}\
 ';
 
 var toc = document.createElement('div');
 var toc_ltr = document.createElement('div');
 var fold_button = document.createElement('button');
-var ol = document.createElement('ol');
+var h1_articles = document.createElement('h1');
+var ol_articles = document.createElement('ol');
+var h1_annexes = document.createElement('h1');
+var ol_annexes = document.createElement('ol');
+
+h1_articles.textContent = 'Articles';
+h1_annexes.textContent = 'Annexes';
 
-var article_titles = document.evaluate("//p[@class='ti-art']",
+var article_titles = document.evaluate("//div[@lang='EN']/p[@class='ti-art']",
   document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
 
-var buf = "";
+var annex_titles = document.evaluate("//div[@lang='EN']/div[@id]/p[1][@class='doc-ti']",
+  document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
 
 for (var i = 0; i < article_titles.snapshotLength; i++) {
   var id = article_titles.snapshotItem(i);
@@ -52,10 +63,30 @@ for (var i = 0; i < article_titles.snapshotLength; i++) {
   
   var li = document.createElement('li');
   var a = document.createElement('a');
-  a.href = '#article-' + n;
+  a.href = '#' + id.id;
+  a.textContent = title.textContent;
+  li.appendChild(a);
+  ol_articles.appendChild(li);
+}
+
+for (var i = 0; i < annex_titles.snapshotLength; i++) {
+  var id = annex_titles.snapshotItem(i);
+  var title = id.nextElementSibling;
+
+  if (id.textContent === 'STATEMENT OF THE EUROPEAN PARLIAMENT') {
+    continue;
+  }
+
+  var n = id.textContent.replace(/ANNEX /, '');
+
+  id.id = 'annex-' + n;
+
+  var li = document.createElement('li');
+  var a = document.createElement('a');
+  a.href = '#' + id.id;
   a.textContent = title.textContent;
   li.appendChild(a);
-  ol.appendChild(li);
+  ol_annexes.appendChild(li);
 }
 
 fold_button.textContent = "(Un)Fold TOC";
@@ -77,7 +108,10 @@ fold_button.onclick = (function() {
 })();
 
 toc_ltr.appendChild(fold_button);
-toc_ltr.appendChild(ol);
+toc_ltr.appendChild(h1_articles);
+toc_ltr.appendChild(ol_articles);
+toc_ltr.appendChild(h1_annexes);
+toc_ltr.appendChild(ol_annexes);
 toc.appendChild(toc_ltr);
 document.getElementsByTagName('body')[0].appendChild(toc);
 document.getElementsByTagName('head')[0].appendChild(style);