Skip to content

Commit 51d9b76

Browse files
committed
Automatically disable MkDocs 2.0 warning for forks of MkDocs
1 parent 6f9a48b commit 51d9b76

4 files changed

Lines changed: 80 additions & 52 deletions

File tree

material/plugins/__init__.py

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,3 @@
1717
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1818
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1919
# IN THE SOFTWARE.
20-
21-
from colorama import Fore, Style
22-
from os import getenv
23-
from sys import stderr
24-
25-
# Silence this warning with NO_MKDOCS_2_WARNING=1
26-
if not getenv("NO_MKDOCS_2_WARNING"):
27-
print(
28-
"\n"
29-
f"{Fore.RED} │ ⚠ Warning from the Material for MkDocs team{Style.RESET_ALL}\n"
30-
f"{Fore.RED}{Style.RESET_ALL}\n"
31-
f"{Fore.RED}{Style.RESET_ALL} MkDocs 2.0, the underlying framework of Material for MkDocs,\n"
32-
f"{Fore.RED}{Style.RESET_ALL} will introduce backward-incompatible changes, including:\n"
33-
f"{Fore.RED}{Style.RESET_ALL}\n"
34-
f"{Fore.RED} │ × {Style.RESET_ALL}All plugins will stop working – the plugin system has been removed\n"
35-
f"{Fore.RED} │ × {Style.RESET_ALL}All theme overrides will break – the theming system has been rewritten\n"
36-
f"{Fore.RED} │ × {Style.RESET_ALL}No migration path exists – existing projects cannot be upgraded\n"
37-
f"{Fore.RED} │ × {Style.RESET_ALL}Closed contribution model – community members can't report bugs\n"
38-
f"{Fore.RED} │ × {Style.RESET_ALL}Currently unlicensed – unsuitable for production use\n"
39-
f"{Fore.RED}{Style.RESET_ALL}\n"
40-
f"{Fore.RED}{Style.RESET_ALL} Our full analysis:\n"
41-
f"{Fore.RED}{Style.RESET_ALL}\n"
42-
f"{Fore.RED}{Style.RESET_ALL} \033[4mhttps://squidfunk.github.io/mkdocs-material/blog/2026/02/18/mkdocs-2.0/{Style.RESET_ALL}\n"
43-
f"{Style.RESET_ALL}",
44-
file=stderr
45-
)

material/templates/__init__.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,43 @@
1717
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1818
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1919
# IN THE SOFTWARE.
20+
21+
import os
22+
import sys
23+
24+
from colorama import Fore, Style
25+
from pathlib import Path
26+
from sys import stderr
27+
28+
# Check if we're running MkDocs. Disable the warning automatically for other
29+
# contexts, e.g., to allow for forks of MkDocs to adjust behavior to fit
30+
def is_mkdocs():
31+
path = Path(sys.argv[0])
32+
return path.name in ("mkdocs", "mkdocs.exe") or (
33+
path.name == "__main__.py" and path.parent.name == "mkdocs"
34+
)
35+
36+
# Check if we're running MkDocs and the warning hasn't been disabled
37+
if is_mkdocs() and not os.getenv("NO_MKDOCS_2_WARNING"):
38+
print(
39+
"\n"
40+
f"{Fore.RED} │ ⚠ Warning from the Material for MkDocs team{Style.RESET_ALL}\n"
41+
f"{Fore.RED}{Style.RESET_ALL}\n"
42+
f"{Fore.RED}{Style.RESET_ALL} MkDocs 2.0, the underlying framework of Material for MkDocs,\n"
43+
f"{Fore.RED}{Style.RESET_ALL} will introduce backward-incompatible changes, including:\n"
44+
f"{Fore.RED}{Style.RESET_ALL}\n"
45+
f"{Fore.RED} │ × {Style.RESET_ALL}All plugins will stop working – the plugin system has been removed\n"
46+
f"{Fore.RED} │ × {Style.RESET_ALL}All theme overrides will break – the theming system has been rewritten\n"
47+
f"{Fore.RED} │ × {Style.RESET_ALL}No migration path exists – existing projects cannot be upgraded\n"
48+
f"{Fore.RED} │ × {Style.RESET_ALL}Closed contribution model – community members can't report bugs\n"
49+
f"{Fore.RED} │ × {Style.RESET_ALL}Currently unlicensed – unsuitable for production use\n"
50+
f"{Fore.RED}{Style.RESET_ALL}\n"
51+
f"{Fore.RED}{Style.RESET_ALL} Our full analysis:\n"
52+
f"{Fore.RED}{Style.RESET_ALL}\n"
53+
f"{Fore.RED}{Style.RESET_ALL} \033[4mhttps://squidfunk.github.io/mkdocs-material/blog/2026/02/18/mkdocs-2.0/{Style.RESET_ALL}\n"
54+
f"{Style.RESET_ALL}",
55+
file=stderr
56+
)
57+
58+
# Disable for subsequent imports
59+
os.environ["NO_MKDOCS_2_WARNING"] = "true"

src/plugins/__init__.py

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,3 @@
1717
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1818
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1919
# IN THE SOFTWARE.
20-
21-
from colorama import Fore, Style
22-
from os import getenv
23-
from sys import stderr
24-
25-
# Silence this warning with NO_MKDOCS_2_WARNING=1
26-
if not getenv("NO_MKDOCS_2_WARNING"):
27-
print(
28-
"\n"
29-
f"{Fore.RED} │ ⚠ Warning from the Material for MkDocs team{Style.RESET_ALL}\n"
30-
f"{Fore.RED}{Style.RESET_ALL}\n"
31-
f"{Fore.RED}{Style.RESET_ALL} MkDocs 2.0, the underlying framework of Material for MkDocs,\n"
32-
f"{Fore.RED}{Style.RESET_ALL} will introduce backward-incompatible changes, including:\n"
33-
f"{Fore.RED}{Style.RESET_ALL}\n"
34-
f"{Fore.RED} │ × {Style.RESET_ALL}All plugins will stop working – the plugin system has been removed\n"
35-
f"{Fore.RED} │ × {Style.RESET_ALL}All theme overrides will break – the theming system has been rewritten\n"
36-
f"{Fore.RED} │ × {Style.RESET_ALL}No migration path exists – existing projects cannot be upgraded\n"
37-
f"{Fore.RED} │ × {Style.RESET_ALL}Closed contribution model – community members can't report bugs\n"
38-
f"{Fore.RED} │ × {Style.RESET_ALL}Currently unlicensed – unsuitable for production use\n"
39-
f"{Fore.RED}{Style.RESET_ALL}\n"
40-
f"{Fore.RED}{Style.RESET_ALL} Our full analysis:\n"
41-
f"{Fore.RED}{Style.RESET_ALL}\n"
42-
f"{Fore.RED}{Style.RESET_ALL} \033[4mhttps://squidfunk.github.io/mkdocs-material/blog/2026/02/18/mkdocs-2.0/{Style.RESET_ALL}\n"
43-
f"{Style.RESET_ALL}",
44-
file=stderr
45-
)

src/templates/__init__.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,43 @@
1717
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1818
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
1919
# IN THE SOFTWARE.
20+
21+
import os
22+
import sys
23+
24+
from colorama import Fore, Style
25+
from pathlib import Path
26+
from sys import stderr
27+
28+
# Check if we're running MkDocs. Disable the warning automatically for other
29+
# contexts, e.g., to allow for forks of MkDocs to adjust behavior to fit
30+
def is_mkdocs():
31+
path = Path(sys.argv[0])
32+
return path.name in ("mkdocs", "mkdocs.exe") or (
33+
path.name == "__main__.py" and path.parent.name == "mkdocs"
34+
)
35+
36+
# Check if we're running MkDocs and the warning hasn't been disabled
37+
if is_mkdocs() and not os.getenv("NO_MKDOCS_2_WARNING"):
38+
print(
39+
"\n"
40+
f"{Fore.RED} │ ⚠ Warning from the Material for MkDocs team{Style.RESET_ALL}\n"
41+
f"{Fore.RED}{Style.RESET_ALL}\n"
42+
f"{Fore.RED}{Style.RESET_ALL} MkDocs 2.0, the underlying framework of Material for MkDocs,\n"
43+
f"{Fore.RED}{Style.RESET_ALL} will introduce backward-incompatible changes, including:\n"
44+
f"{Fore.RED}{Style.RESET_ALL}\n"
45+
f"{Fore.RED} │ × {Style.RESET_ALL}All plugins will stop working – the plugin system has been removed\n"
46+
f"{Fore.RED} │ × {Style.RESET_ALL}All theme overrides will break – the theming system has been rewritten\n"
47+
f"{Fore.RED} │ × {Style.RESET_ALL}No migration path exists – existing projects cannot be upgraded\n"
48+
f"{Fore.RED} │ × {Style.RESET_ALL}Closed contribution model – community members can't report bugs\n"
49+
f"{Fore.RED} │ × {Style.RESET_ALL}Currently unlicensed – unsuitable for production use\n"
50+
f"{Fore.RED}{Style.RESET_ALL}\n"
51+
f"{Fore.RED}{Style.RESET_ALL} Our full analysis:\n"
52+
f"{Fore.RED}{Style.RESET_ALL}\n"
53+
f"{Fore.RED}{Style.RESET_ALL} \033[4mhttps://squidfunk.github.io/mkdocs-material/blog/2026/02/18/mkdocs-2.0/{Style.RESET_ALL}\n"
54+
f"{Style.RESET_ALL}",
55+
file=stderr
56+
)
57+
58+
# Disable for subsequent imports
59+
os.environ["NO_MKDOCS_2_WARNING"] = "true"

0 commit comments

Comments
 (0)