+++ /dev/null
-#!/usr/bin/env python
-
-from __future__ import print_function
-import sys
-import os
-import glob
-from optparse import OptionParser
-
-from util import Reporter, read_markdown, IMAGE_FILE_SUFFIX
-
-def main():
- """Main driver."""
-
- args = parse_args()
- images = []
- for filename in args.filenames:
- images += get_images(args.parser, filename)
- save(sys.stdout, images)
-
-
-def parse_args():
- """Parse command-line arguments."""
-
- parser = OptionParser()
- parser.add_option('-p', '--parser',
- default=None,
- dest='parser',
- help='path to Markdown parser')
-
- args, extras = parser.parse_args()
- require(args.parser is not None,
- 'Path to Markdown parser not provided')
- require(extras,
- 'No filenames specified')
-
- args.filenames = extras
- return args
-
-
-def get_filenames(source_dir):
- """Get all filenames to be searched for images."""
-
- return glob.glob(os.path.join(source_dir, '*.md'))
-
-
-def get_images(parser, filename):
- """Extract all images from file."""
-
- content = read_markdown(parser, filename)
- result = []
- find_image_nodes(content['doc'], result)
- find_image_links(content['doc'], result)
- return result
-
-
-def find_image_nodes(doc, result):
- """Find all nested nodes representing images."""
-
- if (doc['type'] == 'img') or \
- ((doc['type'] == 'html_element') and (doc['value'] == 'img')):
- alt = doc['attr'].get('alt', '')
- result.append({'alt': alt, 'src': doc['attr']['src']})
- else:
- for child in doc.get('children', []):
- find_image_nodes(child, result)
-
-
-def find_image_links(doc, result):
- """Find all links to files in the 'fig' directory."""
-
- if ((doc['type'] == 'a') and ('attr' in doc) and ('href' in doc['attr'])) \
- or \
- ((doc['type'] == 'html_element') and (doc['value'] == 'a') and ('href' in doc['attr'])):
- path = doc['attr']['href']
- if os.path.splitext(path)[1].lower() in IMAGE_FILE_SUFFIX:
- result.append({'alt':'', 'src': doc['attr']['href']})
- else:
- for child in doc.get('children', []):
- find_image_links(child, result)
-
-
-def save(stream, images):
- """Save results as Markdown."""
-
- text = '\n<hr/>\n'.join(['<p><img alt="{0}" src="{1}" /></p>'.format(img['alt'], img['src']) for img in images])
- print(text, file=stream)
-
-
-def require(condition, message):
- """Fail if condition not met."""
-
- if not condition:
- print(message, file=sys.stderr)
- sys.exit(1)
-
-
-if __name__ == '__main__':
- main()
layout: page
title: Figures
---
-{% include all_figures.html %}
+<script>
+ window.onload = function() {
+ var lesson_episodes = [
+ {% for episode in site.episodes %}
+ "{{ episode.url}}"{% unless forloop.last %},{% endunless %}
+ {% endfor %}
+ ];
+ var xmlHttp = []; /* Required since we are going to query every episode. */
+ for (i=0; i < lesson_episodes.length; i++) {
+ xmlHttp[i] = new XMLHttpRequest();
+ xmlHttp[i].episode = lesson_episodes[i]; /* To enable use this later. */
+ xmlHttp[i].onreadystatechange = function() {
+ if (this.readyState == 4 && this.status == 200) {
+ var article_here = document.getElementById(this.episode);
+ var parser = new DOMParser();
+ var htmlDoc = parser.parseFromString(this.responseText,"text/html");
+ var htmlDocArticle = htmlDoc.getElementsByTagName("article")[0];
+ article_here.appendChild(htmlDocArticle.getElementsByTagName("h1")[0]);
+ for (let image of htmlDocArticle.getElementsByTagName("img")) {
+ article_here.appendChild(image);
+ }
+ }
+ }
+ episode_url = "{{ page.root }}" + lesson_episodes[i];
+ xmlHttp[i].open("GET", episode_url);
+ xmlHttp[i].send(null);
+ }
+ }
+</script>
+{% comment %}
+Create anchor for each one of the episodes.
+{% endcomment %}
+{% for episode in site.episodes %}
+<article id="{{ episode.url }}"></article>
+{% endfor %}
'''
EXTRAS_GUIDE_MD = '''\
FIXME
'''
-INCLUDES_ALL_FIGURES_HTML = '''\
-<!-- empty -->
-'''
-
BOILERPLATE = (
('AUTHORS', ROOT_AUTHORS),
('CITATION', ROOT_CITATION),
('_extras/discuss.md', EXTRAS_DISCUSS_MD),
('_extras/figures.md', EXTRAS_FIGURES_MD),
('_extras/guide.md', EXTRAS_GUIDE_MD),
- ('_includes/all_figures.html', INCLUDES_ALL_FIGURES_HTML)
)