Skip to content

Commit 1ddfce4

Browse files
committed
gzip the docs/* json and html files
1 parent 0b36389 commit 1ddfce4

File tree

1 file changed

+29
-20
lines changed

1 file changed

+29
-20
lines changed

udapi/block/write/corefhtml.py

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from udapi.core.coref import span_to_nodes, CorefEntity, CorefMention
1818
from collections import Counter
1919
import udapi.block.write.html
20+
import gzip
2021
import sys
2122
import os
2223

@@ -26,6 +27,7 @@
2627
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8">
2728
<title>Udapi CorefUD viewer</title>
2829
<script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>
30+
<script src="https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako.min.js"></script>
2931
'''
3032

3133
CSS = '''
@@ -87,21 +89,26 @@
8789
$("#main-menu").toggle();
8890
}
8991
90-
function load_doc(doc_num) {
92+
async function load_doc(doc_num) {
9193
loading_now = true;
92-
console.log("loading doc" + doc_num + ".html");
93-
$.get(docs_dir + "/doc" + doc_num + ".html", function(data){
94-
$("#main").append(data);
95-
add_mention_listeners($("#doc" + doc_num + " .m"));
96-
$("#doc" + doc_num + " .sentence").each(add_show_tree_button);
97-
loading_now = false;
98-
}).fail(function(){
94+
let filename = docs_dir + "/doc" + doc_num + ".html.gz"
95+
console.log("loading " + filename);
96+
try {
97+
const res = await fetch(filename);
98+
let raw = await res.arrayBuffer();
99+
data = pako.inflate(raw, {to: "string"});
100+
} catch (error){
99101
if (! load_fail_reported) {
100102
load_fail_reported = true;
101-
alert("Cannot load " + docs_dir + "/doc" + doc_num
102-
+ ".html\\nLocal files do not support lazy loading. Run a web server 'python -m http.server'");
103+
alert("Cannot load " + filename + "\\nLocal files do not support lazy loading."
104+
+ " Run a web server 'python -m http.server'\\n"
105+
+ "error = " + error);
103106
}
104-
});
107+
}
108+
$("#main").append(data);
109+
add_mention_listeners($("#doc" + doc_num + " .m"));
110+
$("#doc" + doc_num + " .sentence").each(add_show_tree_button);
111+
loading_now = false;
105112
}
106113
107114
var docs_loaded = 1;
@@ -126,7 +133,7 @@
126133
add_show_tree_button = function(index, el){
127134
var sent_id = el.id;
128135
$(el).prepend(
129-
$("<button>", {append: "🌲", id:"button-"+sent_id, title: "show dependency tree", class: "showtree"}).on("click", function() {
136+
$("<button>", {append: "🌲", id:"button-"+sent_id, title: "show dependency tree", class: "showtree"}).on("click", async function() {
130137
var tree_div = $("#tree-"+sent_id);
131138
if (tree_div.length == 0){
132139
$('#button-'+sent_id).attr('title', 'hide dependency tree');
@@ -135,16 +142,18 @@
135142
if (docs_json[doc_number]){
136143
show_tree_in_tdiv(tdiv, doc_number, index);
137144
} else {
138-
$.getJSON(docs_dir + "/doc" + doc_number + ".json", function(data){
139-
docs_json[doc_number] = data;
145+
try {
146+
console.log("loading doc" + doc_number + ".json.gz");
147+
const res = await fetch(docs_dir + "/doc" + doc_number + ".json.gz");
148+
let raw = await res.arrayBuffer();
149+
docs_json[doc_number] = JSON.parse(pako.inflate(raw, {to: "string"}));
140150
show_tree_in_tdiv(tdiv, doc_number, index);
141-
}).fail(function(){
151+
} catch(error) {
142152
if (! load_json_fail_reported) {
143153
load_json_fail_reported = true;
144-
alert("Cannot load " + docs_dir + "/doc" + doc_number
145-
+ ".json\\nLocal files do not support lazy loading. Run a web server 'python -m http.server'");
154+
alert("Cannot load " + docs_dir + "/doc" + doc_number + ".json.gz:\\n" + error);
146155
}
147-
});
156+
}
148157
}
149158
} else {tree_div.remove();}
150159
})
@@ -257,7 +266,7 @@ def process_document(self, doc):
257266
orig_stdout = sys.stdout
258267
try:
259268
for i, ud_doc in enumerate(ud_docs[1:], 2):
260-
sys.stdout = open(f"{self.docs_dir}/doc{i}.html", 'wt')
269+
sys.stdout = gzip.open(f"{self.docs_dir}/doc{i}.html.gz", 'wt')
261270
self.process_ud_doc(ud_doc, i)
262271
sys.stdout.close()
263272
finally:
@@ -271,7 +280,7 @@ def process_document(self, doc):
271280
print('];')
272281
try:
273282
for i, ud_doc in enumerate(ud_docs[1:], 2):
274-
sys.stdout = open(f"{self.docs_dir}/doc{i}.json", 'wt')
283+
sys.stdout = gzip.open(f"{self.docs_dir}/doc{i}.json.gz", 'wt')
275284
WRITE_HTML.print_doc_json(ud_doc)
276285
sys.stdout.close()
277286
finally:

0 commit comments

Comments
 (0)