feat: Introduce the Shaarli Professional theme with new templates, styles, scripts, and updated documentation.

This commit is contained in:
2026-02-11 16:37:44 -05:00
parent 5d486d3d97
commit 70ebda3079
9 changed files with 405 additions and 171 deletions
+34 -38
View File
@@ -15,76 +15,76 @@
<div class="card-header">{'Settings'|t}</div>
<div class="list-group">
<a class="list-group-item list-group-item-action ripple" href="{$base_path}/admin/configure">
<div class="list-sortable-handle" style="cursor: pointer; padding: 0; margin-right: 1rem;">
<i class="mdi mdi-cog" style="font-size: 1.5rem; color: var(--primary);"></i>
<div class="list-sortable-handle">
<i class="mdi mdi-cog"></i>
</div>
<div class="list-group-item-content">
<div class="list-group-item-label">{'Configure your Shaarli'|t}</div>
<div class="list-group-item-sublabel">{'Change Title, timezone...'|t}</div>
</div>
<i class="mdi mdi-chevron-right" style="color: var(--text-muted);"></i>
<i class="mdi mdi-chevron-right"></i>
</a>
{if="!$openshaarli"}
<a class="list-group-item list-group-item-action ripple" href="{$base_path}/admin/password">
<div class="list-sortable-handle" style="cursor: pointer; padding: 0; margin-right: 1rem;">
<i class="mdi mdi-lock" style="font-size: 1.5rem; color: var(--primary);"></i>
<div class="list-sortable-handle">
<i class="mdi mdi-lock"></i>
</div>
<div class="list-group-item-content">
<div class="list-group-item-label">{'Change password'|t}</div>
<div class="list-group-item-sublabel">{'Change your password'|t}</div>
</div>
<i class="mdi mdi-chevron-right" style="color: var(--text-muted);"></i>
<i class="mdi mdi-chevron-right"></i>
</a>
{/if}
<a class="list-group-item list-group-item-action ripple" href="{$base_path}/admin/plugins">
<div class="list-sortable-handle" style="cursor: pointer; padding: 0; margin-right: 1rem;">
<i class="mdi mdi-puzzle" style="font-size: 1.5rem; color: var(--primary);"></i>
<div class="list-sortable-handle">
<i class="mdi mdi-puzzle"></i>
</div>
<div class="list-group-item-content">
<div class="list-group-item-label">{'Plugin administration'|t}</div>
<div class="list-group-item-sublabel">{'Enable, disable and configure plugins'|t}</div>
</div>
<i class="mdi mdi-chevron-right" style="color: var(--text-muted);"></i>
<i class="mdi mdi-chevron-right"></i>
</a>
<a class="list-group-item list-group-item-action ripple" href="{$base_path}/admin/server">
<div class="list-sortable-handle" style="cursor: pointer; padding: 0; margin-right: 1rem;">
<i class="mdi mdi-server" style="font-size: 1.5rem; color: var(--primary);"></i>
<div class="list-sortable-handle">
<i class="mdi mdi-server"></i>
</div>
<div class="list-group-item-content">
<div class="list-group-item-label">{'Server administration'|t}</div>
<div class="list-group-item-sublabel">{'Check instance\'s server configuration'|t}</div>
</div>
<i class="mdi mdi-chevron-right" style="color: var(--text-muted);"></i>
<i class="mdi mdi-chevron-right"></i>
</a>
<a class="list-group-item list-group-item-action ripple" href="{$base_path}/admin/tags">
<div class="list-sortable-handle" style="cursor: pointer; padding: 0; margin-right: 1rem;">
<i class="mdi mdi-tag-multiple" style="font-size: 1.5rem; color: var(--primary);"></i>
<div class="list-sortable-handle">
<i class="mdi mdi-tag-multiple"></i>
</div>
<div class="list-group-item-content">
<div class="list-group-item-label">{'Manage Tags'|t}</div>
<div class="list-group-item-sublabel">{'Rename or delete a tag in all links'|t}</div>
</div>
<i class="mdi mdi-chevron-right" style="color: var(--text-muted);"></i>
<i class="mdi mdi-chevron-right"></i>
</a>
<a class="list-group-item list-group-item-action ripple" href="{$base_path}/admin/import">
<div class="list-sortable-handle" style="cursor: pointer; padding: 0; margin-right: 1rem;">
<i class="mdi mdi-file-import" style="font-size: 1.5rem; color: var(--primary);"></i>
<div class="list-sortable-handle">
<i class="mdi mdi-file-import"></i>
</div>
<div class="list-group-item-content">
<div class="list-group-item-label">{'Import'|t}</div>
<div class="list-group-item-sublabel">{'Import Netscape html bookmarks'|t}</div>
</div>
<i class="mdi mdi-chevron-right" style="color: var(--text-muted);"></i>
<i class="mdi mdi-chevron-right"></i>
</a>
<a class="list-group-item list-group-item-action ripple" href="{$base_path}/admin/export">
<div class="list-sortable-handle" style="cursor: pointer; padding: 0; margin-right: 1rem;">
<i class="mdi mdi-file-export" style="font-size: 1.5rem; color: var(--primary);"></i>
<div class="list-sortable-handle">
<i class="mdi mdi-file-export"></i>
</div>
<div class="list-group-item-content">
<div class="list-group-item-label">{'Export'|t}</div>
<div class="list-group-item-sublabel">{'Export Netscape html bookmarks'|t}</div>
</div>
<i class="mdi mdi-chevron-right" style="color: var(--text-muted);"></i>
<i class="mdi mdi-chevron-right"></i>
</a>
</div>
</div>
@@ -136,17 +136,13 @@
<p class="text-muted" style="margin-bottom: 1.5rem;">
Drag these buttons to your bookmarks bar to quickly add links from any page.
</p>
<div class="row" style="display: flex; gap: 1rem; justify-content: center;">
<div class="col-xs-6 text-center">
<a class="btn btn-primary" href="javascript:(function(){var%20url%20=%20location.href;var%20title%20=%20document.title%20||%20url;var%20desc=document.getSelection().toString();if(desc.length>4000){desc=desc.substr(0,4000)+'...';alert('{function="str_replace(' ', '%20', t('The selected text is too long, it will be truncated.'))"}');}window.open('{$pageabsaddr}admin/shaare?post='%20+%20encodeURIComponent(url)+'&amp;title='%20+%20encodeURIComponent(title)+'&amp;description='%20+%20encodeURIComponent(desc)+'&amp;source=bookmarklet','_blank','menubar=no,height=800,width=600,toolbar=no,scrollbars=yes,status=no,dialog=1');})();">
<i class="mdi mdi-bookmark-plus"></i> {'Shaare link'|t}
</a>
</div>
<div class="col-xs-6 text-center">
<a class="btn btn-secondary" href="javascript:(function(){var desc=document.getSelection().toString();if(desc.length>4000){desc=desc.substr(0,4000)+'...';alert('{function="str_replace(' ', '%20', t('The selected text is too long, it will be truncated.'))"}');}window.open('{$pageabsaddr}?private=1&amp;post='+'&amp;description='%20+%20encodeURIComponent(desc)+'&amp;source=bookmarklet','_blank','menubar=no,height=800,width=600,toolbar=no,scrollbars=yes,status=no,dialog=1');})();">
<i class="mdi mdi-note-plus"></i> {'Add Note'|t}
</a>
</div>
<div class="bookmarklet-actions">
<a class="btn btn-primary" href="javascript:(function(){var%20url%20=%20location.href;var%20title%20=%20document.title%20||%20url;var%20desc=document.getSelection().toString();if(desc.length>4000){desc=desc.substr(0,4000)+'...';alert('{function="str_replace(' ', '%20', t('The selected text is too long, it will be truncated.'))"}');}window.open('{$pageabsaddr}admin/shaare?post='%20+%20encodeURIComponent(url)+'&amp;title='%20+%20encodeURIComponent(title)+'&amp;description='%20+%20encodeURIComponent(desc)+'&amp;source=bookmarklet','_blank','menubar=no,height=800,width=600,toolbar=no,scrollbars=yes,status=no,dialog=1');})();">
<i class="mdi mdi-bookmark-plus"></i> {'Shaare link'|t}
</a>
<a class="btn btn-secondary" href="javascript:(function(){var desc=document.getSelection().toString();if(desc.length>4000){desc=desc.substr(0,4000)+'...';alert('{function="str_replace(' ', '%20', t('The selected text is too long, it will be truncated.'))"}');}window.open('{$pageabsaddr}?private=1&amp;post='+'&amp;description='%20+%20encodeURIComponent(desc)+'&amp;source=bookmarklet','_blank','menubar=no,height=800,width=600,toolbar=no,scrollbars=yes,status=no,dialog=1');})();">
<i class="mdi mdi-note-plus"></i> {'Add Note'|t}
</a>
</div>
</div>
</div>
@@ -158,21 +154,21 @@
<div class="card">
<div class="card-header">{'3rd party'|t}</div>
<div class="card-body">
<div class="list-group" style="flex-direction: row; flex-wrap: wrap; gap: 1rem; justify-content: center;">
<div class="third-party-links">
<a href="https://addons.mozilla.org/fr/firefox/addon/shaarli/" target="_blank" class="btn btn-secondary">
<i class="mdi mdi-firefox" style="font-size: 1.2rem;"></i> Firefox
<i class="mdi mdi-firefox"></i> Firefox
</a>
<a href="https://chromewebstore.google.com/detail/add-to-shaarli/jhfblapoehcfajokolimghdfmeeakbee" target="_blank" class="btn btn-secondary">
<i class="mdi mdi-google-chrome" style="font-size: 1.2rem;"></i> Chrome
<i class="mdi mdi-google-chrome"></i> Chrome
</a>
<a href="https://f-droid.org/fr/packages/com.dimtion.shaarlier/" target="_blank" class="btn btn-secondary">
<i class="mdi mdi-android" style="font-size: 1.2rem;"></i> Shaarlier
<i class="mdi mdi-android"></i> Shaarlier
</a>
<a href="https://stakali.toneiv.eu/" target="_blank" class="btn btn-secondary">
<i class="mdi mdi-android" style="font-size: 1.2rem;"></i> Stakali
<i class="mdi mdi-android"></i> Stakali
</a>
<a href="https://github.com/lockcp/ShaarliOS" target="_blank" class="btn btn-secondary">
<i class="mdi mdi-apple-ios" style="font-size: 1.2rem;"></i> iOS
<i class="mdi mdi-apple-ios"></i> iOS
</a>
</div>
<p class="text-center text-muted" style="margin-top: 1.5rem;">