Source for creativecommons.github.io
⚠️ DO NOT MAKE CHANGES TO THE creativecommons/creativecommons.github.io REPO DIRECTLY.
This site is built using Lektor. All changes to opensource.creativecommons.org (creativecommons.github.io) must be made here and deployed via lektor (see Deployment, below).
- Make sure you have pipenv installed.
- Clone this repository.
- Open your command line interface and
cd
to the repository root directory. - Run
pipenv install
to create a Python virtual environment and install the requirements for this project.
pipenv
doesn't always provide the best error messages (Provide better error
message if the project’s virtual environment is broken). If all
else fails, try removing the virtual environment and reinstalling:
pipenv --rm
pipenv install
- Run
pipenv run lektor server -f webpack
to start the Lektor development server. - You will be able to see the website at
http://localhost:5000/
.- The Lektor server will rebuild the site every time you change any content.
We have continuous deployment set up. To deploy, push your code to the master
branch (or make a pull request against the master
branch. GitHub Actions
builds and deploys the site whenever it detects new commits on the master
branch.
The GitHub Actions configuration is located at
.github/workflows/lektor-build-deploy.yml
.
⚠️ For reference only, you should not need to not do this.
When you are ready to deploy a new version of the site, run lektor deploy
(assuming you have your GitHub SSH key already set up and you have access to
the creativecommons/creativecommons.github.io repository). That's
it, it's live on production!
Here's how the code is structured in the top level of the repository:
assets
: This directory contains the JavaScript and CSS files for the project built via webpack. Most of the JavaScript and CSS is third-party code and loaded via CDN so this is pretty empty.content
: The content of the site lives here. Here's an explanation of how content works in Lektor. This is probably what you'll be modifying most often.models
: All content in Lektor is associated with data models to define their schema. Currently, we only use the defaultpage
model that ships with Lektor.templates
: This is where the Jinja2 templates that render content are stored. See the Lektor template documentation for more information.webpack
: This is where all the webpack config files as well as Sass and JavaScript files for the project resides. The JavaScript and Sass files are compiled and saved in assets folder during lektor build process.
- Lektor Plugins:
- nixjdm/lektor-atom: Lektor Atom plugin
- lektor/lektor-disqus-comments: Adds disqus comments to a Lektor website
- kmonsoor/lektor-google-analytics: Integration of Google analytics with Lektor CMS
- bancek/lektor-markdown-excerpt: Adds filter for Markdown body excerpt
- lektor/lektor-markdown-header-anchors: Adds support for anchors and table of contents to Markdown
- terminal-labs/lektor-strip-html-tags: Strip HTML tags, effectively turning HTML into plain text
- lektor/lektor-webpack-support: Adds webpack support to lektor
/cc-vocabulary/
to https://cc-vocabulary.netlify.com/- Added so that the
opensource.creativecommons.org/cc-vocabulary/
will continue to work with that project moving to utilize Netlify.
- Added so that the
/cc-vue-vocabulary
to https://cc-vue-vocabulary.netlify.com/- Added so that the
opensource.creativecommons.org/cc-vue-vocabulary/
will continue to work with that project moving to utilize Netlify.
- Added so that the
/cc-fonts
to https://cc-fonts.netlify.com/- Added so that the
opensource.creativecommons.org/cc-fonts/
will continue to work with that project moving to utilize Netlify.
- Added so that the