Skip to content

square/square.github.io

Repository files navigation

Square Open Source Portal

Build Status

A simple, static portal which outlines our open source offerings. Intentionally themed to look like a Square merchant page on the directory.

Development

Run the site locally

gem install bundler # first time only
bundle install # first time only
bundle exec jekyll serve

Update list of repos:

pip install pystache requests pygithub3 # first time only
./generate.py

About the code

Due to the use of absolute URLs in CSS files that are (essentially) out of our control, the easiest way to develop is by running with Jekyll.

Repositories are listed in the repos.json file as a map of repository names to a list of their categories. Invoking the generate.py script will update the index.html page with the latest repos by using the index.mustache file as a template.

Repository data is pulled via the GitHub API (e.g., website). By default the script performs unauthenticated requests, so it's easy to run up against GitHub's limit of 60 unauthenticated requests per hour. To make authenticated requests and work around the rate-limiting, add an entry for api.github.com to your ~/.netrc file, preferably with a Personal Access Token from https://github.com/settings/tokens

machine api.github.com
  login YourUsername
  password PersonalAccessToken

Images are loaded by convention from the repo_images/ directory. Ensure the name is the same as the repo name in the repos.json file and has a .jpg extension. Currently all images are rotated 10 degrees counter-clockwise to break up the overwhelming horizontal and vertical visual lines on the page.

License

Copyright 2021 Square Inc.

Licensed 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.