2017-02-17 08:50:07 +03:00
<section class="gh-canvas">
2019-06-18 13:47:21 +03:00
<div>
<GhCanvasHeader class="gh-canvas-header">
<h2 class="gh-canvas-title" data-test-screen-title>
General settings
</h2>
2015-06-13 17:34:09 +03:00
<section class="view-actions">
2020-06-04 16:46:52 +03:00
<GhTaskButton @buttonText="Save settings" @task= {{ this .save }} @class="gh-btn gh-btn-blue gh-btn-icon" data-test-save-button="true" />
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
2019-12-13 17:20:29 +03:00
{{ # if this .showLeaveSettingsModal }}
2020-01-16 18:14:03 +03:00
<GhFullscreenModal @modal="leave-settings"
@confirm= {{ action "leaveSettings" }}
@close= {{ action "toggleLeaveSettingsModal" }}
@modifier="action wide" />
2017-10-04 13:49:30 +03:00
{{ / if }}
2017-02-17 08:50:07 +03:00
<section class="view-container">
2017-02-21 11:18:15 +03:00
2019-06-18 13:47:21 +03:00
<div class="gh-setting-header gh-first-header">Publication info</div>
<div class="flex flex-column br3 shadow-1 bg-grouped-table pa5 mt2">
<div class="gh-setting-first">
<div class="gh-setting-content">
<div class="gh-setting-title">Title & description</div>
<div class="gh-setting-desc">The details used to identify your publication around the web</div>
2019-12-13 17:20:29 +03:00
{{ # liquid-if this .pubInfoOpen }}
2019-06-18 13:47:21 +03:00
<div class="gh-setting-content-extended">
2020-01-16 18:14:03 +03:00
<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 }}
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="title" />
2019-06-18 13:47:21 +03:00
<p>The name of your site</p>
2020-01-16 18:14:03 +03:00
</GhFormGroup>
2017-02-21 11:18:15 +03:00
2020-01-16 18:14:03 +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"/>
2019-06-18 13:47:21 +03:00
<p>Used in your theme, meta data and search results</p>
2020-01-16 18:14:03 +03:00
</GhFormGroup>
2019-06-18 13:47:21 +03:00
</div>
{{ / liquid-if }}
2017-02-21 11:18:15 +03:00
</div>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-action">
2019-12-13 17:20:29 +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>
2017-02-21 11:18:15 +03:00
</div>
</div>
2019-06-18 13:47:21 +03:00
<div class="gh-setting">
<div class="gh-setting-content">
<div class="gh-setting-title">Site timezone</div>
<div class="gh-setting-desc">Set the time and date of your publication, used for all published posts</div>
2019-12-13 17:20:29 +03:00
{{ # liquid-if this .timezoneOpen }}
2019-06-18 13:47:21 +03:00
<div class="gh-setting-content-extended">
2020-01-16 18:14:03 +03:00
<GhTimezoneSelect
2020-06-24 17:34:59 +03:00
@timezone= {{ this .settings .timezone }}
2020-01-16 18:14:03 +03:00
@availableTimezones= {{ this .availableTimezones }}
@update= {{ action "setTimezone" }} />
2019-06-18 13:47:21 +03:00
</div>
{{ / liquid-if }}
</div>
<div class="gh-setting-action">
2019-12-13 17:20:29 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "timezoneOpen" this ) }} data-test-toggle-timezone><span> {{ if this .timezoneOpen "Close" "Expand" }} </span></button>
2018-01-09 16:55:28 +03:00
</div>
</div>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-last">
<div class="gh-setting-content">
<div class="gh-setting-title">Publication Language</div>
<div class="gh-setting-desc">Set the language/locale which is used on your site</div>
2020-06-24 17:27:17 +03:00
{{ # liquid-if this .langOpen }}
2019-06-18 13:47:21 +03:00
<div class="gh-setting-content-extended">
2020-06-24 17:27:17 +03:00
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="lang">
2020-01-16 18:14:03 +03:00
<GhTextInput
2020-06-24 17:27:17 +03:00
@value= {{ readonly this .settings .lang }}
@input= {{ action ( mut this .settings .lang ) value = "target.value" }}
@focus-out= {{ action "validate" "lang" target = this .settings }}
data-test-input="lang"
2020-01-16 18:14:03 +03:00
/>
2020-06-24 17:27:17 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="lang" />
2019-07-25 10:15:31 +03:00
<p>Default: English (<strong>en</strong>); you can add translation files to your theme for <a href="https://ghost.org/docs/api/handlebars-themes/helpers/translate/" target="_blank" rel="noopener">any language</a></p>
2020-01-16 18:14:03 +03:00
</GhFormGroup>
2019-06-18 13:47:21 +03:00
</div>
{{ / liquid-if }}
</div>
<div class="gh-setting-action">
2020-06-24 17:27:17 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "langOpen" this ) }} data-test-toggle-lang><span> {{ if this .langOpen "Close" "Expand" }} </span></button>
2019-06-18 13:47:21 +03:00
</div>
2018-01-09 16:55:28 +03:00
</div>
</div>
2017-02-21 11:18:15 +03:00
<div class="gh-setting-header">Publication identity</div>
2019-06-18 13:47:21 +03:00
<div class="flex flex-column br3 shadow-1 bg-grouped-table pa5">
2020-07-06 17:07:22 +03:00
{{ # if this .config .enableDeveloperExperiments }}
<div class="gh-setting-first" data-test-setting="accent-color">
<div class="gh-setting-content">
<div class="gh-setting-title">Accent Color</div>
<div class="gh-setting-desc">Primary color used in your publication theme</div>
</div>
<div class="gh-setting-action">
<GhFormGroup @errors= {{ settings .errors }} @hasValidated= {{ settings .hasValidated }} @property="accentColor" @class="input-color-form-group">
<div class="input-color">
<GhTextInput
@name="accent-color"
@placeholder="abcdef"
@autocorrect="off"
@maxlength="6"
@focus-out= {{ action "validateAccentColor" }}
@value= {{ accentColor }}
data-test-input="accentColor"
/>
<div class="color-box" style= {{ this .backgroundStyle }} ></div>
</div>
<GhErrorMessage @errors= {{ settings .errors }} @property="accentColor" data-test-error="accentColor" />
</GhFormGroup>
</div>
</div>
{{ / if }}
<div class=" {{ if this .config .enableDeveloperExperiments "gh-setting" "gh-setting-first" }} " data-test-setting="icon">
2020-01-16 18:14:03 +03:00
<GhUploader
@extensions= {{ this .iconExtensions }}
@paramsHash= {{ hash purpose = "icon" }}
@onComplete= {{ action "imageUploaded" "icon" }}
2019-06-18 13:47:21 +03:00
as |uploader|
2020-01-16 18:14:03 +03:00
>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-content">
<div class="gh-setting-title">Publication icon</div>
<div class="gh-setting-desc">A square, social icon used in the UI of your publication, at least 60x60px</div>
{{ # each uploader .errors as | error | }}
<div class="gh-setting-error" data-test-error="icon"> {{ or error .context error .message }} </div>
{{ / each }}
2017-05-23 11:50:04 +03:00
</div>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-action gh-setting-action-smallimg">
{{ # if uploader .isUploading }}
{{ uploader .progressBar }}
2019-12-13 17:20:29 +03:00
{{ else if this .settings .icon }}
<img class="blog-icon" src=" {{ this .settings .icon }} " onclick= {{ action "triggerFileDialog" }} alt="icon" data-test-icon-img>
2019-06-18 13:47:21 +03:00
<button type="button" class="gh-setting-action-smallimg-delete" {{ action "removeImage" "icon" }} data-test-delete-image="icon">
<span>delete</span>
</button>
{{ else }}
<button type="button" class="gh-btn" onclick= {{ action "triggerFileDialog" }} data-test-image-upload-btn="icon">
<span>Upload Image</span>
</button>
{{ / if }}
<div style="display:none">
2020-01-16 18:14:03 +03:00
<GhFileInput @multiple= {{ false }} @action= {{ uploader .setFiles }} @accept= {{ this .iconMimeTypes }} data-test-file-input="icon" />
2019-06-18 13:47:21 +03:00
</div>
2017-05-23 11:50:04 +03:00
</div>
2020-01-16 18:14:03 +03:00
</GhUploader>
2014-03-10 07:44:08 +04:00
</div>
2019-06-18 13:47:21 +03:00
<div class="gh-setting" data-test-setting="logo">
2020-01-16 18:14:03 +03:00
<GhUploader
@extensions= {{ this .imageExtensions }}
@onComplete= {{ action "imageUploaded" "logo" }}
2019-06-18 13:47:21 +03:00
as |uploader|
2020-01-16 18:14:03 +03:00
>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-content">
<div class="gh-setting-title">Publication logo</div>
<div class="gh-setting-desc">The primary logo for your brand displayed across your theme, should be transparent and at least 600px x 72px</div>
{{ # each uploader .errors as | error | }}
<div class="gh-setting-error" data-test-error="logo"> {{ or error .context error .message }} </div>
{{ / each }}
</div>
<div class="gh-setting-action gh-setting-action-smallimg">
{{ # if uploader .isUploading }}
{{ uploader .progressBar }}
2019-12-13 17:20:29 +03:00
{{ else if this .settings .logo }}
<img class="blog-logo" src=" {{ this .settings .logo }} " onclick= {{ action "triggerFileDialog" }} alt="logo" data-test-logo-img>
2019-06-18 13:47:21 +03:00
<button type="button" class="gh-setting-action-smallimg-delete" {{ action "removeImage" "logo" }} data-test-delete-image="logo">
<span>delete</span>
</button>
{{ else }}
<button type="button" class="gh-btn" onclick= {{ action "triggerFileDialog" }} data-test-image-upload-btn="logo">
<span>Upload Image</span>
</button>
{{ / if }}
<div style="display:none">
2020-01-16 18:14:03 +03:00
<GhFileInput @multiple= {{ false }} @action= {{ uploader .setFiles }} @accept= {{ this .imageMimeTypes }} data-test-file-input="logo" />
2019-06-18 13:47:21 +03:00
</div>
</div>
2020-01-16 18:14:03 +03:00
</GhUploader>
2017-02-21 11:18:15 +03:00
</div>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-last" data-test-setting="coverImage">
2020-01-16 18:14:03 +03:00
<GhUploader
@extensions= {{ this .imageExtensions }}
@onComplete= {{ action "imageUploaded" "coverImage" }}
2019-06-18 13:47:21 +03:00
as |uploader|
2020-01-16 18:14:03 +03:00
>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-content">
<div class="gh-setting-title">Publication cover</div>
<div class="gh-setting-desc">An optional large background image for your site</div>
{{ # each uploader .errors as | error | }}
<div class="gh-setting-error" data-test-error="coverImage"> {{ or error .context error .message }} </div>
{{ / each }}
2017-05-23 11:50:04 +03:00
</div>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-action gh-setting-action-largeimg">
{{ # if uploader .isUploading }}
{{ uploader .progressBar }}
2019-12-13 17:20:29 +03:00
{{ else if this .settings .coverImage }}
<img class="blog-cover" src=" {{ this .settings .coverImage }} " onclick= {{ action "triggerFileDialog" }} alt="cover photo" data-test-cover-img>
2019-06-18 13:47:21 +03:00
<button type="button" class="gh-setting-action-largeimg-delete" {{ action "removeImage" "coverImage" }} data-test-delete-image="coverImage">
<span>delete</span>
</button>
{{ else }}
<button type="button" class="gh-btn" onclick= {{ action "triggerFileDialog" }} data-test-image-upload-btn="coverImage">
<span>Upload Image</span>
</button>
{{ / if }}
<div style="display:none">
2020-01-16 18:14:03 +03:00
<GhFileInput @multiple= {{ false }} @action= {{ uploader .setFiles }} @accept= {{ this .imageMimeTypes }} data-test-file-input="coverImage" />
2019-06-18 13:47:21 +03:00
</div>
</div>
2020-01-16 18:14:03 +03:00
</GhUploader>
2014-03-10 07:44:08 +04:00
</div>
2017-02-21 11:18:15 +03:00
</div>
2019-08-21 18:16:59 +03:00
<div class="gh-setting-header">Site meta settings</div>
<div class="flex flex-column br3 shadow-1 bg-grouped-table pa5">
<div class="gh-setting-first flex-column">
<div class="flex flex-row justify-between w-100">
<div class="gh-setting-content">
<div class="gh-setting-title">Meta data</div>
<div class="gh-setting-desc">Extra content for search engines</div>
</div>
<div class="gh-setting-action">
2019-12-13 17:20:29 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "metaDataOpen" this ) }} data-test-toggle-meta><span> {{ if this .metaDataOpen "Close" "Expand" }} </span></button>
2019-08-21 18:16:59 +03:00
</div>
</div>
2019-12-13 17:20:29 +03:00
{{ # liquid-if this .metaDataOpen }}
2019-08-21 18:16:59 +03:00
<div class="gh-setting-content-extended">
<div class="flex flex-column flex-row-ns">
<div class="flex-basis-1-2-m flex-basis-2-3-l mr5">
2020-01-16 18:14:03 +03:00
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="metaTitle">
2019-08-21 18:16:59 +03:00
<label for="metaTitle">Meta title</label>
2020-01-16 18:14:03 +03:00
<GhTextInput
@id="metaTitle"
@type="text"
@placeholder= {{ truncate this .settings .title 7 0 }}
@value= {{ readonly this .settings .metaTitle }}
@input= {{ action ( mut this .settings .metaTitle ) value = "target.value" }}
2019-08-21 18:16:59 +03:00
data-test-input="metaTitle"
2020-01-16 18:14:03 +03:00
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="metaTitle" data-test-error="metaTitle" />
2019-08-21 18:16:59 +03:00
<p>Recommended: <b>70</b> characters. You’ ve used <b> {{ gh-count-down-characters this .settings .metaTitle 7 0 }} </b></p>
2020-01-16 18:14:03 +03:00
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="metaDescription">
2019-08-21 18:16:59 +03:00
<label for="metaDescription">Meta description</label>
2020-01-16 18:14:03 +03:00
<GhTextarea
@id="metaDescription"
@type="text"
@placeholder= {{ truncate this .settings .description 3 0 0 }}
@value= {{ readonly this .settings .metaDescription }}
@input= {{ action ( mut this .settings .metaDescription ) value = "target.value" }}
2019-08-21 18:16:59 +03:00
data-test-input="metaDescription"
2020-01-16 18:14:03 +03:00
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="metaDescription" data-test-error="metaDescription" />
2019-08-21 18:16:59 +03:00
<p>Recommended: <b>156</b> characters. You’ ve used <b> {{ gh-count-down-characters this .settings .metaDescription 1 5 6 }} </b></p>
2020-01-16 18:14:03 +03:00
</GhFormGroup>
2019-08-21 18:16:59 +03:00
</div>
<div class="flex-basis-1-2-m flex-basis-1-3-l">
<label>Search engine result preview</label>
<div class="seo-preview">
<div class="seo-preview-title"> {{ truncate ( or this .settings .metaTitle this .settings .title ) 7 0 }} </div>
<div class="seo-preview-link"> {{ truncate this .config .blogUrl 7 0 }} </div>
<div class="seo-preview-description"> {{ truncate ( or this .settings .metaDescription this .settings .description ) 3 0 0 }} </div>
</div>
</div>
</div>
</div>
{{ / liquid-if }}
</div>
<div class="gh-setting flex-column">
<div class="flex flex-row justify-between w-100">
<div class="gh-setting-content">
<div class="gh-setting-title">Twitter card</div>
<div class="gh-setting-desc">Customise structured data of your site for Twitter</div>
</div>
<div class="gh-setting-action">
2019-12-13 17:20:29 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "twitterCardOpen" this ) }} data-test-toggle-twitter><span> {{ if this .twitterCardOpen "Close" "Expand" }} </span></button>
2019-08-21 18:16:59 +03:00
</div>
</div>
2019-12-13 17:20:29 +03:00
{{ # liquid-if this .twitterCardOpen }}
2019-08-21 18:16:59 +03:00
<div class="gh-setting-content-extended">
<div class="flex flex-column flex-row-ns">
<div class="flex-basis-1-2-m flex-basis-2-3-l mr5 nudge-top--7">
2020-01-16 18:14:03 +03:00
<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">
2019-08-21 18:16:59 +03:00
<label for="twitterTitle">Twitter title</label>
2020-01-16 18:14:03 +03:00
<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" }}
2019-08-21 18:16:59 +03:00
data-test-input="twitterTitle"
2020-01-16 18:14:03 +03:00
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="twitterTitle" data-test-error="twitterTitle" />
2020-01-16 18:14:03 +03:00
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="twitterDescription">
2019-08-21 18:16:59 +03:00
<label for="twitterDescription">Twitter description</label>
2020-01-16 18:14:03 +03:00
<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" }}
2019-08-21 18:16:59 +03:00
data-test-input="twitterDescription"
2020-01-16 18:14:03 +03:00
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="twitterDescription" data-test-error="twitterDescription" />
2020-01-16 18:14:03 +03:00
</GhFormGroup>
2019-08-21 18:16:59 +03:00
</div>
<div class="flex-basis-1-2-m flex-basis-1-3-l nt4-ns">
<label>Preview</label>
<div class="gh-twitter-preview">
{{ # if this .settings .twitterImage }}
<div class="gh-twitter-preview-image" style= {{ background-image-style this .settings .twitterImage }} ></div>
{{ / if }}
<div class="gh-twitter-preview-content">
<div class="gh-twitter-preview-title"> {{ or this .settings .twitterTitle this .settings .title }} </div>
<div class="gh-twitter-preview-description"> {{ truncate ( or this .settings .twitterDescription this .settings .description ) 1 5 5 }} </div>
<div class="gh-twitter-preview-footer">
<div class="gh-twitter-preview-footer-left">
{{ this .config .blogDomain }}
</div>
<div class="gh-twitter-preview-footer-right">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{{ / liquid-if }}
</div>
<div class="gh-setting-last flex-column">
<div class="flex flex-row justify-between w-100">
<div class="gh-setting-content">
<div class="gh-setting-title">Facebook card</div>
<div class="gh-setting-desc">Customise structured data of your site</div>
</div>
<div class="gh-setting-action">
2019-12-13 17:20:29 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "facebookCardOpen" this ) }} data-test-toggle-facebook><span> {{ if this .facebookCardOpen "Close" "Expand" }} </span></button>
2019-08-21 18:16:59 +03:00
</div>
</div>
2019-12-13 17:20:29 +03:00
{{ # liquid-if this .facebookCardOpen }}
2019-08-21 18:16:59 +03:00
<div class="gh-setting-content-extended">
<div class="flex flex-column flex-row-ns">
<div class="flex-basis-1-2-m flex-basis-2-3-l mr5 nudge-top--7">
2020-01-16 18:14:03 +03:00
<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">
2019-08-21 18:16:59 +03:00
<label for="ogTitle">Facebook title</label>
2020-01-16 18:14:03 +03:00
<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" }}
2019-08-21 18:16:59 +03:00
data-test-input="ogTitle"
2020-01-16 18:14:03 +03:00
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="ogTitle" data-test-error="ogTitle" />
2020-01-16 18:14:03 +03:00
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="ogDescription">
2019-08-21 18:16:59 +03:00
<label for="ogDescription">Facebook description</label>
2020-01-16 18:14:03 +03:00
<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" }}
2019-08-21 18:16:59 +03:00
data-test-input="ogDescription"
2020-01-16 18:14:03 +03:00
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="ogDescription" data-test-error="ogDescription" />
2020-01-16 18:14:03 +03:00
</GhFormGroup>
2019-08-21 18:16:59 +03:00
</div>
<div class="flex-basis-1-2-m flex-basis-1-3-l nt4-ns">
<label>Preview</label>
<div class="gh-og-preview">
{{ # if this .settings .ogImage }}
<div class="gh-og-preview-image" style= {{ background-image-style this .settings .ogImage }} ></div>
{{ / if }}
<div class="gh-og-preview-content">
<div class="gh-og-preview-title"> {{ truncate ( or this .settings .ogTitle this .settings .title ) 8 8 }} </div>
<div class="gh-og-preview-description"> {{ truncate ( or this .settings .ogDescription this .settings .description ) 3 0 0 }} </div>
<div class="gh-og-preview-footer">
<div class="gh-og-preview-footer-left">
{{ this .config .blogDomain }}
</div>
<div class="gh-og-preview-footer-right"></div>
</div>
</div>
</div>
</div>
</div>
</div>
{{ / liquid-if }}
</div>
</div>
2017-02-21 11:18:15 +03:00
<div class="gh-setting-header">Social accounts</div>
2019-06-18 13:47:21 +03:00
<div class="flex flex-column br3 shadow-1 bg-grouped-table pa5">
<div class="gh-setting-first gh-setting-last">
<div class="gh-setting-content">
<div class="gh-setting-title">Social accounts</div>
<div class="gh-setting-desc">Link your social accounts for full structured data and rich card support</div>
2019-12-13 17:20:29 +03:00
{{ # liquid-if this .socialOpen }}
2019-06-18 13:47:21 +03:00
<div class="gh-setting-content-extended">
2020-01-16 18:14:03 +03:00
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="facebook">
<GhTextInput
@type="url"
@placeholder="https://www.facebook.com/ghost"
@autocorrect="off"
@value= {{ readonly this .settings .facebook }}
@input= {{ action ( mut this ._scratchFacebook ) value = "target.value" }}
@focus-out= {{ action "validateFacebookUrl" }}
data-test-facebook-input= {{ true }}
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="facebook" data-test-facebook-error=true />
2019-06-18 13:47:21 +03:00
<p>URL of your publication's Facebook Page</p>
2020-01-16 18:14:03 +03:00
</GhFormGroup>
<GhFormGroup @errors= {{ this .settings .errors }} @hasValidated= {{ this .settings .hasValidated }} @property="twitter">
<GhTextInput
@type="url"
@placeholder="https://twitter.com/ghost"
@autocorrect="off"
@value= {{ readonly this .settings .twitter }}
@input= {{ action ( mut this ._scratchTwitter ) value = "target.value" }}
@focus-out= {{ action "validateTwitterUrl" }}
data-test-twitter-input= {{ true }}
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="twitter" data-test-twitter-error=true />
2019-06-18 13:47:21 +03:00
<p>URL of your publication's Twitter profile</p>
2020-01-16 18:14:03 +03:00
</GhFormGroup>
2019-06-18 13:47:21 +03:00
</div>
{{ / liquid-if }}
</div>
<div class="gh-setting-action">
2019-12-13 17:20:29 +03:00
<button type="button" class="gh-btn" {{ action ( toggle "socialOpen" this ) }} data-test-toggle-social><span> {{ if this .socialOpen "Close" "Expand" }} </span></button>
2016-03-03 11:52:27 +03:00
</div>
2017-02-21 11:18:15 +03:00
</div>
</div>
2016-03-03 11:52:27 +03:00
2017-02-21 11:18:15 +03:00
<div class="gh-setting-header">Advanced settings</div>
2019-06-18 13:47:21 +03:00
<div class="flex flex-column br3 shadow-1 bg-grouped-table pa5">
<div class="gh-setting-first gh-setting-last">
<div class="gh-setting-content">
<div class="gh-setting-title">Make this site private</div>
<div class="gh-setting-desc">
Enable protection with simple shared password. All search engine optimization and social features will be disabled.
2019-12-13 17:20:29 +03:00
{{ # if this .settings .isPrivate }}
2019-06-18 13:47:21 +03:00
<span class="avoid-break-out">
<br><br>
A private RSS feed is available at
2019-12-13 17:20:29 +03:00
<a href=" {{ this .privateRSSUrl }} " target="_blank" rel="noopener"> {{ this .privateRSSUrl }} </a>
2019-06-18 13:47:21 +03:00
</span>
{{ / if }}
</div>
2017-10-05 12:59:14 +03:00
2019-12-13 17:20:29 +03:00
{{ # if this .settings .isPrivate }}
2019-06-18 13:47:21 +03:00
<div class="gh-setting-content-extended">
2020-01-16 18:14:03 +03:00
<GhFormGroup @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 }}
/>
2019-12-13 19:11:49 +03:00
<GhErrorMessage @errors= {{ this .settings .errors }} @property="password" data-test-password-error=true />
2019-06-18 13:47:21 +03:00
<p>Set the password for this site</p>
2020-01-16 18:14:03 +03:00
</GhFormGroup>
2019-06-18 13:47:21 +03:00
</div>
2017-10-05 12:59:14 +03:00
{{ / if }}
2017-02-21 11:18:15 +03:00
</div>
2019-06-18 13:47:21 +03:00
<div class="gh-setting-action">
<div class="for-switch">
<label class="switch" for="settings-private">
<input
type="checkbox"
2019-12-13 17:20:29 +03:00
checked= {{ this .settings .isPrivate }}
2019-06-18 13:47:21 +03:00
id="settings-private"
onclick= {{ action "toggleIsPrivate" value = "target.checked" }}
data-test-private-checkbox
>
<span class="input-toggle-component"></span>
</label>
2017-10-05 12:59:14 +03:00
</div>
2017-04-11 12:10:56 +03:00
</div>
2017-02-21 11:18:15 +03:00
</div>
</div>
2015-06-13 17:34:09 +03:00
</section>
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 }}