LINUX.ORG.RU

Написал генератор навигации в md-файлах

 ,


0

1

Пример использования:

$ genmdnav ~/Development/arch-instruction/Arch-Instruction.md
$ genmdnav *.md --title "Содержимое"

В файл нужно добавить парные комментарии <!-- nav --><!-- /nav --> в место, где у вас должна появиться навигация.

$ pip install genmdnav

Это весьма специфическая задача, но может кому-нибудь потребоваться.

★★

Последнее исправление: tz4678 (всего исправлений: 3)

Спасибо, полезно, если md написал, а «менюшку» в шапке лень делать

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от tz4678

У меня арч, так что третий

У меня FreeBSD везде, а здесь Python указывается немного иначе (можно установить python2.7, python3.6, но python из них никто не предоставляет, потому приходится либо кормить нужному интерпретатору руками, либо править шебанг), потому и интересуюсь.

А тулза полезная.

mord0d ★★★★★
()

Можно/желательно навигацию выводить отдельно (в stdout или файл), пользователь сам склеит или вставит в конечный документ. При желании флагом указать, что сразу можно склеить/вставить в помеченное место.
И ссылки ввида #название-заголовка для заголовка Название Заголовка - это не стандарт, просто повезло что генератор хтмл так делает.

anonymous
()
Ответ на: комментарий от mord0d

Там тогда f'x={x}' нужно заменить на 'x={}'.format(x)

tz4678 ★★
() автор топика
Ответ на: комментарий от anonymous

markdown используется github и gitlab, они обои так заголовки кофнвертируют в айдишники. Выхлоп gitlab:

<h1 dir="auto">
<a id="user-content-менеджер-версий-для-python-nodejs-ruby" class="anchor" href="#%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9-%D0%B4%D0%BB%D1%8F-python-nodejs-ruby" aria-hidden="true" rel="nofollow noreferrer noopener" target="_blank"></a>Менеджер версий для Python, Node.js, Ruby...</h1>
tz4678 ★★
() автор топика
Ответ на: комментарий от tz4678

markdown используется github и gitlab, они обои так заголовки кофнвертируют в айдишники.

По стандарту markdown не должен генерировать id для заголовков. Эти id неизвестно как будут генерироваться в следующий раз, и будут ли вообще генерироваться. Эти id могут быть неуникальными.

anonymous
()
Ответ на: комментарий от anonymous

Эти id могут быть неуникальными.

Как пример:

# Часть 1
## Глава 1
# Часть 2
## Глава 1

anonymous
()
Ответ на: комментарий от Cirno

там нельзя симлинк поставить?

Можно, но где гарантия, что python в PATH будет именно тот, который нужен? Не хочу возиться с симлинками каждый раз, когда нужно запустить один из тысячи питоноскриптов.

mord0d ★★★★★
()
Ответ на: комментарий от tz4678

Добавил поддержку старых версий Python 3 (до f-строк)

tz4678 ★★
() автор топика
Ответ на: комментарий от mord0d

но python из них никто не предоставляет, потому приходится либо кормить нужному интерпретатору руками,

python - это метапакет, который в зависимости от предпочтений, может быть для 2 или для 3.

% /usr/bin/env python
Python 3.6.8 (default, Apr 15 2019, 12:49:55) 
[GCC 4.2.1 Compatible FreeBSD Clang 7.0.1 (tags/RELEASE_701/final 349250)] on freebsd12
Type "help", "copyright", "credits" or "license" for more information.
>>> 
% pkg info python
python-3.6_3,2
Name           : python
Version        : 3.6_3,2
Installed on   : Mon Apr 15 12:16:18 2019 CEST
Origin         : lang/python
Architecture   : FreeBSD:12:*

Comment        : "meta-port" for the default version of Python interpreter
по умолчанию - 3.6,
если нужен второй:
cd /usr/ports/lang/python
DEFAULT_VERSIONS+=python=2.7 make package install clean
или добавить

DEFAULT_VERSIONS+=python=2.7 в /etc/make.conf и пересобрать

anonymous
()
Ответ на: комментарий от anonymous

уже ничего не надо. он может просто pip3 install genmdnav сделать

tz4678 ★★
() автор топика
Ответ на: комментарий от tz4678

pip

Не, я лучше по-старинке.

Создай репо на gitlab/github, что ли.

Добавил поддержку старых версий Python 3 (до f-строк)

Отлично.

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

Порты? No way! Я их даже ставить не стал после перехода с CURRENT на RELEASE, так как пользоваться не собираюсь. Надоело. Может быть когда-нибудь подниму jail с poudriere.

mord0d ★★★★★
()

$ pip install

Ясно, до свидания.

ox55ff ★★★★★
()
Ответ на: комментарий от tz4678

В описании темы ссылка

Отлично, благодарю.

mord0d ★★★★★
()

Вариант на bash+sed = https://gist.github.com/leo-yuriev/ec5dec19914831d01fe816a26c86e546

Умеет два варианта anchor-ссылок (для github и для gitlab). Для выбора нужного следует раз-комментировать или за-комментировать внутри пару строк.

Пример использования из Makefile:

PHONY: all

all: README.md

README.md: Makefile body.md toc.md
	sed -e '/@TOC@/{r toc.md' -e 'd}' body.md > README.md

toc.md: Makefile body.md toc.sh
	./toc.sh --skip `grep '@TOC@' -nh body.md  | cut -d ':' -f 1` body.md toc.md
Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.