2

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

Обычный способ установки PRIMATE vimwiki на Dropbox - просто позволить вашим каталогам vimwiki находиться в папке Dropbox (но не в Dropbox/Public/, потому что это будет PUBLIC). Dropbox позволяет напрямую просматривать html с помощью dropbox.com/*** url: например, 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, чтобы исправить hrefs в преобразованных htmls таким образом.

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

1 ответ1

2

Просто найдите "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', чтобы выполнить замену.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .