Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maartenvanvliet/publishex
Publish a directory of static files to a static file hoster such as Netlify.
https://github.com/maartenvanvliet/publishex
Last synced: 28 days ago
JSON representation
Publish a directory of static files to a static file hoster such as Netlify.
- Host: GitHub
- URL: https://github.com/maartenvanvliet/publishex
- Owner: maartenvanvliet
- License: mit
- Created: 2019-08-17T16:31:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-13T04:57:41.000Z (almost 2 years ago)
- Last Synced: 2024-09-06T09:55:25.359Z (4 months ago)
- Language: Elixir
- Homepage: https://hex.pm/packages/publishex
- Size: 111 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Publishex
[![Hex pm](http://img.shields.io/hexpm/v/publishex.svg?style=flat)](https://hex.pm/packages/publishex) [![Hex Docs](https://img.shields.io/badge/hex-docs-9768d1.svg)](https://hexdocs.pm/publishex) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
-----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](https://hex.pm/docs/publish), the package can be installed
by adding `publishex` to your list of dependencies in `mix.exs`:```elixir
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 S3 (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](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/publishex](https://hexdocs.pm/publishex).