Skip to content

Commit

Permalink
[docs] Various manpage fixes
Browse files Browse the repository at this point in the history
Authored by: leoheitmannruiz
  • Loading branch information
leoheitmannruiz authored and Grub4K committed Apr 8, 2024
1 parent 2e94602 commit df0e138
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
2 changes: 2 additions & 0 deletions README.md
Expand Up @@ -158,6 +158,7 @@ When using `--update`/`-U`, a release binary will only update to its current cha
You may also use `--update-to <repository>` (`<owner>/<repository>`) to update to a channel on a completely different repository. Be careful with what repository you are updating to though, there is no verification done for binaries from different repositories.

Example usage:

* `yt-dlp --update-to master` switch to the `master` channel and update to its latest release
* `yt-dlp --update-to stable@2023.07.06` upgrade/downgrade to release to `stable` channel tag `2023.07.06`
* `yt-dlp --update-to 2023.10.07` upgrade/downgrade to tag `2023.10.07` if it exists on the current channel
Expand Down Expand Up @@ -1892,6 +1893,7 @@ Plugins can be installed using various methods and locations.


`.zip`, `.egg` and `.whl` archives containing a `yt_dlp_plugins` namespace folder in their root are also supported as plugin packages.

* e.g. `${XDG_CONFIG_HOME}/yt-dlp/plugins/mypluginpkg.zip` where `mypluginpkg.zip` contains `yt_dlp_plugins/<type>/myplugin.py`

Run yt-dlp with `--verbose` to check if the plugin has been loaded.
Expand Down
27 changes: 25 additions & 2 deletions devscripts/prepare_manpage.py
Expand Up @@ -43,6 +43,27 @@ def filter_excluded_sections(readme):
'', readme)


def _convert_code_blocks(readme):
current_code_block = None

for line in readme.splitlines(True):
if current_code_block:
if line == current_code_block:
current_code_block = None
yield '\n'
else:
yield f' {line}'
elif line.startswith('```'):
current_code_block = line.count('`') * '`' + '\n'
yield '\n'
else:
yield line


def convert_code_blocks(readme):
return ''.join(_convert_code_blocks(readme))


def move_sections(readme):
MOVE_TAG_TEMPLATE = '<!-- MANPAGE: MOVE "%s" SECTION HERE -->'
sections = re.findall(r'(?m)^%s$' % (
Expand All @@ -65,8 +86,10 @@ def move_sections(readme):

def filter_options(readme):
section = re.search(r'(?sm)^# USAGE AND OPTIONS\n.+?(?=^# )', readme).group(0)
section_new = section.replace('*', R'\*')

options = '# OPTIONS\n'
for line in section.split('\n')[1:]:
for line in section_new.split('\n')[1:]:
mobj = re.fullmatch(r'''(?x)
\s{4}(?P<opt>-(?:,\s|[^\s])+)
(?:\s(?P<meta>(?:[^\s]|\s(?!\s))+))?
Expand All @@ -86,7 +109,7 @@ def filter_options(readme):
return readme.replace(section, options, 1)


TRANSFORM = compose_functions(filter_excluded_sections, move_sections, filter_options)
TRANSFORM = compose_functions(filter_excluded_sections, convert_code_blocks, move_sections, filter_options)


def main():
Expand Down

0 comments on commit df0e138

Please sign in to comment.