Initial commit

main
gwen 2 years ago
commit fbfee068eb

2
.gitignore vendored

@ -0,0 +1,2 @@
.venv/*

@ -0,0 +1,29 @@
# Actes princiers
The research project "Actes princiers in the Kingdom of France (14th-16th centuries)" aims to gather and edit the acts produced by the chancelleries of various French princes and princesses of royal blood from the 14th and 15th centuries. This mostly unpublished collection aims to shed light on the interactions between the power strategies of the princes of the Late Middle Ages and the methods of writing used by their chancelleries.
The project is led by the Western Medieval Studies Laboratory of Paris (Paris 1/CNRS), and supported by the Historical Research Center (CNRS/EHESS), the Jean Mabillon Center (National School of Paleography) and the National Archives of France. It received funding from the LabEX HASTEC in 2023.
## Installation process
This process describes how to install and run the project locally, e.g. for development purposes.
_Nota_ : commands to execute through the terminal (Linux or macOS)
- Clone the repo;
- Install the virtual environment:
- Check that youre using Python 3.x version by running : `python --version` (>3.8 required);
- Go to the following directory : `cd webapp`;
- Install the environment : `python3 -m venv .venv`.
- Install the packages and libraries :
- Activate the environment : `source bootstrap.sh`;
- Installation : `pip install -r requirements.txt`
- Exit the environment : `deactivate`;
## Launch
- Activate the environment : `source bootstrap.sh`;
- Launch : `flask run`;
- Go to http://127.0.0.1:5000/;
- Stop : `ctrl + c`;
- Exit the environment : `deactivate`.

Binary file not shown.

@ -0,0 +1 @@
from .app import app

@ -0,0 +1,29 @@
import typing as t
import os
from flask import Flask
import werkzeug
APPPATH = os.path.dirname(os.path.abspath(__file__))
templates = os.path.join(APPPATH, "templates")
static = os.path.join(APPPATH, "static")
app = Flask(
"Princely-Acts",
template_folder=templates,
static_folder=static,
static_url_path=''
)
@app.errorhandler(404)
def page_not_found(e: werkzeug.exceptions.HTTPException) -> t.Tuple[t.Text, int]:
return render_template("404.html", title="Page non trouvée"), 404
@app.errorhandler(500)
def internal_server_error(e: werkzeug.exceptions.HTTPException) -> t.Tuple[t.Text, int]:
return render_template("500.html", title="Erreur interne du serveur"), 500

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,330 @@
/*!
* Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-ms-overflow-style: scrollbar;
-webkit-tap-highlight-color: transparent;
}
@-ms-viewport {
width: device-width;
}
article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
dfn {
font-style: italic;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
-webkit-text-decoration-skip: objects;
}
a:hover {
color: #0056b3;
text-decoration: underline;
}
a:not([href]):not([tabindex]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
color: inherit;
text-decoration: none;
}
a:not([href]):not([tabindex]):focus {
outline: 0;
}
pre,
code,
kbd,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-ms-overflow-style: scrollbar;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
}
label {
display: inline-block;
margin-bottom: .5rem;
}
button {
border-radius: 0;
}
button:focus {
outline: 1px dotted;
outline: 5px auto -webkit-focus-ring-color;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html [type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
-webkit-appearance: listbox;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because one or more lines are too long

@ -0,0 +1,8 @@
/*!
* Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,91 @@
/* GLOBAL STYLES
-------------------------------------------------- */
/* Padding below the footer and lighter body text */
body {
padding-top: 3rem;
/* padding-bottom: 3rem; */
color: #5a5a5a;
}
/* CUSTOMIZE THE CAROUSEL
-------------------------------------------------- */
/* Carousel base class */
.carousel {
margin-bottom: 4rem;
}
/* Since positioning the image, we need to help out the caption */
.carousel-caption {
bottom: 3rem;
z-index: 10;
}
/* Declare heights because of positioning of img element */
.carousel-item {
height: 32rem;
background-color: #777;
}
.carousel-item > img {
position: absolute;
top: 0;
left: 0;
min-width: 100%;
height: 32rem;
}
/* MARKETING CONTENT
-------------------------------------------------- */
/* Center align the text within the three columns below the carousel */
.marketing .col-lg-4 {
margin-bottom: 1.5rem;
text-align: center;
}
.marketing h2 {
font-weight: 400;
}
.marketing .col-lg-4 p {
margin-right: .75rem;
margin-left: .75rem;
}
/* Featurettes
------------------------- */
.featurette-divider {
margin: 5rem 0; /* Space out the Bootstrap <hr> more */
}
/* Thin out the marketing headings */
.featurette-heading {
font-weight: 300;
line-height: 1;
letter-spacing: -.05rem;
}
/* RESPONSIVE CSS
-------------------------------------------------- */
@media (min-width: 40em) {
/* Bump up size of carousel content */
.carousel-caption p {
margin-bottom: 1.25rem;
font-size: 1.25rem;
line-height: 1.4;
}
.featurette-heading {
font-size: 50px;
}
}
@media (min-width: 62em) {
.featurette-heading {
margin-top: 7rem;
}
}

@ -0,0 +1,101 @@
@charset "UTF-8";
.boly {
/*background: linear-gradient(55deg, #4E75B9 30%, #5CBF98 90%);*/
display: flex;
align-items: center;
justify-content: center;
}
.pboly {
margin-left: 40%;
}
.timeline-princier {
width: 100%;
/*max-width: 800px;*/
background: #fff;
padding: 100px 50px;
position: relative;
/*box-shadow: 0.5rem 0.5rem 2rem 0 rgba(0, 0, 0, 0.2);*/
}
.timeline-princier:before {
content: '';
position: absolute;
top: 0px;
left: calc(33% + 40px); /*modifier la position de la barre*/
bottom: 0px;
width: 4px;
background: #05386b; /*modifier la couleur de la barre*/
}
.timeline-princier:after {
content: "";
display: table;
clear: both;
}
.entry-princier {
clear: both;
text-align: left;
position: relative;
}
.entry-princier .title-princier {
margin-bottom: .5em;
float: left;
width: 33%;
padding-right: 45px;
text-align: right;
position: relative;
}
.entry-princier .title-princier:before {
content: '';
position: absolute;
width: 8px;
height: 8px;
border: 11px solid #28a745; /* modifier la taille des puces */
background-color: #fff;
border-radius: 100%;
top: 5%; /* modifier la position verticale des puces */
right: -36px; /* modifier la position horizontale des puces */
z-index: 99;
}
.entry-princier .title-princier h3 {
margin: 0;
font-size: x-large;
}
.entry-princier .title-princier p {
margin: 0;
font-size: small;
}
.entry-princier .boly {
margin: 0 0 3em;
float: right;
width: 66%;
padding-left: 30px;
}
.entry-princier .boly p {
line-height: 1.4em;
}
.entry-princier .boly p:first-child {
margin-top: 0;
font-weight: 400;
}
.entry-princier .boly ul {
color: #aaa;
padding-left: 0;
list-style-type: none;
}
.entry-princier .boly ul li:before {
content: "";
margin-right: .5em;
}
.chrono-p {
font-size: large;
margin-bottom: 0%;
}
.chrono-p > a {
color: #5a5a5a;;
}
.chrono-p > a:hover {
color: #28a745;
text-decoration: none;
}

@ -0,0 +1,84 @@
.caption-main {
text-align: center;
font-style: italic;
font-size: smaller;
margin: 1.5% auto 0 auto;
}
.caption-sub {
text-align: center;
font-style: italic;
font-size: small;
margin-top: 0;
}
.analyse {
text-align: justify;
font-style: italic;
font-size: 20px;
line-height: 1.8;
}
.analyse > p {
text-indent: 5%;
margin-top: 1.5%;
margin-bottom: 1.5%;
}
.tradition {
font-size: small;
text-align: justify;
margin-top: 10px;
margin-bottom: 20px;
font-size: 17px;
line-height: 1.5;
}
.tradition > p {
margin: 0.5%;
}
.act {
text-align: justify;
text-indent: 5%;
margin-top: 2%;
margin-bottom: 0.5%;
font-size: 20px;
line-height: 2;
}
.text_etabli {
text-align: center;
font-variant: small-caps;
font-size: 18pt;
}
.mht {
text-indent: 5%;
font-size: 14pt;
margin-top: 0.5%;
margin-bottom: 0.5%;
}
.signature {
text-indent: 5%;
font-size: 14pt;
margin-top: 0.5%;
margin-bottom: 0.5%
}
.signature > p {
margin-top: 0%;
margin-bottom: 0.5%
}
.note-global {
margin-top: 1%;
margin-bottom: 3%;
font-size: 11pt;
}
.note-global > p {
margin: 0.25%;
text-align: justify;
}

@ -0,0 +1,249 @@
.bigfoot-footnote__button {
position: relative;
z-index: 5;
top: -0.1em;
box-sizing: border-box;
-moz-box-sizing: border-box;
display: inline-block;
padding: 0.35em;
margin: 0 0.1em 0 0.2em;
border: none;
border-radius: 0.3em;
cursor: pointer;
background-color: rgba(110, 110, 110, 0.2);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
font-size: 1rem;
line-height: 0;
vertical-align: middle;
text-decoration: none;
-webkit-font-smoothing: antialiased;
-webkit-transition-property: background-color;
transition-property: background-color;
-webkit-transition-duration: 0.25s;
transition-duration: 0.25s;
}
.bigfoot-footnote__button:hover, .bigfoot-footnote__button:focus {
outline: none;
background-color: rgba(110, 110, 110, 0.5);
}
.bigfoot-footnote__button:active {
background-color: rgba(110, 110, 110, 0.5);
}
.bigfoot-footnote__button.is-active {
background-color: #6e6e6e;
-webkit-transition-delay: 0.1s;
transition-delay: 0.1s;
}
.bigfoot-footnote__button:after {
content: '';
display: table;
clear: both;
}
.bigfoot-footnote__button__circle {
display: inline-block;
width: 0.25em;
height: 0.25em;
margin-right: 0.25em;
float: left;
}
.bigfoot-footnote__button__circle:last-child {
margin-right: 0;
}
.bigfoot-footnote__container {
display: inline-block;
position: relative;
text-indent: 0;
}
@media not print {
.footnote-print-only {
display: none !important;
}
}
@media print {
.bigfoot-footnote,
.bigfoot-footnote__button {
display: none !important;
}
}
.bigfoot-footnote {
position: absolute;
z-index: 10;
top: 0;
left: 0;
display: inline-block;
box-sizing: border-box;
max-width: 90%;
margin: 1.96924em 0;
background: #fafafa;
opacity: 0;
border-radius: 0.5em;
border: 1px solid #c3c3c3;
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
line-height: 0;
-webkit-transition-property: opacity, -webkit-transform;
transition-property: opacity, transform;
-webkit-transition-duration: 0.25s;
transition-duration: 0.25s;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
-webkit-transform: scale(0.1) translateZ(0);
transform: scale(0.1) translateZ(0);
-webkit-transform-origin: 50% 0;
-ms-transform-origin: 50% 0;
transform-origin: 50% 0;
}
.bigfoot-footnote.is-positioned-top {
top: auto;
bottom: 0;
}
.bigfoot-footnote.is-active {
-webkit-transform: scale(1) translateZ(0);
transform: scale(1) translateZ(0);
opacity: 0.97;
}
.bigfoot-footnote.is-bottom-fixed {
position: fixed;
bottom: 0;
top: auto;
left: 0;
right: auto;
-webkit-transform: translateY(100%);
-ms-transform: translateY(100%);
transform: translateY(100%);
width: 100%;
margin: 0;
border-radius: 0;
opacity: 1;
border-width: 1px 0 0;
-webkit-transition: -webkit-transform 0.3s ease;
transition: transform 0.3s ease;
}
.bigfoot-footnote.is-bottom-fixed.is-active {
-webkit-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0);
}
.bigfoot-footnote.is-bottom-fixed .bigfoot-footnote__wrapper {
margin: 0 0 0 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
max-width: 100%;
}
.bigfoot-footnote.is-bottom-fixed .bigfoot-footnote__wrapper,
.bigfoot-footnote.is-bottom-fixed .bigfoot-footnote__content {
border-radius: 0;
}
.bigfoot-footnote.is-bottom-fixed .bigfoot-footnote__tooltip {
display: none;
}
.bigfoot-footnote.is-scrollable:after {
content: '';
position: absolute;
bottom: 0.3375em;
left: 0.3375em;
z-index: 14;
display: block;
height: 0.78125em;
width: 0.625em;
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTJweCIgaGVpZ2h0PSIxNXB4IiB2aWV3Qm94PSIwIDAgMTIgMTUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4iPgogICAgPGcgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkFycm93IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxLjAwMDAwMCwgMS4wMDAwMDApIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiPgogICAgICAgICAgICA8cGF0aCBkPSJNNSwwIEw1LDExLjUiIGlkPSJMaW5lIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjUsNy41IEw1LjAyNzY5Mjc5LDEyLjAyNzY5MjgiIGlkPSJMaW5lIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjUsNy41IEw5LjAyNzY5Mjc5LDEyLjAyNzY5MjgiIGlkPSJMaW5lLTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMC4wMDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTAuMDAwMDAwKSAiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=");
background-size: cover;
opacity: 0.1;
transition-properties: opacity;
-webkit-transition-duration: 0.25s;
transition-duration: 0.25s;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.bigfoot-footnote.is-scrollable .bigfoot-footnote__wrapper:before, .bigfoot-footnote.is-scrollable .bigfoot-footnote__wrapper:after {
content: '';
position: absolute;
width: 100%;
z-index: 12;
left: 0;
}
.bigfoot-footnote.is-scrollable .bigfoot-footnote__wrapper:before {
top: -1px;
height: 1.1em;
border-radius: 0.5em 0.5em 0 0;
background-image: -webkit-linear-gradient(top, #fafafa 50%, rgba(250, 250, 250, 0) 100%);
background-image: linear-gradient(to bottom, #fafafa 50%, rgba(250, 250, 250, 0) 100%);
}
.bigfoot-footnote.is-scrollable .bigfoot-footnote__wrapper:after {
bottom: -1px;
height: 1.2em;
border-radius: 0 0 0.5em 0.5em;
background-image: -webkit-linear-gradient(bottom, #fafafa 50%, rgba(250, 250, 250, 0) 100%);
background-image: linear-gradient(to top, #fafafa 50%, rgba(250, 250, 250, 0) 100%);
}
.bigfoot-footnote.is-scrollable ::-webkit-scrollbar {
display: none;
}
.bigfoot-footnote.is-fully-scrolled:after, .bigfoot-footnote.is-fully-scrolled:before {
opacity: 0;
-webkit-transition-delay: 0;
transition-delay: 0;
}
.bigfoot-footnote__wrapper {
position: relative;
z-index: 14;
width: 22em;
display: inline-block;
box-sizing: inherit;
overflow: hidden;
margin: 0;
background-color: #fafafa;
border-radius: 0.5em;
line-height: 0;
}
.bigfoot-footnote__content {
position: relative;
z-index: 8;
display: inline-block;
max-height: 15em;
padding: 1.1em 1.3em 1.2em;
box-sizing: inherit;
overflow: auto;
-webkit-overflow-scrolling: touch;
background: #fafafa;
border-radius: 0.5em;
-webkit-font-smoothing: subpixel-antialiased;
line-height: normal;
}
.bigfoot-footnote__content img {
max-width: 100%;
}
.bigfoot-footnote__content *:last-child {
margin-bottom: 0 !important;
}
.bigfoot-footnote__content *:first-child {
margin-top: 0 !important;
}
.bigfoot-footnote__tooltip {
position: absolute;
z-index: 12;
box-sizing: border-box;
margin-left: -0.65em;
width: 1.3em;
height: 1.3em;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
background: #fafafa;
border: 1px solid #c3c3c3;
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
border-top-left-radius: 0;
}
.is-positioned-bottom .bigfoot-footnote__tooltip {
top: -0.65em;
}
.is-positioned-top .bigfoot-footnote__tooltip {
bottom: -0.65em;
}

@ -0,0 +1,619 @@
// bigfoot - v2.1.1 - 2015.04.04
// ___ ___ ___ ___ ___ ___
// / /\ / /\ / /\ / /\ ___ / /\ / /\
// / /::\ / /::\ / /::\ / /::\ /__/\ / /:/_ / /::\
// / /:/\:\ / /:/\:\ / /:/\:\ / /:/\:\ \ \:\ / /:/ /\ / /:/\:\
// / /:/~/:// /:/ \:\ / /:/~/:// /:/ \:\ \ \:\ / /:/ /:/_ / /:/~/:/
// /__/:/ /://__/:/ \__\:\/__/:/ /://__/:/ \__\:\ ___ \__\:\/__/:/ /:/ /\/__/:/ /:/___
// \ \:\/:/ \ \:\ / /:/\ \:\/:/ \ \:\ / /://__/\ | |:|\ \:\/:/ /:/\ \:\/:::::/
// \ \::/ \ \:\ /:/ \ \::/ \ \:\ /:/ \ \:\| |:| \ \::/ /:/ \ \::/~~~~
// \ \:\ \ \:\/:/ \ \:\ \ \:\/:/ \ \:\__|:| \ \:\/:/ \ \:\
// \ \:\ \ \::/ \ \:\ \ \::/ \__\::::/ \ \::/ \ \:\
// \__\/ \__\/ \__\/ \__\/ ~~~~ \__\/ \__\/
//
// These are the key variables for styling the popover.
// Just set the variable to none if you don't want that styling.
// KEY VARIABLES
// =============================================================================
// STYLES
$popover-width: 22em !default; // Ideal width of the popover
$popover-max-width: 90% !default; // Best as a % to accommodate smaller viewports
$popover-max-height: 15em !default; // Maximum size of the content area
$popover-color-background: rgb(250, 250, 250) !default; // Color of the popover background
$popover-border-radius: 0.5em !default; // Radius of the corners of the popover
$popover-border: 1px solid rgb(195, 195, 195) !default; // Border of the popover/ tooltip
$popover-inactive-opacity: 0 !default; // Opacity of the popover when instantiated/ deactivating
$popover-active-opacity: 0.97 !default; // Opacity of the popover when active
$popover-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3) !default; // Sets the box shadow under the popover/ tooltip
$popover-bottom-position: auto !default; // Sets the bottom position of the popover. Use only when setting positionPopover to false in the script
$popover-left-position: auto !default; // Sets the left position of the popover. Use only when setting positionPopover to false in the script
$popover-tooltip-size: 1.3em !default; // Sets the side lengths of the tooltip
$popover-scroll-indicator-width: 0.625em !default; // The width of the scroll indicator
$popover-scroll-indicator-aspect-ratio: (15/12) !default; // The ratio of the height over the width of the scroll indicator
$popover-scroll-indicator-opacity: 0.1 !default; // The active opacity of scroll indicators
$popover-initial-transform-state: scale(0.1) translateZ(0) !default; // The inital transform state for the popover
$popover-active-transform-state: scale(1) translateZ(0) !default; // The transform state for the popover once it is fully activated
// OPTIONAL ELEMENTS
$popover-include-tooltip: true !default; // Adds a tooltip pointing to the footnote button
$popover-include-scroll-indicator: true !default; // Adds an elipsis at the bottom of scrollable popovers
$popover-include-scrolly-fades: true !default; // Fades content in on scrollable popovers
$popover-scroll-indicator-icon: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTJweCIgaGVpZ2h0PSIxNXB4IiB2aWV3Qm94PSIwIDAgMTIgMTUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4iPgogICAgPGcgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkFycm93IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxLjAwMDAwMCwgMS4wMDAwMDApIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiPgogICAgICAgICAgICA8cGF0aCBkPSJNNSwwIEw1LDExLjUiIGlkPSJMaW5lIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjUsNy41IEw1LjAyNzY5Mjc5LDEyLjAyNzY5MjgiIGlkPSJMaW5lIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjUsNy41IEw5LjAyNzY5Mjc5LDEyLjAyNzY5MjgiIGlkPSJMaW5lLTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMC4wMDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTAuMDAwMDAwKSAiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=") !default;
// OTHER VARIABLES
// =============================================================================
// POPOVER
$popover-margin-top: 0.1em !default;
$popover-padding-content-horizontal: 1.3em !default;
$popover-padding-content-top: 1.1em !default;
$popover-padding-content-bottom: 1.2em !default;
$popover-z-index: 10 !default; // Set the base so that it's above the other body children
$popover-initial-transform-origin: 50% 0 !default;
// POPOVER CONTENT WRAPPER
$popover-content-color-background: $popover-color-background !default;
$popover-content-border-radius: $popover-border-radius !default;
// OTHER POPOVER ELEMENTS
$popover-tooltip-background: $popover-color-background !default;
$popover-tooltip-radius: 0 !default;
$popover-scroll-indicator-bottom-position: 0.45em !default;
$popover-scrolly-fade-gradient-start-location: 50% !default;
$popover-scroll-indicator-padding: (($popover-padding-content-horizontal/2) - ($popover-scroll-indicator-width/2)) !default;
// TRANSITIONS
$popover-transition-default-duration: 0.25s !default;
$popover-scroll-indicator-transition-properties: opacity !default;
// Use none for areas you don't want to transition
$popover-transition-properties: opacity, transform !default; // no mixin to do proper prefixing of the transform, so I have to do it manually; see mixin below
$popover-scroll-indicator-transition-properties: opacity !default;
$popover-scroll-up-transition-delay: 0.4s !default; // Sets the delay for the transition of the scroll indicator when scrolling upwards
$popover-transition-default-timing-function: ease !default;
// ___ ___ ___
// _____ /__/\ ___ ___ / /\ /__/\
// / /::\ \ \:\ / /\ / /\ / /::\ \ \:\
// / /:/\:\ \ \:\ / /:/ / /:/ / /:/\:\ \ \:\
// / /:/~/::\ ___ \ \:\ / /:/ / /:/ / /:/ \:\ _____\__\:\
// /__/:/ /:/\:|/__/\ \__\:\ / /::\ / /::\ /__/:/ \__\:\/__/::::::::\
// \ \:\/:/~/:/\ \:\ / /://__/:/\:\ /__/:/\:\\ \:\ / /:/\ \:\~~\~~\/
// \ \::/ /:/ \ \:\ /:/ \__\/ \:\\__\/ \:\\ \:\ /:/ \ \:\ ~~~
// \ \:\/:/ \ \:\/:/ \ \:\ \ \:\\ \:\/:/ \ \:\
// \ \::/ \ \::/ \__\/ \__\/ \ \::/ \ \:\
// \__\/ \__\/ \__\/ \__\/
//
// These are the key variables for styling the button.
// Just set the variable to none if you don't want that styling.
// KEY VARIABLES
// =============================================================================
$button-height: 0.95em !default; // The total height of the button
$button-width: auto !default; // The total button width (applies only if $button-apply-dimensions is true)
$button-inner-circle-size: 0.25em !default; // Total height/width of the ellipsis circles
$button-border-radius: 0.3em !default; // Border radius on the button itself
$button-left-margin: 0.2em !default; // Margin between the button and the text to its left
$button-right-margin: 0.1em !default; // Margin between the button and the text to its right
$button-vertical-adjust: -0.1em !default; // Pushes the buttons along the vertical axis to align it with text as desired
$button-inner-circle-left-margin: 1*$button-inner-circle-size !default; // Space between the ellipsis circles
$button-color: rgb(110, 110, 110) !default; // Background color of the button
$button-hovered-color: $button-color !default; // Background color of the button when being hovered
$button-activating-color: $button-color !default; // Background color of the button when being clicked
$button-active-color: $button-color !default; // Background color of the button when active
$button-standard-opacity: 0.2 !default; // Opacity for when the button is just sittin' there
$button-hovered-opacity: 0.5 !default; // Opacity for when the button is being hovered over
$button-activating-opacity: $button-hovered-opacity !default; // Opacity for when the button is being clicked
$button-active-opacity: 1 !default; // Opacity for when the button is active
$button-active-style-delay: 0.1s !default; // Delay before applying .active styles; this can be used to match to the popover activation transition
$button-inner-circle-color: white !default; // Background color of the ellipsis circle
$button-inner-circle-border: none !default; // Border of the ellipsis circle
// OTHER VARIABLES
// =============================================================================
$button-total-padding: $button-height - $button-inner-circle-size !default;
$button-per-side-padding: 0.5*$button-total-padding !default;
$button-transition-properties: background-color !default;
// -----
// ___ ___ ___ ___
// /__/\ ___ /__/| ___ /__/\ / /\
// | |::\ / /\ | |:| / /\ \ \:\ / /:/_
// | |:|:\ / /:/ | |:| / /:/ \ \:\ / /:/ /\
// __|__|:|\:\ /__/::\ __|__|:| /__/::\ _____\__\:\ / /:/ /::\
// /__/::::| \:\\__\/\:\__/__/::::\____\__\/\:\__ /__/::::::::\/__/:/ /:/\:\
// \ \:\~~\__\/ \ \:\/\ ~\~~\::::/ \ \:\/\\ \:\~~\~~\/\ \:\/:/~/:/
// \ \:\ \__\::/ |~~|:|~~ \__\::/ \ \:\ ~~~ \ \::/ /:/
// \ \:\ /__/:/ | |:| /__/:/ \ \:\ \__\/ /:/
// \ \:\ \__\/ | |:| \__\/ \ \:\ /__/:/
// \__\/ |__|/ \__\/ \__\/
@mixin print-styles {
// These styles restore the original footnote numbers and texts when the page is printed
@media not print {
.footnote-print-only {
display: none !important;
}
}
@media print {
.bigfoot-footnote,
.bigfoot-footnote__button {
display: none !important;
}
}
}
// -----
// ___ ___ ___
// _____ /__/\ ___ ___ / /\ /__/\
// / /::\ \ \:\ / /\ / /\ / /::\ \ \:\
// / /:/\:\ \ \:\ / /:/ / /:/ / /:/\:\ \ \:\
// / /:/~/::\ ___ \ \:\ / /:/ / /:/ / /:/ \:\ _____\__\:\
// /__/:/ /:/\:|/__/\ \__\:\ / /::\ / /::\ /__/:/ \__\:\/__/::::::::\
// \ \:\/:/~/:/\ \:\ / /://__/:/\:\ /__/:/\:\\ \:\ / /:/\ \:\~~\~~\/
// \ \::/ /:/ \ \:\ /:/ \__\/ \:\\__\/ \:\\ \:\ /:/ \ \:\ ~~~
// \ \:\/:/ \ \:\/:/ \ \:\ \ \:\\ \:\/:/ \ \:\
// \ \::/ \ \::/ \__\/ \__\/ \ \::/ \ \:\
// \__\/ \__\/ \__\/ \__\/
//*
// The button that activates the footnote. By default, this will appear as a
// flat button that has an ellipse contained inside of it.
// @state .is-active - The associated popover has been activated and is visible.
// @since 2.1.0
// @author Chris Sauve
.bigfoot-footnote__button {
// POSITIONING
position: relative;
z-index: 5;
top: $button-vertical-adjust;
// DISPLAY AND SIZING
box-sizing: border-box;
-moz-box-sizing: border-box;;
display: inline-block;
padding: $button-per-side-padding;
margin: 0 $button-right-margin 0 $button-left-margin;
// BACKDROP
border: none;
border-radius: $button-border-radius;
cursor: pointer;
background-color: rgba($button-color, $button-standard-opacity);
backface-visibility: hidden;
// TEXT
font-size: 1rem;
line-height: 0;
vertical-align: middle;
text-decoration: none;
-webkit-font-smoothing: antialiased;
// TRANSITIONS
transition-property: $button-transition-properties;
transition-duration: $popover-transition-default-duration;
&:hover,
&:focus {
outline: none;
background-color: rgba($button-hovered-color, $button-hovered-opacity);
}
&:active {
background-color: rgba($button-activating-color, $button-activating-opacity);
}
&.is-active {
background-color: rgba($button-active-color, $button-active-opacity);
transition-delay: $button-active-style-delay;
}
// Clearfix
&:after {
content: '';
display: table;
clear: both;
}
}
// _____ ___ ___
// / /::\ / /\ ___ / /\
// / /:/\:\ / /::\ / /\ / /:/_
// / /:/ \:\ / /:/\:\ / /:/ / /:/ /\
// /__/:/ \__\:| / /:/ \:\ / /:/ / /:/ /::\
// \ \:\ / /://__/:/ \__\:\ / /::\ /__/:/ /:/\:\
// \ \:\ /:/ \ \:\ / /://__/:/\:\\ \:\/:/~/:/
// \ \:\/:/ \ \:\ /:/ \__\/ \:\\ \::/ /:/
// \ \::/ \ \:\/:/ \ \:\\__\/ /:/
// \__\/ \ \::/ \__\/ /__/:/
// \__\/ \__\/
//*
// Each of the three circles forming the ellipse within the button.
// @since 2.1.0
// @author Chris Sauve
.bigfoot-footnote__button__circle {
// DISPLAY AND SIZING
display: inline-block;
width: $button-inner-circle-size;
height: $button-inner-circle-size;
margin-right: $button-inner-circle-left-margin;
float: left;
// Gets rid of margin on the last circle
&:last-child { margin-right: 0; }
}
// ___ ___ ___ ___ ___
// / /\ / /\ /__/\ ___ / /\ ___ /__/\
// / /:/ / /::\ \ \:\ / /\ / /::\ / /\ \ \:\
// / /:/ / /:/\:\ \ \:\ / /:/ / /:/\:\ / /:/ \ \:\
// / /:/ ___ / /:/ \:\ _____\__\:\ / /:/ / /:/~/::\ /__/::\ _____\__\:\
// /__/:/ / /\/__/:/ \__\:\/__/::::::::\ / /::\ /__/:/ /:/\:\\__\/\:\__ /__/::::::::\
// \ \:\ / /:/\ \:\ / /:/\ \:\~~\~~\//__/:/\:\\ \:\/:/__\/ \ \:\/\\ \:\~~\~~\/
// \ \:\ /:/ \ \:\ /:/ \ \:\ ~~~ \__\/ \:\\ \::/ \__\::/ \ \:\ ~~~
// \ \:\/:/ \ \:\/:/ \ \:\ \ \:\\ \:\ /__/:/ \ \:\
// \ \::/ \ \::/ \ \:\ \__\/ \ \:\ \__\/ \ \:\
// \__\/ \__\/ \__\/ \__\/ \__\/
//*
// The container for the button and popover. This is required so that the popover
// is guaranteed to have a relatively-positioned container, and to help with the
// positioning calculation.
// @since 2.1.0
// @author Chris Sauve
.bigfoot-footnote__container {
display: inline-block;
position: relative;
text-indent: 0;
}
// ___ ___ ___
// / /\ / /\ ___ /__/\ ___
// / /::\ / /::\ / /\ \ \:\ / /\
// / /:/\:\ / /:/\:\ / /:/ \ \:\ / /:/
// / /:/~/:// /:/~/:/ /__/::\ _____\__\:\ / /:/
// /__/:/ /://__/:/ /:/___\__\/\:\__ /__/::::::::\ / /::\
// \ \:\/:/ \ \:\/:::::/ \ \:\/\\ \:\~~\~~\//__/:/\:\
// \ \::/ \ \::/~~~~ \__\::/ \ \:\ ~~~ \__\/ \:\
// \ \:\ \ \:\ /__/:/ \ \:\ \ \:\
// \ \:\ \ \:\ \__\/ \ \:\ \__\/
// \__\/ \__\/ \__\/
@include print-styles;
// -----
// ___ ___ ___ ___ ___ ___
// / /\ / /\ / /\ / /\ ___ / /\ / /\
// / /::\ / /::\ / /::\ / /::\ /__/\ / /:/_ / /::\
// / /:/\:\ / /:/\:\ / /:/\:\ / /:/\:\ \ \:\ / /:/ /\ / /:/\:\
// / /:/~/:// /:/ \:\ / /:/~/:// /:/ \:\ \ \:\ / /:/ /:/_ / /:/~/:/
// /__/:/ /://__/:/ \__\:\/__/:/ /://__/:/ \__\:\ ___ \__\:\/__/:/ /:/ /\/__/:/ /:/___
// \ \:\/:/ \ \:\ / /:/\ \:\/:/ \ \:\ / /://__/\ | |:|\ \:\/:/ /:/\ \:\/:::::/
// \ \::/ \ \:\ /:/ \ \::/ \ \:\ /:/ \ \:\| |:| \ \::/ /:/ \ \::/~~~~
// \ \:\ \ \:\/:/ \ \:\ \ \:\/:/ \ \:\__|:| \ \:\/:/ \ \:\
// \ \:\ \ \::/ \ \:\ \ \::/ \__\::::/ \ \::/ \ \:\
// \__\/ \__\/ \__\/ \__\/ ~~~~ \__\/ \__\/
//
//*
// The popover for the footnote. This popover will be, by default, be sized and positioned
// by the script. However, many of the sizes can be established in this stylesheet and
// will be respected by the script. `max-width` will limit the width of the popover
// relative to the viewport. `width` (on `bigfoot-footnote__wrapper`) will set the
// absolute max width. Max height can be set via a `max-height` property
// on `bigfoot-footnote__content`.
// By default, the popover has a light gray background, a shadow for some depth,
// rounded corners, and a tooltip pointing to the footnote button.
// @state .is-active - The popover has been activated and is visible.
// @state .is-positioned-top - The popover is above the button.
// @state .is-positioned-bottom - The popover is below the button.
// @state .is-scrollable - The popover content is greater than the popover height.
// @state .is-fully-scrolled - The popover content is scrolled to the bottom.
// @since 2.1.0
// @author Chris Sauve
.bigfoot-footnote {
// POSITIONING
position: absolute;
z-index: $popover-z-index;
top: 0; left: 0;
// DISPLAY AND SIZING
display: inline-block;
box-sizing: border-box;
// Height is set in .footnote-content-wrapper
max-width: $popover-max-width;
// 1.414213... is to get the diagonal height of the tooltip using pythagorus, yo.
margin: ((1.4142135624 * $popover-tooltip-size / 2) + $button-height + $popover-margin-top) 0;
// fits the popover to the contents
// BACKDROP
background: $popover-color-background;
opacity: $popover-inactive-opacity;
border-radius: $popover-border-radius;
border: $popover-border;
box-shadow: $popover-box-shadow;
// TEXT
line-height: 0;
// TRANSITIONS
transition-property: $popover-transition-properties;
transition-duration: $popover-transition-default-duration;
transition-timing-function: $popover-transition-default-timing-function;
// TRANSFORMS
transform: $popover-initial-transform-state;
transform-origin: $popover-initial-transform-origin;
&.is-positioned-top {
top: auto;
bottom: 0;
}
&.is-active {
transform: $popover-active-transform-state;
opacity: $popover-active-opacity;
}
&.is-bottom-fixed {
// POSITIONING
position: fixed;
bottom: 0; top: auto;
left: 0; right: auto;
transform: translateY(100%);
// DISPLAY AND SIZING
width: 100%;
margin: 0;
// BACKDROP
border-radius: 0;
opacity: 1;
border-width: 1px 0 0;
// TRANSITIONS
transition: transform 0.3s ease;
&.is-active {
transform: translateY(0);
}
.bigfoot-footnote__wrapper {
margin: 0 0 0 50%;
transform: translateX(-50%);
max-width: 100%;
}
.bigfoot-footnote__wrapper,
.bigfoot-footnote__content {
border-radius: 0;
}
.bigfoot-footnote__tooltip {
display: none;
}
}
&.is-scrollable {
// A scrollable indicator in the left margin of the popover.
&:after {
// CONTENT
content: '';
// POSITIONING
position: absolute;
bottom: $popover-scroll-indicator-padding;
left: $popover-scroll-indicator-padding;
z-index: ($popover-z-index + 4);
// DISPLAY AND SIZING
display: block;
height: ($popover-scroll-indicator-width*$popover-scroll-indicator-aspect-ratio);
width: $popover-scroll-indicator-width;
// BACKDROP
background-image: $popover-scroll-indicator-icon;
background-size: cover;
opacity: $popover-scroll-indicator-opacity;
transition-properties: $popover-scroll-indicator-transition-properties;
transition-duration: $popover-transition-default-duration;
transition-timing-function: $popover-transition-default-timing-function;
}
.bigfoot-footnote__wrapper {
&:before,
&:after {
content: '';
position: absolute;
width: 100%;
// Above the content
z-index: ($popover-z-index + 2);
left: 0;
}
&:before {
top: -1px;
height: $popover-padding-content-top;
border-radius: $popover-border-radius $popover-border-radius 0 0;
background-image: linear-gradient(to bottom, $popover-color-background $popover-scrolly-fade-gradient-start-location, transparentize($popover-color-background, 1) 100%);
}
&:after {
bottom: -1px;
height: $popover-padding-content-bottom;
border-radius: 0 0 $popover-border-radius $popover-border-radius;
background-image: linear-gradient(to top, $popover-color-background $popover-scrolly-fade-gradient-start-location, transparentize($popover-color-background, 1) 100%);
}
}
::-webkit-scrollbar { display: none; }
}
&.is-fully-scrolled {
&:after,
&:before {
opacity: 0;
transition-delay: 0;
}
}
}
//*
// Wraps around the footnote content. This is necessary in order to have an element
// above the tooltip and that can provide top and bottom indicators that there is
// additional content on scrollable popovers.
// @since 2.1.0
// @author Chris Sauve
.bigfoot-footnote__wrapper {
// POSITIONING
position: relative;
// Above the outer tooltip, below the inner tooltip
z-index: ($popover-z-index + 4);
// DISPLAY AND SIZING
width: $popover-width;
display: inline-block;
box-sizing: inherit;
overflow: hidden;
margin: 0;
// BACKDROP
background-color: $popover-color-background;
border-radius: $popover-border-radius;
// TEXT
line-height: 0;
}
//*
// Contains the actual footnote content. There is very little prescription here
// on the footnote content itself, except for removing and top margin on the first
// element and bottom margin on the last child.
// @since 2.1.0
// @author Chris Sauve
.bigfoot-footnote__content {
// POSITIONING
position: relative;
z-index: ($popover-z-index - 2); // Below fading bars
// DISPLAY AND SIZING
display: inline-block;
max-height: $popover-max-height;
padding: $popover-padding-content-top $popover-padding-content-horizontal $popover-padding-content-bottom;
box-sizing: inherit;
overflow: auto;
-webkit-overflow-scrolling: touch;
// BACKDROP
background: $popover-content-color-background;
border-radius: $popover-content-border-radius;
// TEXT
-webkit-font-smoothing: subpixel-antialiased;
line-height: normal;
// INTERIOR ELEMENTS
img { max-width: 100%; }
*:last-child { margin-bottom: 0 !important; }
*:first-child { margin-top: 0 !important; }
}
//*
// A triangular shape pointing towards the footnote button.
// @since 2.1.0
// @author Chris Sauve
.bigfoot-footnote__tooltip {
// POSITIONING
position: absolute;
// Above the footnote-main-wrapper and the outer tooltip
z-index: ($popover-z-index + 2);
// DISPLAY AND SIZING
box-sizing: border-box;
margin-left: (-0.5 * $popover-tooltip-size);
// Smaller by one border-width's worth
width: $popover-tooltip-size;
height: $popover-tooltip-size;
transform: rotate(45deg);
// BACKDROP
background: $popover-tooltip-background;
border: $popover-border;
box-shadow: $popover-box-shadow;
border-top-left-radius: $popover-tooltip-radius;
.is-positioned-bottom & {
top: (-0.5 * $popover-tooltip-size);
}
.is-positioned-top & {
bottom: (-0.5 * $popover-tooltip-size);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,134 @@
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
// IT'S ALL JUST JUNK FOR OUR DOCS!
// ++++++++++++++++++++++++++++++++++++++++++
/*!
* JavaScript for Bootstrap's docs (https://getbootstrap.com)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
* details, see https://creativecommons.org/licenses/by/3.0/.
*/
/* global Clipboard: false, anchors: false, Holder: false */
(function ($) {
'use strict'
$(function () {
// Tooltip and popover demos
$('.tooltip-demo').tooltip({
selector: '[data-toggle="tooltip"]',
container: 'body'
})
$('[data-toggle="popover"]').popover()
// Demos within modals
$('.tooltip-test').tooltip()
$('.popover-test').popover()
// Indeterminate checkbox example
$('.bd-example-indeterminate [type="checkbox"]').prop('indeterminate', true)
// Disable empty links in docs examples
$('.bd-content [href="#"]').click(function (e) {
e.preventDefault()
})
// Modal relatedTarget demo
$('#exampleModal').on('show.bs.modal', function (event) {
var $button = $(event.relatedTarget) // Button that triggered the modal
var recipient = $button.data('whatever') // Extract info from data-* attributes
// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
// Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
var $modal = $(this)
$modal.find('.modal-title').text('New message to ' + recipient)
$modal.find('.modal-body input').val(recipient)
})
// Activate animated progress bar
$('.bd-toggle-animated-progress').on('click', function () {
$(this).siblings('.progress').find('.progress-bar-striped').toggleClass('progress-bar-animated')
})
// Insert copy to clipboard button before .highlight
$('figure.highlight, div.highlight').each(function () {
var btnHtml = '<div class="bd-clipboard"><button class="btn-clipboard" title="Copy to clipboard">Copy</button></div>'
$(this).before(btnHtml)
$('.btn-clipboard')
.tooltip()
.on('mouseleave', function () {
// Explicitly hide tooltip, since after clicking it remains
// focused (as it's a button), so tooltip would otherwise
// remain visible until focus is moved away
$(this).tooltip('hide')
})
})
var clipboard = new Clipboard('.btn-clipboard', {
target: function (trigger) {
return trigger.parentNode.nextElementSibling
}
})
clipboard.on('success', function (e) {
$(e.trigger)
.attr('title', 'Copied!')
.tooltip('_fixTitle')
.tooltip('show')
.attr('title', 'Copy to clipboard')
.tooltip('_fixTitle')
e.clearSelection()
})
clipboard.on('error', function (e) {
var modifierKey = /Mac/i.test(navigator.userAgent) ? '\u2318' : 'Ctrl-'
var fallbackMsg = 'Press ' + modifierKey + 'C to copy'
$(e.trigger)
.attr('title', fallbackMsg)
.tooltip('_fixTitle')
.tooltip('show')
.attr('title', 'Copy to clipboard')
.tooltip('_fixTitle')
})
anchors.options = {
icon: '#'
}
anchors.add('.bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5')
$('.bd-content > h2, .bd-content > h3, .bd-content > h4, .bd-content > h5').wrapInner('<div></div>')
// Search
if (window.docsearch) {
window.docsearch({
apiKey: '48cb48b22351bc71ea5f12f4d1ede198',
indexName: 'bootstrap-v4',
inputSelector: '#search-input',
handleSelected: function (input, event, suggestion) {
var url = suggestion.url
url = suggestion.isLvl1 ? url.split('#')[0] : url
// If it's a title we remove the anchor so it does not jump.
window.location.href = url
},
transformData: function (hits) {
return hits.map(function (hit) {
hit.url = hit.url.replace('https://v4-alpha.getbootstrap.com', '/docs/4.0')
return hit
})
},
debug: false // Set debug to true if you want to inspect the dropdown
})
}
// Holder
Holder.addTheme('gray', {
bg: '#777',
fg: 'rgba(255,255,255,.75)',
font: 'Helvetica',
fontweight: 'normal'
})
})
}(jQuery))

@ -0,0 +1,47 @@
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
// IT'S JUST JUNK FOR OUR DOCS!
// ++++++++++++++++++++++++++++++++++++++++++
// Intended to prevent false-positive bug reports about Bootstrap not working properly in old versions of IE due to folks testing using IE's unreliable emulation modes.
(function () {
'use strict'
function emulatedIEMajorVersion() {
var groups = /MSIE ([0-9.]+)/.exec(window.navigator.userAgent)
if (groups === null) {
return null
}
var ieVersionNum = parseInt(groups[1], 10)
var ieMajorVersion = Math.floor(ieVersionNum)
return ieMajorVersion
}
function actualNonEmulatedIEMajorVersion() {
// Detects the actual version of IE in use, even if it's in an older-IE emulation mode.
// IE JavaScript conditional compilation docs: https://msdn.microsoft.com/library/121hztk3%28v=vs.94%29.aspx
// @cc_on docs: https://msdn.microsoft.com/library/8ka90k2e%28v=vs.94%29.aspx
var jscriptVersion = new Function('/*@cc_on return @_jscript_version; @*/')() // eslint-disable-line no-new-func
if (typeof jscriptVersion === 'undefined') {
return 11 // IE11+ not in emulation mode
}
if (jscriptVersion < 9) {
return 8 // IE8 (or lower; haven't tested on IE<8)
}
return jscriptVersion // IE9 or IE10 in any mode, or IE11 in non-IE11 mode
}
var ua = window.navigator.userAgent
if (ua.indexOf('Opera') > -1 || ua.indexOf('Presto') > -1) {
return // Opera, which might pretend to be IE
}
var emulated = emulatedIEMajorVersion()
if (emulated === null) {
return // Not IE
}
var nonEmulated = actualNonEmulatedIEMajorVersion()
if (emulated !== nonEmulated) {
// eslint-disable-next-line no-alert
window.alert('WARNING: You appear to be using IE' + nonEmulated + ' in IE' + emulated + ' emulation mode.\nIE emulation modes can behave significantly differently from ACTUAL older versions of IE.\nPLEASE DON\'T FILE BOOTSTRAP BUGS based on testing in IE emulation modes!')
}
}())

@ -0,0 +1,17 @@
/* eslint no-console:off */
(function () {
'use strict'
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('/sw.js').then(function (registration) { // eslint-disable-line compat/compat
console.log('ServiceWorker registration successful with scope: ', registration.scope)
}).catch(function (err) {
console.log('ServiceWorker registration failed: ', err)
})
})
} else {
console.log('Service workers are not supported.')
}
}())

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,638 @@
(function() {
(function($) {
return $.bigfoot = function(options) {
var addBreakpoint, baseFontSize, bigfoot, buttonHover, calculatePixelDimension, cleanFootnoteLinks, clickButton, createPopover, defaults, deleteEmptyOrHR, escapeKeypress, footnoteInit, getSetting, makeDefaultCallbacks, popoverStates, positionTooltip, removeBackLinks, removeBreakpoint, removePopovers, replaceWithReferenceAttributes, repositionFeet, roomCalc, settings, touchClick, unhoverFeet, updateSetting, viewportDetails;
bigfoot = void 0;
defaults = {
actionOriginalFN: "hide",
activateCallback: function() {},
activateOnHover: false,
allowMultipleFN: false,
anchorPattern: /(fn|footnote|note)[:\-_\d]/gi,
anchorParentTagname: 'sup',
breakpoints: {},
deleteOnUnhover: false,
footnoteParentClass: 'footnote',
footnoteTagname: 'li',
hoverDelay: 250,
numberResetSelector: void 0,
popoverDeleteDelay: 300,
popoverCreateDelay: 100,
positionContent: true,
preventPageScroll: true,
scope: false,
useFootnoteOnlyOnce: true,
contentMarkup: "<aside class=\"bigfoot-footnote is-positioned-bottom\" data-footnote-number=\"{{FOOTNOTENUM}}\" data-footnote-identifier=\"{{FOOTNOTEID}}\" alt=\"Footnote {{FOOTNOTENUM}}\"> <div class=\"bigfoot-footnote__wrapper\"> <div class=\"bigfoot-footnote__content\"> {{FOOTNOTECONTENT}} </div></div> <div class=\"bigfoot-footnote__tooltip\"></div> </aside>",
buttonMarkup: "<div class='bigfoot-footnote__container'> <button class=\"bigfoot-footnote__button\" id=\"{{SUP:data-footnote-backlink-ref}}\" data-footnote-number=\"{{FOOTNOTENUM}}\" data-footnote-identifier=\"{{FOOTNOTEID}}\" alt=\"See Footnote {{FOOTNOTENUM}}\" rel=\"footnote\" data-bigfoot-footnote=\"{{FOOTNOTECONTENT}}\"> <svg class=\"bigfoot-footnote__button__circle\" viewbox=\"0 0 6 6\" preserveAspectRatio=\"xMinYMin\"><circle r=\"3\" cx=\"3\" cy=\"3\" fill=\"white\"></circle></svg> <svg class=\"bigfoot-footnote__button__circle\" viewbox=\"0 0 6 6\" preserveAspectRatio=\"xMinYMin\"><circle r=\"3\" cx=\"3\" cy=\"3\" fill=\"white\"></circle></svg> <svg class=\"bigfoot-footnote__button__circle\" viewbox=\"0 0 6 6\" preserveAspectRatio=\"xMinYMin\"><circle r=\"3\" cx=\"3\" cy=\"3\" fill=\"white\"></circle></svg> </button></div>"
};
settings = $.extend(defaults, options);
popoverStates = {};
footnoteInit = function() {
var $curResetElement, $currentLastFootnoteLink, $footnoteAnchors, $footnoteButton, $lastResetElement, $parent, $relevantFNLink, $relevantFootnote, finalFNLinks, footnoteButton, footnoteButtonSearchQuery, footnoteContent, footnoteIDNum, footnoteLinks, footnoteNum, footnotes, i, _i, _ref, _results;
footnoteButtonSearchQuery = settings.scope ? "" + settings.scope + " a[href*=\"#\"]" : "a[href*=\"#\"]";
$footnoteAnchors = $(footnoteButtonSearchQuery).filter(function() {
var $this, relAttr;
$this = $(this);
relAttr = $this.attr("rel");
if (relAttr === "null" || (relAttr == null)) {
relAttr = "";
}
return ("" + ($this.attr("href")) + relAttr).match(settings.anchorPattern) && $this.closest("[class*=" + settings.footnoteParentClass + "]:not(a):not(" + settings.anchorParentTagname + ")").length < 1;
});
footnotes = [];
footnoteLinks = [];
finalFNLinks = [];
cleanFootnoteLinks($footnoteAnchors, footnoteLinks);
$(footnoteLinks).each(function() {
var $closestFootnoteEl, relatedFN;
relatedFN = $(this).data("footnote-ref").replace(/[:.+~*\]\[]/g, "\\$&");
if (settings.useFootnoteOnlyOnce) {
relatedFN = "" + relatedFN + ":not(.footnote-processed)";
}
$closestFootnoteEl = $(relatedFN).closest(settings.footnoteTagname);
if ($closestFootnoteEl.length > 0) {
footnotes.push($closestFootnoteEl.first().addClass("footnote-processed"));
return finalFNLinks.push(this);
}
});
$currentLastFootnoteLink = $("[data-footnote-identifier]:last");
footnoteIDNum = $currentLastFootnoteLink.length < 1 ? 0 : +$currentLastFootnoteLink.data("footnote-identifier");
_results = [];
for (i = _i = 0, _ref = footnotes.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
footnoteContent = removeBackLinks($(footnotes[i]).html().trim(), $(finalFNLinks[i]).data("footnote-backlink-ref"));
footnoteContent = footnoteContent.replace(/"/g, "&quot;").replace(/&lt;/g, "&ltsym;").replace(/&gt;/g, "&gtsym;");
footnoteIDNum += 1;
footnoteButton = "";
$relevantFNLink = $(finalFNLinks[i]);
$relevantFootnote = $(footnotes[i]);
if (settings.numberResetSelector != null) {
$curResetElement = $relevantFNLink.closest(settings.numberResetSelector);
if ($curResetElement.is($lastResetElement)) {
footnoteNum += 1;
} else {
footnoteNum = 1;
}
$lastResetElement = $curResetElement;
} else {
footnoteNum = footnoteIDNum;
}
if (footnoteContent.indexOf("<") !== 0) {
footnoteContent = "<p>" + footnoteContent + "</p>";
}
footnoteButton = settings.buttonMarkup.replace(/\{\{FOOTNOTENUM\}\}/g, footnoteNum).replace(/\{\{FOOTNOTEID\}\}/g, footnoteIDNum).replace(/\{\{FOOTNOTECONTENT\}\}/g, footnoteContent);
footnoteButton = replaceWithReferenceAttributes(footnoteButton, "SUP", $relevantFNLink);
footnoteButton = replaceWithReferenceAttributes(footnoteButton, "FN", $relevantFootnote);
$footnoteButton = $(footnoteButton).insertBefore($relevantFNLink);
$parent = $relevantFootnote.parent();
switch (settings.actionOriginalFN.toLowerCase()) {
case "hide":
$relevantFNLink.addClass("footnote-print-only");
$relevantFootnote.addClass("footnote-print-only");
_results.push(deleteEmptyOrHR($parent));
break;
case "delete":
$relevantFNLink.remove();
$relevantFootnote.remove();
_results.push(deleteEmptyOrHR($parent));
break;
default:
_results.push($relevantFNLink.addClass("footnote-print-only"));
}
}
return _results;
};
cleanFootnoteLinks = function($footnoteAnchors, footnoteLinks) {
var $parent, $supChild, linkHREF, linkID;
if (footnoteLinks == null) {
footnoteLinks = [];
}
$parent = void 0;
$supChild = void 0;
linkHREF = void 0;
linkID = void 0;
$footnoteAnchors.each(function() {
var $child, $this;
$this = $(this);
linkHREF = "#" + ($this.attr("href")).split("#")[1];
$parent = $this.closest(settings.anchorParentTagname);
$child = $this.find(settings.anchorParentTagname);
if ($parent.length > 0) {
linkID = ($parent.attr("id") || "") + ($this.attr("id") || "");
return footnoteLinks.push($parent.attr({
"data-footnote-backlink-ref": linkID,
"data-footnote-ref": linkHREF
}));
} else if ($child.length > 0) {
linkID = ($child.attr("id") || "") + ($this.attr("id") || "");
return footnoteLinks.push($this.attr({
"data-footnote-backlink-ref": linkID,
"data-footnote-ref": linkHREF
}));
} else {
linkID = $this.attr("id") || "";
return footnoteLinks.push($this.attr({
"data-footnote-backlink-ref": linkID,
"data-footnote-ref": linkHREF
}));
}
});
};
deleteEmptyOrHR = function($el) {
var $parent;
$parent = void 0;
if ($el.is(":empty") || $el.children(":not(.footnote-print-only)").length === 0) {
$parent = $el.parent();
if (settings.actionOriginalFN.toLowerCase() === "delete") {
$el.remove();
} else {
$el.addClass("footnote-print-only");
}
return deleteEmptyOrHR($parent);
} else if ($el.children(":not(.footnote-print-only)").length === $el.children("hr:not(.footnote-print-only)").length) {
$parent = $el.parent();
if (settings.actionOriginalFN.toLowerCase() === "delete") {
$el.remove();
} else {
$el.children("hr").addClass("footnote-print-only");
$el.addClass("footnote-print-only");
}
return deleteEmptyOrHR($parent);
}
};
removeBackLinks = function(footnoteHTML, backlinkID) {
var regex;
if (backlinkID.indexOf(' ') >= 0) {
backlinkID = backlinkID.trim().replace(/\s+/g, "|").replace(/(.*)/g, "($1)");
}
regex = new RegExp("(\\s|&nbsp;)*<\\s*a[^#<]*#" + backlinkID + "[^>]*>(.*?)<\\s*/\\s*a>", "g");
return footnoteHTML.replace(regex, "").replace("[]", "");
};
replaceWithReferenceAttributes = function(string, referenceKeyword, $referenceElement) {
var refMatches, refRegex, refReplaceRegex, refReplaceText;
refRegex = new RegExp("\\{\\{" + referenceKeyword + ":([^\\}]*)\\}\\}", "g");
refMatches = void 0;
refReplaceText = void 0;
refReplaceRegex = void 0;
refMatches = refRegex.exec(string);
while (refMatches) {
if (refMatches[1]) {
refReplaceText = $referenceElement.attr(refMatches[1]) || "";
string = string.replace("{{" + referenceKeyword + ":" + refMatches[1] + "}}", refReplaceText);
}
refMatches = refRegex.exec(string);
}
return string;
};
buttonHover = function(event) {
var $buttonHovered, dataIdentifier, otherPopoverSelector;
if (settings.activateOnHover) {
$buttonHovered = $(event.target).closest(".bigfoot-footnote__button");
dataIdentifier = "[data-footnote-identifier=\"" + ($buttonHovered.attr("data-footnote-identifier")) + "\"]";
if ($buttonHovered.hasClass("is-active")) {
return;
}
$buttonHovered.addClass("is-hover-instantiated");
if (!settings.allowMultipleFN) {
otherPopoverSelector = ".bigfoot-footnote:not(" + dataIdentifier + ")";
removePopovers(otherPopoverSelector);
}
createPopover(".bigfoot-footnote__button" + dataIdentifier).addClass("is-hover-instantiated");
}
};
touchClick = function(event) {
var $nearButton, $nearFootnote, $target;
$target = $(event.target);
$nearButton = $target.closest(".bigfoot-footnote__button");
$nearFootnote = $target.closest(".bigfoot-footnote");
if ($nearButton.length > 0) {
event.preventDefault();
clickButton($nearButton);
} else if ($nearFootnote.length < 1) {
if ($(".bigfoot-footnote").length > 0) {
removePopovers();
}
}
};
clickButton = function($button) {
var dataIdentifier;
$button.blur();
dataIdentifier = "data-footnote-identifier=\"" + ($button.attr("data-footnote-identifier")) + "\"";
if ($button.hasClass("changing")) {
return;
} else if (!$button.hasClass("is-active")) {
$button.addClass("changing");
setTimeout((function() {
return $button.removeClass("changing");
}), settings.popoverCreateDelay);
createPopover(".bigfoot-footnote__button[" + dataIdentifier + "]");
$button.addClass("is-click-instantiated");
if (!settings.allowMultipleFN) {
removePopovers(".bigfoot-footnote:not([" + dataIdentifier + "])");
}
} else {
if (!settings.allowMultipleFN) {
removePopovers();
} else {
removePopovers(".bigfoot-footnote[" + dataIdentifier + "]");
}
}
};
createPopover = function(selector) {
var $buttons, $popoversCreated;
$buttons = void 0;
if (typeof selector !== "string" && settings.allowMultipleFN) {
$buttons = selector;
} else if (typeof selector !== "string") {
$buttons = selector.first();
} else if (settings.allowMultipleFN) {
$buttons = $(selector).closest(".bigfoot-footnote__button");
} else {
$buttons = $(selector + ":first").closest(".bigfoot-footnote__button");
}
$popoversCreated = $();
$buttons.each(function() {
var $content, $contentContainer, $this, content;
$this = $(this);
content = void 0;
try {
content = settings.contentMarkup.replace(/\{\{FOOTNOTENUM\}\}/g, $this.attr("data-footnote-number")).replace(/\{\{FOOTNOTEID\}\}/g, $this.attr("data-footnote-identifier")).replace(/\{\{FOOTNOTECONTENT\}\}/g, $this.attr("data-bigfoot-footnote")).replace(/\&gtsym\;/g, "&gt;").replace(/\&ltsym\;/g, "&lt;");
return content = replaceWithReferenceAttributes(content, "BUTTON", $this);
} finally {
$content = $(content);
try {
settings.activateCallback($content, $this);
} catch (_error) {}
$content.insertAfter($buttons);
popoverStates[$this.attr("data-footnote-identifier")] = "init";
$content.attr("bigfoot-max-width", calculatePixelDimension($content.css("max-width"), $content));
$content.css("max-width", 10000);
$contentContainer = $content.find(".bigfoot-footnote__content");
$content.attr("data-bigfoot-max-height", calculatePixelDimension($contentContainer.css("max-height"), $contentContainer));
repositionFeet();
$this.addClass("is-active");
$content.find(".bigfoot-footnote__content").bindScrollHandler();
$popoversCreated = $popoversCreated.add($content);
}
});
setTimeout((function() {
return $popoversCreated.addClass("is-active");
}), settings.popoverCreateDelay);
return $popoversCreated;
};
baseFontSize = function() {
var el, size;
el = document.createElement("div");
el.style.cssText = "display:inline-block;padding:0;line-height:1;position:absolute;visibility:hidden;font-size:1em;";
el.appendChild(document.createElement("M"));
document.body.appendChild(el);
size = el.offsetHeight;
document.body.removeChild(el);
return size;
};
calculatePixelDimension = function(dim, $el) {
if (dim === "none") {
dim = 10000;
} else if (dim.indexOf("rem") >= 0) {
dim = parseFloat(dim) * baseFontSize();
} else if (dim.indexOf("em") >= 0) {
dim = parseFloat(dim) * parseFloat($el.css("font-size"));
} else if (dim.indexOf("px") >= 0) {
dim = parseFloat(dim);
if (dim <= 60) {
dim = dim / parseFloat($el.parent().css("width"));
}
} else if (dim.indexOf("%") >= 0) {
dim = parseFloat(dim) / 100;
}
return dim;
};
$.fn.bindScrollHandler = function() {
if (!settings.preventPageScroll) {
return $(this);
}
$(this).on("DOMMouseScroll mousewheel", function(event) {
var $popover, $this, delta, height, prevent, scrollHeight, scrollTop, up;
$this = $(this);
scrollTop = $this.scrollTop();
scrollHeight = $this[0].scrollHeight;
height = parseInt($this.css("height"));
$popover = $this.closest(".bigfoot-footnote");
if ($this.scrollTop() > 0 && $this.scrollTop() < 10) {
$popover.addClass("is-scrollable");
}
if (!$popover.hasClass("is-scrollable")) {
return;
}
delta = event.type === "DOMMouseScroll" ? event.originalEvent.detail * -40 : event.originalEvent.wheelDelta;
up = delta > 0;
prevent = function() {
event.stopPropagation();
event.preventDefault();
event.returnValue = false;
return false;
};
if (!up && -delta > scrollHeight - height - scrollTop) {
$this.scrollTop(scrollHeight);
$popover.addClass("is-fully-scrolled");
return prevent();
} else if (up && delta > scrollTop) {
$this.scrollTop(0);
$popover.removeClass("is-fully-scrolled");
return prevent();
} else {
return $popover.removeClass("is-fully-scrolled");
}
});
return $(this);
};
unhoverFeet = function(e) {
if (settings.deleteOnUnhover && settings.activateOnHover) {
return setTimeout((function() {
var $target;
$target = $(e.target).closest(".bigfoot-footnote, .bigfoot-footnote__button");
if ($(".bigfoot-footnote__button:hover, .bigfoot-footnote:hover").length < 1) {
return removePopovers();
}
}), settings.hoverDelay);
}
};
escapeKeypress = function(event) {
if (event.keyCode === 27) {
return removePopovers();
}
};
removePopovers = function(footnotes, timeout) {
var $buttonsClosed, $linkedButton, $this, footnoteID;
if (footnotes == null) {
footnotes = ".bigfoot-footnote";
}
if (timeout == null) {
timeout = settings.popoverDeleteDelay;
}
$buttonsClosed = $();
footnoteID = void 0;
$linkedButton = void 0;
$this = void 0;
$(footnotes).each(function() {
$this = $(this);
footnoteID = $this.attr("data-footnote-identifier");
$linkedButton = $(".bigfoot-footnote__button[data-footnote-identifier=\"" + footnoteID + "\"]");
if (!$linkedButton.hasClass("changing")) {
$buttonsClosed = $buttonsClosed.add($linkedButton);
$linkedButton.removeClass("is-active is-hover-instantiated is-click-instantiated").addClass("changing");
$this.removeClass("is-active").addClass("disapearing");
return setTimeout((function() {
$this.remove();
delete popoverStates[footnoteID];
return $linkedButton.removeClass("changing");
}), timeout);
}
});
return $buttonsClosed;
};
repositionFeet = function(e) {
var type;
if (settings.positionContent) {
type = e ? e.type : "resize";
$(".bigfoot-footnote").each(function() {
var $button, $contentWrapper, $mainWrap, $this, dataIdentifier, identifier, lastState, marginSize, maxHeightInCSS, maxHeightOnScreen, maxWidth, maxWidthInCSS, positionOnTop, relativeToWidth, roomLeft, totalHeight;
$this = $(this);
identifier = $this.attr("data-footnote-identifier");
dataIdentifier = "data-footnote-identifier=\"" + identifier + "\"";
$contentWrapper = $this.find(".bigfoot-footnote__content");
$button = $this.siblings(".bigfoot-footnote__button");
roomLeft = roomCalc($button);
marginSize = parseFloat($this.css("margin-top"));
maxHeightInCSS = +($this.attr("data-bigfoot-max-height"));
totalHeight = 2 * marginSize + $this.outerHeight();
maxHeightOnScreen = 10000;
positionOnTop = roomLeft.bottomRoom < totalHeight && roomLeft.topRoom > roomLeft.bottomRoom;
lastState = popoverStates[identifier];
if (positionOnTop) {
if (lastState !== "top") {
popoverStates[identifier] = "top";
$this.addClass("is-positioned-top").removeClass("is-positioned-bottom");
$this.css("transform-origin", (roomLeft.leftRelative * 100) + "% 100%");
}
maxHeightOnScreen = roomLeft.topRoom - marginSize - 15;
} else {
if (lastState !== "bottom" || lastState === "init") {
popoverStates[identifier] = "bottom";
$this.removeClass("is-positioned-top").addClass("is-positioned-bottom");
$this.css("transform-origin", (roomLeft.leftRelative * 100) + "% 0%");
}
maxHeightOnScreen = roomLeft.bottomRoom - marginSize - 15;
}
$this.find(".bigfoot-footnote__content").css({
"max-height": Math.min(maxHeightOnScreen, maxHeightInCSS) + "px"
});
if (type === "resize") {
maxWidthInCSS = parseFloat($this.attr("bigfoot-max-width"));
$mainWrap = $this.find(".bigfoot-footnote__wrapper");
maxWidth = maxWidthInCSS;
if (maxWidthInCSS <= 1) {
relativeToWidth = (function() {
var jq, userSpecifiedRelativeElWidth;
userSpecifiedRelativeElWidth = 10000;
if (settings.maxWidthRelativeTo) {
jq = $(settings.maxWidthRelativeTo);
if (jq.length > 0) {
userSpecifiedRelativeElWidth = jq.outerWidth();
}
}
return Math.min(window.innerWidth, userSpecifiedRelativeElWidth);
})();
maxWidth = relativeToWidth * maxWidthInCSS;
}
maxWidth = Math.min(maxWidth, $this.find(".bigfoot-footnote__content").outerWidth() + 1);
$mainWrap.css("max-width", maxWidth + "px");
$this.css({
left: (-roomLeft.leftRelative * maxWidth + parseFloat($button.css("margin-left")) + $button.outerWidth() / 2) + "px"
});
positionTooltip($this, roomLeft.leftRelative);
}
if (parseInt($this.outerHeight()) < $this.find(".bigfoot-footnote__content")[0].scrollHeight) {
return $this.addClass("is-scrollable");
}
});
}
};
positionTooltip = function($popover, leftRelative) {
var $tooltip;
if (leftRelative == null) {
leftRelative = 0.5;
}
$tooltip = $popover.find(".bigfoot-footnote__tooltip");
if ($tooltip.length > 0) {
$tooltip.css("left", "" + (leftRelative * 100) + "%");
}
};
roomCalc = function($el) {
var elHeight, elLeftMargin, elWidth, leftRoom, topRoom, w;
elLeftMargin = parseFloat($el.css("margin-left"));
elWidth = parseFloat($el.outerWidth()) - elLeftMargin;
elHeight = parseFloat($el.outerHeight());
w = viewportDetails();
topRoom = $el.offset().top - w.scrollY + elHeight / 2;
leftRoom = $el.offset().left - w.scrollX + elWidth / 2;
return {
topRoom: topRoom,
bottomRoom: w.height - topRoom,
leftRoom: leftRoom,
rightRoom: w.width - leftRoom,
leftRelative: leftRoom / w.width,
topRelative: topRoom / w.height
};
};
viewportDetails = function() {
var $window;
$window = $(window);
return {
width: window.innerWidth,
height: window.innerHeight,
scrollX: $window.scrollLeft(),
scrollY: $window.scrollTop()
};
};
addBreakpoint = function(size, trueCallback, falseCallback, deleteDelay, removeOpen) {
var falseDefaultPositionSetting, minMax, mqListener, mql, query, s, trueDefaultPositionSetting;
if (deleteDelay == null) {
deleteDelay = settings.popoverDeleteDelay;
}
if (removeOpen == null) {
removeOpen = true;
}
mql = void 0;
minMax = void 0;
s = void 0;
if (typeof size === "string") {
s = size.toLowerCase() === "iphone" ? "<320px" : size.toLowerCase() === "ipad" ? "<768px" : size;
minMax = s.charAt(0) === ">" ? "min" : s.charAt(0) === "<" ? "max" : null;
query = minMax ? "(" + minMax + "-width: " + (s.substring(1)) + ")" : s;
mql = window.matchMedia(query);
} else {
mql = size;
}
if (mql.media && mql.media === "invalid") {
return {
added: false,
mq: mql,
listener: null
};
}
trueDefaultPositionSetting = minMax === "min";
falseDefaultPositionSetting = minMax === "max";
trueCallback = trueCallback || makeDefaultCallbacks(removeOpen, deleteDelay, trueDefaultPositionSetting, function($popover) {
return $popover.addClass("is-bottom-fixed");
});
falseCallback = falseCallback || makeDefaultCallbacks(removeOpen, deleteDelay, falseDefaultPositionSetting, function() {});
mqListener = function(mq) {
if (mq.matches) {
trueCallback(removeOpen, bigfoot);
} else {
falseCallback(removeOpen, bigfoot);
}
};
mql.addListener(mqListener);
mqListener(mql);
settings.breakpoints[size] = {
added: true,
mq: mql,
listener: mqListener
};
return settings.breakpoints[size];
};
makeDefaultCallbacks = function(removeOpen, deleteDelay, position, callback) {
return function(removeOpen, bigfoot) {
var $closedPopovers;
$closedPopovers = void 0;
if (removeOpen) {
$closedPopovers = bigfoot.close();
bigfoot.updateSetting("activateCallback", callback);
}
return setTimeout((function() {
bigfoot.updateSetting("positionContent", position);
if (removeOpen) {
return bigfoot.activate($closedPopovers);
}
}), deleteDelay);
};
};
removeBreakpoint = function(target, callback) {
var b, breakpoint, mq, mqFound;
mq = null;
b = void 0;
mqFound = false;
if (typeof target === "string") {
mqFound = settings.breakpoints[target] !== undefined;
} else {
for (b in settings.breakpoints) {
if (settings.breakpoints.hasOwnProperty(b) && settings.breakpoints[b].mq === target) {
mqFound = true;
}
}
}
if (mqFound) {
breakpoint = settings.breakpoints[b || target];
if (callback) {
callback({
matches: false
});
} else {
breakpoint.listener({
matches: false
});
}
breakpoint.mq.removeListener(breakpoint.listener);
delete settings.breakpoints[b || target];
}
return mqFound;
};
updateSetting = function(newSettings, value) {
var oldValue, prop;
oldValue = void 0;
if (typeof newSettings === "string") {
oldValue = settings[newSettings];
settings[newSettings] = value;
} else {
oldValue = {};
for (prop in newSettings) {
if (newSettings.hasOwnProperty(prop)) {
oldValue[prop] = settings[prop];
settings[prop] = newSettings[prop];
}
}
}
return oldValue;
};
getSetting = function(setting) {
return settings[setting];
};
$(document).ready(function() {
footnoteInit();
$(document).on("mouseenter", ".bigfoot-footnote__button", buttonHover);
$(document).on("touchend click", touchClick);
$(document).on("mouseout", ".is-hover-instantiated", unhoverFeet);
$(document).on("keyup", escapeKeypress);
$(window).on("scroll resize", repositionFeet);
return $(document).on("gestureend", function() {
return repositionFeet();
});
});
bigfoot = {
removePopovers: removePopovers,
close: removePopovers,
createPopover: createPopover,
activate: createPopover,
repositionFeet: repositionFeet,
reposition: repositionFeet,
addBreakpoint: addBreakpoint,
removeBreakpoint: removeBreakpoint,
getSetting: getSetting,
updateSetting: updateSetting
};
return bigfoot;
};
})(jQuery);
}).call(this);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,6 @@
{% extends "container.html" %}
{% block corps %}
<p class="lead">Impossible de trouver cette page.</p>
{% endblock %}

@ -0,0 +1,6 @@
{% extends "container.html" %}
{% block corps %}
<p class="lead">Une erreur interne s'est produite.</p>
{% endblock %}

@ -0,0 +1,23 @@
{% extends "container.html" %}
{% block corps %}
<div class="container marketing" style="margin-top: 50px;">
<div>
<h1>Les actes princiers de la fin du Moyen Âge</h1>
<div style="padding-top: 2%">
<h2>L'étude diplomatique de l'acte princier</h2>
<p>Si la diplomatique de l'acte princier a pris naissance en Allemagne dès la fin du XIX<sup>e</sup> siècle avant d'intéresser les historiens français, force est de reconnaître que la période finale du Moyen Âge a longtemps été négligée au profit des XII<sup>e</sup> et XIII<sup>e</sup> siècles, prioritairement scrutée. Pour les XIV<sup>e</sup> et XV<sup>e</sup> siècles, les corpus sont encore très dispersés même s'ils ont pris depuis quelque temps des couleurs. Ainsi les actes des ducs de Bretagne ont été mis en valeur depuis les années 1980 grâce aux éditions de Michael Jones, de Marjolaine Lémeillat et aux travaux de Jean Kerhervé, alors que les actes des ducs de Bourgogne ont fait l'objet d'éditions pour les ordonnances et de catalogues pour certaines productions. En parallèle, et sous l'effet de rencontres collectives le Congrès international de diplomatique de Munich de 1983 et la table ronde Chambéry de 2008 , des études de chancelleries princières ont été amorcées ou approfondies, de sorte que plusieurs d'entre elles sont aujourd'hui mieux connues sans que pour autant les actes eux-mêmes aient fait l'objet d'une édition. Ainsi, malgré la progression notable du nombre de travaux sur les chancelleries princières, si l'on compare cette production à celle qui s'attache aux actes et à la chancellerie des rois de France, force est de reconnaître que les chancelleries des princes de la fin du Moyen Âge souffrent d'un déficit d'études incontestable et que les corpus des principaux princes et maisons princières sont toujours en attente d'une édition.</p>
<p>Ce déficit tient sans doute au fait que, pour bien des princes français de la fin du Moyen Âge, il n'existe pas de corpus constitué. L'éclatement des sources entre différents dépôts éparpillés rend le travail de recensement difficile, et ce d'autant que, à la différence de la chancellerie du roi de France, plusieurs chancelleries princières n'ont pas développé de pratique d'enregistrement, ou alors seulement partielle.</p>
</div>
<div>
<h2>Une édition numérique</h2>
<p>C'est de ce constat qu'est né le site "Actes princiers". Il entend livrer une édition numérique des actes élaborés par les chancelleries de plusieurs princes de sang royal des XIV<sup>e</sup> et XV<sup>e</sup> siècles. Dans un premier temps, le travail de mise en ligne se concentre sur les documents du duc de Berry et des ducs de Bourbon.</p>
<p>Le corpus est constitué d'actes inédits il ne s'agit donc pas de numériser des éditions anciennes existantes. Ces actes sont édités selon les normes scientifiques, avec regestes, tableaux de la tradition et notes tant paléographiques qu'historiques dans le cadre de différents travaux :
<ul>
<li>Un séminaire commun de l'École nationale des chartes et de l'Université Paris 1 sur l'édition du corpus du duc Jean de Berry (1360-1416). À ce jour, 250 actes sont déjà édités, soit un peu plus d'un tiers des actes recensés pour ce prince ;</li>
<li>Des travaux de Master sur les corpus des ducs et duchesse de Bourbon. C'est actuellement autour de 2000 actes de cinq ducs Louis I<sup>er</sup> (1310-1342), Pierre I<sup>er</sup> (1342-1356), Louis II (1356-1410), Charles I<sup>er</sup> (1434-1456) et Pierre II (1488-1503) et trois duchesses Anne Dauphine (1371-1417), Agnès de Bourgogne (1434-1476) et Anne de France (1488-1522) qui sont aujourd'hui édités. Les actes de Jean I<sup>er</sup> (1410-1434) et Marie de Berry (1410-1434), de Jean II (1456-1486) et Jeanne de France (1456-1482), et de Charles III (1505-1523) et Suzanne de Bourbon (1505-1519) sont en cours d'édition dans le cadre de masters.</li>
</ul>
</p>
</div>
</div>
</div><!-- /.container -->
{% endblock %}

@ -0,0 +1,26 @@
{% extends "container.html" %}
{% block corps %}
<div class="container marketing" style="margin-top: 50px;">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{url_for('main.corpora_all')}}">Corpus</a></li>
<li class="breadcrumb-item"><a href="{{url_for('main.actes', house=house)}}">{{house}}</a></li>
<li class="breadcrumb-item"><a href="{{url_for('main.prince_corpus', house=house, prince=prince)}}">{{name_prince}}</a></li>
<li class="breadcrumb-item active" aria-current="page">{% for item in infos %}{{item.date}}{% endfor %}</li>
</ol>
</nav>
<!--{% for item in infos %}
<h1>{{item.date}}{% if place != 'NS' %}
— {{place}} {% endif %}</h1>
<h2>{{item.filename}}</h2>
<p>{{item.analysis}}.</p>
<p>{{state}}, {{diplo}}, {{arch}}, {{doc}}, {{item.ref_acte}}.</p>
{% endfor %}-->
{{output_doc|safe}}
<p class="font-italic font-weight-light fs-6">
Transcription : {% for name in transcribers %}{% if name == transcribers[0] %}{{name}}{% elif name == transcribers[-1] %} et {{name}}{% else %}, {{name}}{% endif %}{% endfor %}.
</p>
<!--<p class="font-italic font-weight-light fs-6">Transcription : {{transcriber}}.</p>-->
</div><!-- /.container -->
{% endblock %}

@ -0,0 +1,12 @@
{% extends "container.html" %}
{% block corps %}
<div class="container marketing" style="margin-top: 50px;">
<p class="lead">Le travail sur le site et le corpus est toujours en cours. Pour toute remarque, suggestion ou demande d'informations complémentaires, vous pouvez contacter l'équipe scientifique et technique à cette adresse :</p>
<p class="lead" style='text-align: center; font-weight: bold;'>gestion.sourcesetdonnees [at] ehess.fr</p>
<p style="font-style: italic;">En contactant l'équipe du site Ouvriers des deux mondes, vous consentez au traitement des données que vous transmeterez dans votre mail. La Règlementation générale sur la protection des données (RGPD) vous permet d'exercer vos droits d'accès, de rectification, de modification ou de suppression de vos données personnelles par simple demande à dpo [at] ehess [.] fr. Pour plus d'information, <a href="{{ url_for('main.terms') }}" title="Mentions légales de ce site">consultez les mentions légales</a>.</p>
</div><!-- /.container -->
{% endblock %}

@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../../../favicon.ico">
<title>Actes princiers</title>
{% include "partials/app_css_links.html" %}
</head>
<body>
<header>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark" style="background-color: #05386B !important">
<a class="navbar-brand" href="{{url_for('main.home')}}">Actes princiers</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link" href="{{url_for('main.about')}}">À propos</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{url_for('main.corpora_all')}}">Corpus</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{url_for('main.contact')}}">Contact</a>
</li>
</ul>
<form class="form-inline mt-2 mt-md-0">
<input class="form-control mr-sm-2" type="text" placeholder="Recherche" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Rechercher</button>
</form>
</div>
</nav>
</header>
<main role="main" style="min-height: 80vh; height: auto !important; height: 100%; margin: 0 auto 50px;">
<!-- BLOCK CORPS -->
{% block corps%}{%endblock%}
</main>
<!-- FOOTER -->
<footer class="footer text-center text-lg-start bg-light" style="background-color: #05386B !important;">
<section class="" style="padding: 1%;">
<p class="float-right"><a href="#">Haut de page &#x2191</a></p>
<div class="container text-center text-md-start mt-5">
<div class="row">
<div class="col mx-auto mb-4" style="color: white;">
<h6 class="text-uppercase fw-bold mb-4">Actes princiers</h6>
<p>Édition des actes des chancelleries princières de la fin du Moyen Âge.</p>
<p style="font-size: 10pt;">Développée par le Laboratoire de médiévistique occidentale de Paris (UMR 8589/ CNRS-Paris 1) et le Centre de recherches historiques (UMR 8558/ CNRS-EHESS), avec le soutien de l'École nationale des chartes, des Archives nationales et du Labex Hastec.</p>
<p style="font-size: 10pt;">
<span class="link-border-dotted"> <a href="{{url_for('main.terms')}}">Mentions légales.</a> </span><span class="link-border-dotted">
<a href="https://www.huma-num.fr/">Huma-Num</a>
</span><span class="link-border-dotted">
<a href="https://www.etalab.gouv.fr/licence-ouverte-open-licence/">Licence Etalab 2.0</a>
</span>
</p>
</div>
<div class="col d-flex align-items-center">
<div class="container text-center">
<div class="row">
<div class="col" style="margin: auto;">
<a href="https://www.cnrs.fr/" target="_blank">
<img src="{{url_for('static', filename='img/logo_footer/cnrs_logo.png')}}" alt="CRH" width="80" height="auto"/>
</a>
</div>
<div class="col" style="margin: auto;">
<a href="https://www.pantheonsorbonne.fr/" target="_blank">
<img src="{{url_for('static', filename='img/logo_footer/paris1_logo.png')}}" alt="P1" width="80" height="auto"/>
</a>
</div>
<div class="col" style="margin: auto;">
<a href="https://www.ehess.fr/" target="_blank">
<img src="{{url_for('static', filename='img/logo_footer/ehess_logo.png')}}" alt="EHESS" width="80" height="auto"/>
</a>
</div>
<div class="col" style="padding-top: 3%; margin: auto;">
<a href="https://www.archives-nationales.culture.gouv.fr/" target="_blank">
<img src="{{url_for('static', filename='img/logo_footer/an_logo.png')}}" alt="AN" width="110" height="auto"/>
</a>
</div>
</div>
<div class="row" style="padding-top: 3%; margin: auto;">
<div class="col" style="margin: auto;">
<a href="http://crh.ehess.fr/" target="_blank">
<img src="{{url_for('static', filename='img/logo_footer/crh_logo.png')}}" alt="CRH" width="100" height="auto"/>
</a>
</div>
<div class="col" style="margin: auto;">
<a href="https://www.chartes.psl.eu/" target="_blank">
<img src="{{url_for('static', filename='img/logo_footer/enc_logo.png')}}" alt="ENC" width="80" height="auto"/>
</a>
</div>
<div class="col" style="margin: auto;">
<a href="https://lamop.pantheonsorbonne.fr/" target="_blank">
<img src="{{url_for('static', filename='img/logo_footer/lamop_logo.png')}}" alt="LAMOP" width="100" height="auto"/>
</a>
</div>
<div class="col" style="margin: auto;">
<a href="https://labexhastec.ephe.psl.eu/" target="_blank">
<img src="{{url_for('static', filename='img/logo_footer/hastec_logo.png')}}" alt="HASTEC" width="80" height="auto"/>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</footer>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="{{url_for('static', filename="js/bootstrap_js_assets/vendor/jquery-slim.min.js")}}"><\/script>')</script>
<script src="{{url_for('static', filename='js/vendor/popper.min.js')}}"></script>
<script src="{{url_for('static', filename='js/bootstrap.min.js')}}"></script>
<!-- Just to make our placeholder images work. Don't actually copy the next line!
<script src="../static/js/bootstrap_js_assets/vendor/holder.min.js"></script>-->
<!-- Footnote core JavaScript
================================================== -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js" integrity="sha512-J9QfbPuFlqGD2CYVCa6zn8/7PEgZnGpM5qtFOBZgwujjDnG5w5Fjx46YzqvIh/ORstcj7luStvvIHkisQi5SKw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script type="text/javascript" src="{{url_for('static', filename='js/footnotes_js/bigfoot.js')}}"></script>
<script type="text/javascript">
var bigfoot = $.bigfoot(
{
deleteOnUnhover: false,
preventPageScroll: false,
hoverDelay: 250
}
);
</script>
</body>
</html>

@ -0,0 +1,12 @@
{% extends "container.html" %}
{% block corps %}
<div class="container marketing" style="margin-top: 50px;">
<h1>Corpus</h1>
<p>Corpus disponibles :</p>
<ul>
<li><a href="{{url_for('main.actes', house='Bourbon')}}">Actes des ducs et duchesses de Bourbon</a></li>
<li><a href="{{url_for('main.actes', house='Berry')}}">Actes des ducs et duchesses de Berry</a></li>
<li><a href="{{url_for('main.actes', house='Anjou')}}">Actes des ducs et duchesses d'Anjou</a></li>
</ul>
</div><!-- /.container -->
{% endblock %}

@ -0,0 +1,18 @@
{% extends "container.html" %}
{% block corps %}
<div class="container marketing" style="margin-top: 50px;">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{url_for('main.corpora_all')}}">Corpus</a></li>
<li class="breadcrumb-item active" aria-current="page">{{house}}</li>
</ol>
</nav>
<h1>Corpus des actes des ducs et duchesses de {{house}}</h1>
<h2>Les princes et princesses dont les actes sont disponibles :</h2>
<ul>
{% for duke in princes %}
<li><a href="{{url_for('main.prince_corpus', house=house, prince=duke[1])}}">{{duke[0]}}</a></li>
{% endfor %}
</ul>
</div><!-- /.container -->
{% endblock %}

@ -0,0 +1,61 @@
{% extends "container.html" %}
{% block corps %}
<div class="container marketing" style="margin-top: 50px;">
<!-- START THE FEATURETTES -->
<div class="row featurette">
<div class="col-md-7">
<h2 class="featurette-heading">Actes princiers <br/> <span class="text-muted">XII<sup>e</sup> siècle &mdash; XVI<sup>e</sup> siècle</span></h2>
<p class="lead">Ce site présente des actes élaborés par les chancelleries de plusieurs princes et princesses de sang royal du XII<sup>e</sup> siècle au XVI<sup>e</sup> siècle. Cet ensemble, en grande partie inédit, a pour but d'aider à mieux articuler les enjeux de pouvoir des princes de la fin du Moyen Âge avec les logiques décriture de leurs chancelleries.</p>
<p><a class="btn btn-outline-success" href="{{url_for('main.about')}}" role="button">En savoir plus &raquo;</a></p>
</div>
<div class="col-md-5">
<figure>
<img class="featurette-image img-fluid mx-auto" src="{{url_for('static', filename='img/home_img/coeur_amour_epris.jpeg')}}" alt="Generic placeholder image" style="border-radius: 10%;">
<figcaption>
<p class="caption-main">René d'Anjou, <em>Le livre du Coeur d'amour épris</em>.</p>
<p class="caption-sub">(BnF, ms. fr. 24399)</p>
</figcaption>
</figure>
</div>
</div>
<!-- <hr class="featurette-divider">
<div class="row featurette">
<div class="col-md-7 order-md-2">
<h2 class="featurette-heading">Oh yeah, it's that good. <span class="text-muted">See for yourself.</span></h2>
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
</div>
<div class="col-md-5 order-md-1">
<img class="featurette-image img-fluid mx-auto" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
</div>
</div> -->
<hr class="featurette-divider">
<!-- /END THE FEATURETTES -->
<!-- Three columns of text below the carousel -->
<div class="row">
<div class="col-lg-4">
<img class="rounded-circle" src="{{url_for('static', filename='img/home_img/anjou_armes.jpg')}}" width="140" height="140">
<h2 style="padding-top:3%;">Anjou</h2>
<p><a class="btn btn-outline-success" href="{{url_for('main.actes', house='Anjou')}}" role="button">Accéder aux actes &raquo;</a></p>
</div><!-- /.col-lg-4 -->
<div class="col-lg-4">
<img class="rounded-circle" src="{{url_for('static', filename='img/home_img/berry_armes.jpg')}}" alt="Generic placeholder image" width="140" height="140">
<h2 style="padding-top:3%;">Berry</h2>
<p><a class="btn btn-outline-success" href="{{url_for('main.actes', house='Berry')}}" role="button">Accéder aux actes &raquo;</a></p>
</div><!-- /.col-lg-4 -->
<div class="col-lg-4">
<img class="rounded-circle" src="{{url_for('static', filename='img/home_img/bourbon_armes.jpg')}}" width="140" height="140">
<h2 style="padding-top:3%;">Bourbon</h2>
<p><a class="btn btn-outline-success" href="{{url_for('main.actes', house='Bourbon')}}" role="button">Accéder aux actes &raquo;</a></p>
</div><!-- /.col-lg-4 -->
</div><!-- /.row -->
</div><!-- /.container -->
{% endblock %}

@ -0,0 +1,190 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../../../favicon.ico">
<title>Actes princiers</title>
<!-- Bootstrap core CSS -->
<link href="../static/css/bootstrap/bootstrap.min.css" rel="stylesheet">
<!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous"/> -->
<!-- Custom styles for this template -->
<link href="../static/css/carousel.css" rel="stylesheet">
</head>
<body>
<header>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<a class="navbar-brand" href="#">Carousel</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form class="form-inline mt-2 mt-md-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
</header>
<main role="main">
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-item active">
<img class="first-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="First slide">
<div class="container">
<div class="carousel-caption text-left">
<h1>Example headline.</h1>
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<p><a class="btn btn-lg btn-primary" href="#" role="button">Sign up today</a></p>
</div>
</div>
</div>
<div class="carousel-item">
<img class="second-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Second slide">
<div class="container">
<div class="carousel-caption">
<h1>Another example headline.</h1>
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<p><a class="btn btn-lg btn-primary" href="#" role="button">Learn more</a></p>
</div>
</div>
</div>
<div class="carousel-item">
<img class="third-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Third slide">
<div class="container">
<div class="carousel-caption text-right">
<h1>One more for good measure.</h1>
<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<p><a class="btn btn-lg btn-primary" href="#" role="button">Browse gallery</a></p>
</div>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
<!-- Marketing messaging and featurettes
================================================== -->
<!-- Wrap the rest of the page in another container to center all the content. -->
<div class="container marketing">
<!-- Three columns of text below the carousel -->
<div class="row">
<div class="col-lg-4">
<img class="rounded-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" width="140" height="140">
<h2>Heading</h2>
<p>Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna.</p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div><!-- /.col-lg-4 -->
<div class="col-lg-4">
<img class="rounded-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" width="140" height="140">
<h2>Heading</h2>
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div><!-- /.col-lg-4 -->
<div class="col-lg-4">
<img class="rounded-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" width="140" height="140">
<h2>Heading</h2>
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
<p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
</div><!-- /.col-lg-4 -->
</div><!-- /.row -->
<!-- START THE FEATURETTES -->
<hr class="featurette-divider">
<div class="row featurette">
<div class="col-md-7">
<h2 class="featurette-heading">First featurette heading. <span class="text-muted">It'll blow your mind.</span></h2>
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
</div>
<div class="col-md-5">
<img class="featurette-image img-fluid mx-auto" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
</div>
</div>
<hr class="featurette-divider">
<div class="row featurette">
<div class="col-md-7 order-md-2">
<h2 class="featurette-heading">Oh yeah, it's that good. <span class="text-muted">See for yourself.</span></h2>
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
</div>
<div class="col-md-5 order-md-1">
<img class="featurette-image img-fluid mx-auto" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
</div>
</div>
<hr class="featurette-divider">
<div class="row featurette">
<div class="col-md-7">
<h2 class="featurette-heading">And lastly, this one. <span class="text-muted">Checkmate.</span></h2>
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
</div>
<div class="col-md-5">
<img class="featurette-image img-fluid mx-auto" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
</div>
</div>
<hr class="featurette-divider">
<!-- /END THE FEATURETTES -->
</div><!-- /.container -->
<!-- FOOTER -->
<footer class="container">
<p class="float-right"><a href="#">Back to top</a></p>
<p>&copy; 2017-2018 Company, Inc. &middot; <a href="#">Privacy</a> &middot; <a href="#">Terms</a></p>
</footer>
</main>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="../static/js/bootstrap_js_assets/vendor/jquery-slim.min.js"><\/script>')</script>
<script src="../../../../assets/js/vendor/popper.min.js"></script>
<script src="../static/js/bootstrap.min.js"></script>
<!-- Just to make our placeholder images work. Don't actually copy the next line! -->
<script src="../static/js/bootstrap_js_assets/vendor/holder.min.js"></script>
</body>
</html>

@ -0,0 +1,14 @@
<!-- Bootstrap core CSS -->
<link href="{{url_for('static', filename='css/bootstrap/bootstrap.min.css')}}" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="{{url_for('static', filename='css/carousel.css')}}" rel="stylesheet">
<!-- Custom styles for Actes princiers project -->
<link href="{{url_for('static', filename='css/custom_style_main.css')}}" rel="stylesheet">
<!-- Custom styles for footnotes -->
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='css/footnotes_css/bigfoot-default.css')}}">
<!-- Custom styles for chrono -->
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='css/chrono.css')}}">

@ -0,0 +1,33 @@
{% extends "container.html" %}
{% block corps %}
<div class="container marketing" style="margin-top: 50px;">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{url_for('main.corpora_all')}}">Corpus</a></li>
<li class="breadcrumb-item"><a href="{{url_for('main.actes', house=houseS)}}">{{houseS}}</a></li>
<li class="breadcrumb-item active" aria-current="page">{{duke_name[0][0]}}</li>
</ol>
</nav>
<h1 style="text-align: center; padding-bottom: 5%;">Actes de {{duke_name[0][0]}}</h1>
<div class="timeline-princier">
{% for id in lst_id %}
<div class="entry-princier">
<div class="title-princier">
<h3>{{id[1]}}</h3>
</div>
<div class="pboly">
<p class="chrono-p font-weight-bold"><a href="{{url_for('main.acte', prince=duke_name[0][1], acte_id=id[2])}}">{{id[3]}}.</a></p>
<p style="margin-bottom: 5%">
{% if id[4] != 'NS' %}
<span class="badge badge-pill badge" style="background-color: #284AA7; color: white; font-size: small;">{{id[4]}}</span>
{% endif %}
<span class="badge badge-pill badge" style="background-color: #A7288A; color: white; font-size: small;">{{id[6]}}</span>
<span class="badge badge-pill badge" style="background-color: #A78528; color: white; font-size: small;">{{id[5]}}</span>
</p>
</div>
</div>
{% endfor %}
</div>
</div><!-- /.container -->
{% endblock %}

@ -0,0 +1,57 @@
{% extends "container.html" %}
{% block corps %}
<p><em>Dernière mise à jour de la page : 5 novembre 2021.</em></p>
<p>Notice d'informations dans le cadre de la collecte de données personnelles.</p>
<p>La présente Notice vise à vous fournir des informations détaillées sur la manière dont le projet de recherche en
sciences humaines et sociales « Ouvriers des deux mondes » (ouvriersdeuxmondes.huma-num.fr) traite vos données
personnelles, conformément au Règlement (UE) 2016/679 et à la Loi n° 78-17.</p>
<hr>
<h2>Traitement des données</h2>
<p>Vos données personnelles sont recueillies et analysées par le projet de
recherche sur le corpus des monographies de familles des <i>Ouvriers des deux mondes</i> menée par le Centre de recherches historiques lorsque vous utilisez le formulaire de contact.</p>
<ul>
<li>Responsable de traitement : Centre de recherches historiques (CRH), unité mixte de recherche 8558 du Centre
national de la recherche scientifique (CNRS) et de lÉcole des hautes études en sciences sociales (EHESS),
représenté par sa directrice Dinah Ribard et son directeur Raphaël Morera et situé à l'EHESS, 54,
boulevard Raspail, 75006 Paris.</li>
<li>Responsable scientifique du projet : Anne Lhuissier et Stéphane Baciocchi (gestion.sourcesetdonnees [at] ehess
[.] fr).</li>
<li>Finalité : La finalité du traitement est la gestion du projet de recherche.</li>
<li>Base légale : Le traitement de données personnelles repose sur le consentement de l'utilisateur.</li>
<li>
Catégorie de données traitées : Les données collectées et traitées sont le nom, prénom et adresse mail des utilisateurs utilisant le formulaire de contact.
</li>
<li>Personnes concernées : Les utilisateurs du formulaire de contact.
</li>
<li>Source des données : Les données sont issues mails envoyés par les utilisateurs.</li>
<li>Destinataires des données : Chercheurs et collaborateurs du projet Ouvriers des deux mondes.</li>
<li>Durée de conservation des données : Les données sont conservées pendant 6 mois après le traitement de la demande. À lissue de ce délai, les données seront supprimées.</li>
</ul>
<hr>
<h2>Vos droits</h2>
<p>Vous disposez, dans les limites et conditions autorisées par la réglementation en vigueur, dun droit daccès, de
rectification, deffacement et à la portabilité des données personnelles qui vous concernent. Vous pouvez à tout
moment retirer votre consentement.</p>
<p>Vous disposez également dun droit dopposition ou à la limitation du traitement qui vous concerne.</p>
<p>Enfin, vous pouvez définir le sort post-mortem que vous souhaitez donner à vos données personnelles.</p>
<p>Pour en savoir plus sur vos droits, vous pouvez consulter la <a
href="https://www.cnil.fr/fr/les-droits-pour-maitriser-vos-donnees-personnelles" target="_blank"
alt="lien CNIL">fiche pratique de la CNIL</a>.</p>
<p>Pour exercer vos droits, vous pouvez contacter le responsable scientifique du projet par email :
gestion.sourcesetdonnees [at] ehess [.] fr ; ou le délégué à la protection des données de lEHESS par courrier : «
DPO - École des hautes études en sciences sociales (EHESS) - 54, boulevard Raspail 75006 Paris » ou par email :
dpo [at] ehess [.] fr.</p>
<p>Pour lexercice de vos droits, vous devez impérativement justifier de votre identité en indiquant clairement vos nom
et prénoms, ladresse à laquelle vous souhaitez que la réponse vous soit envoyée, signer votre demande. Nous vous
conseillons de joindre une copie de votre pièce didentité afin de faciliter la prise en compte de votre demande.
</p>
<p>Si vous nêtes pas satisfait du traitement de votre demande concernant le traitement de vos données personnelles,
vous avez la possibilité de saisir la CNIL : 3, place de Fontenoy - TSA 80715 - 75334 PARIS CEDEX 07 - <a
href="www.cnil.fr" target="_blank" alt="lien CNIL">www.cnil.fr</a>.</p>
<p>Cette notice dinformation est susceptible dêtre modifiée.</p>
{% endblock %}

@ -0,0 +1,93 @@
{% extends "container.html" %}
{% block corps %}
<div class="container marketing" style="margin-top: 50px;">
<h1>Mentions légales</h1>
<p><em>Dernière mise à jour de la page : 24 octobre 2022.</em></p>
<p>Le site « Actes princiers » (actesprinciers.huma-num.fr) est édité par le Centre national de la recherche scientifique (CNRS), 3, rue Michel-Ange 75794 Paris cedex 16 (tél. 01 44 96 40 00) et a pour directeur de publication Antoine Petit, président directeur général du CNRS. Il est hébergé par la Très grand infrastructure de recherche (TGIR) Huma-Num, Bâtiment de recherche Nord, 14, cours des humanités, 93322 Aubervilliers cedex.</p>
<p>Le responsable de la rédaction est le Centre de recherches historiques (CRH, tél. 01 49 54 24 42, gestion.sourcesetdonnees [at] ehess [.] fr), unité mixte de recherche (UMR) 8558 du CNRS et de l'École des hautes études en sciences sociales (EHESS).</p>
<hr>
<h2>Réalisation du site</h2>
<p>Le site est réalisé sous la direction scientifique d'Olivier Mattéoni, par Jean-Damien Généro.
</p>
<hr>
<h2>Propriété intellectuelle et statut juridique de la présente édition et de ses contenus</h2>
<p>Les contenus présentés sur ce site sont couverts par le code de la propriété intellectuelle (CPI).</p>
<p>Sauf mention contraire, le corpus d'actes médiévaux publié sur ce site est issu de fonds d'archives et de collections de bibliothèques placés dans le domaine public.</p>
<p>Les personnes mentionnées sur le site actesprinciers.huma-num.fr peuvent exercer leurs droits auprès du délégué à la protection des données. Les modalités sont détaillées au paragraphe « données personnelles » des présentes mentions légales.</p>
<p>L'intégralité des textes transcrits et de l'appareil critique sont publiés sur le site sous <a href="https://www.etalab.gouv.fr/licence-ouverte-open-licence" title="Consulter la licence ouverte ETALAB 2">Licence Ouverte V 2.0</a>.</p>
<p>Pour toute autre demande : gestion.sourcesetdonnees [at] ehess [.] fr.</p>
<hr>
<h2>Crédits photographiques et autres mentions relatives aux droits dauteur</h2>
<p>Les photographies ainsi que lensemble des œuvres figurant sur ce site proviennent de sources différentes. Si aucun crédit n'est indiqué (en particulier lorsqu'il s'agit de documents d'archives), l'auteur est Jean-Damien Généro.</p>
<p>Les logos présents dans le footer sont mis à disposition par leurs auteurs sur leurs sites institutionnels.</p>
<p>Les crédits photographiques et autres mentions relatives aux droits dauteur, tels que spécifiés sur ce site, doivent être respectés.</p>
<hr>
<div>
<h2>Liens</h2>
<p>Létablissement de liens vers le présent site est possible.</p>
<p>La mention explicite du site &#171;&nbsp;Actes princiers&nbsp;&#187; dans lintitulé du lien est souhaitée.</p>
<p>Le Centre national de la recherche scientifiques et les autres partenaires du site &#171;&nbsp;Actes princiers&nbsp;&#187 se réserve le droit de demander la suppression dun lien quils estiment non-conforme à lobjet du site &#171;&nbsp;Actes princiers&nbsp;&#187.</p>
</div>
<hr>
<div>
<h2>Données personnelles</h2>
<p>Vos données à caractère personnel peuvent être traitées par lÉditeur pour la gestion du formulaire de contact,
conformément au Règlement (UE) 2016/679 et à la Loi n° 78-17.</p>
<ul>
<li>Finalité : Instruction de la demande dinformation.</li>
<li>Responsable de traitement : Centre national de la recherche scientifique (CNRS), représentée par son président directeur général Monsieur Petit et sis au 3, rue Michel-Ange 75794 Paris cedex 16.</li>
<li>Base légale : Le traitement de données personnelles est basé sur le consentement des personnes concernées.
</li>
<li>Catégorie de données traitées : Nom, Prénom, Adresse email.</li>
<li>Source des données : Les données sont collectées directement auprès des personnes concernées.</li>
<li>Caractère obligatoire du recueil des données : Les données avec un astérisque sont obligatoires pour le traitement de la demande qui, à défaut, ne pourra pas être instruite.</li>
<li>Destinataires des données : Chercheurs et collaborateurs du projet Actes princiers.</li>
<li>Durée de conservation des données : Les données sont conservées pendant 6 mois après le traitement de la demande. À lissue de ce délai, les données seront supprimées.</li>
</ul>
<p>Vous disposez, dans les limites et conditions autorisées par la réglementation en vigueur, dun droit daccès, de rectification, deffacement et à la portabilité des données personnelles qui vous concernent. Vous pouvez à tout moment retirer votre consentement. Vous disposez également dun droit dopposition ou à la limitation du traitement qui vous concerne. Enfin, vous pouvez définir le sort post-mortem que vous souhaitez donner à vos données personnelles.</p>
<p>Pour exercer vos droits, vous pouvez contacter le responsable scientifique du projet par email : gestion.sourcesetdonnees [at] ehess [.] fr ; ou le délégué à la protection des données de lEHESS par courrier : « DPO - École des hautes études en sciences sociales (EHESS) - 54, boulevard Raspail 75006 Paris » ou par email à l'adresse dpo [at] ehess [.] fr</p>
<p>Vous devez impérativement justifier de votre identité en indiquant clairement vos nom et prénoms, ladresse à laquelle vous souhaitez que la réponse vous soit envoyée, signer votre demande. Nous vous conseillons de joindre une copie de votre pièce didentité afin de faciliter la prise en compte de votre demande.</p>
<p>En outre, si vous nêtes pas satisfait du traitement de votre demande concernant le traitement de vos données personnelles, vous avez la possibilité de saisir la CNIL : 3, place de Fontenoy - TSA 80715 - 75334 PARIS CEDEX 07 - ou <a href="www.cnil.fr" target="_blank" title="lien CNIL">www.cnil.fr</a>.</p>
<hr>
<h2>Témoins de connexion ou cookies</h2>
<p>Un cookie désigne un fichier texte quun serveur web (le site web) dépose sur votre terminal (sur le disque dur de votre ordinateur ou smartphone, ou dans la mémoire de votre navigateur) lorsque vous visitez et utilisez des sites web et des services en ligne. Il contient plusieurs données : le nom du serveur qui la déposé, un identifiant sous forme de numéro unique, éventuellement une date dexpiration. Il permet de reconnaître votre terminal lorsque vous revenez sur un site web. En effet, ce nest pas vous qui êtes reconnu mais le terminal depuis lequel vous visitez un site web. Vous disposez de différents moyens pour gérer les cookies. Vous pouvez à tout moment choisir de désactiver tout ou partie des cookies.</p>
<p>Le site « Actes princiers » dépose uniquement des cookies nécessaires au fonctionnement du site. Ces cookies permettent au site de fonctionner de manière optimale.</p>
<p>Vous pouvez vous y opposer et les supprimer en utilisant les paramètres de votre navigateur, cependant votre expérience utilisateur risque dêtre dégradée. Pour en savoir plus, vous pouvez consulter la <a
href="https://www.cnil.fr/fr/cookies-les-outils-pour-les-maitriser" target="_blank" title="lien CNIL">fiche
pratique sur le site de la CNIL</a>.</p>
<hr>
<h2>Avertissement</h2>
<p>Les informations figurant sur ce site ou accessibles par ce site proviennent de sources considérées comme étant
fiables. Toutefois, ces informations peuvent contenir des inexactitudes techniques et des erreurs typographiques.
</p>
<p>Les informations ou documents disponibles sur ce site sont susceptibles dêtre modifiés à tout moment, et peuvent
avoir fait lobjet de mises à jour. En particulier, ils peuvent avoir fait lobjet dune mise à jour, entre le
moment de leur téléchargement et celui où lutilisateur en prend connaissance.</p>
<p>Lutilisation des informations ou documents disponibles sur ce site se fait sous lentière et seule responsabilité de
lutilisateur, qui assume la totalité des conséquences pouvant en découler. Le CRH ne pourra en aucun cas être
tenu responsable de tout dommage de quelque nature quil soit résultant de linterprétation ou de lutilisation
des informations ou documents disponibles sur ce site.</p>
<hr>
<h2>Droit applicable</h2>
<p>Lutilisation de ce site est régie par le droit français, quel que soit le lieu dutilisation. </p>
<p>En cas de contestation éventuelle, et après léchec de toute tentative de recherche dune solution amiable, les
tribunaux français seront seuls compétents pour connaître de ce litige.</p>
<hr>
<h2>Droit de réponse</h2>
<p>Le droit de réponse peut être exercé auprès de l'École des hautes études en sciences sociales : service.juridique
[at] ehess [.] fr.</p>
</div><!-- /.container -->
{% endblock %}

@ -0,0 +1,4 @@
#!/bin/bash
source .venv/bin/activate
export FLASK_DEBUG=1
export FLASK_APP=index.py

@ -0,0 +1,12 @@
#!/usr/bin/env python
"""
Application in development mode
you can either do a `python index.py` or a `flask run`, both are working fine.
"""
from app import app
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True, port=8080)

@ -0,0 +1,27 @@
#beautifulsoup4==4.11.1
#bs4==0.0.1
click==8.1.3
dnspython==2.4.2
email-validator==2.0.0.post2
Flask==2.2.2
flask-mongoengine==1.0.0
Flask-WTF==1.1.1
idna==3.4
gunicorn==21.2.0
importlib-metadata==5.0.0
itsdangerous==2.1.2
Jinja2==3.1.2
# FIXME remove lxml later
# lxml==4.9.1
MarkupSafe==2.1.1
packaging==23.1
mongoengine==0.27.0
# FIXME remove pewee later
# peewee==3.15.3
pymongo==4.5.0
#soupsieve==2.3.2.post1
#tqdm==4.64.1
typing==3.7.4.3
Werkzeug==2.2.2
WTForms==3.0.1
zipp==3.9.0
Loading…
Cancel
Save