17
17
from udapi .core .coref import span_to_nodes , CorefEntity , CorefMention
18
18
from collections import Counter
19
19
import udapi .block .write .html
20
+ import gzip
20
21
import sys
21
22
import os
22
23
26
27
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8">
27
28
<title>Udapi CorefUD viewer</title>
28
29
<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>
29
31
'''
30
32
31
33
CSS = '''
87
89
$("#main-menu").toggle();
88
90
}
89
91
90
- function load_doc(doc_num) {
92
+ async function load_doc(doc_num) {
91
93
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 ){
99
101
if (! load_fail_reported) {
100
102
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);
103
106
}
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;
105
112
}
106
113
107
114
var docs_loaded = 1;
126
133
add_show_tree_button = function(index, el){
127
134
var sent_id = el.id;
128
135
$(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() {
130
137
var tree_div = $("#tree-"+sent_id);
131
138
if (tree_div.length == 0){
132
139
$('#button-'+sent_id).attr('title', 'hide dependency tree');
135
142
if (docs_json[doc_number]){
136
143
show_tree_in_tdiv(tdiv, doc_number, index);
137
144
} 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"}));
140
150
show_tree_in_tdiv(tdiv, doc_number, index);
141
- }).fail(function() {
151
+ } catch(error) {
142
152
if (! load_json_fail_reported) {
143
153
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);
146
155
}
147
- });
156
+ }
148
157
}
149
158
} else {tree_div.remove();}
150
159
})
@@ -257,7 +266,7 @@ def process_document(self, doc):
257
266
orig_stdout = sys .stdout
258
267
try :
259
268
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' )
261
270
self .process_ud_doc (ud_doc , i )
262
271
sys .stdout .close ()
263
272
finally :
@@ -271,7 +280,7 @@ def process_document(self, doc):
271
280
print ('];' )
272
281
try :
273
282
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' )
275
284
WRITE_HTML .print_doc_json (ud_doc )
276
285
sys .stdout .close ()
277
286
finally :
0 commit comments