Update docs

Let's try this kind of approach where JuliaFEM.jl documentation
is collected from other packages. May work or then not.
This commit is contained in:
Jukka Aho
2018-02-07 13:12:50 +02:00
parent e0a6e431d1
commit d2d860ccf9
+99 -5
View File
@@ -3,6 +3,59 @@
using Documenter, JuliaFEM
"""
copy_docs(pkg_name)
Copy documentation of some package `pkg_name` to `docs/src/pkg_name`,
where `pkg_name` is the name of package. Return true if success, false
otherwise.
"""
function copy_docs(pkg_name)
src = joinpath(Pkg.dir(pkg_name), "docs", "src")
if !isdir(src)
warn("Cannot copy documentation of package $pkg_name from $src: ",
"No such directory exists. (Is the package in REQUIRE of JuliaFEM?)")
return false
end
dst = joinpath(Pkg.dir("JuliaFEM"), "docs", "src", pkg_name)
cp(src, dst; remove_destination=true)
info("Copied documentation of package $pkg_name from $src succesfully.")
return true
end
"""
add_page!(part, page)
Add new page to documentation. Part can be USER_GUIDE, DEVELOPER_GUIDE or
PACKAGES. `page` is a string containing path to the page, or `Pair`
where key is the name of the page and value is the path to the page.
# Examples
If page starts with `#`, i.e. having title, page is automatically included
to documentation with that name:
```julia
add_page!(PACKAGES, "MyPackage/index.md")
```
Title can be changed using `Pair`, i.e.
```julia
add_page!(PACKAGES, "Theory" => "MyPackage/theory.md")
```
"""
function add_page!(dst, src)
file = isa(src, Pair) ? src.second : src
if !isfile(joinpath(Pkg.dir("JuliaFEM"), "docs", "src", file))
warn("Cannot add page $file: no such file")
return false
end
push!(dst, src)
return true
end
#=
if haskey(ENV, "TRAVIS")
println("inside TRAVIS, installing PyPlot + matplotlib")
@@ -11,11 +64,52 @@ if haskey(ENV, "TRAVIS")
end
=#
USER_GUIDE = []
# Developer's guide is published in FEMBase.jl
DEVELOPER_GUIDE = []
if copy_docs("FEMBase")
add_page!(DEVELOPER_GUIDE, "FEMBase/mesh.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/fields.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/basis.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/integration.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/elements.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/problems.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/solvers.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/postprocessing.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/results.md")
add_page!(DEVELOPER_GUIDE, "FEMBase/materials.md")
end
# Let's construct here some description for packages
PACKAGES = []
if copy_docs("FEMQuad")
add_page!(PACKAGES, "FEMQuad/index.md")
end
if copy_docs("FEMBasis")
add_page!(PACKAGES, "FEMBasis/index.md")
end
if copy_docs("HeatTransfer")
add_page!(PACKAGES, "HeatTransfer/index.md")
end
# API documentation
LIBRARY = ["api.md"]
# Collect all together
PAGES = []
push!(PAGES, "Home" => "index.md")
#push!(PAGES, "User's guide" => USER_GUIDE)
push!(PAGES, "Developer's guide" => DEVELOPER_GUIDE)
push!(PAGES, "Description of packages" => PACKAGES)
#push!("API documentation" => LIBRARY)
makedocs(modules=[JuliaFEM],
format = :html,
checkdocs = :all,
sitename = "JuliaFEM",
pages = [
"Introduction" => "index.md",
"Examples" => "examples.md",
"API" => "api.md"
])
analytics = "UA-83590644-1",
pages = PAGES)