|
7 | 7 | from .templatetags import DEFAULT_VERSION
|
8 | 8 | from .templatetags import MERMAID_CDN
|
9 | 9 |
|
| 10 | +def download_if_necessary(version): |
| 11 | + """Download mermaid.js from CDN if not already present""" |
| 12 | + cdn = "https://cdnjs.cloudflare.com/ajax/libs/mermaid/%s/mermaid.min.js" % version |
| 13 | + current_dir = pathlib.Path(__file__).parent |
| 14 | + static_dir = current_dir / "static" |
| 15 | + mermaid_dir = static_dir / "mermaid" / version |
| 16 | + mermaid_js = mermaid_dir / "mermaid.js" |
| 17 | + if not mermaid_js.exists() or \ |
| 18 | + mermaid_js.stat().st_size == 0: |
| 19 | + mermaid_dir.mkdir(parents=True, exist_ok=True) |
| 20 | + urlretrieve(MERMAID_CDN % version, str(mermaid_js)) |
| 21 | + |
10 | 22 |
|
11 | 23 | class MermaidConfig(AppConfig):
|
12 | 24 | name = "django_mermaid"
|
13 | 25 |
|
14 | 26 | def ready(self):
|
15 |
| - """Download mermaid.js from CDN if not already present""" |
16 |
| - version = getattr(settings, "MERMAID_VERSION", DEFAULT_VERSION) |
17 |
| - current_dir = pathlib.Path(__file__).parent |
18 |
| - static_dir = current_dir / "static" |
19 |
| - mermaid_dir = static_dir / "mermaid" / version |
20 |
| - mermaid_js = mermaid_dir / "mermaid.js" |
21 |
| - if not mermaid_js.exists() or \ |
22 |
| - mermaid_js.stat().st_size == 0: |
23 |
| - mermaid_dir.mkdir(parents=True, exist_ok=True) |
24 |
| - urlretrieve(MERMAID_CDN % version, str(mermaid_js)) |
| 27 | + if not getattr(settings, "MERMAID_USE_CDN", False): |
| 28 | + version = getattr(settings, "MERMAID_VERSION", DEFAULT_VERSION) |
| 29 | + download_if_necessary(version) |
| 30 | + |
0 commit comments