123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- var m = require('mithril');
- var _dbs = require('./dbs');
- var _i18n = require('./i18n');
- var markdown = require('markdown-it')()
- .use(require('markdown-it-footnote'));
- // import * as i18next from 'i18next';
- // __ __ __
- // / / / /__ ____ _____/ /__ _____
- // / /_/ / _ \/ __ `/ __ / _ \/ ___/
- // / __ / __/ /_/ / /_/ / __/ /
- // /_/ /_/\___/\__,_/\__,_/\___/_/
- module.exports = {
- // onupdate(vn){
- // // console.log("Header onupdate : vn", vn);
- // },
- view(vn){
- // console.log("Header view : vn", vn);
- return m('header', [
- m('hgroup', [
- m('h1', 'Ethica'),
- m('h2', 'Spinoza (1632-1677)')
- ]),
- m('div', {'id':"menus"}, [
- m(_PartsNav),
- m(_RouteMenu),
- m(_LangMenu)
- ])
- ]);
- }
- }
- // ____ __
- // / __ \____ ______/ /______ ____ ___ ___ ____ __ __
- // / /_/ / __ `/ ___/ __/ ___/ / __ `__ \/ _ \/ __ \/ / / /
- // / ____/ /_/ / / / /_(__ ) / / / / / / __/ / / / /_/ /
- // /_/ \__,_/_/ \__/____/ /_/ /_/ /_/\___/_/ /_/\__,_/
- var _PartsNav = {
- view(vn){
- var lang = m.route.param('lang');
- // console.log('partsmenu', lang);
- return m('nav', {id:'parts-nav'}, [
- // TODO: replaced labels with localized content
- m('h3', _i18n.t('Parts')),
- m('ul', _dbs.data[lang].map(function(p){
- // console.log("anchors, part", p);
- if(p.id !== "intro"){
- return m('li', [
- m('a', {'href':'#'+p.id}, m.trust(markdown.renderInline(p.title)))
- ]);
- }
- })
- )
- ]);
- }
- };
- // ____ __
- // / __ \____ __ __/ /____ ____ ___ ___ ____ __ __
- // / /_/ / __ \/ / / / __/ _ \ / __ `__ \/ _ \/ __ \/ / / /
- // / _, _/ /_/ / /_/ / /_/ __/ / / / / / / __/ / / / /_/ /
- // /_/ |_|\____/\__,_/\__/\___/ /_/ /_/ /_/\___/_/ /_/\__,_/
- var _RouteMenu = {
- view(){
- var lang = m.route.param('lang');
- var path = m.route.get().match(/^(\/[^\/]+)(\/[^\/|#]+)(.*)$/);
- // console.log('Route menu Path', path);
- return m('nav', {id:'routes'}, [
- // TODO: replaced labels with localized content
- m('h3', _i18n.t('Mode')),
- m('ul', [
- m('li', m('a', {
- 'href':`/${lang}/text${path[3]}`,
- oncreate : m.route.link,
- onupdate : m.route.link
- }, _i18n.t("Text"))),
- m('li', m('a', {
- 'href':`/${lang}/connections${path[3]}`,
- oncreate : m.route.link,
- onupdate : m.route.link
- }, _i18n.t("Connections"))),
- ])
- ]);
- }
- }
- // __ __ ___
- // / / ____ _____ ____ _/ |/ /__ ____ __ __
- // / / / __ `/ __ \/ __ `/ /|_/ / _ \/ __ \/ / / /
- // / /___/ /_/ / / / / /_/ / / / / __/ / / / /_/ /
- // /_____/\__,_/_/ /_/\__, /_/ /_/\___/_/ /_/\__,_/
- // /____/
- var _LangMenu = {
- view(){
- var path = m.route.get().match(/^\/[^\/]+(.+)$/);
- // console.log('Lang menu Path', path);
- // create ul dom
- // console.log("Header _LangMenu view : i18next", i18next);
- return m('nav', {id:'languages'}, [
- // TODO: replaced labels with localized content
- m('h3', _i18n.t('Language')),
- m('ul', _dbs.langs.map(lang => {
- // create li dom for each lang link
- return m('li', m('a', {
- 'lang':lang.lc,
- 'href':`/${lang.lc}${path[1]}`,
- oncreate : m.route.link,
- onupdate : m.route.link
- }, lang.label)
- );
- }))
- ]);
- }
- }
|