Coder Social home page Coder Social logo

kmheibel / lucene-site Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apache/lucene-site

0.0 1.0 0.0 68.85 MB

Apache Lucene and Solr web site

Home Page: https://lucene.apache.org/

License: Apache License 2.0

Shell 1.82% Python 12.76% CSS 55.57% JavaScript 2.20% HTML 27.66%

lucene-site's Introduction

Website for Apache Lucene

This repository contains the "source code" of the Lucene website at lucene.apache.org.

NOTE: The Apache Solr website now has its own git repository.

Building the site

The site is written in Markdown syntax and built into a static site using Pelican. The site is re-built automatically by ASF Buildbot on every push to main branch and the result can be previewed at lucene.staged.apache.org. Build success/failure emails are sent to [email protected] mailing list. Read more about the mechanics behind auto building in INFRA Confluence.

If the staged site looks good, simply merge the changes to branch production and the site will be deployed in a minute or two. Note that simple edits can also be done directly in the GitHub UI rather than clone -> edit -> commit -> push.

IMPORTANT: Please never commit directly to production branch. All commits should go to main, and then merge main to production. Note that it is possible to make a Pull Request for the merge from main-->production. If you do so, please merge using a merge commit rather than a squash merge.

For larger edits it is recommended to build and preview the site locally. This lets you see the result of your changes instantly without committing anything. The next sections detail that procedure. The TL;DR instructions goes like this:

# Usage: ./build.sh [-l] [<other pelican arguments>]
#        -l     Live build and reload source changes on localhost:8000
#        --help Show full help for options that Pelican accepts
./build.sh -l

Now go to http://localhost:8000 to view the beautiful Lucene web page served from your laptop with live-preview of updates :)

Installing Pelican by hand

The site uses Pelican for static html generation. Pelican requires Python 3.5+ and can be installed with pip.

The build.sh script mentioned in the above paragraph takes care of setting up your Pelican environment, and you can skip this part unless you want to understand the moving parts and install things by hand. Assuming that you have python3 installed, simply run:

pip3 install -r requirements.txt

If you run into conflicts with existing packages, a solution is to use a virtual Python environment. See the Pelican installation page for more details. These are quick commands, Linux flavor:

python3 -m venv env
source env/bin/activate
pip install -r requirements.txt

Once Pelican is installed you can convert your content into HTML via the pelican command (content is the default location to build from).

pelican

The above command will generate your site and save it in the output/ folder using the lucene theme and settings defined in pelicanconf.py

You can also tell Pelican to watch for your modifications, instead of manually re-running it every time you want to see your changes. To enable this, run the pelican command with the -r or --autoreload option. On non-Windows environments, this option can also be combined with the -l or --listen option to simultaneously both auto-regenerate and serve the output through a builtin webserver on http://localhost:8000.

pelican --autoreload --listen

Remember that on Mac/Linux you can use the build.sh script with -l option to do the same.

Updating site during a Lucene release

The release manager documentation will contain detailed instructions on how to update the site during a release. Some of the boring version number update and download link generation is handled by Pelican, see below.

JavaDoc publishing is not done through this repo, but in SVN as detailed in Release Manager instructions, and will then appear in respective sections of the website automatically, see .htaccess for how.

Bump Lucene latest version after the release

There are variables in pelicanconf.py to modify the latest 2 supported release versions. This will affect all references to release version in the theme, but not in pages or articles. Pelican views pages and articles as static write-once, like a blog post, whereas the theme can be more dynamic and change with every build.

Modify LUCENE_LATEST_RELEASE and LUCENE_PREVIOUS_MAJOR_RELEASE, and LUCENE_LATEST_RELEASE_DATE to affect

  • Full patch release versions in html such as "6.3.0".
  • Minor release versions in html such as "6.3.x".
  • Links to source, javadocs, PGP, and SHA512 which use underscores to separate version parts such as 6_3_0
  • References to the release date of the latest version which can be dynamically formatted for different pages.

lucene-site's People

Contributors

sarowe avatar janhoy avatar gsingers avatar rmuir avatar uschindler avatar ctargett avatar hossman avatar adamwalz avatar jpountz avatar anshumg avatar noblepaul avatar shalinmangar avatar markrmiller avatar mikemccand avatar erikhatcher avatar jimczi avatar iverase avatar dsmiley avatar thelabdude avatar madrob avatar gerlowskija avatar atris avatar romseygeek avatar s1monw avatar caomanhdat avatar nknize avatar houstonputman avatar elyograg avatar bruno-roustant avatar vthacker avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.