Fixed jellyfin expose bug and improved docs
This commit is contained in:
-225
@@ -1,225 +0,0 @@
|
|||||||
{
|
|
||||||
"text-color": "#282828",
|
|
||||||
"background-color": "#fbf1c7",
|
|
||||||
"line-number-color": "#3c3836",
|
|
||||||
"line-number-background-color": "#fbf1c7",
|
|
||||||
"text-styles": {
|
|
||||||
"Alert": {
|
|
||||||
"text-color": "#9d0006",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": true,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Annotation": {
|
|
||||||
"text-color": "#b16286",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Attribute": {
|
|
||||||
"text-color": "#076678",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"BaseN": {
|
|
||||||
"text-color": "#b57614",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"BuiltIn": {
|
|
||||||
"text-color": "#8f3f71",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": true,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Char": {
|
|
||||||
"text-color": "#98971a",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Comment": {
|
|
||||||
"text-color": "#7c6f64",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"CommentVar": {
|
|
||||||
"text-color": "#7c6f64",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Constant": {
|
|
||||||
"text-color": "#cc241d",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"ControlFlow": {
|
|
||||||
"text-color": "#282828",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": true,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"DataType": {
|
|
||||||
"text-color": "#458588",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"DecVal": {
|
|
||||||
"text-color": "#458588",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Documentation": {
|
|
||||||
"text-color": "#98971a",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Error": {
|
|
||||||
"text-color": "#9d0006",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": true
|
|
||||||
},
|
|
||||||
"Extension": {
|
|
||||||
"text-color": "#458588",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": true,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Float": {
|
|
||||||
"text-color": "#b57614",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Function": {
|
|
||||||
"text-color": "#b16286",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Import": {
|
|
||||||
"text-color": "#d65d0e",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Information": {
|
|
||||||
"text-color": "#d65d0e",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Keyword": {
|
|
||||||
"text-color": "#282828",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": true,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Normal": {
|
|
||||||
"text-color": "#282828",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Operator": {
|
|
||||||
"text-color": "#282828",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Other": {
|
|
||||||
"text-color": "#79740e",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Preprocessor": {
|
|
||||||
"text-color": "#79740e",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"RegionMarker": {
|
|
||||||
"text-color": "#076678",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"SpecialChar": {
|
|
||||||
"text-color": "#79740e",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"SpecialString": {
|
|
||||||
"text-color": "#79740e",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"String": {
|
|
||||||
"text-color": "#98971a",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Variable": {
|
|
||||||
"text-color": "#076678",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"VerbatimString": {
|
|
||||||
"text-color": "#9d0006",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
},
|
|
||||||
"Warning": {
|
|
||||||
"text-color": "#b57614",
|
|
||||||
"background-color": null,
|
|
||||||
"bold": false,
|
|
||||||
"italic": false,
|
|
||||||
"underline": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+20
-13
@@ -19,8 +19,9 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
vpn.enable = mkEnableOption ''
|
vpn.enable = mkEnableOption ''
|
||||||
Route Jellyfin traffic through the VPN. Requires that `nixarr.vpn`
|
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
|
||||||
is configured
|
|
||||||
|
Route Jellyfin traffic through the VPN.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
expose = {
|
expose = {
|
||||||
@@ -28,8 +29,9 @@ in {
|
|||||||
enable = mkEnableOption ''
|
enable = mkEnableOption ''
|
||||||
**Required options:**
|
**Required options:**
|
||||||
|
|
||||||
- `nixarr.jellyfin.vpn.enable`
|
- [`nixarr.jellyfin.vpn.enable`](/options.html#nixarr.jellyfin.vpn.enable)
|
||||||
- `nixarr.jellyfin.expose.vpn.port`
|
- [`nixarr.jellyfin.expose.vpn.port`](/options.html#nixarr.jellyfin.expose.vpn.port)
|
||||||
|
- [`nixarr.jellyfin.expose.vpn.accessibleFrom`](/options.html#nixarr.jellyfin.expose.vpn.accessibleFrom)
|
||||||
|
|
||||||
Expose the Jellyfin web service to the internet, allowing anyone to
|
Expose the Jellyfin web service to the internet, allowing anyone to
|
||||||
access it.
|
access it.
|
||||||
@@ -42,12 +44,17 @@ in {
|
|||||||
type = with types; nullOr port;
|
type = with types; nullOr port;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = ''
|
||||||
**Required options:** `nixarr.jellyfin.expose.vpn.enable`
|
The port to access jellyfin on. Get this port from your VPN
|
||||||
|
provider.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
The port to access jellyfin on. Get this port from your VPN provider.
|
accessibleFrom = mkOption {
|
||||||
|
type = with types; nullOr str;
|
||||||
**Important:** Do _not_ enable this without setting up Jellyfin
|
default = null;
|
||||||
authentication through localhost first!
|
example = "jellyfin.airvpn.org";
|
||||||
|
description = ''
|
||||||
|
The IP or domain that Jellyfin should be able to be accessed from.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -56,10 +63,10 @@ in {
|
|||||||
enable = mkEnableOption ''
|
enable = mkEnableOption ''
|
||||||
**Required options:**
|
**Required options:**
|
||||||
|
|
||||||
- `nixarr.jellyfin.expose.https.acmeMail`
|
- [`nixarr.jellyfin.expose.https.acmeMail`](/options.html#nixarr.jellyfin.expose.https.acmeMail)
|
||||||
- `nixarr.jellyfin.expose.https.domainName`
|
- [`nixarr.jellyfin.expose.https.domainName`](/options.html#nixarr.jellyfin.expose.https.domainName)
|
||||||
|
|
||||||
**Conflicting options:** `nixarr.jellyfin.vpn.enable`
|
**Conflicting options:** [`nixarr.jellyfin.vpn.enable`](/options.html#nixarr.jellyfin.vpn.enable)
|
||||||
|
|
||||||
Expose the Jellyfin web service to the internet with https support,
|
Expose the Jellyfin web service to the internet with https support,
|
||||||
allowing anyone to access it.
|
allowing anyone to access it.
|
||||||
@@ -148,7 +155,7 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualHosts."${config.util-nixarr.vpn.address}:${builtins.toString cfg.expose.vpn.port}" = mkIf cfg.expose.vpn.enable {
|
virtualHosts."${cfg.expose.vpn.accessibleFrom}:${builtins.toString cfg.expose.vpn.port}" = mkIf cfg.expose.vpn.enable {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
|
|||||||
@@ -18,8 +18,9 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
vpn.enable = mkEnableOption ''
|
vpn.enable = mkEnableOption ''
|
||||||
Route Lidarr traffic through the VPN. Requires that `nixarr.vpn`
|
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
|
||||||
is configured
|
|
||||||
|
Route Lidarr traffic through the VPN.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ in {
|
|||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
|
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
|
||||||
|
|
||||||
Run the openssh service through a vpn.
|
Run the openssh service through a vpn.
|
||||||
|
|
||||||
**Note:** This option does _not_ enable the sshd service you still
|
**Note:** This option does _not_ enable the sshd service you still
|
||||||
|
|||||||
@@ -24,8 +24,9 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
vpn.enable = mkEnableOption ''
|
vpn.enable = mkEnableOption ''
|
||||||
Route Prowlarr traffic through the VPN. Requires that `nixarr.vpn`
|
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
|
||||||
is configured.
|
|
||||||
|
Route Prowlarr traffic through the VPN.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,9 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
vpn.enable = mkEnableOption ''
|
vpn.enable = mkEnableOption ''
|
||||||
Route Radarr traffic through the VPN. Requires that `nixarr.vpn`
|
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
|
||||||
is configured.
|
|
||||||
|
Route Radarr traffic through the VPN.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,9 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
vpn.enable = mkEnableOption ''
|
vpn.enable = mkEnableOption ''
|
||||||
Route Readarr traffic through the VPN. Requires that `nixarr.vpn`
|
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
|
||||||
is configured.
|
|
||||||
|
Route Readarr traffic through the VPN.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,9 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
vpn.enable = mkEnableOption ''
|
vpn.enable = mkEnableOption ''
|
||||||
Route Readarr traffic through the VPN. Requires that `nixarr.vpn`
|
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
|
||||||
is configured.
|
|
||||||
|
Route Sonarr traffic through the VPN.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ in {
|
|||||||
default = "${nixarr.stateDir}/nixarr/transmission";
|
default = "${nixarr.stateDir}/nixarr/transmission";
|
||||||
description = ''
|
description = ''
|
||||||
The state directory for Transmission.
|
The state directory for Transmission.
|
||||||
|
|
||||||
**BUG**: Only works when the `nixarr.transmission.vpn.enable` option
|
|
||||||
is set.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -33,8 +30,9 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
vpn.enable = mkEnableOption ''
|
vpn.enable = mkEnableOption ''
|
||||||
**Recommended!** Route Transmission traffic through the VPN. Requires that `nixarr.vpn`
|
**Required options:** [`nixarr.vpn.enable`](/options.html#nixarr.vpn.enable)
|
||||||
is configured.
|
|
||||||
|
**Recommended:** Route Transmission traffic through the VPN.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
flood.enable = mkEnableOption "Use the flood web-UI";
|
flood.enable = mkEnableOption "Use the flood web-UI";
|
||||||
|
|||||||
-352
@@ -1,352 +0,0 @@
|
|||||||
/*
|
|
||||||
* I add this to html files generated with pandoc.
|
|
||||||
*/
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--bg: #fbf1c7;
|
|
||||||
--bgt: #fbf1c7;
|
|
||||||
--bge: #fbf8e4;
|
|
||||||
--bg0: #f9f5d7;
|
|
||||||
--fg0: #282828;
|
|
||||||
--ltred: #cc241d;
|
|
||||||
--ltgreen: #98971a;
|
|
||||||
--ltyellow: #d79921;
|
|
||||||
--ltblue: #458588;
|
|
||||||
--ltpurple: #b16286;
|
|
||||||
--ltaqua: #689da6;
|
|
||||||
--ltorange: #d65d0e;
|
|
||||||
--ltgrey: #7c6f64;
|
|
||||||
--dkred: #9d0006;
|
|
||||||
--dkgreen: #79740e;
|
|
||||||
--dkyellow: #b57614;
|
|
||||||
--dkblue: #076678;
|
|
||||||
--dkpurple: #8f3f71;
|
|
||||||
--dkaqua: #427b58;
|
|
||||||
--dkgrey: #3c3836;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
font-size: 100%;
|
|
||||||
overflow-y: scroll;
|
|
||||||
-webkit-text-size-adjust: 100%;
|
|
||||||
-ms-text-size-adjust: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
color: var(--fg0);
|
|
||||||
font-family: Georgia, Palatino, 'Palatino Linotype', Times, 'Times New Roman', serif;
|
|
||||||
font-size: 12px;
|
|
||||||
line-height: 1.7;
|
|
||||||
padding: 1em;
|
|
||||||
margin: auto;
|
|
||||||
max-width: 38em;
|
|
||||||
background: var(--bg0);
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: var(--ltblue);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:visited {
|
|
||||||
color: var(--dkblue);
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: var(--ltblue);
|
|
||||||
}
|
|
||||||
|
|
||||||
a:active {
|
|
||||||
color: var(--ltblue);
|
|
||||||
}
|
|
||||||
|
|
||||||
a:focus {
|
|
||||||
outline: thin dotted;
|
|
||||||
}
|
|
||||||
|
|
||||||
*::-moz-selection {
|
|
||||||
/* background: var(--ltred); */
|
|
||||||
background: rgba(255, 255, 0, 0.3);
|
|
||||||
color: var(--fg0);
|
|
||||||
}
|
|
||||||
|
|
||||||
*::selection {
|
|
||||||
background: rgba(255, 255, 0, 0.3);
|
|
||||||
color: var(--fg0);
|
|
||||||
}
|
|
||||||
|
|
||||||
a::-moz-selection {
|
|
||||||
background: rgba(255, 255, 0, 0.3);
|
|
||||||
color: var(--ltblue);
|
|
||||||
}
|
|
||||||
|
|
||||||
a::selection {
|
|
||||||
background: rgba(255, 255, 0, 0.3);
|
|
||||||
color: var(--ltblue);
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
|
||||||
color: var(--fg0);
|
|
||||||
line-height: 125%;
|
|
||||||
margin-top: 1em;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
h4, h5, h6 {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 2.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: 2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 1.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: 1.2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
h5 {
|
|
||||||
font-size: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
h6 {
|
|
||||||
font-size: 0.9em;
|
|
||||||
}
|
|
||||||
|
|
||||||
blockquote {
|
|
||||||
color: var(--ltgrey);
|
|
||||||
margin: 0;
|
|
||||||
padding-left: 3em;
|
|
||||||
border-left: 0.5em var(--fg0) solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
display: block;
|
|
||||||
height: 2px;
|
|
||||||
border: 0;
|
|
||||||
border-top: 1px solid #aaa;
|
|
||||||
border-bottom: 1px solid #eee;
|
|
||||||
margin: 1em 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre, code, kbd, samp {
|
|
||||||
color: var(--fg0);
|
|
||||||
font-family: monospace, monospace;
|
|
||||||
_font-family: 'courier new', monospace;
|
|
||||||
font-size: 0.98em;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
white-space: pre;
|
|
||||||
white-space: pre-wrap;
|
|
||||||
word-wrap: break-word;
|
|
||||||
}
|
|
||||||
|
|
||||||
b, strong {
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
dfn {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
ins {
|
|
||||||
background: #ff9;
|
|
||||||
color: #000;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
mark {
|
|
||||||
background: #ff0;
|
|
||||||
color: #000;
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub, sup {
|
|
||||||
font-size: 75%;
|
|
||||||
line-height: 0;
|
|
||||||
position: relative;
|
|
||||||
vertical-align: baseline;
|
|
||||||
}
|
|
||||||
|
|
||||||
sup {
|
|
||||||
top: -0.5em;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub {
|
|
||||||
bottom: -0.25em;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul, ol {
|
|
||||||
margin: 1em 0;
|
|
||||||
padding: 0 0 0 2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
li p:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul ul, ol ol {
|
|
||||||
margin: .3em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
dl {
|
|
||||||
margin-bottom: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
dt {
|
|
||||||
font-weight: bold;
|
|
||||||
margin-bottom: .8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
dd {
|
|
||||||
margin: 0 0 .8em 2em;
|
|
||||||
}
|
|
||||||
|
|
||||||
dd:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
border: 0;
|
|
||||||
-ms-interpolation-mode: bicubic;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure {
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
figure img {
|
|
||||||
border: none;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption {
|
|
||||||
font-size: 0.8em;
|
|
||||||
font-style: italic;
|
|
||||||
margin: 0 0 .8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
margin-bottom: 2em;
|
|
||||||
border-bottom: 1px solid #ddd;
|
|
||||||
border-right: 1px solid #ddd;
|
|
||||||
border-spacing: 0;
|
|
||||||
border-collapse: collapse;
|
|
||||||
}
|
|
||||||
|
|
||||||
table th {
|
|
||||||
padding: .2em 1em;
|
|
||||||
background-color: #eee;
|
|
||||||
border-top: 1px solid #ddd;
|
|
||||||
border-left: 1px solid #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
table td {
|
|
||||||
padding: .2em 1em;
|
|
||||||
border-top: 1px solid #ddd;
|
|
||||||
border-left: 1px solid #ddd;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
|
|
||||||
.author {
|
|
||||||
font-size: 1.2em;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media only screen and (min-width: 480px) {
|
|
||||||
body {
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media only screen and (min-width: 768px) {
|
|
||||||
body {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media print {
|
|
||||||
* {
|
|
||||||
background: transparent !important;
|
|
||||||
color: black !important;
|
|
||||||
filter: none !important;
|
|
||||||
-ms-filter: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-size: 12pt;
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
a, a:visited {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
height: 1px;
|
|
||||||
border: 0;
|
|
||||||
border-bottom: 1px solid black;
|
|
||||||
}
|
|
||||||
|
|
||||||
a[href]:after {
|
|
||||||
content: " (" attr(href) ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
abbr[title]:after {
|
|
||||||
content: " (" attr(title) ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
|
|
||||||
pre, blockquote {
|
|
||||||
border: 1px solid #999;
|
|
||||||
padding-right: 1em;
|
|
||||||
page-break-inside: avoid;
|
|
||||||
}
|
|
||||||
|
|
||||||
tr, img {
|
|
||||||
page-break-inside: avoid;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
max-width: 100% !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
@page :left {
|
|
||||||
margin: 15mm 20mm 15mm 10mm;
|
|
||||||
}
|
|
||||||
|
|
||||||
@page :right {
|
|
||||||
margin: 15mm 10mm 15mm 20mm;
|
|
||||||
}
|
|
||||||
|
|
||||||
p, h2, h3 {
|
|
||||||
orphans: 3;
|
|
||||||
widows: 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
h2, h3 {
|
|
||||||
page-break-after: avoid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user