= Solr Ref Guide // Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. This is the source for the Solr Reference Guide. Raw content is stored in Asciidoc (`.adoc`) formatted files in the `src/` directory. == Prerequisites for Building These files are processed with AsciiDoctor in 2 different ways: * Via Jekyll to build an HTML browsable version of the Ref Guide. ** Prerequisites: `Ruby` (v2.1 or higher) and the following gems must be installed: *** `jekyll`: v3.5, not v4.x. Use `gem install jekyll --force --version 3.5.0` to force install of Jekyll 3.5.0. *** `asciidoctor`: v1.5.6.2, not 1.5.7 or higher. Use `gem install asciidoctor --force --version 1.5.6.2`. NOTE: You must do this before installing `jekyll-asciidoc` or you'll get a version of Asciidoctor that we can't use yet. *** `jekyll-asciidoc`: v2.1 or higher. Use `gem install jekyll-asciidoc` to install. *** `pygments.rb`: v1.1.2 or higher. Use `gem install pygments.rb` to install. // The following is only necessary until we are on Asciidoctor 1.5.8 or higher. // See https://github.com/asciidoctor/asciidoctor/issues/2928 for details of the problem with Slim 4.x and higher. *** `slim`: v3.0.1 or higher, only to 3.0.9. Do *NOT* use Slim 4.x. Use `gem install slim --force --version 3.0.9` to install. * Via `asciidoctor-ant` to build the officially released PDF version of the Ref Guide. ** Prerequisites: None beyond those required to use the main Lucene/Solr build: Java, and Ant. == Building the Guide For details on building the ref guide, see `ant -p`. There are currently four available targets: * `ant default`: builds both the PDF and HTML versions of the Solr Ref Guide. * `ant build-site`: builds only the HTML version. * `ant build-pdf`: builds only the PDF version. * `ant clean`: removes the `../build/solr-ref-guide` directory. The output of all builds will be located in `../build/solr-ref-guide`. == Key Directories Key directories to be aware of: * `src` - where all human edited `*.adoc` files related to the Guide live, as well as various configuration, theme, and template files. * `tools` - custom Java code for parsing metadata in our `src/*.adoc` files to produce some `_data/` files for site & pdf navigation purposes. * `../build/solr-ref-guide/content` - a copy of the `src` dir generated by ant where: ** `*.template` files are processed to replace ant properties with their runtime values ** some `../build/solr-ref-guide/content/_data` files are generated by our java tools based header attributes from each of the `*.adoc` files * `../build/solr-ref-guide/html-site` - HTML generated version of the ref guide * `../build/solr-ref-guide/apache-solr-ref-guide-X.Y.pdf` - PDF generated version of the ref guide See the additional documentation in `src/metadocs` for more information about how to edit files, build for releases, or modifying any Jekyll or PDF templates.