:icons: font :date-uri: :linkattrs: :homepage: http://github.com/cmoulliard/hyla :docs: https://github.com/cmoulliard/hyla/blob/master/documentation/introduction.adoc :sources: https://github.com/cmoulliard/hyla :issues: https://github.com/cmoulliard/hyla/issues/ :license: https://github.com/cmoulliard/hyla/blob/master/LICENSE.txt image:https://raw.github.com/cmoulliard/hyla/master/documentation/image/hyla_frog.jpg[Hyla, 100, 100, role="left"] **Hyla** is a Ruby command line tool to create a new documentation/training/blog/static web site project, add artefacts (articles, blog, audio, video, content, code source, ...), render it in HTML, SlideShow, ... using asciidoc(tor) as markup language. Until now, hyla looks like asciidoctor client but is is more similar to Jekyll on the principle but here we support 'asciidoc, asciidoctor' formats and not markdown. The tool allows to : - Generate slideshow presentations (deckJs, RevealJS) - https://twitter.com/cmoulliard/status/421587832159756288, - Setup a blank project, - Setup a project from template (book, training, training-exercises, documentation/training content, ... - Create a documentation/training project (including directories + files) from a Table of Content - Generate a one HTML file (= sum of all the asciidoc files) for slideshow (or trainer presentation) using index files (= file containing links to include other files) - Render html content from asciidoc (http://asciidoctor.org/docs/user-manual) - Render html using different styles - Watch files (LiveReload - WebSocket) and render them if a modification has been detected or file added ... It is not a replacement or a concurrent of 'awestruct'. Idea is to package in hyla css styles, backends, samples (article, image, table, audio, video, book, report) and collection of templates (blog, static web site, awestruct, training, documentation = collection of modules, ... ) to boost process to develop documentation, training content (reason why hyla will assist you to create from a Table of content the structure of directories + asciidoc files (a file = a chapter =a module)), blog web, book, articles, static web site site ... without the need to install git projects (everything is packaged in one tool like jekyll). Reason / Motivation about the packaging : many end users are not developers/engineers and they enjoy to have one tool to use and not a procedure they should clone git repo, build, copy resources manually to finally build a documentation/training/blog .... hyla should be released regularly and will contain last releases of styles/backends/awestructs ... hyla will reuse stylesheets created from 'asciidoctor-stylesheet-factory' and 'asciidoctor-backends' for HTML5, RevealJS, DeckJS, DockBook ... hyla will include 'awestruct' The Hyla project name comes from an arboreal http://en.wikipedia.org/wiki/Hyla[frog] living in equatorial regions of Europe, Asia or Americas. Its name was inspired by the companion of Hercule (Hylas) in Greek mythology. == Prerequisites - https://github.com/sstephenson/ruby-build#readme[rbenv-build] which let you to deploy a pre-compiled version of Ruby - https://github.com/sstephenson/rbenv[rbenv] to manage different versions of Ruby - https://www.ruby-lang.org/en/[Ruby] 1.9.3-p484 - http://guides.rubygems.org/[RubyGems] to install Ruby Applications - http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions-[How do I install and use the browser extensions for LiveReload]. Be sure to enable the option “Allow access to file URLs” checkbox in Tools > Extensions > LiveReload after installation of Chrome Extension. == Installation The latest source code is located in the {sources}[Hyla git repository] on GitHub. Hyla can be installed via the +gem+ command, bundler. Use `gem install` command to deploy Hyla : $ gem install hyla -y NOTE : The option `-y` will tell to rubyGems to deploy the gem but also the dependencies required An alternative is to create a Gemfile and add this line : gem 'hyla' And then execute: $ bundle **Or** install it yourself as: $ gem install hyla -v 1.0.6 == For Developer's only Clone Git project locally, move to Hyla directory and execute the following commands gem build hyla.gemspec sudo gem install hyla-1.0.x.gem -l == To publish Hyla to Gem Repo gem build hyla.gemspec gem install hyla-1.0.x.gem -l gem push hyla-1.0.x.gem == To delete a release pushed to RubyGems (= yank) gem yank hyla -v 1.0.x == To create a release, generate a tagged release and publish it to Gem Repo gem build hyla.gemspec gem install hyla-1.0.6.gem git commit -m "Release Hyla 1.0.6" -a git push git tag -a hyla-1.0.6 -m "Release hyla 1.0.6" git push origin hyla-1.0.6 gem push hyla-1.0.6.gem == Usage Open a terminal and move to the folder where you would like to create a new project or develop an existing. As Hyla is command line tool, it will be used with one of the following commands : create Creates a new file from asciidoc artefacts for an existing project generate Generate modules and asciidoc files from an asciidoc Table Of Content file help Display global or [command] help documentation. new Creates a new Hyla project using a template or blank to the PATH specified serve Serve locally your site watch Watch directories for any change, add or file deleted and render document (HTML5) More info about options and commands available can be find by running the `command line tool` hyla --help == Documentation The `hyla` documentation is available at the link:documentation/introduction.adoc[following address] == Copyright and Licensing Copyright (C) 2013-2014 Charles Moulliard Free use of this software is granted under the terms of the Apache License. See the {license}[LICENSE] file for details. == Authors *Hyla* was written by https://github.com/cmoulliard[Charles Moulliard] == Contact and Help Home:: {homepage} Docs:: {docs} Source repository (git):: {sources} Issue tracker (GitHub):: {issues} == Changelog === v1.0.6 - @cmoulliard Enhancements / Improvements:: * Add attribute to include additional tags within the HTML generated(link:{issues}74[#74]) * Exclude lab_assets & lab_assets_solution(link:{issues}73[#73]) * Add data-state attribute to revealjs slim backend(link:{issues}72[#72]) * Add possibility to definie the transition style for revealjs(link:{issues}69[#69]) * It should be possible to define custom theme for revealjs(link:{issues}68[#68]) Bug fixes:: * Snippet tag is added to the parent include file bug(link:{issues}67[#67]) === v1.0.5 - @cmoulliard New Features:: * Add tag and attribute to allow to generate snippet content(link:{issues}65[#65]) * Add remote control and mathjax attribute - Revealjs(link:{issues}58[#58]) * Add paging number option for revealjs (link:{issues}57[#57]) Bug fixes:: * Font liberation not retrieved using revealsjs(link:{issues}60[#60]) * Fix issue with image not embedded correctly - CR after 999positions(link:{issues}50[#50]) * PDF slides are not all exported(link:{issues}46[#46]) Enhancements / Improvements:: * Add css file of Font Awesome 4.1.0 for revealjs(link:{issues}49[#49]) * Add coderay, highlightjs & pygments support for revealjs(link:{issues}48[#48]) * Add a variable to specify if we would like to center alignment of the slides(link:{issues}47[#47]) * Check gem required(link:{issues}10[#10]) === v1.0.4 - @cmoulliard New Features:: * Support footer with copyright (link:{issues}40[#40]) * Add a header with logo (link:{issues}40[#40]) * Create directory/folder containing `Liberation` fonts * Allow to use a different config file (link:{issues}41[#41]) * aside, sidebar block (link:{issues}42[#42]) * Rename extension from .adoc to .ad for files generated by toc2adoc command * Add a new rendering 'cover2png' (link:{issues}43[#43]) * Generate an index number for each file created by the TOC (link:{issues}44[#44]) * Use index text file to list the files to be included in the PDF (link:{issues}45[#45]) Bug fixes:: * Image of the header is not embedded in the HTML file generated * Fix issue when no project_name is provided * remove solid black border around the image Enhancements / Improvements:: * Add option to support attachment (link:{issues}39[#39]) for email * Revert modification to propose adoc2html instead of adoc2htmlslide (link:{issues}38[#38]) * Revert modification to propose index2html instead of index2htmlslide (link:{issues}38[#38]) * Change h2 font-size of revaljs backend (2.11em --> 2em) * Left justified the slides of revealjs * Change margin to use Reveal option margin: 0.2 * Refactor pdf rendering to allow to group HTML files, add a footer and banner * Comment nofooter, noheader and stylesdir * Add comment line for the attributes added for the TOC * Remove pdf kit dependency * Rename .adoc to .ad for files generated during toc2adoc rendering * Add true to nofooter, noheader * Rename `hyla create' command to 'hyla add` === v1.0.3 - @cmoulliard New Features:: Bug fixes:: * Change command option to use as symbol the attribute '-' for the one letter and not '--' for the full name. Example -f --file" * Embedded image is not displayed with html attached (link:{issues}30[#30]) * Typo error - missing white space between title and level (link:{issues}33[#33]) * -st parameter is not supported by commander (link:{issues}32[#32]) Enhancements / Improvements:: * Refactor command watch to support to use _confg.yaml file (link:{issues}??[#??]) * Pass as parameter the thread variable - Thread.kill(@t) * Refactor `serve` command to allow to have parameters in _config.yaml file * Clean up report template * Refactor _config.yaml to provide more info on options (link:{issues}31[#31]) * Check gem required (link:{issues}10[#10]) * Add shell scripts to play with different scenario (link:{issues}34[#34]) * Add example of code snippet (link:{issues}37[#37]) * Rename adoc2slide and index2slide to adoc2htmlslide, index2htmlslide (link:{issues}38[#38]) === v1.0.2 (2014-01-31) - @cmoulliard New Features:: * PDF rendering option has been added - html2pdf (link:{issues}25[#25]) * Email as attachment HTML file generated by asciidoctor - (link:{issues}23[#23],link:{issues}21[#21]) * Support RevealJS as template backend for slideshow (link:{issues}29[#29]) Bug fixes:: * Watch option of the command line does not filter files correctly (link:{issues}28[#28]) * Rename require Hyla//WebSocket to require hyla/websocket Enhancements / Improvements:: * Rename redhat to liberation * Add comment and link to install LiveReload, fixed issue (link:{issues}28[#28])