Skip to content

Commit 671749b

Browse files
authored
Accept multiple files in inclusions using globs and add 'exclude' argument (#72)
* Accept multiple files in inclusions using globs and add 'exclude' argument * Pin pre-commit job dependency * Allow relative globs * Improve included glob for files * Bump version
1 parent 754891c commit 671749b

File tree

15 files changed

+615
-178
lines changed

15 files changed

+615
-178
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 3.1.4
2+
current_version = 3.2.0
33

44
[bumpversion:file:mkdocs_include_markdown_plugin/__init__.py]
55

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ repos:
4646
entry: python scripts/update_translations.py
4747
language: python
4848
additional_dependencies:
49-
- mdpo
49+
- mdpo==0.3.61
5050
files: (README\.md|locale)
5151
- repo: https://github.com/mondeja/pre-commit-hooks
5252
rev: v1.5.2

README.md

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Mkdocs Markdown includer plugin.
1212
[![Coverage status][coverage-image]][coverage-link]
1313
<!-- mdpo-enable -->
1414

15-
> See this document in other languages:
15+
> Read this document in other languages:
1616
>
1717
> <!-- mdpo-disable-next-line -->
1818
> - [Español][es-readme-link]
@@ -36,14 +36,17 @@ plugins:
3636
3737
### Reference
3838
39-
This plugin provides two directives, one to include markdown files and another
40-
to include files of any type. Paths of included files can be absolute or
41-
relative to the path of the file that includes them:
39+
This plugin provides two directives, one to include Markdown files and another
40+
to include files of any type.
41+
42+
Paths of included files can be absolute or relative to the path of the file
43+
that includes them. This argument also accept globs, in which case certain
44+
paths can be ignored using the `exclude` argument:
4245

4346
<!-- mdpo-disable-next-line -->
4447
#### **`include-markdown`**
4548

46-
Includes markdown file content, optionally using two delimiters to filter the
49+
Includes Markdown files content, optionally using two delimiters to filter the
4750
content to include.
4851

4952
- **start**: Delimiter that marks the beginning of the content to include.
@@ -63,8 +66,10 @@ content to include.
6366
values are `true` and `false`.
6467
- **heading-offset** (0): Increases the Markdown heading depth by this number.
6568
Only supports number sign (#) heading syntax. Max offset of 5.
69+
- **exclude**: Specify with a glob which files should be ignored. Only useful
70+
when passing globs to include multiple files.
6671

67-
> Note that the **start** and **end** strings may contain usual (Python-style)
72+
> Note that **start** and **end** strings may contain usual (Python-style)
6873
escape sequences like `\n`, which is handy if you need to match on a multi-line
6974
start or end trigger.
7075

@@ -95,10 +100,19 @@ start or end trigger.
95100
%}
96101
```
97102

103+
```jinja
104+
{%
105+
include-markdown "../LICENSE*.md"
106+
start="<!--license-start-->"
107+
end="<!--license-end-->"
108+
exclude="../LICENSE*.rst"
109+
%}
110+
```
111+
98112
<!-- mdpo-disable-next-line -->
99113
#### **`include`**
100114

101-
Includes the content of a file.
115+
Includes the content of a file or a group of files.
102116

103117
- **start**: Delimiter that marks the beginning of the content to include.
104118
- **end**: Delimiter that marks the end of the content to include.
@@ -107,8 +121,10 @@ Includes the content of a file.
107121
spaces used to indent the includer `{% %}` template. Possible values are
108122
`true` and `false`.
109123
- **dedent** (*false*): If enabled, the included content will be dedented.
124+
- **exclude**: Specify with a glob which files should be ignored. Only useful
125+
when passing globs to include multiple files.
110126

111-
> Note that the **start** and **end** strings may contain usual (Python-style)
127+
> Note that **start** and **end** strings may contain usual (Python-style)
112128
escape sequences like `\n`, which is handy if you need to match on a multi-line
113129
start or end trigger.
114130

@@ -128,6 +144,13 @@ start or end trigger.
128144
%}
129145
```
130146

147+
```jinja
148+
{%
149+
include "../LICENSE*.md"
150+
exclude="../LICENSE*.rst"
151+
%}
152+
```
153+
131154
## Acknowledgment
132155

133156
- Joe Rickerby and contributors for

locale/es/README.md

Lines changed: 62 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@ Plugin de inclusiones Markdown para Mkdocs.
44

55
## Estado
66

7-
[![PyPI](https://img.shields.io/pypi/v/mkdocs-include-markdown-plugin?logo=pypi&logoColor=white)][pypi-link][pypi-link] [![Tests](https://img.shields.io/github/workflow/status/mondeja/mkdocs-include-markdown-plugin/CI?logo=github&label=tests)][tests-link][tests-link] [![Coverage status](https://img.shields.io/coveralls/github/mondeja/mkdocs-include-markdown-plugin?logo=coveralls)][coverage-link][coverage-link]
7+
[![PyPI](https://img.shields.io/pypi/v/mkdocs-include-markdown-plugin?logo=pypi&logoColor=white)][pypi-link]
8+
[![Tests](https://img.shields.io/github/workflow/status/mondeja/mkdocs-include-markdown-plugin/CI?logo=github&label=tests)][tests-link]
9+
[![Coverage
10+
status](https://img.shields.io/coveralls/github/mondeja/mkdocs-include-markdown-plugin?logo=coveralls)][coverage-link]
811

9-
> Ve este documento en otros idiomas:
12+
> Lee este documento en otros idiomas:
1013
>
1114
> - [Español][es-readme-link]
1215
@@ -29,21 +32,41 @@ plugins:
2932
3033
### Referencia
3134
32-
Este plugin provee dos directivas, una para incluir archivos Markdown y otra para incluir archivos de cualquier tipo. Las rutas de los archivos incluidos pueden ser absolutas o relativas a la ruta del archivo que las incluye:
35+
Este plugin provee dos directivas, una para incluir archivos Markdown y otra
36+
para incluir archivos de cualquier tipo.
37+
38+
Las rutas de los archivos incluidos pueden ser absolutas o relativas a la ruta
39+
del archivo que las incluye. Este argumento también acepta globs, en cuyo caso
40+
ciertas rutas pueden ser ignoradas usando el argumento `exclude`:
3341

3442
#### **`include-markdown`**
3543

36-
Incluye contenido de archivo Markdown, opcionalmente usando dos delimitadores para filtrar el contenido a incluir.
44+
Incluye contenido de archivos Markdown, opcionalmente usando dos delimitadores
45+
para filtrar el contenido a incluir.
3746

3847
- **start**: Delimitador que marca el comienzo del contenido a incluir.
3948
- **end**: Delimitador que marca el final del contenido a incluir.
40-
- **preserve-includer-indent** (*true*): Cuando esta opción está habilitada (por defecto), cada línea del contenido a incluir es indentada con el mismo número de espacios usados para indentar la plantilla `{% %}` incluidora. Los valores posibles son `true` y `false`.
49+
- **preserve-includer-indent** (*true*): Cuando esta opción está habilitada
50+
(por defecto), cada línea del contenido a incluir es indentada con el mismo
51+
número de espacios usados para indentar la plantilla `{% %}` incluidora. Los
52+
valores posibles son `true` y `false`.
4153
- **dedent** (*false*): Si se habilita, el contenido incluido será dedentado.
42-
- **rewrite-relative-urls** (*true*): Cuando esta opción está habilitada (por defecto), los enlaces e imágenes Markdown en el contenido que están definidas mediante una URL relativa son rescritos para funcionar correctamente en su nueva localización. Los valores posibles son `true` y `false`.
43-
- **comments** (*true*): Cuando esta opción está habilitada (por defecto), el contenido a incluir es envuelto por comentarios `<!-- BEGIN INCLUDE -->` y `<!-- END INCLUDE -->` que ayudan a identificar que el contenido ha sido incluido. Los valores posibles son `true` y `false`.
44-
- **heading-offset** (0): Incrementa el tamaño de encabezados por este número. Sólo soporta sintaxis de encabezado de almohadilla (#). El valor máximo es 5.
45-
46-
> Nota que las cadenas **start** y **end** pueden contener caracteres usuales de secuencias de escape (al estilo Python) como `\n`, lo cual es útil si necesita hacer coincidir en un disparador de inicio o fin de varias líneas.
54+
- **rewrite-relative-urls** (*true*): Cuando esta opción está habilitada (por
55+
defecto), los enlaces e imágenes Markdown en el contenido que están definidas
56+
mediante una URL relativa son rescritos para funcionar correctamente en su
57+
nueva localización. Los valores posibles son `true` y `false`.
58+
- **comments** (*true*): Cuando esta opción está habilitada (por defecto), el
59+
contenido a incluir es envuelto por comentarios `<!-- BEGIN INCLUDE -->` y
60+
`<!-- END INCLUDE -->` que ayudan a identificar que el contenido ha sido
61+
incluido. Los valores posibles son `true` y `false`.
62+
- **heading-offset** (0): Incrementa el tamaño de encabezados por este número.
63+
Sólo soporta sintaxis de encabezado de almohadilla (#). El valor máximo es 5.
64+
- **exclude**: Expecifica mediante un glob los archivos que deben ser
65+
ignorados. Sólo es útil pasando globs para incluir múltiples archivos.
66+
67+
> Nota que las cadenas **start** y **end** pueden contener caracteres usuales
68+
de secuencias de escape (al estilo Python) como `\n`, lo cual es útil si
69+
necesita hacer coincidir en un disparador de inicio o fin de varias líneas.
4770

4871
##### Ejemplo
4972

@@ -72,16 +95,32 @@ Incluye contenido de archivo Markdown, opcionalmente usando dos delimitadores pa
7295
%}
7396
```
7497

98+
```jinja
99+
{%
100+
include-markdown "../LICENSE*.md"
101+
start="<!--license-start-->"
102+
end="<!--license-end-->"
103+
exclude="../LICENSE*.rst"
104+
%}
105+
```
106+
75107
#### **`include`**
76108

77-
Incluye el contenido de un archivo.
109+
Incluye el contenido de un archivo o un grupo de archivos.
78110

79111
- **start**: Delimitador que marca el comienzo del contenido a incluir.
80112
- **end**: Delimitador que marca el final del contenido a incluir.
81-
- **preserve-includer-indent** (*true*): Cuando esta opción está habilitada (por defecto), cada línea del contenido a incluir es indentada con el mismo número de espacios usados para indentar la plantilla `{% %}` incluidora. Los valores posibles son `true` y `false`.
113+
- **preserve-includer-indent** (*true*): Cuando esta opción está habilitada
114+
(por defecto), cada línea del contenido a incluir es indentada con el mismo
115+
número de espacios usados para indentar la plantilla `{% %}` incluidora. Los
116+
valores posibles son `true` y `false`.
82117
- **dedent** (*false*): Si se habilita, el contenido incluido será dedentado.
118+
- **exclude**: Expecifica mediante un glob los archivos que deben ser
119+
ignorados. Sólo es útil pasando globs para incluir múltiples archivos.
83120

84-
> Nota que las cadenas **start** y **end** pueden contener caracteres usuales de secuencias de escape (al estilo Python) como `\n`, lo cual es útil si necesita hacer coincidir en un disparador de inicio o fin de varias líneas.
121+
> Nota que las cadenas **start** y **end** pueden contener caracteres usuales
122+
de secuencias de escape (al estilo Python) como `\n`, lo cual es útil si
123+
necesita hacer coincidir en un disparador de inicio o fin de varias líneas.
85124

86125
##### Ejemplo
87126

@@ -99,9 +138,18 @@ Incluye el contenido de un archivo.
99138
%}
100139
```
101140

141+
```jinja
142+
{%
143+
include "../LICENSE*.md"
144+
exclude="../LICENSE*.rst"
145+
%}
146+
```
147+
102148
## Agradecimientos
103149

104-
- Joe Rickerby y contribuidores por [darme los permisos][cibuildwheel-470] para separar este plugin de la documentación de [cibuildwheel][cibuildwheel-repo-link].
150+
- Joe Rickerby y contribuidores por [darme los permisos][cibuildwheel-470] para
151+
separar este plugin de la documentación de
152+
[cibuildwheel][cibuildwheel-repo-link].
105153

106154
[pypi-link]: https://pypi.org/project/mkdocs-include-markdown-plugin
107155
[pypi-version-badge-link]: https://img.shields.io/pypi/v/mkdocs-include-markdown-plugin?logo=pypi&logoColor=white

locale/es/readme.po

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,10 @@ msgid "Reference"
2424
msgstr "Referencia"
2525

2626
msgid ""
27-
"This plugin provides two directives, one to include markdown files and "
28-
"another to include files of any type. Paths of included files can be "
29-
"absolute or relative to the path of the file that includes them:"
30-
msgstr ""
31-
"Este plugin provee dos directivas, una para incluir archivos Markdown y otra"
32-
" para incluir archivos de cualquier tipo. Las rutas de los archivos "
33-
"incluidos pueden ser absolutas o relativas a la ruta del archivo que las "
34-
"incluye:"
35-
36-
msgid ""
37-
"Includes markdown file content, optionally using two delimiters to filter "
27+
"Includes Markdown files content, optionally using two delimiters to filter "
3828
"the content to include."
3929
msgstr ""
40-
"Incluye contenido de archivo Markdown, opcionalmente usando dos "
30+
"Incluye contenido de archivos Markdown, opcionalmente usando dos "
4131
"delimitadores para filtrar el contenido a incluir."
4232

4333
msgid ""
@@ -95,9 +85,9 @@ msgstr ""
9585
"5."
9686

9787
msgid ""
98-
"Note that the **start** and **end** strings may contain usual (Python-style)"
99-
" escape sequences like `\\n`, which is handy if you need to match on a "
100-
"multi-line start or end trigger."
88+
"Note that **start** and **end** strings may contain usual (Python-style) "
89+
"escape sequences like `\\n`, which is handy if you need to match on a multi-"
90+
"line start or end trigger."
10191
msgstr ""
10292
"Nota que las cadenas **start** y **end** pueden contener caracteres usuales "
10393
"de secuencias de escape (al estilo Python) como `\\n`, lo cual es útil si "
@@ -106,9 +96,6 @@ msgstr ""
10696
msgid "Examples"
10797
msgstr "Ejemplo"
10898

109-
msgid "Includes the content of a file."
110-
msgstr "Incluye el contenido de un archivo."
111-
11299
msgid "Acknowledgment"
113100
msgstr "Agradecimientos"
114101

@@ -166,12 +153,38 @@ msgstr ""
166153
msgid "[cibuildwheel-repo-link]: https://github.com/joerick/cibuildwheel"
167154
msgstr "[cibuildwheel-repo-link]: https://github.com/joerick/cibuildwheel"
168155

169-
msgid "See this document in other languages:"
170-
msgstr "Ve este documento en otros idiomas:"
156+
msgid "Read this document in other languages:"
157+
msgstr "Lee este documento en otros idiomas:"
171158

172159
msgid ""
173160
"[es-readme-link]: https://github.com/mondeja/mkdocs-include-markdown-"
174161
"plugin/blob/master/locale/es/README.md"
175162
msgstr ""
176163
"[es-readme-link]: https://github.com/mondeja/mkdocs-include-markdown-"
177164
"plugin/blob/master/locale/es/README.md"
165+
166+
msgid ""
167+
"This plugin provides two directives, one to include Markdown files and "
168+
"another to include files of any type."
169+
msgstr ""
170+
"Este plugin provee dos directivas, una para incluir archivos Markdown y otra"
171+
" para incluir archivos de cualquier tipo."
172+
173+
msgid ""
174+
"Paths of included files can be absolute or relative to the path of the file "
175+
"that includes them. This argument also accept globs, in which case certain "
176+
"paths can be ignored using the `exclude` argument:"
177+
msgstr ""
178+
"Las rutas de los archivos incluidos pueden ser absolutas o relativas a la "
179+
"ruta del archivo que las incluye. Este argumento también acepta globs, en "
180+
"cuyo caso ciertas rutas pueden ser ignoradas usando el argumento `exclude`:"
181+
182+
msgid ""
183+
"**exclude**: Specify with a glob which files should be ignored. Only useful "
184+
"when passing globs to include multiple files."
185+
msgstr ""
186+
"**exclude**: Expecifica mediante un glob los archivos que deben ser "
187+
"ignorados. Sólo es útil pasando globs para incluir múltiples archivos."
188+
189+
msgid "Includes the content of a file or a group of files."
190+
msgstr "Incluye el contenido de un archivo o un grupo de archivos."
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
__title__ = 'mkdocs_include_markdown_plugin'
2-
__version__ = '3.1.4'
2+
__version__ = '3.2.0'

0 commit comments

Comments
 (0)