Skip to content

ufal/lindat-common

Repository files navigation

LINDAT/CLARIN Common Theme

Build Status Dependency Status

Files common for all Lindat projects. The repository has been migrated from UFAL Redmine. Here is short description on how to use Lindat Common Theme, for more detailed info see Redmine wiki.

What is in the repository

The project requires build so the repository contains branches with pre build versions of the Common Theme. The build happens automatically by Travis CI.

  • Production build branch

    Every time the commit is tagged it is considered a production release and a new build is committed to releases branch.

  • Latest build branch

    Every push to master branch is build to edge branch.

Installation

You can get common theme to your project in several ways:

1. Using this repository as a git submodule

You can always opt-in for latest build by using edge branch instead of releases branch.

git submodule add -b releases https://github.com/ufal/lindat-common.git lindat-common
git submodule init
git submodule update

To update to the newest version run following:

git submodule update --remote --merge

Please note:

The original idea was to use common theme the same way as svn:externals but the git doesn't work the same way. The submodule is always fixed to the specific commit SHA so you have to always manually update the submodule and also commit the change.

2. Using releases here on Github

Go here and download the latest release or use command line:

mkdir lindat-common
cd lindat-common
REPO="https://github.com/ufal/lindat-common"
TAG=`git ls-remote --tags $REPO | grep -v '\^{}' | sed -e 's/.*refs\/tags\/\(.*\)/\1/p' | sort -Vk2 | tail -n1`
curl -L "$REPO/releases/download/$TAG/dist.tar.gz" | tar -xz

3. Using the Bower

Use:

bower install lindat-common#releases --save

for stable branch or use the latest build:

bower install lindat-common#edge --save

to install and

bower --force update

to force update to the newest version.

How to Use Common Theme

All you have to do is include the header/footer html in your page layout together with css styles. You should also set <body id="lindat-tools">. If you can't set id on the body, any other common parent element should work.

NOTE: lindat.css will set body margin and padding to zero pixels. This should stay zero to ensure proper look, if you need padding or margin on your page please use other elements. The header and footer requires only these.

Use in Angular projects

  1. Include CSS and Javascript in your html

  2. Add lindat to the modules

     angular.module('yourApp', ['lindat', ... ])
    
  3. Directives lindat-header and lindat-footer will be available

     <header lindat-header></header>
     
     ... your content ...
     
     <footer lindat-footer></footer>
    

    Element style will also work:

     <lindat-header></lindat-header>
     
     ... your content ...
     
     <lindat-footer></lindat-footer>
    
  4. Google Analytics and Piwik tracking are already included and should work out of the box. See angular-piwik and angular-google-analytics for more info.

Automatic updates

lindat-common is occasionally updated, you can follow these updated automatically using cron. If your checkout is in /opt/lindat-common and you are on releases branch with no local modifications, something like 35 0 * * * cd /opt/lindat-common/ && git pull --quiet inside your crontab or other cron file should suffice

Development

  • Clone the repository

      git clone https://github.com/ufal/lindat-common.git
      cd lindat-common
    
  • Install NodeJS environment (unless you already have one)

      curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
      nvm install stable
      nvm use stable
    
  • Install dependencies for development

      npm install
    
  • Run development server

      make run
    

Making new release

Task Version
make release v0.0.1 -> v0.0.2 + commit + tag + push
make release-minor v0.0.1 -> v0.1.0 + commit + tag + push
make release-major v0.0.1 -> v1.0.1 + commit + tag + push