first commit
This commit is contained in:
35
partials/components/contact-page.hbs
Normal file
35
partials/components/contact-page.hbs
Normal file
@@ -0,0 +1,35 @@
|
||||
<link rel="stylesheet" href="{{asset "css/contact.css"}}">
|
||||
|
||||
{{#is "page" url="/contact/"}}
|
||||
|
||||
<div class="contact-form">
|
||||
<form action="mailto:anydev.anyway@gmail.com" method="post" enctype="text/plain" id="contactForm">
|
||||
<div class="form-row">
|
||||
<div class="form-field">
|
||||
<label for="name">Name:</label>
|
||||
<input type="text" id="name" name="name" placeholder="Your name" required>
|
||||
</div>
|
||||
<div class="form-field">
|
||||
<label for="email">Email:</label>
|
||||
<input type="email" id="email" name="email" placeholder="Your email" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-field">
|
||||
<label for="message">Message:</label>
|
||||
<textarea id="message" name="message" placeholder="Your message" required></textarea>
|
||||
</div>
|
||||
<button type="submit" class="submit-button" id="submitBtn" disabled>Send Message</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const form = document.getElementById('contactForm');
|
||||
const submitBtn = document.getElementById('submitBtn');
|
||||
|
||||
form.addEventListener('input', () => {
|
||||
const isFormFilled = form.name.value && form.email.value && form.message.value;
|
||||
submitBtn.disabled = !isFormFilled;
|
||||
});
|
||||
</script>
|
||||
|
||||
{{/is}}
|
25
partials/components/cta.hbs
Normal file
25
partials/components/cta.hbs
Normal file
@@ -0,0 +1,25 @@
|
||||
{{#if @site.members_enabled}}
|
||||
{{#unless @member}}
|
||||
{{#match @custom.header_style "!=" "Landing"}}
|
||||
{{#match @custom.header_style "!=" "Search"}}
|
||||
{{#match @custom.header_style "!=" "Off"}}
|
||||
{{#match posts.length ">=" 7}}
|
||||
<section class="gh-cta gh-outer">
|
||||
<div class="gh-cta-inner gh-inner">
|
||||
<div class="gh-cta-content">
|
||||
<h2 class="gh-cta-title is-title">
|
||||
{{#if @custom.signup_heading}}{{@custom.signup_heading}}{{else}}{{@site.title}}{{/if}}
|
||||
</h2>
|
||||
<p class="gh-cta-description is-body">
|
||||
{{#if @custom.signup_subheading}}{{@custom.signup_subheading}}{{else}}{{@site.description}}{{/if}}
|
||||
</p>
|
||||
</div>
|
||||
{{> "email-subscription" email_field_id="cta-email"}}
|
||||
</div>
|
||||
</section>
|
||||
{{/match}}
|
||||
{{/match}}
|
||||
{{/match}}
|
||||
{{/match}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
14
partials/components/featured.hbs
Normal file
14
partials/components/featured.hbs
Normal file
@@ -0,0 +1,14 @@
|
||||
{{#if showFeatured}}
|
||||
{{#get "posts" filter="featured:true" include="authors" limit=limit as |featured|}}
|
||||
<section class="gh-featured gh-outer">
|
||||
<div class="gh-featured-inner gh-inner">
|
||||
<h2 class="gh-featured-title">Featured</h2>
|
||||
<div class="gh-featured-feed">
|
||||
{{#foreach featured}}
|
||||
{{> "post-card" imageSizes="80px"}}
|
||||
{{/foreach}}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{/get}}
|
||||
{{/if}}
|
35
partials/components/footer.hbs
Normal file
35
partials/components/footer.hbs
Normal file
@@ -0,0 +1,35 @@
|
||||
<footer class="gh-footer{{#match @custom.header_and_footer_color "Accent color"}} has-accent-color{{/match}} gh-outer">
|
||||
<div class="gh-footer-inner gh-inner">
|
||||
|
||||
<div class="gh-footer-bar">
|
||||
<span class="gh-footer-logo is-title">
|
||||
{{#if @site.logo}}
|
||||
<img src="{{@site.logo}}" alt="{{@site.title}}">
|
||||
{{else}}
|
||||
{{@site.title}}
|
||||
{{/if}}
|
||||
</span>
|
||||
<nav class="gh-footer-menu">
|
||||
{{navigation type="secondary"}}
|
||||
</nav>
|
||||
<div class="gh-footer-copyright">
|
||||
Powered by <a href="https://ghost.org/" target="_blank" rel="noopener">Ghost</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#if @site.members_enabled}}
|
||||
{{#unless @member}}
|
||||
<section class="gh-footer-signup">
|
||||
<h2 class="gh-footer-signup-header is-title">
|
||||
{{#if @custom.signup_heading}}{{@custom.signup_heading}}{{else}}{{@site.title}}{{/if}}
|
||||
</h2>
|
||||
<p class="gh-footer-signup-subhead is-body">
|
||||
{{#if @custom.signup_subheading}}{{@custom.signup_subheading}}{{else}}{{@site.description}}{{/if}}
|
||||
</p>
|
||||
{{> "email-subscription" email_field_id="footer-email"}}
|
||||
</section>
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</footer>
|
81
partials/components/header-content.hbs
Normal file
81
partials/components/header-content.hbs
Normal file
@@ -0,0 +1,81 @@
|
||||
<section class="gh-header is-{{#match headerStyle "Magazine"}}magazine{{else match headerStyle "Highlight"}}highlight{{else}}classic{{/match}}{{#if @custom.background_image}}{{#if @site.cover_image}} has-image{{/if}}{{/if}} gh-outer">
|
||||
|
||||
{{!-- Background image --}}
|
||||
{{#if @custom.background_image}}
|
||||
{{#match headerStyle "!=" "Magazine"}}
|
||||
{{#match headerStyle "!=" "Highlight"}}
|
||||
{{#if @site.cover_image}}
|
||||
<img class="gh-header-image" src="{{@site.cover_image}}" alt="{{@site.title}}">
|
||||
{{/if}}
|
||||
{{/match}}
|
||||
{{/match}}
|
||||
{{/if}}
|
||||
|
||||
<div class="gh-header-inner gh-inner">
|
||||
|
||||
{{!-- Highlight layout --}}
|
||||
{{#match headerStyle "Highlight"}}
|
||||
<div class="gh-header-left">
|
||||
{{#foreach posts limit="1"}}
|
||||
{{> "post-card" imageSizes="(max-width: 767px) calc(100vw - max(8vmin, 40px)), 640px"}}
|
||||
{{/foreach}}
|
||||
</div>
|
||||
<div class="gh-header-middle">
|
||||
{{#foreach posts from="2" limit="3"}}
|
||||
{{> "post-card"}}
|
||||
{{/foreach}}
|
||||
</div>
|
||||
<div class="gh-header-right">
|
||||
{{#if @custom.show_featured_posts}}
|
||||
{{> "components/featured" showFeatured=@custom.show_featured_posts limit=6}}
|
||||
{{else}}
|
||||
<div class="gh-featured-feed">
|
||||
{{#foreach posts from="5" limit="6"}}
|
||||
{{> "post-card" imageSizes="80px"}}
|
||||
{{/foreach}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/match}}
|
||||
|
||||
{{!-- Magazine layout --}}
|
||||
{{#match headerStyle "Magazine"}}
|
||||
{{#foreach posts limit="7"}}
|
||||
{{#match @number 2}}
|
||||
<div class="gh-header-left">
|
||||
{{/match}}
|
||||
{{#match @number 5}}
|
||||
<div class="gh-header-right">
|
||||
{{/match}}
|
||||
{{#if @first}}
|
||||
{{> "post-card" imageSizes="640px"}}
|
||||
{{else}}
|
||||
{{> "post-card"}}
|
||||
{{/if}}
|
||||
{{#match @number 4}}
|
||||
</div>
|
||||
{{/match}}
|
||||
{{#match @number 7}}
|
||||
</div>
|
||||
{{/match}}
|
||||
{{/foreach}}
|
||||
{{/match}}
|
||||
|
||||
{{!-- Landing layout --}}
|
||||
{{#match headerStyle "Landing"}}
|
||||
<h1 class="gh-header-title is-title">{{#if @custom.header_text}}{{@custom.header_text}}{{else}}{{@site.description}}{{/if}}</h1>
|
||||
{{> "email-subscription" email_field_id="header-email"}}
|
||||
{{/match}}
|
||||
|
||||
{{!-- Search layout --}}
|
||||
{{#match headerStyle "Search"}}
|
||||
<h1 class="gh-header-title is-title">{{#if @custom.header_text}}{{@custom.header_text}}{{else}}{{@site.description}}{{/if}}</h1>
|
||||
<form class="gh-form">
|
||||
{{> "icons/search"}}
|
||||
<button class="gh-form-input" data-ghost-search>Search posts, tags and authors</button>
|
||||
</form>
|
||||
{{/match}}
|
||||
|
||||
</div>
|
||||
|
||||
</section>
|
19
partials/components/header.hbs
Normal file
19
partials/components/header.hbs
Normal file
@@ -0,0 +1,19 @@
|
||||
{{#match headerStyle "!=" "Off"}}
|
||||
|
||||
{{#match headerStyle "Highlight"}}
|
||||
{{> "components/header-content"}}
|
||||
{{else match headerStyle "Magazine"}}
|
||||
{{> "components/header-content"}}
|
||||
{{else}}
|
||||
{{#match headerStyle "Landing"}}
|
||||
{{#if @site.members_enabled}}
|
||||
{{#unless @member}}
|
||||
{{> "components/header-content"}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{> "components/header-content"}}
|
||||
{{/match}}
|
||||
{{/match}}
|
||||
|
||||
{{/match}}
|
26
partials/components/hero.hbs
Normal file
26
partials/components/hero.hbs
Normal file
@@ -0,0 +1,26 @@
|
||||
<link rel="stylesheet" href="{{asset "css/hero.css"}}">
|
||||
|
||||
|
||||
<section class="hero">
|
||||
<div class="hero-inner">
|
||||
<!-- Left content with logo and text -->
|
||||
<div class="hero-content">
|
||||
<img src="assets/images/anyway_logo_black.png" alt="Logo" class="hero-logo">
|
||||
<h1 class="hero-title">Our new app is available for download</h1>
|
||||
<a href="https://anydev.info/download/" class="hero-button">Start now</a>
|
||||
</div>
|
||||
|
||||
<!-- Right content with app screenshots -->
|
||||
<div class="hero-screenshots">
|
||||
<div class="screenshot">
|
||||
<img src="assets/screenshots/home_1.jpg" alt="Screenshot 1">
|
||||
</div>
|
||||
<div class="screenshot">
|
||||
<img src="assets/screenshots/home_2.jpg" alt="Screenshot 2">
|
||||
</div>
|
||||
<div class="screenshot">
|
||||
<img src="assets/screenshots/home_3.jpg" alt="Screenshot 3">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
53
partials/components/navigation.hbs
Normal file
53
partials/components/navigation.hbs
Normal file
@@ -0,0 +1,53 @@
|
||||
<header id="gh-navigation" class="gh-navigation is-{{#match navigationLayout "Logo on the left"}}left-logo{{else match navigationLayout "Stacked"}}stacked{{else}}middle-logo{{/match}}{{#match @custom.header_and_footer_color "Accent color"}} has-accent-color{{/match}} gh-outer">
|
||||
<div class="gh-navigation-inner gh-inner">
|
||||
|
||||
<div class="gh-navigation-brand">
|
||||
<a class="gh-navigation-logo is-title" href="{{@site.url}}">
|
||||
{{#if @site.logo}}
|
||||
<img src="{{@site.logo}}" alt="{{@site.title}}">
|
||||
{{else}}
|
||||
{{@site.title}}
|
||||
{{/if}}
|
||||
</a>
|
||||
{{> "search-toggle"}}
|
||||
<button class="gh-burger gh-icon-button" aria-label="Menu">
|
||||
{{> "icons/burger"}}
|
||||
{{> "icons/close"}}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<nav class="gh-navigation-menu">
|
||||
{{navigation}}
|
||||
{{#unless @site.members_enabled}}
|
||||
{{#match navigationLayout "Stacked"}}
|
||||
{{> "search-toggle"}}
|
||||
{{/match}}
|
||||
{{/unless}}
|
||||
</nav>
|
||||
|
||||
<div class="gh-navigation-actions">
|
||||
{{#unless @site.members_enabled}}
|
||||
{{^match navigationLayout "Stacked"}}
|
||||
{{> "search-toggle"}}
|
||||
{{/match}}
|
||||
{{else}}
|
||||
{{> "search-toggle"}}
|
||||
<div class="gh-navigation-members">
|
||||
{{#unless @member}}
|
||||
{{#unless @site.members_invite_only}}
|
||||
<a href="#/portal/signin" data-portal="signin">Sign in</a>
|
||||
{{#unless hideSubscribeButton}}
|
||||
<a class="gh-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
|
||||
{{/unless}}
|
||||
{{else}}
|
||||
<a class="gh-button" href="#/portal/signin" data-portal="signin">Sign in</a>
|
||||
{{/unless}}
|
||||
{{else}}
|
||||
<a class="gh-button" href="#/portal/account" data-portal="account">Account</a>
|
||||
{{/unless}}
|
||||
</div>
|
||||
{{/unless}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</header>
|
123
partials/components/post-list.hbs
Normal file
123
partials/components/post-list.hbs
Normal file
@@ -0,0 +1,123 @@
|
||||
{{!--
|
||||
Parameters:
|
||||
* feed (index, home, archive, recent)
|
||||
* postFeedStyle (list, grid)
|
||||
* showTitle (true, false)
|
||||
* showSidebar (true, false)
|
||||
--}}
|
||||
|
||||
<section class="gh-container is-{{#match postFeedStyle "List"}}list{{else}}grid{{/match}}{{#if showSidebar}} has-sidebar{{/if}}{{#unless @custom.show_images_in_feed}} no-image{{/unless}} gh-outer">
|
||||
<div class="gh-container-inner gh-inner">
|
||||
|
||||
{{#if showTitle}}
|
||||
<h2 class="gh-container-title">
|
||||
{{#unless title}}Latest{{else}}{{title}}{{/unless}}
|
||||
</h2>
|
||||
{{/if}}
|
||||
|
||||
<main class="gh-main">
|
||||
<div class="gh-feed">
|
||||
|
||||
{{!-- Homepage --}}
|
||||
{{#match feed "home"}}
|
||||
{{#match @custom.header_style "Highlight"}}
|
||||
{{#if @custom.show_featured_posts}}
|
||||
{{#match posts.length ">=" 4}}
|
||||
{{#get "posts" include="authors" limit="16"}}
|
||||
{{#foreach posts from="5"}}
|
||||
{{> "post-card" lazyLoad=true}}
|
||||
{{/foreach}}
|
||||
{{/get}}
|
||||
{{/match}}
|
||||
{{else}}
|
||||
{{#match posts.length ">=" 10}}
|
||||
{{#get "posts" include="authors" limit="22"}}
|
||||
{{#foreach posts from="11"}}
|
||||
{{> "post-card" lazyLoad=true}}
|
||||
{{/foreach}}
|
||||
{{/get}}
|
||||
{{/match}}
|
||||
{{/if}}
|
||||
{{else match @custom.header_style "Magazine"}}
|
||||
{{#match posts.length ">=" 7}}
|
||||
{{#get "posts" include="authors" limit="19"}}
|
||||
{{#foreach posts from="8"}}
|
||||
{{> "post-card" lazyLoad=true}}
|
||||
{{/foreach}}
|
||||
{{/get}}
|
||||
{{/match}}
|
||||
{{else}}
|
||||
{{#get "posts" include="authors" limit="12"}}
|
||||
{{#foreach posts}}
|
||||
{{> "post-card" lazyLoad=true}}
|
||||
{{/foreach}}
|
||||
{{/get}}
|
||||
{{/match}}
|
||||
{{/match}}
|
||||
|
||||
{{!-- All posts --}}
|
||||
{{#match feed "index"}}
|
||||
{{#match pagination.page 2}}
|
||||
{{#get "posts" include="authors" limit=@config.posts_per_page as |recent|}}
|
||||
{{#foreach recent}}
|
||||
{{> "post-card"}}
|
||||
{{/foreach}}
|
||||
{{/get}}
|
||||
{{/match}}
|
||||
{{#foreach posts}}
|
||||
{{> "post-card" lazyLoad=true}}
|
||||
{{/foreach}}
|
||||
{{/match}}
|
||||
|
||||
{{!-- Tag and author pages --}}
|
||||
{{#match feed "archive"}}
|
||||
{{#foreach posts}}
|
||||
{{> "post-card" lazyLoad=true}}
|
||||
{{/foreach}}
|
||||
{{/match}}
|
||||
|
||||
</div>
|
||||
|
||||
{{#match pagination.pages ">" 1}}
|
||||
<div class="gh-more is-title">
|
||||
<a href="{{@site.url}}/page/2">See all {{> "icons/arrow"}}</a>
|
||||
</div>
|
||||
{{/match}}
|
||||
</main>
|
||||
|
||||
{{#if showSidebar}}
|
||||
<aside class="gh-sidebar">
|
||||
<div class="gh-sidebar-inner">
|
||||
<section class="gh-about">
|
||||
{{#if @site.icon}}
|
||||
<img class="gh-about-icon" src="{{@site.icon}}" alt="{{@site.title}}" loading="lazy">
|
||||
{{/if}}
|
||||
<h3 class="gh-about-title is-title">{{@site.title}}</h3>
|
||||
{{#if @site.description}}
|
||||
<p class="gh-about-description is-body">{{@site.description}}</p>
|
||||
{{/if}}
|
||||
{{#if @site.members_enabled}}
|
||||
{{#unless @member}}
|
||||
<button class="gh-button" data-portal="signup">Subscribe</button>
|
||||
{{else}}
|
||||
{{#if @site.paid_members_enabled}}
|
||||
{{#unless @member.paid}}
|
||||
<button class="gh-button" data-portal="upgrade">Upgrade</button>
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
{{/unless}}
|
||||
{{/if}}
|
||||
</section>
|
||||
{{#if @site.recommendations_enabled}}
|
||||
<section class="gh-recommendations">
|
||||
<h4 class="gh-sidebar-title">Recommendations</h4>
|
||||
{{recommendations}}
|
||||
<button data-portal="recommendations">See all {{> "icons/arrow"}}</button>
|
||||
</section>
|
||||
{{/if}}
|
||||
</div>
|
||||
</aside>
|
||||
{{/if}}
|
||||
|
||||
</div>
|
||||
</section>
|
Reference in New Issue
Block a user