1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- var get_posts = function(pages){
- var posts = [];
- pages.forEach(page => {
- if(page.layout == "post") posts.push(page);
- });
- return posts;
- }
- var get_projects = function(pages){
- var projects = [];
- pages.forEach(page => {
- if(page.layout == "project") projects.push(page);
- });
- return projects;
- }
- hexo.extend.helper.register('project_count', function(pages){
- return get_projects(pages).length;
- });
- hexo.extend.helper.register('blog_count', function(pages){
- return get_posts(pages).length;
- });
- hexo.extend.helper.register('is_video_provider', function(url, provider){
- url = url.replace('http://', '')
- url = url.replace('https://', '')
- url = url.replace('www', '')
- var parts = url.split('.');
- return parts[0] == provider ? true : false;
- });
- hexo.extend.helper.register('youtube_embed_link', function(url){
- url = url.replace('http://', '')
- url = url.replace('https://', '')
- var parts = url.split('/');
- return `http://www.youtube.com/embed/${parts[2]}`;
- });
- hexo.extend.helper.register('vimeo_embed_link', function(url){
- url = url.replace('http://', '')
- url = url.replace('https://', '')
- url = url.replace('vimeo.com/', '')
- return `https://player.vimeo.com/video/${url}`;
- });
- hexo.extend.helper.register('order_projects', function(pages){
- var projects = get_projects(pages);
- projects.sort(function(a,b){
- return new Date(b.date) - new Date(a.date);
- });
- return projects;
- });
- hexo.extend.helper.register('order_posts', function(pages){
- var posts = get_posts(pages);
- posts.sort(function(a,b){
- return new Date(b.date) - new Date(a.date);
- });
- return posts;
- });
- hexo.extend.helper.register('next_post', function(current_post, pages){
- var posts = get_posts(pages);
- posts.sort(function(a,b){
- return new Date(b.date) - new Date(a.date);
- });
- for (let i = 0; i < posts.length; i++) {
- if(posts[i].title == current_post.title){
- if(i + 1 < posts.length) return posts[i + 1];
- else return posts[0];
- }
- }
- });
- hexo.extend.helper.register('featured_projects', function(pages){
- var projects = get_projects(pages);
- projects.sort(function(a,b){
- return new Date(b.date) - new Date(a.date);
- });
- var featured = [];
- projects.forEach(project => {
- if(project.featured == true) featured.push(project);
- });
- return featured;
- });
- hexo.extend.helper.register('limit', function(pages, limit){
- var list = []
- for (let i = 0; i < pages.length; i++) {
- if(i < limit) list.push(pages[i]);
- }
- return list;
- });
|