An open API service indexing awesome lists of open source software.

https://github.com/agilecreativity/index_html

Simple gem to create index.html from list of files based on simple search criteria (extension, contain words, exclude words, etc)
https://github.com/agilecreativity/index_html

Last synced: 12 months ago
JSON representation

Simple gem to create index.html from list of files based on simple search criteria (extension, contain words, exclude words, etc)

Awesome Lists containing this project

README

          

## index_html

[![Gem Version](https://badge.fury.io/rb/index_html.svg)][gem]
[![Dependency Status](https://gemnasium.com/agilecreativity/index_html.png)][gemnasium]
[![Code Climate](https://codeclimate.com/github/agilecreativity/index_html.png)][codeclimate]
[![Build Status](https://secure.travis-ci.org/agilecreativity/index_html.png)][travis-ci]
[![Coverage Status](https://coveralls.io/repos/agilecreativity/index_html/badge.png)][coveralls]
[![Codeship Status for agilecreativity/index_html](https://codeship.com/projects/baebac20-519d-0132-8657-6a8e4349286c/status)](https://codeship.com/projects/48400)

[gem]: http://badge.fury.io/rb/index_html
[gemnasium]: https://gemnasium.com/agilecreativity/index_html
[codeclimate]: https://codeclimate.com/github/agilecreativity/index_html
[travis-ci]: http://travis-ci.org/agilecreativity/index_html
[coveralls]: https://coveralls.io/r/agilecreativity/index_html

Quickly generate the index.html files based on your simple criteria.

Note: start from version `0.1.2` this gem will follow the [Semantic Versioning][] release schedule.

### Installation

Add this line to your application's Gemfile:

gem 'index_html'

And then execute:

$ bundle

Or install it yourself as:

$ gem install index_html

### Usage

Say you have lots of ebook files (pdf, epub, or mobi) and you have properly named them
with something like [ebook_renamer][].

Now that you have the good data, if you like to create a quick index to all of the files
that have the specific word 'Android' in the title you could perhap try something like the following:

```sh
gem install index_html
cd ~/Dropbox/ebooks/
index_html --base-dir . \
--exts epub pdf mobi \
--inc-words android \
--recursive
```

### Help/Usage:

Just type `index_html` without any options to see the list of help

```
Usage:
index_html

Options:
-b, [--base-dir=BASE_DIR] # Base directory
# Default: . (current directory)
-e, [--exts=one two three] # List of extensions to search for
-f, [--non-exts=one two three] # List of files without extension to search for
-n, [--inc-words=one two three] # List of words to be included in the result if any
-x, [--exc-words=one two three] # List of words to be excluded from the result if any
-i, [--ignore-case], [--no-ignore-case] # Match case insensitively
# Default: true
-r, [--recursive], [--no-recursive] # Search for files recursively
# Default: true
-v, [--version], [--no-version] # Display version information
-p, [--prefix=PREFIX] # Prefix string to the URL
# Default: .
-d, [--indent=N] # Indentation to each list item in the output
# Default: 6
-o, [--output=OUTPUT] # Output file name
# Default: index.html

Generate the index.html base on simple criteria
```

This will generate the file `index.html` that you can open from your favourite browser.

### Sample output

- Sample list of files from a given directory

```shell
$index_html --base-dir=spec/fixtures --exts=rb java --recursive
```
The output file `index.html` should be generated with something like

```html

File Listing
File List


  1. ./demo1.xxx.java

  2. ./demo1.xxx.rb

  3. ./demo2.xxx.java

  4. ./demo2.xxx.rb

  5. ./sub-dir/demo3.yyy.java

  6. ./sub-dir/demo3.yyy.rb

  7. ./sub-dir/demo4.yyy.java

  8. ./sub-dir/demo4.yyy.rb


```
- Run with simple prefix option

```shell
index_html --base-dir spec/fixtures --exts rb java --recursive --prefix http://localhost
```

The output file `index.html` should be something like

```html

File Listing
File List


  1. http://localhost/demo1.xxx.java

  2. http://localhost/demo1.xxx.rb

  3. http://localhost/demo2.xxx.java

  4. http://localhost/demo2.xxx.rb

  5. http:/localhost/sub-dir/demo3.yyy.java

  6. http://localhost/sub-dir/demo3.yyy.rb

  7. http://localhost/sub-dir/demo4.yyy.java

  8. http://localhost/sub-dir/demo4.yyy.rb


```
### Contributing

Bug reports and suggestions for improvements are always welcome,
GitHub pull requests are even better!.

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

[agile_utils]: https://rubygems.org/gems/agile_utils
[code_lister]: https://rubygems.org/gems/code_lister
[ebook_renamer]: https://rubygems.org/gems/ebook_renamer
[rubocop]: https://github.com/bbatsov/rubocop
[Semantic Versioning]: http://semver.org