mirror of
https://github.com/kogakure/website-11ty-kogakure.de.git
synced 2026-02-03 20:25:30 +00:00
refactor: convert files from spaces to tabs
This commit is contained in:
156
.eleventy.js
156
.eleventy.js
@@ -6,94 +6,94 @@ const shortcodes = require('./src/utils/shortcodes.js');
|
|||||||
const collections = require('./src/utils/collections.js');
|
const collections = require('./src/utils/collections.js');
|
||||||
|
|
||||||
module.exports = function (config) {
|
module.exports = function (config) {
|
||||||
// Plugins
|
// Plugins
|
||||||
if (process.env.ELEVENTY_ENV == 'production') {
|
if (process.env.ELEVENTY_ENV == 'production') {
|
||||||
config.addPlugin(pluginLazyImages);
|
config.addPlugin(pluginLazyImages);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Markdown It
|
// Markdown It
|
||||||
let markdownIt = require('markdown-it');
|
let markdownIt = require('markdown-it');
|
||||||
let markdownItGitHubHeadings = require('markdown-it-github-headings');
|
let markdownItGitHubHeadings = require('markdown-it-github-headings');
|
||||||
let markdownItExternalAnchor = require('markdown-it-external-anchor');
|
let markdownItExternalAnchor = require('markdown-it-external-anchor');
|
||||||
let options = {
|
let options = {
|
||||||
html: true,
|
html: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let markdownLib = markdownIt(options)
|
let markdownLib = markdownIt(options)
|
||||||
.use(markdownItGitHubHeadings)
|
.use(markdownItGitHubHeadings)
|
||||||
.use(markdownItExternalAnchor, {
|
.use(markdownItExternalAnchor, {
|
||||||
domain: 'www.kogakure.de',
|
domain: 'www.kogakure.de',
|
||||||
class: 'external',
|
class: 'external',
|
||||||
});
|
});
|
||||||
|
|
||||||
config.setLibrary('md', markdownLib);
|
config.setLibrary('md', markdownLib);
|
||||||
|
|
||||||
// Compress and combine JS files
|
// Compress and combine JS files
|
||||||
config.addFilter('jsmin', require('./src/utils/minify-js.js'));
|
config.addFilter('jsmin', require('./src/utils/minify-js.js'));
|
||||||
|
|
||||||
// Minify the HTML in production
|
// Minify the HTML in production
|
||||||
if (process.env.ELEVENTY_ENV == 'production') {
|
if (process.env.ELEVENTY_ENV == 'production') {
|
||||||
config.addTransform('htmlmin', require('./src/utils/minify-html.js'));
|
config.addTransform('htmlmin', require('./src/utils/minify-html.js'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Shortcodes
|
// Shortcodes
|
||||||
config.addShortcode('download', shortcodes.download);
|
config.addShortcode('download', shortcodes.download);
|
||||||
config.addShortcode('duoColorImage', shortcodes.duoColorImage);
|
config.addShortcode('duoColorImage', shortcodes.duoColorImage);
|
||||||
config.addShortcode('email', shortcodes.email);
|
config.addShortcode('email', shortcodes.email);
|
||||||
config.addShortcode('more', shortcodes.more);
|
config.addShortcode('more', shortcodes.more);
|
||||||
config.addShortcode('product', shortcodes.product);
|
config.addShortcode('product', shortcodes.product);
|
||||||
config.addShortcode('youtube', shortcodes.youtube);
|
config.addShortcode('youtube', shortcodes.youtube);
|
||||||
config.addPairedShortcode('banner', shortcodes.banner);
|
config.addPairedShortcode('banner', shortcodes.banner);
|
||||||
config.addPairedShortcode('figure', shortcodes.figure);
|
config.addPairedShortcode('figure', shortcodes.figure);
|
||||||
config.addPairedShortcode('productshelf', shortcodes.productshelf);
|
config.addPairedShortcode('productshelf', shortcodes.productshelf);
|
||||||
|
|
||||||
// Filters
|
// Filters
|
||||||
Object.keys(filters).forEach((filterName) => {
|
Object.keys(filters).forEach((filterName) => {
|
||||||
config.addFilter(filterName, filters[filterName]);
|
config.addFilter(filterName, filters[filterName]);
|
||||||
});
|
});
|
||||||
config.addFilter('nbsp', filterNbsp(2, 10));
|
config.addFilter('nbsp', filterNbsp(2, 10));
|
||||||
|
|
||||||
// Watch for changes and reload
|
// Watch for changes and reload
|
||||||
config.addWatchTarget('src/assets');
|
config.addWatchTarget('src/assets');
|
||||||
|
|
||||||
// Copy static files to dist
|
// Copy static files to dist
|
||||||
config.addPassthroughCopy({
|
config.addPassthroughCopy({
|
||||||
'src/static/**/*.{xml,html,ico}': '.',
|
'src/static/**/*.{xml,html,ico}': '.',
|
||||||
});
|
});
|
||||||
config.addPassthroughCopy({
|
config.addPassthroughCopy({
|
||||||
'src/static/.well-known/*': '.well-known',
|
'src/static/.well-known/*': '.well-known',
|
||||||
});
|
});
|
||||||
config.addPassthroughCopy({
|
config.addPassthroughCopy({
|
||||||
'src/downloads': 'downloads',
|
'src/downloads': 'downloads',
|
||||||
});
|
});
|
||||||
config.addPassthroughCopy({
|
config.addPassthroughCopy({
|
||||||
'src/assets/fonts': 'assets/fonts',
|
'src/assets/fonts': 'assets/fonts',
|
||||||
});
|
});
|
||||||
config.addPassthroughCopy({
|
config.addPassthroughCopy({
|
||||||
'src/assets/images': 'assets/images',
|
'src/assets/images': 'assets/images',
|
||||||
});
|
});
|
||||||
|
|
||||||
// Deep-Merge
|
// Deep-Merge
|
||||||
config.setDataDeepMerge(true);
|
config.setDataDeepMerge(true);
|
||||||
|
|
||||||
// Custom Collections
|
// Custom Collections
|
||||||
Object.keys(collections).forEach((collectionName) => {
|
Object.keys(collections).forEach((collectionName) => {
|
||||||
config.addCollection(collectionName, collections[collectionName]);
|
config.addCollection(collectionName, collections[collectionName]);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set input and output folders
|
// Set input and output folders
|
||||||
return {
|
return {
|
||||||
dir: {
|
dir: {
|
||||||
input: 'src',
|
input: 'src',
|
||||||
data: 'data',
|
data: 'data',
|
||||||
includes: 'includes',
|
includes: 'includes',
|
||||||
layouts: 'layouts',
|
layouts: 'layouts',
|
||||||
output: 'dist',
|
output: 'dist',
|
||||||
},
|
},
|
||||||
templateFormats: ['njk', 'md', '11ty.js'],
|
templateFormats: ['njk', 'md', '11ty.js'],
|
||||||
htmlTemplateEngine: 'njk',
|
htmlTemplateEngine: 'njk',
|
||||||
dataTemplateEngine: 'njk',
|
dataTemplateEngine: 'njk',
|
||||||
markdownTemplateEngine: 'njk',
|
markdownTemplateEngine: 'njk',
|
||||||
passthroughFileCopy: true,
|
passthroughFileCopy: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"env": {
|
"env": {
|
||||||
"es6": true,
|
"es6": true,
|
||||||
"node": true,
|
"node": true,
|
||||||
"browser": true
|
"browser": true
|
||||||
},
|
},
|
||||||
"extends": ["eslint:recommended", "plugin:prettier/recommended"],
|
"extends": ["eslint:recommended", "plugin:prettier/recommended"],
|
||||||
"plugins": ["prettier"],
|
"plugins": ["prettier"],
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"sourceType": "module"
|
"sourceType": "module"
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"prettier/prettier": "error"
|
"prettier/prettier": "error"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,35 @@
|
|||||||
{
|
{
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"stylelint-order",
|
"stylelint-order",
|
||||||
"stylelint-config-rational-order/plugin",
|
"stylelint-config-rational-order/plugin",
|
||||||
"stylelint-a11y",
|
"stylelint-a11y",
|
||||||
"stylelint-high-performance-animation",
|
"stylelint-high-performance-animation",
|
||||||
"stylelint-prettier"
|
"stylelint-prettier"
|
||||||
],
|
],
|
||||||
"extends": [
|
"extends": [
|
||||||
"stylelint-config-recommended",
|
"stylelint-config-recommended",
|
||||||
"stylelint-a11y/recommended",
|
"stylelint-a11y/recommended",
|
||||||
"stylelint-prettier/recommended"
|
"stylelint-prettier/recommended"
|
||||||
],
|
],
|
||||||
"syntax": "scss",
|
"syntax": "scss",
|
||||||
"rules": {
|
"rules": {
|
||||||
"property-no-unknown": [
|
"property-no-unknown": [
|
||||||
true,
|
true,
|
||||||
{
|
{
|
||||||
"ignoreProperties": ["suffix", "symbols", "system"]
|
"ignoreProperties": ["suffix", "symbols", "system"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"no-descending-specificity": null,
|
"no-descending-specificity": null,
|
||||||
"order/order": ["custom-properties", "declarations"],
|
"order/order": ["custom-properties", "declarations"],
|
||||||
"order/properties-alphabetical-order": true,
|
"order/properties-alphabetical-order": true,
|
||||||
"plugin/no-low-performance-animation-properties": true,
|
"plugin/no-low-performance-animation-properties": true,
|
||||||
"at-rule-no-unknown": [
|
"at-rule-no-unknown": [
|
||||||
true,
|
true,
|
||||||
{
|
{
|
||||||
"ignoreAtRules": ["define-placeholder", "extend"]
|
"ignoreAtRules": ["define-placeholder", "extend"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"string-quotes": "single",
|
"string-quotes": "single",
|
||||||
"prettier/prettier": true
|
"prettier/prettier": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"presets": ["@babel/preset-env"]
|
"presets": ["@babel/preset-env"]
|
||||||
}
|
}
|
||||||
|
|||||||
117
gulpfile.js
117
gulpfile.js
@@ -16,94 +16,91 @@ const svgSprite = require('gulp-svg-sprite');
|
|||||||
* Package JavaScript with Babel and Browserify
|
* Package JavaScript with Babel and Browserify
|
||||||
*/
|
*/
|
||||||
task('js', () => {
|
task('js', () => {
|
||||||
return browserify(['./src/assets/scripts/main.js'], {
|
return browserify(['./src/assets/scripts/main.js'], {
|
||||||
debug: true,
|
debug: true,
|
||||||
})
|
})
|
||||||
.transform(babel)
|
.transform(babel)
|
||||||
.bundle()
|
.bundle()
|
||||||
.on('error', function (err) {
|
.on('error', function (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
this.emit('end');
|
this.emit('end');
|
||||||
})
|
})
|
||||||
.pipe(source('main.js'))
|
.pipe(source('main.js'))
|
||||||
.pipe(buffer())
|
.pipe(buffer())
|
||||||
.pipe(sourcemaps.init({ loadMaps: true }))
|
.pipe(sourcemaps.init({ loadMaps: true }))
|
||||||
.pipe(sourcemaps.write('.'))
|
.pipe(sourcemaps.write('.'))
|
||||||
.pipe(dest('./dist/assets/scripts'));
|
.pipe(dest('./dist/assets/scripts'));
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create CSS and Sourcemaps with PostCSS
|
* Create CSS and Sourcemaps with PostCSS
|
||||||
*/
|
*/
|
||||||
task('css', function () {
|
task('css', function () {
|
||||||
return src([
|
return src(['./src/assets/styles/*.css', './src/assets/styles/critical/*.css'])
|
||||||
'./src/assets/styles/*.css',
|
.pipe(plumber())
|
||||||
'./src/assets/styles/critical/*.css',
|
.pipe(sourcemaps.init())
|
||||||
])
|
.pipe(postcss())
|
||||||
.pipe(plumber())
|
.pipe(sourcemaps.write('.'))
|
||||||
.pipe(sourcemaps.init())
|
.pipe(dest('./dist/assets/styles'));
|
||||||
.pipe(postcss())
|
|
||||||
.pipe(sourcemaps.write('.'))
|
|
||||||
.pipe(dest('./dist/assets/styles'));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create CSS with PostCSS for production
|
* Create CSS with PostCSS for production
|
||||||
*/
|
*/
|
||||||
task('css:production', function () {
|
task('css:production', function () {
|
||||||
return src(['./src/assets/styles/*.css'])
|
return src(['./src/assets/styles/*.css'])
|
||||||
.pipe(plumber())
|
.pipe(plumber())
|
||||||
.pipe(postcss())
|
.pipe(postcss())
|
||||||
.pipe(dest('./dist/assets/styles'));
|
.pipe(dest('./dist/assets/styles'));
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copy critical CSS files to project folder
|
* Copy critical CSS files to project folder
|
||||||
*/
|
*/
|
||||||
task('css:critical', function () {
|
task('css:critical', function () {
|
||||||
return src(['./src/assets/styles/critical/*.css'])
|
return src(['./src/assets/styles/critical/*.css'])
|
||||||
.pipe(plumber())
|
.pipe(plumber())
|
||||||
.pipe(postcss())
|
.pipe(postcss())
|
||||||
.pipe(dest('./src/includes/critical'));
|
.pipe(dest('./src/includes/critical'));
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create SVG sprite map from SVG files
|
* Create SVG sprite map from SVG files
|
||||||
*/
|
*/
|
||||||
task('svg', () => {
|
task('svg', () => {
|
||||||
return src('./src/icons/*.svg')
|
return src('./src/icons/*.svg')
|
||||||
.pipe(plumber())
|
.pipe(plumber())
|
||||||
.pipe(
|
.pipe(
|
||||||
svgSprite({
|
svgSprite({
|
||||||
mode: {
|
mode: {
|
||||||
symbol: {
|
symbol: {
|
||||||
dest: '.',
|
dest: '.',
|
||||||
sprite: 'icons.svg',
|
sprite: 'icons.svg',
|
||||||
},
|
},
|
||||||
svg: {
|
svg: {
|
||||||
xmlDeclaration: false,
|
xmlDeclaration: false,
|
||||||
doctypeDeclaration: false,
|
doctypeDeclaration: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.pipe(dest('src/includes'));
|
.pipe(dest('src/includes'));
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Optimize and minimize images
|
* Optimize and minimize images
|
||||||
*/
|
*/
|
||||||
task('optimize:images', () => {
|
task('optimize:images', () => {
|
||||||
return src('src/assets/images/**/*.{jpg,jpeg,png,gif,svg}')
|
return src('src/assets/images/**/*.{jpg,jpeg,png,gif,svg}')
|
||||||
.pipe(
|
.pipe(
|
||||||
imagemin({
|
imagemin({
|
||||||
optimizationLevel: 3,
|
optimizationLevel: 3,
|
||||||
progressive: true,
|
progressive: true,
|
||||||
interlaced: true,
|
interlaced: true,
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.pipe(dest('src/assets/images/'))
|
.pipe(dest('src/assets/images/'))
|
||||||
.pipe(size());
|
.pipe(size());
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -115,8 +112,8 @@ task('build', parallel('js', 'css:production', 'css:critical'));
|
|||||||
* Watch for changes in files
|
* Watch for changes in files
|
||||||
*/
|
*/
|
||||||
task('watch', () => {
|
task('watch', () => {
|
||||||
watch('./src/assets/scripts/**/*.js', series('js'));
|
watch('./src/assets/scripts/**/*.js', series('js'));
|
||||||
watch('./src/assets/styles/**/*.css', series('css'));
|
watch('./src/assets/styles/**/*.css', series('css'));
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
30
netlify.toml
30
netlify.toml
@@ -1,28 +1,28 @@
|
|||||||
[build]
|
[build]
|
||||||
command = "npm run build"
|
command = "npm run build"
|
||||||
publish = "dist"
|
publish = "dist"
|
||||||
|
|
||||||
[build.environment]
|
[build.environment]
|
||||||
NODE_VERSION = "12.16"
|
NODE_VERSION = "12.16"
|
||||||
|
|
||||||
[dev]
|
[dev]
|
||||||
command = "npm run dev"
|
command = "npm run dev"
|
||||||
publish = "dist"
|
publish = "dist"
|
||||||
|
|
||||||
[[headers]]
|
[[headers]]
|
||||||
for = "/*"
|
for = "/*"
|
||||||
[headers.values]
|
[headers.values]
|
||||||
X-Frame-Options = "DENY"
|
X-Frame-Options = "DENY"
|
||||||
X-XSS-Protection = "1; mode=block"
|
X-XSS-Protection = "1; mode=block"
|
||||||
X-Content-Type-Options = "nosniff"
|
X-Content-Type-Options = "nosniff"
|
||||||
Referrer-Policy= "no-referrer-when-downgrade"
|
Referrer-Policy= "no-referrer-when-downgrade"
|
||||||
Permissions-Policy = "interest-cohort=()"
|
Permissions-Policy = "interest-cohort=()"
|
||||||
|
|
||||||
[[headers]]
|
[[headers]]
|
||||||
for = "/sw.js"
|
for = "/sw.js"
|
||||||
|
|
||||||
[headers.values]
|
[headers.values]
|
||||||
cache-control = "max-age=0,no-cache,no-store,must-revalidate"
|
cache-control = "max-age=0,no-cache,no-store,must-revalidate"
|
||||||
|
|
||||||
[[redirects]]
|
[[redirects]]
|
||||||
from = "/artikel/*"
|
from = "/artikel/*"
|
||||||
|
|||||||
172910
package-lock.json
generated
172910
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
168
package.json
168
package.json
@@ -1,86 +1,86 @@
|
|||||||
{
|
{
|
||||||
"name": "website-11ty-kogakure.de",
|
"name": "website-11ty-kogakure.de",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "Source code of my martial arts website",
|
"description": "Source code of my martial arts website",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "ELEVENTY_ENV=production npm-run-all build:assets build:html build:sw",
|
"build": "ELEVENTY_ENV=production npm-run-all build:assets build:html build:sw",
|
||||||
"build:assets": "gulp build",
|
"build:assets": "gulp build",
|
||||||
"build:html": "eleventy",
|
"build:html": "eleventy",
|
||||||
"build:sw": "workbox generateSW workbox.config.js",
|
"build:sw": "workbox generateSW workbox.config.js",
|
||||||
"clean": "npx del dist",
|
"clean": "npx del dist",
|
||||||
"debug": "DEBUG=* npx eleventy",
|
"debug": "DEBUG=* npx eleventy",
|
||||||
"deploy": "netlify deploy --prod",
|
"deploy": "netlify deploy --prod",
|
||||||
"deploy:preview": "netflify deploy",
|
"deploy:preview": "netflify deploy",
|
||||||
"dev": "ELEVENTY_ENV=development npm run watch",
|
"dev": "ELEVENTY_ENV=development npm run watch",
|
||||||
"live": "netlify dev --live",
|
"live": "netlify dev --live",
|
||||||
"prebuild": "npm run clean",
|
"prebuild": "npm run clean",
|
||||||
"prestart": "npm run clean",
|
"prestart": "npm run clean",
|
||||||
"publish": "npm-run-all build deploy",
|
"publish": "npm-run-all build deploy",
|
||||||
"start": "netlify dev",
|
"start": "netlify dev",
|
||||||
"svg": "gulp svg",
|
"svg": "gulp svg",
|
||||||
"watch": "npm-run-all --parallel watch:*",
|
"watch": "npm-run-all --parallel watch:*",
|
||||||
"watch:assets": "gulp",
|
"watch:assets": "gulp",
|
||||||
"watch:html": "eleventy --serve"
|
"watch:html": "eleventy --serve"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/kogakure/website-11ty-kogakure.de.git"
|
"url": "git+https://github.com/kogakure/website-11ty-kogakure.de.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"11ty"
|
"11ty"
|
||||||
],
|
],
|
||||||
"author": "Stefan Imhoff",
|
"author": "Stefan Imhoff",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"homepage": "https://www.kogakure.de",
|
"homepage": "https://www.kogakure.de",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@11ty/eleventy": "1.0.1",
|
"@11ty/eleventy": "1.0.1",
|
||||||
"autoprefixer": "^10.2.5",
|
"autoprefixer": "^10.2.5",
|
||||||
"babelify": "^10.0.0",
|
"babelify": "^10.0.0",
|
||||||
"browserify": "^17.0.0",
|
"browserify": "^17.0.0",
|
||||||
"cssnano": "^5.0.2",
|
"cssnano": "^5.0.2",
|
||||||
"del-cli": "^3.0.1",
|
"del-cli": "^3.0.1",
|
||||||
"eleventy-nbsp-filter": "^0.1.0",
|
"eleventy-nbsp-filter": "^0.1.0",
|
||||||
"eleventy-plugin-lazyimages": "^2.1.0",
|
"eleventy-plugin-lazyimages": "^2.1.0",
|
||||||
"eslint": "^7.25.0",
|
"eslint": "^7.25.0",
|
||||||
"eslint-config-prettier": "^8.3.0",
|
"eslint-config-prettier": "^8.3.0",
|
||||||
"eslint-plugin-prettier": "^3.4.0",
|
"eslint-plugin-prettier": "^3.4.0",
|
||||||
"gulp": "^4.0.2",
|
"gulp": "^4.0.2",
|
||||||
"gulp-imagemin": "^7.1.0",
|
"gulp-imagemin": "^7.1.0",
|
||||||
"gulp-plumber": "^1.2.1",
|
"gulp-plumber": "^1.2.1",
|
||||||
"gulp-postcss": "^9.0.0",
|
"gulp-postcss": "^9.0.0",
|
||||||
"gulp-size": "^3.0.0",
|
"gulp-size": "^3.0.0",
|
||||||
"gulp-sourcemaps": "^3.0.0",
|
"gulp-sourcemaps": "^3.0.0",
|
||||||
"gulp-svg-sprite": "^1.5.0",
|
"gulp-svg-sprite": "^1.5.0",
|
||||||
"html-minifier": "^4.0.0",
|
"html-minifier": "^4.0.0",
|
||||||
"markdown-it-external-anchor": "^1.0.0",
|
"markdown-it-external-anchor": "^1.0.0",
|
||||||
"markdown-it-github-headings": "^2.0.0",
|
"markdown-it-github-headings": "^2.0.0",
|
||||||
"moment": "^2.29.1",
|
"moment": "^2.29.1",
|
||||||
"netlify-cli": "^3.39.4",
|
"netlify-cli": "^3.39.4",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"outdent": "^0.8.0",
|
"outdent": "^0.8.0",
|
||||||
"postcss": "^8.2.13",
|
"postcss": "^8.2.13",
|
||||||
"postcss-100vh-fix": "^1.0.2",
|
"postcss-100vh-fix": "^1.0.2",
|
||||||
"postcss-cli": "^8.3.1",
|
"postcss-cli": "^8.3.1",
|
||||||
"postcss-custom-media": "^8.0.0",
|
"postcss-custom-media": "^8.0.0",
|
||||||
"postcss-custom-properties": "^11.0.0",
|
"postcss-custom-properties": "^11.0.0",
|
||||||
"postcss-extend": "^1.0.5",
|
"postcss-extend": "^1.0.5",
|
||||||
"postcss-import": "^14.0.1",
|
"postcss-import": "^14.0.1",
|
||||||
"postcss-media-minmax": "^5.0.0",
|
"postcss-media-minmax": "^5.0.0",
|
||||||
"postcss-nested": "^5.0.5",
|
"postcss-nested": "^5.0.5",
|
||||||
"postcss-sort-media-queries": "^3.8.9",
|
"postcss-sort-media-queries": "^3.8.9",
|
||||||
"prettier": "^2.2.1",
|
"prettier": "^2.2.1",
|
||||||
"sal.js": "^0.8.4",
|
"sal.js": "^0.8.4",
|
||||||
"stylelint": "^13.13.0",
|
"stylelint": "^13.13.0",
|
||||||
"stylelint-a11y": "^1.2.3",
|
"stylelint-a11y": "^1.2.3",
|
||||||
"stylelint-config-prettier": "^8.0.2",
|
"stylelint-config-prettier": "^8.0.2",
|
||||||
"stylelint-config-rational-order": "^0.1.2",
|
"stylelint-config-rational-order": "^0.1.2",
|
||||||
"stylelint-config-recommended": "^5.0.0",
|
"stylelint-config-recommended": "^5.0.0",
|
||||||
"stylelint-high-performance-animation": "^1.5.2",
|
"stylelint-high-performance-animation": "^1.5.2",
|
||||||
"stylelint-order": "^4.1.0",
|
"stylelint-order": "^4.1.0",
|
||||||
"stylelint-prettier": "^1.2.0",
|
"stylelint-prettier": "^1.2.0",
|
||||||
"uglify-js": "^3.13.4",
|
"uglify-js": "^3.13.4",
|
||||||
"vinyl-buffer": "^1.0.1",
|
"vinyl-buffer": "^1.0.1",
|
||||||
"vinyl-source-stream": "^2.0.0",
|
"vinyl-source-stream": "^2.0.0",
|
||||||
"workbox-cli": "^6.1.5"
|
"workbox-cli": "^6.1.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
plugins: [
|
plugins: [
|
||||||
require('postcss-import'),
|
require('postcss-import'),
|
||||||
require('postcss-custom-properties'),
|
require('postcss-custom-properties'),
|
||||||
require('postcss-nested'),
|
require('postcss-nested'),
|
||||||
require('postcss-extend'),
|
require('postcss-extend'),
|
||||||
require('postcss-media-minmax'),
|
require('postcss-media-minmax'),
|
||||||
require('postcss-custom-media'),
|
require('postcss-custom-media'),
|
||||||
require('postcss-100vh-fix'),
|
require('postcss-100vh-fix'),
|
||||||
require('postcss-sort-media-queries')(),
|
require('postcss-sort-media-queries')(),
|
||||||
require('autoprefixer'),
|
require('autoprefixer'),
|
||||||
...(process.env.ELEVENTY_ENV === 'production' ? [require('cssnano')] : []),
|
...(process.env.ELEVENTY_ENV === 'production' ? [require('cssnano')] : []),
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
window.addEventListener('load', () => {
|
window.addEventListener('load', () => {
|
||||||
navigator.serviceWorker.register('/sw.js').catch((registrationError) => {
|
navigator.serviceWorker.register('/sw.js').catch((registrationError) => {
|
||||||
console.error('SW registration failed: ', registrationError);
|
console.error('SW registration failed: ', registrationError);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,42 +1,42 @@
|
|||||||
(function () {
|
(function () {
|
||||||
const root = document.getElementsByTagName('html')[0];
|
const root = document.getElementsByTagName('html')[0];
|
||||||
|
|
||||||
function setTheme(newTheme) {
|
function setTheme(newTheme) {
|
||||||
window.__theme = newTheme;
|
window.__theme = newTheme;
|
||||||
preferredTheme = newTheme;
|
preferredTheme = newTheme;
|
||||||
const currentTheme = newTheme === 'light' ? 'dark' : 'light';
|
const currentTheme = newTheme === 'light' ? 'dark' : 'light';
|
||||||
root.classList.add(newTheme);
|
root.classList.add(newTheme);
|
||||||
root.classList.remove(currentTheme);
|
root.classList.remove(currentTheme);
|
||||||
}
|
}
|
||||||
|
|
||||||
let preferredTheme;
|
let preferredTheme;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
preferredTheme = localStorage.getItem('theme');
|
preferredTheme = localStorage.getItem('theme');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
window.__setPreferredTheme = function (newTheme) {
|
window.__setPreferredTheme = function (newTheme) {
|
||||||
setTheme(newTheme);
|
setTheme(newTheme);
|
||||||
try {
|
try {
|
||||||
localStorage.setItem('theme', newTheme);
|
localStorage.setItem('theme', newTheme);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
window.__toggleTheme = function () {
|
window.__toggleTheme = function () {
|
||||||
const currentTheme = window.__theme;
|
const currentTheme = window.__theme;
|
||||||
const newTheme = currentTheme === 'light' ? 'dark' : 'light';
|
const newTheme = currentTheme === 'light' ? 'dark' : 'light';
|
||||||
window.__setPreferredTheme(newTheme);
|
window.__setPreferredTheme(newTheme);
|
||||||
};
|
};
|
||||||
|
|
||||||
const darkQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
const darkQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
||||||
|
|
||||||
darkQuery.addEventListener('change', function (e) {
|
darkQuery.addEventListener('change', function (e) {
|
||||||
window.__setPreferredTheme(e.matches ? 'dark' : 'light');
|
window.__setPreferredTheme(e.matches ? 'dark' : 'light');
|
||||||
});
|
});
|
||||||
|
|
||||||
setTheme(preferredTheme || (darkQuery.matches ? 'dark' : 'light'));
|
setTheme(preferredTheme || (darkQuery.matches ? 'dark' : 'light'));
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -3,57 +3,53 @@ import { btnHandler } from './modules/btn-handler';
|
|||||||
import { scrollHandler } from './modules/scroll-handler';
|
import { scrollHandler } from './modules/scroll-handler';
|
||||||
import { sourceCodeInfo } from './modules/source-code-info';
|
import { sourceCodeInfo } from './modules/source-code-info';
|
||||||
|
|
||||||
if (
|
if ('querySelector' in document && 'localStorage' in window && 'addEventListener' in window) {
|
||||||
'querySelector' in document &&
|
/* Initialize scroll reveal */
|
||||||
'localStorage' in window &&
|
sal({
|
||||||
'addEventListener' in window
|
threshold: 0.1,
|
||||||
) {
|
});
|
||||||
/* Initialize scroll reveal */
|
|
||||||
sal({
|
|
||||||
threshold: 0.1,
|
|
||||||
});
|
|
||||||
|
|
||||||
/* Show link to source code in console */
|
/* Show link to source code in console */
|
||||||
sourceCodeInfo();
|
sourceCodeInfo();
|
||||||
|
|
||||||
/* Scrolling up or down? */
|
/* Scrolling up or down? */
|
||||||
scrollHandler();
|
scrollHandler();
|
||||||
|
|
||||||
/* Toggle the theme */
|
/* Toggle the theme */
|
||||||
btnHandler('#theme-toggle', function () {
|
btnHandler('#theme-toggle', function () {
|
||||||
window.__toggleTheme();
|
window.__toggleTheme();
|
||||||
});
|
});
|
||||||
|
|
||||||
/* Smooth scrolling to the top */
|
/* Smooth scrolling to the top */
|
||||||
btnHandler('#up-link', function () {
|
btnHandler('#up-link', function () {
|
||||||
window.scroll({
|
window.scroll({
|
||||||
top: 0,
|
top: 0,
|
||||||
left: 0,
|
left: 0,
|
||||||
behavior: 'smooth',
|
behavior: 'smooth',
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
/* Deobfuscate the email */
|
/* Deobfuscate the email */
|
||||||
btnHandler(
|
btnHandler(
|
||||||
'#email',
|
'#email',
|
||||||
function (event) {
|
function (event) {
|
||||||
if (event.target.classList.contains('objuscated')) {
|
if (event.target.classList.contains('objuscated')) {
|
||||||
const link = event.target;
|
const link = event.target;
|
||||||
const lock = link.parentNode.querySelector('#lock-box');
|
const lock = link.parentNode.querySelector('#lock-box');
|
||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
link.classList.remove('objuscated');
|
link.classList.remove('objuscated');
|
||||||
link.text = 'hey@imhoff.name';
|
link.text = 'hey@imhoff.name';
|
||||||
link.href = 'mailto:hey@imhoff.name';
|
link.href = 'mailto:hey@imhoff.name';
|
||||||
|
|
||||||
if (lock) {
|
if (lock) {
|
||||||
lock.classList.remove('hidden');
|
lock.classList.remove('hidden');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
export function btnHandler(selector, callback, prevent = true) {
|
export function btnHandler(selector, callback, prevent = true) {
|
||||||
const btn = document.querySelector(selector);
|
const btn = document.querySelector(selector);
|
||||||
if (!btn) return;
|
if (!btn) return;
|
||||||
|
|
||||||
btn.addEventListener(
|
btn.addEventListener(
|
||||||
'click',
|
'click',
|
||||||
function (event) {
|
function (event) {
|
||||||
if (prevent) {
|
if (prevent) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
}
|
}
|
||||||
callback(event);
|
callback(event);
|
||||||
},
|
},
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,24 @@
|
|||||||
export function scrollHandler() {
|
export function scrollHandler() {
|
||||||
const body = document.body;
|
const body = document.body;
|
||||||
const scrollUp = 'scroll-up';
|
const scrollUp = 'scroll-up';
|
||||||
const scrollDown = 'scroll-down';
|
const scrollDown = 'scroll-down';
|
||||||
let lastScroll = 0;
|
let lastScroll = 0;
|
||||||
|
|
||||||
window.addEventListener('scroll', () => {
|
window.addEventListener('scroll', () => {
|
||||||
const currentScroll = window.pageYOffset;
|
const currentScroll = window.pageYOffset;
|
||||||
|
|
||||||
if (currentScroll <= 0) {
|
if (currentScroll <= 0) {
|
||||||
body.classList.remove(scrollUp);
|
body.classList.remove(scrollUp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentScroll > lastScroll && !body.classList.contains(scrollDown)) {
|
if (currentScroll > lastScroll && !body.classList.contains(scrollDown)) {
|
||||||
body.classList.remove(scrollUp);
|
body.classList.remove(scrollUp);
|
||||||
body.classList.add(scrollDown);
|
body.classList.add(scrollDown);
|
||||||
} else if (
|
} else if (currentScroll < lastScroll && body.classList.contains(scrollDown)) {
|
||||||
currentScroll < lastScroll &&
|
body.classList.remove(scrollDown);
|
||||||
body.classList.contains(scrollDown)
|
body.classList.add(scrollUp);
|
||||||
) {
|
}
|
||||||
body.classList.remove(scrollDown);
|
lastScroll = currentScroll;
|
||||||
body.classList.add(scrollUp);
|
});
|
||||||
}
|
|
||||||
lastScroll = currentScroll;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
export function sourceCodeInfo() {
|
export function sourceCodeInfo() {
|
||||||
const sourceCodeInfo =
|
const sourceCodeInfo =
|
||||||
'👋 I see you’re interested in the source code of this site? You can find it here: https://github.com/kogakure/website-11ty-kogakure.de';
|
'👋 I see you’re interested in the source code of this site? You can find it here: https://github.com/kogakure/website-11ty-kogakure.de';
|
||||||
|
|
||||||
console.info(sourceCodeInfo);
|
console.info(sourceCodeInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,44 +1,44 @@
|
|||||||
/* Colors */
|
/* Colors */
|
||||||
:root {
|
:root {
|
||||||
--color-accent-primary: hsl(86, 35%, 46%);
|
--color-accent-primary: hsl(86, 35%, 46%);
|
||||||
--color-accent-secondary: hsl(357, 96%, 46%);
|
--color-accent-secondary: hsl(357, 96%, 46%);
|
||||||
--color-bg-code: #282c34;
|
--color-bg-code: #282c34;
|
||||||
--color-fg-code: #abb2bf;
|
--color-fg-code: #abb2bf;
|
||||||
}
|
}
|
||||||
|
|
||||||
:root,
|
:root,
|
||||||
.light {
|
.light {
|
||||||
--color-bg-full: #ffffff;
|
--color-bg-full: #ffffff;
|
||||||
--color-bg: hsl(40, 7%, 90%);
|
--color-bg: hsl(40, 7%, 90%);
|
||||||
--color-bg-dark: hsl(40, 7%, 80%);
|
--color-bg-dark: hsl(40, 7%, 80%);
|
||||||
--color-border: rgb(185, 184, 182);
|
--color-border: rgb(185, 184, 182);
|
||||||
--color-fg-feather-inverse: rgba(255, 255, 255, 0.05);
|
--color-fg-feather-inverse: rgba(255, 255, 255, 0.05);
|
||||||
--color-fg-feather: rgba(0, 0, 0, 0.05);
|
--color-fg-feather: rgba(0, 0, 0, 0.05);
|
||||||
--color-fg-full-inverse: #ffffff;
|
--color-fg-full-inverse: #ffffff;
|
||||||
--color-fg-full: #000000;
|
--color-fg-full: #000000;
|
||||||
--color-fg-soft-inverse: rgba(255, 255, 255, 0.2);
|
--color-fg-soft-inverse: rgba(255, 255, 255, 0.2);
|
||||||
--color-fg-soft: rgba(0, 0, 0, 0.2);
|
--color-fg-soft: rgba(0, 0, 0, 0.2);
|
||||||
--color-fg-strong-inverse: rgba(255, 255, 255, 0.8);
|
--color-fg-strong-inverse: rgba(255, 255, 255, 0.8);
|
||||||
--color-fg-strong: rgba(0, 0, 0, 0.8);
|
--color-fg-strong: rgba(0, 0, 0, 0.8);
|
||||||
--color-fg: hsl(40, 7%, 5%);
|
--color-fg: hsl(40, 7%, 5%);
|
||||||
--opacity-dark: 1;
|
--opacity-dark: 1;
|
||||||
--opacity-light: 0;
|
--opacity-light: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark {
|
.dark {
|
||||||
--color-bg-full: #000000;
|
--color-bg-full: #000000;
|
||||||
--color-bg: hsl(40, 7%, 10%);
|
--color-bg: hsl(40, 7%, 10%);
|
||||||
--color-bg-dark: hsl(40, 7%, 5%);
|
--color-bg-dark: hsl(40, 7%, 5%);
|
||||||
--color-border: rgb(73, 72, 70);
|
--color-border: rgb(73, 72, 70);
|
||||||
--color-fg-feather-inverse: rgba(0, 0, 0, 0.05);
|
--color-fg-feather-inverse: rgba(0, 0, 0, 0.05);
|
||||||
--color-fg-feather: rgba(255, 255, 255, 0.05);
|
--color-fg-feather: rgba(255, 255, 255, 0.05);
|
||||||
--color-fg-full-inverse: #000000;
|
--color-fg-full-inverse: #000000;
|
||||||
--color-fg-full: #ffffff;
|
--color-fg-full: #ffffff;
|
||||||
--color-fg-soft-inverse: rgba(0, 0, 0, 0.2);
|
--color-fg-soft-inverse: rgba(0, 0, 0, 0.2);
|
||||||
--color-fg-soft: rgba(255, 255, 255, 0.2);
|
--color-fg-soft: rgba(255, 255, 255, 0.2);
|
||||||
--color-fg-strong-inverse: rgba(0, 0, 0, 0.8);
|
--color-fg-strong-inverse: rgba(0, 0, 0, 0.8);
|
||||||
--color-fg-strong: rgba(255, 255, 255, 0.8);
|
--color-fg-strong: rgba(255, 255, 255, 0.8);
|
||||||
--color-fg: hsla(40, 7%, 90%, 0.95);
|
--color-fg: hsla(40, 7%, 90%, 0.95);
|
||||||
--opacity-dark: 0;
|
--opacity-dark: 0;
|
||||||
--opacity-light: 1;
|
--opacity-light: 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,38 +1,38 @@
|
|||||||
/** Figure & Caption */
|
/** Figure & Caption */
|
||||||
figure {
|
figure {
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
margin-block-start: 0;
|
margin-block-start: 0;
|
||||||
margin-inline-end: 0;
|
margin-inline-end: 0;
|
||||||
margin-inline-start: 0;
|
margin-inline-start: 0;
|
||||||
|
|
||||||
&.light {
|
&.light {
|
||||||
background: rgba(255, 255, 255, 0.8);
|
background: rgba(255, 255, 255, 0.8);
|
||||||
padding: var(--space-10);
|
padding: var(--space-10);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.dark {
|
&.dark {
|
||||||
background: rgba(0, 0, 0, 0.8);
|
background: rgba(0, 0, 0, 0.8);
|
||||||
padding: var(--space-10);
|
padding: var(--space-10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-figure {
|
.image-figure {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-figure img {
|
.image-figure img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-figure-image-container {
|
.image-figure-image-container {
|
||||||
background-color: var(--color-fg-feather);
|
background-color: var(--color-fg-feather);
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: var(--space-10);
|
padding: var(--space-10);
|
||||||
}
|
}
|
||||||
|
|
||||||
figcaption {
|
figcaption {
|
||||||
font-size: clamp(0.8rem, 0.8vw, 0.75rem);
|
font-size: clamp(0.8rem, 0.8vw, 0.75rem);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
font-family: 'SecuelaVariable';
|
font-family: 'SecuelaVariable';
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 1 999;
|
font-weight: 1 999;
|
||||||
src: url('/assets/fonts/secuela-regular-vf.woff2') format('woff2'),
|
src: url('/assets/fonts/secuela-regular-vf.woff2') format('woff2'),
|
||||||
url('/assets/fonts/secuela-regular-vf.woff') format('woff');
|
url('/assets/fonts/secuela-regular-vf.woff') format('woff');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
font-family: 'SecuelaVariable';
|
font-family: 'SecuelaVariable';
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: 1 999;
|
font-weight: 1 999;
|
||||||
src: url('/assets/fonts/secuela-italic-vf.woff2') format('woff2'),
|
src: url('/assets/fonts/secuela-italic-vf.woff2') format('woff2'),
|
||||||
url('/assets/fonts/secuela-italic-vf.woff') format('woff');
|
url('/assets/fonts/secuela-italic-vf.woff') format('woff');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
font-family: 'Sword Kanji';
|
font-family: 'Sword Kanji';
|
||||||
src: url('/assets/fonts/sword-kanji.woff2') format('woff2'),
|
src: url('/assets/fonts/sword-kanji.woff2') format('woff2'),
|
||||||
url('/assets/fonts/sword-kanji.woff') format('woff');
|
url('/assets/fonts/sword-kanji.woff') format('woff');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,60 +1,60 @@
|
|||||||
/** Image */
|
/** Image */
|
||||||
img {
|
img {
|
||||||
background-color: var(--color-fg-feather);
|
background-color: var(--color-fg-feather);
|
||||||
border-color: var(--color-fg-feather);
|
border-color: var(--color-fg-feather);
|
||||||
border-radius: var(--radius-1);
|
border-radius: var(--radius-1);
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
box-shadow: 0 2px 3px var(--color-fg-feather);
|
box-shadow: 0 2px 3px var(--color-fg-feather);
|
||||||
display: block;
|
display: block;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
height: auto;
|
height: auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark img {
|
.dark img {
|
||||||
opacity: 0.87;
|
opacity: 0.87;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark .show-light,
|
.dark .show-light,
|
||||||
.light .show-dark {
|
.light .show-dark {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
img[src$='.svg'],
|
img[src$='.svg'],
|
||||||
.no-background {
|
.no-background {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.image-shadow {
|
.image-shadow {
|
||||||
position: relative;
|
position: relative;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: transform;
|
transition-property: transform;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
box-shadow: var(--shadow-subtle-shade);
|
box-shadow: var(--shadow-subtle-shade);
|
||||||
content: '';
|
content: '';
|
||||||
height: 100%;
|
height: 100%;
|
||||||
inset-block-start: 0;
|
inset-block-start: 0;
|
||||||
inset-inline-start: 0;
|
inset-inline-start: 0;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: opacity;
|
transition-property: opacity;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
transform: scale(1.03);
|
transform: scale(1.03);
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
118
src/assets/styles/base/normalize.css
vendored
118
src/assets/styles/base/normalize.css
vendored
@@ -9,8 +9,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
html {
|
html {
|
||||||
line-height: 1.15; /* 1 */
|
line-height: 1.15; /* 1 */
|
||||||
-webkit-text-size-adjust: 100%; /* 2 */
|
-webkit-text-size-adjust: 100%; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sections
|
/* Sections
|
||||||
@@ -21,7 +21,7 @@ html {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,7 +29,7 @@ body {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
main {
|
main {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -38,8 +38,8 @@ main {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
margin: 0.67em 0;
|
margin: 0.67em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Grouping content
|
/* Grouping content
|
||||||
@@ -51,9 +51,9 @@ h1 {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
hr {
|
hr {
|
||||||
box-sizing: content-box; /* 1 */
|
box-sizing: content-box; /* 1 */
|
||||||
height: 0; /* 1 */
|
height: 0; /* 1 */
|
||||||
overflow: visible; /* 2 */
|
overflow: visible; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,8 +62,8 @@ hr {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
font-family: monospace, monospace; /* 1 */
|
font-family: monospace, monospace; /* 1 */
|
||||||
font-size: 1em; /* 2 */
|
font-size: 1em; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Text-level semantics
|
/* Text-level semantics
|
||||||
@@ -74,7 +74,7 @@ pre {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
a {
|
a {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -83,9 +83,9 @@ a {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
abbr[title] {
|
abbr[title] {
|
||||||
border-block-end: none; /* 1 */
|
border-block-end: none; /* 1 */
|
||||||
text-decoration: underline; /* 2 */
|
text-decoration: underline; /* 2 */
|
||||||
text-decoration: underline dotted; /* 2 */
|
text-decoration: underline dotted; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -94,7 +94,7 @@ abbr[title] {
|
|||||||
|
|
||||||
b,
|
b,
|
||||||
strong {
|
strong {
|
||||||
font-weight: black;
|
font-weight: black;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -105,8 +105,8 @@ strong {
|
|||||||
code,
|
code,
|
||||||
kbd,
|
kbd,
|
||||||
samp {
|
samp {
|
||||||
font-family: monospace, monospace; /* 1 */
|
font-family: monospace, monospace; /* 1 */
|
||||||
font-size: 1em; /* 2 */
|
font-size: 1em; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -114,7 +114,7 @@ samp {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
small {
|
small {
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -124,18 +124,18 @@ small {
|
|||||||
|
|
||||||
sub,
|
sub,
|
||||||
sup {
|
sup {
|
||||||
font-size: 75%;
|
font-size: 75%;
|
||||||
line-height: 0;
|
line-height: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub {
|
sub {
|
||||||
inset-block-end: -0.25em;
|
inset-block-end: -0.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
sup {
|
sup {
|
||||||
inset-block-start: -0.5em;
|
inset-block-start: -0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Embedded content
|
/* Embedded content
|
||||||
@@ -146,7 +146,7 @@ sup {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
img {
|
img {
|
||||||
border-style: none;
|
border-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Forms
|
/* Forms
|
||||||
@@ -162,10 +162,10 @@ input,
|
|||||||
optgroup,
|
optgroup,
|
||||||
select,
|
select,
|
||||||
textarea {
|
textarea {
|
||||||
font-family: inherit; /* 1 */
|
font-family: inherit; /* 1 */
|
||||||
font-size: 100%; /* 1 */
|
font-size: 100%; /* 1 */
|
||||||
line-height: 1.15; /* 1 */
|
line-height: 1.15; /* 1 */
|
||||||
margin: 0; /* 2 */
|
margin: 0; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -175,8 +175,8 @@ textarea {
|
|||||||
|
|
||||||
button,
|
button,
|
||||||
input {
|
input {
|
||||||
/* 1 */
|
/* 1 */
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -186,8 +186,8 @@ input {
|
|||||||
|
|
||||||
button,
|
button,
|
||||||
select {
|
select {
|
||||||
/* 1 */
|
/* 1 */
|
||||||
text-transform: none;
|
text-transform: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -198,7 +198,7 @@ button,
|
|||||||
[type='button'],
|
[type='button'],
|
||||||
[type='reset'],
|
[type='reset'],
|
||||||
[type='submit'] {
|
[type='submit'] {
|
||||||
-webkit-appearance: button;
|
-webkit-appearance: button;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -209,8 +209,8 @@ button::-moz-focus-inner,
|
|||||||
[type='button']::-moz-focus-inner,
|
[type='button']::-moz-focus-inner,
|
||||||
[type='reset']::-moz-focus-inner,
|
[type='reset']::-moz-focus-inner,
|
||||||
[type='submit']::-moz-focus-inner {
|
[type='submit']::-moz-focus-inner {
|
||||||
border-style: none;
|
border-style: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -221,7 +221,7 @@ button:-moz-focusring,
|
|||||||
[type='button']:-moz-focusring,
|
[type='button']:-moz-focusring,
|
||||||
[type='reset']:-moz-focusring,
|
[type='reset']:-moz-focusring,
|
||||||
[type='submit']:-moz-focusring {
|
[type='submit']:-moz-focusring {
|
||||||
outline: 1px dotted ButtonText;
|
outline: 1px dotted ButtonText;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -229,7 +229,7 @@ button:-moz-focusring,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
fieldset {
|
fieldset {
|
||||||
padding: 0.35em 0.75em 0.625em;
|
padding: 0.35em 0.75em 0.625em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -240,12 +240,12 @@ fieldset {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
legend {
|
legend {
|
||||||
box-sizing: border-box; /* 1 */
|
box-sizing: border-box; /* 1 */
|
||||||
color: inherit; /* 2 */
|
color: inherit; /* 2 */
|
||||||
display: table; /* 1 */
|
display: table; /* 1 */
|
||||||
max-width: 100%; /* 1 */
|
max-width: 100%; /* 1 */
|
||||||
padding: 0; /* 3 */
|
padding: 0; /* 3 */
|
||||||
white-space: normal; /* 1 */
|
white-space: normal; /* 1 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -253,7 +253,7 @@ legend {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
progress {
|
progress {
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -261,7 +261,7 @@ progress {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -271,8 +271,8 @@ textarea {
|
|||||||
|
|
||||||
[type='checkbox'],
|
[type='checkbox'],
|
||||||
[type='radio'] {
|
[type='radio'] {
|
||||||
box-sizing: border-box; /* 1 */
|
box-sizing: border-box; /* 1 */
|
||||||
padding: 0; /* 2 */
|
padding: 0; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -281,7 +281,7 @@ textarea {
|
|||||||
|
|
||||||
[type='number']::-webkit-inner-spin-button,
|
[type='number']::-webkit-inner-spin-button,
|
||||||
[type='number']::-webkit-outer-spin-button {
|
[type='number']::-webkit-outer-spin-button {
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -290,8 +290,8 @@ textarea {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
[type='search'] {
|
[type='search'] {
|
||||||
-webkit-appearance: textfield; /* 1 */
|
-webkit-appearance: textfield; /* 1 */
|
||||||
outline-offset: -2px; /* 2 */
|
outline-offset: -2px; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -299,7 +299,7 @@ textarea {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
[type='search']::-webkit-search-decoration {
|
[type='search']::-webkit-search-decoration {
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -308,8 +308,8 @@ textarea {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
::-webkit-file-upload-button {
|
::-webkit-file-upload-button {
|
||||||
-webkit-appearance: button; /* 1 */
|
-webkit-appearance: button; /* 1 */
|
||||||
font: inherit; /* 2 */
|
font: inherit; /* 2 */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Interactive
|
/* Interactive
|
||||||
@@ -320,7 +320,7 @@ textarea {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
details {
|
details {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -328,7 +328,7 @@ details {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
summary {
|
summary {
|
||||||
display: list-item;
|
display: list-item;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Misc
|
/* Misc
|
||||||
@@ -339,7 +339,7 @@ summary {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
template {
|
template {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -347,5 +347,5 @@ template {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
[hidden] {
|
[hidden] {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,17 @@
|
|||||||
|
|
||||||
/** Reset styles for Sal.js, if no JavaScript is available */
|
/** Reset styles for Sal.js, if no JavaScript is available */
|
||||||
.no-js {
|
.no-js {
|
||||||
[data-sal|='fade'] {
|
[data-sal|='fade'] {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-sal|='slide'],
|
[data-sal|='slide'],
|
||||||
[data-sal|='zoom'] {
|
[data-sal|='zoom'] {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transform: none;
|
transform: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-sal|='flip'] {
|
[data-sal|='flip'] {
|
||||||
transform: none;
|
transform: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,59 +1,59 @@
|
|||||||
/** Base */
|
/** Base */
|
||||||
html {
|
html {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
scroll-behavior: smooth;
|
scroll-behavior: smooth;
|
||||||
}
|
}
|
||||||
|
|
||||||
*,
|
*,
|
||||||
*:before,
|
*:before,
|
||||||
*:after {
|
*:after {
|
||||||
box-sizing: inherit;
|
box-sizing: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
::selection {
|
::selection {
|
||||||
background-color: #a3b387;
|
background-color: #a3b387;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-color: var(--color-bg);
|
background-color: var(--color-bg);
|
||||||
color: var(--color-fg);
|
color: var(--color-fg);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
font-family: var(--font-family-base);
|
font-family: var(--font-family-base);
|
||||||
font-weight: var(--font-weight-normal);
|
font-weight: var(--font-weight-normal);
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
background-image: url('/assets/images/svg/bamboo.svg');
|
background-image: url('/assets/images/svg/bamboo.svg');
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: 90vw auto;
|
background-size: 90vw auto;
|
||||||
content: '';
|
content: '';
|
||||||
inset-block-end: 0;
|
inset-block-end: 0;
|
||||||
inset-block-start: 0;
|
inset-block-start: 0;
|
||||||
inset-inline-end: 0;
|
inset-inline-end: 0;
|
||||||
inset-inline-start: 0;
|
inset-inline-start: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[dir='rtl'] body::before {
|
[dir='rtl'] body::before {
|
||||||
transform: scaleX(-1);
|
transform: scaleX(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
body::before {
|
body::before {
|
||||||
background-size: 80vw auto;
|
background-size: 80vw auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--desktop) {
|
@media (--desktop) {
|
||||||
body::before {
|
body::before {
|
||||||
background-size: 50vw auto;
|
background-size: 50vw auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Headlines */
|
/** Headlines */
|
||||||
@@ -66,24 +66,24 @@ h6,
|
|||||||
.page-title,
|
.page-title,
|
||||||
.headline,
|
.headline,
|
||||||
.subheadline {
|
.subheadline {
|
||||||
font-weight: var(--font-weight-black);
|
font-weight: var(--font-weight-black);
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
line-height: var(--line-height-1);
|
line-height: var(--line-height-1);
|
||||||
margin-block-start: 0;
|
margin-block-start: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1,
|
h1,
|
||||||
.page-title {
|
.page-title {
|
||||||
font-size: var(--font-size-7);
|
font-size: var(--font-size-7);
|
||||||
margin-block-end: var(--space-13);
|
margin-block-end: var(--space-13);
|
||||||
}
|
}
|
||||||
|
|
||||||
h2,
|
h2,
|
||||||
.headline {
|
.headline {
|
||||||
font-size: var(--font-size-5);
|
font-size: var(--font-size-5);
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
margin-block-start: var(--space-13);
|
margin-block-start: var(--space-13);
|
||||||
}
|
}
|
||||||
|
|
||||||
h3,
|
h3,
|
||||||
@@ -91,18 +91,18 @@ h4,
|
|||||||
h5,
|
h5,
|
||||||
h6,
|
h6,
|
||||||
.subheadline {
|
.subheadline {
|
||||||
font-size: var(--font-size-4);
|
font-size: var(--font-size-4);
|
||||||
margin-block-end: var(--space-8);
|
margin-block-end: var(--space-8);
|
||||||
margin-block-start: var(--space-13);
|
margin-block-start: var(--space-13);
|
||||||
}
|
}
|
||||||
|
|
||||||
h2:first-of-type,
|
h2:first-of-type,
|
||||||
h3:first-of-type {
|
h3:first-of-type {
|
||||||
margin-block-start: 0;
|
margin-block-start: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
p:last-of-type + h3 {
|
p:last-of-type + h3 {
|
||||||
margin-block-start: var(--space-13);
|
margin-block-start: var(--space-13);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark h1,
|
.dark h1,
|
||||||
@@ -114,190 +114,190 @@ p:last-of-type + h3 {
|
|||||||
.dark .title,
|
.dark .title,
|
||||||
.dark .headline,
|
.dark .headline,
|
||||||
.dark .subheadline {
|
.dark .subheadline {
|
||||||
font-weight: var(--font-weight-extra-bold);
|
font-weight: var(--font-weight-extra-bold);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** GitHub Style Anchor */
|
/** GitHub Style Anchor */
|
||||||
.anchor {
|
.anchor {
|
||||||
float: left;
|
float: left;
|
||||||
inset-block-start: -0.01em;
|
inset-block-start: -0.01em;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
margin-inline-start: -20px;
|
margin-inline-start: -20px;
|
||||||
padding-inline-end: 5px;
|
padding-inline-end: 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
|
|
||||||
h2:hover &,
|
h2:hover &,
|
||||||
h2:focus &,
|
h2:focus &,
|
||||||
h3:hover &,
|
h3:hover &,
|
||||||
h3:focus &,
|
h3:focus &,
|
||||||
h4:hover &,
|
h4:hover &,
|
||||||
h4:focus & {
|
h4:focus & {
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Paragraph */
|
/** Paragraph */
|
||||||
p,
|
p,
|
||||||
.paragraph {
|
.paragraph {
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
font-variant-ligatures: no-common-ligatures;
|
font-variant-ligatures: no-common-ligatures;
|
||||||
font-weight: var(--font-weight-normal);
|
font-weight: var(--font-weight-normal);
|
||||||
letter-spacing: normal;
|
letter-spacing: normal;
|
||||||
line-height: var(--line-height-2);
|
line-height: var(--line-height-2);
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
margin-block-start: 0;
|
margin-block-start: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
p:last-of-type {
|
p:last-of-type {
|
||||||
margin-block-end: 0;
|
margin-block-end: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark p,
|
.dark p,
|
||||||
.dark .paragraph {
|
.dark .paragraph {
|
||||||
font-weight: var(--font-weight-light);
|
font-weight: var(--font-weight-light);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Lists */
|
/** Lists */
|
||||||
ul {
|
ul {
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
font-variant-ligatures: no-common-ligatures;
|
font-variant-ligatures: no-common-ligatures;
|
||||||
list-style-type: square;
|
list-style-type: square;
|
||||||
margin-block-end: var(--space-12);
|
margin-block-end: var(--space-12);
|
||||||
margin-block-start: var(--space-12);
|
margin-block-start: var(--space-12);
|
||||||
padding-inline-start: 1.2em;
|
padding-inline-start: 1.2em;
|
||||||
|
|
||||||
ul,
|
ul,
|
||||||
ol {
|
ol {
|
||||||
margin-block-start: var(--space-5);
|
margin-block-start: var(--space-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
li {
|
li {
|
||||||
margin-block-end: var(--space-5);
|
margin-block-end: var(--space-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
li & {
|
li & {
|
||||||
margin-block-end: 0;
|
margin-block-end: 0;
|
||||||
padding-inline-start: 2rem;
|
padding-inline-start: 2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
ul {
|
ul {
|
||||||
padding-inline-start: 0;
|
padding-inline-start: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ol {
|
ol {
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
font-variant-ligatures: no-common-ligatures;
|
font-variant-ligatures: no-common-ligatures;
|
||||||
margin-block-end: var(--space-12);
|
margin-block-end: var(--space-12);
|
||||||
margin-block-start: var(--space-12);
|
margin-block-start: var(--space-12);
|
||||||
padding-inline-start: 1.2em;
|
padding-inline-start: 1.2em;
|
||||||
|
|
||||||
ol,
|
ol,
|
||||||
ul {
|
ul {
|
||||||
margin-block-start: var(--space-5);
|
margin-block-start: var(--space-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
li {
|
li {
|
||||||
margin-block-end: var(--space-2);
|
margin-block-end: var(--space-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
li & {
|
li & {
|
||||||
margin-block-end: 0;
|
margin-block-end: 0;
|
||||||
padding-inline-start: 2rem;
|
padding-inline-start: 2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
ol {
|
ol {
|
||||||
padding-inline-start: 0;
|
padding-inline-start: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dl {
|
dl {
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
margin-block-end: var(--space-12);
|
margin-block-end: var(--space-12);
|
||||||
margin-block-start: 0;
|
margin-block-start: 0;
|
||||||
padding-inline-start: 1.2em;
|
padding-inline-start: 1.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
dt {
|
dt {
|
||||||
font-weight: var(--font-weight-extra-bold);
|
font-weight: var(--font-weight-extra-bold);
|
||||||
}
|
}
|
||||||
|
|
||||||
dd {
|
dd {
|
||||||
margin-inline-start: 0;
|
margin-inline-start: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Critic Markup */
|
/** Critic Markup */
|
||||||
del {
|
del {
|
||||||
text-decoration-thickness: 0.15em;
|
text-decoration-thickness: 0.15em;
|
||||||
}
|
}
|
||||||
|
|
||||||
ins {
|
ins {
|
||||||
text-decoration-style: solid;
|
text-decoration-style: solid;
|
||||||
text-decoration-thickness: 0.15em;
|
text-decoration-thickness: 0.15em;
|
||||||
}
|
}
|
||||||
|
|
||||||
mark {
|
mark {
|
||||||
background-color: rgba(230, 240, 40, 0.7);
|
background-color: rgba(230, 240, 40, 0.7);
|
||||||
border-color: rgba(0, 0, 0, 0.1);
|
border-color: rgba(0, 0, 0, 0.1);
|
||||||
border-radius: 0.25em;
|
border-radius: 0.25em;
|
||||||
box-shadow: var(--shadow-dark-inset);
|
box-shadow: var(--shadow-dark-inset);
|
||||||
color: rgba(0, 0, 0, 0.75);
|
color: rgba(0, 0, 0, 0.75);
|
||||||
padding-block-end: 0.4em;
|
padding-block-end: 0.4em;
|
||||||
padding-block-start: 0.4em;
|
padding-block-start: 0.4em;
|
||||||
padding-inline-end: 0.3em;
|
padding-inline-end: 0.3em;
|
||||||
padding-inline-start: 0.3em;
|
padding-inline-start: 0.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Code, Sample, Abbreviation, Keyboard Shortcuts etc. */
|
/** Code, Sample, Abbreviation, Keyboard Shortcuts etc. */
|
||||||
pre {
|
pre {
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
}
|
}
|
||||||
|
|
||||||
p code,
|
p code,
|
||||||
li code,
|
li code,
|
||||||
samp {
|
samp {
|
||||||
background-color: var(--color-bg-code);
|
background-color: var(--color-bg-code);
|
||||||
border-radius: 0.3em;
|
border-radius: 0.3em;
|
||||||
color: var(--color-fg-code);
|
color: var(--color-fg-code);
|
||||||
padding-block-end: var(--space-1);
|
padding-block-end: var(--space-1);
|
||||||
padding-block-start: var(--space-1);
|
padding-block-start: var(--space-1);
|
||||||
padding-inline-end: var(--space-3);
|
padding-inline-end: var(--space-3);
|
||||||
padding-inline-start: var(--space-3);
|
padding-inline-start: var(--space-3);
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
kbd {
|
kbd {
|
||||||
background-color: #f7f7f7;
|
background-color: #f7f7f7;
|
||||||
border-color: #cccccc;
|
border-color: #cccccc;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: var(--border-width-1);
|
border-width: var(--border-width-1);
|
||||||
box-shadow: var(--shadow-beveled-keyboard);
|
box-shadow: var(--shadow-beveled-keyboard);
|
||||||
color: #333333;
|
color: #333333;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: var(--font-size-2);
|
font-size: var(--font-size-2);
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
padding: 0.3em 0.6em 0.1em;
|
padding: 0.3em 0.6em 0.1em;
|
||||||
text-shadow: var(--shadow-white-outline);
|
text-shadow: var(--shadow-white-outline);
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
abbr {
|
abbr {
|
||||||
font-variant: small-caps;
|
font-variant: small-caps;
|
||||||
}
|
}
|
||||||
|
|
||||||
:is(code, kbd, samp) {
|
:is(code, kbd, samp) {
|
||||||
font-family: var(--font-family-mono);
|
font-family: var(--font-family-mono);
|
||||||
font-size: clamp(0.8rem, 0.8vw, 1rem);
|
font-size: clamp(0.8rem, 0.8vw, 1rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
:is(abbr, dfn) {
|
:is(abbr, dfn) {
|
||||||
cursor: help;
|
cursor: help;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Quotes */
|
/** Quotes */
|
||||||
@@ -305,187 +305,187 @@ abbr {
|
|||||||
blockquote[lang|='en'],
|
blockquote[lang|='en'],
|
||||||
[lang|='en'] q,
|
[lang|='en'] q,
|
||||||
q[lang|='en'] {
|
q[lang|='en'] {
|
||||||
quotes: '“' '”' '‘' '’';
|
quotes: '“' '”' '‘' '’';
|
||||||
}
|
}
|
||||||
|
|
||||||
[lang|='de'] blockquote,
|
[lang|='de'] blockquote,
|
||||||
blockquote[lang|='de'],
|
blockquote[lang|='de'],
|
||||||
[lang|='de'] q,
|
[lang|='de'] q,
|
||||||
q[lang|='de'] {
|
q[lang|='de'] {
|
||||||
quotes: '»' '«' '›' '‹';
|
quotes: '»' '«' '›' '‹';
|
||||||
}
|
}
|
||||||
|
|
||||||
[lang|='ja'] blockquote,
|
[lang|='ja'] blockquote,
|
||||||
blockquote[lang|='ja'],
|
blockquote[lang|='ja'],
|
||||||
[lang|='ja'] q,
|
[lang|='ja'] q,
|
||||||
q[lang|='ja'] {
|
q[lang|='ja'] {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
quotes: '「' '」,' '『' '』';
|
quotes: '「' '」,' '『' '』';
|
||||||
}
|
}
|
||||||
|
|
||||||
blockquote {
|
blockquote {
|
||||||
margin-block-end: var(--space-12);
|
margin-block-end: var(--space-12);
|
||||||
margin-block-start: var(--space-12);
|
margin-block-start: var(--space-12);
|
||||||
margin-inline-end: var(--space-8);
|
margin-inline-end: var(--space-8);
|
||||||
margin-inline-start: var(--space-8);
|
margin-inline-start: var(--space-8);
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
margin-inline-end: var(--space-10);
|
margin-inline-end: var(--space-10);
|
||||||
margin-inline-start: var(--space-10);
|
margin-inline-start: var(--space-10);
|
||||||
}
|
}
|
||||||
|
|
||||||
ul,
|
ul,
|
||||||
ol {
|
ol {
|
||||||
padding-block-start: var(--space-6);
|
padding-block-start: var(--space-6);
|
||||||
}
|
}
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
color: var(--color-accent-primary);
|
color: var(--color-accent-primary);
|
||||||
content: '“';
|
content: '“';
|
||||||
font-family: Trebuchet MS, Georgia, serif;
|
font-family: Trebuchet MS, Georgia, serif;
|
||||||
font-size: var(--font-size-6);
|
font-size: var(--font-size-6);
|
||||||
height: 0.6em;
|
height: 0.6em;
|
||||||
inset-block-start: -0.55em;
|
inset-block-start: -0.55em;
|
||||||
inset-inline-start: -0.55em;
|
inset-inline-start: -0.55em;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
p,
|
p,
|
||||||
ul,
|
ul,
|
||||||
ol {
|
ol {
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: var(--font-weight-extra-light);
|
font-weight: var(--font-weight-extra-light);
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
margin-block-start: 0;
|
margin-block-start: 0;
|
||||||
|
|
||||||
&:nth-last-child(2) {
|
&:nth-last-child(2) {
|
||||||
margin-block-end: var(--space-2);
|
margin-block-end: var(--space-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
& strong {
|
& strong {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
font-weight: var(--font-weight-bold);
|
font-weight: var(--font-weight-bold);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
& strong {
|
& strong {
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: var(--font-weight-bold);
|
font-weight: var(--font-weight-bold);
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: '—';
|
content: '—';
|
||||||
font-weight: var(--font-weight-light);
|
font-weight: var(--font-weight-light);
|
||||||
inset-inline-start: -0.8em;
|
inset-inline-start: -0.8em;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
& em {
|
& em {
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
font-weight: var(--font-weight-normal);
|
font-weight: var(--font-weight-normal);
|
||||||
font-weight: var(--font-weight-extra-light);
|
font-weight: var(--font-weight-extra-light);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
q {
|
q {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
margin-inline-end: -0.05em;
|
margin-inline-end: -0.05em;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
margin-inline-start: 0.1em;
|
margin-inline-start: 0.1em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.pullquote {
|
.pullquote {
|
||||||
padding-block-end: var(--space-9);
|
padding-block-end: var(--space-9);
|
||||||
padding-block-start: var(--space-9);
|
padding-block-start: var(--space-9);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
& p {
|
& p {
|
||||||
font-size: var(--font-size-4);
|
font-size: var(--font-size-4);
|
||||||
font-weight: var(--font-weight-extra-bold);
|
font-weight: var(--font-weight-extra-bold);
|
||||||
line-height: var(--line-height-1);
|
line-height: var(--line-height-1);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
& p:first-child::before {
|
& p:first-child::before {
|
||||||
content: open-quote;
|
content: open-quote;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
& p:nth-of-type(1):first-letter {
|
& p:nth-of-type(1):first-letter {
|
||||||
margin-inline-start: -0.4em;
|
margin-inline-start: -0.4em;
|
||||||
}
|
}
|
||||||
|
|
||||||
& p:nth-last-of-type(1)::after {
|
& p:nth-last-of-type(1)::after {
|
||||||
content: close-quote;
|
content: close-quote;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
font-size: var(--font-size-2);
|
font-size: var(--font-size-2);
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
margin-block-start: var(--space-6);
|
margin-block-start: var(--space-6);
|
||||||
}
|
}
|
||||||
|
|
||||||
b {
|
b {
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Links */
|
/** Links */
|
||||||
a {
|
a {
|
||||||
color: var(--color-fg);
|
color: var(--color-fg);
|
||||||
font-weight: var(--font-weight-semi-bold);
|
font-weight: var(--font-weight-semi-bold);
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
text-decoration-color: var(--color-fg-soft);
|
text-decoration-color: var(--color-fg-soft);
|
||||||
text-decoration-thickness: 0.2em;
|
text-decoration-thickness: 0.2em;
|
||||||
text-underline-offset: auto;
|
text-underline-offset: auto;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
text-decoration-color: var(--color-accent-primary);
|
text-decoration-color: var(--color-accent-primary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Helper */
|
/** Helper */
|
||||||
.no-margin {
|
.no-margin {
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hidden {
|
.hidden {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spoiler {
|
.spoiler {
|
||||||
background: var(--color-fg-full);
|
background: var(--color-fg-full);
|
||||||
color: var(--color-fg-full);
|
color: var(--color-fg-full);
|
||||||
cursor: help;
|
cursor: help;
|
||||||
padding-block-end: var(--space-1);
|
padding-block-end: var(--space-1);
|
||||||
padding-block-start: var(--space-1);
|
padding-block-start: var(--space-1);
|
||||||
padding-inline-end: var(--space-1);
|
padding-inline-end: var(--space-1);
|
||||||
padding-inline-start: var(--space-1);
|
padding-inline-start: var(--space-1);
|
||||||
|
|
||||||
&.spoiler-visible {
|
&.spoiler-visible {
|
||||||
color: var(--color-fg-full-inverse);
|
color: var(--color-fg-full-inverse);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-js .spoiler {
|
.no-js .spoiler {
|
||||||
color: var(--color-fg-full-inverse);
|
color: var(--color-fg-full-inverse);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,81 +1,81 @@
|
|||||||
:root {
|
:root {
|
||||||
/** Grids */
|
/** Grids */
|
||||||
--grid-fullsize: repeat(18, 1fr);
|
--grid-fullsize: repeat(18, 1fr);
|
||||||
--grid-wide: repeat(14, 1fr);
|
--grid-wide: repeat(14, 1fr);
|
||||||
|
|
||||||
/** Border Widths */
|
/** Border Widths */
|
||||||
--border-width-1: 1px;
|
--border-width-1: 1px;
|
||||||
--border-width-10: 0.1em;
|
--border-width-10: 0.1em;
|
||||||
--border-width-15: 0.15em;
|
--border-width-15: 0.15em;
|
||||||
|
|
||||||
/** Font Families */
|
/** Font Families */
|
||||||
--font-family-base: SecuelaVariable, Arial, sans-serif;
|
--font-family-base: SecuelaVariable, Arial, sans-serif;
|
||||||
--font-family-mono: Fira Code, Operator, Hasklig, Monoid, monospace;
|
--font-family-mono: Fira Code, Operator, Hasklig, Monoid, monospace;
|
||||||
|
|
||||||
/** Font Sizes */
|
/** Font Sizes */
|
||||||
--font-size-1: 0.65em;
|
--font-size-1: 0.65em;
|
||||||
--font-size-2: clamp(0.65rem, 0.8vw, 0.75rem);
|
--font-size-2: clamp(0.65rem, 0.8vw, 0.75rem);
|
||||||
--font-size-3: clamp(1rem, 1.1vw, 1.25rem);
|
--font-size-3: clamp(1rem, 1.1vw, 1.25rem);
|
||||||
--font-size-4: clamp(1.25rem, 1.8vw, 2rem);
|
--font-size-4: clamp(1.25rem, 1.8vw, 2rem);
|
||||||
--font-size-5: clamp(1.5rem, 2.9vw, 3.25rem);
|
--font-size-5: clamp(1.5rem, 2.9vw, 3.25rem);
|
||||||
--font-size-6: clamp(2.25rem, 4.7vw, 5.3rem);
|
--font-size-6: clamp(2.25rem, 4.7vw, 5.3rem);
|
||||||
--font-size-7: clamp(3rem, 7.3vw, 8.5rem);
|
--font-size-7: clamp(3rem, 7.3vw, 8.5rem);
|
||||||
--font-size-8: clamp(4.5rem, 12.2vw, 13.87rem);
|
--font-size-8: clamp(4.5rem, 12.2vw, 13.87rem);
|
||||||
--font-size-9: clamp(5.5rem, 28.7vw, 22.43rem);
|
--font-size-9: clamp(5.5rem, 28.7vw, 22.43rem);
|
||||||
|
|
||||||
/** Font Weights */
|
/** Font Weights */
|
||||||
--font-weight-thin: 100;
|
--font-weight-thin: 100;
|
||||||
--font-weight-extra-light: 200;
|
--font-weight-extra-light: 200;
|
||||||
--font-weight-light: 300;
|
--font-weight-light: 300;
|
||||||
--font-weight-normal: 400;
|
--font-weight-normal: 400;
|
||||||
--font-weight-medium: 500;
|
--font-weight-medium: 500;
|
||||||
--font-weight-semi-bold: 600;
|
--font-weight-semi-bold: 600;
|
||||||
--font-weight-bold: 700;
|
--font-weight-bold: 700;
|
||||||
--font-weight-extra-bold: 800;
|
--font-weight-extra-bold: 800;
|
||||||
--font-weight-black: 900;
|
--font-weight-black: 900;
|
||||||
|
|
||||||
/** Line Heights */
|
/** Line Heights */
|
||||||
--line-height-1: 1;
|
--line-height-1: 1;
|
||||||
--line-height-2: 1.6;
|
--line-height-2: 1.6;
|
||||||
|
|
||||||
/** Radii */
|
/** Radii */
|
||||||
--radius-1: 2px;
|
--radius-1: 2px;
|
||||||
--radius-2: 5px;
|
--radius-2: 5px;
|
||||||
--radius-4: 8px;
|
--radius-4: 8px;
|
||||||
--radius-25: 25px;
|
--radius-25: 25px;
|
||||||
--radius-50: 50%;
|
--radius-50: 50%;
|
||||||
|
|
||||||
/** Shadows */
|
/** Shadows */
|
||||||
--shadow-subtle-shade: 0 0 50px rgba(0, 0, 0, 0.2);
|
--shadow-subtle-shade: 0 0 50px rgba(0, 0, 0, 0.2);
|
||||||
--shadow-beveled-keyboard: 0 1px 0 rgba(0, 0, 0, 0.2), inset 0 0 0 2px #ffffff;
|
--shadow-beveled-keyboard: 0 1px 0 rgba(0, 0, 0, 0.2), inset 0 0 0 2px #ffffff;
|
||||||
--shadow-white-outline: 0 1px 0 #ffffff;
|
--shadow-white-outline: 0 1px 0 #ffffff;
|
||||||
--shadow-dark-inset: inset 0 0 5px rgba(0, 0, 0, 0.15);
|
--shadow-dark-inset: inset 0 0 5px rgba(0, 0, 0, 0.15);
|
||||||
|
|
||||||
/** Space */
|
/** Space */
|
||||||
--space-1: 0.335rem;
|
--space-1: 0.335rem;
|
||||||
--space-2: clamp(0.335rem, 0.72vw, 0.402rem);
|
--space-2: clamp(0.335rem, 0.72vw, 0.402rem);
|
||||||
--space-3: clamp(0.402rem, 0.86vw, 0.482rem);
|
--space-3: clamp(0.402rem, 0.86vw, 0.482rem);
|
||||||
--space-4: clamp(0.482rem, 1.03vw, 0.579rem);
|
--space-4: clamp(0.482rem, 1.03vw, 0.579rem);
|
||||||
--space-5: clamp(0.579rem, 1.24vw, 0.694rem);
|
--space-5: clamp(0.579rem, 1.24vw, 0.694rem);
|
||||||
--space-6: clamp(0.694rem, 1.49vw, 0.833rem);
|
--space-6: clamp(0.694rem, 1.49vw, 0.833rem);
|
||||||
--space-7: clamp(0.833rem, 1.78vw, 1rem);
|
--space-7: clamp(0.833rem, 1.78vw, 1rem);
|
||||||
--space-8: clamp(1rem, 2.14vw, 1.2rem);
|
--space-8: clamp(1rem, 2.14vw, 1.2rem);
|
||||||
--space-9: clamp(1.2rem, 2.57vw, 1.44rem);
|
--space-9: clamp(1.2rem, 2.57vw, 1.44rem);
|
||||||
--space-10: clamp(1.44rem, 3.7vw, 1.728rem);
|
--space-10: clamp(1.44rem, 3.7vw, 1.728rem);
|
||||||
--space-11: clamp(1.728rem, 3.7vw, 2.074rem);
|
--space-11: clamp(1.728rem, 3.7vw, 2.074rem);
|
||||||
--space-12: clamp(2.074rem, 4.44vw, 2.488rem);
|
--space-12: clamp(2.074rem, 4.44vw, 2.488rem);
|
||||||
--space-13: clamp(2.488rem, 5.32vw, 2.986rem);
|
--space-13: clamp(2.488rem, 5.32vw, 2.986rem);
|
||||||
--space-14: clamp(2.986rem, 6.39vw, 3.583rem);
|
--space-14: clamp(2.986rem, 6.39vw, 3.583rem);
|
||||||
--space-15: clamp(3.583rem, 7.67vw, 4.3rem);
|
--space-15: clamp(3.583rem, 7.67vw, 4.3rem);
|
||||||
--space-16: clamp(4.3rem, 9.2vw, 5.16rem);
|
--space-16: clamp(4.3rem, 9.2vw, 5.16rem);
|
||||||
--space-17: clamp(5.16rem, 11.04vw, 6.192rem);
|
--space-17: clamp(5.16rem, 11.04vw, 6.192rem);
|
||||||
--space-18: clamp(6.192rem, 13.25vw, 7.43rem);
|
--space-18: clamp(6.192rem, 13.25vw, 7.43rem);
|
||||||
--space-19: clamp(7.43rem, 15.9vw, 8.916rem);
|
--space-19: clamp(7.43rem, 15.9vw, 8.916rem);
|
||||||
--space-20: clamp(8.916rem, 19.08vw, 10.699rem);
|
--space-20: clamp(8.916rem, 19.08vw, 10.699rem);
|
||||||
--space-55: 5.55vw;
|
--space-55: 5.55vw;
|
||||||
|
|
||||||
/** Transitions */
|
/** Transitions */
|
||||||
--transition-duration-1: 100ms;
|
--transition-duration-1: 100ms;
|
||||||
--transition-duration-2: 200ms;
|
--transition-duration-2: 200ms;
|
||||||
--transition-duration-5: 500ms;
|
--transition-duration-5: 500ms;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
/** Video */
|
/** Video */
|
||||||
.video-wrapper {
|
.video-wrapper {
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
padding-block-end: 56.25%;
|
padding-block-end: 56.25%;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.video-wrapper iframe {
|
.video-wrapper iframe {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
inset-block-start: 0;
|
inset-block-start: 0;
|
||||||
inset-inline-start: 0;
|
inset-inline-start: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
.banner {
|
.banner {
|
||||||
background-color: var(--color-fg-feather);
|
background-color: var(--color-fg-feather);
|
||||||
border-radius: var(--radius-2);
|
border-radius: var(--radius-2);
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
padding: var(--space-10);
|
padding: var(--space-10);
|
||||||
|
|
||||||
& p:last-of-type {
|
& p:last-of-type {
|
||||||
margin-block-end: 0;
|
margin-block-end: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.banner summary {
|
.banner summary {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
font-weight: var(--font-weight-black);
|
font-weight: var(--font-weight-black);
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
line-height: var(--line-height-1);
|
line-height: var(--line-height-1);
|
||||||
margin-block-start: 0;
|
margin-block-start: 0;
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.banner[open] summary {
|
.banner[open] summary {
|
||||||
margin-block-end: var(--space-8);
|
margin-block-end: var(--space-8);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
/** Divider */
|
/** Divider */
|
||||||
hr,
|
hr,
|
||||||
.divider {
|
.divider {
|
||||||
border-block-end-width: var(--border-width-1);
|
border-block-end-width: var(--border-width-1);
|
||||||
border-block-start-width: 0;
|
border-block-start-width: 0;
|
||||||
border-color: var(--color-fg-feather);
|
border-color: var(--color-fg-feather);
|
||||||
border-inline-end-width: 0;
|
border-inline-end-width: 0;
|
||||||
border-inline-start-width: 0;
|
border-inline-start-width: 0;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
margin-block-end: var(--space-14);
|
margin-block-end: var(--space-14);
|
||||||
margin-block-start: var(--space-14);
|
margin-block-start: var(--space-14);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/* Download Link */
|
/* Download Link */
|
||||||
.download-icon {
|
.download-icon {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
fill: var(--color-fg);
|
fill: var(--color-fg);
|
||||||
inset-block-start: 0.2em;
|
inset-block-start: 0.2em;
|
||||||
margin-inline-start: 0.2em;
|
margin-inline-start: 0.2em;
|
||||||
position: relative;
|
position: relative;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: transform;
|
transition-property: transform;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
|
|
||||||
a:hover &,
|
a:hover &,
|
||||||
a:active &,
|
a:active &,
|
||||||
a:focus & {
|
a:focus & {
|
||||||
transform: translate3D(0, 0.25rem, 0);
|
transform: translate3D(0, 0.25rem, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,19 +3,19 @@
|
|||||||
|
|
||||||
/** Email */
|
/** Email */
|
||||||
.lock-box {
|
.lock-box {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
inset-block-start: 0.2em;
|
inset-block-start: 0.2em;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 25px;
|
width: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lock-icon {
|
.lock-icon {
|
||||||
fill: var(--color-fg);
|
fill: var(--color-fg);
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
/** More Link */
|
/** More Link */
|
||||||
.more-icon {
|
.more-icon {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
fill: var(--color-fg);
|
fill: var(--color-fg);
|
||||||
inset-block-start: 0.2em;
|
inset-block-start: 0.2em;
|
||||||
margin-inline-start: 0.2em;
|
margin-inline-start: 0.2em;
|
||||||
position: relative;
|
position: relative;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: transform;
|
transition-property: transform;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
|
|
||||||
a:hover &,
|
a:hover &,
|
||||||
a:active &,
|
a:active &,
|
||||||
a:focus & {
|
a:focus & {
|
||||||
transform: translate3D(0.25rem, 0, 0);
|
transform: translate3D(0.25rem, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,48 +1,48 @@
|
|||||||
/** Pagination */
|
/** Pagination */
|
||||||
.pagination {
|
.pagination {
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
inset-block-start: calc(50% - 20px);
|
inset-block-start: calc(50% - 20px);
|
||||||
position: fixed;
|
position: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination-start {
|
.pagination-start {
|
||||||
inset-inline-start: 1rem;
|
inset-inline-start: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination-end {
|
.pagination-end {
|
||||||
inset-inline-end: 1rem;
|
inset-inline-end: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination-container {
|
.pagination-container {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: var(--color-fg-feather);
|
background-color: var(--color-fg-feather);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
border-width: 0;
|
border-width: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
outline: none;
|
outline: none;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: opacity;
|
transition-property: opacity;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
width: 40px;
|
width: 40px;
|
||||||
|
|
||||||
a:hover &,
|
a:hover &,
|
||||||
a:focus & {
|
a:focus & {
|
||||||
background-color: var(--color-fg-soft);
|
background-color: var(--color-fg-soft);
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-up & {
|
.scroll-up & {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.scroll-down & {
|
.scroll-down & {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination-icon {
|
.pagination-icon {
|
||||||
fill: var(--color-fg);
|
fill: var(--color-fg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,45 +1,45 @@
|
|||||||
/** Cover */
|
/** Cover */
|
||||||
.product {
|
.product {
|
||||||
box-shadow: 0 0.1em 0.5em rgba(0, 0, 0, 0.5);
|
box-shadow: 0 0.1em 0.5em rgba(0, 0, 0, 0.5);
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
display: grid;
|
display: grid;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
height: auto;
|
height: auto;
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
max-width: 250px;
|
max-width: 250px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: transform;
|
transition-property: transform;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
transform: scale(1.03);
|
transform: scale(1.03);
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
border-radius: 4em / 2em;
|
border-radius: 4em / 2em;
|
||||||
box-shadow: 0 0 2em rgba(0, 0, 0, 0.8);
|
box-shadow: 0 0 2em rgba(0, 0, 0, 0.8);
|
||||||
content: '';
|
content: '';
|
||||||
inset-block-end: 1em;
|
inset-block-end: 1em;
|
||||||
inset-block-start: 1em;
|
inset-block-start: 1em;
|
||||||
inset-inline-end: 50%;
|
inset-inline-end: 50%;
|
||||||
inset-inline-start: 0;
|
inset-inline-start: 0;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: opacity;
|
transition-property: opacity;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover::after,
|
&:hover::after,
|
||||||
&:focus::after {
|
&:focus::after {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Product Shelf
|
/** Product Shelf
|
||||||
@@ -47,17 +47,17 @@
|
|||||||
* Used to hold an unlimited amount of products
|
* Used to hold an unlimited amount of products
|
||||||
*/
|
*/
|
||||||
.product-shelf {
|
.product-shelf {
|
||||||
background-color: var(--color-fg-feather);
|
background-color: var(--color-fg-feather);
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-column-gap: 20px;
|
grid-column-gap: 20px;
|
||||||
grid-row-gap: 20px;
|
grid-row-gap: 20px;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
margin-block-start: var(--space-10);
|
margin-block-start: var(--space-10);
|
||||||
padding-block-end: var(--space-10);
|
padding-block-end: var(--space-10);
|
||||||
padding-block-start: var(--space-10);
|
padding-block-start: var(--space-10);
|
||||||
padding-inline-end: var(--space-10);
|
padding-inline-end: var(--space-10);
|
||||||
padding-inline-start: var(--space-10);
|
padding-inline-start: var(--space-10);
|
||||||
place-items: start center;
|
place-items: start center;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,68 +1,68 @@
|
|||||||
/** Table */
|
/** Table */
|
||||||
table {
|
table {
|
||||||
border-collapse: separate;
|
border-collapse: separate;
|
||||||
border-spacing: 0 1em;
|
border-spacing: 0 1em;
|
||||||
font-size: var(--font-size-3);
|
font-size: var(--font-size-3);
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
margin-block-start: var(--space-10);
|
margin-block-start: var(--space-10);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
& thead tr:first-child {
|
& thead tr:first-child {
|
||||||
background: var(--color-fg-feather);
|
background: var(--color-fg-feather);
|
||||||
}
|
}
|
||||||
|
|
||||||
& tbody tr:last-child {
|
& tbody tr:last-child {
|
||||||
border-width: 0;
|
border-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
& th {
|
& th {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
& td {
|
& td {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
& tr {
|
& tr {
|
||||||
border-block-end: var(--border-width-1);
|
border-block-end: var(--border-width-1);
|
||||||
border-block-start-width: var(--border-width-1);
|
border-block-start-width: var(--border-width-1);
|
||||||
border-color: var(--color-border);
|
border-color: var(--color-border);
|
||||||
border-inline-end-width: 0;
|
border-inline-end-width: 0;
|
||||||
border-inline-start-width: 0;
|
border-inline-start-width: 0;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
margin-block-end: var(--space-5);
|
margin-block-end: var(--space-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
& thead th,
|
& thead th,
|
||||||
& tbody td {
|
& tbody td {
|
||||||
font-weight: var(--font-weight-normal);
|
font-weight: var(--font-weight-normal);
|
||||||
text-align: left;
|
text-align: left;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
& thead th {
|
& thead th {
|
||||||
font-weight: var(--font-weight-black);
|
font-weight: var(--font-weight-black);
|
||||||
vertical-align: bottom;
|
vertical-align: bottom;
|
||||||
}
|
}
|
||||||
|
|
||||||
& caption + thead tr:first-child th,
|
& caption + thead tr:first-child th,
|
||||||
& caption + thead tr:first-child td,
|
& caption + thead tr:first-child td,
|
||||||
& colgroup + thead tr:first-child th,
|
& colgroup + thead tr:first-child th,
|
||||||
& colgroup + thead tr:first-child td,
|
& colgroup + thead tr:first-child td,
|
||||||
& thead:first-child tr:first-child th,
|
& thead:first-child tr:first-child th,
|
||||||
& thead:first-child tr:first-child td {
|
& thead:first-child tr:first-child td {
|
||||||
border-block-start: 0;
|
border-block-start: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
|
|
||||||
& th,
|
& th,
|
||||||
& td {
|
& td {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
padding: var(--space-3);
|
padding: var(--space-3);
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,179 +3,179 @@
|
|||||||
|
|
||||||
/** Heartbeat animation */
|
/** Heartbeat animation */
|
||||||
@keyframes heartbeat {
|
@keyframes heartbeat {
|
||||||
0% {
|
0% {
|
||||||
transform: scale(1.2);
|
transform: scale(1.2);
|
||||||
}
|
}
|
||||||
25% {
|
25% {
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
}
|
}
|
||||||
50% {
|
50% {
|
||||||
transform: scale(1.6);
|
transform: scale(1.6);
|
||||||
}
|
}
|
||||||
75% {
|
75% {
|
||||||
transform: scale(1.2);
|
transform: scale(1.2);
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
transform: scale(1.2);
|
transform: scale(1.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Colphon */
|
/** Colphon */
|
||||||
.colophon-intro {
|
.colophon-intro {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.colophon-intro {
|
.colophon-intro {
|
||||||
grid-column: 6 / -6;
|
grid-column: 6 / -6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-meaning {
|
.colophon-meaning {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.colophon-meaning {
|
.colophon-meaning {
|
||||||
grid-column: 3 / -9;
|
grid-column: 3 / -9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-why {
|
.colophon-why {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 3;
|
grid-row: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.colophon-why {
|
.colophon-why {
|
||||||
grid-column: 7 / -5;
|
grid-column: 7 / -5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-contact {
|
.colophon-contact {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 4;
|
grid-row: 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.colophon-contact {
|
.colophon-contact {
|
||||||
grid-column: 5 / -9;
|
grid-column: 5 / -9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-faq {
|
.colophon-faq {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 5;
|
grid-row: 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.colophon-faq {
|
.colophon-faq {
|
||||||
grid-column: 3 / -3;
|
grid-column: 3 / -3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophone-faq-list {
|
.colophone-faq-list {
|
||||||
column-count: 1;
|
column-count: 1;
|
||||||
column-gap: 3rem;
|
column-gap: 3rem;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.colophone-faq-list {
|
.colophone-faq-list {
|
||||||
column-count: 2;
|
column-count: 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-faq-list-item {
|
.colophon-faq-list-item {
|
||||||
break-inside: avoid;
|
break-inside: avoid;
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
padding-block-start: var(--space-1);
|
padding-block-start: var(--space-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-faq-list-item:last-of-type {
|
.colophon-faq-list-item:last-of-type {
|
||||||
margin-block-end: 0;
|
margin-block-end: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-donation {
|
.colophon-donation {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 6;
|
grid-row: 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.colophon-donation {
|
.colophon-donation {
|
||||||
grid-column: 8 / -4;
|
grid-column: 8 / -4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (prefers-reduced-motion: reduce) {
|
@media screen and (prefers-reduced-motion: reduce) {
|
||||||
.colophon-donation-heart {
|
.colophon-donation-heart {
|
||||||
animation: none;
|
animation: none;
|
||||||
color: var(--color-accent-secondary);
|
color: var(--color-accent-secondary);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: var(--font-size-5);
|
font-size: var(--font-size-5);
|
||||||
text-shadow: var(--shadow-subtle-shade);
|
text-shadow: var(--shadow-subtle-shade);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-donation-heart {
|
.colophon-donation-heart {
|
||||||
animation: heartbeat 1.5s ease-out 0s infinite normal;
|
animation: heartbeat 1.5s ease-out 0s infinite normal;
|
||||||
color: var(--color-accent-secondary);
|
color: var(--color-accent-secondary);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
font-size: var(--font-size-5);
|
font-size: var(--font-size-5);
|
||||||
text-shadow: var(--shadow-subtle-shade);
|
text-shadow: var(--shadow-subtle-shade);
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-dontation-crypto-hash {
|
.colophon-dontation-crypto-hash {
|
||||||
font-family: var(--font-family-mono);
|
font-family: var(--font-family-mono);
|
||||||
font-size: clamp(0.8rem, 0.8vw, 1rem);
|
font-size: clamp(0.8rem, 0.8vw, 1rem);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-donation-list {
|
.colophon-donation-list {
|
||||||
column-gap: 3rem;
|
column-gap: 3rem;
|
||||||
column-width: 22rem;
|
column-width: 22rem;
|
||||||
margin-block-start: var(--space-10);
|
margin-block-start: var(--space-10);
|
||||||
padding-inline-start: 0;
|
padding-inline-start: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-donation-list-item {
|
.colophon-donation-list-item {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
break-inside: avoid;
|
break-inside: avoid;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-variant-ligatures: none;
|
font-variant-ligatures: none;
|
||||||
margin-block-end: var(--space-1);
|
margin-block-end: var(--space-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-dontation-button {
|
.colophon-dontation-button {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
color: var(--color-fg);
|
color: var(--color-fg);
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.colophon-donation-icon {
|
.colophon-donation-icon {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
margin-inline-end: var(--space-1);
|
margin-inline-end: var(--space-1);
|
||||||
width: 20px;
|
width: 20px;
|
||||||
}
|
}
|
||||||
.colophon-tech {
|
.colophon-tech {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 7;
|
grid-row: 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.colophon-tech {
|
.colophon-tech {
|
||||||
grid-column: 5 / -7;
|
grid-column: 5 / -7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,95 +3,95 @@
|
|||||||
|
|
||||||
/** Downloads */
|
/** Downloads */
|
||||||
.downloads-intro {
|
.downloads-intro {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.downloads-intro {
|
.downloads-intro {
|
||||||
grid-column: 6 / -6;
|
grid-column: 6 / -6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.downloads-items {
|
.downloads-items {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@define-placeholder downloads-layout-50 {
|
@define-placeholder downloads-layout-50 {
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
column-gap: var(--space-55);
|
column-gap: var(--space-55);
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
row-gap: calc(var(--space-55) / 2);
|
row-gap: calc(var(--space-55) / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
.downloads-container {
|
.downloads-container {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
grid-template-columns: repeat(18, 1fr);
|
grid-template-columns: repeat(18, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
.downloads-layout {
|
.downloads-layout {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.downloads-50-start {
|
.downloads-50-start {
|
||||||
@extend downloads-layout-50;
|
@extend downloads-layout-50;
|
||||||
|
|
||||||
& .downloads-image-container {
|
& .downloads-image-container {
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
& figcaption {
|
& figcaption {
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
text-align: start;
|
text-align: start;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.downloads-50-start {
|
.downloads-50-start {
|
||||||
& .downloads-image-container {
|
& .downloads-image-container {
|
||||||
grid-column: 1;
|
grid-column: 1;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
& figcaption {
|
& figcaption {
|
||||||
grid-column: 2;
|
grid-column: 2;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.downloads-50-end {
|
.downloads-50-end {
|
||||||
@extend downloads-layout-50;
|
@extend downloads-layout-50;
|
||||||
|
|
||||||
& .downloads-image-container {
|
& .downloads-image-container {
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
& figcaption {
|
& figcaption {
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
text-align: start;
|
text-align: start;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.downloads-50-end {
|
.downloads-50-end {
|
||||||
& .downloads-image-container {
|
& .downloads-image-container {
|
||||||
grid-column: 2;
|
grid-column: 2;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
& figcaption {
|
& figcaption {
|
||||||
grid-column: 1;
|
grid-column: 1;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,36 +3,36 @@
|
|||||||
|
|
||||||
/** Error 404 Page */
|
/** Error 404 Page */
|
||||||
@keyframes ninja {
|
@keyframes ninja {
|
||||||
0% {
|
0% {
|
||||||
transform: rotate(0deg) translateX(0);
|
transform: rotate(0deg) translateX(0);
|
||||||
}
|
}
|
||||||
50% {
|
50% {
|
||||||
transform: rotate(360deg) translateX(-100px);
|
transform: rotate(360deg) translateX(-100px);
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
transform: rotate(0deg) translateX(0);
|
transform: rotate(0deg) translateX(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sewer {
|
.sewer {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-block-start: var(--space-10);
|
margin-block-start: var(--space-10);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (prefers-reduced-motion: reduce) {
|
@media screen and (prefers-reduced-motion: reduce) {
|
||||||
.ninja-turtles {
|
.ninja-turtles {
|
||||||
animation: none;
|
animation: none;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: clamp(200px, 30vw, 667px);
|
width: clamp(200px, 30vw, 667px);
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ninja-turtles {
|
.ninja-turtles {
|
||||||
animation: ninja 60s linear 0s infinite normal;
|
animation: ninja 60s linear 0s infinite normal;
|
||||||
position: relative;
|
position: relative;
|
||||||
width: clamp(200px, 30vw, 667px);
|
width: clamp(200px, 30vw, 667px);
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,83 +3,83 @@
|
|||||||
|
|
||||||
/** Glossary */
|
/** Glossary */
|
||||||
.glossary-intro {
|
.glossary-intro {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.glossary-intro {
|
.glossary-intro {
|
||||||
grid-column: 6 / -6;
|
grid-column: 6 / -6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.glossary-list {
|
.glossary-list {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.glossary-list {
|
.glossary-list {
|
||||||
grid-column: 5 / -5;
|
grid-column: 5 / -5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.glossary-list-item {
|
.glossary-list-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
padding-block-end: var(--space-10);
|
padding-block-end: var(--space-10);
|
||||||
padding-inline-start: 0;
|
padding-inline-start: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (width >= 450px) {
|
@media (width >= 450px) {
|
||||||
.glossary-list-item {
|
.glossary-list-item {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.glossary-list-item-romanji {
|
.glossary-list-item-romanji {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
font-feature-settings: 'liga', 'dlig';
|
font-feature-settings: 'liga', 'dlig';
|
||||||
font-size: var(--font-size-4);
|
font-size: var(--font-size-4);
|
||||||
font-weight: var(--font-weight-black);
|
font-weight: var(--font-weight-black);
|
||||||
hyphens: manual;
|
hyphens: manual;
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
line-height: var(--line-height-1);
|
line-height: var(--line-height-1);
|
||||||
padding-block-end: var(--space-2);
|
padding-block-end: var(--space-2);
|
||||||
padding-inline-end: var(--space-10);
|
padding-inline-end: var(--space-10);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (width >= 450px) {
|
@media (width >= 450px) {
|
||||||
.glossary-list-item-romanji {
|
.glossary-list-item-romanji {
|
||||||
margin-block-end: 0 !important;
|
margin-block-end: 0 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.glossary-list-item-japanese {
|
.glossary-list-item-japanese {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
|
font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
|
||||||
font-size: var(--font-size-4);
|
font-size: var(--font-size-4);
|
||||||
font-weight: var(--font-weight-thin);
|
font-weight: var(--font-weight-thin);
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
line-height: var(--line-height-1);
|
line-height: var(--line-height-1);
|
||||||
padding-block-end: var(--space-2);
|
padding-block-end: var(--space-2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (width >= 450px) {
|
@media (width >= 450px) {
|
||||||
.glossary-list-item-japanese {
|
.glossary-list-item-japanese {
|
||||||
text-align: end;
|
text-align: end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.glossary-list-item-translation {
|
.glossary-list-item-translation {
|
||||||
color: var(--color-accent-primary);
|
color: var(--color-accent-primary);
|
||||||
margin-block-end: var(--space-2);
|
margin-block-end: var(--space-2);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.glossary-list-item-description {
|
.glossary-list-item-description {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,95 +3,95 @@
|
|||||||
|
|
||||||
/** Homepage Intro */
|
/** Homepage Intro */
|
||||||
.homepage-intro {
|
.homepage-intro {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.homepage-intro {
|
.homepage-intro {
|
||||||
grid-column: 6 / -6;
|
grid-column: 6 / -6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-title {
|
.homepage-title {
|
||||||
font-family: Sword Kanji, Hiragino Kaku Gothic Std, sans-serif;
|
font-family: Sword Kanji, Hiragino Kaku Gothic Std, sans-serif;
|
||||||
font-size: var(--font-size-8);
|
font-size: var(--font-size-8);
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Homepage TOC */
|
/** Homepage TOC */
|
||||||
.homepage-toc {
|
.homepage-toc {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--desktop) {
|
@media (--desktop) {
|
||||||
.homepage-toc {
|
.homepage-toc {
|
||||||
grid-column: 3 / -3;
|
grid-column: 3 / -3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-toc-title {
|
.homepage-toc-title {
|
||||||
padding-inline-start: 2.5rem;
|
padding-inline-start: 2.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-toc-intro {
|
.homepage-toc-intro {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding-inline-start: 2.5rem;
|
padding-inline-start: 2.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-toc-content {
|
.homepage-toc-content {
|
||||||
column-gap: 3rem;
|
column-gap: 3rem;
|
||||||
column-width: 18rem;
|
column-width: 18rem;
|
||||||
counter-reset: section;
|
counter-reset: section;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding-inline-start: 2.5rem;
|
padding-inline-start: 2.5rem;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-toc-content ol {
|
.homepage-toc-content ol {
|
||||||
counter-reset: section;
|
counter-reset: section;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding-block-end: var(--space-5);
|
padding-block-end: var(--space-5);
|
||||||
padding-block-start: var(--space-5);
|
padding-block-start: var(--space-5);
|
||||||
padding-inline-start: 0;
|
padding-inline-start: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-toc-content > li {
|
.homepage-toc-content > li {
|
||||||
font-size: var(--font-size-4);
|
font-size: var(--font-size-4);
|
||||||
font-weight: var(--font-weight-black);
|
font-weight: var(--font-weight-black);
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-toc-content ol > li {
|
.homepage-toc-content ol > li {
|
||||||
font-weight: var(--font-weight-thin);
|
font-weight: var(--font-weight-thin);
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Safari Bug: Multicolumn hides numbers */
|
/** Safari Bug: Multicolumn hides numbers */
|
||||||
.homepage-toc-content li::before {
|
.homepage-toc-content li::before {
|
||||||
color: var(--color-fg-soft);
|
color: var(--color-fg-soft);
|
||||||
content: counters(section, '.') ' ';
|
content: counters(section, '.') ' ';
|
||||||
counter-increment: section;
|
counter-increment: section;
|
||||||
font-weight: lighter;
|
font-weight: lighter;
|
||||||
inset-inline-start: -2.5rem;
|
inset-inline-start: -2.5rem;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
text-align: end;
|
text-align: end;
|
||||||
/** Null transform hack to fix Safari bug
|
/** Null transform hack to fix Safari bug
|
||||||
* https://stackoverflow.com/a/60849697/331361 **/
|
* https://stackoverflow.com/a/60849697/331361 **/
|
||||||
transform: translate3d(0, 0, 0);
|
transform: translate3d(0, 0, 0);
|
||||||
width: 2rem;
|
width: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-toc-content .homepage-toc-chapter::before {
|
.homepage-toc-content .homepage-toc-chapter::before {
|
||||||
color: var(--color-accent-primary);
|
color: var(--color-accent-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.homepage-toc-chapter {
|
.homepage-toc-chapter {
|
||||||
break-inside: avoid;
|
break-inside: avoid;
|
||||||
margin-block-end: var(--space-10);
|
margin-block-end: var(--space-10);
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,34 +3,34 @@
|
|||||||
|
|
||||||
/** Recommendations */
|
/** Recommendations */
|
||||||
.recommendations-intro {
|
.recommendations-intro {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 1;
|
grid-row: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.recommendations-intro {
|
.recommendations-intro {
|
||||||
grid-column: 6 / -6;
|
grid-column: 6 / -6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.recommendations-books {
|
.recommendations-books {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 2;
|
grid-row: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.recommendations-movies {
|
.recommendations-movies {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
grid-row: 3;
|
grid-row: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.recommendations-container {
|
.recommendations-container {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-column-gap: var(--space-5);
|
grid-column-gap: var(--space-5);
|
||||||
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
|
||||||
}
|
}
|
||||||
|
|
||||||
.recommendations-product-title {
|
.recommendations-product-title {
|
||||||
font-size: var(--font-size-2);
|
font-size: var(--font-size-2);
|
||||||
margin-block-start: 0;
|
margin-block-start: 0;
|
||||||
padding-block-start: var(--space-2);
|
padding-block-start: var(--space-2);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,45 +1,45 @@
|
|||||||
/** Base */
|
/** Base */
|
||||||
.page-content {
|
.page-content {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
margin-block-start: 15vw;
|
margin-block-start: 15vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rowgap {
|
.rowgap {
|
||||||
row-gap: clamp(1.5rem, var(--space-55), 6rem);
|
row-gap: clamp(1.5rem, var(--space-55), 6rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Fullsize */
|
/** Fullsize */
|
||||||
.layout-fullsize {
|
.layout-fullsize {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-column: 1 / -1;
|
grid-column: 1 / -1;
|
||||||
grid-template-columns: var(--grid-fullsize);
|
grid-template-columns: var(--grid-fullsize);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.layout-fullsize-section {
|
.layout-fullsize-section {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Narrow */
|
/** Narrow */
|
||||||
.layout-narrow {
|
.layout-narrow {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: var(--grid-fullsize);
|
grid-template-columns: var(--grid-fullsize);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
& .wrapper {
|
& .wrapper {
|
||||||
grid-column: 2 / -2;
|
grid-column: 2 / -2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (--tablet) {
|
||||||
.layout-narrow .wrapper {
|
.layout-narrow .wrapper {
|
||||||
grid-column: 5 / -5;
|
grid-column: 5 / -5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--desktop) {
|
@media (--desktop) {
|
||||||
.layout-narrow .wrapper {
|
.layout-narrow .wrapper {
|
||||||
grid-column: 6 / -6;
|
grid-column: 6 / -6;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,42 +1,42 @@
|
|||||||
/** Home Link */
|
/** Home Link */
|
||||||
.home-link {
|
.home-link {
|
||||||
align-self: center;
|
align-self: center;
|
||||||
grid-column: 1;
|
grid-column: 1;
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: transform;
|
transition-property: transform;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
transform: scale(1.25);
|
transform: scale(1.25);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.home-link-button {
|
.home-link-button {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 40px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.home-link-spacer {
|
.home-link-spacer {
|
||||||
align-self: center;
|
align-self: center;
|
||||||
grid-column: 1;
|
grid-column: 1;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
margin-inline-end: 15px;
|
margin-inline-end: 15px;
|
||||||
width: 40px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.home-link-icon {
|
.home-link-icon {
|
||||||
fill: var(--color-fg);
|
fill: var(--color-fg);
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
width: 20px;
|
width: 20px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,39 +1,39 @@
|
|||||||
/** Language Switcher */
|
/** Language Switcher */
|
||||||
.language-switcher {
|
.language-switcher {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
position: relative;
|
position: relative;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
.language-switcher-list {
|
.language-switcher-list {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.language-switcher-list-item {
|
.language-switcher-list-item {
|
||||||
margin-block-end: 0;
|
margin-block-end: 0;
|
||||||
margin-inline-end: 0.25em;
|
margin-inline-end: 0.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.language-switcher-link {
|
.language-switcher-link {
|
||||||
color: var(--color-fg);
|
color: var(--color-fg);
|
||||||
font-weight: var(--font-weight-normal);
|
font-weight: var(--font-weight-normal);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
text-decoration-color: var(--color-accent-primary);
|
text-decoration-color: var(--color-accent-primary);
|
||||||
text-decoration-thickness: 0.15em;
|
text-decoration-thickness: 0.15em;
|
||||||
text-underline-offset: 0.1em;
|
text-underline-offset: 0.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.is-active {
|
&.is-active {
|
||||||
font-weight: var(--font-weight-semi-bold);
|
font-weight: var(--font-weight-semi-bold);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,53 +1,53 @@
|
|||||||
/** Legal Links */
|
/** Legal Links */
|
||||||
.legal {
|
.legal {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
grid-column: 1 / -3;
|
grid-column: 1 / -3;
|
||||||
padding-inline-start: clamp(15px, 2.4vw, 50px);
|
padding-inline-start: clamp(15px, 2.4vw, 50px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.legal-copyright {
|
.legal-copyright {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
inset-block-start: 1px;
|
inset-block-start: 1px;
|
||||||
margin-inline-end: 0.25em;
|
margin-inline-end: 0.25em;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.legal-author {
|
.legal-author {
|
||||||
letter-spacing: 0.05em;
|
letter-spacing: 0.05em;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
.legal-author-link {
|
.legal-author-link {
|
||||||
color: var(--color-fg);
|
color: var(--color-fg);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
text-decoration-color: var(--color-accent-primary);
|
text-decoration-color: var(--color-accent-primary);
|
||||||
text-decoration-thickness: 0.15em;
|
text-decoration-thickness: 0.15em;
|
||||||
text-underline-offset: 0.1em;
|
text-underline-offset: 0.1em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.legal-bullet {
|
.legal-bullet {
|
||||||
margin-inline-end: 0.25em;
|
margin-inline-end: 0.25em;
|
||||||
margin-inline-start: 0.25em;
|
margin-inline-start: 0.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Hidden Ninja */
|
/** Hidden Ninja */
|
||||||
.hidden-ninja {
|
.hidden-ninja {
|
||||||
cursor: none;
|
cursor: none;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition-delay: 100ms;
|
transition-delay: 100ms;
|
||||||
transition-duration: 200ms;
|
transition-duration: 200ms;
|
||||||
transition-property: opacity;
|
transition-property: opacity;
|
||||||
transition-timing-function: ease-in;
|
transition-timing-function: ease-in;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/** Page Footer */
|
/** Page Footer */
|
||||||
.page-footer {
|
.page-footer {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: var(--grid-fullsize);
|
grid-template-columns: var(--grid-fullsize);
|
||||||
grid-template-rows: clamp(3rem, var(--space-55), 9rem);
|
grid-template-rows: clamp(3rem, var(--space-55), 9rem);
|
||||||
margin-block-start: clamp(1.5rem, var(--space-55), 4.5rem);
|
margin-block-start: clamp(1.5rem, var(--space-55), 4.5rem);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/** Page Header */
|
/** Page Header */
|
||||||
.page-header {
|
.page-header {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: var(--grid-fullsize);
|
grid-template-columns: var(--grid-fullsize);
|
||||||
grid-template-rows: clamp(3rem, var(--space-55), 9rem);
|
grid-template-rows: clamp(3rem, var(--space-55), 9rem);
|
||||||
margin-block-end: clamp(1.5rem, var(--space-55), 4.5rem);
|
margin-block-end: clamp(1.5rem, var(--space-55), 4.5rem);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,35 @@
|
|||||||
/** Theme Toggle */
|
/** Theme Toggle */
|
||||||
.no-js .theme-toggle {
|
.no-js .theme-toggle {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme-toggle {
|
.theme-toggle {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
grid-column: -2;
|
grid-column: -2;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
width: 40px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme-toggle-icon {
|
.theme-toggle-icon {
|
||||||
fill: var(--color-fg);
|
fill: var(--color-fg);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
height: 12px;
|
height: 12px;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: transform;
|
transition-property: transform;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
width: 12px;
|
width: 12px;
|
||||||
|
|
||||||
.theme-toggle:hover &,
|
.theme-toggle:hover &,
|
||||||
.theme-toggle:focus & {
|
.theme-toggle:focus & {
|
||||||
transform: scale(1.25);
|
transform: scale(1.25);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,33 +1,33 @@
|
|||||||
/** Up Link */
|
/** Up Link */
|
||||||
.up-link {
|
.up-link {
|
||||||
align-self: center;
|
align-self: center;
|
||||||
grid-column: -2;
|
grid-column: -2;
|
||||||
justify-self: center;
|
justify-self: center;
|
||||||
transition-duration: var(--transition-duration-5);
|
transition-duration: var(--transition-duration-5);
|
||||||
transition-property: transform;
|
transition-property: transform;
|
||||||
transition-timing-function: ease-in-out;
|
transition-timing-function: ease-in-out;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:focus {
|
&:focus {
|
||||||
transform: translate3D(0, -0.25rem, 0);
|
transform: translate3D(0, -0.25rem, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.up-link-button {
|
.up-link-button {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border: 0;
|
border: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 40px;
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.up-link-icon {
|
.up-link-icon {
|
||||||
fill: var(--color-fg);
|
fill: var(--color-fg);
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
width: 20px;
|
width: 20px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
@page {
|
@page {
|
||||||
margin: 1cm 0cm;
|
margin: 1cm 0cm;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Show all content immediatly */
|
/* Show all content immediatly */
|
||||||
[data-sal|='fade'] {
|
[data-sal|='fade'] {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-sal|='slide'],
|
[data-sal|='slide'],
|
||||||
[data-sal|='zoom'] {
|
[data-sal|='zoom'] {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transform: none;
|
transform: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-sal|='flip'] {
|
[data-sal|='flip'] {
|
||||||
transform: none;
|
transform: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hide content from printing */
|
/* Hide content from printing */
|
||||||
@@ -23,36 +23,36 @@
|
|||||||
.theme-toggle,
|
.theme-toggle,
|
||||||
.pagination,
|
.pagination,
|
||||||
.home-link {
|
.home-link {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Images */
|
/* Images */
|
||||||
img {
|
img {
|
||||||
border: 0;
|
border: 0;
|
||||||
max-width: 1200px;
|
max-width: 1200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Links */
|
/* Links */
|
||||||
a {
|
a {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
a::after {
|
a::after {
|
||||||
content: ' (https://www.kogakure.de' attr(href) ')';
|
content: ' (https://www.kogakure.de' attr(href) ')';
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
|
|
||||||
a[href^='mailto:']::after {
|
a[href^='mailto:']::after {
|
||||||
content: ' (' attr(href) ')';
|
content: ' (' attr(href) ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
a[href^='http://']::after,
|
a[href^='http://']::after,
|
||||||
a[href^='https://']::after
|
a[href^='https://']::after
|
||||||
{
|
{
|
||||||
content: ' (' attr(href) ')';
|
content: ' (' attr(href) ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
a[href^='#']::after {
|
a[href^='#']::after {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ const de = require('./translations/de');
|
|||||||
const en = require('./translations/en');
|
const en = require('./translations/en');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
de: {
|
de: {
|
||||||
...de,
|
...de,
|
||||||
},
|
},
|
||||||
en: {
|
en: {
|
||||||
...en,
|
...en,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,29 +4,29 @@ const duration = 800;
|
|||||||
const easing = 'ease-out-sine';
|
const easing = 'ease-out-sine';
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
animation: `data-sal=${animation} data-sal-duration=${duration} data-sal-easing=${easing}`,
|
animation: `data-sal=${animation} data-sal-duration=${duration} data-sal-easing=${easing}`,
|
||||||
animationDelay: `data-sal=${animation} data-sal-duration=${duration} data-sal-delay=${delay} data-sal-easing=${easing}`,
|
animationDelay: `data-sal=${animation} data-sal-duration=${duration} data-sal-delay=${delay} data-sal-easing=${easing}`,
|
||||||
author: 'Stefan Imhoff',
|
author: 'Stefan Imhoff',
|
||||||
bitcoin: 'bc1quzvqw66khsnrmqh0ds8dprnrtcxfytfa3x2x7m',
|
bitcoin: 'bc1quzvqw66khsnrmqh0ds8dprnrtcxfytfa3x2x7m',
|
||||||
buildTime: new Date(),
|
buildTime: new Date(),
|
||||||
description: {
|
description: {
|
||||||
de: 'Ninja, Ninjutsu & Kampfkunst',
|
de: 'Ninja, Ninjutsu & Kampfkunst',
|
||||||
en: 'Ninja, Ninjutsu & Martial Arts',
|
en: 'Ninja, Ninjutsu & Martial Arts',
|
||||||
},
|
},
|
||||||
ethereum: '0x9e177CA8eD880991cb976aFbcC409c5c15Fa0080',
|
ethereum: '0x9e177CA8eD880991cb976aFbcC409c5c15Fa0080',
|
||||||
faviconPath: '/assets/images/branding/favicons/',
|
faviconPath: '/assets/images/branding/favicons/',
|
||||||
isProduction: process.env.ELEVENTY_ENV === 'production',
|
isProduction: process.env.ELEVENTY_ENV === 'production',
|
||||||
languages: [
|
languages: [
|
||||||
{
|
{
|
||||||
title: 'DE',
|
title: 'DE',
|
||||||
language: 'de',
|
language: 'de',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'EN',
|
title: 'EN',
|
||||||
language: 'en',
|
language: 'en',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
title: '木隠',
|
title: '木隠',
|
||||||
twitter: '@kogakure',
|
twitter: '@kogakure',
|
||||||
url: 'https://www.kogakure.de',
|
url: 'https://www.kogakure.de',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,245 +1,245 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "Gyokko Ryû Taijutsu no Kata: Bujinkan Budô Denshô",
|
"title": "Gyokko Ryû Taijutsu no Kata: Bujinkan Budô Denshô",
|
||||||
"cover": "/assets/images/recommendations/books/gyokko-ryu-taijutsu-no-kata-de.jpg",
|
"cover": "/assets/images/recommendations/books/gyokko-ryu-taijutsu-no-kata-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70152"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70152"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kukishinden Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
"title": "Kukishinden Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
||||||
"cover": "/assets/images/recommendations/books/kukishinden-ryu-taijutsu-no-kata-de.jpg",
|
"cover": "/assets/images/recommendations/books/kukishinden-ryu-taijutsu-no-kata-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70153"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70153"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Togakure Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
"title": "Togakure Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
||||||
"cover": "/assets/images/recommendations/books/togakure-ryu-taijutsu-no-kata-de.jpg",
|
"cover": "/assets/images/recommendations/books/togakure-ryu-taijutsu-no-kata-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70155"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70155"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kotô Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
"title": "Kotô Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
||||||
"cover": "/assets/images/recommendations/books/koto-ryu-taijutsu-no-kata-de.jpg",
|
"cover": "/assets/images/recommendations/books/koto-ryu-taijutsu-no-kata-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70162"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70162"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinden Fudô Ryû Daken taijutsu no Kata: Bujinkan Budô Densho",
|
"title": "Shinden Fudô Ryû Daken taijutsu no Kata: Bujinkan Budô Densho",
|
||||||
"cover": "/assets/images/recommendations/books/shinden-fudo-ryu-dakentaijutsu-de.jpg",
|
"cover": "/assets/images/recommendations/books/shinden-fudo-ryu-dakentaijutsu-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70166"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70166"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinden-Fudo Ryû Jûtaijutsu no kata: Bujinkan Budô densho",
|
"title": "Shinden-Fudo Ryû Jûtaijutsu no kata: Bujinkan Budô densho",
|
||||||
"cover": "/assets/images/recommendations/books/shinden-fudo-ryu-jutaijutsu-no-kata-de.jpg",
|
"cover": "/assets/images/recommendations/books/shinden-fudo-ryu-jutaijutsu-no-kata-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70170"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70170"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Takagi-Yôshin-Ryû Taijutsu no Kata: Bujinkan Budô Denshô",
|
"title": "Takagi-Yôshin-Ryû Taijutsu no Kata: Bujinkan Budô Denshô",
|
||||||
"cover": "/assets/images/recommendations/books/takagi-yoshin-ryu-taijutsu-no-kata-de.jpg",
|
"cover": "/assets/images/recommendations/books/takagi-yoshin-ryu-taijutsu-no-kata-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70173"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70173"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ten Ryaku no Maki: Strategien des Himmels",
|
"title": "Ten Ryaku no Maki: Strategien des Himmels",
|
||||||
"cover": "/assets/images/recommendations/books/ten-ryaku-no-maki-de.jpg",
|
"cover": "/assets/images/recommendations/books/ten-ryaku-no-maki-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70178"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70178"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Chi Ryaku no Maki: Strategien der Erde",
|
"title": "Chi Ryaku no Maki: Strategien der Erde",
|
||||||
"cover": "/assets/images/recommendations/books/chi-ryaku-no-maki-de.jpg",
|
"cover": "/assets/images/recommendations/books/chi-ryaku-no-maki-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70179"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70179"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jin Ryaku no Maki: Strategien des Menschen",
|
"title": "Jin Ryaku no Maki: Strategien des Menschen",
|
||||||
"cover": "/assets/images/recommendations/books/jin-ryaku-no-maki-de.jpg",
|
"cover": "/assets/images/recommendations/books/jin-ryaku-no-maki-de.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70184"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70184"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Way of the Ninja: Secret Techniques",
|
"title": "The Way of the Ninja: Secret Techniques",
|
||||||
"asin": "4770028059"
|
"asin": "4770028059"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Art of Japanese Sword Fighting: Secrets of the Samurai",
|
"title": "Art of Japanese Sword Fighting: Secrets of the Samurai",
|
||||||
"asin": "4770021984"
|
"asin": "4770021984"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Advanced Stick Fighting",
|
"title": "Advanced Stick Fighting",
|
||||||
"asin": "4770029969"
|
"asin": "4770029969"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Unarmed Fighting Techniques of the Samurai",
|
"title": "Unarmed Fighting Techniques of the Samurai",
|
||||||
"asin": "4770030592"
|
"asin": "4770030592"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Secrets from the Ninja Grandmaster",
|
"title": "Secrets from the Ninja Grandmaster",
|
||||||
"asin": "1581603754"
|
"asin": "1581603754"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Essence of Ninjutsu: The Nine Traditions",
|
"title": "Essence of Ninjutsu: The Nine Traditions",
|
||||||
"asin": "0809247240"
|
"asin": "0809247240"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Grandmaster's Book of Ninja Training",
|
"title": "The Grandmaster's Book of Ninja Training",
|
||||||
"asin": "0809246295"
|
"asin": "0809246295"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninjutsu. History and Tradition",
|
"title": "Ninjutsu. History and Tradition",
|
||||||
"asin": "0865680272"
|
"asin": "0865680272"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Understand? Good Play!",
|
"title": "Understand? Good Play!",
|
||||||
"asin": "0971084955"
|
"asin": "0971084955"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Stick Fighting: Techniques of Self-Defense",
|
"title": "Stick Fighting: Techniques of Self-Defense",
|
||||||
"asin": "0870114751"
|
"asin": "0870114751"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hanbo-Jutsu: Kukishin Ryu",
|
"title": "Hanbo-Jutsu: Kukishin Ryu",
|
||||||
"asin": "3924862052"
|
"asin": "3924862052"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja: The Invisible Assassins",
|
"title": "Ninja: The Invisible Assassins",
|
||||||
"asin": "089750030X"
|
"asin": "089750030X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 1: Spirit of the Shadow Warrior ",
|
"title": "Ninja 1: Spirit of the Shadow Warrior ",
|
||||||
"asin": "0897500733"
|
"asin": "0897500733"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 2: Warrior Ways of Enlightenment",
|
"title": "Ninja 2: Warrior Ways of Enlightenment",
|
||||||
"asin": "0897500776"
|
"asin": "0897500776"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 3: Warrior Path of Togakure",
|
"title": "Ninja 3: Warrior Path of Togakure",
|
||||||
"asin": "0897500903"
|
"asin": "0897500903"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 4: Legacy of the Night Warrior",
|
"title": "Ninja 4: Legacy of the Night Warrior",
|
||||||
"asin": "0897501020"
|
"asin": "0897501020"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 5: Lore of the Shinobi Warrior",
|
"title": "Ninja 5: Lore of the Shinobi Warrior",
|
||||||
"asin": "0897501233"
|
"asin": "0897501233"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 6: Secret Scrolls of the Warrior Sage",
|
"title": "Ninja 6: Secret Scrolls of the Warrior Sage",
|
||||||
"asin": "089750156X"
|
"asin": "089750156X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Book of Ninja: The Bansenshukai",
|
"title": "The Book of Ninja: The Bansenshukai",
|
||||||
"asin": "1780284934"
|
"asin": "1780284934"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "True Path of the Ninja",
|
"title": "True Path of the Ninja",
|
||||||
"asin": "4805311142"
|
"asin": "4805311142"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Ninpiden - True Ninja Traditions",
|
"title": "The Ninpiden - True Ninja Traditions",
|
||||||
"asin": "1604818301"
|
"asin": "1604818301"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Secret Traditions of the Shinobi",
|
"title": "The Secret Traditions of the Shinobi",
|
||||||
"asin": "1583944354"
|
"asin": "1583944354"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kokoro no Katachi: Das Wesen des Kokoro",
|
"title": "Kokoro no Katachi: Das Wesen des Kokoro",
|
||||||
"asin": "3940404071"
|
"asin": "3940404071"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Art of Life and Death: Lessons in Budo from a Ninja Master",
|
"title": "The Art of Life and Death: Lessons in Budo from a Ninja Master",
|
||||||
"asin": "080484304X"
|
"asin": "080484304X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Ninja and Their Secret Fighting Art",
|
"title": "The Ninja and Their Secret Fighting Art",
|
||||||
"asin": "0804816565"
|
"asin": "0804816565"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Mystic Arts Of The Ninja",
|
"title": "The Mystic Arts Of The Ninja",
|
||||||
"asin": "0809253437"
|
"asin": "0809253437"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja",
|
"title": "Ninja",
|
||||||
"asin": "3613305879"
|
"asin": "3613305879"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja und Japanische Kampfmönche",
|
"title": "Ninja und Japanische Kampfmönche",
|
||||||
"asin": "3877486312"
|
"asin": "3877486312"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Die Kunst des Krieges",
|
"title": "Die Kunst des Krieges",
|
||||||
"asin": "3937872876"
|
"asin": "3937872876"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Das Buch der fünf Ringe",
|
"title": "Das Buch der fünf Ringe",
|
||||||
"asin": "3933321646"
|
"asin": "3933321646"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hagakure",
|
"title": "Hagakure",
|
||||||
"asin": "3868201211"
|
"asin": "3868201211"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Der Weg des Samurai: Anleitung zum strategischen Handeln",
|
"title": "Der Weg des Samurai: Anleitung zum strategischen Handeln",
|
||||||
"asin": "3492236316"
|
"asin": "3492236316"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bushidô: Die sieben Tugenden des Samurai",
|
"title": "Bushidô: Die sieben Tugenden des Samurai",
|
||||||
"asin": "3492046622"
|
"asin": "3492046622"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Samurai und Kriegskunst",
|
"title": "Samurai und Kriegskunst",
|
||||||
"cover": "/assets/images/recommendations/books/samurai-und-kriegskunst.jpg",
|
"cover": "/assets/images/recommendations/books/samurai-und-kriegskunst.jpg",
|
||||||
"asin": "3924862311"
|
"asin": "3924862311"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Engaging Japanese Philosophy",
|
"title": "Engaging Japanese Philosophy",
|
||||||
"asin": "0824874072"
|
"asin": "0824874072"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Japanische Schwertschmiedekunst",
|
"title": "Japanische Schwertschmiedekunst",
|
||||||
"asin": "3931425010"
|
"asin": "3931425010"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Waffen und Schwertzierate Japans",
|
"title": "Waffen und Schwertzierate Japans",
|
||||||
"cover": "/assets/images/recommendations/books/waffen-und-schwertzierate-japans.jpg",
|
"cover": "/assets/images/recommendations/books/waffen-und-schwertzierate-japans.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70050"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70050"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Japanisches Wappenbuch - Nihon moncho",
|
"title": "Japanisches Wappenbuch - Nihon moncho",
|
||||||
"cover": "/assets/images/recommendations/books/japanisches-wappenbuch.jpg",
|
"cover": "/assets/images/recommendations/books/japanisches-wappenbuch.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70040"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70040"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yamato",
|
"title": "Yamato",
|
||||||
"cover": "/assets/images/recommendations/books/yamato.jpg",
|
"cover": "/assets/images/recommendations/books/yamato.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70132"
|
"link": "https://www.tengu-publishing.de/de/index.php?site=artikel&artikelnr=70132"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Meifu Shinkage Ryû: Fundô kusarijutsu - Shurikenjutsu",
|
"title": "Meifu Shinkage Ryû: Fundô kusarijutsu - Shurikenjutsu",
|
||||||
"cover": "/assets/images/recommendations/books/meifu-shinkage-ryu-de.jpg",
|
"cover": "/assets/images/recommendations/books/meifu-shinkage-ryu-de.jpg",
|
||||||
"asin": "3924862249"
|
"asin": "3924862249"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Takamatsu Toshitsugu: Die Biographie einer Kampfkunstlegende",
|
"title": "Takamatsu Toshitsugu: Die Biographie einer Kampfkunstlegende",
|
||||||
"asin": "3924862117"
|
"asin": "3924862117"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja Attack!",
|
"title": "Ninja Attack!",
|
||||||
"asin": "477003119X"
|
"asin": "477003119X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bruce Lee: The Art of Expressing the Human Body",
|
"title": "Bruce Lee: The Art of Expressing the Human Body",
|
||||||
"asin": "0804831297"
|
"asin": "0804831297"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tao Te King",
|
"title": "Tao Te King",
|
||||||
"asin": "3866474652"
|
"asin": "3866474652"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Der Lauf des Wassers",
|
"title": "Der Lauf des Wassers",
|
||||||
"asin": "3458346392"
|
"asin": "3458346392"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "In der Mitte des Kreises",
|
"title": "In der Mitte des Kreises",
|
||||||
"asin": "3458344594"
|
"asin": "3458344594"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Die Shaolin-Mönche",
|
"title": "Die Shaolin-Mönche",
|
||||||
"asin": "3862280322"
|
"asin": "3862280322"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -3,104 +3,87 @@ const movies = require('./movies.json');
|
|||||||
const glossary = require('./glossary.json');
|
const glossary = require('./glossary.json');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
homepage: {
|
homepage: {
|
||||||
intro:
|
intro: 'Dies ist 木隠 (jap. *kogakure*, <q>Verborgen hinter Blättern und Bäumen.</q>), eine Sammlung von Texten über Ninja und Ninjutsu, mit der ich 1999 begonnen habe. Im Laufe der Jahre kamen immer mehr Seiten, Bilder und Illustrationen hinzu, bis schließlich dieses Buch daraus wurde.',
|
||||||
'Dies ist 木隠 (jap. *kogakure*, <q>Verborgen hinter Blättern und Bäumen.</q>), eine Sammlung von Texten über Ninja und Ninjutsu, mit der ich 1999 begonnen habe. Im Laufe der Jahre kamen immer mehr Seiten, Bilder und Illustrationen hinzu, bis schließlich dieses Buch daraus wurde.',
|
tocHeadline: 'Inhaltsverzeichnis',
|
||||||
tocHeadline: 'Inhaltsverzeichnis',
|
},
|
||||||
},
|
downloads: {
|
||||||
downloads: {
|
intro: 'Hier gibt es das Online-Buch zum Download als eBook, 3D-Modelle von Waffen und Werkzeugen, sowie eine Ninja-Schriftart.',
|
||||||
intro:
|
font: {
|
||||||
'Hier gibt es das Online-Buch zum Download als eBook, 3D-Modelle von Waffen und Werkzeugen, sowie eine Ninja-Schriftart.',
|
headline: 'Iga-Ninja-Font',
|
||||||
font: {
|
text: 'Das Iga-Ninja Museum hatte vor vielen Jahren ein Bild einer Iga-Ninja-Geheimschrift auf ihrer Website veröffentlicht. Ich habe daraus eine Schriftart entwickelt, die hier heruntergeladen werden kann.',
|
||||||
headline: 'Iga-Ninja-Font',
|
more: 'Schrift auf GitHub ansehen',
|
||||||
text:
|
download: 'Schrift herunterladen',
|
||||||
'Das Iga-Ninja Museum hatte vor vielen Jahren ein Bild einer Iga-Ninja-Geheimschrift auf ihrer Website veröffentlicht. Ich habe daraus eine Schriftart entwickelt, die hier heruntergeladen werden kann.',
|
},
|
||||||
more: 'Schrift auf GitHub ansehen',
|
cgi: {
|
||||||
download: 'Schrift herunterladen',
|
headline: '3D Modelle von Waffen und Werkzeugen der Ninja',
|
||||||
},
|
text: 'Für die erste Version dieser Website hatte ich 3D-Modelle von Waffen und Werkzeugen erstellt, die ich dann später in das `stl` Format umgewandelt habe. Die Modelle können auf GitHub direkt im Browser angesehen und von allen Seiten betrachtet werden.',
|
||||||
cgi: {
|
more: 'Waffen und Werkzeuge auf GitHub ansehen',
|
||||||
headline: '3D Modelle von Waffen und Werkzeugen der Ninja',
|
},
|
||||||
text:
|
book: {
|
||||||
'Für die erste Version dieser Website hatte ich 3D-Modelle von Waffen und Werkzeugen erstellt, die ich dann später in das `stl` Format umgewandelt habe. Die Modelle können auf GitHub direkt im Browser angesehen und von allen Seiten betrachtet werden.',
|
headline: 'Das Buch',
|
||||||
more: 'Waffen und Werkzeuge auf GitHub ansehen',
|
text: 'Es gibt den Inhalt dieses Online-Buches zum **kostenlosen** Download als eBook.',
|
||||||
},
|
pdf: 'PDF',
|
||||||
book: {
|
epub: 'EPUB',
|
||||||
headline: 'Das Buch',
|
mobi: 'MOBI',
|
||||||
text:
|
},
|
||||||
'Es gibt den Inhalt dieses Online-Buches zum **kostenlosen** Download als eBook.',
|
},
|
||||||
pdf: 'PDF',
|
colophon: {
|
||||||
epub: 'EPUB',
|
intro: 'Dies ist 木隠. Seit 1999 kann man hier Artikel, Textsammlungen und Übersetzungen zu Themen rund um die japanischen Schattenkrieger und Spione, die Ninja, und deren Kampfkunst Ninjutsu lesen.\n\nDie Idee dazu wurde von Stefan Imhoff, einem Designer, Entwickler und Kampfkünstler aus Wolfsburg (heute aus Hamburg) entwickelt und umgesetzt.',
|
||||||
mobi: 'MOBI',
|
meaning: {
|
||||||
},
|
headline: 'Was bedeutet 木隠?',
|
||||||
},
|
text: 'Der Name *kogakure* (木隠) ist japanisch und bedeutet wörtlich übersetzt in etwa <q>Verborgen hinter Blättern und Bäumen</q>.\n\nIch habe diesen Namen in Anlehnung an das Buch des Samurai Tsunetomo Yamamoto, <cite>Hagakure</cite> (<q>Verborgen unter Laub</q>) und der ältesten Schule im Bujinkan, <cite>Togakure</cite> (<q>Verborgen hinter einer Tür</q>) gewählt.',
|
||||||
colophon: {
|
},
|
||||||
intro:
|
why: {
|
||||||
'Dies ist 木隠. Seit 1999 kann man hier Artikel, Textsammlungen und Übersetzungen zu Themen rund um die japanischen Schattenkrieger und Spione, die Ninja, und deren Kampfkunst Ninjutsu lesen.\n\nDie Idee dazu wurde von Stefan Imhoff, einem Designer, Entwickler und Kampfkünstler aus Wolfsburg (heute aus Hamburg) entwickelt und umgesetzt.',
|
headline: 'Warum gibt es dieses Buch?',
|
||||||
meaning: {
|
text: 'Seit Anfang der 90er, ursprünglich wahrscheinlich durch die Teenage Mutant Hero Turtles auf das Ninjutsu gestoßen, interessierten mich die Ninja und ihre Gedankenwelt.\n\nDamals war das Bujinkan in Deutschland nur spärlich zu finden, eine Trainingsmöglichkeit nahezu unmöglich zu finden. Auch die erhältliche Fachliteratur war mehr als dürftig.\n\nAuf der Suche nach Wissen, Hintergrundinformationen und Informationen sammelte sich im Laufe der Zeit eine Notizsammlung an, die in diesem Buch verarbeitet wurde.\n\nDieses Buch erhebt keinen Anspruch auf Vollständigkeit, oder nach absoluter, belegbarer, geschichtlicher Beweise. Sie soll allen *bugeisha* (Kriegern) helfen, mehr über die Weisheiten dieser über tausend Jahre alten Kunst zu erfahren.',
|
||||||
headline: 'Was bedeutet 木隠?',
|
},
|
||||||
text:
|
contact: {
|
||||||
'Der Name *kogakure* (木隠) ist japanisch und bedeutet wörtlich übersetzt in etwa <q>Verborgen hinter Blättern und Bäumen</q>.\n\nIch habe diesen Namen in Anlehnung an das Buch des Samurai Tsunetomo Yamamoto, <cite>Hagakure</cite> (<q>Verborgen unter Laub</q>) und der ältesten Schule im Bujinkan, <cite>Togakure</cite> (<q>Verborgen hinter einer Tür</q>) gewählt.',
|
headline: 'Kontakt',
|
||||||
},
|
text: 'Man kann mich über meine E-Mail-Adresse oder verschiedene Social Media Platformen auf meiner <a href="https://www.stefanimhoff.de/about/#contact" rel="nofollow noopener noreferrer external" target="_blank">Website</a> erreichen.\n\nBitte lies zuerst durch, ob deine Frage bereits in den FAQ beantwortet wurde. Es ist mir zeitlich nicht immer möglich auf jede Frage zu antworten, ich verspreche jedoch, dass ich jede Nachricht lese!',
|
||||||
why: {
|
},
|
||||||
headline: 'Warum gibt es dieses Buch?',
|
faq: {
|
||||||
text:
|
headline: 'FAQ',
|
||||||
'Seit Anfang der 90er, ursprünglich wahrscheinlich durch die Teenage Mutant Hero Turtles auf das Ninjutsu gestoßen, interessierten mich die Ninja und ihre Gedankenwelt.\n\nDamals war das Bujinkan in Deutschland nur spärlich zu finden, eine Trainingsmöglichkeit nahezu unmöglich zu finden. Auch die erhältliche Fachliteratur war mehr als dürftig.\n\nAuf der Suche nach Wissen, Hintergrundinformationen und Informationen sammelte sich im Laufe der Zeit eine Notizsammlung an, die in diesem Buch verarbeitet wurde.\n\nDieses Buch erhebt keinen Anspruch auf Vollständigkeit, oder nach absoluter, belegbarer, geschichtlicher Beweise. Sie soll allen *bugeisha* (Kriegern) helfen, mehr über die Weisheiten dieser über tausend Jahre alten Kunst zu erfahren.',
|
subheadline1: 'Wo kann ich trainieren?',
|
||||||
},
|
text1: 'Um ein Dōjō für Bujinkan Budō Taijutsu zu finden, solltet ihr am besten in einer Suchmaschine nach **Bujinkan** in Verbindung mit einer Stadt in eurer Nähe suchen. Aber mit Sicherheit wird es keine so gute Abdeckung mit Dōjō wie bei Jūdō oder Karate geben. Auf der Bujinkai-Seite gibt es eine sehr umfangreiche [Dōjō-Liste](http://www.bujinkan-deutschland.de/dojoliste-bujinkan.html).\n\nIch selbst habe *kein* eigenes Dōjō und biete *kein* Training an. Kogakure ist kein Kampfkunst-Stil, sondern der Name des Buches.',
|
||||||
contact: {
|
subheadline2: 'Was für Bücher gibt es?',
|
||||||
headline: 'Kontakt',
|
text2: 'Die Auswahl an Fachbüchern über Ninja und Ninjutsu ist sehr groß. Der größte Teil ist jedoch auf Japanisch oder Englisch. Am besten einfach mal in meine [Empfehlungen](/empfehlungen/) schauen.',
|
||||||
text:
|
subheadline3: 'Welche Bücher kannst du mir empfehlen?',
|
||||||
'Man kann mich über meine E-Mail-Adresse oder verschiedene Social Media Platformen auf meiner <a href="https://www.stefanimhoff.de/about/#contact" rel="nofollow noopener noreferrer external" target="_blank">Website</a> erreichen.\n\nBitte lies zuerst durch, ob deine Frage bereits in den FAQ beantwortet wurde. Es ist mir zeitlich nicht immer möglich auf jede Frage zu antworten, ich verspreche jedoch, dass ich jede Nachricht lese!',
|
text3: 'Zuerst lege ich euch die Bücher von Dr. *Masaaki Hatsumi* ans Herz. *Andrew Adams* Buch <cite>Ninja</cite> ist gut, um einen Gesamtüberblick zu bekommen. *Stephen K. Hayes* hat sehr viele philosophische Aspekte in seinen Büchern (z. B. Tendai, Shugendō, Mikkyō), da ihn dies persönlich sehr interessiert, er ist sogar genau wie Takamatsu zum Mönch des Tendai ernannt worden.',
|
||||||
},
|
subheadline4: 'Wo bekomme ich Bücher über Ninjutsu her?',
|
||||||
faq: {
|
text4: 'Seit es Buchversender wie z. B. [Amazon](http://www.amazon.de/exec/obidos/redirect?link_code=ur2&camp=1638&tag=kogakurede-21&creative=6742&path=tg%2Fbrowse%2F-%2F301128%3Fsite-redirect%3Dde) gibt, sollte es keine Problem mehr darstellen, Bücher aus dem Ausland zu bekommen. Auf der Seite [Empfehlungen](/empfehlungen/) habe ich eine Liste von Büchern und Filmen zusammengestellt, die ich empfehlen kann.',
|
||||||
headline: 'FAQ',
|
subheadline5: 'Ich möchte auf eine Seite verlinken. Was ist zu beachten?',
|
||||||
subheadline1: 'Wo kann ich trainieren?',
|
text5: 'Es ist generell untersagt die Verlinkung in einem Frame zu verwirklichen, bei dem die Website nicht mehr als Urheber erkennbar ist. Du darfst gerne auf jede Seite dieser Domain verlinken.\n\nBilder, Photos und andere Medien dürfen *nicht direkt verlinkt werden*, wohl aber heruntergeladen und auf eigene Server gestellt werden (so lange die Regeln der [Creative Commons Lizenz](http://creativecommons.org/licenses/by-nc/3.0/deed.de) eingehalten werden).',
|
||||||
text1:
|
subheadline6: 'Sind Übersetzungen der Texte erlaubt?',
|
||||||
'Um ein Dōjō für Bujinkan Budō Taijutsu zu finden, solltet ihr am besten in einer Suchmaschine nach **Bujinkan** in Verbindung mit einer Stadt in eurer Nähe suchen. Aber mit Sicherheit wird es keine so gute Abdeckung mit Dōjō wie bei Jūdō oder Karate geben. Auf der Bujinkai-Seite gibt es eine sehr umfangreiche [Dōjō-Liste](http://www.bujinkan-deutschland.de/dojoliste-bujinkan.html).\n\nIch selbst habe *kein* eigenes Dōjō und biete *kein* Training an. Kogakure ist kein Kampfkunst-Stil, sondern der Name des Buches.',
|
text6: 'Übersetzungen der Texte in andere Sprachen sind grundsätzlich erlaubt, solange dem Text eine Quellenangabe beigefügt wird. Bitte schicke mir einen Link, wo die Übersetzung publiziert wird. Wenn du eine Übersetzung in einer anderen Sprache erstellen möchtest, die hier gehostet werden soll, kontaktiere mich gerne.\n\nEine kommerzielle Nutzung, in welcher Form auch immer, ist nur mit schriftlicher Genehmigung möglich.',
|
||||||
subheadline2: 'Was für Bücher gibt es?',
|
},
|
||||||
text2:
|
donation: {
|
||||||
'Die Auswahl an Fachbüchern über Ninja und Ninjutsu ist sehr groß. Der größte Teil ist jedoch auf Japanisch oder Englisch. Am besten einfach mal in meine [Empfehlungen](/empfehlungen/) schauen.',
|
headline: 'Spenden',
|
||||||
subheadline3: 'Welche Bücher kannst du mir empfehlen?',
|
text: 'Dieses Buch ist kostenlos, werbefrei und hat mich im Laufe der Zeit viele hundert Stunden Arbeit gekostet.\n\nWenn es dir gefallen hat, freue ich mich über Lob und Anerkennung. Du kannst mich unterstützen, indem du etwas aus meinen [Empfehlungen](/empfehlungen/) kaufst oder mir eine kleine Spende zukommen lässt.',
|
||||||
text3:
|
paypal: 'Spenden mit PayPal',
|
||||||
'Zuerst lege ich euch die Bücher von Dr. *Masaaki Hatsumi* ans Herz. *Andrew Adams* Buch <cite>Ninja</cite> ist gut, um einen Gesamtüberblick zu bekommen. *Stephen K. Hayes* hat sehr viele philosophische Aspekte in seinen Büchern (z. B. Tendai, Shugendō, Mikkyō), da ihn dies persönlich sehr interessiert, er ist sogar genau wie Takamatsu zum Mönch des Tendai ernannt worden.',
|
},
|
||||||
subheadline4: 'Wo bekomme ich Bücher über Ninjutsu her?',
|
tech: {
|
||||||
text4:
|
headline: 'Technische Informationen',
|
||||||
'Seit es Buchversender wie z. B. [Amazon](http://www.amazon.de/exec/obidos/redirect?link_code=ur2&camp=1638&tag=kogakurede-21&creative=6742&path=tg%2Fbrowse%2F-%2F301128%3Fsite-redirect%3Dde) gibt, sollte es keine Problem mehr darstellen, Bücher aus dem Ausland zu bekommen. Auf der Seite [Empfehlungen](/empfehlungen/) habe ich eine Liste von Büchern und Filmen zusammengestellt, die ich empfehlen kann.',
|
text: 'Wer es bis hier hin durchgehalten hat, den interessieren wahrscheinlich auch die technischen Details zu dieser Seite.\n\nAlle Arbeiten wurden auf einem [Apple](https://www.apple.com/de/) Computer erstellt, die Grafiken wurden mit[Affinity Photo](https://affinity.serif.com/de/photo/), und [Affinity Designer](https://affinity.serif.com/de/designer/) gestaltet, alle Templates und Codesegmente mit [Neovim](https://neovim.io/) per Hand geschrieben und mit [Git](https://git-scm.com/) versioniert. Die Seiten werden mit [Eleventy](https://www.11ty.dev/) (11ty) generiert und die Entwicklungsumgebung und das Deployment werden mit [Gulp.js](https://gulpjs.com/) automatisiert.\n\nDer Quellcode dieser Website liegt für jeden zugänglich auf [GitHub](https://github.com/kogakure/website-11ty-kogakure.de). Fehler, Verbesserungen oder Ergänzungen können gerne dort als [Issue](https://github.com/kogakure/website-11ty-kogakure.de/issues) oder per E-Mail gemeldet werden.',
|
||||||
subheadline5: 'Ich möchte auf eine Seite verlinken. Was ist zu beachten?',
|
},
|
||||||
text5:
|
},
|
||||||
'Es ist generell untersagt die Verlinkung in einem Frame zu verwirklichen, bei dem die Website nicht mehr als Urheber erkennbar ist. Du darfst gerne auf jede Seite dieser Domain verlinken.\n\nBilder, Photos und andere Medien dürfen *nicht direkt verlinkt werden*, wohl aber heruntergeladen und auf eigene Server gestellt werden (so lange die Regeln der [Creative Commons Lizenz](http://creativecommons.org/licenses/by-nc/3.0/deed.de) eingehalten werden).',
|
recommendations: {
|
||||||
subheadline6: 'Sind Übersetzungen der Texte erlaubt?',
|
intro: `Ich empfehle hier **${books.length}** Bücher und **${movies.length}** Filme aus den Themenbereichen Ninja, Samurai, Bujutsu, Kampfkunst, Philosophie und Asien. Es sind nicht immer alle Bücher erhältlich, manche kann man nur noch im Antiquariat bekommen. Ebenso sind einige der Filme nur schwer zu finden.`,
|
||||||
text6:
|
books: {
|
||||||
'Übersetzungen der Texte in andere Sprachen sind grundsätzlich erlaubt, solange dem Text eine Quellenangabe beigefügt wird. Bitte schicke mir einen Link, wo die Übersetzung publiziert wird. Wenn du eine Übersetzung in einer anderen Sprache erstellen möchtest, die hier gehostet werden soll, kontaktiere mich gerne.\n\nEine kommerzielle Nutzung, in welcher Form auch immer, ist nur mit schriftlicher Genehmigung möglich.',
|
headline: 'Bücher',
|
||||||
},
|
},
|
||||||
donation: {
|
movies: {
|
||||||
headline: 'Spenden',
|
headline: 'Filme',
|
||||||
text:
|
},
|
||||||
'Dieses Buch ist kostenlos, werbefrei und hat mich im Laufe der Zeit viele hundert Stunden Arbeit gekostet.\n\nWenn es dir gefallen hat, freue ich mich über Lob und Anerkennung. Du kannst mich unterstützen, indem du etwas aus meinen [Empfehlungen](/empfehlungen/) kaufst oder mir eine kleine Spende zukommen lässt.',
|
},
|
||||||
paypal: 'Spenden mit PayPal',
|
glossary: {
|
||||||
},
|
intro: `Dieses Glossar enthält **${glossary.length}** Einträge aus dem Bereich des Ninjutsu, der Kriegskunst und der japanischen Geschichte. Alle Worte sind Japanisch, ausser anderweitig angegeben.`,
|
||||||
tech: {
|
chinese: 'Chinesisch',
|
||||||
headline: 'Technische Informationen',
|
sanskrit: 'Sanskrit',
|
||||||
text:
|
},
|
||||||
'Wer es bis hier hin durchgehalten hat, den interessieren wahrscheinlich auch die technischen Details zu dieser Seite.\n\nAlle Arbeiten wurden auf einem [Apple](https://www.apple.com/de/) Computer erstellt, die Grafiken wurden mit[Affinity Photo](https://affinity.serif.com/de/photo/), und [Affinity Designer](https://affinity.serif.com/de/designer/) gestaltet, alle Templates und Codesegmente mit [Neovim](https://neovim.io/) per Hand geschrieben und mit [Git](https://git-scm.com/) versioniert. Die Seiten werden mit [Eleventy](https://www.11ty.dev/) (11ty) generiert und die Entwicklungsumgebung und das Deployment werden mit [Gulp.js](https://gulpjs.com/) automatisiert.\n\nDer Quellcode dieser Website liegt für jeden zugänglich auf [GitHub](https://github.com/kogakure/website-11ty-kogakure.de). Fehler, Verbesserungen oder Ergänzungen können gerne dort als [Issue](https://github.com/kogakure/website-11ty-kogakure.de/issues) oder per E-Mail gemeldet werden.',
|
homeLink: 'Zurück zur Startseite',
|
||||||
},
|
themeToggle: 'Farbthema wechseln',
|
||||||
},
|
upLink: 'Zurück nach oben',
|
||||||
recommendations: {
|
creditAuthor: 'Text:',
|
||||||
intro: `Ich empfehle hier **${books.length}** Bücher und **${movies.length}** Filme aus den Themenbereichen Ninja, Samurai, Bujutsu, Kampfkunst, Philosophie und Asien. Es sind nicht immer alle Bücher erhältlich, manche kann man nur noch im Antiquariat bekommen. Ebenso sind einige der Filme nur schwer zu finden.`,
|
creditTranslator: 'Übersetzung:',
|
||||||
books: {
|
|
||||||
headline: 'Bücher',
|
|
||||||
},
|
|
||||||
movies: {
|
|
||||||
headline: 'Filme',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
glossary: {
|
|
||||||
intro: `Dieses Glossar enthält **${glossary.length}** Einträge aus dem Bereich des Ninjutsu, der Kriegskunst und der japanischen Geschichte. Alle Worte sind Japanisch, ausser anderweitig angegeben.`,
|
|
||||||
chinese: 'Chinesisch',
|
|
||||||
sanskrit: 'Sanskrit',
|
|
||||||
},
|
|
||||||
homeLink: 'Zurück zur Startseite',
|
|
||||||
themeToggle: 'Farbthema wechseln',
|
|
||||||
upLink: 'Zurück nach oben',
|
|
||||||
creditAuthor: 'Text:',
|
|
||||||
creditTranslator: 'Übersetzung:',
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,146 +1,146 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono",
|
"title": "Shinobi no Mono",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-1.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-1.jpg",
|
||||||
"imdb": "tt0164882"
|
"imdb": "tt0164882"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Zoku Shinobi no Mono",
|
"title": "Zoku Shinobi no Mono",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-2.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-2.jpg",
|
||||||
"imdb": "tt0200310"
|
"imdb": "tt0200310"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shin Shinobi no Mono",
|
"title": "Shin Shinobi no Mono",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-3.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-3.jpg",
|
||||||
"imdb": "tt0187501"
|
"imdb": "tt0187501"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono: Kirigakure Saizo",
|
"title": "Shinobi no Mono: Kirigakure Saizo",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-4.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-4.jpg",
|
||||||
"imdb": "tt0224098"
|
"imdb": "tt0224098"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono: Zoku Kirigakure Saizo",
|
"title": "Shinobi no Mono: Zoku Kirigakure Saizo",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-5.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-5.jpg",
|
||||||
"imdb": "tt0199023"
|
"imdb": "tt0199023"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono: Iga-yashiki",
|
"title": "Shinobi no Mono: Iga-yashiki",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-6.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-6.jpg",
|
||||||
"imdb": "tt0224097"
|
"imdb": "tt0224097"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono: Shin kirigakure Saizo",
|
"title": "Shinobi no Mono: Shin kirigakure Saizo",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-7.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-7.jpg",
|
||||||
"imdb": "tt0058592"
|
"imdb": "tt0058592"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinsho: Shinobi no Mono",
|
"title": "Shinsho: Shinobi no Mono",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-8.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-8.jpg",
|
||||||
"imdb": "tt0201924"
|
"imdb": "tt0201924"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Akira Kurosawa - Samurai Edition",
|
"title": "Akira Kurosawa - Samurai Edition",
|
||||||
"asin": "B0031BRLTS"
|
"asin": "B0031BRLTS"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Die sieben Samurai",
|
"title": "Die sieben Samurai",
|
||||||
"originalTitle": "Shichinin no samurai",
|
"originalTitle": "Shichinin no samurai",
|
||||||
"asin": "B004N6XW3E",
|
"asin": "B004N6XW3E",
|
||||||
"imdb": "tt0047478"
|
"imdb": "tt0047478"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Das Schloß im Spinnwebwald",
|
"title": "Das Schloß im Spinnwebwald",
|
||||||
"originalTitle": "Kumonosu-jô",
|
"originalTitle": "Kumonosu-jô",
|
||||||
"asin": "B002S1PABS",
|
"asin": "B002S1PABS",
|
||||||
"imdb": "tt0050613"
|
"imdb": "tt0050613"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Die Verborgene Festung",
|
"title": "Die Verborgene Festung",
|
||||||
"originalTitle": "Kakushi-toride no san-akunin",
|
"originalTitle": "Kakushi-toride no san-akunin",
|
||||||
"asin": "B002ZWMR98",
|
"asin": "B002ZWMR98",
|
||||||
"imdb": "tt0051808"
|
"imdb": "tt0051808"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yojimbo – Der Leibwächter",
|
"title": "Yojimbo – Der Leibwächter",
|
||||||
"originalTitle": "Yôjinbô",
|
"originalTitle": "Yôjinbô",
|
||||||
"asin": "B002S1PADQ",
|
"asin": "B002S1PADQ",
|
||||||
"imdb": "tt0055630"
|
"imdb": "tt0055630"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Rashomon",
|
"title": "Rashomon",
|
||||||
"asin": "3866153198",
|
"asin": "3866153198",
|
||||||
"imdb": "tt0042876"
|
"imdb": "tt0042876"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Sanjuro",
|
"title": "Sanjuro",
|
||||||
"originalTitle": "Tsubaki Sanjûrô",
|
"originalTitle": "Tsubaki Sanjûrô",
|
||||||
"asin": "B0007PLFBG",
|
"asin": "B0007PLFBG",
|
||||||
"imdb": "tt0056443"
|
"imdb": "tt0056443"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kagemusha - Der Schatten des Kriegers",
|
"title": "Kagemusha - Der Schatten des Kriegers",
|
||||||
"originalTitle": "Kagemusha",
|
"originalTitle": "Kagemusha",
|
||||||
"cover": "/assets/images/recommendations/movies/kagemusha.jpg",
|
"cover": "/assets/images/recommendations/movies/kagemusha.jpg",
|
||||||
"asin": "B00008OX3W",
|
"asin": "B00008OX3W",
|
||||||
"imdb": "tt0080979"
|
"imdb": "tt0080979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ran",
|
"title": "Ran",
|
||||||
"asin": "B00030EJJA",
|
"asin": "B00030EJJA",
|
||||||
"imdb": "tt0089881"
|
"imdb": "tt0089881"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Last Samurai",
|
"title": "Last Samurai",
|
||||||
"originalTitle": "The Last Samurai",
|
"originalTitle": "The Last Samurai",
|
||||||
"asin": "B0001G6PZC",
|
"asin": "B0001G6PZC",
|
||||||
"imdb": "tt0325710"
|
"imdb": "tt0325710"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Lady Snowblood",
|
"title": "Lady Snowblood",
|
||||||
"originalTitle": "Shurayukihime",
|
"originalTitle": "Shurayukihime",
|
||||||
"asin": "B0006VBJPI",
|
"asin": "B0006VBJPI",
|
||||||
"imdb": "tt0158714"
|
"imdb": "tt0158714"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Zatoichi - Der blinde Samurai",
|
"title": "Zatoichi - Der blinde Samurai",
|
||||||
"originalTitle": "Zatôichi",
|
"originalTitle": "Zatôichi",
|
||||||
"asin": "B0006SN4W2",
|
"asin": "B0006SN4W2",
|
||||||
"imdb": "tt0363226"
|
"imdb": "tt0363226"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Samurai der Dämmerung",
|
"title": "Samurai der Dämmerung",
|
||||||
"originalTitle": "Tasogare Seibei",
|
"originalTitle": "Tasogare Seibei",
|
||||||
"asin": "B000L42W88",
|
"asin": "B000L42W88",
|
||||||
"imdb": "tt0351817"
|
"imdb": "tt0351817"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Samurai Fiction",
|
"title": "Samurai Fiction",
|
||||||
"originalTitle": "SF: Episode One",
|
"originalTitle": "SF: Episode One",
|
||||||
"asin": "B0001E3AM0",
|
"asin": "B0001E3AM0",
|
||||||
"imdb": "tt0170544"
|
"imdb": "tt0170544"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Lone Wolf & Cub",
|
"title": "Lone Wolf & Cub",
|
||||||
"originalTitle": "Kozure ôkami",
|
"originalTitle": "Kozure ôkami",
|
||||||
"asin": "B000C9CYF8"
|
"asin": "B000C9CYF8"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shogun",
|
"title": "Shogun",
|
||||||
"cover": "/assets/images/recommendations/movies/shogun-de.jpg",
|
"cover": "/assets/images/recommendations/movies/shogun-de.jpg",
|
||||||
"asin": "B0001BG4C6",
|
"asin": "B0001BG4C6",
|
||||||
"imdb": "tt0080274"
|
"imdb": "tt0080274"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hero",
|
"title": "Hero",
|
||||||
"originalTitle": "Ying xiong",
|
"originalTitle": "Ying xiong",
|
||||||
"asin": "B000JGW828",
|
"asin": "B000JGW828",
|
||||||
"imdb": "tt0299977"
|
"imdb": "tt0299977"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ghost Dog - Der Weg des Samurai",
|
"title": "Ghost Dog - Der Weg des Samurai",
|
||||||
"originalTitle": "Ghost Dog: The Way of the Samurai",
|
"originalTitle": "Ghost Dog: The Way of the Samurai",
|
||||||
"asin": "B00004U9Q9",
|
"asin": "B00004U9Q9",
|
||||||
"imdb": "tt0165798"
|
"imdb": "tt0165798"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "Vorwort",
|
"title": "Vorwort",
|
||||||
"slug": "vorwort"
|
"slug": "vorwort"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Einleitung",
|
"title": "Einleitung",
|
||||||
"slug": "ninjutsu"
|
"slug": "ninjutsu"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,347 +1,347 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "Geschichte",
|
"title": "Geschichte",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Ursprünge des Ninjutsu",
|
"title": "Ursprünge des Ninjutsu",
|
||||||
"slug": "urspruenge-des-ninjutsu"
|
"slug": "urspruenge-des-ninjutsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Entstehung der Ryū",
|
"title": "Entstehung der Ryū",
|
||||||
"slug": "entstehung-der-ryu"
|
"slug": "entstehung-der-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Berühmte Ninja",
|
"title": "Berühmte Ninja",
|
||||||
"slug": "beruehmte-ninja"
|
"slug": "beruehmte-ninja"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja-Biografien",
|
"title": "Ninja-Biografien",
|
||||||
"slug": "ninja-biographien"
|
"slug": "ninja-biographien"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Iga-Ryū",
|
"title": "Iga-Ryū",
|
||||||
"slug": "iga-ryu"
|
"slug": "iga-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kōga-Ryū",
|
"title": "Kōga-Ryū",
|
||||||
"slug": "koga-ryu"
|
"slug": "koga-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Iga no Ran",
|
"title": "Iga no Ran",
|
||||||
"slug": "iga-no-ran"
|
"slug": "iga-no-ran"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Invasion von Iga",
|
"title": "Invasion von Iga",
|
||||||
"slug": "invasion-von-iga"
|
"slug": "invasion-von-iga"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Niedergang",
|
"title": "Niedergang",
|
||||||
"slug": "niedergang"
|
"slug": "niedergang"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Moderne Geschichte",
|
"title": "Moderne Geschichte",
|
||||||
"slug": "moderne-geschichte"
|
"slug": "moderne-geschichte"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Organisation & Ausbildung",
|
"title": "Organisation & Ausbildung",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Organisation der Ryū",
|
"title": "Organisation der Ryū",
|
||||||
"slug": "organisation-der-ryu"
|
"slug": "organisation-der-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ausbildung der Ninja",
|
"title": "Ausbildung der Ninja",
|
||||||
"slug": "ausbildung-der-ninja"
|
"slug": "ausbildung-der-ninja"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kunoichi",
|
"title": "Kunoichi",
|
||||||
"slug": "kunoichi"
|
"slug": "kunoichi"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bansenshūkai",
|
"title": "Bansenshūkai",
|
||||||
"slug": "bansenshukai"
|
"slug": "bansenshukai"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Körperliches Training",
|
"title": "Körperliches Training",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Taijutsu",
|
"title": "Taijutsu",
|
||||||
"slug": "taijutsu"
|
"slug": "taijutsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kampfregeln",
|
"title": "Kampfregeln",
|
||||||
"slug": "kampfregeln"
|
"slug": "kampfregeln"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kampffaktoren",
|
"title": "Kampffaktoren",
|
||||||
"slug": "kampffaktoren"
|
"slug": "kampffaktoren"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jūnantaisō",
|
"title": "Jūnantaisō",
|
||||||
"slug": "junan-taiso"
|
"slug": "junan-taiso"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Trainingsfaktoren",
|
"title": "Trainingsfaktoren",
|
||||||
"slug": "trainingsfaktoren"
|
"slug": "trainingsfaktoren"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Körperwaffen",
|
"title": "Körperwaffen",
|
||||||
"slug": "koerperwaffen"
|
"slug": "koerperwaffen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Abhärtung",
|
"title": "Abhärtung",
|
||||||
"slug": "abhaertung"
|
"slug": "abhaertung"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Atemite",
|
"title": "Atemite",
|
||||||
"slug": "atemi-te"
|
"slug": "atemi-te"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kamae",
|
"title": "Kamae",
|
||||||
"slug": "kamae"
|
"slug": "kamae"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ukemi",
|
"title": "Ukemi",
|
||||||
"slug": "ukemi"
|
"slug": "ukemi"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi Iri",
|
"title": "Shinobi Iri",
|
||||||
"slug": "shinobi-iri"
|
"slug": "shinobi-iri"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Waffen & Werkzeuge",
|
"title": "Waffen & Werkzeuge",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Waffen",
|
"title": "Waffen",
|
||||||
"slug": "waffen"
|
"slug": "waffen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Wasserwerkzeuge",
|
"title": "Wasserwerkzeuge",
|
||||||
"slug": "wasserwerkzeuge"
|
"slug": "wasserwerkzeuge"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Einbruchswerkzeuge",
|
"title": "Einbruchswerkzeuge",
|
||||||
"slug": "einbruchswerkzeuge"
|
"slug": "einbruchswerkzeuge"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kletterwerkzeuge",
|
"title": "Kletterwerkzeuge",
|
||||||
"slug": "kletterwerkzeuge"
|
"slug": "kletterwerkzeuge"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Feuerwerkzeuge",
|
"title": "Feuerwerkzeuge",
|
||||||
"slug": "feuerwerkzeuge"
|
"slug": "feuerwerkzeuge"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninjakleidung",
|
"title": "Ninjakleidung",
|
||||||
"slug": "ninjakleidung"
|
"slug": "ninjakleidung"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Sonstige Ausrüstung",
|
"title": "Sonstige Ausrüstung",
|
||||||
"slug": "sonstige-ausruestung"
|
"slug": "sonstige-ausruestung"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Inrō – Reiseapotheke",
|
"title": "Inrō – Reiseapotheke",
|
||||||
"slug": "inro"
|
"slug": "inro"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Geistige Kräfte",
|
"title": "Geistige Kräfte",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Mikkyō",
|
"title": "Mikkyō",
|
||||||
"slug": "mikkyo"
|
"slug": "mikkyo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Sanmitsu",
|
"title": "Sanmitsu",
|
||||||
"slug": "sanmitsu"
|
"slug": "sanmitsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kuji-in",
|
"title": "Kuji-in",
|
||||||
"slug": "kuji-in"
|
"slug": "kuji-in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Godai",
|
"title": "Godai",
|
||||||
"slug": "godai"
|
"slug": "godai"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Gogyō",
|
"title": "Gogyō",
|
||||||
"slug": "gogyo"
|
"slug": "gogyo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tenchijin",
|
"title": "Tenchijin",
|
||||||
"slug": "tenchijin"
|
"slug": "tenchijin"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bewusstsein und Geist",
|
"title": "Bewusstsein und Geist",
|
||||||
"slug": "bewusstsein-und-geist"
|
"slug": "bewusstsein-und-geist"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Der Siebte Sinn",
|
"title": "Der Siebte Sinn",
|
||||||
"slug": "der-siebte-sinn"
|
"slug": "der-siebte-sinn"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Erleuchtung",
|
"title": "Erleuchtung",
|
||||||
"slug": "erleuchtung"
|
"slug": "erleuchtung"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Daoismus",
|
"title": "Daoismus",
|
||||||
"slug": "daoismus"
|
"slug": "daoismus"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Strategie & Taktik",
|
"title": "Strategie & Taktik",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Goton pō",
|
"title": "Goton pō",
|
||||||
"slug": "gotonpo"
|
"slug": "gotonpo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Onshin jutsu",
|
"title": "Onshin jutsu",
|
||||||
"slug": "onshinjutsu"
|
"slug": "onshinjutsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shichi hō de",
|
"title": "Shichi hō de",
|
||||||
"slug": "shichi-ho-de"
|
"slug": "shichi-ho-de"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Chōhō",
|
"title": "Chōhō",
|
||||||
"slug": "choho"
|
"slug": "choho"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Heihō",
|
"title": "Heihō",
|
||||||
"slug": "heiho"
|
"slug": "heiho"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bōryaku",
|
"title": "Bōryaku",
|
||||||
"slug": "bo-ryaku"
|
"slug": "bo-ryaku"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tōiri",
|
"title": "Tōiri",
|
||||||
"slug": "toiri"
|
"slug": "toiri"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Chi kai ri",
|
"title": "Chi kai ri",
|
||||||
"slug": "chikairi"
|
"slug": "chikairi"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Das Erbe der Ninja",
|
"title": "Das Erbe der Ninja",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Takamatsu Toshitsugu",
|
"title": "Takamatsu Toshitsugu",
|
||||||
"slug": "takamatsu-toshitsugu"
|
"slug": "takamatsu-toshitsugu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hatsumi Masaaki",
|
"title": "Hatsumi Masaaki",
|
||||||
"slug": "hatsumi-masaaki"
|
"slug": "hatsumi-masaaki"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bujinkan",
|
"title": "Bujinkan",
|
||||||
"slug": "bujinkan"
|
"slug": "bujinkan"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Richtlinien des Bujinkan",
|
"title": "Richtlinien des Bujinkan",
|
||||||
"slug": "richtlinien-des-bujinkan"
|
"slug": "richtlinien-des-bujinkan"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Togakure-Ryū",
|
"title": "Togakure-Ryū",
|
||||||
"slug": "togakure-ryu"
|
"slug": "togakure-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Gyokko-Ryū",
|
"title": "Gyokko-Ryū",
|
||||||
"slug": "gyokko-ryu"
|
"slug": "gyokko-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kukishinden-Ryū",
|
"title": "Kukishinden-Ryū",
|
||||||
"slug": "kukishinden-ryu"
|
"slug": "kukishinden-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinden-fudo-Ryū",
|
"title": "Shinden-fudo-Ryū",
|
||||||
"slug": "shinden-fudo-ryu"
|
"slug": "shinden-fudo-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Gyokushin-Ryū",
|
"title": "Gyokushin-Ryū",
|
||||||
"slug": "gyokushin-ryu"
|
"slug": "gyokushin-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Koto-Ryū",
|
"title": "Koto-Ryū",
|
||||||
"slug": "koto-ryu"
|
"slug": "koto-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Takagi-yoshin-Ryū",
|
"title": "Takagi-yoshin-Ryū",
|
||||||
"slug": "takagi-yoshin-ryu"
|
"slug": "takagi-yoshin-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Gikan-Ryū",
|
"title": "Gikan-Ryū",
|
||||||
"slug": "gikan-ryu"
|
"slug": "gikan-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kumogakure-Ryū",
|
"title": "Kumogakure-Ryū",
|
||||||
"slug": "kumogakure-ryu"
|
"slug": "kumogakure-ryu"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Regeln & Philosophie",
|
"title": "Regeln & Philosophie",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Essenz des Ninjutsu",
|
"title": "Essenz des Ninjutsu",
|
||||||
"slug": "essenz-des-ninjutsu"
|
"slug": "essenz-des-ninjutsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Die Regeln der Ninja",
|
"title": "Die Regeln der Ninja",
|
||||||
"slug": "die-regeln-der-ninja"
|
"slug": "die-regeln-der-ninja"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Die 5 Gebote der Ninja",
|
"title": "Die 5 Gebote der Ninja",
|
||||||
"slug": "die-5-gebote-der-ninja"
|
"slug": "die-5-gebote-der-ninja"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "18 Trainingsebenen",
|
"title": "18 Trainingsebenen",
|
||||||
"slug": "18-trainingsebenen"
|
"slug": "18-trainingsebenen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninpō Sanjūrokkei",
|
"title": "Ninpō Sanjūrokkei",
|
||||||
"slug": "ninpo-sanjurokkei"
|
"slug": "ninpo-sanjurokkei"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja no Hachimon",
|
"title": "Ninja no Hachimon",
|
||||||
"slug": "ninja-no-hachimon"
|
"slug": "ninja-no-hachimon"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Anhänge",
|
"title": "Anhänge",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Chronologie",
|
"title": "Chronologie",
|
||||||
"slug": "chronologie"
|
"slug": "chronologie"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Downloads",
|
"title": "Downloads",
|
||||||
"slug": "downloads"
|
"slug": "downloads"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Empfehlungen",
|
"title": "Empfehlungen",
|
||||||
"slug": "empfehlungen"
|
"slug": "empfehlungen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Glossar",
|
"title": "Glossar",
|
||||||
"slug": "glossar"
|
"slug": "glossar"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kolophon",
|
"title": "Kolophon",
|
||||||
"slug": "kolophon"
|
"slug": "kolophon"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,214 +1,214 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "Gyokko Ryû Taijutsu no Kata: Bujinkan Budô Denshô",
|
"title": "Gyokko Ryû Taijutsu no Kata: Bujinkan Budô Denshô",
|
||||||
"cover": "/assets/images/recommendations/books/gyokko-ryu-taijutsu-no-kata-en.jpg",
|
"cover": "/assets/images/recommendations/books/gyokko-ryu-taijutsu-no-kata-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70154"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70154"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kukishinden Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
"title": "Kukishinden Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
||||||
"cover": "/assets/images/recommendations/books/kukishinden-ryu-taijutsu-no-kata-en.jpg",
|
"cover": "/assets/images/recommendations/books/kukishinden-ryu-taijutsu-no-kata-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70161"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70161"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Togakure Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
"title": "Togakure Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
||||||
"cover": "/assets/images/recommendations/books/togakure-ryu-taijutsu-no-kata-en.jpg",
|
"cover": "/assets/images/recommendations/books/togakure-ryu-taijutsu-no-kata-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70160"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70160"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kotô Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
"title": "Kotô Ryû Taijutsu no Kata: Bujinkan Budô Densho",
|
||||||
"cover": "/assets/images/recommendations/books/koto-ryu-taijutsu-no-kata-en.jpg",
|
"cover": "/assets/images/recommendations/books/koto-ryu-taijutsu-no-kata-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70165"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70165"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinden-Fudo Ryû Jûtaijutsu no kata: Bujinkan Budô densho",
|
"title": "Shinden-Fudo Ryû Jûtaijutsu no kata: Bujinkan Budô densho",
|
||||||
"cover": "/assets/images/recommendations/books/shinden-fudo-ryu-jutaijutsu-no-kata-en.jpg",
|
"cover": "/assets/images/recommendations/books/shinden-fudo-ryu-jutaijutsu-no-kata-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70172"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70172"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Takagi-Yôshin-Ryû Taijutsu no Kata: Bujinkan Budô Denshô",
|
"title": "Takagi-Yôshin-Ryû Taijutsu no Kata: Bujinkan Budô Denshô",
|
||||||
"cover": "/assets/images/recommendations/books/takagi-yoshin-ryu-taijutsu-no-kata-en.jpg",
|
"cover": "/assets/images/recommendations/books/takagi-yoshin-ryu-taijutsu-no-kata-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70176"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70176"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ten Ryaku no Maki: The Principles of Heaven",
|
"title": "Ten Ryaku no Maki: The Principles of Heaven",
|
||||||
"cover": "/assets/images/recommendations/books/ten-ryaku-no-maki-en.jpg",
|
"cover": "/assets/images/recommendations/books/ten-ryaku-no-maki-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70180"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70180"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Chi Ryaku no Maki: The Principles of Earth",
|
"title": "Chi Ryaku no Maki: The Principles of Earth",
|
||||||
"cover": "/assets/images/recommendations/books/chi-ryaku-no-maki-en.jpg",
|
"cover": "/assets/images/recommendations/books/chi-ryaku-no-maki-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70182"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70182"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jin Ryaku no Maki: The Principles of Human Being",
|
"title": "Jin Ryaku no Maki: The Principles of Human Being",
|
||||||
"cover": "/assets/images/recommendations/books/jin-ryaku-no-maki-en.jpg",
|
"cover": "/assets/images/recommendations/books/jin-ryaku-no-maki-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70185"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70185"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Way of the Ninja: Secret Techniques",
|
"title": "The Way of the Ninja: Secret Techniques",
|
||||||
"asin": "1568365918"
|
"asin": "1568365918"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Art of Japanese Sword Fighting: Secrets of the Samurai",
|
"title": "Art of Japanese Sword Fighting: Secrets of the Samurai",
|
||||||
"asin": "1568365926"
|
"asin": "1568365926"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Advanced Stick Fighting",
|
"title": "Advanced Stick Fighting",
|
||||||
"asin": "1568365535"
|
"asin": "1568365535"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Unarmed Fighting Techniques of the Samurai",
|
"title": "Unarmed Fighting Techniques of the Samurai",
|
||||||
"asin": "1568365322"
|
"asin": "1568365322"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Secrets from the Ninja Grandmaster",
|
"title": "Secrets from the Ninja Grandmaster",
|
||||||
"asin": "1581603754"
|
"asin": "1581603754"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Essence of Ninjutsu: The Nine Traditions",
|
"title": "Essence of Ninjutsu: The Nine Traditions",
|
||||||
"asin": "0809247240"
|
"asin": "0809247240"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Grandmaster's Book of Ninja Training",
|
"title": "The Grandmaster's Book of Ninja Training",
|
||||||
"asin": "0809246295"
|
"asin": "0809246295"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninjutsu. History and Tradition",
|
"title": "Ninjutsu. History and Tradition",
|
||||||
"asin": "0865680272"
|
"asin": "0865680272"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Understand? Good Play!",
|
"title": "Understand? Good Play!",
|
||||||
"cover": "/assets/images/recommendations/books/understand-good-play.jpg",
|
"cover": "/assets/images/recommendations/books/understand-good-play.jpg",
|
||||||
"asin": "B00RWSJEGO"
|
"asin": "B00RWSJEGO"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Stick Fighting: Techniques of Self-Defense",
|
"title": "Stick Fighting: Techniques of Self-Defense",
|
||||||
"asin": "1568364997"
|
"asin": "1568364997"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja: The Invisible Assassins",
|
"title": "Ninja: The Invisible Assassins",
|
||||||
"asin": "089750030X"
|
"asin": "089750030X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 1: Spirit of the Shadow Warrior ",
|
"title": "Ninja 1: Spirit of the Shadow Warrior ",
|
||||||
"asin": "0897500733"
|
"asin": "0897500733"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 2: Warrior Ways of Enlightenment",
|
"title": "Ninja 2: Warrior Ways of Enlightenment",
|
||||||
"asin": "0897500776"
|
"asin": "0897500776"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 3: Warrior Path of Togakure",
|
"title": "Ninja 3: Warrior Path of Togakure",
|
||||||
"asin": "0897500903"
|
"asin": "0897500903"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 4: Legacy of the Night Warrior",
|
"title": "Ninja 4: Legacy of the Night Warrior",
|
||||||
"asin": "0897501020"
|
"asin": "0897501020"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 5: Lore of the Shinobi Warrior",
|
"title": "Ninja 5: Lore of the Shinobi Warrior",
|
||||||
"asin": "0897501233"
|
"asin": "0897501233"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja 6: Secret Scrolls of the Warrior Sage",
|
"title": "Ninja 6: Secret Scrolls of the Warrior Sage",
|
||||||
"asin": "089750156X"
|
"asin": "089750156X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Book of Ninja: The Bansenshukai",
|
"title": "The Book of Ninja: The Bansenshukai",
|
||||||
"asin": "1780284934"
|
"asin": "1780284934"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "True Path of the Ninja",
|
"title": "True Path of the Ninja",
|
||||||
"asin": "4805314397"
|
"asin": "4805314397"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Ninpiden - True Ninja Traditions",
|
"title": "The Ninpiden - True Ninja Traditions",
|
||||||
"asin": "1604818301"
|
"asin": "1604818301"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Secret Traditions of the Shinobi",
|
"title": "The Secret Traditions of the Shinobi",
|
||||||
"asin": "1583944354"
|
"asin": "1583944354"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kokoro no Katachi: The Image of the Heart",
|
"title": "Kokoro no Katachi: The Image of the Heart",
|
||||||
"asin": "B07MBFL8NB"
|
"asin": "B07MBFL8NB"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Art of Life and Death: Lessons in Budo from a Ninja Master",
|
"title": "The Art of Life and Death: Lessons in Budo from a Ninja Master",
|
||||||
"asin": "080484867X"
|
"asin": "080484867X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Ninja and Their Secret Fighting Art",
|
"title": "The Ninja and Their Secret Fighting Art",
|
||||||
"asin": "B006OO487C"
|
"asin": "B006OO487C"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Mystic Arts Of The Ninja",
|
"title": "The Mystic Arts Of The Ninja",
|
||||||
"asin": "0809253437"
|
"asin": "0809253437"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja: Unmasking the Myth",
|
"title": "Ninja: Unmasking the Myth",
|
||||||
"asin": "B07D56RNXP"
|
"asin": "B07D56RNXP"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja AD 1460-1650",
|
"title": "Ninja AD 1460-1650",
|
||||||
"asin": "1841765252"
|
"asin": "1841765252"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Art of War",
|
"title": "The Art of War",
|
||||||
"asin": "081331951X"
|
"asin": "081331951X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Book of Five Rings",
|
"title": "The Book of Five Rings",
|
||||||
"asin": "1935785974"
|
"asin": "1935785974"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hagakure",
|
"title": "Hagakure",
|
||||||
"asin": "4805311983"
|
"asin": "4805311983"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Life-Giving Sword",
|
"title": "The Life-Giving Sword",
|
||||||
"asin": "1590309901"
|
"asin": "1590309901"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bushido",
|
"title": "Bushido",
|
||||||
"asin": "4805314893"
|
"asin": "4805314893"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Engaging Japanese Philosophy",
|
"title": "Engaging Japanese Philosophy",
|
||||||
"asin": "0824874072"
|
"asin": "0824874072"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Craft of the Japanese Sword",
|
"title": "The Craft of the Japanese Sword",
|
||||||
"asin": "087011798X"
|
"asin": "087011798X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Meifu Shinkage Ryû: Fundô kusarijutsu - Shurikenjutsu",
|
"title": "Meifu Shinkage Ryû: Fundô kusarijutsu - Shurikenjutsu",
|
||||||
"cover": "/assets/images/recommendations/books/meifu-shinkage-ryu-en.jpg",
|
"cover": "/assets/images/recommendations/books/meifu-shinkage-ryu-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70183"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70183"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Takamatsu Toshitsugu: The Last Shinobi",
|
"title": "Takamatsu Toshitsugu: The Last Shinobi",
|
||||||
"cover": "/assets/images/recommendations/books/takamatsu-toshitsugu-en.jpg",
|
"cover": "/assets/images/recommendations/books/takamatsu-toshitsugu-en.jpg",
|
||||||
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70002"
|
"link": "https://www.tengu-publishing.de/en/index.php?site=artikel&artikelnr=70002"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja Attack!",
|
"title": "Ninja Attack!",
|
||||||
"asin": "4805312181"
|
"asin": "4805312181"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bruce Lee: The Art of Expressing the Human Body",
|
"title": "Bruce Lee: The Art of Expressing the Human Body",
|
||||||
"asin": "0804831297"
|
"asin": "0804831297"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Dao De Jing",
|
"title": "Dao De Jing",
|
||||||
"asin": "0520242211"
|
"asin": "0520242211"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Book of Chuang Tzu",
|
"title": "The Book of Chuang Tzu",
|
||||||
"asin": "014045537X"
|
"asin": "014045537X"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tao: The Watercourse Way",
|
"title": "Tao: The Watercourse Way",
|
||||||
"asin": "0394733118"
|
"asin": "0394733118"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -3,104 +3,87 @@ const movies = require('./movies.json');
|
|||||||
const glossary = require('./glossary.json');
|
const glossary = require('./glossary.json');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
homepage: {
|
homepage: {
|
||||||
intro:
|
intro: 'This is 木隠 (jap. *kogakure*, <q>Hidden behind leaves and trees.</q>), a collection of texts about Ninja and Ninjutsu that I started in 1999. Over the years more and more pages, pictures and illustrations were added until finally this book came out of it.',
|
||||||
'This is 木隠 (jap. *kogakure*, <q>Hidden behind leaves and trees.</q>), a collection of texts about Ninja and Ninjutsu that I started in 1999. Over the years more and more pages, pictures and illustrations were added until finally this book came out of it.',
|
tocHeadline: 'Table of Contents',
|
||||||
tocHeadline: 'Table of Contents',
|
},
|
||||||
},
|
downloads: {
|
||||||
downloads: {
|
intro: 'Here you can download the online book as an eBook, 3D models of weapons and tools, and a ninja font.',
|
||||||
intro:
|
font: {
|
||||||
'Here you can download the online book as an eBook, 3D models of weapons and tools, and a ninja font.',
|
headline: 'Iga Ninja Font',
|
||||||
font: {
|
text: 'Many years ago, the Iga Ninja Museum published an image of an Iga Ninja cipher on their website. I developed a font from it, which can be downloaded here.',
|
||||||
headline: 'Iga Ninja Font',
|
more: 'View the Font on GitHub',
|
||||||
text:
|
download: 'Download Font',
|
||||||
'Many years ago, the Iga Ninja Museum published an image of an Iga Ninja cipher on their website. I developed a font from it, which can be downloaded here.',
|
},
|
||||||
more: 'View the Font on GitHub',
|
cgi: {
|
||||||
download: 'Download Font',
|
headline: '3D Models of Ninja Weapons and Tools',
|
||||||
},
|
text: 'For the first version of this website I created 3D models of weapons and tools, which I later converted to `stl` format. The models can be viewed directly in the browser on GitHub and viewed from all sides.',
|
||||||
cgi: {
|
more: 'View Weapons and Tools on GitHub',
|
||||||
headline: '3D Models of Ninja Weapons and Tools',
|
},
|
||||||
text:
|
book: {
|
||||||
'For the first version of this website I created 3D models of weapons and tools, which I later converted to `stl` format. The models can be viewed directly in the browser on GitHub and viewed from all sides.',
|
headline: 'The Book',
|
||||||
more: 'View Weapons and Tools on GitHub',
|
text: 'The content of this online book is available for **free** download as an eBook.',
|
||||||
},
|
pdf: 'PDF',
|
||||||
book: {
|
epub: 'EPUB',
|
||||||
headline: 'The Book',
|
mobi: 'MOBI',
|
||||||
text:
|
},
|
||||||
'The content of this online book is available for **free** download as an eBook.',
|
},
|
||||||
pdf: 'PDF',
|
colophon: {
|
||||||
epub: 'EPUB',
|
intro: 'This is 木隠. Since 1999 you can read articles, collections of texts and translations on topics related to the Japanese shadow warriors and spies, the Ninja, and their martial art Ninjutsu.\n\nThe idea for this was developed and implemented by Stefan Imhoff, a designer, developer and martial artist from Wolfsburg (today from Hamburg).',
|
||||||
mobi: 'MOBI',
|
meaning: {
|
||||||
},
|
headline: 'What Does 木隠 Mean?',
|
||||||
},
|
text: 'The name *kogakure* (木隠) is Japanese and literally means translated something like <q>Hidden behind leaves and trees</q>.\n\nI got the ideas for this name in reference to the book of the Samurai Tsunetomo Yamamoto, <cite>Hagakure</cite> (<q>Hidden under leaves</q>) and the oldest school in the Bujinkan, <cite>Togakure</cite> (<q>Hidden behind a door</q>).',
|
||||||
colophon: {
|
},
|
||||||
intro:
|
why: {
|
||||||
'This is 木隠. Since 1999 you can read articles, collections of texts and translations on topics related to the Japanese shadow warriors and spies, the Ninja, and their martial art Ninjutsu.\n\nThe idea for this was developed and implemented by Stefan Imhoff, a designer, developer and martial artist from Wolfsburg (today from Hamburg).',
|
headline: 'Why Does This Book Exist?',
|
||||||
meaning: {
|
text: 'Since the beginning of the 90s, I probably first came across Ninjutsu through the Teenage Mutant Hero Turtles, and I have been interested in the Ninja and their world of ideas.\n\nAt that time, the Bujinkan was hard to find in Germany, and it was almost impossible to find a training opportunity. The specialist literature that was available was also more than poor.\n\nIn the search for knowledge, knowledge and information, a collection of notes accumulated over time, which was processed in this book.\n\nThis book does not claim to be complete, nor does it to be absolute, verifiable, historical evidence. It should help all *bugeisha* (warriors) to learn more about the wisdom of this thousand-year-old art.',
|
||||||
headline: 'What Does 木隠 Mean?',
|
},
|
||||||
text:
|
contact: {
|
||||||
'The name *kogakure* (木隠) is Japanese and literally means translated something like <q>Hidden behind leaves and trees</q>.\n\nI got the ideas for this name in reference to the book of the Samurai Tsunetomo Yamamoto, <cite>Hagakure</cite> (<q>Hidden under leaves</q>) and the oldest school in the Bujinkan, <cite>Togakure</cite> (<q>Hidden behind a door</q>).',
|
headline: 'Contact',
|
||||||
},
|
text: 'You can contact me via my email address or various social media platforms on my <a href="https://www.stefanimhoff.de/about/#contact" rel="nofollow noopener noreferrer external" target="_blank">website</a>.\n\nPlease check first if your question has already been answered in the FAQ. I don’t always have the time to respond to every question, but I promise I’ll read every message!',
|
||||||
why: {
|
},
|
||||||
headline: 'Why Does This Book Exist?',
|
faq: {
|
||||||
text:
|
headline: 'FAQ',
|
||||||
'Since the beginning of the 90s, I probably first came across Ninjutsu through the Teenage Mutant Hero Turtles, and I have been interested in the Ninja and their world of ideas.\n\nAt that time, the Bujinkan was hard to find in Germany, and it was almost impossible to find a training opportunity. The specialist literature that was available was also more than poor.\n\nIn the search for knowledge, knowledge and information, a collection of notes accumulated over time, which was processed in this book.\n\nThis book does not claim to be complete, nor does it to be absolute, verifiable, historical evidence. It should help all *bugeisha* (warriors) to learn more about the wisdom of this thousand-year-old art.',
|
subheadline1: 'Where Can I Train?',
|
||||||
},
|
text1: 'The best way to find a Dōjō for Bujinkan Budō Taijutsu is to use a search engine to search for **Bujinkan** in connection with a city near you. But certainly there will not be as good coverage with Dōjō as in Judo or Karate. There is a very extensive [dojo list](http://www.bujinkan-deutschland.de/dojoliste-bujinkan.html) on the Bujinkai site.\n\nI *don’t* have my own Dōjō and offer *no* training. Kogakure is not a martial art style, it is the name of the book.',
|
||||||
contact: {
|
subheadline2: 'What Books Are There?',
|
||||||
headline: 'Contact',
|
text2: 'The selection of specialist books on Ninja and Ninjutsu is very large. However, most of it is in Japanese or English. It’s best to just take a look at my [recommendations](/en/recommendations/).',
|
||||||
text:
|
subheadline3: 'Which Books Can You Recommend Me?',
|
||||||
'You can contact me via my email address or various social media platforms on my <a href="https://www.stefanimhoff.de/about/#contact" rel="nofollow noopener noreferrer external" target="_blank">website</a>.\n\nPlease check first if your question has already been answered in the FAQ. I don’t always have the time to respond to every question, but I promise I’ll read every message!',
|
text3: 'First I recommend the books of Dr. *Masaaki Hatsumi*. *Andrew Adams* book <cite>Ninja</cite> is good to get an overview. *Stephen K. Hayes* has a lot of philosophical aspects in his books (e.g. Tendai, Shugendō, Mikkyō), since this interests him personally, he has even been appointed a monk of Tendai, just like Takamatsu.',
|
||||||
},
|
subheadline4: 'Where Can I Get Books on Ninjutsu?',
|
||||||
faq: {
|
text4: 'Ever since book retailers such as [Amazon](https://www.amazon.com/?&_encoding=UTF8&tag=kogakure-20&linkCode=ur2&linkId=98ada809b8f08559fbbd5bd54df01f2e&camp=1789&creative=9325) exist, it should no longer be a problem to get books from abroad. On the [recommendations](/en/recommendations/) page I have compiled a list of books and films that I can recommend.',
|
||||||
headline: 'FAQ',
|
subheadline5: 'I Want to Link to a Page. What Is to Be Considered?',
|
||||||
subheadline1: 'Where Can I Train?',
|
text5: 'It is generally prohibited to implement the link in a frame in which the website is no longer recognizable as the author. You are welcome to link to any page in this domain.\n\nImages, photos and other media may *not be directly linked*, but may be downloaded and placed on your own servers (as long as the rules of the [Creative Commons License](http://creativecommons.org/licenses/by-nc/3.0/deed.de) are complied with).',
|
||||||
text1:
|
subheadline6: 'Are Translations of the Texts Allowed?',
|
||||||
'The best way to find a Dōjō for Bujinkan Budō Taijutsu is to use a search engine to search for **Bujinkan** in connection with a city near you. But certainly there will not be as good coverage with Dōjō as in Judo or Karate. There is a very extensive [dojo list](http://www.bujinkan-deutschland.de/dojoliste-bujinkan.html) on the Bujinkai site.\n\nI *don’t* have my own Dōjō and offer *no* training. Kogakure is not a martial art style, it is the name of the book.',
|
text6: 'Translations of the texts into other languages are generally permitted as long as the text is accompanied by a reference to the source. Please send me a link where the translation will be published. If you want to translate the website in a different language and hosted on it’s original location, please contact me.\n\nCommercial use in any form is only possible with written permission.',
|
||||||
subheadline2: 'What Books Are There?',
|
},
|
||||||
text2:
|
donation: {
|
||||||
'The selection of specialist books on Ninja and Ninjutsu is very large. However, most of it is in Japanese or English. It’s best to just take a look at my [recommendations](/en/recommendations/).',
|
headline: 'Donations',
|
||||||
subheadline3: 'Which Books Can You Recommend Me?',
|
text: 'This book is free, ad-free and has cost me many hundreds of hours of work over time.\n\nIf you enjoyed it, I welcome praise and recognition. You can support me by buying something from my [recommendations](/en/recommendations/) or by making a small donation.',
|
||||||
text3:
|
paypal: 'Donate With PayPal',
|
||||||
'First I recommend the books of Dr. *Masaaki Hatsumi*. *Andrew Adams* book <cite>Ninja</cite> is good to get an overview. *Stephen K. Hayes* has a lot of philosophical aspects in his books (e.g. Tendai, Shugendō, Mikkyō), since this interests him personally, he has even been appointed a monk of Tendai, just like Takamatsu.',
|
},
|
||||||
subheadline4: 'Where Can I Get Books on Ninjutsu?',
|
tech: {
|
||||||
text4:
|
headline: 'Technical Information',
|
||||||
'Ever since book retailers such as [Amazon](https://www.amazon.com/?&_encoding=UTF8&tag=kogakure-20&linkCode=ur2&linkId=98ada809b8f08559fbbd5bd54df01f2e&camp=1789&creative=9325) exist, it should no longer be a problem to get books from abroad. On the [recommendations](/en/recommendations/) page I have compiled a list of books and films that I can recommend.',
|
text: 'Anyone who has made it this far is probably also interested in the technical details on this page.\n\nAll work was created on an [Apple](https://www.apple.com/de/) computer, the graphics were designed with [Affinity Photo](https://affinity.serif.com/de/photo/), and [Affinity Designer](https://affinity.serif.com/de/designer/), all templates and code segments [Neovim](https://neovim.io/) were written by hand and versioned with [Git](https://git-scm.com/). The pages are generated with [Eleventy](https://www.11ty.dev/) (11ty) and the development environment and deployment are automated with [Gulp.js](https://gulpjs.com/).\n\nThe source code of this website is available to everyone on [GitHub](https://github.com/kogakure/website-11ty-kogakure.de). Errors, improvements or additions can be reported there as [Issue](https://github.com/kogakure/website-11ty-kogakure.de/issues) or by email.',
|
||||||
subheadline5: 'I Want to Link to a Page. What Is to Be Considered?',
|
},
|
||||||
text5:
|
},
|
||||||
'It is generally prohibited to implement the link in a frame in which the website is no longer recognizable as the author. You are welcome to link to any page in this domain.\n\nImages, photos and other media may *not be directly linked*, but may be downloaded and placed on your own servers (as long as the rules of the [Creative Commons License](http://creativecommons.org/licenses/by-nc/3.0/deed.de) are complied with).',
|
recommendations: {
|
||||||
subheadline6: 'Are Translations of the Texts Allowed?',
|
intro: `I recommend **${books.length}** books and **${movies.length}** movies about Ninja, Samurai, Bujutsu, martial arts, philosophy and Asia. Not all books are always available, some can only be found in antiquarian bookshops. Likewise, some of the films are hard to find.`,
|
||||||
text6:
|
books: {
|
||||||
'Translations of the texts into other languages are generally permitted as long as the text is accompanied by a reference to the source. Please send me a link where the translation will be published. If you want to translate the website in a different language and hosted on it’s original location, please contact me.\n\nCommercial use in any form is only possible with written permission.',
|
headline: 'Books',
|
||||||
},
|
},
|
||||||
donation: {
|
movies: {
|
||||||
headline: 'Donations',
|
headline: 'Movies',
|
||||||
text:
|
},
|
||||||
'This book is free, ad-free and has cost me many hundreds of hours of work over time.\n\nIf you enjoyed it, I welcome praise and recognition. You can support me by buying something from my [recommendations](/en/recommendations/) or by making a small donation.',
|
},
|
||||||
paypal: 'Donate With PayPal',
|
glossary: {
|
||||||
},
|
intro: `This glossary contains **${glossary.length}** entries related to Ninjutsu, martial arts, and Japanese history. All words are Japanese unless otherwise noted.`,
|
||||||
tech: {
|
chinese: 'Chinese',
|
||||||
headline: 'Technical Information',
|
sanskrit: 'Sanskrit',
|
||||||
text:
|
},
|
||||||
'Anyone who has made it this far is probably also interested in the technical details on this page.\n\nAll work was created on an [Apple](https://www.apple.com/de/) computer, the graphics were designed with [Affinity Photo](https://affinity.serif.com/de/photo/), and [Affinity Designer](https://affinity.serif.com/de/designer/), all templates and code segments [Neovim](https://neovim.io/) were written by hand and versioned with [Git](https://git-scm.com/). The pages are generated with [Eleventy](https://www.11ty.dev/) (11ty) and the development environment and deployment are automated with [Gulp.js](https://gulpjs.com/).\n\nThe source code of this website is available to everyone on [GitHub](https://github.com/kogakure/website-11ty-kogakure.de). Errors, improvements or additions can be reported there as [Issue](https://github.com/kogakure/website-11ty-kogakure.de/issues) or by email.',
|
homeLink: 'Back to Homepage',
|
||||||
},
|
themeToggle: 'Switch color theme',
|
||||||
},
|
upLink: 'Back to top',
|
||||||
recommendations: {
|
creditAuthor: 'Text:',
|
||||||
intro: `I recommend **${books.length}** books and **${movies.length}** movies about Ninja, Samurai, Bujutsu, martial arts, philosophy and Asia. Not all books are always available, some can only be found in antiquarian bookshops. Likewise, some of the films are hard to find.`,
|
creditTranslator: 'Translation:',
|
||||||
books: {
|
|
||||||
headline: 'Books',
|
|
||||||
},
|
|
||||||
movies: {
|
|
||||||
headline: 'Movies',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
glossary: {
|
|
||||||
intro: `This glossary contains **${glossary.length}** entries related to Ninjutsu, martial arts, and Japanese history. All words are Japanese unless otherwise noted.`,
|
|
||||||
chinese: 'Chinese',
|
|
||||||
sanskrit: 'Sanskrit',
|
|
||||||
},
|
|
||||||
homeLink: 'Back to Homepage',
|
|
||||||
themeToggle: 'Switch color theme',
|
|
||||||
upLink: 'Back to top',
|
|
||||||
creditAuthor: 'Text:',
|
|
||||||
creditTranslator: 'Translation:',
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,144 +1,144 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono",
|
"title": "Shinobi no Mono",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-1.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-1.jpg",
|
||||||
"imdb": "tt0164882"
|
"imdb": "tt0164882"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Zoku Shinobi no Mono",
|
"title": "Zoku Shinobi no Mono",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-2.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-2.jpg",
|
||||||
"imdb": "tt0200310"
|
"imdb": "tt0200310"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shin Shinobi no Mono",
|
"title": "Shin Shinobi no Mono",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-3.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-3.jpg",
|
||||||
"imdb": "tt0187501"
|
"imdb": "tt0187501"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono: Kirigakure Saizo",
|
"title": "Shinobi no Mono: Kirigakure Saizo",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-4.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-4.jpg",
|
||||||
"imdb": "tt0224098"
|
"imdb": "tt0224098"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono: Zoku Kirigakure Saizo",
|
"title": "Shinobi no Mono: Zoku Kirigakure Saizo",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-5.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-5.jpg",
|
||||||
"imdb": "tt0199023"
|
"imdb": "tt0199023"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono: Iga-yashiki",
|
"title": "Shinobi no Mono: Iga-yashiki",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-6.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-6.jpg",
|
||||||
"imdb": "tt0224097"
|
"imdb": "tt0224097"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi no Mono: Shin kirigakure Saizo",
|
"title": "Shinobi no Mono: Shin kirigakure Saizo",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-7.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-7.jpg",
|
||||||
"imdb": "tt0058592"
|
"imdb": "tt0058592"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinsho: Shinobi no Mono",
|
"title": "Shinsho: Shinobi no Mono",
|
||||||
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-8.jpg",
|
"cover": "/assets/images/recommendations/movies/shinobi-no-mono-8.jpg",
|
||||||
"imdb": "tt0201924"
|
"imdb": "tt0201924"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kurosawa: The Samurai Collection",
|
"title": "Kurosawa: The Samurai Collection",
|
||||||
"asin": "B00LA1ZV52"
|
"asin": "B00LA1ZV52"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Seven Samurai",
|
"title": "Seven Samurai",
|
||||||
"originalTitle": "Shichinin no samurai",
|
"originalTitle": "Shichinin no samurai",
|
||||||
"asin": "B003KGBISY",
|
"asin": "B003KGBISY",
|
||||||
"imdb": "tt0047478"
|
"imdb": "tt0047478"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Throne of Blood",
|
"title": "Throne of Blood",
|
||||||
"originalTitle": "Kumonosu-jô",
|
"originalTitle": "Kumonosu-jô",
|
||||||
"asin": "B00XVHJWEE",
|
"asin": "B00XVHJWEE",
|
||||||
"imdb": "tt0050613"
|
"imdb": "tt0050613"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Hidden Fortress",
|
"title": "The Hidden Fortress",
|
||||||
"originalTitle": "Kakushi-toride no san-akunin",
|
"originalTitle": "Kakushi-toride no san-akunin",
|
||||||
"asin": "B019WMTY58",
|
"asin": "B019WMTY58",
|
||||||
"imdb": "tt0051808"
|
"imdb": "tt0051808"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Yojimbo",
|
"title": "Yojimbo",
|
||||||
"originalTitle": "Yôjinbô",
|
"originalTitle": "Yôjinbô",
|
||||||
"asin": "B00319HT9W",
|
"asin": "B00319HT9W",
|
||||||
"imdb": "tt0055630"
|
"imdb": "tt0055630"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Sanjuro",
|
"title": "Sanjuro",
|
||||||
"originalTitle": "Tsubaki Sanjûrô",
|
"originalTitle": "Tsubaki Sanjûrô",
|
||||||
"asin": "B00319HT9M",
|
"asin": "B00319HT9M",
|
||||||
"imdb": "tt0056443"
|
"imdb": "tt0056443"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Rashomon",
|
"title": "Rashomon",
|
||||||
"asin": "B008Y5OWO8",
|
"asin": "B008Y5OWO8",
|
||||||
"imdb": "tt0042876"
|
"imdb": "tt0042876"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kagemusha",
|
"title": "Kagemusha",
|
||||||
"originalTitle": "Kagemusha",
|
"originalTitle": "Kagemusha",
|
||||||
"asin": "B002AFX52S",
|
"asin": "B002AFX52S",
|
||||||
"imdb": "tt0080979"
|
"imdb": "tt0080979"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ran",
|
"title": "Ran",
|
||||||
"asin": "B000BB14YY",
|
"asin": "B000BB14YY",
|
||||||
"imdb": "tt0089881"
|
"imdb": "tt0089881"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Last Samurai",
|
"title": "The Last Samurai",
|
||||||
"originalTitle": "The Last Samurai",
|
"originalTitle": "The Last Samurai",
|
||||||
"asin": "B000JUB7LW",
|
"asin": "B000JUB7LW",
|
||||||
"imdb": "tt0325710"
|
"imdb": "tt0325710"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Lady Snowblood",
|
"title": "Lady Snowblood",
|
||||||
"originalTitle": "Shurayukihime",
|
"originalTitle": "Shurayukihime",
|
||||||
"asin": "B016R7C3AE",
|
"asin": "B016R7C3AE",
|
||||||
"imdb": "tt0158714"
|
"imdb": "tt0158714"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Zatoichi: The Blind Swordsman",
|
"title": "Zatoichi: The Blind Swordsman",
|
||||||
"originalTitle": "Zatôichi",
|
"originalTitle": "Zatôichi",
|
||||||
"asin": "B01H66WAPS",
|
"asin": "B01H66WAPS",
|
||||||
"imdb": "tt0363226"
|
"imdb": "tt0363226"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Twilight Samurai",
|
"title": "The Twilight Samurai",
|
||||||
"originalTitle": "Tasogare Seibei",
|
"originalTitle": "Tasogare Seibei",
|
||||||
"asin": "B00AVOLLLW",
|
"asin": "B00AVOLLLW",
|
||||||
"imdb": "tt0351817"
|
"imdb": "tt0351817"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Samurai Fiction",
|
"title": "Samurai Fiction",
|
||||||
"originalTitle": "SF: Episode One",
|
"originalTitle": "SF: Episode One",
|
||||||
"asin": "B00009V7OB",
|
"asin": "B00009V7OB",
|
||||||
"imdb": "tt0170544"
|
"imdb": "tt0170544"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Lone Wolf & Cub",
|
"title": "Lone Wolf & Cub",
|
||||||
"originalTitle": "Kozure ôkami",
|
"originalTitle": "Kozure ôkami",
|
||||||
"asin": "B008H1Q3NW"
|
"asin": "B008H1Q3NW"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shogun",
|
"title": "Shogun",
|
||||||
"cover": "/assets/images/recommendations/movies/shogun-en.jpg",
|
"cover": "/assets/images/recommendations/movies/shogun-en.jpg",
|
||||||
"asin": "B00UGPODXY",
|
"asin": "B00UGPODXY",
|
||||||
"imdb": "tt0080274"
|
"imdb": "tt0080274"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hero",
|
"title": "Hero",
|
||||||
"originalTitle": "Ying xiong",
|
"originalTitle": "Ying xiong",
|
||||||
"asin": "B0002Y69LI",
|
"asin": "B0002Y69LI",
|
||||||
"imdb": "tt0299977"
|
"imdb": "tt0299977"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ghost Dog: The Way of the Samurai",
|
"title": "Ghost Dog: The Way of the Samurai",
|
||||||
"asin": "B08G6RSNM6",
|
"asin": "B08G6RSNM6",
|
||||||
"imdb": "tt0165798"
|
"imdb": "tt0165798"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "Preface",
|
"title": "Preface",
|
||||||
"slug": "preface"
|
"slug": "preface"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Introduction",
|
"title": "Introduction",
|
||||||
"slug": "ninjutsu"
|
"slug": "ninjutsu"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,347 +1,347 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "History",
|
"title": "History",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Origins of Ninjutsu",
|
"title": "Origins of Ninjutsu",
|
||||||
"slug": "origins-of-ninjutsu"
|
"slug": "origins-of-ninjutsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Emergence of the Ryū",
|
"title": "Emergence of the Ryū",
|
||||||
"slug": "emergence-of-the-ryu"
|
"slug": "emergence-of-the-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Famous Ninja",
|
"title": "Famous Ninja",
|
||||||
"slug": "famous-ninja"
|
"slug": "famous-ninja"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja Biographies",
|
"title": "Ninja Biographies",
|
||||||
"slug": "ninja-biographies"
|
"slug": "ninja-biographies"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Iga-Ryū",
|
"title": "Iga-Ryū",
|
||||||
"slug": "iga-ryu"
|
"slug": "iga-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kōga-Ryū",
|
"title": "Kōga-Ryū",
|
||||||
"slug": "koga-ryu"
|
"slug": "koga-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Iga no Ran",
|
"title": "Iga no Ran",
|
||||||
"slug": "iga-no-ran"
|
"slug": "iga-no-ran"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Invasion of Iga",
|
"title": "Invasion of Iga",
|
||||||
"slug": "invasion-of-iga"
|
"slug": "invasion-of-iga"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Demise",
|
"title": "Demise",
|
||||||
"slug": "demise"
|
"slug": "demise"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Modern History",
|
"title": "Modern History",
|
||||||
"slug": "modern-history"
|
"slug": "modern-history"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Organization & Training",
|
"title": "Organization & Training",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Organization of the Ryū",
|
"title": "Organization of the Ryū",
|
||||||
"slug": "organization-of-the-ryu"
|
"slug": "organization-of-the-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Training of the Ninja",
|
"title": "Training of the Ninja",
|
||||||
"slug": "training-of-the-ninja"
|
"slug": "training-of-the-ninja"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kunoichi",
|
"title": "Kunoichi",
|
||||||
"slug": "kunoichi"
|
"slug": "kunoichi"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bansenshūkai",
|
"title": "Bansenshūkai",
|
||||||
"slug": "bansenshukai"
|
"slug": "bansenshukai"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Body Training",
|
"title": "Body Training",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Taijutsu",
|
"title": "Taijutsu",
|
||||||
"slug": "taijutsu"
|
"slug": "taijutsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Combat Rules",
|
"title": "Combat Rules",
|
||||||
"slug": "combat-rules"
|
"slug": "combat-rules"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Combat Factors",
|
"title": "Combat Factors",
|
||||||
"slug": "combat-factors"
|
"slug": "combat-factors"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Jūnantaisō",
|
"title": "Jūnantaisō",
|
||||||
"slug": "junan-taiso"
|
"slug": "junan-taiso"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Training Factors",
|
"title": "Training Factors",
|
||||||
"slug": "training-factors"
|
"slug": "training-factors"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Body Weapons",
|
"title": "Body Weapons",
|
||||||
"slug": "body-weapons"
|
"slug": "body-weapons"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Toughening Up",
|
"title": "Toughening Up",
|
||||||
"slug": "toughening-up"
|
"slug": "toughening-up"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Atemite",
|
"title": "Atemite",
|
||||||
"slug": "atemi-te"
|
"slug": "atemi-te"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kamae",
|
"title": "Kamae",
|
||||||
"slug": "kamae"
|
"slug": "kamae"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ukemi",
|
"title": "Ukemi",
|
||||||
"slug": "ukemi"
|
"slug": "ukemi"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinobi Iri",
|
"title": "Shinobi Iri",
|
||||||
"slug": "shinobi-iri"
|
"slug": "shinobi-iri"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Weapons & Tools",
|
"title": "Weapons & Tools",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Weapons",
|
"title": "Weapons",
|
||||||
"slug": "weapons"
|
"slug": "weapons"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Water Tools",
|
"title": "Water Tools",
|
||||||
"slug": "water-tools"
|
"slug": "water-tools"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Burglary Tools",
|
"title": "Burglary Tools",
|
||||||
"slug": "burglary-tools"
|
"slug": "burglary-tools"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Climbing Tools",
|
"title": "Climbing Tools",
|
||||||
"slug": "climbing-tools"
|
"slug": "climbing-tools"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Fire Tools",
|
"title": "Fire Tools",
|
||||||
"slug": "fire-tools"
|
"slug": "fire-tools"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja Clothing",
|
"title": "Ninja Clothing",
|
||||||
"slug": "ninja-clothing"
|
"slug": "ninja-clothing"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Miscellaneous Equipment",
|
"title": "Miscellaneous Equipment",
|
||||||
"slug": "miscellaneous-equipment"
|
"slug": "miscellaneous-equipment"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Inrō – Travel Pharmacy",
|
"title": "Inrō – Travel Pharmacy",
|
||||||
"slug": "inro"
|
"slug": "inro"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Mental Powers",
|
"title": "Mental Powers",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Mikkyō",
|
"title": "Mikkyō",
|
||||||
"slug": "mikkyo"
|
"slug": "mikkyo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Sanmitsu",
|
"title": "Sanmitsu",
|
||||||
"slug": "sanmitsu"
|
"slug": "sanmitsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kuji-in",
|
"title": "Kuji-in",
|
||||||
"slug": "kuji-in"
|
"slug": "kuji-in"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Godai",
|
"title": "Godai",
|
||||||
"slug": "godai"
|
"slug": "godai"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Gogyō",
|
"title": "Gogyō",
|
||||||
"slug": "gogyo"
|
"slug": "gogyo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tenchijin",
|
"title": "Tenchijin",
|
||||||
"slug": "tenchijin"
|
"slug": "tenchijin"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Consciousness and Spirit",
|
"title": "Consciousness and Spirit",
|
||||||
"slug": "consciousness-and-spirit"
|
"slug": "consciousness-and-spirit"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Seventh Sense",
|
"title": "The Seventh Sense",
|
||||||
"slug": "the-seventh-sense"
|
"slug": "the-seventh-sense"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Enlightenment",
|
"title": "Enlightenment",
|
||||||
"slug": "enlightenment"
|
"slug": "enlightenment"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Daoism",
|
"title": "Daoism",
|
||||||
"slug": "daoism"
|
"slug": "daoism"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Strategy & Tactics",
|
"title": "Strategy & Tactics",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Goton pō",
|
"title": "Goton pō",
|
||||||
"slug": "gotonpo"
|
"slug": "gotonpo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Onshin jutsu",
|
"title": "Onshin jutsu",
|
||||||
"slug": "onshinjutsu"
|
"slug": "onshinjutsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shichi hō de",
|
"title": "Shichi hō de",
|
||||||
"slug": "shichi-ho-de"
|
"slug": "shichi-ho-de"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Chōhō",
|
"title": "Chōhō",
|
||||||
"slug": "choho"
|
"slug": "choho"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Heihō",
|
"title": "Heihō",
|
||||||
"slug": "heiho"
|
"slug": "heiho"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bōryaku",
|
"title": "Bōryaku",
|
||||||
"slug": "bo-ryaku"
|
"slug": "bo-ryaku"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Tōiri",
|
"title": "Tōiri",
|
||||||
"slug": "toiri"
|
"slug": "toiri"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Chi kai ri",
|
"title": "Chi kai ri",
|
||||||
"slug": "chikairi"
|
"slug": "chikairi"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Legacy of the Ninja",
|
"title": "The Legacy of the Ninja",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Takamatsu Toshitsugu",
|
"title": "Takamatsu Toshitsugu",
|
||||||
"slug": "takamatsu-toshitsugu"
|
"slug": "takamatsu-toshitsugu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Hatsumi Masaaki",
|
"title": "Hatsumi Masaaki",
|
||||||
"slug": "hatsumi-masaaki"
|
"slug": "hatsumi-masaaki"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Bujinkan",
|
"title": "Bujinkan",
|
||||||
"slug": "bujinkan"
|
"slug": "bujinkan"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Guidelines of Bujinkan",
|
"title": "Guidelines of Bujinkan",
|
||||||
"slug": "guidelines-of-bujinkan"
|
"slug": "guidelines-of-bujinkan"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Togakure-Ryū",
|
"title": "Togakure-Ryū",
|
||||||
"slug": "togakure-ryu"
|
"slug": "togakure-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Gyokko-Ryū",
|
"title": "Gyokko-Ryū",
|
||||||
"slug": "gyokko-ryu"
|
"slug": "gyokko-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kukishinden-Ryū",
|
"title": "Kukishinden-Ryū",
|
||||||
"slug": "kukishinden-ryu"
|
"slug": "kukishinden-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Shinden-fudo-Ryū",
|
"title": "Shinden-fudo-Ryū",
|
||||||
"slug": "shinden-fudo-ryu"
|
"slug": "shinden-fudo-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Gyokushin-Ryū",
|
"title": "Gyokushin-Ryū",
|
||||||
"slug": "gyokushin-ryu"
|
"slug": "gyokushin-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Koto-Ryū",
|
"title": "Koto-Ryū",
|
||||||
"slug": "koto-ryu"
|
"slug": "koto-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Takagi-yoshin-Ryū",
|
"title": "Takagi-yoshin-Ryū",
|
||||||
"slug": "takagi-yoshin-ryu"
|
"slug": "takagi-yoshin-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Gikan-Ryū",
|
"title": "Gikan-Ryū",
|
||||||
"slug": "gikan-ryu"
|
"slug": "gikan-ryu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Kumogakure-Ryū",
|
"title": "Kumogakure-Ryū",
|
||||||
"slug": "kumogakure-ryu"
|
"slug": "kumogakure-ryu"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Rules & Philosophy",
|
"title": "Rules & Philosophy",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Essence of Ninjutsu",
|
"title": "Essence of Ninjutsu",
|
||||||
"slug": "essence-of-ninjutsu"
|
"slug": "essence-of-ninjutsu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The Rules of the Ninja",
|
"title": "The Rules of the Ninja",
|
||||||
"slug": "the-rules-of-the-ninja"
|
"slug": "the-rules-of-the-ninja"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "The 5 Commandments of the Ninja",
|
"title": "The 5 Commandments of the Ninja",
|
||||||
"slug": "the-5-commandments-of-the-ninja"
|
"slug": "the-5-commandments-of-the-ninja"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "18 Training Levels",
|
"title": "18 Training Levels",
|
||||||
"slug": "18-training-levels"
|
"slug": "18-training-levels"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninpō Sanjūrokkei",
|
"title": "Ninpō Sanjūrokkei",
|
||||||
"slug": "ninpo-sanjurokkei"
|
"slug": "ninpo-sanjurokkei"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Ninja no Hachimon",
|
"title": "Ninja no Hachimon",
|
||||||
"slug": "ninja-no-hachimon"
|
"slug": "ninja-no-hachimon"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Appendix",
|
"title": "Appendix",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"title": "Chronology",
|
"title": "Chronology",
|
||||||
"slug": "chronology"
|
"slug": "chronology"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Downloads",
|
"title": "Downloads",
|
||||||
"slug": "downloads"
|
"slug": "downloads"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Recommendations",
|
"title": "Recommendations",
|
||||||
"slug": "recommendations"
|
"slug": "recommendations"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Glossary",
|
"title": "Glossary",
|
||||||
"slug": "glossary"
|
"slug": "glossary"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "Colophon",
|
"title": "Colophon",
|
||||||
"slug": "colophon"
|
"slug": "colophon"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="colophon-contact" {{ site.animation }}>
|
<div class="colophon-contact" {{ site.animation }}>
|
||||||
<h2>{{ i18n[locale].colophon.contact.headline }}</h2>
|
<h2>{{ i18n[locale].colophon.contact.headline }}</h2>
|
||||||
{{ i18n[locale].colophon.contact.text | markdown | safe }}
|
{{ i18n[locale].colophon.contact.text | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,60 +1,60 @@
|
|||||||
<div class="colophon-donation" {{ site.animation }}>
|
<div class="colophon-donation" {{ site.animation }}>
|
||||||
<h2>
|
<h2>
|
||||||
<span class="colophon-donation-heart">♥︎</span>
|
<span class="colophon-donation-heart">♥︎</span>
|
||||||
{{ i18n[locale].colophon.donation.headline }}
|
{{ i18n[locale].colophon.donation.headline }}
|
||||||
</h2>
|
</h2>
|
||||||
{{ i18n[locale].colophon.donation.text | markdown | safe }}
|
{{ i18n[locale].colophon.donation.text | markdown | safe }}
|
||||||
<ul class="colophon-donation-list">
|
<ul class="colophon-donation-list">
|
||||||
<li class="colophon-donation-list-item">
|
<li class="colophon-donation-list-item">
|
||||||
<svg
|
<svg
|
||||||
class="colophon-donation-icon"
|
class="colophon-donation-icon"
|
||||||
title="Bitcoin"
|
title="Bitcoin"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
width="1em"
|
width="1em"
|
||||||
height="1em"
|
height="1em"
|
||||||
>
|
>
|
||||||
<use xlink:href="#bitcoin"></use>
|
<use xlink:href="#bitcoin"></use>
|
||||||
</svg>
|
</svg>
|
||||||
<pre class="colophon-dontation-crypto-hash">{{ site.bitcoin }}</pre
|
<pre class="colophon-dontation-crypto-hash">{{ site.bitcoin }}</pre
|
||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<li class="colophon-donation-list-item">
|
<li class="colophon-donation-list-item">
|
||||||
<svg
|
<svg
|
||||||
class="colophon-donation-icon"
|
class="colophon-donation-icon"
|
||||||
title="Ethereum"
|
title="Ethereum"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
width="1em"
|
width="1em"
|
||||||
height="1em"
|
height="1em"
|
||||||
>
|
>
|
||||||
<use xlink:href="#ethereum"></use>
|
<use xlink:href="#ethereum"></use>
|
||||||
</svg>
|
</svg>
|
||||||
<pre class="colophon-dontation-crypto-hash">{{ site.ethereum }}</pre
|
<pre class="colophon-dontation-crypto-hash">{{ site.ethereum }}</pre
|
||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<li class="colophon-donation-list-item">
|
<li class="colophon-donation-list-item">
|
||||||
<a
|
<a
|
||||||
href="https://www.paypal.me/kogakure/"
|
href="https://www.paypal.me/kogakure/"
|
||||||
rel="nofollow noopener noreferrer external"
|
rel="nofollow noopener noreferrer external"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
class="colophon-dontation-button"
|
class="colophon-dontation-button"
|
||||||
type="button"
|
type="button"
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
class="colophon-donation-icon"
|
class="colophon-donation-icon"
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
width="1em"
|
width="1em"
|
||||||
height="1em"
|
height="1em"
|
||||||
>
|
>
|
||||||
<use xlink:href="#paypal"></use>
|
<use xlink:href="#paypal"></use>
|
||||||
</svg>
|
</svg>
|
||||||
{{ i18n[locale].colophon.donation.paypal }}
|
{{ i18n[locale].colophon.donation.paypal }}
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
<div class="colophon-faq">
|
<div class="colophon-faq">
|
||||||
<h2>{{ i18n[locale].colophon.faq.headline }}</h2>
|
<h2>{{ i18n[locale].colophon.faq.headline }}</h2>
|
||||||
<ul class="colophone-faq-list">
|
<ul class="colophone-faq-list">
|
||||||
<li class="colophon-faq-list-item" {{ site.animation }}>
|
<li class="colophon-faq-list-item" {{ site.animation }}>
|
||||||
<h3>{{ i18n[locale].colophon.faq.subheadline1 }}</h3>
|
<h3>{{ i18n[locale].colophon.faq.subheadline1 }}</h3>
|
||||||
{{ i18n[locale].colophon.faq.text1 | markdown | safe }}
|
{{ i18n[locale].colophon.faq.text1 | markdown | safe }}
|
||||||
</li>
|
</li>
|
||||||
<li class="colophon-faq-list-item" {{ site.animation }}>
|
<li class="colophon-faq-list-item" {{ site.animation }}>
|
||||||
<h3>{{ i18n[locale].colophon.faq.subheadline2 }}</h3>
|
<h3>{{ i18n[locale].colophon.faq.subheadline2 }}</h3>
|
||||||
{{ i18n[locale].colophon.faq.text2 | markdown | safe }}
|
{{ i18n[locale].colophon.faq.text2 | markdown | safe }}
|
||||||
</li>
|
</li>
|
||||||
<li class="colophon-faq-list-item" {{ site.animation }}>
|
<li class="colophon-faq-list-item" {{ site.animation }}>
|
||||||
<h3>{{ i18n[locale].colophon.faq.subheadline3 }}</h3>
|
<h3>{{ i18n[locale].colophon.faq.subheadline3 }}</h3>
|
||||||
{{ i18n[locale].colophon.faq.text3 | markdown | safe }}
|
{{ i18n[locale].colophon.faq.text3 | markdown | safe }}
|
||||||
</li>
|
</li>
|
||||||
<li class="colophon-faq-list-item" {{ site.animation }}>
|
<li class="colophon-faq-list-item" {{ site.animation }}>
|
||||||
<h3>{{ i18n[locale].colophon.faq.subheadline4 }}</h3>
|
<h3>{{ i18n[locale].colophon.faq.subheadline4 }}</h3>
|
||||||
{{ i18n[locale].colophon.faq.text4 | markdown | safe }}
|
{{ i18n[locale].colophon.faq.text4 | markdown | safe }}
|
||||||
</li>
|
</li>
|
||||||
<li class="colophon-faq-list-item" {{ site.animation }}>
|
<li class="colophon-faq-list-item" {{ site.animation }}>
|
||||||
<h3>{{ i18n[locale].colophon.faq.subheadline5 }}</h3>
|
<h3>{{ i18n[locale].colophon.faq.subheadline5 }}</h3>
|
||||||
{{ i18n[locale].colophon.faq.text5 | markdown | safe }}
|
{{ i18n[locale].colophon.faq.text5 | markdown | safe }}
|
||||||
</li>
|
</li>
|
||||||
<li class="colophon-faq-list-item" {{ site.animation }}>
|
<li class="colophon-faq-list-item" {{ site.animation }}>
|
||||||
<h3>{{ i18n[locale].colophon.faq.subheadline6 }}</h3>
|
<h3>{{ i18n[locale].colophon.faq.subheadline6 }}</h3>
|
||||||
{{ i18n[locale].colophon.faq.text6 | markdown | safe }}
|
{{ i18n[locale].colophon.faq.text6 | markdown | safe }}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="colophon-intro" {{ site.animationDelay }}>
|
<div class="colophon-intro" {{ site.animationDelay }}>
|
||||||
<h1 class="colphon-title">{{ title }}</h1>
|
<h1 class="colphon-title">{{ title }}</h1>
|
||||||
{{ i18n[locale].colophon.intro | markdown | safe }}
|
{{ i18n[locale].colophon.intro | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="colophon-meaning" {{ site.animation }}>
|
<div class="colophon-meaning" {{ site.animation }}>
|
||||||
<h2>{{ i18n[locale].colophon.meaning.headline }}</h2>
|
<h2>{{ i18n[locale].colophon.meaning.headline }}</h2>
|
||||||
{{ i18n[locale].colophon.meaning.text | markdown | safe }}
|
{{ i18n[locale].colophon.meaning.text | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="colophon-tech" {{ site.animation }}>
|
<div class="colophon-tech" {{ site.animation }}>
|
||||||
<h2>{{ i18n[locale].colophon.tech.headline }}</h2>
|
<h2>{{ i18n[locale].colophon.tech.headline }}</h2>
|
||||||
{{ i18n[locale].colophon.tech.text | markdown | safe }}
|
{{ i18n[locale].colophon.tech.text | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="colophon-why" {{ site.animation }}>
|
<div class="colophon-why" {{ site.animation }}>
|
||||||
<h2>{{ i18n[locale].colophon.why.headline }}</h2>
|
<h2>{{ i18n[locale].colophon.why.headline }}</h2>
|
||||||
{{ i18n[locale].colophon.why.text | markdown | safe }}
|
{{ i18n[locale].colophon.why.text | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,43 +1,44 @@
|
|||||||
<article class="downloads-container rowgap">
|
<article class="downloads-container rowgap">
|
||||||
<figure class="downloads-layout downloads-50-start" {{ site.animation }}>
|
<figure class="downloads-layout downloads-50-start" {{ site.animation }}>
|
||||||
<div class="image-shadow downloads-image-container">
|
<div class="image-shadow downloads-image-container">
|
||||||
<img src="/assets/images/downloads/ingo.jpg" alt=""/>
|
<img src="/assets/images/downloads/ingo.jpg" alt=""/>
|
||||||
</div>
|
</div>
|
||||||
<figcaption>
|
<figcaption>
|
||||||
<h2>{{ i18n[locale].downloads.font.headline }}<h2>
|
<h2>{{ i18n[locale].downloads.font.headline }}
|
||||||
{{ i18n[locale].downloads.font.text | markdown | safe }}
|
<h2>
|
||||||
<p>
|
{{ i18n[locale].downloads.font.text | markdown | safe }}
|
||||||
{% more i18n[locale].downloads.font.more, "https://github.com/kogakure/font-ingo", true %}<br />
|
<p>
|
||||||
{% download i18n[locale].downloads.font.download, "/downloads/iga-ninja-font.zip" %}
|
{% more i18n[locale].downloads.font.more, "https://github.com/kogakure/font-ingo", true %}<br/>
|
||||||
</p>
|
{% download i18n[locale].downloads.font.download, "/downloads/iga-ninja-font.zip" %}
|
||||||
</figcaption>
|
</p>
|
||||||
</figure>
|
</figcaption>
|
||||||
<figure class="downloads-layout downloads-50-end" {{ site.animation }}>
|
</figure>
|
||||||
<div class="image-shadow downloads-image-container">
|
<figure class="downloads-layout downloads-50-end" {{ site.animation }}>
|
||||||
<img src="/assets/images/downloads/ogama.jpg" alt=""/>
|
<div class="image-shadow downloads-image-container">
|
||||||
</div>
|
<img src="/assets/images/downloads/ogama.jpg" alt=""/>
|
||||||
<figcaption>
|
</div>
|
||||||
<h2>{{ i18n[locale].downloads.cgi.headline }}</h2>
|
<figcaption>
|
||||||
{{ i18n[locale].downloads.cgi.text | markdown | safe }}
|
<h2>{{ i18n[locale].downloads.cgi.headline }}</h2>
|
||||||
<p>
|
{{ i18n[locale].downloads.cgi.text | markdown | safe }}
|
||||||
{% more i18n[locale].downloads.cgi.more, "https://github.com/kogakure/3d-models-kogakure", true %}
|
<p>
|
||||||
</p>
|
{% more i18n[locale].downloads.cgi.more, "https://github.com/kogakure/3d-models-kogakure", true %}
|
||||||
</figcaption>
|
</p>
|
||||||
</figure>
|
</figcaption>
|
||||||
{% if locale === "de" %}
|
</figure>
|
||||||
<figure class="downloads-layout downloads-50-start" {{ site.animation }}>
|
{% if locale === "de" %}
|
||||||
<div class="image-shadow downloads-image-container">
|
<figure class="downloads-layout downloads-50-start" {{ site.animation }}>
|
||||||
<img src="/assets/images/chronology/gitbook-kogakure.jpg" alt=""/>
|
<div class="image-shadow downloads-image-container">
|
||||||
</div>
|
<img src="/assets/images/chronology/gitbook-kogakure.jpg" alt=""/>
|
||||||
<figcaption>
|
</div>
|
||||||
<h2>{{ i18n[locale].downloads.book.headline }}</h2>
|
<figcaption>
|
||||||
{{ i18n[locale].downloads.book.text | markdown | safe }}
|
<h2>{{ i18n[locale].downloads.book.headline }}</h2>
|
||||||
<p>
|
{{ i18n[locale].downloads.book.text | markdown | safe }}
|
||||||
{% download i18n[locale].downloads.book.pdf, "/downloads/book-kogakure.pdf", true %} •
|
<p>
|
||||||
{% download i18n[locale].downloads.book.epub, "/downloads/book-kogakure.epub" %} •
|
{% download i18n[locale].downloads.book.pdf, "/downloads/book-kogakure.pdf", true %} •
|
||||||
{% download i18n[locale].downloads.book.mobi, "/downloads/book-kogakure.mobi" %}
|
{% download i18n[locale].downloads.book.epub, "/downloads/book-kogakure.epub" %} •
|
||||||
</p>
|
{% download i18n[locale].downloads.book.mobi, "/downloads/book-kogakure.mobi" %}
|
||||||
</figcaption>
|
</p>
|
||||||
</figure>
|
</figcaption>
|
||||||
{% endif %}
|
</figure>
|
||||||
</article>
|
{% endif %}
|
||||||
|
</article>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="downloads-intro" {{ site.animationDelay }}>
|
<div class="downloads-intro" {{ site.animationDelay }}>
|
||||||
<h1 class="downloads-title">{{ title }}</h1>
|
<h1 class="downloads-title">{{ title }}</h1>
|
||||||
{{ i18n[locale].downloads.intro | markdown | safe }}
|
{{ i18n[locale].downloads.intro | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<link rel="icon" href="/favicon.ico" sizes="any" />
|
<link rel="icon" href="/favicon.ico" sizes="any"/>
|
||||||
<link rel="icon" href="{{ site.faviconPath }}favicon.svg" type="image/svg+xml" />
|
<link rel="icon" href="{{ site.faviconPath }}favicon.svg" type="image/svg+xml"/>
|
||||||
<link rel="apple-touch-icon" href="{{ site.faviconPath }}apple-touch-icon.png" />
|
<link rel="apple-touch-icon" href="{{ site.faviconPath }}apple-touch-icon.png"/>
|
||||||
<link rel="manifest" href="/manifest.webmanifest" />
|
<link rel="manifest" href="/manifest.webmanifest"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="glossary-intro" {{ site.animationDelay }}>
|
<div class="glossary-intro" {{ site.animationDelay }}>
|
||||||
<h1 class="glossary-title">{{ title }}</h1>
|
<h1 class="glossary-title">{{ title }}</h1>
|
||||||
{{ i18n[locale].glossary.intro | markdown | safe }}
|
{{ i18n[locale].glossary.intro | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,24 +1,26 @@
|
|||||||
<div class="glossary-list">
|
<div class="glossary-list">
|
||||||
{% for item in glossaryData %}
|
{% for item in glossaryData %}
|
||||||
<dl class="glossary-list-item" {{ site.animation }}>
|
<dl class="glossary-list-item" {{ site.animation }}>
|
||||||
{% if item.title %}
|
{% if item.title %}
|
||||||
<dt class="glossary-list-item-romanji">{{ item.title }}</dt>
|
<dt class="glossary-list-item-romanji">{{ item.title }}</dt>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if item.japanese or item.chinese or item.sanskrit %}
|
{% if item.japanese or item.chinese or item.sanskrit %}
|
||||||
<dt class="glossary-list-item-japanese">{{ item.japanese }}{{ item.chinese}}{{ item.sanskrit }}</dt>
|
<dt class="glossary-list-item-japanese">{{ item.japanese }}{{ item.chinese}}{{ item.sanskrit }}</dt>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if item.translation %}
|
{% if item.translation %}
|
||||||
<dd class="glossary-list-item-translation">
|
<dd class="glossary-list-item-translation">
|
||||||
<q>{{ item.translation }}</q>
|
<q>{{ item.translation }}</q>
|
||||||
</dd>
|
</dd>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if item.description %}
|
{% if item.description %}
|
||||||
<dd class="glossary-list-item-description">
|
<dd class="glossary-list-item-description">
|
||||||
{% if item.sanskrit %}<em>{{ i18n[locale].glossary.sanskrit }}</em>. {% endif %}
|
{% if item.sanskrit %}
|
||||||
{% if item.chinese %}<em>{{ i18n[locale].glossary.chinese }}</em>. {% endif %}
|
<em>{{ i18n[locale].glossary.sanskrit }}</em>. {% endif %}
|
||||||
{{ item.description | safe }}
|
{% if item.chinese %}
|
||||||
</dd>
|
<em>{{ i18n[locale].glossary.chinese }}</em>. {% endif %}
|
||||||
{% endif %}
|
{{ item.description | safe }}
|
||||||
</dl>
|
</dd>
|
||||||
{% endfor %}
|
{% endif %}
|
||||||
|
</dl>
|
||||||
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
{% if locale === "de" %}
|
{% if locale === "de" %}
|
||||||
{% set homeLink = "/" %}
|
{% set homeLink = "/" %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set homeLink = "/" + locale + "/" %}
|
{% set homeLink = "/" + locale + "/" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if isHome %}
|
{% if isHome %}
|
||||||
<div class="home-link-spacer"></div>
|
<div class="home-link-spacer"></div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="home-link" href="{{ homeLink }}" title="{{ i18n[locale].homeLink }}">
|
<a class="home-link" href="{{ homeLink }}" title="{{ i18n[locale].homeLink }}">
|
||||||
<button
|
<button
|
||||||
class="home-link-button"
|
class="home-link-button"
|
||||||
aria-label="{{ i18n[locale].homeLink }}"
|
aria-label="{{ i18n[locale].homeLink }}"
|
||||||
type="button"
|
type="button"
|
||||||
>
|
>
|
||||||
<svg class="home-link-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
<svg class="home-link-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
||||||
<use xlink:href="#ancient-pavilion"></use>
|
<use xlink:href="#ancient-pavilion"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
<div class="homepage-intro" {{ site.animationDelay }}>
|
<div class="homepage-intro" {{ site.animationDelay }}>
|
||||||
<h1 class="homepage-title">{{ title }}</h1>
|
<h1 class="homepage-title">{{ title }}</h1>
|
||||||
{{ i18n[locale].homepage.intro | markdown | safe }}
|
{{ i18n[locale].homepage.intro | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,34 @@
|
|||||||
{% if locale === "de" %}
|
{% if locale === "de" %}
|
||||||
{% set prefix = "/" %}
|
{% set prefix = "/" %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set prefix = "/" + locale + "/" %}
|
{% set prefix = "/" + locale + "/" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<section class="homepage-toc">
|
<section class="homepage-toc">
|
||||||
<h2 class="homepage-toc-title">{{ i18n[locale].homepage.tocHeadline }}</h2>
|
<h2 class="homepage-toc-title">{{ i18n[locale].homepage.tocHeadline }}</h2>
|
||||||
<nav>
|
<nav>
|
||||||
<ol class="homepage-toc-intro">
|
<ol class="homepage-toc-intro">
|
||||||
{% for item in prefaceCollection %}
|
{% for item in prefaceCollection %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ prefix }}{{ item.slug }}/">{{ item.title }}</a>
|
<a href="{{ prefix }}{{ item.slug }}/">{{ item.title }}</a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ol>
|
</ol>
|
||||||
<ol class="homepage-toc-content">
|
<ol class="homepage-toc-content">
|
||||||
{% for chapter in tocCollection %}
|
{% for chapter in tocCollection %}
|
||||||
<li class="homepage-toc-chapter">
|
<li class="homepage-toc-chapter">
|
||||||
{{ chapter.title }}
|
{{ chapter.title }}
|
||||||
<ol>
|
<ol>
|
||||||
{% for section in chapter.items %}
|
{% for section in chapter.items %}
|
||||||
<li class="homepage-toc-">
|
<li class="homepage-toc-">
|
||||||
<a href="{{ prefix }}{{ section.slug }}/">
|
<a href="{{ prefix }}{{ section.slug }}/">
|
||||||
{{ section.title }}
|
{{ section.title }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ol>
|
</ol>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ol>
|
</ol>
|
||||||
</nav>
|
</nav>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="0" height="0">
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="0" height="0">
|
||||||
{% include "icons.svg" %}
|
{% include "icons.svg" %}
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 116 B |
@@ -1,20 +1,24 @@
|
|||||||
<span class="language-switcher">
|
<span class="language-switcher">
|
||||||
{% for lang in site.languages %}
|
{% for lang in site.languages %}
|
||||||
{% if loop.first %}<ul class="language-switcher-list">{% endif %}
|
{% if loop.first %}
|
||||||
|
<ul class="language-switcher-list">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% set translatedUrl = "/" + lang.language + "/" %}
|
{% set translatedUrl = "/" + lang.language + "/" %}
|
||||||
{% set activeClass = "is-active" if lang.language == locale else "" %}
|
{% set activeClass = "is-active" if lang.language == locale else "" %}
|
||||||
|
|
||||||
{% for item in collections.all %}
|
{% for item in collections.all %}
|
||||||
{% if item.data.translationKey == translationKey and item.data.locale == lang.language %}
|
{% if item.data.translationKey == translationKey and item.data.locale == lang.language %}
|
||||||
{% set translatedUrl = item.url %}
|
{% set translatedUrl = item.url %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<li class="language-switcher-list-item">
|
<li class="language-switcher-list-item">
|
||||||
<a class="language-switcher-link {{ activeClass }}" href="{{ translatedUrl }}">{{ lang.title }}</a>
|
<a class="language-switcher-link {{ activeClass }}" href="{{ translatedUrl }}">{{ lang.title }}</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
{% if loop.last %}</ul>{% endif %}
|
{% if loop.last %}
|
||||||
{% endfor %}
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<div class="legal">
|
<div class="legal">
|
||||||
<span class="legal-copyright">© </span>
|
<span class="legal-copyright">© </span>
|
||||||
<strong class="legal-author">
|
<strong class="legal-author">
|
||||||
<a class="legal-author-link" href="/imprint/">{{ site.author }}</a>
|
<a class="legal-author-link" href="/imprint/">{{ site.author }}</a>
|
||||||
</strong>
|
</strong>
|
||||||
<span class="legal-bullet"> / </span>
|
<span class="legal-bullet"> / </span>
|
||||||
<span class="legal-year">
|
<span class="legal-year">
|
||||||
<time datetime="{{ site.buildTime | dateToISO }}">
|
<time datetime="{{ site.buildTime | dateToISO }}">
|
||||||
1999–{{ site.buildTime | dateToFormat('YYYY') }}
|
1999–{{ site.buildTime | dateToFormat('YYYY') }}
|
||||||
</time>
|
</time>
|
||||||
</span>
|
</span>
|
||||||
<span class="legal-bullet"> / </span>
|
<span class="legal-bullet"> / </span>
|
||||||
{% include "language-switcher.njk" %}
|
{% include "language-switcher.njk" %}
|
||||||
<span class="hidden-ninja"> 🥷 </span>
|
<span class="hidden-ninja"> 🥷 </span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,53 +1,55 @@
|
|||||||
{% if locale === "de" %}{% set localizedDescription = site.description['de'] %}{% endif %}
|
{% if locale === "de" %}{% set localizedDescription = site.description['de'] %}
|
||||||
{% if locale === "en" %}{% set localizedDescription = site.description['en'] %}{% endif %}
|
{% endif %}
|
||||||
|
{% if locale === "en" %}{% set localizedDescription = site.description['en'] %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{%- set ogTitle -%}
|
{%- set ogTitle -%}
|
||||||
{%- if page.url === "/" or page.url === "/en/" -%}
|
{%- if page.url === "/" or page.url === "/en/" -%}
|
||||||
{{ site.title }} · {{ localizedDescription }}
|
{{ site.title }} · {{ localizedDescription }}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ title }} · {{ site.title }}
|
{{ title }} · {{ site.title }}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endset -%}
|
{%- endset -%}
|
||||||
|
|
||||||
{%- set ogDescription -%}
|
{%- set ogDescription -%}
|
||||||
{%- if page.url === "/" or page.url === "/en/" -%}
|
{%- if page.url === "/" or page.url === "/en/" -%}
|
||||||
{{ localizedDescription }}
|
{{ localizedDescription }}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ excerpt or title }}
|
{{ excerpt or title }}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endset -%}
|
{%- endset -%}
|
||||||
|
|
||||||
{%- set ogImage -%}
|
{%- set ogImage -%}
|
||||||
{%- if og -%}
|
{%- if og -%}
|
||||||
{{ site.url }}/assets/images/branding/og/{{ og }}
|
{{ site.url }}/assets/images/branding/og/{{ og }}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{% if locale === "en" %}
|
{% if locale === "en" %}
|
||||||
{{ site.url }}/assets/images/branding/og/banner-en.png
|
{{ site.url }}/assets/images/branding/og/banner-en.png
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ site.url }}/assets/images/branding/og/banner-de.png
|
{{ site.url }}/assets/images/branding/og/banner-de.png
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endset -%}
|
{%- endset -%}
|
||||||
|
|
||||||
<!-- Meta -->
|
<!-- Meta -->
|
||||||
<meta name="author" content="{{ site.author }}" />
|
<meta name="author" content="{{ site.author }}"/>
|
||||||
<meta name="description" content="{{ ogDescription }}" />
|
<meta name="description" content="{{ ogDescription }}"/>
|
||||||
<meta name="theme-color" content="#e7e6e4" />
|
<meta name="theme-color" content="#e7e6e4"/>
|
||||||
<meta name="generator" content="{{ eleventy.generator }}" />
|
<meta name="generator" content="{{ eleventy.generator }}"/>
|
||||||
|
|
||||||
<!-- Open graph -->
|
<!-- Open graph -->
|
||||||
<meta property="og:title" content="{{ ogTitle }}" />
|
<meta property="og:title" content="{{ ogTitle }}"/>
|
||||||
<meta property="og:url" content="{{ site.url }}{{ page.url }}" />
|
<meta property="og:url" content="{{ site.url }}{{ page.url }}"/>
|
||||||
<meta property="og:description" content="{{ ogDescription }}" />
|
<meta property="og:description" content="{{ ogDescription }}"/>
|
||||||
<meta property="og:type" content="article" />
|
<meta property="og:type" content="article"/>
|
||||||
<meta property="og:image" content="{{ ogImage }}"/>
|
<meta property="og:image" content="{{ ogImage }}"/>
|
||||||
<meta property="og:image:width" content="1200" />
|
<meta property="og:image:width" content="1200"/>
|
||||||
<meta property="og:image:height" content="675" />
|
<meta property="og:image:height" content="675"/>
|
||||||
|
|
||||||
<!-- Twitter -->
|
<!-- Twitter -->
|
||||||
<meta name="twitter:title" content="{{ ogTitle }}" />
|
<meta name="twitter:title" content="{{ ogTitle }}"/>
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
<meta name="twitter:card" content="summary_large_image"/>
|
||||||
<meta name="twitter:site" content="{{ site.twitter }}" />
|
<meta name="twitter:site" content="{{ site.twitter }}"/>
|
||||||
<meta name="twitter:description" content="{{ ogDescription }}" />
|
<meta name="twitter:description" content="{{ ogDescription }}"/>
|
||||||
<meta name="twitter:image" content="{{ ogImage }}" />
|
<meta name="twitter:image" content="{{ ogImage }}"/>
|
||||||
<meta name="twitter:creator" content="{{ site.twitter }}" />
|
<meta name="twitter:creator" content="{{ site.twitter }}"/>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<footer class="page-footer">
|
<footer class="page-footer">
|
||||||
{% include "legal.njk" %}
|
{% include "legal.njk" %}
|
||||||
{% include "up-link.njk" %}
|
{% include "up-link.njk" %}
|
||||||
</footer>
|
</footer>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<header class="page-header" role="banner">
|
<header class="page-header" role="banner">
|
||||||
{% include "home-link.njk" %}
|
{% include "home-link.njk" %}
|
||||||
{% include "theme-toggle.njk" %}
|
{% include "theme-toggle.njk" %}
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="pagination-container">
|
<div class="pagination-container">
|
||||||
<svg class="pagination-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
<svg class="pagination-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
||||||
<use xlink:href="#arrow-left-s"></use>
|
<use xlink:href="#arrow-left-s"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<div class="pagination-container">
|
<div class="pagination-container">
|
||||||
<svg class="pagination-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
<svg class="pagination-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
||||||
<use xlink:href="#arrow-right-s"></use>
|
<use xlink:href="#arrow-right-s"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
{% if previousPost %}
|
{% if previousPost %}
|
||||||
<a
|
<a
|
||||||
aria-label="{{ previousPost.data.title }}"
|
aria-label="{{ previousPost.data.title }}"
|
||||||
class="pagination pagination-start"
|
class="pagination pagination-start"
|
||||||
href="{{ previousPost.url }}"
|
href="{{ previousPost.url }}"
|
||||||
rel="prev"
|
rel="prev"
|
||||||
title="{{ previousPost.data.title }}"
|
title="{{ previousPost.data.title }}"
|
||||||
>
|
>
|
||||||
{% include "pagination-left-arrow.njk" %}
|
{% include "pagination-left-arrow.njk" %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if nextPost %}
|
{% if nextPost %}
|
||||||
<a
|
<a
|
||||||
aria-label="{{ nextPost.data.title }}"
|
aria-label="{{ nextPost.data.title }}"
|
||||||
class="pagination pagination-end"
|
class="pagination pagination-end"
|
||||||
href="{{ nextPost.url }}"
|
href="{{ nextPost.url }}"
|
||||||
rel="next"
|
rel="next"
|
||||||
title="{{ nextPost.data.title }}"
|
title="{{ nextPost.data.title }}"
|
||||||
>
|
>
|
||||||
{% include "pagination-right-arrow.njk" %}
|
{% include "pagination-right-arrow.njk" %}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<link rel="preload" href="{{ '/assets/fonts/secuela-regular-vf.woff2' | url }}" as="font" type="font/woff2" crossorigin />
|
<link rel="preload" href="{{ '/assets/fonts/secuela-regular-vf.woff2' | url }}" as="font" type="font/woff2" crossorigin/>
|
||||||
<link rel="preload" href="{{ '/assets/fonts/secuela-italic-vf.woff2' | url }}" as="font" type="font/woff2" crossorigin />
|
<link rel="preload" href="{{ '/assets/fonts/secuela-italic-vf.woff2' | url }}" as="font" type="font/woff2" crossorigin/>
|
||||||
<link rel="preload" href="{{ '/assets/fonts/sword-kanji.woff2' | url }}" as="font" type="font/woff2" crossorigin />
|
<link rel="preload" href="{{ '/assets/fonts/sword-kanji.woff2' | url }}" as="font" type="font/woff2" crossorigin/>
|
||||||
|
|||||||
@@ -1,46 +1,51 @@
|
|||||||
{% if locale === "en" %}{% set affiliateUrl = "http://www.amazon.de/gp/product/{{ book.asin }}?ie=UTF8&tag=stefanimhoffde-21&linkCode=as2&camp=1638&creative=6742&creativeASIN={{ book.asin }}" %}{% endif %}
|
{% if locale === "en" %}{% set affiliateUrl = "http://www.amazon.de/gp/product/{{ book.asin }}?ie=UTF8&tag=stefanimhoffde-21&linkCode=as2&camp=1638&creative=6742&creativeASIN={{ book.asin }}" %}
|
||||||
{% if locale === "en" %}{% set affiliateUrl = "https://www.amazon.com/gp/product/{{ book.asin }}/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN={{ book.asin }}&linkCode=as2&tag=kogakure-20" %}{% endif %}
|
{% endif %}
|
||||||
|
{% if locale === "en" %}{% set affiliateUrl = "https://www.amazon.com/gp/product/{{ book.asin }}/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN={{ book.asin }}&linkCode=as2&tag=kogakure-20" %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="recommendations-books">
|
<div class="recommendations-books">
|
||||||
<h2>{{ i18n[locale].recommendations.books.headline }}</h2>
|
<h2>{{ i18n[locale].recommendations.books.headline }}</h2>
|
||||||
<article class="recommendations-container">
|
<article class="recommendations-container">
|
||||||
{% for book in bookCollection %}
|
{% for book in bookCollection %}
|
||||||
<div {{ site.animation }}>
|
<div {{ site.animation }}>
|
||||||
{% if book.asin %}
|
{% if book.asin %}
|
||||||
<a
|
<a
|
||||||
class="product"
|
class="product"
|
||||||
href="{{ affiliateUrl }}"
|
href="{{ affiliateUrl }}"
|
||||||
rel="nofollow noopener noreferrer external"
|
rel="nofollow noopener noreferrer external"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
{% if book.cover %}
|
{% if book.cover %}
|
||||||
<img alt="{{ book.title }}" src="{{ book.cover }}" />
|
<img alt="{{ book.title }}" src="{{ book.cover }}"/>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if locale === "en" %}
|
{% if locale === "en" %}
|
||||||
{% product book.asin, book.title, "en" %}
|
{% product book.asin,
|
||||||
{% else %}
|
book.title,
|
||||||
{% product book.asin, book.title %}
|
"en" %}
|
||||||
{% endif %}
|
{% else %}
|
||||||
{% endif %}
|
{% product book.asin,
|
||||||
</a>
|
book.title %}
|
||||||
{% else %}
|
{% endif %}
|
||||||
{% if book.link %}
|
{% endif %}
|
||||||
<a
|
</a>
|
||||||
class="product"
|
{% else %}
|
||||||
href="{{ book.link }}"
|
{% if book.link %}
|
||||||
rel="nofollow noopener noreferrer external"
|
<a
|
||||||
target="_blank"
|
class="product"
|
||||||
>
|
href="{{ book.link }}"
|
||||||
<img alt="{{ book.title }}" src="{{ book.cover }}" />
|
rel="nofollow noopener noreferrer external"
|
||||||
</a>
|
target="_blank"
|
||||||
{% else %}
|
>
|
||||||
<img alt="{{ book.title }}" src="{{ book.cover }}" />
|
<img alt="{{ book.title }}" src="{{ book.cover }}"/>
|
||||||
{% endif %}
|
</a>
|
||||||
{% endif %}
|
{% else %}
|
||||||
<h3 class="recommendations-product-title">
|
<img alt="{{ book.title }}" src="{{ book.cover }}"/>
|
||||||
{{ book.title }}
|
{% endif %}
|
||||||
</h3>
|
{% endif %}
|
||||||
</div>
|
<h3 class="recommendations-product-title">
|
||||||
{% endfor %}
|
{{ book.title }}
|
||||||
</article>
|
</h3>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</article>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<div class="recommendations-intro" {{ site.animationDelay }}>
|
<div class="recommendations-intro" {{ site.animationDelay }}>
|
||||||
<h1 class="recommendations-title">{{ title }}</h1>
|
<h1 class="recommendations-title">{{ title }}</h1>
|
||||||
{{ i18n[locale].recommendations.intro | markdown | safe }}
|
{{ i18n[locale].recommendations.intro | markdown | safe }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,44 +1,49 @@
|
|||||||
{% if locale === "en" %}{% set affiliateUrl = "http://www.amazon.de/gp/product/{{ movie.asin }}?ie=UTF8&tag=stefanimhoffde-21&linkCode=as2&camp=1638&creative=6742&creativeASIN={{ movie.asin }}" %}{% endif %}
|
{% if locale === "en" %}{% set affiliateUrl = "http://www.amazon.de/gp/product/{{ movie.asin }}?ie=UTF8&tag=stefanimhoffde-21&linkCode=as2&camp=1638&creative=6742&creativeASIN={{ movie.asin }}" %}
|
||||||
{% if locale === "en" %}{% set affiliateUrl = "https://www.amazon.com/gp/product/{{ movie.asin }}/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN={{ movie.asin }}&linkCode=as2&tag=kogakure-20" %}{% endif %}
|
{% endif %}
|
||||||
|
{% if locale === "en" %}{% set affiliateUrl = "https://www.amazon.com/gp/product/{{ movie.asin }}/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN={{ movie.asin }}&linkCode=as2&tag=kogakure-20" %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="recommendations-movies">
|
<div class="recommendations-movies">
|
||||||
<h2>{{ i18n[locale].recommendations.movies.headline }}</h2>
|
<h2>{{ i18n[locale].recommendations.movies.headline }}</h2>
|
||||||
<article class="recommendations-container">
|
<article class="recommendations-container">
|
||||||
{% for movie in movieCollection %}
|
{% for movie in movieCollection %}
|
||||||
<div {{ site.animation }}>
|
<div {{ site.animation }}>
|
||||||
{% if movie.asin %}
|
{% if movie.asin %}
|
||||||
<a
|
<a
|
||||||
class="product"
|
class="product"
|
||||||
href="{{ affiliateUrl }}"
|
href="{{ affiliateUrl }}"
|
||||||
rel="nofollow noopener noreferrer external"
|
rel="nofollow noopener noreferrer external"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
{% if movie.cover %}
|
{% if movie.cover %}
|
||||||
<img alt="{{ movie.title }}" src="{{ movie.cover }}" />
|
<img alt="{{ movie.title }}" src="{{ movie.cover }}"/>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if locale === "en" %}
|
{% if locale === "en" %}
|
||||||
{% product movie.asin, movie.title, "en" %}
|
{% product movie.asin,
|
||||||
{% else %}
|
movie.title,
|
||||||
{% product movie.asin, movie.title %}
|
"en" %}
|
||||||
{% endif %}
|
{% else %}
|
||||||
{% endif %}
|
{% product movie.asin,
|
||||||
</a>
|
movie.title %}
|
||||||
{% elif movie.imdb %}
|
{% endif %}
|
||||||
<a
|
{% endif %}
|
||||||
class="product"
|
</a>
|
||||||
href="https://www.imdb.com/title/{{ movie.imdb }}"
|
{% elif movie.imdb %}
|
||||||
rel="nofollow noopener noreferrer external"
|
<a
|
||||||
target="_blank"
|
class="product"
|
||||||
>
|
href="https://www.imdb.com/title/{{ movie.imdb }}"
|
||||||
<img alt="{{ movie.title }}" src="{{ movie.cover }}" />
|
rel="nofollow noopener noreferrer external"
|
||||||
</a>
|
target="_blank"
|
||||||
{% else %}
|
>
|
||||||
<img alt="{{ movie.title }}" src="{{ movie.cover }}" />
|
<img alt="{{ movie.title }}" src="{{ movie.cover }}"/>
|
||||||
{% endif %}
|
</a>
|
||||||
<h3 class="recommendations-product-title">
|
{% else %}
|
||||||
{{ movie.title }}
|
<img alt="{{ movie.title }}" src="{{ movie.cover }}"/>
|
||||||
</h3>
|
{% endif %}
|
||||||
</div>
|
<h3 class="recommendations-product-title">
|
||||||
{% endfor %}
|
{{ movie.title }}
|
||||||
</article>
|
</h3>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</article>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% if robots %}
|
{% if robots %}
|
||||||
<meta name="robots" content="{{ robots }}" />
|
<meta name="robots" content="{{ robots }}"/>
|
||||||
{% else %}
|
{% else %}
|
||||||
<meta name="robots" content="all" />
|
<meta name="robots" content="all"/>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
{% set js %}
|
{% set js %}
|
||||||
{% include "../assets/scripts/embedded/theme-switcher.js" %}
|
{% include "../assets/scripts/embedded/theme-switcher.js" %}
|
||||||
{% if site.isProduction %}
|
{% if site.isProduction %}
|
||||||
{% include "../assets/scripts/embedded/register-serviceworker.js" %}
|
{% include "../assets/scripts/embedded/register-serviceworker.js" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endset %}
|
{% endset %}
|
||||||
<script>{{ js | jsmin | safe }}</script>
|
<script>
|
||||||
|
{{ js | jsmin | safe }}
|
||||||
|
</script>
|
||||||
|
|||||||
@@ -1,28 +1,27 @@
|
|||||||
{% if site.isProduction %}
|
{% if site.isProduction %}
|
||||||
{% set criticalCSS %}
|
{% set criticalCSS %}
|
||||||
{% include "critical/base.css" %}
|
{% include "critical/base.css" %}
|
||||||
{% if css %}
|
{% if css %}
|
||||||
{% include "critical/" + css %}
|
{% include "critical/" + css %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endset %}
|
{% endset %}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
{{ criticalCSS | safe }}
|
{{criticalCSS | safe}}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ '/assets/styles/base.css' | url }}" />
|
<link rel="stylesheet" href="{{ '/assets/styles/base.css' | url }}"/>
|
||||||
{% if css %}
|
{% if css %}
|
||||||
<link rel="stylesheet" href="{{ '/assets/styles/' + css | url }}" />
|
<link rel="stylesheet" href="{{ '/assets/styles/' + css | url }}"/>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ '/assets/styles/main.css' | url }}" media="print" onload="this.media='all'" />
|
<link rel="stylesheet" href="{{ '/assets/styles/main.css' | url }}" media="print" onload="this.media='all'"/>
|
||||||
<link rel="stylesheet" href="{{ '/assets/styles/print.css' | url }}" media="print" />
|
<link rel="stylesheet" href="{{ '/assets/styles/print.css' | url }}" media="print"/>
|
||||||
|
|
||||||
|
|
||||||
<noscript>
|
<noscript>
|
||||||
<link rel="stylesheet" href="{{ '/assets/styles/main.css' | url }}" />
|
<link rel="stylesheet" href="{{ '/assets/styles/main.css' | url }}"/>
|
||||||
</noscript>
|
</noscript>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<button id="theme-toggle" class="theme-toggle" aria-label="{{ i18n[locale].themeToggle }}">
|
<button id="theme-toggle" class="theme-toggle" aria-label="{{ i18n[locale].themeToggle }}">
|
||||||
<svg class="theme-toggle-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
<svg class="theme-toggle-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
||||||
<use xlink:href="#circle"></use>
|
<use xlink:href="#circle"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<a id="up-link" class="up-link" href="#top" onClick="{scrollToTop}">
|
<a id="up-link" class="up-link" href="#top" onClick="{scrollToTop}">
|
||||||
<button class="up-link-button" aria-label="{{ i18n[locale].upLink }}">
|
<button class="up-link-button" aria-label="{{ i18n[locale].upLink }}">
|
||||||
<svg class="up-link-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
<svg class="up-link-icon" aria-hidden="true" viewBox="0 0 24 24" width="1em" height="1em">
|
||||||
<use xlink:href="#arrow-up"></use>
|
<use xlink:href="#arrow-up"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -1,37 +1,45 @@
|
|||||||
{% if locale === "de" %}{% set localizedDescription = site.description['de'] %}{% endif %}
|
{% if locale === "de" %}{% set localizedDescription = site.description['de'] %}
|
||||||
{% if locale === "en" %}{% set localizedDescription = site.description['en'] %}{% endif %}
|
{% endif %}
|
||||||
|
{% if locale === "en" %}{% set localizedDescription = site.description['en'] %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="{{ locale }}" dir="{{ dir }}" class="no-js">
|
<html lang="{{ locale }}" dir="{{ dir }}" class="no-js">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8"/>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||||
|
|
||||||
<title>
|
<title>
|
||||||
{%- if isHome -%}
|
{%- if isHome -%}
|
||||||
{{ site.title | replace("­", "") }} · {{ localizedDescription }}
|
{{ site.title | replace("­", "") }} · {{ localizedDescription }}
|
||||||
{%- else -%}
|
{%- else -%}
|
||||||
{{ title | replace("­", "") }} · {{ site.title }} · {{ localizedDescription }}
|
{{ title | replace("­", "") }} · {{ site.title }} · {{ localizedDescription }}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
</title>
|
</title>
|
||||||
|
|
||||||
<link rel="canonical" href="{{ site.url }}{{ page.url }}" />
|
<link rel="canonical" href="{{ site.url }}{{ page.url }}"/>
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
document.documentElement.classList.remove('no-js');
|
document
|
||||||
document.documentElement.classList.add('js');
|
.documentElement
|
||||||
</script>
|
.classList
|
||||||
|
.remove('no-js');
|
||||||
|
document
|
||||||
|
.documentElement
|
||||||
|
.classList
|
||||||
|
.add('js');
|
||||||
|
</script>
|
||||||
|
|
||||||
{% include "scripts.njk" %}
|
{% include "scripts.njk" %}
|
||||||
{% include "styles.njk" %}
|
{% include "styles.njk" %}
|
||||||
{% include "favicons.njk" %}
|
{% include "favicons.njk" %}
|
||||||
{% include "meta-tags.njk" %}
|
{% include "meta-tags.njk" %}
|
||||||
{% include "preload.njk" %}
|
{% include "preload.njk" %}
|
||||||
{% include "robots.njk" %}
|
{% include "robots.njk" %}
|
||||||
</head>
|
</head>
|
||||||
<body {% if bodyClass %}class="{{ bodyClass }}"{% endif %} id="top">
|
<body {% if bodyClass %}class="{{ bodyClass }}"{% endif %} id="top">
|
||||||
{% include "icon-sprites.njk" %}
|
{% include "icon-sprites.njk" %}
|
||||||
{{ content | safe }}
|
{{ content | safe }}
|
||||||
<script src="/assets/scripts/main.js" async></script>
|
<script src="/assets/scripts/main.js" async></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -4,6 +4,6 @@ layout: base
|
|||||||
|
|
||||||
{% include "page-header.njk" %}
|
{% include "page-header.njk" %}
|
||||||
<main class="page-content">
|
<main class="page-content">
|
||||||
{{ content | safe }}
|
{{ content | safe }}
|
||||||
</main>
|
</main>
|
||||||
{% include "page-footer.njk" %}
|
{% include "page-footer.njk" %}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ layout: default
|
|||||||
---
|
---
|
||||||
|
|
||||||
<section class="layout-fullsize-section">
|
<section class="layout-fullsize-section">
|
||||||
<div class="layout-fullsize rowgap">
|
<div class="layout-fullsize rowgap">
|
||||||
{{ content | safe }}
|
{{ content | safe }}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ layout: default
|
|||||||
---
|
---
|
||||||
|
|
||||||
<div class="layout-narrow">
|
<div class="layout-narrow">
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
{{ content | safe }}
|
{{ content | safe }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,26 +2,34 @@
|
|||||||
layout: narrow
|
layout: narrow
|
||||||
---
|
---
|
||||||
|
|
||||||
{% if locale === "de" %}{% set pageCollection = collections.sortedGermanBookPages %}{% endif %}
|
{% if locale === "de" %}{% set pageCollection = collections.sortedGermanBookPages %}
|
||||||
{% if locale === "en" %}{% set pageCollection = collections.sortedEnglishBookPages %}{% endif %}
|
{% endif %}
|
||||||
|
{% if locale === "en" %}{% set pageCollection = collections.sortedEnglishBookPages %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% set previousPost = pageCollection | getPreviousCollectionItem(page) %}
|
{% set previousPost = pageCollection | getPreviousCollectionItem(page) %}
|
||||||
{% set nextPost = pageCollection | getNextCollectionItem(page) %}
|
{% set nextPost = pageCollection | getNextCollectionItem(page) %}
|
||||||
|
|
||||||
<article class="page-container">
|
<article class="page-container">
|
||||||
<h1 class="page-title" >{{ title | nbsp | safe }}</h1>
|
<h1 class="page-title" >{{ title | nbsp | safe }}</h1>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
{{ content | safe }}
|
{{ content | safe }}
|
||||||
</div>
|
</div>
|
||||||
{% if author or translator %}
|
{% if author or translator %}
|
||||||
<hr />
|
<hr/>
|
||||||
<footer>
|
<footer>
|
||||||
<small>
|
<small>
|
||||||
{% if author %}<strong>{{ i18n[locale].creditAuthor }}</strong> <em>{{ author }}</em>{% endif %}
|
{% if author %}
|
||||||
{% if author and translator %} • {% endif %}
|
<strong>{{ i18n[locale].creditAuthor }}</strong>
|
||||||
{% if translator %}<strong>{{ i18n[locale].creditTranslator }}</strong> <em>{{ translator }}</em>{% endif %}
|
<em>{{ author }}</em>
|
||||||
</small>
|
{% endif %}
|
||||||
</footer>
|
{% if author and translator %} • {% endif %}
|
||||||
{% endif %}
|
{% if translator %}
|
||||||
{% include "pagination.njk" %}
|
<strong>{{ i18n[locale].creditTranslator }}</strong>
|
||||||
|
<em>{{ translator }}</em>
|
||||||
|
{% endif %}
|
||||||
|
</small>
|
||||||
|
</footer>
|
||||||
|
{% endif %}
|
||||||
|
{% include "pagination.njk" %}
|
||||||
</article>
|
</article>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"layout": "page",
|
"layout": "page",
|
||||||
"tags": ["book", "german"],
|
"tags": ["book", "german"],
|
||||||
"templateEngineOverride": "njk,md"
|
"templateEngineOverride": "njk,md"
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user