mirror of
https://github.com/k4m4/movies-for-hackers.git
synced 2024-11-01 12:15:24 +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