export declare const GH_ACTION_CONTENT = "# Learn more \u2192 https://github.com/TryGhost/action-deploy-theme#getting-started\nname: Build and deploy theme\non:\n push:\n branches:\n - main\njobs:\n build:\n runs-on: ubuntu-22.04\n steps:\n - uses: actions/checkout@v4\n - name: Setup Node.js\n uses: actions/setup-node@v4\n with:\n node-version: '22'\n - run: npm ci\n - run: npm run build\n - name: Deploy theme\n uses: TryGhost/action-deploy-theme@v1\n with:\n api-url: ${{ secrets.GHOST_ADMIN_API_URL }}\n api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}"; export declare const DEFAULT_TEMPLATE_CONTENT = "\n\n\n \n \n {{meta_title}}\n\n {{!-- Add preconnect for jsdelivr --}}\n \n \n\n {{!-- Critical script for dark mode to prevent flash. Replaced during build. --}}\n \n \n\n \n \n {{ghost_head}}\n\n\n\n
\n {{> \"header\"}}\n\n
\n {{{body}}}\n
\n\n {{> \"footer\"}}\n
\n\n {{ghost_foot}}\n\n"; export declare const POST_TEMPLATE_CONTENT = "{{!< default}}\n\n{{#post}}\n
\n {{> \"feature-image\"}}\n\n
\n {{content}}\n
\n\n {{#if comments}}\n
\n {{comments}}\n
\n {{/if}}\n
\n{{/post}}\n\n{{!-- Related posts --}}\n{{#if @custom.show_related_articles}}\n {{#get \"posts\" include=\"authors\" filter=\"id:-{{post.id}}\" limit=\"4\" as |related|}}\n {{#if related}}\n
\n

{{t \"Read more\"}}

\n
\n {{#foreach related}}\n {{> \"card\"}}\n {{/foreach}}\n
\n
\n {{/if}}\n {{/get}}\n{{/if}}"; export declare const INDEX_TEMPLATE_CONTENT = "{{!< default}}\n\n
\n {{#foreach posts}}\n {{> \"card\"}}\n {{/foreach}}\n\n {{pagination}}\n
"; export declare const PAGE_TEMPLATE_CONTENT = "{{!< default}}\n\n{{#post}}\n
\n {{#match @page.show_title_and_feature_image}}\n
\n

\n {{title}}\n

\n {{> \"feature-image\"}}\n
\n {{/match}}\n\n
\n {{content}}\n
\n
\n{{/post}}"; export declare const AUTHOR_TEMPLATE_CONTENT = "{{!< default}}\n\n
\n
\n {{#author}}\n {{!-- author header --}}\n {{/author}}\n
\n\n
\n {{#foreach posts}}\n {{> \"card\"}}\n {{/foreach}}\n
\n\n
\n {{pagination}}\n
\n
"; export declare const TAG_TEMPLATE_CONTENT = "{{!< default}}\n\n
\n
\n {{#tag}}\n

{{name}}

\n

\n {{#if description}}\n {{description}}\n {{else}}\n A collection of {{plural ../pagination.total empty='zero posts' uint='one post' other='% posts'}}\n {{/if}}\n

\n {{/tag}}\n
\n\n
\n {{#foreach posts}}\n {{> \"card\"}}\n {{/foreach}}\n
\n\n
\n {{pagination}}\n
\n
"; export declare const ERROR_404_TEMPLATE_CONTENT = "{{!< default}}\n\n
\n

404

\n

Page not found

\n

Sorry, we couldn't find the page you're looking for. It might have been moved or deleted.

\n \n Back to Home\n \n
"; export declare const CARD_PARTIAL_CONTENT = "
\n {{#if feature_image}}\n \n \n \n {{/if}}\n\n
\n
\n {{#primary_tag}}\n {{name}}\n {{/primary_tag}}\n \n \n \n
\n\n \n

\n {{title}}\n

\n
\n

\n {{excerpt words=\"30\"}}\n

\n
\n
"; export declare const HEADER_PARTIAL_CONTENT = "
\n {{navigation}}\n \n
\n \n {{#if @member}}\n {{t \"Account\"}}\n {{else}}\n {{t \"Subscribe\"}}\n {{/if}}\n
\n
"; export declare const FOOTER_PARTIAL_CONTENT = ""; export declare const NAVIGATION_PARTIAL_CONTENT = ""; export declare const GHOST_CSS_CONTENT = "/* Ghost image styles */\n.kg-width-wide img { max-width: 80vw; width: 100%; margin: 2rem auto; }\n.kg-width-full img { max-width: 100vw; width: 100%; margin: 2rem auto; }\n.kg-card figcaption { text-align: center; font-size: 0.8rem; margin-top: 0.5rem; opacity: 0.6; }"; export declare const INDEX_CSS_CONTENT = "@import \"ghost.css\";\n\n"; export declare const CRITICAL_CSS_CONTENT = "@import \"reset.css\";\n"; export declare const CSS_RESET = "\n/* https://www.joshwcomeau.com/css/custom-css-reset/ */\n/* 1. Use a more-intuitive box-sizing model */\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n/* 2. Remove default margin */\n*:not(dialog) {\n margin: 0;\n}\n\n/* 3. Enable keyword animations */\n@media (prefers-reduced-motion: no-preference) {\n html {\n interpolate-size: allow-keywords;\n }\n}\n\nbody {\n /* 4. Increase line-height */\n line-height: 1.5;\n /* 5. Improve text rendering */\n -webkit-font-smoothing: antialiased;\n}\n\n/* 6. Improve media defaults */\nimg, picture, video, canvas, svg {\n display: block;\n max-width: 100%;\n}\n\n/* 7. Inherit fonts for form controls */\ninput, button, textarea, select {\n font: inherit;\n}\n\n/* 8. Avoid text overflows */\np, h1, h2, h3, h4, h5, h6 {\n overflow-wrap: break-word;\n}\n\n/* 9. Improve line wrapping */\np {\n text-wrap: pretty;\n}\nh1, h2, h3, h4, h5, h6 {\n text-wrap: balance;\n}\n"; export declare const PACKAGE_JSON_TEMPLATE: (name: string) => string; export declare const ESLINT_CONFIG_TEMPLATE = "{\n extends: [\n \"eslint:recommended\",\n \"plugin:@typescript-eslint/recommended\",\n \"plugin:@typescript-eslint/stylistic\",\n ],\n rules: {\n \"no-console\": 1,\n },\n}\n"; export declare const STYLELINT_CONFIG_TEMPLATE = "{\n \"extends\": [\"stylelint-config-standard\", \"stylelint-config-recess-order\"],\n \"rules\": {\n \"import-notation\": null,\n \"hue-degree-notation\": \"number\"\n }\n}"; export declare const DARK_MODE_CRITICAL_JS = "function toggleDarkModeShareButton(newMode: string) {\n const shareButton = document.querySelector(\"share-button\");\n\n if (!shareButton) {\n return;\n }\n\n const modeAsBool = newMode === \"dark\" ? \"true\" : \"false\";\n shareButton?.setAttribute(\"dark-mode\", modeAsBool);\n}\n\nfunction autoDarkMode() {\n if (\n window.matchMedia &&\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches\n ) {\n document.documentElement.dataset.mode = \"dark\";\n } else {\n document.documentElement.dataset.mode = \"light\";\n }\n}\n\nfunction setDarkMode() {\n const prefers = localStorage.getItem(\"s-dark-mode\");\n if (prefers) {\n document.documentElement.dataset.mode = prefers;\n } else {\n autoDarkMode();\n }\n}\n\nwindow\n .matchMedia(\"(prefers-color-scheme: dark)\")\n .addEventListener(\"change\", (e) => {\n const prefers = localStorage.getItem(\"s-dark-mode\");\n\n // Abort if user has already set a preference\n if (prefers) {\n return;\n }\n\n if (e.matches) {\n toggleDarkModeShareButton(\"dark\");\n } else {\n toggleDarkModeShareButton(\"light\");\n }\n autoDarkMode();\n });\n\nsetDarkMode();"; export declare const DARK_MODE_HANDLER_JS = "export function darkModeHandler() {\n const darkModeToggleButton = document.querySelectorAll(\".s-dark-mode-toggle\");\n\n if (!darkModeToggleButton) {\n return;\n }\n\n const mode = document.documentElement.dataset.mode!;\n toggleDarkModeShareButton(mode);\n\n Array.from(darkModeToggleButton).map((btn) =>\n btn.addEventListener(\"click\", () => {\n const newMode = invertMode();\n toggleDarkModeShareButton(newMode);\n document.documentElement.dataset.mode = newMode;\n localStorage.setItem(\"s-dark-mode\", newMode);\n })\n );\n}\n\nexport function toggleDarkModeShareButton(newMode: string) {\n const shareButton = document.querySelector(\"share-button\");\n\n if (!shareButton) {\n return;\n }\n\n const modeAsBool = newMode === \"dark\" ? \"true\" : \"false\";\n shareButton?.setAttribute(\"dark-mode\", modeAsBool);\n}\n\nexport function invertMode() {\n const currentMode = document.documentElement.dataset.mode!;\n return currentMode === \"dark\" ? \"light\" : \"dark\";\n}"; export declare const DARK_MODE_TOGGLE_HBS = ""; export declare const EXTERNAL_ASSETS: readonly ["*.png", "*.jpg", "*.jpeg", "*.svg", "*.gif", "*.woff", "*.woff2", "*.ttf", "*.otf"]; export declare const FEATURE_IMAGE_PARTIAL_CONTENT = "{{#if feature_image}}\n
\n \n {{#if feature_image_caption}}\n
{{feature_image_caption}}
\n {{/if}}\n
\n{{/if}}"; export declare const LOCALES_EN_JSON_CONTENT = "{\n \"Search\": \"Search\",\n \"Subscribe\": \"Subscribe\",\n \"Account\": \"Account\",\n \"Read more\": \"Read more\"\n}"; export declare const GITIGNORE_CONTENT = "node_modules\nassets/built\n.DS_Store\n\n.env";