Skip to content

Commit 708a374

Browse files
authored
Add new argument order to sort inclusions (#279)
1 parent 8b77f66 commit 708a374

File tree

18 files changed

+1305
-50
lines changed

18 files changed

+1305
-50
lines changed

README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,32 @@ content to include.
191191
- <a name="include-markdown_recursive" href="#include-markdown_recursive">#</a>
192192
**recursive** (_true_): When this option is disabled, included files are not
193193
processed for recursive includes. Possible values are `true` and `false`.
194+
- <a name="include-markdown_order" href="#include-markdown_order">#</a>
195+
**order** (_'alpha-path'_): Define the order in which multiple files are included
196+
when using globs. Possible values are:
197+
- A combination of an optional order type and an optional order by separated
198+
by a hyphen (`-`), and optionally prefixed by a hyphen (`-`) to indicate
199+
ascending order. If an order type or an order by is not specified, the defaults
200+
are used. It follows the form:
201+
`[-]<order_type>-<order_by>` where:
202+
- **Order type**:
203+
- `'alpha'` (default): Alphabetical order.
204+
- `'natural'`: Natural order, so that e.g. `file2.md` comes before `file10.md`.
205+
- **Order by**:
206+
- `'path'` (default): Order by full file path.
207+
- `'name'`: Order by file name only.
208+
- `'extension'`: Order by file extension.
209+
- A combination of an optional prefix hyphen to denote ascending order and
210+
one of the following values in the form `[-]<value>` where `<value>` is one of:
211+
- `'size'`: Order by file size.
212+
- `'mtime'`: Order by file modification time.
213+
- `'ctime'`: Order by file creation time (or the last metadata change time
214+
on Unix systems).
215+
- `'atime'`: Order by file last access time.
216+
- `'random'`: Random order.
217+
- `'system'`: Order provided by the operating system. This is the same as not
218+
specifying any order and relying on the default order of the filesystem. This
219+
may be different between operating systems, so use it with care.
194220
- <a name="include-markdown_encoding" href="#include-markdown_encoding">#</a>
195221
**encoding** (_'utf-8'_): Specify the encoding of the included file.
196222
If not defined `'utf-8'` will be used.
@@ -249,13 +275,21 @@ content to include.
249275
{%
250276
include-markdown "**"
251277
exclude="./{index,LICENSE}.md"
278+
order="name"
252279
%}
253280
```
254281

255282
```jinja
256283
{% include-markdown '/escap\'ed/single-quotes/in/file\'/name.md' %}
257284
```
258285

286+
```jinja
287+
{%
288+
include-markdown "**"
289+
order="-natural-extension"
290+
%}
291+
```
292+
259293
<!-- mdpo-disable-next-line -->
260294

261295
#### **`include`**
@@ -282,6 +316,32 @@ Includes the content of a file or a group of files.
282316
- <a name="include_recursive" href="#include_recursive">#</a>
283317
**recursive** (_true_): When this option is disabled, included files are not
284318
processed for recursive includes. Possible values are `true` and `false`.
319+
- <a name="include_order" href="#include_order">#</a>
320+
**order** (_'alpha-path'_): Define the order in which multiple files are included
321+
when using globs. Possible values are:
322+
- A combination of an optional order type and an optional order by separated
323+
by a hyphen (`-`), and optionally prefixed by a hyphen (`-`) to indicate
324+
ascending order. If an order type or an order by is not specified, the defaults
325+
are used. It follows the form:
326+
`[-]<order_type>-<order_by>` where:
327+
- **Order type**:
328+
- `'alpha'` (default): Alphabetical order.
329+
- `'natural'`: Natural order, so that e.g. `file2.md` comes before `file10.md`.
330+
- **Order by**:
331+
- `'path'` (default): Order by full file path.
332+
- `'name'`: Order by file name only.
333+
- `'extension'`: Order by file extension.
334+
- A combination of an optional prefix hyphen to denote ascending order and
335+
one of the following values in the form `[-]<value>` where `<value>` is one of:
336+
- `'size'`: Order by file size.
337+
- `'mtime'`: Order by file modification time.
338+
- `'ctime'`: Order by file creation time (or the last metadata change time
339+
on Unix systems).
340+
- `'atime'`: Order by file last access time.
341+
- `'random'`: Random order.
342+
- `'system'`: Order provided by the operating system. This is the same as not
343+
specifying any order and relying on the default order of the filesystem. This
344+
may be different between operating systems, so use it with care.
285345
- <a name="include_encoding" href="#include_encoding">#</a>
286346
**encoding** (_'utf-8'_): Specify the encoding of the included file.
287347
If not defined `'utf-8'` will be used.
@@ -306,6 +366,7 @@ Includes the content of a file or a group of files.
306366
{%
307367
include '**'
308368
exclude='./*.md'
369+
order='random'
309370
%}
310371
```
311372

locale/es/README.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,35 @@ se encuentran en el contenido a incluir se eliminan. Los valores posibles son
177177
**recursive** (*true*): Cuando esta opción está deshabilitada, los archivos
178178
incluidos no son procesados para incluir de forma recursiva. Los valores
179179
posibles son `true` y `false`.
180+
- <a name="include-markdown_order" href="#include-markdown_order">#</a> **order**
181+
(*'alpha-path'*): Define el orden en el que múltiples archivos son incluidos
182+
al usar globs. Los valores posibles son:
183+
- Una combinación de un tipo de orden opcional y un sujeto de ordenación opcional
184+
separados por un guion (`-`), y opcionalmente precedidos por un guion (`-`)
185+
para indicar orden ascendente. Si no se especifica un tipo de orden o un sujeto
186+
de ordenación, se usan los valores por defecto. Sigue la forma:
187+
`[-]<tipo_de_orden>-<sujeto_de_ordenación>` donde:
188+
- **Tipo de orden**:
189+
- `'alpha'` (por defecto): Orden alfabético.
190+
- `'natural'`: Orden natural, de modo que por ejemplo `file2.md` va antes
191+
`file10.md`.
192+
- **Sujeto de ordenación**:
193+
- `'path'` (por defecto): Ordena por la ruta completa del archivo.
194+
- `'name'`: Ordena sólo por el nombre del archivo.
195+
- `'extension'`: Ordena por la extensión del archivo.
196+
- Una combinación de un guion opcional al principio para denotar orden ascendente
197+
y uno de los siguientes valores en la forma `[-]<valor>` donde `<valor>` es
198+
uno de los siguientes:
199+
- `'size'`: Ordena por el tamaño del archivo.
200+
- `'mtime'`: Ordena por la hora de modificación del archivo.
201+
- `'ctime'`: Ordena por la hora de creación del archivo (o la última hora de
202+
cambio de metadatos en sistemas Unix).
203+
- `'atime'`: Ordena por la última hora de acceso al archivo.
204+
- `'random'`: Orden aleatorio.
205+
- `'system'`: Orden proporcionado por el sistema operativo. Esto es lo mismo que
206+
no especificar ningún orden y confiar en el orden por defecto del sistema de
207+
archivos. Esto puede ser diferente entre sistemas operativos, así que úsalo con
208+
precaución.
180209
- <a name="include-markdown_encoding" href="#include-markdown_encoding">#</a>
181210
**encoding** (*'utf-8'*): Especifica la codificación del archivo incluído. Si
182211
no se define, se usará `'utf-8'`.
@@ -237,13 +266,21 @@ especificado. Sólo soporta la sintaxis de encabezado de caracteres de hash
237266
{%
238267
include-markdown "**"
239268
exclude="./{index,LICENSE}.md"
269+
order="name"
240270
%}
241271
```
242272

243273
```jinja
244274
{% include-markdown '/escap\'ed/single-quotes/in/file\'/name.md' %}
245275
```
246276

277+
```jinja
278+
{%
279+
include-markdown "**"
280+
order="-natural-extension"
281+
%}
282+
```
283+
247284
#### **`include`**
248285

249286
Incluye el contenido de un archivo o un grupo de archivos.
@@ -271,6 +308,35 @@ Los valores posibles son `true` y `false`.
271308
(*true*): Cuando esta opción está deshabilitada, los archivos incluidos no son
272309
procesados para incluir de forma recursiva. Los valores posibles son `true` y
273310
`false`.
311+
- <a name="include_order" href="#include_order">#</a> **order** (*'alpha-path'*):
312+
Define el orden en el que múltiples archivos son incluidos al usar globs. Los
313+
posibles valores son:
314+
- Una combinación de un tipo de orden opcional y un sujeto de ordenación opcional
315+
separados por un guion (`-`), y opcionalmente precedidos por un guion (`-`)
316+
para indicar orden ascendente. Si no se especifica un tipo de orden o un sujeto
317+
de ordenación, se usan los valores por defecto. Sigue la forma:
318+
`[-]<tipo_de_orden>-<sujeto_de_ordenación>` donde:
319+
- **Tipo de orden**:
320+
- `'alpha'` (por defecto): Orden alfabético.
321+
- `'natural'`: Orden natural, de modo que por ejemplo `file2.md` va antes
322+
`file10.md`.
323+
- **Sujeto de ordenación**:
324+
- `'path'` (por defecto): Ordena por la ruta completa del archivo.
325+
- `'name'`: Ordena sólo por el nombre del archivo.
326+
- `'extension'`: Ordena por la extensión del archivo.
327+
- Una combinación de un guion opcional al principio para denotar orden ascendente
328+
y uno de los siguientes valores en la forma `[-]<valor>` donde `<valor>` es
329+
uno de los siguientes:
330+
- `'size'`: Ordena por el tamaño del archivo.
331+
- `'mtime'`: Ordena por la hora de modificación del archivo.
332+
- `'ctime'`: Ordena por la hora de creación del archivo (o la última hora de
333+
cambio de metadatos en sistemas Unix).
334+
- `'atime'`: Ordena por la última hora de acceso al archivo.
335+
- `'random'`: Orden aleatorio.
336+
- `'system'`: Orden proporcionado por el sistema operativo. Esto es lo mismo que
337+
no especificar ningún orden y confiar en el orden por defecto del sistema de
338+
archivos. Esto puede ser diferente entre sistemas operativos, así que úsalo con
339+
precaución.
274340
- <a name="include_encoding" href="#include_encoding">#</a> **encoding**
275341
(*'utf-8'*): Especifica la codificación del archivo incluído. Si no se define,
276342
se usará `'utf-8'`.
@@ -295,6 +361,7 @@ se usará `'utf-8'`.
295361
{%
296362
include '**'
297363
exclude='./*.md'
364+
order='random'
298365
%}
299366
```
300367

locale/es/README.md.po

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,3 +471,95 @@ msgid ""
471471
msgstr ""
472472
"Se agregará un archivo *.gitignore* al directorio de caché si no existe para"
473473
" evitar confirmar los archivos de caché."
474+
475+
msgid ""
476+
"<a name=\"include-markdown_order\" href=\"#include-markdown_order\">#</a> "
477+
"**order** (*'alpha-path'*): Define the order in which multiple files are "
478+
"included when using globs. Possible values are:"
479+
msgstr ""
480+
"<a name=\"include-markdown_order\" href=\"#include-markdown_order\">#</a> "
481+
"**order** (*'alpha-path'*): Define el orden en el que múltiples archivos son"
482+
" incluidos al usar globs. Los valores posibles son:"
483+
484+
msgid "**Order type**:"
485+
msgstr "**Tipo de orden**:"
486+
487+
msgid "`'alpha'` (default): Alphabetical order."
488+
msgstr "`'alpha'` (por defecto): Orden alfabético."
489+
490+
msgid ""
491+
"`'natural'`: Natural order, so that e.g. `file2.md` comes before "
492+
"`file10.md`."
493+
msgstr ""
494+
"`'natural'`: Orden natural, de modo que por ejemplo `file2.md` va antes "
495+
"`file10.md`."
496+
497+
msgid "**Order by**:"
498+
msgstr "**Sujeto de ordenación**:"
499+
500+
msgid "`'path'` (default): Order by full file path."
501+
msgstr "`'path'` (por defecto): Ordena por la ruta completa del archivo."
502+
503+
msgid "`'name'`: Order by file name only."
504+
msgstr "`'name'`: Ordena sólo por el nombre del archivo."
505+
506+
msgid ""
507+
"A combination of an optional prefix hyphen to denote ascending order and one"
508+
" of the following values in the form `[-]<value>` where `<value>` is one of:"
509+
msgstr ""
510+
"Una combinación de un guion opcional al principio para denotar orden "
511+
"ascendente y uno de los siguientes valores en la forma `[-]<valor>` donde "
512+
"`<valor>` es uno de los siguientes:"
513+
514+
msgid "`'size'`: Order by file size."
515+
msgstr "`'size'`: Ordena por el tamaño del archivo."
516+
517+
msgid "`'mtime'`: Order by file modification time."
518+
msgstr "`'mtime'`: Ordena por la hora de modificación del archivo."
519+
520+
msgid ""
521+
"`'ctime'`: Order by file creation time (or the last metadata change time on "
522+
"Unix systems)."
523+
msgstr ""
524+
"`'ctime'`: Ordena por la hora de creación del archivo (o la última hora de "
525+
"cambio de metadatos en sistemas Unix)."
526+
527+
msgid "`'atime'`: Order by file last access time."
528+
msgstr "`'atime'`: Ordena por la última hora de acceso al archivo."
529+
530+
msgid "`'random'`: Random order."
531+
msgstr "`'random'`: Orden aleatorio."
532+
533+
msgid ""
534+
"`'system'`: Order provided by the operating system. This is the same as not "
535+
"specifying any order and relying on the default order of the filesystem. "
536+
"This may be different between operating systems, so use it with care."
537+
msgstr ""
538+
"`'system'`: Orden proporcionado por el sistema operativo. Esto es lo mismo "
539+
"que no especificar ningún orden y confiar en el orden por defecto del "
540+
"sistema de archivos. Esto puede ser diferente entre sistemas operativos, así"
541+
" que úsalo con precaución."
542+
543+
msgid ""
544+
"<a name=\"include_order\" href=\"#include_order\">#</a> **order** (*'alpha-"
545+
"path'*): Define the order in which multiple files are included when using "
546+
"globs. Possible values are:"
547+
msgstr ""
548+
"<a name=\"include_order\" href=\"#include_order\">#</a> **order** (*'alpha-"
549+
"path'*): Define el orden en el que múltiples archivos son incluidos al usar "
550+
"globs. Los posibles valores son:"
551+
552+
msgid "`'extension'`: Order by file extension."
553+
msgstr "`'extension'`: Ordena por la extensión del archivo."
554+
555+
msgid ""
556+
"A combination of an optional order type and an optional order by separated "
557+
"by a hyphen (`-`), and optionally prefixed by a hyphen (`-`) to indicate "
558+
"ascending order. If an order type or an order by is not specified, the "
559+
"defaults are used. It follows the form: `[-]<order_type>-<order_by>` where:"
560+
msgstr ""
561+
"Una combinación de un tipo de orden opcional y un sujeto de ordenación "
562+
"opcional separados por un guion (`-`), y opcionalmente precedidos por un "
563+
"guion (`-`) para indicar orden ascendente. Si no se especifica un tipo de "
564+
"orden o un sujeto de ordenación, se usan los valores por defecto. Sigue la "
565+
"forma: `[-]<tipo_de_orden>-<sujeto_de_ordenación>` donde:"

locale/fr/README.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,35 @@ trouvées dans le contenu à inclure sont supprimées. Les valeurs possibles son
178178
**recursive** (*true*): Lorsque cette option est désactivée, les fichiers
179179
inclus ne sont pas traités pour des inclusions récursives. Les valeurs possibles
180180
sont `true` et `false`.
181+
- <a name="include-markdown_order" href="#include-markdown_order">#</a> **order**
182+
(*'alpha-path'*): Définit l'ordre dans lequel plusieurs fichiers sont inclus
183+
lors de l'utilisation de globs. Les possibles valeurs sont:
184+
- Une combinaison d'un type de commande optionnel et d'un sujet de commande
185+
optionnel séparés par un trait d'union (`-`), et éventuellement précédés par
186+
un trait d'union (`-`) pour indiquer l'ordre ascendant. Si un type d'ordre ou un
187+
sujet d'ordre n'est pas spécifié, les valeurs par défaut sont utilisées. Il suit
188+
la forme: `[-]<type_d'ordre>-<sujet_d'ordre>` où:
189+
- **Type d'ordre**:
190+
- `'alpha'` (par défaut): Ordre alphabétique.
191+
- `'natural'`: Ordre naturel, de sorte que par exemple `file2.md` vient avant
192+
`file10.md`.
193+
- **Sujet de l'ordre**:
194+
- `'path'` (par défaut): Ordre par chemin de fichier complet.
195+
- `'name'`: Ordre par nom de fichier uniquement.
196+
- `'extension'`: Ordre par extension de fichier.
197+
- Une combinaison d'un trait d'union préfixe optionnel pour indiquer l'ordre
198+
ascendant et l'une des valeurs suivantes sous la forme `[-]<value>` où
199+
`<value>` est l'une de:
200+
- `'size'`: Ordre par taille de fichier.
201+
- `'mtime'`: Ordre par heure de modification du fichier.
202+
- `'ctime'`: Ordre par heure de création du fichier (ou la dernière heure de
203+
changement de métadonnées sur les systèmes Unix).
204+
- `'atime'`: Ordre par dernière heure d'accès au fichier.
205+
- `'random'`: Ordre aléatoire.
206+
- `'system'`: Ordre fourni par le système d'exploitation. C'est la même chose que
207+
de ne spécifier aucun ordre et de se fier à l'ordre par défaut du système de
208+
fichiers. Cela peut être différent entre les systèmes d'exploitation, alors
209+
utilisez-le avec précaution.
181210
- <a name="include-markdown_encoding" href="#include-markdown_encoding">#</a>
182211
**encoding** (*'utf-8'*): Spécifiez l'encodage du fichier inclus. S'il n'est
183212
pas défini, `'utf-8'` sera utilisé.
@@ -238,13 +267,21 @@ négatives pour supprimer les caractères `#` de tête.
238267
{%
239268
include-markdown "**"
240269
exclude="./{index,LICENSE}.md"
270+
order="name"
241271
%}
242272
```
243273

244274
```jinja
245275
{% include-markdown '/escap\'ed/single-quotes/in/file\'/name.md' %}
246276
```
247277

278+
```jinja
279+
{%
280+
include-markdown "**"
281+
order="-natural-extension"
282+
%}
283+
```
284+
248285
#### **`include`**
249286

250287
Inclus le contenu d'un fichier ou d'un groupe de fichiers.
@@ -271,6 +308,35 @@ valeurs possibles sont `true` et `false`.
271308
(*true*): Lorsque cette option est désactivée, les fichiers inclus ne sont pas
272309
traités pour des inclusions récursives. Les valeurs possibles sont `true` et
273310
`false`.
311+
- <a name="include_order" href="#include_order">#</a> **order** (*'alpha-path'*):
312+
Définit l'ordre dans lequel plusieurs fichiers sont inclus lors de
313+
l'utilisation de globs. Les possibles valeurs sont:
314+
- Une combinaison d'un type de commande optionnel et d'un sujet de commande
315+
optionnel séparés par un trait d'union (`-`), et éventuellement précédés par
316+
un trait d'union (`-`) pour indiquer l'ordre ascendant. Si un type d'ordre ou un
317+
sujet d'ordre n'est pas spécifié, les valeurs par défaut sont utilisées. Il suit
318+
la forme: `[-]<type_d'ordre>-<sujet_d'ordre>` où:
319+
- **Type d'ordre**:
320+
- `'alpha'` (par défaut): Ordre alphabétique.
321+
- `'natural'`: Ordre naturel, de sorte que par exemple `file2.md` vient avant
322+
`file10.md`.
323+
- **Sujet de l'ordre**:
324+
- `'path'` (par défaut): Ordre par chemin de fichier complet.
325+
- `'name'`: Ordre par nom de fichier uniquement.
326+
- `'extension'`: Ordre par extension de fichier.
327+
- Une combinaison d'un trait d'union préfixe optionnel pour indiquer l'ordre
328+
ascendant et l'une des valeurs suivantes sous la forme `[-]<value>` où
329+
`<value>` est l'une de:
330+
- `'size'`: Ordre par taille de fichier.
331+
- `'mtime'`: Ordre par heure de modification du fichier.
332+
- `'ctime'`: Ordre par heure de création du fichier (ou la dernière heure de
333+
changement de métadonnées sur les systèmes Unix).
334+
- `'atime'`: Ordre par dernière heure d'accès au fichier.
335+
- `'random'`: Ordre aléatoire.
336+
- `'system'`: Ordre fourni par le système d'exploitation. C'est la même chose que
337+
de ne spécifier aucun ordre et de se fier à l'ordre par défaut du système de
338+
fichiers. Cela peut être différent entre les systèmes d'exploitation, alors
339+
utilisez-le avec précaution.
274340
- <a name="include_encoding" href="#include_encoding">#</a> **encoding**
275341
(*'utf-8'*): Spécifiez l'encodage du fichier inclus. S'il n'est pas défini,
276342
`'utf-8'` sera utilisé.
@@ -295,6 +361,7 @@ traités pour des inclusions récursives. Les valeurs possibles sont `true` et
295361
{%
296362
include '**'
297363
exclude='./*.md'
364+
order='random'
298365
%}
299366
```
300367

0 commit comments

Comments
 (0)