Everything is dynamic now. Let's go for styling.
This commit is contained in:
parent
80d0d2909b
commit
360ece9a7c
@ -26,7 +26,7 @@
|
|||||||
"scripts": [
|
"scripts": [
|
||||||
"../node_modules/jquery/dist/jquery.min.js",
|
"../node_modules/jquery/dist/jquery.min.js",
|
||||||
"../node_modules/bootstrap/dist/js/bootstrap.min.js",
|
"../node_modules/bootstrap/dist/js/bootstrap.min.js",
|
||||||
"../node_modules/popper.js/dist/popper.min.js"
|
"../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"
|
||||||
],
|
],
|
||||||
"environmentSource": "environments/environment.ts",
|
"environmentSource": "environments/environment.ts",
|
||||||
"environments": {
|
"environments": {
|
||||||
|
|||||||
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"python.linting.pylintEnabled": false
|
||||||
|
}
|
||||||
@ -1,7 +1,7 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">Placeholder title</h5>
|
<h5 class="card-title">{{post.title}}</h5>
|
||||||
<h6 class="card-subtitle mb-2 text-muted">Card subtitle</h6>
|
<h6 class="card-subtitle mb-2 text-muted">{{post.type}}</h6>
|
||||||
<div class="card-text" #htmlcontainer></div>
|
<div class="card-text" #htmlcontainer></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -16,9 +16,10 @@ export class PostComponent implements OnInit {
|
|||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
//TODO load the relevant HTML file!
|
//TODO load the relevant HTML file!
|
||||||
console.log('post component has inited: '+this.post.filename);
|
console.log('post component has inited: '+this.post.id);
|
||||||
|
console.log(this.post);
|
||||||
|
|
||||||
this.dataloaderService.getPost("project", "test").subscribe(content=>{
|
this.dataloaderService.getPost(this.post.type, this.post.id).subscribe(content=>{
|
||||||
this.htmlContainer.nativeElement.innerHTML = content;
|
this.htmlContainer.nativeElement.innerHTML = content;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,12 @@
|
|||||||
export class Post {
|
export class Post {
|
||||||
filename:String;
|
|
||||||
|
type: string;
|
||||||
|
title: any;
|
||||||
|
id:String;
|
||||||
date:Date;
|
date:Date;
|
||||||
|
|
||||||
constructor(filename:String) {
|
constructor(id:String) {
|
||||||
this.date = new Date();
|
this.date = new Date();
|
||||||
this.filename = filename;
|
this.id = id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,8 +12,22 @@ export class DataloaderService {
|
|||||||
constructor(private http:HttpClient) { }
|
constructor(private http:HttpClient) { }
|
||||||
|
|
||||||
getPosts(): Observable<Post[]> {
|
getPosts(): Observable<Post[]> {
|
||||||
console.log('dataloadersdervice.getPosts called');
|
return this.http.get("assets/posts.json").map(posts=>{
|
||||||
return of([new Post('placeholderservice')]);
|
let res:Post[] = [];
|
||||||
|
//fill it up
|
||||||
|
for(var index in posts) {
|
||||||
|
let post:any = posts[index];
|
||||||
|
console.log('got this key: '+post);
|
||||||
|
console.log(post);
|
||||||
|
let temp:Post = new Post(post.post.id);
|
||||||
|
temp.title = post.post.title;
|
||||||
|
temp.type = post.type;
|
||||||
|
res.push(temp);
|
||||||
|
}
|
||||||
|
console.log('these are the posts...');
|
||||||
|
console.log(res);
|
||||||
|
return res;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -21,17 +35,14 @@ export class DataloaderService {
|
|||||||
* @param filename the filename for which the post needs to be fetched
|
* @param filename the filename for which the post needs to be fetched
|
||||||
*/
|
*/
|
||||||
getPost(type:String, id:String): Observable<String> {
|
getPost(type:String, id:String): Observable<String> {
|
||||||
//load the relevant file
|
|
||||||
if(type!="project") {
|
|
||||||
return of(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
const httpOptions = {
|
const httpOptions = {
|
||||||
headers: new HttpHeaders({ 'Content-Type': 'text/html', 'Accept':'text/html' })
|
headers: new HttpHeaders({ 'Content-Type': 'text/html', 'Accept':'text/html' })
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log('launching GET');
|
console.log('launching GET');
|
||||||
return this.http.get("assets/post/"+type+"/"+id+"/"+id+".html", {responseType: 'text'});
|
let url = "assets/post/"+type+"/"+id+"/full.html";
|
||||||
|
console.log('fetching: '+url);
|
||||||
|
return this.http.get(url, {responseType: 'text'});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
1
src/assets/post/project/cupboard1/full.html
Normal file
1
src/assets/post/project/cupboard1/full.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<p>The cupboard is great, the cupboard is powerful!</p>
|
||||||
3
src/assets/post/project/cupboard1/info.json
Normal file
3
src/assets/post/project/cupboard1/info.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"title":"cupboard"
|
||||||
|
}
|
||||||
1
src/assets/post/tech/lxdarch/full.html
Normal file
1
src/assets/post/tech/lxdarch/full.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<p>LXD is pretty cool guys.</p>
|
||||||
3
src/assets/post/tech/lxdarch/info.json
Normal file
3
src/assets/post/tech/lxdarch/info.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"title":"some things about lxc in arch"
|
||||||
|
}
|
||||||
@ -1,7 +1 @@
|
|||||||
[
|
[{"post": {"id": "test", "title": "Test title"}, "type": "project"}, {"post": {"id": "cupboard1", "title": "cupboard"}, "type": "project"}, {"post": {"id": "lxdarch", "title": "some things about lxc in arch"}, "type": "tech"}]
|
||||||
{
|
|
||||||
"projects": [
|
|
||||||
"test"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
41
src/scripts/compileposts.py
Normal file
41
src/scripts/compileposts.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
import os;
|
||||||
|
import json;
|
||||||
|
|
||||||
|
# each folder in the post folder is a type of post
|
||||||
|
base = '../assets/post'
|
||||||
|
types = os.listdir(base);
|
||||||
|
outputfile = '../assets/posts.json'
|
||||||
|
|
||||||
|
# go over the types
|
||||||
|
for type in types:
|
||||||
|
print type
|
||||||
|
|
||||||
|
# build ourselves a json object
|
||||||
|
jsonresult = [];
|
||||||
|
for type in types:
|
||||||
|
# now read that folder
|
||||||
|
posts = os.listdir(base+"/"+type);
|
||||||
|
|
||||||
|
# each folder in the current one is a post! the name of the folder is the _id_
|
||||||
|
for post in posts:
|
||||||
|
print('doing post '+post)
|
||||||
|
postdir = base+"/"+type+"/"+post;
|
||||||
|
infofile = postdir+"/info.json";
|
||||||
|
print(infofile)
|
||||||
|
with open(infofile) as j:
|
||||||
|
tt = j.read()
|
||||||
|
d = json.loads(tt)
|
||||||
|
d['id'] = post;
|
||||||
|
temp = {};
|
||||||
|
temp['type'] = type;
|
||||||
|
if 'post' not in temp:
|
||||||
|
temp['post'] = [];
|
||||||
|
temp['post'] = d;
|
||||||
|
jsonresult.append(temp);
|
||||||
|
|
||||||
|
# completely append the info.json file
|
||||||
|
|
||||||
|
# print the result of the json parse
|
||||||
|
print(json.dumps(jsonresult));
|
||||||
|
with open(outputfile, 'w') as outfile:
|
||||||
|
json.dump(jsonresult, outfile)
|
||||||
Loading…
Reference in New Issue
Block a user