commit initial
révision
bb5c025b2d
|
@ -0,0 +1,3 @@
|
|||
initiatives_paysannes/static/** -diff
|
||||
assets/img/** -diff
|
||||
assets/fonts/** -diff
|
|
@ -0,0 +1,39 @@
|
|||
# Editors
|
||||
*~
|
||||
*.sw[po]
|
||||
|
||||
# Python
|
||||
*.py[cod]
|
||||
__pycache__
|
||||
|
||||
# Virtual environment
|
||||
.env
|
||||
venv
|
||||
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
pip-log.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
.coverage
|
||||
.tox
|
||||
nosetests.xml
|
||||
htmlcov
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# NPM
|
||||
node_modules/
|
||||
|
||||
# Databases
|
||||
sqlite.db
|
||||
|
||||
# Local configuration
|
||||
config.env
|
||||
|
||||
# Local overrides and variable content
|
||||
local/
|
||||
var/
|
|
@ -0,0 +1,276 @@
|
|||
{
|
||||
"extends": ["stylelint-config-standard", "stylelint-config-recommended-scss"],
|
||||
"plugins": [
|
||||
"stylelint-order"
|
||||
],
|
||||
"rules": {
|
||||
"at-rule-empty-line-before": null,
|
||||
"at-rule-name-space-after": "always",
|
||||
"at-rule-no-vendor-prefix": true,
|
||||
"at-rule-semicolon-space-before": "never",
|
||||
"block-closing-brace-empty-line-before": null,
|
||||
"block-closing-brace-newline-after": null,
|
||||
"block-opening-brace-space-before": null,
|
||||
"color-named": "never",
|
||||
"declaration-block-semicolon-newline-after": "always-multi-line",
|
||||
"declaration-block-semicolon-newline-before": "never-multi-line",
|
||||
"declaration-block-semicolon-space-after": "always-single-line",
|
||||
"declaration-empty-line-before": null,
|
||||
"declaration-no-important": true,
|
||||
"font-family-name-quotes": "always-where-recommended",
|
||||
"font-weight-notation": [
|
||||
"numeric", {
|
||||
"ignore": ["relative"]
|
||||
}],
|
||||
"function-url-no-scheme-relative": true,
|
||||
"function-url-quotes": "always",
|
||||
"length-zero-no-unit": true,
|
||||
"max-empty-lines": 2,
|
||||
"max-line-length": null,
|
||||
"media-feature-name-no-vendor-prefix": true,
|
||||
"media-feature-parentheses-space-inside": "never",
|
||||
"media-feature-range-operator-space-after": "always",
|
||||
"media-feature-range-operator-space-before": "never",
|
||||
"no-descending-specificity": null,
|
||||
"no-duplicate-selectors": true,
|
||||
"number-leading-zero": "never",
|
||||
"media-feature-name-no-unknown": [true, {
|
||||
"ignoreMediaFeatureNames": ["prefers-reduced-motion"]
|
||||
}],
|
||||
"order/properties-order": [
|
||||
"position",
|
||||
"top",
|
||||
"right",
|
||||
"bottom",
|
||||
"left",
|
||||
"z-index",
|
||||
"box-sizing",
|
||||
"display",
|
||||
"flex",
|
||||
"flex-align",
|
||||
"flex-basis",
|
||||
"flex-direction",
|
||||
"flex-wrap",
|
||||
"flex-flow",
|
||||
"flex-shrink",
|
||||
"flex-grow",
|
||||
"flex-order",
|
||||
"flex-pack",
|
||||
"align-content",
|
||||
"align-items",
|
||||
"align-self",
|
||||
"justify-content",
|
||||
"order",
|
||||
"float",
|
||||
"width",
|
||||
"min-width",
|
||||
"max-width",
|
||||
"height",
|
||||
"min-height",
|
||||
"max-height",
|
||||
"padding",
|
||||
"padding-top",
|
||||
"padding-right",
|
||||
"padding-bottom",
|
||||
"padding-left",
|
||||
"margin",
|
||||
"margin-top",
|
||||
"margin-right",
|
||||
"margin-bottom",
|
||||
"margin-left",
|
||||
"overflow",
|
||||
"overflow-x",
|
||||
"overflow-y",
|
||||
"-webkit-overflow-scrolling",
|
||||
"-ms-overflow-x",
|
||||
"-ms-overflow-y",
|
||||
"-ms-overflow-style",
|
||||
"columns",
|
||||
"column-count",
|
||||
"column-fill",
|
||||
"column-gap",
|
||||
"column-rule",
|
||||
"column-rule-width",
|
||||
"column-rule-style",
|
||||
"column-rule-color",
|
||||
"column-span",
|
||||
"column-width",
|
||||
"orphans",
|
||||
"widows",
|
||||
"clip",
|
||||
"clear",
|
||||
"font",
|
||||
"font-family",
|
||||
"font-size",
|
||||
"font-style",
|
||||
"font-weight",
|
||||
"font-variant",
|
||||
"font-size-adjust",
|
||||
"font-stretch",
|
||||
"font-effect",
|
||||
"font-emphasize",
|
||||
"font-emphasize-position",
|
||||
"font-emphasize-style",
|
||||
"font-smooth",
|
||||
"src",
|
||||
"hyphens",
|
||||
"line-height",
|
||||
"color",
|
||||
"text-align",
|
||||
"text-align-last",
|
||||
"text-emphasis",
|
||||
"text-emphasis-color",
|
||||
"text-emphasis-style",
|
||||
"text-emphasis-position",
|
||||
"text-decoration",
|
||||
"text-indent",
|
||||
"text-justify",
|
||||
"text-outline",
|
||||
"-ms-text-overflow",
|
||||
"text-overflow",
|
||||
"text-overflow-ellipsis",
|
||||
"text-overflow-mode",
|
||||
"text-shadow",
|
||||
"text-transform",
|
||||
"text-wrap",
|
||||
"-webkit-text-size-adjust",
|
||||
"-ms-text-size-adjust",
|
||||
"letter-spacing",
|
||||
"-ms-word-break",
|
||||
"word-break",
|
||||
"word-spacing",
|
||||
"-ms-word-wrap",
|
||||
"word-wrap",
|
||||
"overflow-wrap",
|
||||
"tab-size",
|
||||
"white-space",
|
||||
"vertical-align",
|
||||
"direction",
|
||||
"unicode-bidi",
|
||||
"list-style",
|
||||
"list-style-position",
|
||||
"list-style-type",
|
||||
"list-style-image",
|
||||
"pointer-events",
|
||||
"-ms-touch-action",
|
||||
"touch-action",
|
||||
"cursor",
|
||||
"visibility",
|
||||
"zoom",
|
||||
"table-layout",
|
||||
"empty-cells",
|
||||
"caption-side",
|
||||
"border-spacing",
|
||||
"border-collapse",
|
||||
"content",
|
||||
"quotes",
|
||||
"counter-reset",
|
||||
"counter-increment",
|
||||
"resize",
|
||||
"user-select",
|
||||
"nav-index",
|
||||
"nav-up",
|
||||
"nav-right",
|
||||
"nav-down",
|
||||
"nav-left",
|
||||
"background",
|
||||
"background-color",
|
||||
"background-image",
|
||||
"filter",
|
||||
"background-repeat",
|
||||
"background-attachment",
|
||||
"background-position",
|
||||
"background-position-x",
|
||||
"background-position-y",
|
||||
"background-clip",
|
||||
"background-origin",
|
||||
"background-size",
|
||||
"border",
|
||||
"border-color",
|
||||
"border-style",
|
||||
"border-width",
|
||||
"border-top",
|
||||
"border-top-color",
|
||||
"border-top-style",
|
||||
"border-top-width",
|
||||
"border-right",
|
||||
"border-right-color",
|
||||
"border-right-style",
|
||||
"border-right-width",
|
||||
"border-bottom",
|
||||
"border-bottom-color",
|
||||
"border-bottom-style",
|
||||
"border-bottom-width",
|
||||
"border-left",
|
||||
"border-left-color",
|
||||
"border-left-style",
|
||||
"border-left-width",
|
||||
"border-radius",
|
||||
"border-top-left-radius",
|
||||
"border-top-right-radius",
|
||||
"border-bottom-right-radius",
|
||||
"border-bottom-left-radius",
|
||||
"border-image",
|
||||
"border-image-source",
|
||||
"border-image-slice",
|
||||
"border-image-width",
|
||||
"border-image-outset",
|
||||
"border-image-repeat",
|
||||
"outline",
|
||||
"outline-width",
|
||||
"outline-style",
|
||||
"outline-color",
|
||||
"outline-offset",
|
||||
"box-shadow",
|
||||
"opacity",
|
||||
"-ms-interpolation-mode",
|
||||
"page-break-after",
|
||||
"page-break-before",
|
||||
"page-break-inside",
|
||||
"transition",
|
||||
"transition-delay",
|
||||
"transition-timing-function",
|
||||
"transition-duration",
|
||||
"transition-property",
|
||||
"transform",
|
||||
"transform-origin",
|
||||
"perspective",
|
||||
"appearance",
|
||||
"animation",
|
||||
"animation-name",
|
||||
"animation-duration",
|
||||
"animation-play-state",
|
||||
"animation-timing-function",
|
||||
"animation-delay",
|
||||
"animation-iteration-count",
|
||||
"animation-direction",
|
||||
"animation-fill-mode",
|
||||
"fill",
|
||||
"stroke"
|
||||
],
|
||||
"property-no-vendor-prefix": true,
|
||||
"rule-empty-line-before": null,
|
||||
"selector-attribute-quotes": "always",
|
||||
"selector-list-comma-newline-after": "always",
|
||||
"selector-list-comma-newline-before": "never-multi-line",
|
||||
"selector-list-comma-space-after": "always-single-line",
|
||||
"selector-list-comma-space-before": "never-single-line",
|
||||
"selector-max-attribute": 2,
|
||||
"selector-max-class": 4,
|
||||
"selector-max-combinators": 4,
|
||||
"selector-max-compound-selectors": 4,
|
||||
"selector-max-empty-lines": 1,
|
||||
"selector-max-id": 0,
|
||||
"selector-max-specificity": null,
|
||||
"selector-max-type": 2,
|
||||
"selector-max-universal": 1,
|
||||
"selector-no-qualifying-type": true,
|
||||
"selector-no-vendor-prefix": true,
|
||||
"string-quotes": "double",
|
||||
"value-keyword-case": "lower",
|
||||
"value-list-comma-newline-after": "never-multi-line",
|
||||
"value-list-comma-newline-before": "never-multi-line",
|
||||
"value-list-comma-space-after": "always",
|
||||
"value-no-vendor-prefix": true
|
||||
}
|
||||
}
|
Fichier diff supprimé car celui-ci est trop grand
Voir la Diff
|
@ -0,0 +1,77 @@
|
|||
# Initiatives Paysannes
|
||||
|
||||
Placeholder
|
||||
|
||||
## Assets
|
||||
|
||||
The assets - e.g. CSS, JavaScript, images, fonts - are generated using a
|
||||
[Gulp](https://gulpjs.com/)-powered build system with these features:
|
||||
- SCSS compilation and prefixing
|
||||
- JavaScript module bundling with webpack
|
||||
- Styleguide and components preview
|
||||
- Built-in BrowserSync server
|
||||
- Compression for production builds
|
||||
|
||||
The source files live in `assets/`, and the styleguide in `styleguide/`.
|
||||
|
||||
### Requirements
|
||||
|
||||
You will need to have [npm](https://www.npmjs.com/) installed on your system.
|
||||
If you are running Debian, do not rely on the npm package which is either
|
||||
outdated or removed - starting from Debian Stretch. Instead, here is a way
|
||||
to install the last version as a regular user:
|
||||
|
||||
1. Ensure that you have the following Debian packages installed, from at least
|
||||
`stretch-backports`:
|
||||
- nodejs
|
||||
- node-rimraf
|
||||
|
||||
2. Set the npm's installation prefix as an environment variable:
|
||||
|
||||
$ export npm_config_prefix=~/.node_modules
|
||||
|
||||
3. Retrieve and execute the last npm's installation script:
|
||||
|
||||
$ curl -L https://www.npmjs.com/install.sh | sh
|
||||
|
||||
4. Add the npm's binary folder to your environment variables:
|
||||
|
||||
$ export PATH="${HOME}/.node_modules/bin:${PATH}"
|
||||
|
||||
In order to keep those environment variables the next time you will log in,
|
||||
you can append the following lines to the end of your `~/.profile` file:
|
||||
|
||||
```bash
|
||||
if [ -d "${HOME}/.node_modules/bin" ] ; then
|
||||
PATH="${HOME}/.node_modules/bin:${PATH}"
|
||||
export npm_config_prefix=~/.node_modules
|
||||
fi
|
||||
```
|
||||
|
||||
5. That's it! You can check that npm is now installed by running the following:
|
||||
|
||||
$ npm --version
|
||||
|
||||
### Usage
|
||||
|
||||
Start by installing the application dependencies - which are defined in
|
||||
`package.json` - by running: `npm install`.
|
||||
|
||||
The following tasks are then available:
|
||||
- `npm run build`: build all the assets for development and production use,
|
||||
and put them in the static folder - e.g `initiatives_paysannes/static`.
|
||||
- `npm run styleguide`: run a server with the styleguide and watch for file
|
||||
changes.
|
||||
- `npm run serve`: run a proxy server to the app - which must already be served on
|
||||
`localhost:8000` - with the styleguide on `/stylguide` and watch for file
|
||||
changes.
|
||||
- `npm run lint`: lint the JavaScript and the SCSS code.
|
||||
|
||||
In production, only the static files will be used. It is recommended to commit
|
||||
the compiled assets just before a new release only. This will prevent to have a
|
||||
growing repository due to the minified files.
|
||||
|
||||
## License
|
||||
|
||||
Initiatives Paysannes is developed by Cliss XXI and licensed under the
|
||||
[AGPLv3+](LICENSE).
|
Fichier binaire non affiché.
Après Largeur: | Hauteur: | Taille: 309 KiB |
Fichier binaire non affiché.
Fichier binaire non affiché.
Après Largeur: | Hauteur: | Taille: 249 KiB |
Fichier binaire non affiché.
Après Largeur: | Hauteur: | Taille: 193 KiB |
Fichier binaire non affiché.
Après Largeur: | Hauteur: | Taille: 216 KiB |
Fichier binaire non affiché.
Après Largeur: | Hauteur: | Taille: 240 KiB |
|
@ -0,0 +1,18 @@
|
|||
import $ from 'jquery';
|
||||
|
||||
import './vendor/bootstrap';
|
||||
|
||||
// Export jQuery for external usage
|
||||
window.jQuery = window.$ = $; // eslint-disable-line no-multi-assign
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Main application
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
$(() => {
|
||||
$('.no-js').removeClass('no-js');
|
||||
|
||||
// Initialize Popover and Tooltip on the whole page
|
||||
$('[data-toggle="popover"]').popover();
|
||||
$('[data-toggle="tooltip"]').tooltip();
|
||||
});
|
|
@ -0,0 +1,23 @@
|
|||
// -----------------------------------------------------------------------------
|
||||
// Bootstrap 4
|
||||
// -----------------------------------------------------------------------------
|
||||
// see: ../../node_modules/bootstrap/js/src/index.js
|
||||
|
||||
// Import all Bootstrap components
|
||||
|
||||
import 'bootstrap';
|
||||
|
||||
// ... or import them individually
|
||||
|
||||
// import 'bootstrap/js/dist/util';
|
||||
// import 'bootstrap/js/dist/alert';
|
||||
// import 'bootstrap/js/dist/button';
|
||||
// import 'bootstrap/js/dist/carousel';
|
||||
// import 'bootstrap/js/dist/collapse';
|
||||
// import 'bootstrap/js/dist/dropdown';
|
||||
// import 'bootstrap/js/dist/modal';
|
||||
// import 'bootstrap/js/dist/popover';
|
||||
// import 'bootstrap/js/dist/scrollspy';
|
||||
// import 'bootstrap/js/dist/tab';
|
||||
// import 'bootstrap/js/dist/toast';
|
||||
// import 'bootstrap/js/dist/tooltip';
|
|
@ -0,0 +1,29 @@
|
|||
// -----------------------------------------------------------------------------
|
||||
// Bootstrap's configuration for the application
|
||||
// -----------------------------------------------------------------------------
|
||||
// see: ../../node_modules/bootstrap/scss/_variables.scss
|
||||
|
||||
$blue: #424d88;
|
||||
$cyan: #55b2de;
|
||||
$green: #9fc121;
|
||||
$orange: #f18d1c;
|
||||
$red: #dc2020;
|
||||
|
||||
$primary: #679320;
|
||||
$secondary: #db6a0f;
|
||||
|
||||
$theme-colors: (
|
||||
"blue": $blue,
|
||||
"cyan": $cyan,
|
||||
"green": $green,
|
||||
"orange": $orange,
|
||||
"red": $red,
|
||||
);
|
||||
|
||||
// Fonts
|
||||
|
||||
$font-family-sans-serif: "Open Sans", arial, sans-serif;
|
||||
|
||||
$font-weight-normal: 400;
|
||||
$font-weight-semibold: 600;
|
||||
$font-weight-bold: 700;
|
|
@ -0,0 +1,8 @@
|
|||
// -----------------------------------------------------------------------------
|
||||
// Application-wide variables
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
/// Path to fonts and images folders, relative to css/app.css.
|
||||
/// @type String
|
||||
$font-path: "../fonts";
|
||||
$img-path: "../img";
|
|
@ -0,0 +1,22 @@
|
|||
@charset "utf-8";
|
||||
|
||||
// Configuration and helpers
|
||||
@import "abstracts/variables";
|
||||
@import "abstracts/variables-bootstrap";
|
||||
|
||||
// Vendors
|
||||
@import "vendor/bootstrap";
|
||||
|
||||
// Base styles
|
||||
@import "base/fonts";
|
||||
|
||||
// Layout-related sections
|
||||
//@import "layout/header";
|
||||
//@import "layout/footer";
|
||||
|
||||
// Components
|
||||
@import "components/forms";
|
||||
@import "components/listes";
|
||||
|
||||
// Page-specific styles
|
||||
//@import "pages/home";
|
|
@ -0,0 +1,13 @@
|
|||
// -----------------------------------------------------------------------------
|
||||
// Font faces declarations
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
/// Fork Awesome variables
|
||||
@import "fork-awesome/scss/variables";
|
||||
|
||||
// Opensans
|
||||
$FontPathOpenSans: "#{$font-path}/open-sans";
|
||||
|
||||
@import "open-sans-fonts/open-sans-regular";
|
||||
@import "open-sans-fonts/open-sans-semibold";
|
||||
@import "open-sans-fonts/open-sans-bold";
|
|
@ -0,0 +1,9 @@
|
|||
// -----------------------------------------------------------------------------
|
||||
// Forms component's extension
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
// Indicate that a form field is required.
|
||||
.required {
|
||||
font-size: 90%;
|
||||
color: $danger;
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
// -----------------------------------------------------------------------------
|
||||
// Listes component
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
$arrow-right-offset: 1.1em;
|
||||
|
||||
.item-arrow {
|
||||
list-style-type: none;
|
||||
> dt::before,
|
||||
> li::before {
|
||||
margin-right: 1ex;
|
||||
margin-left: -$arrow-right-offset;
|
||||
font-family: $fa-font-family;
|
||||
content: $fa-var-arrow-right;
|
||||
}
|
||||
dt::before {
|
||||
margin-right: .2em;
|
||||
}
|
||||
dt,
|
||||
dd {
|
||||
display: inline;
|
||||
}
|
||||
dd::after {
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
content: "";
|
||||
}
|
||||
}
|
||||
|
||||
@each $theme, $color in $theme-colors {
|
||||
.item-arrow-#{$theme} {
|
||||
dt::before,
|
||||
li::before {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@each $theme, $color in $theme-colors {
|
||||
.item-#{$theme} {
|
||||
list-style-type: none;
|
||||
li::before {
|
||||
margin-right: 1ex;
|
||||
margin-left: -$arrow-right-offset;
|
||||
font-family: $fa-font-family;
|
||||
color: $color;
|
||||
content: $fa-var-circle;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
@charset "utf-8";
|
||||
|
||||
// Configuration and helpers
|
||||
@import "abstracts/variables";
|
||||
|
||||
// Fork Awesome
|
||||
// ------------
|
||||
// @link https://forkawesome.github.io/
|
||||
|
||||
$fa-font-path: "#{$font-path}/fork-awesome";
|
||||
|
||||
@import "fork-awesome/scss/fork-awesome";
|
|
@ -0,0 +1,48 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
// Bootstrap 4
|
||||
// ----------------------------------------------------------------------------
|
||||
// see: ../../node_modules/bootstrap/scss/bootstrap.scss
|
||||
|
||||
/// Import all Bootstrap components
|
||||
|
||||
@import "bootstrap/scss/bootstrap";
|
||||
|
||||
/// ... or import them individually
|
||||
|
||||
//@import "bootstrap/scss/functions";
|
||||
//@import "bootstrap/scss/variables";
|
||||
//@import "bootstrap/scss/mixins";
|
||||
//@import "bootstrap/scss/root";
|
||||
//@import "bootstrap/scss/reboot";
|
||||
//@import "bootstrap/scss/type";
|
||||
//@import "bootstrap/scss/images";
|
||||
//@import "bootstrap/scss/code";
|
||||
//@import "bootstrap/scss/grid";
|
||||
//@import "bootstrap/scss/tables";
|
||||
//@import "bootstrap/scss/forms";
|
||||
//@import "bootstrap/scss/buttons";
|
||||
//@import "bootstrap/scss/transitions";
|
||||
//@import "bootstrap/scss/dropdown";
|
||||
//@import "bootstrap/scss/button-group";
|
||||
//@import "bootstrap/scss/input-group";
|
||||
//@import "bootstrap/scss/custom-forms";
|
||||
//@import "bootstrap/scss/nav";
|
||||
//@import "bootstrap/scss/navbar";
|
||||
//@import "bootstrap/scss/card";
|
||||
//@import "bootstrap/scss/breadcrumb";
|
||||
//@import "bootstrap/scss/pagination";
|
||||
//@import "bootstrap/scss/badge";
|
||||
//@import "bootstrap/scss/jumbotron";
|
||||
//@import "bootstrap/scss/alert";
|
||||
//@import "bootstrap/scss/progress";
|
||||
//@import "bootstrap/scss/media";
|
||||
//@import "bootstrap/scss/list-group";
|
||||
//@import "bootstrap/scss/close";
|
||||
//@import "bootstrap/scss/toasts";
|
||||
//@import "bootstrap/scss/modal";
|
||||
//@import "bootstrap/scss/tooltip";
|
||||
//@import "bootstrap/scss/popover";
|
||||
//@import "bootstrap/scss/carousel";
|
||||
//@import "bootstrap/scss/spinners";
|
||||
//@import "bootstrap/scss/utilities";
|
||||
//@import "bootstrap/scss/print";
|
|
@ -0,0 +1,273 @@
|
|||
const gulp = require('gulp');
|
||||
const plugins = require('gulp-load-plugins');
|
||||
const merge = require('merge-stream');
|
||||
const sherpa = require('style-sherpa');
|
||||
const named = require('vinyl-named');
|
||||
const webpack = require('webpack');
|
||||
const webpackStream = require('webpack-stream');
|
||||
|
||||
const browser = require('browser-sync').create();
|
||||
|
||||
// Load all Gulp plugins into one variable
|
||||
const $ = plugins();
|
||||
|
||||
/// Configuration -------------------------------------------------------------
|
||||
|
||||
const CONFIG = {
|
||||
// Proxy target of the BrowserSync'server
|
||||
SERVER_PROXY: 'http://127.0.0.1:8000',
|
||||
|
||||
// Port on which the BrowserSync'server will listen
|
||||
SERVER_PORT: 8090,
|
||||
|
||||
// Paths to other assets which will be copied
|
||||
ASSETS_FILES: [
|
||||
{
|
||||
src: [
|
||||
'assets/**/*',
|
||||
'!assets/{img,js,scss}',
|
||||
'!assets/{img,js,scss}/**/*'
|
||||
],
|
||||
dest: ''
|
||||
},
|
||||
{
|
||||
// ForkAwesome
|
||||
src: 'node_modules/fork-awesome/fonts/*',
|
||||
dest: 'fonts/fork-awesome'
|
||||
},
|
||||
{
|
||||
// Open Sans
|
||||
src: 'node_modules/open-sans-fonts/open-sans/{Bold*,Italic,Regular,Semibold*}/*',
|
||||
dest: 'fonts/open-sans'
|
||||
}
|
||||
],
|
||||
|
||||
// Paths to images which will be compressed and copied
|
||||
IMAGES_FILES: [
|
||||
'assets/img/**/*'
|
||||
],
|
||||
|
||||
// Paths to JavaScript entries which will be bundled
|
||||
JS_ENTRIES: [
|
||||
'assets/js/app.js'
|
||||
],
|
||||
|
||||
// Paths to Sass files which will be compiled
|
||||
SASS_ENTRIES: [
|
||||
'assets/scss/app.scss',
|
||||
'assets/scss/fork-awesome.scss'
|
||||
],
|
||||
|
||||
// Paths to Sass libraries, which can then be loaded with @import
|
||||
SASS_INCLUDE_PATHS: [
|
||||
'node_modules'
|
||||
],
|
||||
|
||||
// Path to the build output, which will never be cleaned
|
||||
BUILD_PATH: 'initiatives_paysannes/static'
|
||||
};
|
||||
|
||||
/// CSS -----------------------------------------------------------------------
|
||||
|
||||
// Compile Sass into CSS.
|
||||
gulp.task('sass', function() {
|
||||
return gulp.src(CONFIG.SASS_ENTRIES)
|
||||
.pipe($.sourcemaps.init())
|
||||
.pipe($.sass({
|
||||
includePaths: CONFIG.SASS_INCLUDE_PATHS
|
||||
}).on('error', $.sass.logError))
|
||||
.pipe($.autoprefixer())
|
||||
.pipe($.sourcemaps.write('.'))
|
||||
.pipe(gulp.dest(`${CONFIG.BUILD_PATH}/css`))
|
||||
.pipe(browser.reload({ stream: true }));
|
||||
});
|
||||
|
||||
// Lint Sass files.
|
||||
gulp.task('lint:sass', function() {
|
||||
return gulp.src('assets/scss/**/*.scss')
|
||||
.pipe($.stylelint({
|
||||
failAfterError: true,
|
||||
reporters: [
|
||||
{ formatter: 'verbose', console: true }
|
||||
]
|
||||
}));
|
||||
});
|
||||
|
||||
// Compress CSS files.
|
||||
gulp.task('compress:css', function() {
|
||||
return gulp.src([
|
||||
`${CONFIG.BUILD_PATH}/css/*.css`,
|
||||
`!${CONFIG.BUILD_PATH}/css/*.min.css`
|
||||
])
|
||||
.pipe($.cleanCss())
|
||||
.pipe($.rename({ suffix: '.min' }))
|
||||
.pipe(gulp.dest(`${CONFIG.BUILD_PATH}/css`));
|
||||
});
|
||||
|
||||
gulp.task('css',
|
||||
gulp.series('sass', 'compress:css'));
|
||||
|
||||
/// JavaScript ----------------------------------------------------------------
|
||||
|
||||
let webpackConfig = {
|
||||
devtool: 'source-map',
|
||||
mode: 'development',
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /.js$/,
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: ['@babel/preset-env'],
|
||||
compact: false
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
stats: {
|
||||
chunks: false,
|
||||
entrypoints: false,
|
||||
}
|
||||
}
|
||||
|
||||
// Bundle JavaScript module.
|
||||
gulp.task('javascript', function() {
|
||||
return gulp.src(CONFIG.JS_ENTRIES)
|
||||
.pipe(named())
|
||||
.pipe(webpackStream(webpackConfig, webpack))
|
||||
.pipe(gulp.dest(`${CONFIG.BUILD_PATH}/js`));
|
||||
});
|
||||
|
||||
// Lint JavaScript source files.
|
||||
gulp.task('lint:javascript', function() {
|
||||
return gulp.src('assets/js/**/*.js')
|
||||
.pipe($.eslint())
|
||||
.pipe($.eslint.format())
|
||||
.pipe($.eslint.failAfterError());
|
||||
});
|
||||
|
||||
// Compress JavaScript files.
|
||||
gulp.task('compress:javascript', function() {
|
||||
return gulp.src([
|
||||
`${CONFIG.BUILD_PATH}/js/*.js`,
|
||||
`!${CONFIG.BUILD_PATH}/js/*.min.js`
|
||||
])
|
||||
.pipe($.terser().on('error', e => { console.log(e); }))
|
||||
.pipe($.rename({ suffix: '.min' }))
|
||||
.pipe(gulp.dest(`${CONFIG.BUILD_PATH}/js`));
|
||||
});
|
||||
|
||||
gulp.task('scripts',
|
||||
gulp.series('javascript', 'compress:javascript'));
|
||||
|
||||
/// Other assets --------------------------------------------------------------
|
||||
|
||||
// Compress and copy images.
|
||||
gulp.task('images', function() {
|
||||
return gulp.src(CONFIG.IMAGES_FILES)
|
||||
.pipe($.imagemin({ progressive: true }))
|
||||
.pipe(gulp.dest(`${CONFIG.BUILD_PATH}/img`));
|
||||
});
|
||||
|
||||
// Copy other assets files.
|
||||
gulp.task('copy', function() {
|
||||
return merge(CONFIG.ASSETS_FILES.map(
|
||||
item => gulp.src(item.src)
|
||||
.pipe(gulp.dest(`${CONFIG.BUILD_PATH}/${item.dest}`))
|
||||
));
|
||||
});
|
||||
|
||||
/// HTML files ----------------------------------------------------------------
|
||||
|
||||
// Generate a style guide from the Markdown content.
|
||||
gulp.task('styleguide', done => {
|
||||
sherpa('styleguide/index.md', {
|
||||
output: 'styleguide/index.html',
|
||||
template: 'styleguide/template.html'
|
||||
}, done);
|
||||
});
|
||||
|
||||
/// General tasks -------------------------------------------------------------
|
||||
|
||||
// Build and compress CSS, JavaScript and other assets.
|
||||
gulp.task('build',
|
||||
gulp.parallel('css', 'scripts', 'images', 'copy', 'styleguide'));
|
||||
|
||||
// Watch for changes to static assets, Sass and JavaScript.
|
||||
gulp.task('watch', function() {
|
||||
gulp.watch([].concat.apply([], CONFIG.ASSETS_FILES.map(a => a.src)),
|
||||
gulp.series('copy', reload));
|
||||
|
||||
gulp.watch('assets/scss/**/*.scss',
|
||||
gulp.series('sass'));
|
||||
gulp.watch('assets/js/**/*.js',
|
||||
gulp.series('javascript', reload));
|
||||
gulp.watch('assets/img/**/*',
|
||||
gulp.series('images', reload));
|
||||
|
||||
gulp.watch(['styleguide/*', '!styleguide/index.html'],
|
||||
gulp.series('styleguide', reload));
|
||||
});
|
||||
|
||||
// Run a development server and watch for file changes.
|
||||
gulp.task('serve',
|
||||
gulp.series(proxyServer, 'watch'));
|
||||
|
||||
// Run a preview server and watch for file changes.
|
||||
gulp.task('serve:styleguide',
|
||||
gulp.series(styleguideServer, 'watch'));
|
||||
|
||||
// Lint Sass and JavaScript sources.
|
||||
gulp.task('lint',
|
||||
gulp.parallel('lint:sass'));
|
||||
|
||||
// An alias to the 'build' task.
|
||||
gulp.task('default',
|
||||
gulp.parallel('build'));
|
||||
|
||||
/// Internal tasks ------------------------------------------------------------
|
||||
|
||||
// Start a server with BrowserSync and proxify the application in.
|
||||
function proxyServer(done) {
|
||||
browser.init({
|
||||
proxy: CONFIG.SERVER_PROXY,
|
||||
port: CONFIG.SERVER_PORT,
|
||||
serveStatic: [
|
||||
{
|
||||
route: '/static',
|
||||
dir: CONFIG.BUILD_PATH
|
||||
},
|
||||
{
|
||||
route: '/styleguide',
|
||||
dir: './styleguide'
|
||||
}
|
||||
],
|
||||
ghostMode: false,
|
||||
notify: false
|
||||
});
|
||||
done();
|
||||
}
|
||||
|
||||
// Start a server with BrowserSync with the styleguide.
|
||||
function styleguideServer(done) {
|
||||
browser.init({
|
||||
server: {
|
||||
baseDir: './styleguide',
|
||||
routes: {
|
||||
'/static': CONFIG.BUILD_PATH
|
||||
}
|
||||
},
|
||||
port: CONFIG.SERVER_PORT,
|
||||
ghostMode: false,
|
||||
notify: false
|
||||
});
|
||||
done();
|
||||
}
|
||||
|
||||
// Reload the BrowserSync server.
|
||||
function reload(done) {
|
||||
browser.reload();
|
||||
done();
|
||||
}
|
|
@ -0,0 +1,192 @@
|
|||
<html class="no-js" lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>
|
||||
Initiatives Paysannes
|
||||
--
|
||||
Pour des fermes vivantes et diversifiées sur tout le territoire des Hauts De France !
|
||||
</title>
|
||||
|
||||
<link rel="stylesheet" href="static/css/fork-awesome.css">
|
||||
<link rel="stylesheet" href="static/css/app.css">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div class="app-container">
|
||||
<img class="w-100" src="static/img/banniere.jpg" alt="Bannière"></img>
|
||||
<main class="app-content">
|
||||
<div class="container content-container">
|
||||
<div class="mt-3 row align-items-center">
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<img class="w-100" src="static/img/logo.png" alt="logos de Initiatives Paysannes"></img>
|
||||
</div>
|
||||
<div class="col-12 d-md-none d-lg-block col-lg-4">
|
||||
<div class="text-blue lead">
|
||||
Pour des fermes vivantes et diversifiées sur tout le territoire des Hauts De France !
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="card text-white bg-orange mb-3">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title">
|
||||
Antenne d'Arras
|
||||
</h3>
|
||||
<p class="card-text">
|
||||
40 avenue Roger Salengro<br>
|
||||
62 223 Saint-Laurent Blangy
|
||||
</p>
|
||||
<hr>
|
||||
<h3 class="card-title">
|
||||
Antenne d'Amiens
|
||||
</h3>
|
||||
<p class="card-text">
|
||||
14 rue du 8 mai 1945<br>
|
||||
80 090 Amiens
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 d-none d-md-block d-lg-none col-lg-4">
|
||||
<div class="lead">
|
||||
Pour des fermes vivantes et diversifiées sur tout le territoire des Hauts De France !
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="my-4">Nos actions :</h2>
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-lg-4">
|
||||
<h3 class="text-green">Accompagner la transmission des fermes</h3>
|
||||
<ul class="item-green">
|
||||
<li>Un accompagnement personnalisé avec une approche globale afin d’élaborer un plan d’action</li>
|
||||
<li>Une mise en relation avec un ou des repreneurs</li>
|
||||
<li>Un diagnostic transmission</li>
|
||||
</ul>
|
||||
|
||||
<h3 class="text-red">Accompagner l’installation</h3>
|
||||
<ul class="item-red">
|
||||
<li>Un accompagnement personnalisé depuis l’émergence du projet jusqu’à 3 ans après l’installation</li>
|
||||
<li>Un prêt d’honneur</li>
|
||||
<li>Une formation longue de terrain adaptée à vos besoins : le Pass Installation APTEA</li>
|
||||
</ul>
|
||||
|
||||
<h3 class="text-cyan">Sensibiliser le public aux enjeux de l’agriculture paysanne :</h3>
|
||||
<ul class="item-cyan">
|
||||
<li>Une fête de l’agriculture paysanne chaque année sur le territoire</li>
|
||||
<li>Des chantiers participatifs</li>
|
||||
<li>Des cinés débats, etc</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-lg-4">
|
||||
<div class="card text-white bg-primary mb-3">
|
||||
<div class="card-header">
|
||||
<h3>Initiatives paysannes</h3>
|
||||
est une association qui rassemble des paysans, des porteurs de projet, des artisans et des citoyens.
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h4 class="card-title">
|
||||
Notre vocation : développer et promouvoir l’agriculture paysanne :
|
||||
</h4>
|
||||
<p class="card-text">
|
||||
<ul class="item-arrow">
|
||||
<li>nourricière,</li>
|
||||
<li>citoyenne,</li>
|
||||
<li>respectueuse de l’environnement,</li>
|
||||
<li>créatrice d’emploi,</li>
|
||||
<li>en lien avec les territoires.</li>
|
||||
</ul>
|
||||
Nous soutenons le développement d’une agriculture alternative à l’agriculture industrielle et productiviste, en permettant des installations nombreuses grâce à une répartitrion équitable des moyens de productions.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-lg-4">
|
||||
<h3 class="text-blue">Promouvoir les semences paysannes</h3>
|
||||
<ul class="item-blue">
|
||||
<li>Un réseau d’expérimentation agronomiques et boulangères de blés anciens</li>
|
||||
<li>Un accompagnement à la structuration de filières locales et équitables du « blé au pain »</li>
|
||||
<li>Une veille juridique</li>
|
||||
</ul>
|
||||
|
||||
<h3 class="text-primary">Favoriser les pratiques en agriculture paysanne</h3>
|
||||
<ul class="item-primary">
|
||||
<li>Un accompagnement personnalisé à l’évolutrion de votre ferme, avec une approche gloable, à toute étape de votre carrière</li>
|
||||
<li>Des groupes d’échanges entre paysan.nes sur les thématiques qui vous interessent</li>
|
||||
<li>Un outil de vision et d’évolution durable de votre ferme : le diagnoctic Agriculture Paysanne</li>
|
||||
<li>Des visites de fermes</li>
|
||||
</ul>
|
||||
<h3 class="text-orange">Organiser des formations sur toutes ces thématiques</h3>
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="my-4">Pour en savoir plus :</h2>
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-6" >
|
||||
<h3 class="text-secondary">Contacts</h3>
|
||||
|
||||
<h4 class="text-red">Installation</h4>
|
||||
<i class="text-primary fa fa-envelope mr-2"></i>
|
||||
<a href="mailto:installation@initiatives-paysannes.fr">installation@initiatives-paysannes.fr</a>
|
||||
<br>
|
||||
<i class="text-primary fa fa-phone mr-2"></i>
|
||||
<a href="tel:+33921243152">09 21 24 31 52 (Arras)</a>
|
||||
ou
|
||||
<a href="tel:+33922421257">09 22 42 12 57 (Amiens)</a>
|
||||
|
||||
<hr>
|
||||
<h4 class="text-green">Transmission</h4>
|
||||
<i class="text-primary fa fa-envelope mr-2"></i>
|
||||
<a href="mailto:transmission@initiatives-paysannes.fr">transmission@initiatives-paysannes.fr</a>
|
||||
<br>
|
||||
<i class="text-primary fa fa-phone mr-2"></i>
|
||||
<a href="tel:+33921243154">09 21 24 31 54 (Arras)</a>
|
||||
ou
|
||||
<a href="tel:+33922421257">09 22 42 12 57 (Amiens)</a>
|
||||
|
||||
<hr>
|
||||
<h4 class="text-blue">Semences paysannes</h4>
|
||||
<i class="text-primary fa fa-envelope mr-2"></i>
|
||||
<a href="mailto:semences@initiatives-paysannes.fr">semences@initiatives-paysannes.fr</a>
|
||||
<br>
|
||||
<i class="text-primary fa fa-phone mr-2"></i>
|
||||
<a href="tel:+33977955678">09 77 95 56 78</a>
|
||||
|
||||
<hr>
|
||||
<h4 class="text-orange">Changements de partiques vers l'agriculture paysanne</h4>
|
||||
<i class="text-primary fa fa-envelope mr-2"></i>
|
||||
<a href="mailto:agriculture@initiatives-paysannes.fr">agriculture@initiatives-paysannes.fr</a>
|
||||
<br>
|
||||
<i class="text-primary fa fa-phone mr-2"></i>
|
||||
<a href="tel:+33921243154">09 21 24 31 54</a>
|
||||
|
||||
<hr>
|
||||
<h4 class="text-cyan">Sensibilisation du public à l'agriculture paysanne</h4>
|
||||
<i class="text-primary fa fa-envelope mr-2"></i>
|
||||
<a href="mailto:evenements@initiatives-paysannes.fr">evenements@initiatives-paysannes.fr</a>
|
||||
<br>
|
||||
<i class="text-primary fa fa-phone mr-2"></i>
|
||||
<a href="tel:+33977955678">09 77 95 56 78</a>
|
||||
|
||||
</div>
|
||||
<div class="col-12 col-lg-6" >
|
||||
<h4 class="text-cyan">Initiatives paysannes – Territoires Hauts de France est née en 2019 de la fusion de 4 associations</h4>
|
||||
<img class="w-100" src="static/img/logo_fusion.png" alt="logos de Cedapas, Avenir, Copasol, Adearn"></img>
|
||||
|
||||
<hr>
|
||||
<h4 class="text-secondary">Initiatives paysannes est membre des réseaux</h4>
|
||||
<img class="w-100" src="static/img/logo_reseau.png" alt="logos de Fadear, Imppact, réseau semences paysannes, Reneta"></img>
|
||||
|
||||
<hr>
|
||||
<h4 class="text-primary">Avec le soutien de</h4>
|
||||
<img class="w-100" src="static/img/logo_financeurs.png" alt="logos de Interreg, ministère de l'agriculture, région Hauts de France, Départements Nord et Pas de Calais"></img>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
<script src="{% minified "js/app.js" %}"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"name": "initiatives_paysannes",
|
||||
"version": "0.1.0",
|
||||
"description": "Placeholder",
|
||||
"author": "Cliss XXI <tech@cliss21.com>",
|
||||
"license": "AGPL-3.0+",
|
||||
"scripts": {
|
||||
"build": "gulp build",
|
||||
"lint": "gulp lint",
|
||||
"serve": "gulp serve",
|
||||
"styleguide": "gulp serve:styleguide"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "~4.3.1",
|
||||
"fork-awesome": "^1.1.7",
|
||||
"jquery": ">=3.0.0",
|
||||
"open-sans-fonts": "^1.5.1",
|
||||
"popper.js": "^1.14.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.3.4",
|
||||
"@babel/preset-env": "^7.3.4",
|
||||
"babel-eslint": "^10.0.1",
|
||||
"babel-loader": "^8.0.2",
|
||||
"browser-sync": "^2.26.3",
|
||||
"eslint": "^5.15.1",
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-autoprefixer": "^6.0.0",
|
||||
"gulp-babel": "^8.0.0",
|
||||
"gulp-clean-css": "^4.0.0",
|
||||
"gulp-cli": "^2.0.1",
|
||||
"gulp-eslint": "^5.0.0",
|
||||
"gulp-imagemin": "^5.0.3",
|
||||
"gulp-load-plugins": "^1.1.0",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"gulp-sass": "^4.0.2",
|
||||
"gulp-sourcemaps": "^2.6.5",
|
||||
"gulp-stylelint": "^8.0.0",
|
||||
"gulp-terser": "^1.1.7",
|
||||
"merge-stream": "^1.0.1",
|
||||
"style-sherpa": "^1.0.0",
|
||||
"stylelint": "^9.10.1",
|
||||
"stylelint-config-recommended-scss": "^3.2.0",
|
||||
"stylelint-config-standard": "^18.2.0",
|
||||
"stylelint-order": "^2.1.0",
|
||||
"stylelint-scss": "^3.5.4",
|
||||
"vinyl-named": "^1.1.0",
|
||||
"webpack": "^4.29.6",
|
||||
"webpack-stream": "^5.2.1"
|
||||
},
|
||||
"private": true
|
||||
}
|
|
@ -0,0 +1,112 @@
|
|||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Initiatives Paysannes - Guide des styles</title>
|
||||
|
||||
<!-- Load Highlight.js CSS only. -->
|
||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/styles/github.min.css">
|
||||
|
||||
<link rel="stylesheet" href="/static/css/app.css">
|
||||
<link rel="stylesheet" href="/static/css/fork-awesome.css">
|
||||
|
||||
<!-- Style guide-specific CSS. -->
|
||||
<style>
|
||||
/* Side menu with sections */
|
||||
.sg-side-menu {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
/* Individual sections of the style guide */
|
||||
.ss-section:not(:last-child) {
|
||||
padding-bottom: 4rem;
|
||||
border-bottom: 2px solid #f8f9fa;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
/* Code blocks used for examples */
|
||||
.ss-code pre {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.ss-code code {
|
||||
display: block;
|
||||
padding: 1.5rem;
|
||||
overflow-x: auto;
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
|
||||
/* Output of code blocks used for examples */
|
||||
.ss-code-live {
|
||||
padding: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
border: 3px solid #f8f9fa;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class="jumbotron sg-header">
|
||||
<div class="container">
|
||||
<h1>Initiatives Paysannes<small class="text-muted"> : Guide des styles</small></h1>
|
||||
<p class="lead">Ce guide des styles ne documente que les composants ou autres styles propres à l'application. Pour plus de détails sur l'utilisation du framework Bootstrap et de ses composants, consultez la documentation. Une page donne également un aperçu des composants principaux de Bootstrap mis en forme pour l'application.</p>
|
||||
<hr class="my-4">
|
||||
<a class="btn btn-primary btn-lg" href="https://getbootstrap.com/docs/" role="button">
|
||||
<i class="fa fa-life-ring mr-2"></i>
|
||||
Documentation de Bootstrap
|
||||
</a>
|
||||
<a class="btn btn-primary btn-lg" href="preview.html" role="button">
|
||||
<i class="fa fa-eye mr-2"></i>
|
||||
Aperçu des composants
|
||||
</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div class="col col-md-4 col-lg-3">
|
||||
<ul class="nav flex-column sg-side-menu">
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#typographie">Typographie</a>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col col-md-8 col-lg-9">
|
||||
<section class="ss-section" id="typographie">
|
||||
<h1>Typographie</h1><p class="lead">Cette application utilise la police d'écriture <a href="#"><b>?</b></a>, sous licence ?.</p>
|
||||
|
||||
<hr>
|
||||
<h2>Titres</h2><h1>Titre de niveau 1</h1>
|
||||
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.</p>
|
||||
<h2>Titre de niveau 2</h2>
|
||||
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.</p>
|
||||
<h3>Titre de niveau 3</h3>
|
||||
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.</p>
|
||||
<h4>Titre de niveau 4</h4>
|
||||
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.</p>
|
||||
<h5>Titre de niveau 5</h5>
|
||||
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.</p>
|
||||
<h6>Titre de niveau 6</h6>
|
||||
|
||||
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.</p>
|
||||
|
||||
</section>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/app.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,31 @@
|
|||
# Typographie
|
||||
|
||||
<p class="lead">Cette application utilise la police d'écriture <a href="#"><b>?</b></a>, sous licence ?.</p>
|
||||
|
||||
---
|
||||
|
||||
## Titres
|
||||
|
||||
<h1>Titre de niveau 1</h1>
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.
|
||||
|
||||
<h2>Titre de niveau 2</h2>
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.
|
||||
|
||||
<h3>Titre de niveau 3</h3>
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.
|
||||
|
||||
<h4>Titre de niveau 4</h4>
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.
|
||||
|
||||
<h5>Titre de niveau 5</h5>
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.
|
||||
|
||||
<h6>Titre de niveau 6</h6>
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Hic quibusdam ratione sunt dolorum, qui illo maxime doloremque accusantium cum libero eum, a optio odio placeat debitis ullam aut non distinctio.
|
Fichier diff supprimé car celui-ci est trop grand
Voir la Diff
|
@ -0,0 +1,95 @@
|
|||
<!doctype html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Initiatives Paysannes - Guide des styles</title>
|
||||
|
||||
<!-- Load Highlight.js CSS only. -->
|
||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.9.1/styles/github.min.css">
|
||||
|
||||
<link rel="stylesheet" href="/static/css/app.css">
|
||||
<link rel="stylesheet" href="/static/css/fork-awesome.css">
|
||||
|
||||
<!-- Style guide-specific CSS. -->
|
||||
<style>
|
||||
/* Side menu with sections */
|
||||
.sg-side-menu {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
/* Individual sections of the style guide */
|
||||
.ss-section:not(:last-child) {
|
||||
padding-bottom: 4rem;
|
||||
border-bottom: 2px solid #f8f9fa;
|
||||
margin-bottom: 4rem;
|
||||
}
|
||||
|
||||
/* Code blocks used for examples */
|
||||
.ss-code pre {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.ss-code code {
|
||||
display: block;
|
||||
padding: 1.5rem;
|
||||
overflow-x: auto;
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
|
||||
/* Output of code blocks used for examples */
|
||||
.ss-code-live {
|
||||
padding: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
border: 3px solid #f8f9fa;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class="jumbotron sg-header">
|
||||
<div class="container">
|
||||
<h1>Initiatives Paysannes<small class="text-muted"> : Guide des styles</small></h1>
|
||||
<p class="lead">Ce guide des styles ne documente que les composants ou autres styles propres à l'application. Pour plus de détails sur l'utilisation du framework Bootstrap et de ses composants, consultez la documentation. Une page donne également un aperçu des composants principaux de Bootstrap mis en forme pour l'application.</p>
|
||||
<hr class="my-4">
|
||||
<a class="btn btn-primary btn-lg" href="https://getbootstrap.com/docs/" role="button">
|
||||
<i class="fa fa-life-ring mr-2"></i>
|
||||
Documentation de Bootstrap
|
||||
</a>
|
||||
<a class="btn btn-primary btn-lg" href="preview.html" role="button">
|
||||
<i class="fa fa-eye mr-2"></i>
|
||||
Aperçu des composants
|
||||
</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
|
||||
<div class="col col-md-4 col-lg-3">
|
||||
<ul class="nav flex-column sg-side-menu">
|
||||
|
||||
{{#each pages}}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#{{ anchor }}">{{ title }}</a>
|
||||
</li>
|
||||
{{/each}}
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="col col-md-8 col-lg-9">
|
||||
{{#each pages}}
|
||||
<section class="ss-section" id="{{ anchor }}">
|
||||
{{ body }}
|
||||
</section>
|
||||
{{/each}}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/static/js/app.js"></script>
|
||||
</body>
|
||||
</html>
|
Chargement…
Référencer dans un nouveau ticket