Укажите ссылки на скачивание файлов в результатах блокнота iJulia.

Я хотел бы создать файл данных, который загружается пользователем, либо автоматически, либо по гиперссылке.

Например, есть ли эквивалент этого подхода iPython для iJulia?

3 ответа

Я перевела с оригинала FileLink определение к джулии:

type FileLink
    file_path::ByteString
end
type FileLinks
    links::Vector{FileLink}
end
FileLinks(paths::Vector{ByteString}) = FileLinks(map(FileLink,paths))

function Base.writemime(st::IO, ty::MIME"text/html", fl::FileLink)
    write(st, "<a href=$(fl.file_path) target='_blank'>$(fl.file_path)</a>")
end

function Base.writemime(st::IO, ty::MIME"text/html", file_links::FileLinks)
    for fl in file_links.links
        Base.writemime(st, ty, fl)
        write(st,"<br>")
    end
end

FileLinks(readdir("."))

Работает на локальном сервере IJulia/IPython/Jupyter, но у вас могут быть проблемы с удаленными серверами (например, Sage).

Если я правильно понимаю ваш вопрос, вы хотите автоматически сгенерировать ссылку в Jupyter Notebook, чтобы люди могли ее скачать? Если это так, я делаю это в Vega.jl (чтобы люди могли загружать PNG-файлы графиков) с помощью следующего:

              window.setTimeout(function() {
                var pnglink = document.getElementById(\"$divid\").getElementsByTagName(\"canvas\")[0].toDataURL(\"image/png\")
                document.getElementById(\"$divid\").insertAdjacentHTML('beforeend', '<br><a href=\"' + pnglink + '\" download>Save as PNG</a>')
              }, 20);

https://github.com/johnmyleswhite/Vega.jl/blob/master/src/render.jl#L65-L69

По сути, этот код находит div, в котором находится вывод (который известен во время выполнения кода Джулии, до того, как вывод будет обработан), а затем автоматически генерирует ссылку HTML с представлением base64 PNG. В зависимости от вашего контента, это, очевидно, может отличаться (так как .toDataURL метод должен иметь ваш тип файла в методе).

Использование NBViewer для обслуживания ноутбуков Jupyter статически работает и с IJulia.

Как показано на его домашней странице:

введите описание изображения здесь

В этом примере я даю NBViewer ссылку на одну из моих записных книжек IJulia, которая размещена в Gist, обратите внимание, что GitHub / Gist теперь также отображает блокноты Jupyter:

Другие вопросы по тегам