asciidoctor / asciidoctor.org

:globe_with_meridians: Asciidoctor project site. Composed in AsciiDoc. Baked with Awestruct.
https://asciidoctor.org
Other
322 stars 807 forks source link

= Asciidoctor Project Site // Settings: ifdef::env-github[] :badges: endif::[] ifndef::env-github[:icons: font] ifdef::env-github[] :important-caption: :exclamation: endif::[] // URIs: :uri-letsencrypt: https://letsencrypt.org :uri-letsencrypt-article: https://fedoramagazine.org/letsencrypt-now-available-fedora/ :uri-netlify: https://www.netlify.com :uri-netlify-deploys: https://app.netlify.com/sites/asciidoctor/deploys

IMPORTANT: Are you looking for the Asciidoctor documentation or AsciiDoc Language documentation? They've moved! You can view the published documentation at https://docs.asciidoctor.org. To submit an issue or pull request to the Asciidoctor or AsciiDoc documentation, see the https://github.com/asciidoctor/asciidoctor[Asciidoctor repository] or https://github.com/asciidoctor/asciidoc-docs[AsciiDoc Language repository], respectively.

This is the project site for the https://asciidoctor.org[Asciidoctor project]. The site is composed in AsciiDoc, styled by https://github.com/foundation/foundation-sites/tree/v4.3.2[Foundation 4], baked with Awestruct, and hosted on {uri-netlify}[Netlify].

For instructions on how to install Awestruct and its dependencies, refer to the <> section below.

== Preview the site locally

To preview the site locally, simply run the default rake build task:

$ rake

The default rake build task is preview, so you're effectively typing:

$ rake preview

The preview task is just a short way of invoking Awestruct in development mode directly:

$ awestruct -d

Now visit http://localhost:4242 to preview the site.

To rebuild the site from a clean state, pass the --force flag to the preview task:

$ rake preview[--force]

You can pass any flag through to Awestruct using the syntax in the previous command.

If you just want to generate the site, run:

$ rake gen

//// === Set the JavaScript runtime

If you're building the site on Linux and Awestruct fails to locate a JavaScript runtime, you can either:

. install a node.js package or . set the following environment variable in your shell profile scripts (e.g., ~/.bash_profile):

$ export EXECJS_RUNTIME=SpiderMonkey ////

== Add and commit files

Add new files (such as a new blog entry or image):

$ git add news/news-slug.adoc

or all new files present in a directory (it only affects new files, skips files already committed)

$ git add news/

Commit all files marked to be committed, including new files that were just added:

$ git commit -m 'your message here'

Commit all files that have changed, even if not marked to be committed:

$ git commit -a -m 'your message here'

Make sure there are no files that are "untracked" or "modified":

$ git status

You should see:

[.output] .... nothing to commit (working directory clean) ....

Now you are ready to deploy.

//// == Deploy the site to GitHub Pages

The following commands will push changes (git push), clean build the site (--force -g) using the production profile (-P production), then deploy it to github pages (--deploy):

$ git push && awestruct -P production --force -g --deploy

Or simply run the prepared rake build task (to deploy locally):

$ rake deploy

Or just push and let {uri-netlify-deploys}[Netlify] do the work of deploying the site:

$ rake push

If you want to push without triggering a publish, add the following to the commit message:

.... [ci skip] .... ////

== Install Awestruct

First, install https://rvm.io[RVM]. Trust me on this.

$ curl -#L https://get.rvm.io | bash -s stable --ruby

Next, setup an RVM gemset for working with the Asciidoctor site:

$ rvm use 2.7 --create

At this point, you could install Awestruct directly, but since the site build has some additional dependencies, it's best to let bundler handle the installation. Bundler will also ensure that you are using the correct versions of each gem when you run Awestruct.

$ bundle --path=.bundle/gems

You're now Awestruct!

== Hosting

This website is hosted on {uri-netlify}[Netlify] at the domain name asciidoctor.org. It's managed by the account docbot [at] asciidoctor [dot] org and other Asciidoctor administrators.

=== Deployment

Netlify also handles generating and deploying the site. Deployment is triggered via a webhook on the default branch of the git repository. The deploy job executes the following command:

$ rake deploy:netlify

The version of Ruby is set using an environment variable in the Netlify configuration.

The deploy logs for asciidoctor.org can be viewed at {uri-netlify-deploys}.

=== DNS

There are two DNS records that point asciidoctor.org and www.asciidoctor.org to the Netlify servers:

@ 3600 IN A 104.198.14.52 www 3600 IN CNAME asciidoctor.netlify.com.

The Netlify server automatically sets up a redirect that points from www.asciidoctor.org to asciidoctor.org.

=== TLS Certificate (https)

The TLS certificate for asciidoctor.org and www.asciidoctor.org was issued using {uri-letsencrypt}[Let's Encrypt] and is managed by {uri-netlify}[Netlify].

Verify the certificate is valid using:

$ curl -vI https://asciidoctor.org

Look for CN=asciidoctor.org under the "Server certificate" section.

Thanks to Netlify, the certificate will be regenerated automatically when it nears its expiry date.

== Licenses

The source code in this repository is licensed under the terms of the MIT license. See link:LICENSE[] to find the full license text.

The documentation content, located in the [.path]docs/ folder, is made available under the terms of a https://creativecommons.org/licenses/by/4.0/[Creative Commons Attribution 4.0 International License] (CC-BY-4.0).

See xref:NOTICE.adoc[NOTICE] for additional license, copyright, and trademark information.