Movie list markdown JS parsing to collection of objects

This commit is contained in:
MichaelCook 2017-02-23 14:15:13 +00:00
parent 00beee1b5f
commit cdaa5ce9bc
2 changed files with 71 additions and 1 deletions

View File

@ -1 +1,13 @@
let's do this!
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Movies for Hackers</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.6/marked.min.js"></script>
<script src="webapp/js/app.js"></script>
</head>
<body>
</body>
</html>

58
webapp/js/app.js Normal file
View File

@ -0,0 +1,58 @@
var client = new XMLHttpRequest(),
objectifyMarkdownNotWomen = new marked.Renderer(),
moviesCollection,
movies,
cellCounter = 0,
lastHeading = '',
headers = ['movie', 'genre', 'year', 'rating'];
objectifyMarkdownNotWomen.heading = function(heading, level) {
lastHeading = heading;
};
objectifyMarkdownNotWomen.tablerow = function(content) {
cellCounter = 0;
movies.push({});
};
objectifyMarkdownNotWomen.tablecell = function(content, flags) {
movies[movies.length - 1][headers[cellCounter]] = content;
cellCounter++;
};
objectifyMarkdownNotWomen.table = function(header, body) {
// Test if the first movie object is actually just the headers (which it will be)
if (movies[0][headers[0]].toLowerCase() == headers[0]) {
movies.splice(0, 1);
}
// Similarly, test if the very last movie object is empty and pop it
if (movies[movies.length - 1][headers[0]] == null) {
movies.pop();
}
// Add movies to collection
moviesCollection.push({
heading: lastHeading,
movies: movies
});
movies = [{}];
};
client.open('GET', '../../README.md');
client.onreadystatechange = function(e) {
// Whipe movies and collections as this'll run a bunch of times
moviesCollection = [];
movies = [{}];
/*
// Test markdown:
marked("## Thrillers / Drama\n\n| MOVIE | GENRE | YEAR | RATING |\n|--------------------------------------------------------------------------------------------|---------------------------|------|--------|\n| [WarGames: The Dead Code](http://www.imdb.com/title/tt0865957/) | Thriller/Drama | 2008 | 4.5/10 |\n| [WarGames](http://www.imdb.com/title/tt0086567/) | Thriller/Drama | 1983 | 7.1/10 |\n| [Hackers](http://www.imdb.com/title/tt0113243/) | Crime/Drama | 1995 | 6.2/10 |\n\n## Science Fiction / Fantasy\n\n| MOVIE | GENRE | YEAR | RATING |\n|--------------------------------------------------------------------------------------------|---------------------------|------|--------|\n| [The Matrix](http://www.imdb.com/title/tt0133093/) | Fantasy/Action | 1999 | 8.7/10 |\n| [The Lawnmower Man](http://www.imdb.com/title/tt0104692/) | Fantasy/Action | 1992 | 5.4/10 |", {
*/
marked(client.responseText, {
renderer: objectifyMarkdownNotWomen
}, function() {
console.log(moviesCollection);
document.body.innerHTML = JSON.stringify(moviesCollection);
});
};
client.send();