2022-10-04 19:55:20 +03:00
<section class="gh-canvas" {{ on-key "cmd+s" this .saveViaKeyboard }} >
2019-06-18 13:47:21 +03:00
<GhCanvasHeader class="gh-canvas-header">
2022-10-04 08:35:29 +03:00
<div class="flex flex-column">
<div class="gh-canvas-breadcrumb">
<LinkTo @route="settings">
Settings
</LinkTo>
{{ svg-jar "arrow-right-small" }} General
</div>
<h2 class="gh-canvas-title" data-test-screen-title>
General
</h2>
</div>
2015-06-13 17:34:09 +03:00
<section class="view-actions">
2022-02-10 13:20:03 +03:00
<GhTaskButton @buttonText="Save" @task= {{ this .saveTask }} @class="gh-btn gh-btn-primary gh-btn-icon" data-test-button="save" />
2015-06-13 17:34:09 +03:00
</section>
2019-06-18 13:47:21 +03:00
</GhCanvasHeader>
2014-03-10 07:44:08 +04:00
2022-09-06 12:16:53 +03:00
<div>
<div class="gh-main-section">
<h4 class="gh-main-section-header small bn">Publication info</h4>
<section class="gh-expandable">
<div class="gh-expandable-block">
<div class="gh-expandable-header">
<div>
<h4 class="gh-expandable-title">Title & description</h4>
<p class="gh-expandable-description">The details used to identify your publication around the web</p>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "pubInfoOpen" this ) }} data-test-toggle-pub-info><span> {{ if this .pubInfoOpen "Close" "Expand" }} </span></button>
2019-06-18 13:47:21 +03:00
</div>
2022-09-06 12:16:53 +03:00
<div class="gh-expandable-content">
{{ # liquid-if this .pubInfoOpen }}
<div class="gh-setting-content-extended">
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="title">
<GhTextInput
@value= {{ readonly this .settings .title }}
@input= {{ action ( mut this .settings .title ) value = "target.value" }}
@focus-out= {{ action "validate" "title" target = this .settings }}
data-test-title-input= {{ true }}
/>
<GhErrorMessage @errors= {{ this .settings .errors }} @property="title" />
<p>The name of your site</p>
</GhFormGroup>
2019-06-18 13:47:21 +03:00
2022-09-06 12:16:53 +03:00
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="description" @class="description-container">
<GhTextInput
@value= {{ readonly this .settings .description }}
@input= {{ action ( mut this .settings .description ) value = "target.value" }}
@focus-out= {{ action "validate" "description" target = this .settings }}
data-test-description-input= {{ true }}
/>
<GhErrorMessage @errors= {{ this .settings .errors }} @property="description"/>
<p>Used in your theme, meta data and search results</p>
</GhFormGroup>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
{{ / liquid-if }}
2019-06-18 13:47:21 +03:00
</div>
2022-09-06 12:16:53 +03:00
</div>
2021-02-08 23:51:26 +03:00
2022-09-06 12:16:53 +03:00
<div class="gh-expandable-block">
<div class="gh-expandable-header">
<div>
<h4 class="gh-expandable-title">Site timezone</h4>
<p class="gh-expandable-description">Set the time and date of your publication, used for all published posts</p>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "timezoneOpen" this ) }} data-test-toggle-timezone><span> {{ if this .timezoneOpen "Close" "Expand" }} </span></button>
</div>
<div class="gh-expandable-content">
{{ # liquid-if this .timezoneOpen }}
<div class="gh-setting-content-extended">
<GhTimezoneSelect
@timezone= {{ this .settings .timezone }}
@availableTimezones= {{ this .availableTimezones }}
@update= {{ action "setTimezone" }} />
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
{{ / liquid-if }}
2019-06-18 13:47:21 +03:00
</div>
2022-09-06 12:16:53 +03:00
</div>
2017-02-21 11:18:15 +03:00
2022-09-06 12:16:53 +03:00
<div class="gh-expandable-block">
<div class="gh-expandable-header">
<div>
<h4 class="gh-expandable-title">Publication Language</h4>
<p class="gh-expandable-description">Set the language/locale which is used on your site</p>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "langOpen" this ) }} data-test-toggle-lang><span> {{ if this .langOpen "Close" "Expand" }} </span></button>
</div>
<div class="gh-expandable-content">
{{ # liquid-if this .langOpen }}
<div class="gh-setting-content-extended">
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="locale">
<GhTextInput
@value= {{ readonly this .settings .locale }}
@input= {{ action ( mut this .settings .locale ) value = "target.value" }}
@focus-out= {{ action "validate" "locale" target = this .settings }}
data-test-input="locale"
/>
<GhErrorMessage @errors= {{ this .settings .errors }} @property="locale" />
<p>Default: English (<strong>en</strong>); you can add translation files to your theme for <a href="https://ghost.org/docs/themes/helpers/translate/" target="_blank" rel="noopener noreferrer">any language</a></p>
</GhFormGroup>
2019-08-21 18:16:59 +03:00
</div>
2022-09-06 12:16:53 +03:00
{{ / liquid-if }}
2019-08-21 18:16:59 +03:00
</div>
2022-09-06 12:16:53 +03:00
</div>
</section>
</div>
2022-08-22 18:52:33 +03:00
2022-09-06 12:16:53 +03:00
<div class="gh-main-section">
<h4 class="gh-main-section-header small bn">Site meta settings</h4>
<section class="gh-expandable">
<div class="gh-expandable-block">
<div class="gh-expandable-header">
<div>
<h4 class="gh-expandable-title">Meta data</h4>
<p class="gh-expandable-description">Extra content for search engines</p>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "metaDataOpen" this ) }} data-test-toggle-meta><span> {{ if this .metaDataOpen "Close" "Expand" }} </span></button>
</div>
<div class="gh-expandable-content">
{{ # liquid-if this .metaDataOpen }}
2022-08-22 18:52:33 +03:00
<div class="gh-setting-content-extended">
2022-09-06 12:16:53 +03:00
<div class="gh-seo-settings">
<div class="gh-seo-settings-left flex-basis-1-2-m flex-basis-2-3-l">
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="metaTitle">
<label for="metaTitle">Meta title</label>
2022-08-22 18:52:33 +03:00
<GhTextInput
2022-09-06 12:16:53 +03:00
@id="metaTitle"
2022-08-22 18:52:33 +03:00
@type="text"
@placeholder= {{ truncate this .settings .title 7 0 }}
2022-09-06 12:16:53 +03:00
@value= {{ readonly this .settings .metaTitle }}
@input= {{ action ( mut this .settings .metaTitle ) value = "target.value" }}
data-test-input="metaTitle"
2022-08-22 18:52:33 +03:00
/>
2022-09-06 12:16:53 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="metaTitle" data-test-error="metaTitle" />
<p>Recommended: <b>70</b> characters. You’ ve used <b> {{ gh-count-down-characters this .settings .metaTitle 7 0 }} </b></p>
2022-08-22 18:52:33 +03:00
</GhFormGroup>
2022-09-06 12:16:53 +03:00
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="metaDescription">
<label for="metaDescription">Meta description</label>
2022-08-22 18:52:33 +03:00
<GhTextarea
2022-09-06 12:16:53 +03:00
@id="metaDescription"
@type="text"
2022-08-22 18:52:33 +03:00
@placeholder= {{ truncate this .settings .description 3 0 0 }}
2022-09-06 12:16:53 +03:00
@value= {{ readonly this .settings .metaDescription }}
@input= {{ action ( mut this .settings .metaDescription ) value = "target.value" }}
data-test-input="metaDescription"
2022-08-22 18:52:33 +03:00
/>
2022-09-06 12:16:53 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="metaDescription" data-test-error="metaDescription" />
<p>Recommended: <b>156</b> characters. You’ ve used <b> {{ gh-count-down-characters this .settings .metaDescription 1 5 6 }} </b></p>
2022-08-22 18:52:33 +03:00
</GhFormGroup>
</div>
<div class="flex-basis-1-2-m flex-basis-1-3-l">
2022-09-06 12:16:53 +03:00
<label>Search engine result preview</label>
<div class="gh-seo-container">
<div class="gh-seo-preview">
<div class="flex mb6">
{{ svg-jar "google" }}
<div class="gh-seo-search-bar"> {{ svg-jar "google-search" }} </div>
</div>
<div class="gh-seo-preview-link"> {{ this .config .blogDomain }} </div>
<div class="gh-seo-preview-title"> {{ or this .settings .metaTitle this .settings .title }} </div>
<div class="gh-seo-preview-desc">
{{ truncate ( or this .settings .metaDescription this .settings .description ) 1 5 9 }}
2021-02-18 23:33:04 +03:00
</div>
2019-08-21 18:16:59 +03:00
</div>
</div>
</div>
</div>
</div>
2022-09-06 12:16:53 +03:00
{{ / liquid-if }}
2019-08-21 18:16:59 +03:00
</div>
2022-09-06 12:16:53 +03:00
</div>
2021-02-09 19:22:58 +03:00
2022-09-06 12:16:53 +03:00
<div class="gh-expandable-block">
<div class="gh-expandable-header">
<div>
<h4 class="gh-expandable-title">Twitter card</h4>
<p class="gh-expandable-description">Customize structured data of your site for Twitter</p>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "twitterCardOpen" this ) }} data-test-toggle-twitter><span> {{ if this .twitterCardOpen "Close" "Expand" }} </span></button>
</div>
<div class="gh-expandable-content">
{{ # liquid-if this .twitterCardOpen }}
<div class="gh-setting-content-extended">
<div class="gh-twitter-settings">
<div class="gh-twitter-settings-left flex-basis-1-2-m flex-basis-2-3-l">
<label>Twitter image</label>
<GhFormGroup>
<GhImageUploaderWithPreview
@image= {{ this .settings .twitterImage }}
@text="Add Twitter image"
@allowUnsplash= {{ true }}
@update= {{ action ( mut this .settings .twitterImage ) }}
@remove= {{ action ( mut this .settings .twitterImage ) "" }}
/>
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="twitterTitle">
<label for="twitterTitle">Twitter title</label>
<GhTextInput
@id="twitterTitle"
@type="text"
@placeholder= {{ truncate this .settings .title 7 0 }}
@value= {{ readonly this .settings .twitterTitle }}
@input= {{ action ( mut this .settings .twitterTitle ) value = "target.value" }}
data-test-input="twitterTitle"
/>
<GhErrorMessage @errors= {{ this .settings .errors }} @property="twitterTitle" data-test-error="twitterTitle" />
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="twitterDescription">
<label for="twitterDescription">Twitter description</label>
<GhTextarea
@id="twitterDescription"
@placeholder= {{ truncate this .settings .description 3 0 0 }}
@value= {{ readonly this .settings .twitterDescription }}
@input= {{ action ( mut this .settings .twitterDescription ) value = "target.value" }}
data-test-input="twitterDescription"
/>
<GhErrorMessage @errors= {{ this .settings .errors }} @property="twitterDescription" data-test-error="twitterDescription" />
</GhFormGroup>
</div>
<div class="flex-basis-1-2-m flex-basis-1-3-l">
<label>Twitter preview</label>
<div class="gh-twitter-container">
<div class="flex ma4">
<span> {{ svg-jar "social-twitter" class = "social-icon" }} </span>
<div class="w-100">
<span class="gh-social-og-title"> {{ or this .settings .metaTitle this .settings .title }} </span>
<span class="gh-social-og-time">12 hrs</span>
<div class="flex flex-column mt2 mb3">
2022-08-22 18:52:33 +03:00
<span class="gh-social-og-desc w-100 mb2" />
<span class="gh-social-og-desc w-60" />
</div>
2022-09-06 12:16:53 +03:00
<div class="gh-social-twitter-post-preview">
{{ # if this .settings .twitterImage }}
<div class="gh-social-twitter-preview-image" style= {{ background-image-style this .settings .twitterImage }} ></div>
2022-08-22 18:52:33 +03:00
{{ / if }}
2022-09-06 12:16:53 +03:00
<div class="gh-social-twitter-preview-content">
<div class="gh-social-twitter-preview-title"> {{ or this .settings .twitterTitle this .settings .title }} </div>
<div class="gh-social-twitter-preview-desc"> {{ truncate ( or this .settings .twitterDescription this .settings .description ) }} </div>
<div class="gh-social-twitter-preview-meta">
{{ svg-jar "twitter-link" }}
{{ this .config .blogDomain }}
2022-08-22 18:52:33 +03:00
</div>
2021-03-02 15:24:54 +03:00
</div>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
<div class="gh-social-twitter-reactions">
<div class="flex items-center"> {{ svg-jar "twitter-comment" }} 2</div>
<div class="flex items-center"> {{ svg-jar "twitter-retweet" }} 11</div>
<div class="flex items-center"> {{ svg-jar "twitter-like" }} 32</div>
<div class="flex items-center"> {{ svg-jar "twitter-share" }} </div>
2021-02-09 19:22:58 +03:00
</div>
2019-08-21 18:16:59 +03:00
</div>
</div>
</div>
</div>
2022-09-06 12:16:53 +03:00
</div>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
{{ / liquid-if }}
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
</div>
2022-08-22 18:52:33 +03:00
2022-09-06 12:16:53 +03:00
<div class="gh-expandable-block">
<div class="gh-expandable-header">
<div>
<h4 class="gh-expandable-title">Facebook card</h4>
<p class="gh-expandable-description">Customize structured data of your site</p>
2019-08-21 18:16:59 +03:00
</div>
2022-09-06 12:16:53 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "facebookCardOpen" this ) }} data-test-toggle-facebook><span> {{ if this .facebookCardOpen "Close" "Expand" }} </span></button>
</div>
<div class="gh-expandable-content">
{{ # liquid-if this .facebookCardOpen }}
2022-08-22 18:52:33 +03:00
<div class="gh-setting-content-extended">
2022-09-06 12:16:53 +03:00
<div class="gh-og-settings">
<div class="gh-og-settings-left flex-basis-1-2-m flex-basis-2-3-l">
<label>Facebook image</label>
<GhFormGroup>
<GhImageUploaderWithPreview
@image= {{ this .settings .ogImage }}
@text="Add Facebook image"
@allowUnsplash= {{ true }}
@update= {{ action ( mut this .settings .ogImage ) }}
@remove= {{ action ( mut this .settings .ogImage ) "" }}
/>
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="ogTitle">
<label for="ogTitle">Facebook title</label>
<GhTextInput
@id="ogTitle"
@type="text"
@placeholder= {{ truncate this .settings .title 7 0 }}
@value= {{ readonly this .settings .ogTitle }}
@input= {{ action ( mut this .settings .ogTitle ) value = "target.value" }}
data-test-input="ogTitle"
/>
<GhErrorMessage @errors= {{ this .settings .errors }} @property="ogTitle" data-test-error="ogTitle" />
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="ogDescription">
<label for="ogDescription">Facebook description</label>
<GhTextarea
@id="ogDescription"
@placeholder= {{ truncate this .settings .description 3 0 0 }}
@value= {{ readonly this .settings .ogDescription }}
@input= {{ action ( mut this .settings .ogDescription ) value = "target.value" }}
data-test-input="ogDescription"
/>
<GhErrorMessage @errors= {{ this .settings .errors }} @property="ogDescription" data-test-error="ogDescription" />
</GhFormGroup>
</div>
<div class="flex-basis-1-2-m flex-basis-1-3-l">
<label>Facebook preview</label>
<div class="gh-og-container">
<div class="flex ma3 mb2">
<span> {{ svg-jar "social-facebook" class = "social-icon" }} </span>
<div>
<div class="gh-social-og-title"> {{ or this .settings .metaTitle this .settings .title }} </div>
<div class="gh-social-og-time">12 hrs</div>
</div>
</div>
<div class="flex flex-column ma3 mt2">
<span class="gh-social-og-desc w-100 mb2" />
<span class="gh-social-og-desc w-60" />
</div>
<div class="gh-social-og-preview">
{{ # if this .settings .ogImage }}
<div class="gh-social-og-preview-image" style= {{ background-image-style this .settings .ogImage }} ></div>
{{ / if }}
<div class="gh-social-og-preview-bookmark">
{{!-- Ensures description is hidden if title exceeds one line --}}
<div class="gh-social-og-preview-content">
<div class="gh-social-og-preview-meta">
{{ this .config .blogDomain }}
</div>
<div class="gh-social-og-preview-title"> {{ truncate ( or this .settings .ogTitle this .settings .title ) }} </div>
<div class="gh-social-og-preview-desc"> {{ truncate ( or this .settings .ogDescription this .settings .description ) }} </div>
</div>
</div>
</div>
<div class="gh-social-og-reactions">
<span class="gh-social-og-likes"> {{ svg-jar "facebook-like" class = "z-999" }} {{ svg-jar "facebook-heart" class = "nl1" }} 182</span>
<span class="gh-social-og-comments">7 comments</span>
<span class="gh-social-og-comments ml2">2 shares</span>
</div>
</div>
</div>
</div>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
{{ / liquid-if }}
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
</div>
2022-08-22 18:52:33 +03:00
2022-09-06 12:16:53 +03:00
<div class="gh-expandable-block">
<div class="gh-expandable-header">
<div>
<h4 class="gh-expandable-title">Social accounts</h4>
<p class="gh-expandable-description">Link your social accounts for full structured data and rich card support</p>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "socialOpen" this ) }} data-test-toggle-social><span> {{ if this .socialOpen "Close" "Expand" }} </span></button>
</div>
<div class="gh-expandable-content">
{{ # liquid-if this .socialOpen }}
<div class="gh-setting-content-extended">
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="facebook">
2022-10-04 19:32:49 +03:00
<GhFacebookUrlInput
aria-labelledby="facebook-url-label"
@scratchValue= {{ this .scratchValues .facebook }}
@setScratchValue= {{ fn this .setScratchValue "facebook" }}
@model= {{ this .settings }}
@modelProperty="facebook"
2022-09-06 12:16:53 +03:00
/>
2022-09-13 11:19:14 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="facebook" data-test-facebook-error />
2022-10-04 19:32:49 +03:00
<p id="facebook-url-label">URL of your publication's Facebook Page</p>
2022-09-06 12:16:53 +03:00
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="twitter">
2022-10-04 19:32:49 +03:00
<GhTwitterUrlInput
aria-labelledby="twitter-url-label"
@scratchValue= {{ this .scratchValues .twitter }}
@setScratchValue= {{ fn this .setScratchValue "twitter" }}
@model= {{ this .settings }}
@modelProperty="twitter"
2022-09-06 12:16:53 +03:00
/>
2022-09-13 11:19:14 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="twitter" data-test-twitter-error />
2022-10-04 19:32:49 +03:00
<p id="twitter-url-label">URL of your publication's Twitter profile</p>
2022-09-06 12:16:53 +03:00
</GhFormGroup>
2022-08-22 18:52:33 +03:00
</div>
2022-09-06 12:16:53 +03:00
{{ / liquid-if }}
2019-06-18 13:47:21 +03:00
</div>
2022-09-06 12:16:53 +03:00
</div>
2021-11-04 10:50:25 +03:00
2022-09-06 12:16:53 +03:00
</section>
</div>
2022-08-22 18:52:33 +03:00
2022-09-06 12:16:53 +03:00
<div class="gh-main-section">
<h4 class="gh-main-section-header small bn">Advanced settings</h4>
<section class="gh-expandable">
<div class="gh-expandable-block">
<div class="gh-expandable-header">
<div>
<h4 class="gh-expandable-title">Make this site private</h4>
<p class="gh-expandable-description">
Enable protection with a simple shared password. All search engine optimization and social features will be disabled.
2022-08-22 18:52:33 +03:00
</p>
2019-06-18 13:47:21 +03:00
</div>
2022-09-06 12:16:53 +03:00
<div class="for-switch">
<label class="switch" for="settings-private">
<input
type="checkbox"
checked= {{ this .settings .isPrivate }}
id="settings-private"
onclick= {{ action "toggleIsPrivate" value = "target.checked" }}
data-test-private-checkbox
>
<span class="input-toggle-component"></span>
</label>
</div>
</div>
<div class="gh-expandable-content">
{{ # if this .settings .isPrivate }}
<div class="gh-setting-content-extended pt4 pb4">
<span class="avoid-break-out">
A private RSS feed is available at
<a href=" {{ this .privateRSSUrl }} " target="_blank" rel="noopener noreferrer"> {{ this .privateRSSUrl }} </a>
2022-08-22 18:52:33 +03:00
</span>
2022-09-06 12:16:53 +03:00
<GhFormGroup @class="no-margin pt2" @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="password">
<GhTextInput
@value= {{ readonly this .settings .password }}
@name="general[password]"
@focus-out= {{ action "validate" "password" target = this .settings }}
@input= {{ action ( mut this .settings .password ) value = "target.value" }}
data-test-password-input= {{ true }}
/>
2022-09-13 11:19:14 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="password" data-test-password-error />
2022-09-06 12:16:53 +03:00
<p>Set the password for this site</p>
</GhFormGroup>
</div>
{{ / if }}
</div>
2017-02-21 11:18:15 +03:00
</div>
2022-09-06 12:16:53 +03:00
</section>
</div>
2019-06-18 13:47:21 +03:00
</div>
2014-12-30 05:11:24 +03:00
</section>
2019-06-18 13:47:21 +03:00
{{ outlet }}