aboutsummaryrefslogtreecommitdiff
path: root/plugin/markdown
diff options
context:
space:
mode:
authorJakub Holy <jakub.holy@iterate.no>2013-03-24 17:58:01 +0100
committerJakub Holy <jakub.holy@iterate.no>2013-03-24 18:06:44 +0100
commit8fd28a91858d5a530a73773591a199c1091b74c1 (patch)
treeac38b0df814dfd5da3f2ae671953a24367d05dee /plugin/markdown
parentd2cf21028eac378bdefe145fefa6d49841ecea1c (diff)
downloadperl-software-in-gnu-guix-8fd28a91858d5a530a73773591a199c1091b74c1.tar
perl-software-in-gnu-guix-8fd28a91858d5a530a73773591a199c1091b74c1.tar.gz
Better error reporting for external Markdown files
1. Show an alert when loading the file throws an exception 2. Whenever the status isn't success (2xx) - upon exception or e.g. "file not found" - replace the section's content with information about the failure (instead of being silent about it and showing a blank slide). We need to inform the user something went wrong, not just be silent about it. An experienced developer, upon seing a blank slide, will likely check the javascript console - but the rest will profit from being told about the problem (and solution) explicitely.
Diffstat (limited to 'plugin/markdown')
-rw-r--r--plugin/markdown/markdown.js13
1 files changed, 11 insertions, 2 deletions
diff --git a/plugin/markdown/markdown.js b/plugin/markdown/markdown.js
index b6b5a9b..11a6fc2 100644
--- a/plugin/markdown/markdown.js
+++ b/plugin/markdown/markdown.js
@@ -101,12 +101,21 @@
xhr.onreadystatechange = function () {
if( xhr.readyState === 4 ) {
- section.outerHTML = slidifyMarkdown( xhr.responseText, section.getAttribute('data-separator'), section.getAttribute('data-vertical') );
+ if (xhr.status >= 200 && xhr.status < 300) {
+ section.outerHTML = slidifyMarkdown( xhr.responseText, section.getAttribute('data-separator'), section.getAttribute('data-vertical') );
+ } else {
+ section.outerHTML = '<section data-state="alert">ERROR: The attempt to fetch ' + url + ' failed with the HTTP status ' + xhr.status +
+ '. Check your browser\'s JavaScript console for more details.</section>';
+ }
}
};
xhr.open('GET', url, false);
- xhr.send();
+ try {
+ xhr.send();
+ } catch (e) {
+ alert('Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e);
+ }
} else if( section.getAttribute('data-separator') ) {