Skip to content

Commit cd1d62c

Browse files
authored
Merge pull request #37 from neatc0der/release/v2.2.1
Release/v2.2.1
2 parents f6bfc8f + 1fc1df8 commit cd1d62c

File tree

7 files changed

+74
-18
lines changed

7 files changed

+74
-18
lines changed

.build/mkdocs_markmap_build/distribution.py

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
import os
22
import sys
33
from typing import List
4+
import requests
45

56
from twine.cli import dispatch
67

7-
from mkdocs_markmap.__meta__ import PROJECT_NAME
8-
from .common import AssetDownloader, GithubHandler
8+
from mkdocs_markmap.__meta__ import PROJECT_NAME, REPOSITORY_URL
9+
from .common import AssetDownloader
10+
11+
12+
MASTODON_URL: str = "https://fosstodon.org"
913

1014

1115
class DistributionHandler(object):
1216
def __init__(self, tag: str) -> None:
13-
self._collector = AssetDownloader(tag)
17+
self._collector: AssetDownloader = AssetDownloader(tag)
1418

1519
def distribute(self, dry_run: bool = True):
1620
assets: List[str] = self._collector.get_assets_from_release()
@@ -27,3 +31,21 @@ def distribute(self, dry_run: bool = True):
2731

2832
else:
2933
dispatch(['upload', *assets])
34+
35+
36+
class MastodonHandler(object):
37+
def __init__(self, tag: str) -> None:
38+
self.tag = tag
39+
self._url: str = f"{REPOSITORY_URL}/releases/{tag}"
40+
41+
def post(self):
42+
auth_token: str = os.environ.get('MASTODON_TOKEN')
43+
if auth_token is None:
44+
print('environment variable "MASTODON_TOKEN" is not set')
45+
sys.exit(1)
46+
47+
response: requests.Response = requests.post(f"{MASTODON_URL}/api/v1/statuses", data={
48+
"status": f"🆕 {PROJECT_NAME} {self.tag}\n{self._url}",
49+
}, headers={"Authorization": f"Bearer {auth_token}"})
50+
if not response.ok:
51+
print(f"unable to post status on mastodon: {response.text} ({response.status_code})")

README.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,18 +88,33 @@ extra_javascript:
8888
8989
:warning: The urls need to contain one of these keywords to be considered as deviation from default:
9090
91-
* `d3`
91+
* `markmap-d3`
9292
* `markmap-lib`
9393
* `markmap-view`
9494
95-
9695
## Troubleshooting
9796
9897
### Nav tree lists markmaps
9998
10099
1. Move your markmap files to a separate folder next to `docs`, e.g. `mindmaps`
101100
2. Configure `base_path` accordingly (see [Advanced Settings](#advanced-settings))
102101
102+
### Static javascript files not working
103+
104+
1. Ensure naming of javascript files matches the scheme (see [Advanced Settings](#advanced-settings))
105+
2. Copy all javascript files to `doc/js/`, otherwise `mkdocs` will not copy static files to `site/`
106+
3. Define all files in `extra_javascript`, e.g.
107+
108+
```yaml
109+
extra_javascript:
110+
- js/markmap-d3.js
111+
- js/markmap-lib.js
112+
- js/markmap-view.js
113+
```
114+
115+
### Usage of proxy is prevent download of javascript files
116+
117+
Usually proxies should be supported by `requests`, which is used for downloading all required javascript files. If the issue remains, try downloading the files yourself and store them accordingly (see [Static javascript files not working](#static-javascript-files-not-working))
103118
104119
## Credits :clap:
105120

changelog/v2.2.1.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# v2.2.1
2+
3+
* Fixes [static javascript files bug](https://github.com/neatc0der/mkdocs-markmap/issues/35)

mkdocs_markmap/__meta__.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
PACKAGE_NAME = 'mkdocs_markmap'
2-
PROJECT_NAME = PACKAGE_NAME.replace('_', '-')
3-
PROJECT_VERSION = '2.2.0'
1+
PACKAGE_NAME: str = 'mkdocs_markmap'
2+
PROJECT_NAME: str = PACKAGE_NAME.replace('_', '-')
3+
PROJECT_VERSION: str = '2.2.1'
44

5-
OWNER = 'neatc0der'
6-
REPOSITORY_NAME = f'{OWNER}/{PROJECT_NAME}'
5+
OWNER: str = 'neatc0der'
6+
REPOSITORY_NAME: str = f'{OWNER}/{PROJECT_NAME}'
7+
REPOSITORY_URL: str = f'https://github.com/{REPOSITORY_NAME}'

mkdocs_markmap/plugin.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from bs4 import BeautifulSoup, ResultSet, Tag
88
from mkdocs.plugins import BasePlugin
99
from mkdocs.structure.pages import Page
10-
from mkdocs.config.base import Config
10+
from mkdocs.config.base import Config, load_config
1111
from mkdocs.config.config_options import Type as PluginType
1212

1313
from .defaults import MARKMAP
@@ -21,6 +21,7 @@
2121
STYLE_PATH: Path = STATICS_PATH / 'mkdocs-markmap.css'
2222
SCRIPT_PATH: Path = STATICS_PATH / 'mkdocs-markmap.js'
2323

24+
2425
class MarkmapPlugin(BasePlugin):
2526
"""
2627
Plugin for markmap support
@@ -59,10 +60,15 @@ def markmap(self) -> Dict[str, str]:
5960

6061
def _load_scripts(self, soup: BeautifulSoup, script_base_url: str, js_path: Path) -> None:
6162
for script_url in self.markmap.values():
62-
try:
63-
src: str = script_base_url + download(js_path, script_url)
64-
except Exception as e:
65-
log.error(f'unable to download script: {script_url}')
63+
if script_url.lower().startswith("http"):
64+
try:
65+
src: str = script_base_url + download(js_path, script_url)
66+
except Exception as e:
67+
log.error(f'unable to download script: {script_url}')
68+
src = script_url
69+
70+
else:
71+
log.info(f"static script detected: {script_url}")
6672
src = script_url
6773

6874
script: Tag = soup.new_tag('script', src=src, type='text/javascript')
@@ -88,6 +94,7 @@ def on_config(self, config: Config) -> Config:
8894
for key, value in config['plugins'].get('markmap').config.items()
8995
if key in MarkmapExtension.config_defaults
9096
}
97+
self.config['extra_javascript'] = config.get('extra_javascript', [])
9198

9299
return config
93100

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from setuptools import setup, find_packages
33
from typing import List
44

5-
from mkdocs_markmap.__meta__ import PROJECT_NAME, PROJECT_VERSION, REPOSITORY_NAME
5+
from mkdocs_markmap.__meta__ import PROJECT_NAME, PROJECT_VERSION, REPOSITORY_URL
66

77

88
def readme() -> str:
@@ -30,7 +30,7 @@ def get_requirements(filename: str, base_dir: str = 'requirements') -> List[str]
3030
long_description=readme(),
3131
long_description_content_type='text/markdown',
3232
keywords='mkdocs python markdown markmap mindmap include',
33-
url=f'https://github.com/{REPOSITORY_NAME}',
33+
url=REPOSITORY_URL,
3434
author='neatc0der',
3535
author_email='',
3636
license='MIT',

tasks.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
sys.path.insert(0, str(PROJECT_PATH / '.build'))
99

1010
from mkdocs_markmap.__meta__ import PROJECT_VERSION
11-
from mkdocs_markmap_build.distribution import DistributionHandler
11+
from mkdocs_markmap_build.distribution import DistributionHandler, MastodonHandler
1212
from mkdocs_markmap_build.info import ReleaseInfo
1313
from mkdocs_markmap_build.release import ReleaseHandler
1414

@@ -64,6 +64,14 @@ def info(c, tag=None, github=False, pypi=False):
6464

6565

6666
@task
67+
def mastodon(c, tag=TARGET_TAG):
68+
print(f'post status: {tag}')
69+
70+
handler: MastodonHandler = MastodonHandler(tag)
71+
handler.post()
72+
73+
74+
@task(post=[mastodon])
6775
def distribute(c, tag=TARGET_TAG, dry_run=True):
6876
print(f'distribute release: {tag}')
6977

0 commit comments

Comments
 (0)