Delete old docs, update build

This commit is contained in:
Chris de Graaf 2019-08-31 17:49:20 +07:00
parent 5adde3ad7c
commit e7a51c909a
No known key found for this signature in database
GPG Key ID: 150FFDD9B0073C7B
9 changed files with 16 additions and 251 deletions

View File

@ -1,10 +1,10 @@
using {{PKG}}
using Documenter
makedocs(
makedocs(;
modules=[{{PKG}}],
authors="{{AUTHORS}}",
repo="{{REPO}}",
repo="https://{{REPO}}/blob/{commit}{path}#L{line}",
sitename="{{PKG}}.jl",
format=Documenter.HTML(;
canonical="{{CANONICAL}}",

View File

@ -1,20 +1,18 @@
using Documenter, PkgTemplates
using Documenter
using PkgTemplates
makedocs(;
modules=[PkgTemplates],
format=Documenter.HTML(),
pages=[
"Home" => "index.md",
"Package Generation" => "pages/package_generation.md",
"Plugins" => "pages/plugins.md",
"Plugin Development" => "pages/plugin_development.md",
"Licenses" => "pages/licenses.md",
"Index" => "pages/index.md",
],
authors="Chris de Graaf, Invenia Technical Computing Corporation",
repo="https://github.com/invenia/PkgTemplates.jl/blob/{commit}{path}#L{line}",
sitename="PkgTemplates.jl",
authors="Chris de Graaf, Invenia Technical Computing Corporation",
assets=[],
format=Documenter.HTML(;
canonical="https://invenia.github.io/PkgTemplates.jl",
assets=String[],
),
pages=[
"Home" => "index.md",
],
)
deploydocs(;

View File

@ -1,105 +1,8 @@
# PkgTemplates
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://invenia.github.io/PkgTemplates.jl/stable)
[![Latest](https://img.shields.io/badge/docs-latest-blue.svg)](https://invenia.github.io/PkgTemplates.jl/latest)
[![Build Status](https://travis-ci.org/invenia/PkgTemplates.jl.svg?branch=master)](https://travis-ci.org/invenia/PkgTemplates.jl)
[![Build Status](https://ci.appveyor.com/api/projects/status/r24xamruqlm88uti/branch/master?svg=true)](https://ci.appveyor.com/project/christopher-dG/pkgtemplates-jl/branch/master)
[![Codecov](https://codecov.io/gh/invenia/PkgTemplates.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/invenia/PkgTemplates.jl)
**PkgTemplates is a Julia package for creating new Julia packages in an easy,
repeatable, and customizable way.**
## Installation
```julia
pkg> add PkgTemplates
```@index
```
## Plugins
`PkgTemplates` is based on plugins which handle the setup of individual package components.
The available plugins are:
* Continuous Integration (CI)
* [Travis CI](https://travis-ci.com) (Linux, MacOS)
* [AppVeyor](https://appveyor.com) (Windows)
* [GitLabCI](https://gitlab.com) (Linux)
* [CirrusCI](https://cirrus-ci.org) (FreeBSD)
* Code Coverage
* [Codecov](https://codecov.io)
* [Coveralls](https://coveralls.io)
* Documentation
* [GitHubPages](https://pages.github.com)
* Citation
## Usage
```@setup usage
using LibGit2: getconfig
isempty(getconfig("user.name", "")) && run(`git config --global user.name "Travis"`)
isempty(getconfig("user.email", "")) && run(`git config --global user.email "travis@c.i"`)
isempty(getconfig("github.user", "")) && run(`git config --global github.user "travis"`)
using Pkg
Pkg.activate(mktempdir())
# This code gets run in docs/build/, so this path evaluates to the repo root.
Pkg.add(PackageSpec(path=dirname(dirname(pwd()))))
```@autodocs
Modules = [PkgTemplates]
```
Assuming you have the relatively standard Git options `user.name`, `user.email` and `github.user` set up globally with `git config --global`, the simplest template requires no arguments:
```@repl usage
using PkgTemplates
t = Template()
generate("MyPkg", t)
run(`git -C $(joinpath(t.dir, "MyPkg")) ls-files`);
```
However, we can also configure a number of keyword arguments to
[`Template`](@ref):
```@repl usage
using PkgTemplates
t = Template(;
user="myusername",
license="MIT",
authors=["Chris de Graaf", "Invenia Technical Computing Corporation"],
dir="~/code",
julia_version=v"0.7",
ssh=true,
plugins=[
TravisCI(),
Codecov(),
Coveralls(),
AppVeyor(),
Documenter{TravisCI}(),
],
)
generate("MyPkg2", t)
run(`git -C $(joinpath(t.dir, "MyPkg2")) ls-files`);
```
If that looks like a lot of work, you can also create templates interactively
with [`interactive_template`](@ref):
[![asciicast](https://asciinema.org/a/31bZqW9u8h5RHpd7gtsemioRV.png)](https://asciinema.org/a/31bZqW9u8h5RHpd7gtsemioRV)
And if that's **still** too much work for you, you can call
`interactive_template` with `fast=true` to use default values for everything
but username and plugin selection.
You can also use [`generate_interactive`](@ref) to interactively generate a template and then
immediately use it to create a new package.
## Comparison to PkgDev
`PkgTemplates` is similar in functionality to
[`PkgDev`](https://github.com/JuliaLang/PkgDev.jl)'s `generate` function. However,
`PkgTemplates` offers more customizability in templates and more extensibility via plugins.
For the package registration and release management features that `PkgTemplates` doesn't
include, you are encouraged to use [AttoBot](https://github.com/apps/attobot) instead.
## Contributing
It's extremely easy to extend `PkgTemplates` with new plugins. To get started,
check out [Plugin Development](@ref).

View File

@ -1,4 +0,0 @@
# Index
```@index
```

View File

@ -1,14 +0,0 @@
```@meta
CurrentModule = PkgTemplates
```
# Licenses
[Many open-source licenses](https://github.com/invenia/PkgTemplates.jl/tree/master/licenses)
are available for use with `PkgTemplates`, but if you see that one is missing, don't
hesitate to open an issue or PR.
```@docs
available_licenses
show_license
```

View File

@ -1,15 +0,0 @@
```@meta
CurrentModule = PkgTemplates
```
# Package Generation
Creating new packages with `PkgTemplates` revolves around creating a new
[`Template`](@ref), then calling [`generate`](@ref) on it.
```@docs
Template
interactive_template
generate
generate_interactive
```

View File

@ -1,72 +0,0 @@
```@meta
CurrentModule = PkgTemplates
```
# Plugin Development
The best and easiest way to contribute to `PkgTemplates` is to write new plugins.
```@docs
Plugin
```
## "Generic" Plugins
Many plugins fall into the category of managing some configuration file.
Think Travis CI's `.travis.yml`, and so on for every CI service ever.
For these one-file plugins, a shortcut macro is available to define a plugin in one line.
```@docs
GeneratedPlugin
@plugin
```
### `GeneratedPlugin` Customization
When you generate a plugin type with [`@plugin`](@ref), all required methods are
implemented for you. However, you're still allowed to override behaviour if you so desire.
These are the relevant methods:
```@docs
source
destination
gitignore
badges
view
```
For some examples, see
[`generated.jl`](https://github.com/invenia/PkgTemplates.jl/tree/master/src/plugins/generated.jl).
## Custom Plugins
When a plugin is too complicated to be expressed with [`GeneratedPlugin`](@ref), we only
need to implement a few methods to create something fully custom.
### Required Methods
```@docs
gen_plugin
```
### Optional Methods
```@docs
interactive
```
Additionally, [`gitignore`](@ref), [`badges`](@ref), and [`view`](@ref) can also be
implemented in the same way as for [`GeneratedPlugin`](@ref)s (they have empty default
implementations). [`source`](@ref) and [`destination`](@ref) have no meaning for custom
plugins.
### Helpers
These types and functions will make implementing the above methods much easier.
```@docs
Badge
gen_file
substitute
version_floor
```

View File

@ -1,31 +0,0 @@
```@meta
CurrentModule = PkgTemplates
```
# Plugins
Plugins are the secret sauce behind `PkgTemplates`'s customization and extension. This page
describes plugins that already exist; for information on writing your own plugins, see
[Plugin Development](@ref).
## Continuous Integration (CI)
```@docs
TravisCI
AppVeyor
GitLabCI
CirrusCI
```
## Code Coverage
```@docs
Codecov
Coveralls
```
## Documentation
```@docs
Documenter
```

View File

@ -73,7 +73,7 @@ view(p::Documenter, t::Template, pkg::AbstractString) = Dict(
"HAS_ASSETS" => !isempty(p.assets),
"MAKEDOCS_KWARGS" => map((k, v) -> k => repr(v), collect(p.makedocs_kwargs)),
"PKG" => pkg,
"REPO" => "https://$(t.host)/$(t.user)/$pkg.jl",
"REPO" => "$(t.host)/$(t.user)/$pkg.jl",
"USER" => t.user,
)