Как создать ЧАСТНУЮ vimwiki на Dropbox.com

Как создать ЧАСТНУЮ vimwiki на Dropbox.com

Я предполагаю, что те, кто читает эту страницу, знают, что такое vimwiki и dropbox.com и для чего они нужны, поэтому я могу сразу же выразить свое недоумение.

Обычный способ установки ЧАСТНОГО vimwiki в Dropbox — просто позволить вашим каталогам vimwiki находиться в папке Dropbox (но не Dropbox/Public/, потому что это будет ПУБЛИЧНО). Dropbox позволяет напрямую просматривать html с помощью url dropbox.com/***: например, к a index.htmlможно получить доступ по url https://dl-web.dropbox.com/get/Wiki/html/index.html?w=bfead71a, добавив после имени файла указанную строку ?w=bfead71a.

Следовательно, если внутри index.html есть ссылка на A.html, которая находится в той же папке, что и index.html, к ней нужно обращаться с помощью некоторого URL, например https://dl-web.dropbox.com/get/Wiki/html/index.html?w=SPECIFIED_STRING. Но, похоже, невозможно взломать vimwiki, чтобы исправить href в преобразованных html-файлах таким образом.

Есть ли какой-то подход, который может решить эту проблему?

решение1

Просто найдите «href» в «.vim/autoload/vimwiki_html.vim» и добавьте указанную строку там, где это необходимо.

Например, измените это:

  let link = '<a href="'.vimwiki#safe_link(a:src).
        \ '.html">'.a:caption.'</a>'

к этому:

  let link = '<a href="'.vimwiki#safe_link(a:src).
        \ '.html?w=SPECIFIED_STRING">'.a:caption.'</a>'

Конечно, чтобы сделать это менее запутанным и разрешить публикацию для разных целей, вы захотите сделать это условным и настраиваемым ;-)

Одним из подходов к тому, чтобы сделать его настраиваемым, было бы введение новой глобальной переменной, например g:vimwiki_internal_link. Сделайте это шаблоном, в который будет вставлено вики-имя:

let g:vimwiki_internal_link=textbefore__textafter

По умолчанию значение будет __.html, и вы можете изменить его на __.html?w=SPECIFIED_STRING. Затем вам придется добавить код в '.vim/autoload/vimwiki_html.vim', чтобы выполнить замену.

Связанный контент