
Recherche avancée
Médias (91)
-
Spoon - Revenge !
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
My Morning Jacket - One Big Holiday
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Zap Mama - Wadidyusay ?
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
David Byrne - My Fair Lady
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Beastie Boys - Now Get Busy
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Granite de l’Aber Ildut
9 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
Autres articles (112)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Mise à disposition des fichiers
14 avril 2011, parPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...) -
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...)
Sur d’autres sites (13666)
-
how to solve ffmpeg video merging complain about parameters mismatching
22 septembre 2019, par mohammad rostami siahgeliI’m trying to concatenate an intro video to a main video. Here’s my command :
ffmpeg -i C:\Temp\intro.mp4 -i C:\Temp\main.mp4 -filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0]concat=n=2:v=1:a=1[outv][outa]" -map "[outv]" -map "[outa]" C:\Temp\output.mp4
When I run this command in cmd, I get the following error :
ffmpeg version N-95004-g2f87c9f646 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.2.1 (GCC) 20190918
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
libavutil 56. 35.100 / 56. 35.100
libavcodec 58. 58.101 / 58. 58.101
libavformat 58. 33.100 / 58. 33.100
libavdevice 58. 9.100 / 58. 9.100
libavfilter 7. 58.102 / 7. 58.102
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Temp\intro.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
creation_time : 2019-09-21T09:23:34.000000Z
Duration: 00:00:07.32, start: 0.000000, bitrate: 706 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 960x540, 323 kb/s, 15 fps, 15 tbr, 30k tbn, 30 tbc (default)
Metadata:
creation_time : 2019-09-21T09:23:34.000000Z
handler_name : ?Mainconcept Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
Metadata:
creation_time : 2019-09-21T09:23:34.000000Z
handler_name : #Mainconcept MP4 Sound Media Handler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Temp\main.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.40.101
Duration: 00:00:08.78, start: 0.000000, bitrate: 499 kb/s
Stream #1:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x640 [SAR 1:1 DAR 1:1], 430 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 64 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream mapping:
Stream #0:0 (h264) -> concat:in0:v0
Stream #0:1 (aac) -> concat:in0:a0
Stream #1:0 (h264) -> concat:in1:v0
Stream #1:1 (aac) -> concat:in1:a0
concat:out:v0 -> Stream #0:0 (libx264)
concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[Parsed_concat_0 @ 0000018168eedec0] Input link in0:v0 parameters (size 640x640, SAR 1:1) do not match the corresponding output link in0:v0 parameters (960x540, SAR 1:1)
[Parsed_concat_0 @ 0000018168eedec0] Failed to configure output pad on Parsed_concat_0
Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #1:0
Conversion failed!I’m not a video ninja. I know parameters are different, but I have no idea after hours of search on how to solve this. A lot of online video services concatenate these two videos and give me a reasonable result. They have a GUI though. I need to do it in code, so that I can automate it.
How can I solve these errors ?
Update : This is the second error :
ffmpeg version N-95004-g2f87c9f646 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 9.2.1 (GCC) 20190918
configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
libavutil 56. 35.100 / 56. 35.100
libavcodec 58. 58.101 / 58. 58.101
libavformat 58. 33.100 / 58. 33.100
libavdevice 58. 9.100 / 58. 9.100
libavfilter 7. 58.102 / 7. 58.102
libswscale 5. 6.100 / 5. 6.100
libswresample 3. 6.100 / 3. 6.100
libpostproc 55. 6.100 / 55. 6.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Temp\intro.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
creation_time : 2019-09-21T09:23:34.000000Z
Duration: 00:00:07.32, start: 0.000000, bitrate: 706 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m), 960x540, 323 kb/s, 15 fps, 15 tbr, 30k tbn, 30 tbc (default)
Metadata:
creation_time : 2019-09-21T09:23:34.000000Z
handler_name : ?Mainconcept Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
Metadata:
creation_time : 2019-09-21T09:23:34.000000Z
handler_name : #Mainconcept MP4 Sound Media Handler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Temp\main.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf56.40.101
Duration: 00:00:08.78, start: 0.000000, bitrate: 499 kb/s
Stream #1:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 640x640 [SAR 1:1 DAR 1:1], 430 kb/s, 29.97 fps, 29.97 tbr, 11988 tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #1:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 64 kb/s (default)
Metadata:
handler_name : SoundHandler
File 'C:\Temp\output.mp4' already exists. Overwrite ? [y/N] Y
Stream mapping:
Stream #0:0 (h264) -> scale
Stream #0:1 (aac) -> concat:in0:a0
Stream #1:0 (h264) -> concat:in1:v0
Stream #1:1 (aac) -> concat:in1:a0
concat:out:v0 -> Stream #0:0 (libx264)
concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop, [?] for help
[mp4 @ 000002f17869d7c0] Frame rate very high for a muxer not efficiently supporting it.
Please consider specifying a lower framerate, a different muxer or -vsync 2
[libx264 @ 000002f178acfec0] using SAR=1/1
[libx264 @ 000002f178acfec0] MB rate (1600000000) > level limit (16711680)
[libx264 @ 000002f178acfec0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000002f178acfec0] profile High, level 6.2, 4:2:0, 8-bit
[libx264 @ 000002f178acfec0] 264 - core 158 r2984 3759fcb - H.264/MPEG-4 AVC codec - Copyleft 2003-2019 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
More than 1000 frames duplicated
Too many packets buffered for output stream 0:0.
[libx264 @ 000002f178acfec0] frame I:1 Avg QP:16.45 size: 4679
[libx264 @ 000002f178acfec0] frame P:32 Avg QP:14.16 size: 33
[libx264 @ 000002f178acfec0] frame B:96 Avg QP:17.67 size: 30
[libx264 @ 000002f178acfec0] consecutive B-frames: 0.8% 0.0% 0.0% 99.2%
[libx264 @ 000002f178acfec0] mb I I16..4: 58.1% 34.8% 7.1%
[libx264 @ 000002f178acfec0] mb P I16..4: 0.1% 0.0% 0.0% P16..4: 0.0% 0.0% 0.0% 0.0% 0.0% skip:99.9%
[libx264 @ 000002f178acfec0] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.8% 0.0% 0.0% direct: 0.0% skip:99.2% L0: 0.0% L1:100.0% BI: 0.0%
[libx264 @ 000002f178acfec0] 8x8 transform intra:33.8%
[libx264 @ 000002f178acfec0] coded y,uvDC,uvAC intra: 4.6% 8.2% 7.3% inter: 0.0% 0.0% 0.0%
[libx264 @ 000002f178acfec0] i16 v,h,dc,p: 74% 22% 5% 0%
[libx264 @ 000002f178acfec0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 1% 16% 83% 0% 0% 0% 0% 0% 0%
[libx264 @ 000002f178acfec0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 17% 26% 7% 5% 5% 5% 6% 5%
[libx264 @ 000002f178acfec0] i8c dc,h,v,p: 93% 3% 3% 1%
[libx264 @ 000002f178acfec0] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 000002f178acfec0] ref P L0: 62.5% 37.5%
[libx264 @ 000002f178acfec0] ref B L1: 99.8% 0.2%
[libx264 @ 000002f178acfec0] kb/s:535069.75
Conversion failed! -
Evolution #4391 (Nouveau) : Squelettes de la dist : améliorer le markup et passer à BEM
13 octobre 2019, par tcharlss (*´_ゝ`)Hello,
En voulant créer des nouveaux thèmes pour les squelettes de la dist, j’ai rencontré des limitations dûes au markup actuel.
Par exemple, certains éléments sans classe sont impossibles à cibler, il y a des retours lignes en dur, etc.
En certains endroits, cela limite pas mal les possibilités.
J’aimerais lancer un petit refactoring du markup afin qu’il soit plus facile de thémer les squelettes et de maintenir les styles.Il s’agirait principalement d’améliorer la nomenclature des classes, en changeant le moins possible le markup afin que les thèmes actuels restent compatibles (ou au prix d’adaptations minimes).
On ajouterait donc des nouvelles classes, sans supprimer les classes actuelles (dans un 1er temps tout du moins ?).
Cela pourrait être l’occasion de passer à la méthodologie BEM pour la nomenclature des classes.Exemple n°1¶
Exemple avec le copyright et les liens dans le footer.
Actuellement, il n’y a pas de classe autour du copyright, les liens ne sont pas encapsulés dans un conteneur, et les séparateurs « | » n’ont pas de classe n’ont plus.
Il est donc quasiment impossible de changer l’agencement général, de changer l’apparence des séparateurs, etc.<span class="CodeRay"><span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">colophon</span><span class="delimiter">"</span></span><span class="tag">></span>
2009 - 2019 Thèmes SPIP
<span class="tag"><br /></span>
<span class="tag">span> <span class="attribute-name">rel</span>=<span class="string"><span class="delimiter">"</span><span class="content">contents</span><span class="delimiter">"</span></span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">first</span><span class="delimiter">"</span></span><span class="tag">></span>Plan du site<span class="tag"></span> | <span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">ecrire/</span><span class="delimiter">"</span></span><span class="tag">></span>Espace privé<span class="tag"></span> | <span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">rel</span>=<span class="string"><span class="delimiter">"</span><span class="content">nofollow</span><span class="delimiter">"</span></span><span class="tag">></span>Se déconnecter<span class="tag"></span> |
<span class="tag">span> <span class="attribute-name">rel</span>=<span class="string"><span class="delimiter">"</span><span class="content">nofollow</span><span class="delimiter">"</span></span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span><span class="tag">></span>Contact<span class="tag"></span> | <span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">rel</span>=<span class="string"><span class="delimiter">"</span><span class="content">alternate</span><span class="delimiter">"</span></span> <span class="attribute-name">title</span>=<span class="string"><span class="delimiter">"</span><span class="content">Syndiquer tout le site</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">last</span><span class="delimiter">"</span></span><span class="tag">></span>RSS<span class="entity">&nbsp;</span>2.0<span class="tag"></span>
<span class="tag"></span>
</span></span></span></span></span></span></span>Voici ce que ça pourrait donner en refactorisant :
- Le copyright est encapsulé dans un span
- Les liens sont considérés comme faisant partie d’un menu, et sont donc encapsulés dans un composant « menu »
- Les séparateurs sont fait en CSS, pas en dur dans le HTML
<span class="CodeRay"><span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">colophon</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">colophon__coyright</span><span class="delimiter">"</span></span><span class="tag">></span>2009 - 2019 Thèmes SPIP<span class="tag"></span></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">colophon__menu</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu menu_footer</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__item menu__item_plan</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__link first</span><span class="delimiter">"</span></span> <span class="attribute-name">rel</span>=<span class="string"><span class="delimiter">"</span><span class="content">contents</span><span class="delimiter">"</span></span><span class="tag">></span>Plan du site<span class="tag"></span>
<span class="tag"></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__item menu__item_backoffice</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span><span class="tag">></span>Espace privé<span class="tag"></span>
<span class="tag"></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__item menu__item_logout</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__link</span><span class="delimiter">"</span></span> <span class="attribute-name">rel</span>=<span class="string"><span class="delimiter">"</span><span class="content">nofollow</span><span class="delimiter">"</span></span><span class="tag">></span>Se déconnecter<span class="tag"></span>
<span class="tag"></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__item menu__item_contact</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__link</span><span class="delimiter">"</span></span> <span class="attribute-name">rel</span>=<span class="string"><span class="delimiter">"</span><span class="content">nofollow</span><span class="delimiter">"</span></span><span class="tag">></span>Contact<span class="tag"></span>
<span class="tag"></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__item menu__item_rss</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">menu__link last</span><span class="delimiter">"</span></span> <span class="attribute-name">rel</span>=<span class="string"><span class="delimiter">"</span><span class="content">alternate</span><span class="delimiter">"</span></span> <span class="attribute-name">title</span>=<span class="string"><span class="delimiter">"</span><span class="content">Syndiquer tout le site</span><span class="delimiter">"</span></span><span class="tag">></span>RSS<span class="entity">&nbsp;</span>2.0<span class="tag"></span>
<span class="tag"></span>
<span class="tag"></span>
<span class="tag"></span>
<span class="tag"></span>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span>Avec ça, on peut faire beaucoup plus de choses : afficher le copyright et le menu côte-à-côte ou l’un sous l’autre, afficher le menu à l’horizontale ou à la verticale, choisir l’apparence des séparateurs, etc.
Exemple n°2¶
Autre exemple avec les résumés d’articles.
<span class="CodeRay"><span class="tag">span> <span class="attribute-name">dir</span>=<span class="string"><span class="delimiter">"</span><span class="content">ltr</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">hentry clearfix text-left</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><strong></strong></span>
<span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">src</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">spip_logo</span><span class="delimiter">"</span></span> <span class="attribute-name">alt</span>=<span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span> <span class="attribute-name">width</span>=<span class="string"><span class="delimiter">"</span><span class="content">150</span><span class="delimiter">"</span></span> <span class="attribute-name">height</span>=<span class="string"><span class="delimiter">"</span><span class="content">185</span><span class="delimiter">"</span></span><span class="tag">></span>
Joie entourée d’angoisses (1)
<span class="tag"></span>
<span class="tag"></span>
<span class="tag"><br /></span><span class="tag"><small></small></span>6 mai 2009, par Victor Hugo<span class="tag"></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">introduction entry-content</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><p></p></span>
Lorem ipsum<span class="entity">&nbsp;</span>(...)
<span class="tag"></span>
<span class="tag"></span>
<span class="tag"></span>
</span></span></span></span></span>En refactorisant :
- Le composant de base est nommé « resume », et on voit qu’il s’agit d’une variante « article ».
- Tous les éléments ont une classe.
- Le titre est encapsulé dans un
<h3></h3>
plutôt qu’un<strong></strong>
. - L’image est sortie du titre, et sa largeur n’est pas limitée à 150px (ça se ferait en CSS).
<span class="CodeRay"><span class="tag">span> <span class="attribute-name">dir</span>=<span class="string"><span class="delimiter">"</span><span class="content">ltr</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">resume resume_article hentry clearfix text-left</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">src</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">resume__logo spip_logo</span><span class="delimiter">"</span></span> <span class="attribute-name">alt</span>=<span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span> <span class="attribute-name">width</span>=<span class="string"><span class="delimiter">"</span><span class="content">960</span><span class="delimiter">"</span></span> <span class="attribute-name">height</span>=<span class="string"><span class="delimiter">"</span><span class="content">480</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">resume__title</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span><span class="tag">></span>
Joie entourée d’angoisses (1)
<span class="tag"></span>
<span class="tag"></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">resume__publication</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">resume__date</span><span class="delimiter">"</span></span><span class="tag">></span>6 mai 2009<span class="tag"></span></span><span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">sep</span><span class="delimiter">"</span></span><span class="tag">></span>,<span class="tag"></span></span> <span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">resume__author</span><span class="delimiter">"</span></span><span class="tag">></span>par Victor Hugo<span class="tag"></span></span>
<span class="tag"></span>
<span class="tag">span> <span class="attribute-name">class</span>=<span class="string"><span class="delimiter">"</span><span class="content">resume__content introduction entry-content</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><p></p></span>
Lorem ipsum<span class="entity">&nbsp;</span>(...)
<span class="tag"></span>
<span class="tag"></span>
<span class="tag"></span>
</span></span></span></span></span></span></span>Voilà, ce ne sont que des exemples et non pas des propositions définitives.
C’est juste pour montrer la direction dans laquelle aller.HTML5¶
Il est tentant de vouloir en profiter pour passer en HTML5, mais je préfère laisser cet aspect à part (il y a déjà des tickets dessus je pense).
Français/anglais ?¶
Actuellement pour la nomenclature des classes, il y a un mélange de français et d’anglais. Personnellement, ça ne me dérange pas :)
J’ai arrêté d’essayer de tout franciser à tout prix, je préfère partir sur une base en anglais, avec quelques éléments en français quand il n’y a a pas le choix (par exemple quand on fait référence aux objets spip : breve, rubrique, etc.).Cahier des charges¶
- Faire en sorte que les thèmes existants restent globalement compatibles (moyennant peu d’adaptations).
- Passer la nomenclature des classes à BEM.
- Ajouter des classes sur tous les éléments n’en ayant pas.
- Retirer les retours ligne en dur :
<br />
. - Travailler dans une branche nommée « bem » du dépôt git : https://git.spip.net/SPIP/dist/
- Pas de HTML5 pour l’instant.
- Classes en english avec des exceptions en français
-
Matomo analytics for wordpress
15 octobre 2019, par Matomo Core Team — Community