Publishex v1.1.0 Publishex View Source

Publish a directory of static files to a static file hoster such as Netlify or S3.

E.g. if you generate your ex_doc documentation for a private repository you can publish this to a Netlify site. See for example [https://naughty-austin-122b2d.netlify.com/]

Installation

If available in Hex, the package can be installed by adding publishex to your list of dependencies in mix.exs:

def deps do
  [
    {:publishex, "~> 1.0.1"}
  ]
end

Usage

You can publish any directory but it defaults to doc. To publish your ex_doc documentation to Netlify or S3 you can do the following.

Netlify

# Generate the docs
mix docs

# Publish to netlify (defaults to `doc` directory)
mix publishex.netlify --token personal_access_token --site-id dazzling-tesla-122b2d.netlify.com

# Set custom directory
mix publishex.netlify --directory "some_dir" --token personal_access_token --site-id dazzling-tesla-122b2d.netlify.com

The personal access token can be created in the Netlify dashboard [https://app.netlify.com/user/applications#personal-access-tokens]

S3

# Generate the docs
mix docs

# Publish to netlify (defaults to `doc` directory)
mix publishex.s3 --bucket bucket_name --region us-west-1 --access_key_id access_key_id --secret_access_key secret_access_key --acl public_read

Setting the ACL is explicit to prevent accidental public files.

See [https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html] on how to create a static site on S3

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/publishex.

Link to this section Summary

Functions

Publish directory to static host.

Link to this section Functions

Link to this function

publish(directory, opts)

View Source

Publish directory to static host.

Publishex.publish("doc",
  adapter: Publishex.Adapter.Netlify,
  adapter_opts: [token: token, site_id: site_id]
)