mirror of
https://github.com/k4m4/movies-for-hackers.git
synced 2024-11-01 04:05:26 +00:00
Movie list markdown JS parsing to collection of objects
This commit is contained in:
parent
00beee1b5f
commit
cdaa5ce9bc
14
index.html
14
index.html
@ -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
58
webapp/js/app.js
Normal 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();
|
Loading…
Reference in New Issue
Block a user