Publish.jl Literate Source Code

This package can use Julia source files as a content source, similar to normal markdown files. It uses the same syntax to mark source lines as either markdown content or codeblocks. You can read about the details of literate Julia files here.

Literate Programming

These source file only make use of literate features as a test case for the package. They should not be thought of as a showcase for literate programming itself.

module Publish

Exports

export html, html_doc, pdf, serve, deploy, setup

Imports

import Base64
import CommonMark
import DataStructures
import IOCapture
import IterTools
import JSON
import LiveServer
import Mustache
import Pkg
import Pkg.TOML
import PrettyTables
import Requires
import Tectonic

using FilePathsBase
using FileTrees
using Logging

Configuration

const DAGGER = Ref(false)
const LAZY = Ref(true)

Includes

include("projects.jl")
include("themes.jl")
include("load.jl")
include("cells.jl")
include("save.jl")
include("serve.jl")
include("deploy.jl")
include("tools.jl")
include("utilities.jl")
include("Experimental.jl")

Package Initialisation

Revise.jl is an optional dependency, we use Requires.jl to define a revise method when it is available that triggers Revise.revise.

function __init__()
    Requires.@require Revise="295af30f-e4ad-537b-8983-00126c2a3abe" begin
        revise(::Project) = Revise.revise()
    end
end

end # module