project-data.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. hexo.extend.helper.register('getProjectDataHTML', function(pages){
  2. var projects = [];
  3. var project_data = []
  4. var s = ""
  5. pages.forEach(page => {
  6. if(page.layout == "project") projects.push(page);
  7. });
  8. projects.forEach(project => {
  9. var tags = [];
  10. var contacts = []
  11. project.tags.forEach(tag => {
  12. tags.push(tag.name);
  13. })
  14. project.contacts.forEach(contact => {
  15. contacts.push({ name: contact.name, url: contact.url });
  16. })
  17. project_data.push({
  18. title: project.title,
  19. folder: project.folder,
  20. permalink: project.permalink,
  21. description: project.description,
  22. date: project.date,
  23. cover: project.cover,
  24. website: project.website,
  25. featured: project.featured,
  26. tags: tags,
  27. start_date: project.start_date,
  28. end_date: project.end_date,
  29. contact_types: project.contact_types,
  30. contacts : contacts,
  31. text: project.text
  32. })
  33. })
  34. for (let i = 0; i < project_data.length; i++) {
  35. s += JSON.stringify(project_data[i]);
  36. if(i < project_data.length -1) s += ', ';
  37. }
  38. return `<script>var projectsList = [${s}]</script>`
  39. });