essai hgroup

This commit is contained in:
Julie Blanc 2026-05-22 09:09:55 +02:00
parent fd5665ec0a
commit 7ab3c57656
13 changed files with 196 additions and 121 deletions

View file

@ -15,22 +15,52 @@
}
.description,
.cluster-infos{
text-transform: uppercase;
font-family: var(--fontTitle);
line-height: 1.2;
font-size: 0.7rem;
/* max-width: 36ch; */
text-align: center;
/* margin-inline: auto; */
margin-top: calc(var(--baseline)*0.5);
/* margin-bottom: calc(var(--baseline)*2); */
margin-right: calc(var(--unit)*1);
margin-left: calc(var(--unit)*1);
}
.cluster-infos p{
text-indent: 0!important;
text-align: center!important;
line-height: 1.4;
.cluster-infos::before{
content: " //// ";
/* display: block; */
}
.cluster-infos p::before{
content: '';
.cluster-infos::after{
content: " //// ";
/* display: block; */
}
.cluster-infos span{
/* display: block; */
}
.cluster-infos span:not(:first-child)::before{
content: ' // ';
/* display: block; */
}
/* .cluster-infos span{
font-size: var(--sign-size);
color: var(--sign-color);
letter-spacing: var(--sign-spacing);
@ -38,7 +68,7 @@
line-height: calc(var(--sign-baseline) * 1);
position: relative;
top: -3px;
}
} */
.chapter-header .hgroup h2 {
font-family: var(--fontTitle);
@ -51,32 +81,46 @@
color: var(--sign-color);
}
/* .chapter-header .hgroup .author::after, */
.chapter-header .hgroup h2::after
{
content: "/";
display: block;
}
.chapter-header .hgroup h2 span {
padding-left: 0.25ch;
padding-right: 0.25ch;
box-decoration-break: clone;
padding: 1px 0.25ch;
text-transform: uppercase;
/* text-transform: uppercase; */
}
.chapter-header .author{
display: block;
text-align: center;
text-indent: 0px;
}
.chapter-header .author span {
font-family: var(--fontTitle);
color: var(--sign-color);
text-transform: uppercase;
display: inline-block;
font-weight: normal;
font-size: 1em;
line-height: calc(var(--sign-baseline)*1.5);
}
.chapter-header .author::before { display: none; }
.chapter-header .bio { display: none; }
.hgroup::after{
/* content: "/ / /";
font-family: var(--fontTitle);
font-weight: normal;
font-size: 1em;
line-height: calc(var(--sign-baseline)*1.5);
box-sizing: border-box;
text-align: center;
max-width: 1ch;
display: block;
margin-inline: auto; */
}
/*
.chapter-header .icon-type{
text-align: center;
}
@ -92,16 +136,13 @@
letter-spacing: var(--sign-spacing);
font-family: var(--sign-family);
line-height: calc(var(--sign-baseline)*1);
}
} */
.chapter-header .type-container{
display: flex;
justify-content: space-between;
}
.chapter-header .type{
text-transform: uppercase;
}

View file

@ -1,6 +1,6 @@
/* ------ ENTRETIENS ------ */
.description {
/* .description {
padding-left: calc(var(--unit)*0.75);
padding-right: calc(var(--unit)*0.75);
position: relative;
@ -66,7 +66,7 @@
margin-inline: auto;
margin-top: 0.5rem;
margin-bottom: 0.5rem;
}
} */
h5, h6 {

View file

@ -2,19 +2,19 @@
/* ------- TABLE OF CONTENTS --------- */
.toc{
break-before: left;
font-family: var(--fontTitle);
/* font-family: var(--fontTitle); */
text-align: left;
font-size: var(--font-size);
page: toc;
}
@page toc{
margin-top: 10mm;
margin-bottom: 10mm;
@top-left { content: none;}
/* margin-top: 10mm;
margin-bottom: 10mm; */
/* @top-left { content: none;}
@top-left-corner { content: none;}
@top-right { content: none; }
@top-center { content: none;}
@top-right { content: none; } */
/* @top-center { content: none;} */
@bottom-center { content: none; }
@bottom-right-corner { content: none; }
}
@ -22,9 +22,7 @@
.toc h2{
font-size: var(--fs-title);
font-family: var(--fontTitle);
/* margin-left: calc(var(--unit)*1); */
text-align: center;
/* margin-bottom: calc(var(--baseline)*2); */
}
.toc h2::after{
@ -45,6 +43,56 @@
#list-toc-generated a{
display: block;
text-decoration: none;
margin-left: calc(var(--unit)*1.5);
position: relative;
margin-bottom: calc(var(--baseline)*1);
break-inside: avoid;
}
#list-toc-generated .toc-element a::before{
content: target-counter(attr(href), page);
position: absolute;
left: calc(var(--unit)*-1.5);
/* top: calc(var(--baseline)*1.5 + 1px); */
text-align: left;
font-size: var(--sign-size);
color: var(--sign-color);
/* letter-spacing: var(--sign-spacing); */
font-family: var(--sign-family);
line-height: calc(var(--sign-baseline) * 1);
}
.toc-author{
display: block;
}
.toc-type_symbol{
/* position: absolute;
right: 0; */
font-size: var(--sign-size);
color: var(--sign-color);
letter-spacing: var(--sign-spacing);
font-family: var(--sign-family);
line-height: calc(var(--sign-baseline) * 1);
position: absolute;
left: calc(var(--unit)*-0.75);
top: 0;
}
/* .toc-type_symbol::before{
content: "("
}
.toc-type_symbol::after{
content: ")"
} */
/* #list-toc-generated a{
display: block;
text-decoration: none;
margin-left: calc(var(--unit)*1);
width: calc(100% - var(--unit));
position: relative;
@ -121,8 +169,8 @@
font-family: var(--sign-family);
line-height: calc(var(--sign-baseline) * 1);
}
} */
/*
[data-toc-chapter="entretien"]::after,
[data-toc-chapter="portfolio"]::after{
content: " /////////////////";
@ -139,5 +187,5 @@
font-family: var(--sign-family);
line-height: calc(var(--sign-baseline) * 1);
position: relative;
}
} */

View file

@ -1,6 +1,6 @@
:root{
--bg-type: rgba(232, 232, 5, 0.36);
/* --bg-type: transparent; */
--bg-type: transparent;
}
/* (print-break:) */
@ -42,6 +42,10 @@
/* Olivain Porry ---------------------------------------------------------- */
#un-robot-poete-ne-nous-fait-toujours-pas-peur figure{
display: none;
}
[data-unique-id="p-slmeuuadai"]{
letter-spacing: -0.01rem;
background-color: var(--bg-type);

View file

@ -104,11 +104,23 @@ function createToc(config) {
if (chapterType) tocNewLi.classList.add('toc-' + chapterType);
const typeSymbols = { entretien: '@', portfolio: '+', essai: '*' };
const symbol = typeSymbols[chapterType] || '';
tocNewLi.innerHTML =
'<a class="toc-link" href="#' + tocElement.id + '">' +
(chapterType ? '<span class="toc-type" data-toc-chapter="' + chapterType + '">' + (symbol ? '<span class="toc-type-symbole_before">' + symbol + '</span>' : '') + '<span class="text">' + chapterType + ' </span>' + (symbol ? '<span class="toc-type-symbole_after">' + symbol + '</span>' : '') + '</span>' : '') +
'<span class="toc-title">' + tocElement.innerHTML + '</span>' +
// Check if chapterType is one of the special types
const isSpecialType = chapterType && typeSymbols[chapterType];
const linkClass = isSpecialType ? 'toc-link' : (chapterType ? 'toc-link page-book' : 'toc-link');
// tocNewLi.innerHTML =
// '<a class="' + linkClass + '" href="#' + tocElement.id + '">' +
// (isSpecialType ? '<span class="toc-type" data-toc-chapter="' + chapterType + '"><span class="toc-type-symbole_before">' + symbol + '</span><span class="text">' + chapterType + ' </span><span class="toc-type-symbole_after">' + symbol + '</span></span>' : '') +
// '<span class="toc-title">' + tocElement.innerHTML + '</span>' +
// (author ? '<span class="toc-author">' + author + '</span>' : '') +
// '</a>';
tocNewLi.innerHTML =
'<a class="' + linkClass + '" href="#' + tocElement.id + '">' +
(author ? '<span class="toc-author">' + author + '</span>' : '') +
(isSpecialType ? '<span class="toc-type" data-toc-chapter="' + chapterType + '"><span class="toc-type_symbol">' + symbol + '</span>' : '') +
'<span class="toc-title">' + tocElement.innerHTML + '</span>' +
'</a>';
tocUl.appendChild(tocNewLi)

View file

@ -1,5 +1,5 @@
<?php /** @var \Kirby\Cms\Block $block */ ?>
<div class="description-before">.............................</div>
<!-- <div class="description-before">.............................</div> -->
<div class="description"><?= $block->text()->kt()->smartypants();?></div>
<div class="description-after">.............................</div>
<!-- <div class="description-after">.............................</div> -->

View file

@ -105,12 +105,13 @@
<div class="type"><?= $chapitre->typeof()->html() ?></div>
<div class="after"><?= $after ?></div>
</div>
<div class="type-separator"><?= $separator ?></div>
<!-- <div class="type-separator"><?= $separator ?></div> -->
<?php endif;?>
<?php
$pubId = $chapitre->content()->get('id');
$wordCount = 0;
$charCount = 0;
$imageCount = 0;
$imgBlockTypes = ['image', 'imagefloat', 'gallery', 'fullpageimage', 'spreadimage'];
foreach ($chapitre->text()->toBlocks() as $b) {
@ -119,6 +120,7 @@
} else {
$plain = strip_tags((string)$b);
$wordCount += count(preg_split('/\s+/', trim($plain), -1, PREG_SPLIT_NO_EMPTY));
$charCount += mb_strlen(str_replace([' ', "\n", "\r", "\t"], '', $plain));
}
}
if ($chapitre->portfolio()->isNotEmpty()) {
@ -130,21 +132,22 @@
<h2><span><?= $chapitre->title()->html()->smartypants() ?></span></h2>
<div class="title-between">/ / </div>
<!-- <div class="title-between">/ / </div> -->
<p class="author"><span><?= $chapitre->author()->html()->smartypants() ?></span></p>
<div class="title-after">/ / / / / </div>
<!-- <div class="title-after">/ / / / / </div> -->
<div class="cluster-infos">
<?php if ($pubId->isNotEmpty()): ?>
<p class="chap-id"><span>/</span><?= $pubId->html() ?> <span>/</span></p>
<span class="chap-id">hash = <?= $pubId->html() ?></span>
<?php endif ?>
<?php if ($chapitre->tags()->isNotEmpty()): ?>
<p class="chap-tags"><?= $chapitre->tags()->html() ?></p>
<span class="chap-tags"><?= $chapitre->tags()->html() ?></span>
<?php endif ?>
<!-- <p class="chap-wordcount"><?= number_format($wordCount, 0, ',', "\u{202F}") ?> mots</p>
<p class="chap-imagecount"><?= $imageCount ?> image<?= $imageCount > 1 ? 's' : '' ?></p> -->
<span class="chap-wordcount"><?= number_format($wordCount, 0, ',', "\u{202F}") ?>&nbsp;mots</span>
<span class="chap-signcount"><?= number_format($wordCount, 0, ',', "\u{202F}") ?>&nbsp;signes</span>
<span class="chap-imagecount"><?= $imageCount ?>&nbsp;image<?= $imageCount > 1 ? 's' : '' ?></span>
</div>
<div class="title-after">/ /</div>
<!-- <div class="title-after">/ /</div> -->
</div>
</div>

5
vendor/autoload.php vendored
View file

@ -14,7 +14,10 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
throw new RuntimeException($err);
trigger_error(
$err,
E_USER_ERROR
);
}
require_once __DIR__ . '/composer/autoload_real.php';

View file

@ -26,23 +26,12 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@ -320,24 +309,6 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@ -351,27 +322,19 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@ -387,7 +350,7 @@ class InstalledVersions
}
}
if (self::$installed !== array() && !$copiedLocalDir) {
if (self::$installed !== array()) {
$installed[] = self::$installed;
}

View file

@ -17,11 +17,11 @@ class ComposerStaticInit0b7fb803e22a45eb87e24172337208aa
);
public static $prefixLengthsPsr4 = array (
'W' =>
'W' =>
array (
'Whoops\\' => 7,
),
'S' =>
'S' =>
array (
'Symfony\\Polyfill\\Mbstring\\' => 26,
'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33,
@ -29,97 +29,97 @@ class ComposerStaticInit0b7fb803e22a45eb87e24172337208aa
'Symfony\\Polyfill\\Ctype\\' => 23,
'Symfony\\Component\\Yaml\\' => 23,
),
'P' =>
'P' =>
array (
'Psr\\Log\\' => 8,
'PHPMailer\\PHPMailer\\' => 20,
),
'L' =>
'L' =>
array (
'League\\ColorExtractor\\' => 22,
'Laminas\\Escaper\\' => 16,
),
'K' =>
'K' =>
array (
'Kirby\\' => 6,
),
'C' =>
'C' =>
array (
'Composer\\Semver\\' => 16,
),
'B' =>
'B' =>
array (
'Base32\\' => 7,
),
);
public static $prefixDirsPsr4 = array (
'Whoops\\' =>
'Whoops\\' =>
array (
0 => __DIR__ . '/..' . '/filp/whoops/src/Whoops',
),
'Symfony\\Polyfill\\Mbstring\\' =>
'Symfony\\Polyfill\\Mbstring\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
),
'Symfony\\Polyfill\\Intl\\Normalizer\\' =>
'Symfony\\Polyfill\\Intl\\Normalizer\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer',
),
'Symfony\\Polyfill\\Intl\\Idn\\' =>
'Symfony\\Polyfill\\Intl\\Idn\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-intl-idn',
),
'Symfony\\Polyfill\\Ctype\\' =>
'Symfony\\Polyfill\\Ctype\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
),
'Symfony\\Component\\Yaml\\' =>
'Symfony\\Component\\Yaml\\' =>
array (
0 => __DIR__ . '/..' . '/symfony/yaml',
),
'Psr\\Log\\' =>
'Psr\\Log\\' =>
array (
0 => __DIR__ . '/..' . '/psr/log/src',
),
'PHPMailer\\PHPMailer\\' =>
'PHPMailer\\PHPMailer\\' =>
array (
0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src',
),
'League\\ColorExtractor\\' =>
'League\\ColorExtractor\\' =>
array (
0 => __DIR__ . '/..' . '/league/color-extractor/src',
),
'Laminas\\Escaper\\' =>
'Laminas\\Escaper\\' =>
array (
0 => __DIR__ . '/..' . '/laminas/laminas-escaper/src',
),
'Kirby\\' =>
'Kirby\\' =>
array (
0 => __DIR__ . '/../..' . '/kirby/src',
1 => __DIR__ . '/..' . '/getkirby/composer-installer/src',
),
'Composer\\Semver\\' =>
'Composer\\Semver\\' =>
array (
0 => __DIR__ . '/..' . '/composer/semver/src',
),
'Base32\\' =>
'Base32\\' =>
array (
0 => __DIR__ . '/..' . '/christian-riesen/base32/src',
),
);
public static $prefixesPsr0 = array (
'c' =>
'c' =>
array (
'claviska' =>
'claviska' =>
array (
0 => __DIR__ . '/..' . '/claviska/simpleimage/src',
),
),
'M' =>
'M' =>
array (
'Michelf' =>
'Michelf' =>
array (
0 => __DIR__ . '/..' . '/michelf/php-smartypants',
),

View file

@ -3,7 +3,7 @@
'name' => 'getkirby/plainkit',
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => '76dc174fcaae3ec0532e26127d3b5acee74a18aa',
'reference' => 'fd5665ec0acb49a04ede176df34991dd327db68d',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@ -67,7 +67,7 @@
'getkirby/plainkit' => array(
'pretty_version' => 'dev-main',
'version' => 'dev-main',
'reference' => '76dc174fcaae3ec0532e26127d3b5acee74a18aa',
'reference' => 'fd5665ec0acb49a04ede176df34991dd327db68d',
'type' => 'project',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),

View file

@ -19,7 +19,8 @@ if ($issues) {
echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
}
}
throw new \RuntimeException(
'Composer detected issues in your platform: ' . implode(' ', $issues)
trigger_error(
'Composer detected issues in your platform: ' . implode(' ', $issues),
E_USER_ERROR
);
}