<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://demo.cecil.app/theme-paper/xsl/atom.xsl" media="all"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://demo.cecil.app/theme-paper/tags/configuration/</id>
  <title>Paper - configuration</title>
  <subtitle><![CDATA[A minimal, responsive, accessible and SEO-friendly Cecil blog theme.]]></subtitle>
  <link href="https://demo.cecil.app/theme-paper/tags/configuration/atom.xml" rel="self" type="application/atom+xml" />
  <link href="https://demo.cecil.app/theme-paper/tags/configuration/" rel="alternate" type="text/html" />
  <updated>2026-10-25T14:11:55+00:00</updated>
  <author>
    <name>Cecil</name>
    <uri>https://cecil.app</uri>
  </author>
  <entry xml:lang="en">
    <id>https://demo.cecil.app/theme-paper/posts/how-to-configure-paper-theme/</id>
    <title>How to configure the Paper theme</title>
    <published>2026-10-20T10:00:00+00:00</published>
    <updated>2026-10-25T08:00:00+00:00</updated>
    <link href="https://demo.cecil.app/theme-paper/posts/how-to-configure-paper-theme/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<p>This guide covers the available configuration options of the Paper theme, a port of <a href="https://github.com/satnaing/astro-paper" rel="noopener noreferrer">AstroPaper</a> for <a href="https://cecil.app" rel="noopener noreferrer">Cecil</a>.</p>
<div id="toc"><ul>
<li class="toc-level-2"><a href="#install-the-theme">Install the theme</a></li>
<li class="toc-level-2"><a href="#site-metadata">Site metadata</a></li>
<li class="toc-level-2"><a href="#theme-options">Theme options</a></li>
<li class="toc-level-2"><a href="#menu">Menu</a></li>
<li class="toc-level-2"><a href="#social-links">Social links</a></li>
<li class="toc-level-2"><a href="#share-links">Share links</a></li>
<li class="toc-level-2"><a href="#edit-page-link">Edit page link</a></li>
<li class="toc-level-2"><a href="#colors">Colors</a></li>
</ul>
</div>
<h2 id="install-the-theme">Install the theme<a class="heading-anchor" href="#install-the-theme" aria-hidden="true" tabindex="-1"></a></h2>
<p>Allow the theme installer plugin, then require the theme with Composer:</p>
<pre data-lang="bash"><code class="language-bash hljs bash" translate="no">composer require cecil/theme-paper</code></pre>
<p>The <a href="https://github.com/Cecilapp/theme-darkmodetoggle" rel="noopener noreferrer">dark mode toggle</a> component theme is installed as a dependency. Declare both themes in the configuration file (<code translate="no">cecil.yml</code>):</p>
<pre data-lang="yaml"><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">theme:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-string">paper</span>
  <span class="hljs-bullet">-</span> <span class="hljs-string">darkmodetoggle</span></code></pre>
<aside class="note note-tip" id="note-tip-1">
  <p class="note-title"><svg aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h1m8 -9v1m8 8h1m-15.4 -6.4l.7 .7m12.1 -.7l-.7 .7"/><path d="M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0 -1 3a2 2 0 0 1 -4 0a3.5 3.5 0 0 0 -1 -3"/><path d="M9.7 17l4.6 0"/></svg>Tip</p>
  <p>Install the <a href="https://github.com/Cecilapp/theme-flexsearch" rel="noopener noreferrer">FlexSearch</a> component theme to add a search button in the header: <code translate="no">composer require cecil/theme-flexsearch</code>, then add <code translate="no">flexsearch</code> at the top of the <code translate="no">theme</code> list.</p>
</aside>
<h2 id="site-metadata">Site metadata<a class="heading-anchor" href="#site-metadata" aria-hidden="true" tabindex="-1"></a></h2>
<p>Paper relies on the standard Cecil configuration for the site metadata, used by the built-in metatags (title, description, Open Graph, Twitter cards, JSON-LD) and by the feeds:</p>
<pre data-lang="yaml"><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">title:</span> <span class="hljs-string">Paper</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">A</span> <span class="hljs-string">minimal,</span> <span class="hljs-string">responsive</span> <span class="hljs-string">and</span> <span class="hljs-string">SEO-friendly</span> <span class="hljs-string">Cecil</span> <span class="hljs-string">blog</span> <span class="hljs-string">theme.</span>
<span class="hljs-attr">baseurl:</span> <span class="hljs-string">https://example.com/</span>
<span class="hljs-attr">author:</span>
  <span class="hljs-attr">name:</span> <span class="hljs-string">Your</span> <span class="hljs-string">Name</span>
  <span class="hljs-attr">url:</span> <span class="hljs-string">https://example.com/about/</span>
<span class="hljs-attr">language:</span> <span class="hljs-string">en</span></code></pre>
<h2 id="theme-options">Theme options<a class="heading-anchor" href="#theme-options" aria-hidden="true" tabindex="-1"></a></h2>
<p>All the options are namespaced under <code translate="no">paper</code>, with these default values:</p>
<pre data-lang="yaml"><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">paper:</span>
  <span class="hljs-attr">posts:</span>
    <span class="hljs-attr">section:</span> <span class="hljs-string">posts</span> <span class="hljs-comment"># section containing the blog posts</span>
    <span class="hljs-attr">home:</span> <span class="hljs-number">4</span>        <span class="hljs-comment"># number of recent posts displayed on the homepage</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">ltr</span>         <span class="hljs-comment"># text direction: ltr or rtl</span>
  <span class="hljs-attr">archives:</span> <span class="hljs-literal">true</span>   <span class="hljs-comment"># displays the archives link in the header</span>
  <span class="hljs-attr">back_button:</span> <span class="hljs-literal">true</span> <span class="hljs-comment"># displays the "Go back" button on posts</span>
  <span class="hljs-attr">edit:</span>
    <span class="hljs-attr">url:</span> <span class="hljs-string">''</span>        <span class="hljs-comment"># e.g.: https://github.com/&lt;user&gt;/&lt;repo&gt;/edit/main/pages/</span>
  <span class="hljs-attr">og:</span>
    <span class="hljs-attr">dynamic:</span> <span class="hljs-literal">true</span>  <span class="hljs-comment"># generates Open Graph images of posts without `image`</span></code></pre>
<p>The number of posts per page is the Cecil pagination option (4 by default with Paper):</p>
<pre data-lang="yaml"><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">pagination:</span>
    <span class="hljs-attr">max:</span> <span class="hljs-number">4</span></code></pre>
<h2 id="menu">Menu<a class="heading-anchor" href="#menu" aria-hidden="true" tabindex="-1"></a></h2>
<p>The header menu is the Cecil <code translate="no">main</code> menu. Paper defines the <em>Posts</em> and <em>Tags</em> entries, add your own entries (or pages with <code translate="no">menu: main</code> in their front matter):</p>
<pre data-lang="yaml"><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">menus:</span>
  <span class="hljs-attr">main:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">{id:</span> <span class="hljs-string">about,</span> <span class="hljs-attr">name:</span> <span class="hljs-string">About,</span> <span class="hljs-attr">url:</span> <span class="hljs-string">about,</span> <span class="hljs-attr">weight:</span> <span class="hljs-number">30</span><span class="hljs-string">}</span></code></pre>
<p>The archives link, the search button (with FlexSearch) and the light/dark toggle are always displayed after the menu entries.</p>
<h2 id="social-links">Social links<a class="heading-anchor" href="#social-links" aria-hidden="true" tabindex="-1"></a></h2>
<p>Social links are displayed in the footer and on the homepage:</p>
<pre data-lang="yaml"><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">paper:</span>
  <span class="hljs-attr">socials:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">{name:</span> <span class="hljs-string">github,</span> <span class="hljs-attr">url:</span> <span class="hljs-string">'https://github.com/username'</span><span class="hljs-string">}</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">{name:</span> <span class="hljs-string">x,</span> <span class="hljs-attr">url:</span> <span class="hljs-string">'https://x.com/username'</span><span class="hljs-string">}</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">{name:</span> <span class="hljs-string">linkedin,</span> <span class="hljs-attr">url:</span> <span class="hljs-string">'https://www.linkedin.com/in/username/'</span><span class="hljs-string">}</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">{name:</span> <span class="hljs-string">mail,</span> <span class="hljs-attr">url:</span> <span class="hljs-string">'mailto:yourmail@example.com'</span><span class="hljs-string">}</span></code></pre>
<p>Available icons are <code translate="no">github</code>, <code translate="no">x</code>, <code translate="no">linkedin</code>, <code translate="no">facebook</code>, <code translate="no">telegram</code>, <code translate="no">whatsapp</code>, <code translate="no">pinterest</code> and <code translate="no">mail</code>. Add your own SVG icons in <code translate="no">assets/paper/icons/&lt;name&gt;.svg</code>. The link title can be customized with the <code translate="no">title</code> key.</p>
<h2 id="share-links">Share links<a class="heading-anchor" href="#share-links" aria-hidden="true" tabindex="-1"></a></h2>
<p>Posts display share links (WhatsApp, Facebook, X, Telegram, Pinterest and email by default). Customize them, or disable them with <code translate="no">false</code>:</p>
<pre data-lang="yaml"><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">paper:</span>
  <span class="hljs-attr">share:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">{name:</span> <span class="hljs-string">x,</span> <span class="hljs-attr">url:</span> <span class="hljs-string">'https://x.com/intent/post?url='</span><span class="hljs-string">}</span>
    <span class="hljs-bullet">-</span> <span class="hljs-string">{name:</span> <span class="hljs-string">mail,</span> <span class="hljs-attr">url:</span> <span class="hljs-string">'mailto:?subject=See%20this%20post&amp;body='</span><span class="hljs-string">}</span></code></pre>
<h2 id="edit-page-link">Edit page link<a class="heading-anchor" href="#edit-page-link" aria-hidden="true" tabindex="-1"></a></h2>
<p>Set the URL of your repository to display an <em>Edit page</em> link on posts, followed by the path of the Markdown file relative to the <code translate="no">pages</code> directory:</p>
<pre data-lang="yaml"><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">paper:</span>
  <span class="hljs-attr">edit:</span>
    <span class="hljs-attr">url:</span> <span class="hljs-string">https://github.com/username/repository/edit/main/pages/</span></code></pre>
<p>Hide it on a post with <code translate="no">hide_edit: true</code> in the front matter.</p>
<h2 id="colors">Colors<a class="heading-anchor" href="#colors" aria-hidden="true" tabindex="-1"></a></h2>
<p>Colors are CSS custom properties: override them in a stylesheet of your site, loaded after the theme one (extend the <code translate="no">head_css</code> block of the <code translate="no">page.html.twig</code> layout):</p>
<pre data-lang="css"><code class="language-css hljs css" translate="no"><span class="hljs-selector-pseudo">:root</span>,
<span class="hljs-selector-attr">[data-theme=<span class="hljs-string">'light'</span>]</span> {
  <span class="hljs-attribute">--background</span>: <span class="hljs-number">#fdfdfd</span>;
  <span class="hljs-attribute">--foreground</span>: <span class="hljs-number">#282728</span>;
  <span class="hljs-attribute">--accent</span>: <span class="hljs-number">#006cac</span>;
  <span class="hljs-attribute">--accent-foreground</span>: <span class="hljs-number">#ffffff</span>;
  <span class="hljs-attribute">--muted</span>: <span class="hljs-number">#e6e6e6</span>;
  <span class="hljs-attribute">--muted-foreground</span>: <span class="hljs-number">#6b7280</span>;
  <span class="hljs-attribute">--border</span>: <span class="hljs-number">#ece9e9</span>;
}

<span class="hljs-selector-attr">[data-theme=<span class="hljs-string">'dark'</span>]</span> {
  <span class="hljs-attribute">--background</span>: <span class="hljs-number">#212737</span>;
  <span class="hljs-attribute">--foreground</span>: <span class="hljs-number">#eaedf3</span>;
  <span class="hljs-attribute">--accent</span>: <span class="hljs-number">#ff6b01</span>;
  <span class="hljs-attribute">--accent-foreground</span>: <span class="hljs-number">#ffffff</span>;
  <span class="hljs-attribute">--muted</span>: <span class="hljs-number">#343f60</span>;
  <span class="hljs-attribute">--muted-foreground</span>: <span class="hljs-number">#afb9ca</span>;
  <span class="hljs-attribute">--border</span>: <span class="hljs-number">#ab4b08</span>;
}</code></pre>
<p>The font can be changed with the <code translate="no">--paper-font</code> custom property.</p>]]>
    </content>
  </entry>
</feed>
