Moved Other "Project Types" into the data file and changed the template to use that data. Shortens index.njk considerably.
This commit is contained in:
Robert McGovern 2022-02-08 09:40:28 +00:00
parent fb846a65bb
commit 02cb7b6fe3
3 changed files with 239 additions and 244 deletions

View File

@ -1,121 +1,208 @@
{ {
"frontendMentor": { "services": [
"serviceName": "Frontend Mentor", {
"svgSource": "/svgs/frontendmentor.svg", "name": "Frontend Mentor",
"svgAltText": "Frontend Mentor Logo", "svgSource": "/svgs/frontendmentor.svg",
"description": "Collection of challenges I completed for Frontend Mentor", "svgAltText": "Frontend Mentor Logo",
"difficulty": [ "description": "Collection of challenges I completed for Frontend Mentor",
{ "cssClass": "",
"title": "Newbie", "difficulty": [
"challenges": [ {
{ "title": "Newbie",
"title": "Order Summary Card Component", "cssClass": "frontEndMentorChallenges",
"url": "/FrontendMentor/newbie/order-summary-component/", "challenges": [
"description": "", {
"techUsed": [ "title": "Order Summary Card Component",
"html5", "url": "/FrontendMentor/newbie/order-summary-component/",
"css3" "description": "",
], "techUsed": [
"screenshotURL": "/screenshots/fem-newbie-order-summary-component.png", "html5",
"screenshotAltText": "Order Summary Component Challenge from FrontendMentor" "css3"
}, ],
{ "screenshotURL": "/screenshots/fem-newbie-order-summary-component.png",
"title": "Profile Card Component", "screenshotAltText": "Order Summary Component Challenge from FrontendMentor"
"url": "/FrontendMentor/newbie/profile-card-component/", },
"description": "", {
"techUsed": [ "title": "Profile Card Component",
"html5", "url": "/FrontendMentor/newbie/profile-card-component/",
"css3" "description": "",
], "techUsed": [
"screenshotURL": "/screenshots/fem-newbie-profile-card-component.jpeg", "html5",
"screenshotAltText": "Profile Card Component Challenge from FrontendMentor" "css3"
}, ],
{ "screenshotURL": "/screenshots/fem-newbie-profile-card-component.jpeg",
"title": "Stats Preview Card Component", "screenshotAltText": "Profile Card Component Challenge from FrontendMentor"
"url": "/FrontendMentor/newbie/stats-preview-card-component/", },
"description": "", {
"techUsed": [ "title": "Stats Preview Card Component",
"html5", "url": "/FrontendMentor/newbie/stats-preview-card-component/",
"css3" "description": "",
], "techUsed": [
"screenshotURL": "/screenshots/fem-newbie-stats-preview-card-component.jpeg", "html5",
"screenshotAltText": "Stats Preview Card Component Challenge from FrontendMentor" "css3"
}, ],
{ "screenshotURL": "/screenshots/fem-newbie-stats-preview-card-component.jpeg",
"title": "Article Preview Component", "screenshotAltText": "Stats Preview Card Component Challenge from FrontendMentor"
"url": "/FrontendMentor/newbie/article-preview-component/", },
"description": "", {
"techUsed": [ "title": "Article Preview Component",
"html5", "url": "/FrontendMentor/newbie/article-preview-component/",
"css3" "description": "",
], "techUsed": [
"screenshotURL": "/screenshots/fem-newbie-article-preview-component.jpeg", "html5",
"screenshotAltText": "Article Preview Component Challenge from FrontendMentor" "css3"
}, ],
{ "screenshotURL": "/screenshots/fem-newbie-article-preview-component.jpeg",
"title": "Four Card Feature Section", "screenshotAltText": "Article Preview Component Challenge from FrontendMentor"
"url": "/FrontendMentor/newbie/four-card-feature-section/", },
"description": "", {
"techUsed": [ "title": "Four Card Feature Section",
"html5", "url": "/FrontendMentor/newbie/four-card-feature-section/",
"css3" "description": "",
], "techUsed": [
"screenshotURL": "/screenshots/fem-newbie-four-card-feature-section.jpeg", "html5",
"screenshotAltText": "Four Card Feature Section Challenge from FrontendMentor" "css3"
}, ],
{ "screenshotURL": "/screenshots/fem-newbie-four-card-feature-section.jpeg",
"title": "Single Price Grid Component", "screenshotAltText": "Four Card Feature Section Challenge from FrontendMentor"
"url": "/FrontendMentor/newbie/single-price-grid-component-master/", },
"description": "", {
"techUsed": [ "title": "Single Price Grid Component",
"html5", "url": "/FrontendMentor/newbie/single-price-grid-component-master/",
"css3" "description": "",
], "techUsed": [
"screenshotURL": "/screenshots/fem-newbie-single-price-grid-component.jpeg", "html5",
"screenshotAltText": "Single Price Grid Component Challenge from FrontendMentor" "css3"
}, ],
{ "screenshotURL": "/screenshots/fem-newbie-single-price-grid-component.jpeg",
"title": "Ping Coming-Soon", "screenshotAltText": "Single Price Grid Component Challenge from FrontendMentor"
"url": "/FrontendMentor/newbie/ping-coming-soon-page-master/", },
"description": "", {
"techUsed": [ "title": "Ping Coming-Soon",
"html5", "url": "/FrontendMentor/newbie/ping-coming-soon-page-master/",
"css3", "description": "",
"js" "techUsed": [
], "html5",
"screenshotURL": "/screenshots/fem-newbie-ping-coming-soon-page.jpeg", "css3",
"screenshotAltText": "Ping Coming-Soon Challenge from FrontendMentor" "js"
}, ],
{ "screenshotURL": "/screenshots/fem-newbie-ping-coming-soon-page.jpeg",
"title": "The Huddle Landing Page", "screenshotAltText": "Ping Coming-Soon Challenge from FrontendMentor"
"url": "/FrontendMentor/newbie/huddle-landing-page-with-single-introductory-section-master/", },
"description": "", {
"techUsed": [ "title": "The Huddle Landing Page",
"html5", "url": "/FrontendMentor/newbie/huddle-landing-page-with-single-introductory-section-master/",
"css3", "description": "",
"js" "techUsed": [
], "html5",
"screenshotURL": "/screenshots/fem-newbie-huddle-landing-page-with-single-introductory-section.png", "css3",
"screenshotAltText": "The Huddle Landing Page Challenge from FrontendMentor, with a single introductory section." "js"
} ],
] "screenshotURL": "/screenshots/fem-newbie-huddle-landing-page-with-single-introductory-section.png",
}, "screenshotAltText": "The Huddle Landing Page Challenge from FrontendMentor, with a single introductory section."
{ }
"title": "Junior", ]
"challenges": [] },
}, {
{ "title": "Junior",
"title": "Intermediate", "cssClass": "frontEndMentorChallenges",
"challenges": [] "challenges": []
}, },
{ {
"title": "Advanced", "title": "Intermediate",
"challenges": [] "cssClass": "frontEndMentorChallenges",
}, "challenges": []
{ },
"title": "Guru", {
"challenges": [] "title": "Advanced",
} "cssClass": "frontEndMentorChallenges",
] "challenges": []
} },
{
"title": "Guru",
"cssClass": "frontEndMentorChallenges",
"challenges": []
}
]
},
{
"name": "Freecodecamp",
"svgSource": "/svgs/freecodecamp.svg",
"svgAltText": "Freecodecamp Logo",
"description": "Collection of challenges I completed while doing Freecodecamp",
"cssClass": "",
"difficulty": [
{
"title": "Responsive Web Design Projects",
"description": "Note: As of 11 Oct 2020, these require a partial rework to look good on mobile. 1-3 where written much earlier in my learning, so while they fufill all the requirements, they don't look great on mobile.",
"cssClass": "responsiveProjects",
"challenges": [
{
"title": "Project 1 - Tribute Page",
"url": "/freeCodeCamp/responsive-web-design-projects/Project1-TributePage/",
"description": "",
"techUsed": [
"html5",
"css3"
],
"screenshotURL": "/screenshots/fcc-web-Project1-TributePage.jpeg",
"screenshotAltText": "Project 1 - Tribute Page"
},
{
"title": "Project 2 - Build A Survey Form",
"url": "/freeCodeCamp/responsive-web-design-projects/Project2-BuildaSurveyForm/",
"description": "",
"techUsed": [
"html5",
"css3"
],
"screenshotURL": "/screenshots/fcc-web-Project2-BuildaSurveyForm.jpeg",
"screenshotAltText": "Project 2 - Build A Survey Form"
},
{
"title": "Project 3 - Product Landing Page",
"url": "/freeCodeCamp/responsive-web-design-projects/Project3-ProductLandingPage/",
"description": "",
"techUsed": [
"html5",
"css3"
],
"screenshotURL": "/screenshots/fcc-web-Project3-ProductLandingPage.jpeg",
"screenshotAltText": "Project 3 - Product Landing Page"
}
]
}
]
},
{
"name": "The Complete 2022 Web Development Bootcamp",
"svgSource": "/svgs/udemy.svg",
"svgAltText": "Udemy Logo",
"description": "Coming Soon™",
"cssClass": "",
"difficulty": [
{
"title": "",
"description": "",
"cssClass": "",
"challenges": []
}
]
},
{
"name": "JavaScript Projects",
"svgSource": "/svgs/javascript.svg",
"svgAltText": "JavaScript",
"description": "Various JavaScript projects I've completed",
"cssClass": "",
"difficulty": [
{
"title": "",
"description": "",
"cssClass": "",
"challenges": []
}
]
}
]
} }

View File

@ -87,6 +87,7 @@ body {
.responsiveProjects > h3 { .responsiveProjects > h3 {
font-weight: 600; font-weight: 600;
font-size: 1.3rem; font-size: 1.3rem;
margin-bottom: 0.5rem;
} }
/* .freecodeCampProjects {} */ /* .freecodeCampProjects {} */

View File

@ -22,137 +22,44 @@ cssReset: true
<p>Robert McGovern</p> <p>Robert McGovern</p>
</div> </div>
<div class="projectsDiv"> {% for service in webprojects.services %}
<div class="alignedHeader"> <div class="projectsDiv {{service.cssClass}}">
<h2 class="projectsSection__title">{{webprojects.frontendMentor.serviceName}}</h2> <div class="alignedHeader">
<img src="{{webprojects.frontendMentor.svgSource}}" alt="{{webprojects.frontendMentor.svgAltText}}"/> <h2 class="projectsSection__title">{{service.name}}</h2>
</div> {% if service.svgSource%}
<p>{{webprojects.frontendMentor.description}}</p> <img src="{{service.svgSource}}" alt="{{service.svgAltText}}"/>
{% endif %}
{% for difficultyLevel in webprojects.frontendMentor.difficulty %}
{% if difficultyLevel.challenges | length %}
<div class="frontEndMentorChallenges">
<h3>{{difficultyLevel.title}} Challenges</h3>
<div class="projects-grid">
{% for challenge in difficultyLevel.challenges %}
{% set projectContent = challenge %}
{% include "components/project.njk" %}
{% endfor %}
</div>
</div>
{% endif %}
{% endfor %}
</div>
<div class="projectsDiv">
<div class="alignedHeader">
<h2 class="projectsSection__title">Freecodecamp</h2>
<img src="/svgs/freecodecamp.svg" alt="Freecodecamp"/>
</div>
<div class="responsiveProjects">
<h3>Responsive Web Design Projects</h3>
<p>
Note: As of 11 Oct 2020, these require a partial rework
to look good on mobile. 1-3 where written much earlier
in my learning, so while they fufill all the
requirements, they don't look great on mobile.
</p>
<div class="projects-grid">
<div class="project-card stacked">
<a href="./freeCodeCamp/responsive-web-design-projects/Project1-TributePage/">
<img class="card__img" src="/screenshots/fcc-web-Project1-TributePage.jpeg"
alt="Project 1 - Tribute Page"/>
</a>
<div class="card__content">
<h3 class="card__title">
Project 1 - Tribute Page
</h3>
<!-- <p class="card__description">
Lorem ipsum dolor sit amet consectetur
adipisicing elit.
</p> -->
<ul class="card__techUsed">
<li>
<img src="/svgs/html5.svg" alt="HTML5"/>
</li>
<li>
<img src="/svgs/css3.svg" alt="CSS3"/>
</li>
</ul>
</div>
</div>
<div class="project-card stacked">
<a href="/freeCodeCamp/responsive-web-design-projects/Project2-BuildaSurveyForm/">
<img class="card__img" src="/screenshots/fcc-web-Project2-BuildaSurveyForm.jpeg"
alt="Project 2 - Build A Survey Form"/>
</a>
<div class="card__content">
<h3 class="card__title">
Project 2 - Build A Survey Form
</h3>
<!-- <p class="card__description">
Lorem ipsum dolor sit amet consectetur
adipisicing elit.
</p> -->
<ul class="card__techUsed">
<li>
<img src="/svgs/html5.svg" alt="HTML5"/>
</li>
<li>
<img src="/svgs/css3.svg" alt="CSS3"/>
</li>
</ul>
</div>
</div>
<div class="project-card stacked">
<a href="/freeCodeCamp/responsive-web-design-projects/Project3-ProductLandingPage/">
<img class="card__img" src="/screenshots/fcc-web-Project3-ProductLandingPage.jpeg"
alt="Project 3 - Product Landing Page"/>
</a>
<div class="card__content">
<h3 class="card__title">
Project 3 - Product Landing Page
</h3>
<!-- <p class="card__description">
Lorem ipsum dolor sit amet consectetur
adipisicing elit.
</p> -->
<ul class="card__techUsed">
<li>
<img src="/svgs/html5.svg" alt="HTML5"/>
</li>
<li>
<img src="/svgs/css3.svg" alt="CSS3"/>
</li>
</ul>
</div>
</div>
</div> </div>
{% if service.description%}
<p>{{service.description}}</p>
{% endif %}
{% for difficultyLevel in service.difficulty %}
{% if difficultyLevel.challenges | length %}
<div class="{{difficultyLevel.cssClass}}">
{% if difficultyLevel.title%}
<h3>{{difficultyLevel.title}} Challenges</h3>
{% endif %}
{% if difficultyLevel.description%}
<p>{{difficultyLevel.description}}</p>
{% endif %}
<div class="projects-grid">
{% for challenge in difficultyLevel.challenges %}
{% set projectContent = challenge %}
{% include "components/project.njk" %}
{% endfor %}
</div>
</div>
{% endif %}
{% endfor %}
</div> </div>
</div> {% endfor %}
<div class="projectsDiv"> <div class="projectsDiv">
<div class="alignedHeader"> <div class="alignedHeader">
<h2 class="projectsSection__title"> <h2 class="projectsSection__title">Playground</h2>
The Complete 2022 Web Development Bootcamp <img style="width: 10%;" src="/svgs/purple_fedora.svg" alt="A Purple Fedora"/>
</h2>
<img src="/svgs/udemy.svg" alt="The Complete 2022 Web Development Bootcamp Udemy Course"/>
</div> </div>
<p>coming soon</p>
</div>
<div class="projectsDiv">
<h2 class="projectsSection__title">Vanilla JS Projects</h2>
<p>coming soon</p>
</div>
<div class="projectsDiv">
<h2 class="projectsSection__title">Playground</h2>
<p> <p>
Intended for just little snippets of code that look useful Intended for just little snippets of code that look useful
</p> </p>