mirror of
https://github.com/antos-rde/antosdk-apps.git
synced 2025-07-19 23:39:46 +02:00
move some optional packages to new repository
This commit is contained in:
11
Blogger/Makefile
Normal file
11
Blogger/Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
coffee_files = dialogs.coffee main.coffee
|
||||
|
||||
jsfiles = katex/katex.js katex/auto-render.js
|
||||
|
||||
cssfiles = main.css katex/katex.css
|
||||
|
||||
copyfiles = scheme.html cvsection.html package.json katex/fonts api/sendmail.lua sendmail.html
|
||||
|
||||
|
||||
PKG_NAME=Blogger
|
||||
include ../pkg.mk
|
17
Blogger/api/sendmail.lua
Normal file
17
Blogger/api/sendmail.lua
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
local data = ...
|
||||
print(data.content)
|
||||
for k,v in pairs(data.to) do
|
||||
print("sent to:"..v)
|
||||
local to = v
|
||||
local from = "From: xsang.le@gmail.com\n"
|
||||
local suject = "Subject: " .. data.title .. "\n"
|
||||
local content = data.content.."\n"
|
||||
local cmd = 'echo "' .. utils.escape(from .. suject .. content) .. '"| sendmail ' .. to
|
||||
--print(cmd)
|
||||
local r = os.execute(cmd)
|
||||
if not r then
|
||||
print("Cannot send mail to: "..v)
|
||||
end
|
||||
end
|
||||
return "Email sent"
|
32
Blogger/cvsection.html
Normal file
32
Blogger/cvsection.html
Normal file
@ -0,0 +1,32 @@
|
||||
<afx-app-window data-id = "blogger-cv-sec-win" apptitle="Porforlio section" width="450" height="400">
|
||||
<afx-vbox >
|
||||
<div data-height="5"></div>
|
||||
<afx-hbox data-height = "30" >
|
||||
<afx-label data-width= "70" text = "__(Title)"></afx-label>
|
||||
<input type = "text" name="title" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height = "30" >
|
||||
<afx-label text = "__(Subtitle)" data-width= "70"></afx-label>
|
||||
<input type = "text" name="subtitle" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height = "30" >
|
||||
<afx-label text = "__(Location)" data-width= "70"></afx-label>
|
||||
<input type = "text" name="location" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height = "30" >
|
||||
<afx-label text = "__(From)" data-width= "70"></afx-label>
|
||||
<input type = "text" name="start" input-class = "user-input"/>
|
||||
<afx-label text = "To:" style="text-align:center;" data-width= "70"></afx-label>
|
||||
<input type = "text" name="end" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-label data-height = "30" text = "Content" style = "margin-left:5px;"/>
|
||||
<div data-id="editor-container">
|
||||
<textarea name="content" data-id = "contentarea" />
|
||||
</div>
|
||||
<afx-hbox data-height = "35">
|
||||
<div></div>
|
||||
<afx-switch data data-id = "section-publish" data-width="30"></afx-switch>
|
||||
<afx-button iconclass = "fa fa-save" data-id = "bt-cv-sec-save" data-width="60" text = "__(Save)"/>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
</afx-app-window>
|
176
Blogger/dialogs.coffee
Normal file
176
Blogger/dialogs.coffee
Normal file
@ -0,0 +1,176 @@
|
||||
# Copyright 2017-2018 Xuan Sang LE <xsang.le AT gmail DOT com>
|
||||
|
||||
# AnTOS Web desktop is is licensed under the GNU General Public
|
||||
# License v3.0, see the LICENCE file for more information
|
||||
|
||||
# This program is free software: you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of
|
||||
# the License, or (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
#along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
class BloggerCategoryDialog extends this.OS.GUI.BasicDialog
|
||||
constructor: () ->
|
||||
super "BloggerCategoryDialog", {
|
||||
tags: [
|
||||
{ tag: "afx-label", att: "data-height = '20', text = 'Pick a parent'" },
|
||||
{ tag: "afx-tree-view" },
|
||||
{ tag: "afx-label", att: "data-height = '20', text = 'Category name'" },
|
||||
{ tag: "input", att: "type = 'text' data-height = '20'" }
|
||||
],
|
||||
width: 200,
|
||||
height: 300,
|
||||
resizable: true,
|
||||
buttons: [
|
||||
{
|
||||
label: "0k",
|
||||
onclick: (d) ->
|
||||
sel = (d.find "content1").get "selectedItem"
|
||||
return d.notify __("Please select a parent category") unless sel
|
||||
val = (d.find "content3").value
|
||||
return d.notify __("Please enter category name") if val is "" and not d.data.selonly
|
||||
return d.notify __("Parent can not be the category itself") if d.data.cat and d.data.cat.id is sel.id
|
||||
d.handler { p: sel, value: val } if d.handler
|
||||
d.quit()
|
||||
},
|
||||
{
|
||||
label: "Cancel",
|
||||
onclick: (d) -> d.quit()
|
||||
}
|
||||
],
|
||||
filldata: (d) ->
|
||||
return unless d.data
|
||||
#console.log d.data
|
||||
tree = d.find "content1"
|
||||
tree.set "data", d.data.tree if d.data.tree
|
||||
if d.data.cat
|
||||
it = (tree.find "id", d.data.cat.pid)[0]
|
||||
tree.set "selectedItem", it
|
||||
(d.find "content3").value = d.data.cat.name
|
||||
#(d.find "content0").set "text", d.data.label
|
||||
#(d.find "content1").value = d.data.value if d.data.value
|
||||
xtra: (d) ->
|
||||
$( d.find "content3" ).keyup (e) ->
|
||||
(d.find "bt0").trigger() if e.which is 13
|
||||
}
|
||||
|
||||
# This dialog is use for cv section editing
|
||||
|
||||
class BloggerCVSectionDiaglog extends this.OS.GUI.BaseDialog
|
||||
constructor: () ->
|
||||
super "BloggerCVSectionDiaglog"
|
||||
|
||||
init: () ->
|
||||
@render "#{@path()}/cvsection.html"
|
||||
|
||||
main: () ->
|
||||
me = @
|
||||
@scheme.set "apptitle", @title
|
||||
@editor = new SimpleMDE
|
||||
element: @find "contentarea"
|
||||
status: false
|
||||
toolbar: false
|
||||
($ (@select '[class = "CodeMirror-scroll"]')[0]).css "min-height", "50px"
|
||||
($ (@select '[class="CodeMirror cm-s-paper CodeMirror-wrap"]')[0]).css "min-height", "50px"
|
||||
@on "vboxchange", () ->
|
||||
me.resizeContent()
|
||||
|
||||
inputs = me.select "[input-class='user-input']"
|
||||
(($ v).val me.data[v.name] for v in inputs ) if me.data
|
||||
@editor.value me.data.content if me.data and me.data.content
|
||||
(me.find "section-publish").set "swon", (if Number(me.data.publish) then true else false)
|
||||
(@find "bt-cv-sec-save").set "onbtclick", (e) ->
|
||||
data = {}
|
||||
console.log inputs
|
||||
data[v.name] = ($ v).val() for v in inputs
|
||||
data.content = me.editor.value()
|
||||
return me.notify __("Title or content must not be blank") if data.title is "" and data.content is ""
|
||||
#return me.notify "Content must not be blank" if data.content is ""
|
||||
data.id = me.data.id if me.data and me.data.id
|
||||
if (me.find "section-publish").get "swon"
|
||||
data.publish = 1
|
||||
else
|
||||
data.publish = 0
|
||||
|
||||
me.handler data if me.handler
|
||||
me.quit()
|
||||
me.resizeContent()
|
||||
resizeContent: () ->
|
||||
container = @find "editor-container"
|
||||
children = ($ container).children()
|
||||
cheight = ($ container).height() - 30
|
||||
($ children[1]).css("height", cheight + "px")
|
||||
|
||||
# this dialog is for send mail
|
||||
class BloggerSendmailDiaglog extends this.OS.GUI.BaseDialog
|
||||
constructor: () ->
|
||||
super "BloggerCVSectionDiaglog"
|
||||
|
||||
init: () ->
|
||||
@render "#{@path()}/sendmail.html"
|
||||
@subdb = new @.parent._api.DB("subscribers")
|
||||
|
||||
main: () ->
|
||||
# get db
|
||||
me = @
|
||||
@maillinglist = @find "email-list"
|
||||
title = (new RegExp "^#+(.*)\n", "g").exec @data.content
|
||||
(@find "mail-title").value = title[1]
|
||||
content = (@data.content.substring 0, 500) + "..."
|
||||
(@find "contentarea").value = BloggerSendmailDiaglog.template.format @data.id, content, @data.id
|
||||
|
||||
@subdb.find {}, (d) ->
|
||||
return me.error __("Cannot fetch subscribers data: {0}", d.error) if d.error
|
||||
for v in d.result
|
||||
v.text = v.name
|
||||
v.switch = true
|
||||
v.checked = true
|
||||
|
||||
me.maillinglist.set "items", d.result
|
||||
|
||||
(@find "bt-sendmail").set "onbtclick", (e) ->
|
||||
items = me.maillinglist.get "items"
|
||||
emails = []
|
||||
emails.push v.email for v in items when v.checked is true
|
||||
return me.notify __("No email selected") if emails.length is 0
|
||||
# send the email
|
||||
data =
|
||||
path: "#{me.parent.path()}/sendmail.lua",
|
||||
parameters:
|
||||
to: emails,
|
||||
title: (me.find "mail-title").value,
|
||||
content: (me.find "contentarea").value
|
||||
me._api.post "system/apigateway", data, (d) ->
|
||||
me.notify "Sendmail: {0}".format d
|
||||
me.quit()
|
||||
, (e, s) ->
|
||||
console.log e
|
||||
me.error __("Error sending mail: {0}", e.responseText)
|
||||
|
||||
|
||||
|
||||
BloggerSendmailDiaglog.template = """
|
||||
Hello,
|
||||
|
||||
Xuan Sang LE has just published a new post on his blog: https://blog.lxsang.me/post/id/{0}
|
||||
|
||||
==========
|
||||
{1}
|
||||
==========
|
||||
|
||||
|
||||
Read the full article via:
|
||||
https://blog.lxsang.me/post/id/{2}
|
||||
|
||||
You receive this email because you have been subscribed to his blog.
|
||||
|
||||
Have a nice day,
|
||||
|
||||
Sent from Blogger, an AntOS application
|
||||
"""
|
790
Blogger/katex/auto-render.js
Normal file
790
Blogger/katex/auto-render.js
Normal file
@ -0,0 +1,790 @@
|
||||
(function webpackUniversalModuleDefinition(root, factory) {
|
||||
if(typeof exports === 'object' && typeof module === 'object')
|
||||
module.exports = factory(require("katex"));
|
||||
else if(typeof define === 'function' && define.amd)
|
||||
define(["katex"], factory);
|
||||
else if(typeof exports === 'object')
|
||||
exports["renderMathInElement"] = factory(require("katex"));
|
||||
else
|
||||
root["renderMathInElement"] = factory(root["katex"]);
|
||||
})(this, function(__WEBPACK_EXTERNAL_MODULE_38__) {
|
||||
return /******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, {
|
||||
/******/ configurable: false,
|
||||
/******/ enumerable: true,
|
||||
/******/ get: getter
|
||||
/******/ });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
/******/
|
||||
/******/ // Load entry module and return exports
|
||||
/******/ return __webpack_require__(__webpack_require__.s = 9);
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([
|
||||
/* 0 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
|
||||
var global = module.exports = typeof window != 'undefined' && window.Math == Math
|
||||
? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
|
||||
if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
|
||||
|
||||
/***/ }),
|
||||
/* 1 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = function(it){
|
||||
return typeof it === 'object' ? it !== null : typeof it === 'function';
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 2 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// Thank's IE8 for his funny defineProperty
|
||||
module.exports = !__webpack_require__(3)(function(){
|
||||
return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
/* 3 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = function(exec){
|
||||
try {
|
||||
return !!exec();
|
||||
} catch(e){
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 4 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
var core = module.exports = {version: '2.4.0'};
|
||||
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
|
||||
|
||||
/***/ }),
|
||||
/* 5 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// to indexed object, toObject with fallback for non-array-like ES3 strings
|
||||
var IObject = __webpack_require__(6)
|
||||
, defined = __webpack_require__(7);
|
||||
module.exports = function(it){
|
||||
return IObject(defined(it));
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 6 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// fallback for non-array-like ES3 and non-enumerable old V8 strings
|
||||
var cof = __webpack_require__(27);
|
||||
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
|
||||
return cof(it) == 'String' ? it.split('') : Object(it);
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 7 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
// 7.2.1 RequireObjectCoercible(argument)
|
||||
module.exports = function(it){
|
||||
if(it == undefined)throw TypeError("Can't call method on " + it);
|
||||
return it;
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 8 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
// 7.1.4 ToInteger
|
||||
var ceil = Math.ceil
|
||||
, floor = Math.floor;
|
||||
module.exports = function(it){
|
||||
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 9 */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
||||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__ = __webpack_require__(10);
|
||||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign__);
|
||||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_katex__ = __webpack_require__(38);
|
||||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_katex___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_katex__);
|
||||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__splitAtDelimiters__ = __webpack_require__(39);
|
||||
|
||||
/* eslint no-console:0 */
|
||||
|
||||
|
||||
|
||||
|
||||
var splitWithDelimiters = function splitWithDelimiters(text, delimiters) {
|
||||
var data = [{ type: "text", data: text }];
|
||||
for (var i = 0; i < delimiters.length; i++) {
|
||||
var delimiter = delimiters[i];
|
||||
data = Object(__WEBPACK_IMPORTED_MODULE_2__splitAtDelimiters__["a" /* default */])(data, delimiter.left, delimiter.right, delimiter.display || false);
|
||||
}
|
||||
return data;
|
||||
};
|
||||
|
||||
/* Note: optionsCopy is mutated by this method. If it is ever exposed in the
|
||||
* API, we should copy it before mutating.
|
||||
*/
|
||||
var renderMathInText = function renderMathInText(text, optionsCopy) {
|
||||
var data = splitWithDelimiters(text, optionsCopy.delimiters);
|
||||
var fragment = document.createDocumentFragment();
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i].type === "text") {
|
||||
fragment.appendChild(document.createTextNode(data[i].data));
|
||||
} else {
|
||||
var span = document.createElement("span");
|
||||
var math = data[i].data;
|
||||
// Override any display mode defined in the settings with that
|
||||
// defined by the text itself
|
||||
optionsCopy.displayMode = data[i].display;
|
||||
try {
|
||||
__WEBPACK_IMPORTED_MODULE_1_katex___default.a.render(math, span, optionsCopy);
|
||||
} catch (e) {
|
||||
if (!(e instanceof __WEBPACK_IMPORTED_MODULE_1_katex___default.a.ParseError)) {
|
||||
throw e;
|
||||
}
|
||||
optionsCopy.errorCallback("KaTeX auto-render: Failed to parse `" + data[i].data + "` with ", e);
|
||||
fragment.appendChild(document.createTextNode(data[i].rawData));
|
||||
continue;
|
||||
}
|
||||
fragment.appendChild(span);
|
||||
}
|
||||
}
|
||||
|
||||
return fragment;
|
||||
};
|
||||
|
||||
var renderElem = function renderElem(elem, optionsCopy) {
|
||||
for (var i = 0; i < elem.childNodes.length; i++) {
|
||||
var childNode = elem.childNodes[i];
|
||||
if (childNode.nodeType === 3) {
|
||||
// Text node
|
||||
var frag = renderMathInText(childNode.textContent, optionsCopy);
|
||||
i += frag.childNodes.length - 1;
|
||||
elem.replaceChild(frag, childNode);
|
||||
} else if (childNode.nodeType === 1) {
|
||||
// Element node
|
||||
var shouldRender = optionsCopy.ignoredTags.indexOf(childNode.nodeName.toLowerCase()) === -1;
|
||||
|
||||
if (shouldRender) {
|
||||
renderElem(childNode, optionsCopy);
|
||||
}
|
||||
}
|
||||
// Otherwise, it's something else, and ignore it.
|
||||
}
|
||||
};
|
||||
|
||||
var defaultAutoRenderOptions = {
|
||||
delimiters: [{ left: "$$", right: "$$", display: true }, { left: "\\[", right: "\\]", display: true }, { left: "\\(", right: "\\)", display: false }],
|
||||
|
||||
ignoredTags: ["script", "noscript", "style", "textarea", "pre", "code"],
|
||||
|
||||
errorCallback: function errorCallback(msg, err) {
|
||||
console.error(msg, err);
|
||||
}
|
||||
};
|
||||
|
||||
var renderMathInElement = function renderMathInElement(elem, options) {
|
||||
if (!elem) {
|
||||
throw new Error("No element provided to render");
|
||||
}
|
||||
|
||||
var optionsCopy = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_assign___default()({}, defaultAutoRenderOptions, options);
|
||||
renderElem(elem, optionsCopy);
|
||||
};
|
||||
|
||||
/* harmony default export */ __webpack_exports__["default"] = (renderMathInElement);
|
||||
|
||||
/***/ }),
|
||||
/* 10 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = { "default": __webpack_require__(11), __esModule: true };
|
||||
|
||||
/***/ }),
|
||||
/* 11 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
__webpack_require__(12);
|
||||
module.exports = __webpack_require__(4).Object.assign;
|
||||
|
||||
/***/ }),
|
||||
/* 12 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// 19.1.3.1 Object.assign(target, source)
|
||||
var $export = __webpack_require__(13);
|
||||
|
||||
$export($export.S + $export.F, 'Object', {assign: __webpack_require__(23)});
|
||||
|
||||
/***/ }),
|
||||
/* 13 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var global = __webpack_require__(0)
|
||||
, core = __webpack_require__(4)
|
||||
, ctx = __webpack_require__(14)
|
||||
, hide = __webpack_require__(16)
|
||||
, PROTOTYPE = 'prototype';
|
||||
|
||||
var $export = function(type, name, source){
|
||||
var IS_FORCED = type & $export.F
|
||||
, IS_GLOBAL = type & $export.G
|
||||
, IS_STATIC = type & $export.S
|
||||
, IS_PROTO = type & $export.P
|
||||
, IS_BIND = type & $export.B
|
||||
, IS_WRAP = type & $export.W
|
||||
, exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
|
||||
, expProto = exports[PROTOTYPE]
|
||||
, target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
|
||||
, key, own, out;
|
||||
if(IS_GLOBAL)source = name;
|
||||
for(key in source){
|
||||
// contains in native
|
||||
own = !IS_FORCED && target && target[key] !== undefined;
|
||||
if(own && key in exports)continue;
|
||||
// export native or passed
|
||||
out = own ? target[key] : source[key];
|
||||
// prevent global pollution for namespaces
|
||||
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
|
||||
// bind timers to global for call from export context
|
||||
: IS_BIND && own ? ctx(out, global)
|
||||
// wrap global constructors for prevent change them in library
|
||||
: IS_WRAP && target[key] == out ? (function(C){
|
||||
var F = function(a, b, c){
|
||||
if(this instanceof C){
|
||||
switch(arguments.length){
|
||||
case 0: return new C;
|
||||
case 1: return new C(a);
|
||||
case 2: return new C(a, b);
|
||||
} return new C(a, b, c);
|
||||
} return C.apply(this, arguments);
|
||||
};
|
||||
F[PROTOTYPE] = C[PROTOTYPE];
|
||||
return F;
|
||||
// make static versions for prototype methods
|
||||
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
|
||||
// export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
|
||||
if(IS_PROTO){
|
||||
(exports.virtual || (exports.virtual = {}))[key] = out;
|
||||
// export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
|
||||
if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
|
||||
}
|
||||
}
|
||||
};
|
||||
// type bitmap
|
||||
$export.F = 1; // forced
|
||||
$export.G = 2; // global
|
||||
$export.S = 4; // static
|
||||
$export.P = 8; // proto
|
||||
$export.B = 16; // bind
|
||||
$export.W = 32; // wrap
|
||||
$export.U = 64; // safe
|
||||
$export.R = 128; // real proto method for `library`
|
||||
module.exports = $export;
|
||||
|
||||
/***/ }),
|
||||
/* 14 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// optional / simple context binding
|
||||
var aFunction = __webpack_require__(15);
|
||||
module.exports = function(fn, that, length){
|
||||
aFunction(fn);
|
||||
if(that === undefined)return fn;
|
||||
switch(length){
|
||||
case 1: return function(a){
|
||||
return fn.call(that, a);
|
||||
};
|
||||
case 2: return function(a, b){
|
||||
return fn.call(that, a, b);
|
||||
};
|
||||
case 3: return function(a, b, c){
|
||||
return fn.call(that, a, b, c);
|
||||
};
|
||||
}
|
||||
return function(/* ...args */){
|
||||
return fn.apply(that, arguments);
|
||||
};
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 15 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = function(it){
|
||||
if(typeof it != 'function')throw TypeError(it + ' is not a function!');
|
||||
return it;
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 16 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var dP = __webpack_require__(17)
|
||||
, createDesc = __webpack_require__(22);
|
||||
module.exports = __webpack_require__(2) ? function(object, key, value){
|
||||
return dP.f(object, key, createDesc(1, value));
|
||||
} : function(object, key, value){
|
||||
object[key] = value;
|
||||
return object;
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 17 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var anObject = __webpack_require__(18)
|
||||
, IE8_DOM_DEFINE = __webpack_require__(19)
|
||||
, toPrimitive = __webpack_require__(21)
|
||||
, dP = Object.defineProperty;
|
||||
|
||||
exports.f = __webpack_require__(2) ? Object.defineProperty : function defineProperty(O, P, Attributes){
|
||||
anObject(O);
|
||||
P = toPrimitive(P, true);
|
||||
anObject(Attributes);
|
||||
if(IE8_DOM_DEFINE)try {
|
||||
return dP(O, P, Attributes);
|
||||
} catch(e){ /* empty */ }
|
||||
if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
|
||||
if('value' in Attributes)O[P] = Attributes.value;
|
||||
return O;
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 18 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var isObject = __webpack_require__(1);
|
||||
module.exports = function(it){
|
||||
if(!isObject(it))throw TypeError(it + ' is not an object!');
|
||||
return it;
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 19 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = !__webpack_require__(2) && !__webpack_require__(3)(function(){
|
||||
return Object.defineProperty(__webpack_require__(20)('div'), 'a', {get: function(){ return 7; }}).a != 7;
|
||||
});
|
||||
|
||||
/***/ }),
|
||||
/* 20 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var isObject = __webpack_require__(1)
|
||||
, document = __webpack_require__(0).document
|
||||
// in old IE typeof document.createElement is 'object'
|
||||
, is = isObject(document) && isObject(document.createElement);
|
||||
module.exports = function(it){
|
||||
return is ? document.createElement(it) : {};
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 21 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// 7.1.1 ToPrimitive(input [, PreferredType])
|
||||
var isObject = __webpack_require__(1);
|
||||
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
|
||||
// and the second argument - flag - preferred type is a string
|
||||
module.exports = function(it, S){
|
||||
if(!isObject(it))return it;
|
||||
var fn, val;
|
||||
if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
|
||||
if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
|
||||
if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
|
||||
throw TypeError("Can't convert object to primitive value");
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 22 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = function(bitmap, value){
|
||||
return {
|
||||
enumerable : !(bitmap & 1),
|
||||
configurable: !(bitmap & 2),
|
||||
writable : !(bitmap & 4),
|
||||
value : value
|
||||
};
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 23 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
// 19.1.2.1 Object.assign(target, source, ...)
|
||||
var getKeys = __webpack_require__(24)
|
||||
, gOPS = __webpack_require__(35)
|
||||
, pIE = __webpack_require__(36)
|
||||
, toObject = __webpack_require__(37)
|
||||
, IObject = __webpack_require__(6)
|
||||
, $assign = Object.assign;
|
||||
|
||||
// should work with symbols and should have deterministic property order (V8 bug)
|
||||
module.exports = !$assign || __webpack_require__(3)(function(){
|
||||
var A = {}
|
||||
, B = {}
|
||||
, S = Symbol()
|
||||
, K = 'abcdefghijklmnopqrst';
|
||||
A[S] = 7;
|
||||
K.split('').forEach(function(k){ B[k] = k; });
|
||||
return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
|
||||
}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
|
||||
var T = toObject(target)
|
||||
, aLen = arguments.length
|
||||
, index = 1
|
||||
, getSymbols = gOPS.f
|
||||
, isEnum = pIE.f;
|
||||
while(aLen > index){
|
||||
var S = IObject(arguments[index++])
|
||||
, keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
|
||||
, length = keys.length
|
||||
, j = 0
|
||||
, key;
|
||||
while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
|
||||
} return T;
|
||||
} : $assign;
|
||||
|
||||
/***/ }),
|
||||
/* 24 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
|
||||
var $keys = __webpack_require__(25)
|
||||
, enumBugKeys = __webpack_require__(34);
|
||||
|
||||
module.exports = Object.keys || function keys(O){
|
||||
return $keys(O, enumBugKeys);
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 25 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var has = __webpack_require__(26)
|
||||
, toIObject = __webpack_require__(5)
|
||||
, arrayIndexOf = __webpack_require__(28)(false)
|
||||
, IE_PROTO = __webpack_require__(31)('IE_PROTO');
|
||||
|
||||
module.exports = function(object, names){
|
||||
var O = toIObject(object)
|
||||
, i = 0
|
||||
, result = []
|
||||
, key;
|
||||
for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
|
||||
// Don't enum bug & hidden keys
|
||||
while(names.length > i)if(has(O, key = names[i++])){
|
||||
~arrayIndexOf(result, key) || result.push(key);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 26 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
var hasOwnProperty = {}.hasOwnProperty;
|
||||
module.exports = function(it, key){
|
||||
return hasOwnProperty.call(it, key);
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 27 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
var toString = {}.toString;
|
||||
|
||||
module.exports = function(it){
|
||||
return toString.call(it).slice(8, -1);
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 28 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// false -> Array#indexOf
|
||||
// true -> Array#includes
|
||||
var toIObject = __webpack_require__(5)
|
||||
, toLength = __webpack_require__(29)
|
||||
, toIndex = __webpack_require__(30);
|
||||
module.exports = function(IS_INCLUDES){
|
||||
return function($this, el, fromIndex){
|
||||
var O = toIObject($this)
|
||||
, length = toLength(O.length)
|
||||
, index = toIndex(fromIndex, length)
|
||||
, value;
|
||||
// Array#includes uses SameValueZero equality algorithm
|
||||
if(IS_INCLUDES && el != el)while(length > index){
|
||||
value = O[index++];
|
||||
if(value != value)return true;
|
||||
// Array#toIndex ignores holes, Array#includes - not
|
||||
} else for(;length > index; index++)if(IS_INCLUDES || index in O){
|
||||
if(O[index] === el)return IS_INCLUDES || index || 0;
|
||||
} return !IS_INCLUDES && -1;
|
||||
};
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 29 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// 7.1.15 ToLength
|
||||
var toInteger = __webpack_require__(8)
|
||||
, min = Math.min;
|
||||
module.exports = function(it){
|
||||
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 30 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var toInteger = __webpack_require__(8)
|
||||
, max = Math.max
|
||||
, min = Math.min;
|
||||
module.exports = function(index, length){
|
||||
index = toInteger(index);
|
||||
return index < 0 ? max(index + length, 0) : min(index, length);
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 31 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var shared = __webpack_require__(32)('keys')
|
||||
, uid = __webpack_require__(33);
|
||||
module.exports = function(key){
|
||||
return shared[key] || (shared[key] = uid(key));
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 32 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
var global = __webpack_require__(0)
|
||||
, SHARED = '__core-js_shared__'
|
||||
, store = global[SHARED] || (global[SHARED] = {});
|
||||
module.exports = function(key){
|
||||
return store[key] || (store[key] = {});
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 33 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
var id = 0
|
||||
, px = Math.random();
|
||||
module.exports = function(key){
|
||||
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 34 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
// IE 8- don't enum bug keys
|
||||
module.exports = (
|
||||
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
|
||||
).split(',');
|
||||
|
||||
/***/ }),
|
||||
/* 35 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
exports.f = Object.getOwnPropertySymbols;
|
||||
|
||||
/***/ }),
|
||||
/* 36 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
exports.f = {}.propertyIsEnumerable;
|
||||
|
||||
/***/ }),
|
||||
/* 37 */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
// 7.1.13 ToObject(argument)
|
||||
var defined = __webpack_require__(7);
|
||||
module.exports = function(it){
|
||||
return Object(defined(it));
|
||||
};
|
||||
|
||||
/***/ }),
|
||||
/* 38 */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = __WEBPACK_EXTERNAL_MODULE_38__;
|
||||
|
||||
/***/ }),
|
||||
/* 39 */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
/* eslint no-constant-condition:0 */
|
||||
var findEndOfMath = function findEndOfMath(delimiter, text, startIndex) {
|
||||
// Adapted from
|
||||
// https://github.com/Khan/perseus/blob/master/src/perseus-markdown.jsx
|
||||
var index = startIndex;
|
||||
var braceLevel = 0;
|
||||
|
||||
var delimLength = delimiter.length;
|
||||
|
||||
while (index < text.length) {
|
||||
var character = text[index];
|
||||
|
||||
if (braceLevel <= 0 && text.slice(index, index + delimLength) === delimiter) {
|
||||
return index;
|
||||
} else if (character === "\\") {
|
||||
index++;
|
||||
} else if (character === "{") {
|
||||
braceLevel++;
|
||||
} else if (character === "}") {
|
||||
braceLevel--;
|
||||
}
|
||||
|
||||
index++;
|
||||
}
|
||||
|
||||
return -1;
|
||||
};
|
||||
|
||||
var splitAtDelimiters = function splitAtDelimiters(startData, leftDelim, rightDelim, display) {
|
||||
var finalData = [];
|
||||
|
||||
for (var i = 0; i < startData.length; i++) {
|
||||
if (startData[i].type === "text") {
|
||||
var text = startData[i].data;
|
||||
|
||||
var lookingForLeft = true;
|
||||
var currIndex = 0;
|
||||
var nextIndex = void 0;
|
||||
|
||||
nextIndex = text.indexOf(leftDelim);
|
||||
if (nextIndex !== -1) {
|
||||
currIndex = nextIndex;
|
||||
finalData.push({
|
||||
type: "text",
|
||||
data: text.slice(0, currIndex)
|
||||
});
|
||||
lookingForLeft = false;
|
||||
}
|
||||
|
||||
while (true) {
|
||||
if (lookingForLeft) {
|
||||
nextIndex = text.indexOf(leftDelim, currIndex);
|
||||
if (nextIndex === -1) {
|
||||
break;
|
||||
}
|
||||
|
||||
finalData.push({
|
||||
type: "text",
|
||||
data: text.slice(currIndex, nextIndex)
|
||||
});
|
||||
|
||||
currIndex = nextIndex;
|
||||
} else {
|
||||
nextIndex = findEndOfMath(rightDelim, text, currIndex + leftDelim.length);
|
||||
if (nextIndex === -1) {
|
||||
break;
|
||||
}
|
||||
|
||||
finalData.push({
|
||||
type: "math",
|
||||
data: text.slice(currIndex + leftDelim.length, nextIndex),
|
||||
rawData: text.slice(currIndex, nextIndex + rightDelim.length),
|
||||
display: display
|
||||
});
|
||||
|
||||
currIndex = nextIndex + rightDelim.length;
|
||||
}
|
||||
|
||||
lookingForLeft = !lookingForLeft;
|
||||
}
|
||||
|
||||
finalData.push({
|
||||
type: "text",
|
||||
data: text.slice(currIndex)
|
||||
});
|
||||
} else {
|
||||
finalData.push(startData[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return finalData;
|
||||
};
|
||||
|
||||
/* harmony default export */ __webpack_exports__["a"] = (splitAtDelimiters);
|
||||
|
||||
/***/ })
|
||||
/******/ ])["default"];
|
||||
});
|
BIN
Blogger/katex/fonts/KaTeX_AMS-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_AMS-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_AMS-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_AMS-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_AMS-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_AMS-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Bold.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Bold.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Bold.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Bold.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Bold.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Bold.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Caligraphic-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Bold.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Bold.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Bold.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Bold.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Bold.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Bold.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Fraktur-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Bold.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Bold.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Bold.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Bold.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Bold.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Bold.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-BoldItalic.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-BoldItalic.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-BoldItalic.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-BoldItalic.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-BoldItalic.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Italic.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Italic.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Italic.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Italic.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Italic.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Italic.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Main-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Main-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Math-Italic.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Math-Italic.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Math-Italic.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Math-Italic.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Math-Italic.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Math-Italic.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Bold.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Bold.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Bold.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Bold.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Bold.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Bold.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Italic.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Italic.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Italic.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Italic.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Italic.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Italic.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_SansSerif-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Script-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Script-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Script-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Script-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Script-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Script-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size1-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size1-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size1-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size1-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size1-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size1-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size2-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size2-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size2-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size2-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size2-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size2-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size3-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size3-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size3-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size3-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size3-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size3-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size4-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size4-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size4-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size4-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Size4-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Size4-Regular.woff2
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Typewriter-Regular.ttf
Normal file
BIN
Blogger/katex/fonts/KaTeX_Typewriter-Regular.ttf
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Typewriter-Regular.woff
Normal file
BIN
Blogger/katex/fonts/KaTeX_Typewriter-Regular.woff
Normal file
Binary file not shown.
BIN
Blogger/katex/fonts/KaTeX_Typewriter-Regular.woff2
Normal file
BIN
Blogger/katex/fonts/KaTeX_Typewriter-Regular.woff2
Normal file
Binary file not shown.
994
Blogger/katex/katex.css
Normal file
994
Blogger/katex/katex.css
Normal file
@ -0,0 +1,994 @@
|
||||
@font-face {
|
||||
font-family: 'KaTeX_AMS';
|
||||
src: url(fonts/KaTeX_AMS-Regular.woff2) format('woff2'), url(fonts/KaTeX_AMS-Regular.woff) format('woff'), url(fonts/KaTeX_AMS-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Caligraphic';
|
||||
src: url(fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'), url(fonts/KaTeX_Caligraphic-Bold.woff) format('woff'), url(fonts/KaTeX_Caligraphic-Bold.ttf) format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Caligraphic';
|
||||
src: url(fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'), url(fonts/KaTeX_Caligraphic-Regular.woff) format('woff'), url(fonts/KaTeX_Caligraphic-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Fraktur';
|
||||
src: url(fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'), url(fonts/KaTeX_Fraktur-Bold.woff) format('woff'), url(fonts/KaTeX_Fraktur-Bold.ttf) format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Fraktur';
|
||||
src: url(fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'), url(fonts/KaTeX_Fraktur-Regular.woff) format('woff'), url(fonts/KaTeX_Fraktur-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Main';
|
||||
src: url(fonts/KaTeX_Main-Bold.woff2) format('woff2'), url(fonts/KaTeX_Main-Bold.woff) format('woff'), url(fonts/KaTeX_Main-Bold.ttf) format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Main';
|
||||
src: url(fonts/KaTeX_Main-BoldItalic.woff2) format('woff2'), url(fonts/KaTeX_Main-BoldItalic.woff) format('woff'), url(fonts/KaTeX_Main-BoldItalic.ttf) format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Main';
|
||||
src: url(fonts/KaTeX_Main-Italic.woff2) format('woff2'), url(fonts/KaTeX_Main-Italic.woff) format('woff'), url(fonts/KaTeX_Main-Italic.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Main';
|
||||
src: url(fonts/KaTeX_Main-Regular.woff2) format('woff2'), url(fonts/KaTeX_Main-Regular.woff) format('woff'), url(fonts/KaTeX_Main-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Math';
|
||||
src: url(fonts/KaTeX_Math-Italic.woff2) format('woff2'), url(fonts/KaTeX_Math-Italic.woff) format('woff'), url(fonts/KaTeX_Math-Italic.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_SansSerif';
|
||||
src: url(fonts/KaTeX_SansSerif-Bold.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Bold.woff) format('woff'), url(fonts/KaTeX_SansSerif-Bold.ttf) format('truetype');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_SansSerif';
|
||||
src: url(fonts/KaTeX_SansSerif-Italic.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Italic.woff) format('woff'), url(fonts/KaTeX_SansSerif-Italic.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_SansSerif';
|
||||
src: url(fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Regular.woff) format('woff'), url(fonts/KaTeX_SansSerif-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Script';
|
||||
src: url(fonts/KaTeX_Script-Regular.woff2) format('woff2'), url(fonts/KaTeX_Script-Regular.woff) format('woff'), url(fonts/KaTeX_Script-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Size1';
|
||||
src: url(fonts/KaTeX_Size1-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size1-Regular.woff) format('woff'), url(fonts/KaTeX_Size1-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Size2';
|
||||
src: url(fonts/KaTeX_Size2-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size2-Regular.woff) format('woff'), url(fonts/KaTeX_Size2-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Size3';
|
||||
src: url(fonts/KaTeX_Size3-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size3-Regular.woff) format('woff'), url(fonts/KaTeX_Size3-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Size4';
|
||||
src: url(fonts/KaTeX_Size4-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size4-Regular.woff) format('woff'), url(fonts/KaTeX_Size4-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'KaTeX_Typewriter';
|
||||
src: url(fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'), url(fonts/KaTeX_Typewriter-Regular.woff) format('woff'), url(fonts/KaTeX_Typewriter-Regular.ttf) format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
.katex-display {
|
||||
display: block;
|
||||
margin: 1em 0;
|
||||
text-align: center;
|
||||
}
|
||||
.katex-display > .katex {
|
||||
display: inline-block;
|
||||
text-align: initial;
|
||||
}
|
||||
.katex {
|
||||
font: normal 1.21em KaTeX_Main, Times New Roman, serif;
|
||||
line-height: 1.2;
|
||||
white-space: nowrap;
|
||||
text-indent: 0;
|
||||
text-rendering: auto;
|
||||
}
|
||||
.katex * {
|
||||
-ms-high-contrast-adjust: none !important;
|
||||
}
|
||||
.katex .katex-html {
|
||||
display: inline-block;
|
||||
}
|
||||
.katex .katex-mathml {
|
||||
position: absolute;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
padding: 0;
|
||||
border: 0;
|
||||
height: 1px;
|
||||
width: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.katex .base {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.katex .strut {
|
||||
display: inline-block;
|
||||
}
|
||||
.katex .textbf {
|
||||
font-weight: bold;
|
||||
}
|
||||
.katex .textit {
|
||||
font-style: italic;
|
||||
}
|
||||
.katex .textrm {
|
||||
font-family: KaTeX_Main;
|
||||
}
|
||||
.katex .textsf {
|
||||
font-family: KaTeX_SansSerif;
|
||||
}
|
||||
.katex .texttt {
|
||||
font-family: KaTeX_Typewriter;
|
||||
}
|
||||
.katex .mathit {
|
||||
font-family: KaTeX_Math;
|
||||
font-style: italic;
|
||||
}
|
||||
.katex .mathrm {
|
||||
font-style: normal;
|
||||
}
|
||||
.katex .mathbf {
|
||||
font-family: KaTeX_Main;
|
||||
font-weight: bold;
|
||||
}
|
||||
.katex .boldsymbol {
|
||||
font-family: KaTeX_Math;
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
}
|
||||
.katex .amsrm {
|
||||
font-family: KaTeX_AMS;
|
||||
}
|
||||
.katex .mathbb {
|
||||
font-family: KaTeX_AMS;
|
||||
}
|
||||
.katex .mathcal {
|
||||
font-family: KaTeX_Caligraphic;
|
||||
}
|
||||
.katex .mathfrak {
|
||||
font-family: KaTeX_Fraktur;
|
||||
}
|
||||
.katex .mathtt {
|
||||
font-family: KaTeX_Typewriter;
|
||||
}
|
||||
.katex .mathscr {
|
||||
font-family: KaTeX_Script;
|
||||
}
|
||||
.katex .mathsf {
|
||||
font-family: KaTeX_SansSerif;
|
||||
}
|
||||
.katex .mainit {
|
||||
font-family: KaTeX_Main;
|
||||
font-style: italic;
|
||||
}
|
||||
.katex .mainrm {
|
||||
font-family: KaTeX_Main;
|
||||
font-style: normal;
|
||||
}
|
||||
.katex .vlist-t {
|
||||
display: inline-table;
|
||||
table-layout: fixed;
|
||||
}
|
||||
.katex .vlist-r {
|
||||
display: table-row;
|
||||
}
|
||||
.katex .vlist {
|
||||
display: table-cell;
|
||||
vertical-align: bottom;
|
||||
position: relative;
|
||||
}
|
||||
.katex .vlist > span {
|
||||
display: block;
|
||||
height: 0;
|
||||
position: relative;
|
||||
}
|
||||
.katex .vlist > span > span {
|
||||
display: inline-block;
|
||||
}
|
||||
.katex .vlist > span > .pstrut {
|
||||
overflow: hidden;
|
||||
width: 0;
|
||||
}
|
||||
.katex .vlist-t2 {
|
||||
margin-right: -2px;
|
||||
}
|
||||
.katex .vlist-s {
|
||||
display: table-cell;
|
||||
vertical-align: bottom;
|
||||
font-size: 1px;
|
||||
width: 2px;
|
||||
}
|
||||
.katex .msupsub {
|
||||
text-align: left;
|
||||
}
|
||||
.katex .mfrac > span > span {
|
||||
text-align: center;
|
||||
}
|
||||
.katex .mfrac .frac-line {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
.katex .mspace {
|
||||
display: inline-block;
|
||||
}
|
||||
.katex .mspace.negativethinspace {
|
||||
margin-left: -0.16667em;
|
||||
}
|
||||
.katex .mspace.muspace {
|
||||
width: 0.055556em;
|
||||
}
|
||||
.katex .mspace.thinspace {
|
||||
width: 0.16667em;
|
||||
}
|
||||
.katex .mspace.negativemediumspace {
|
||||
margin-left: -0.22222em;
|
||||
}
|
||||
.katex .mspace.mediumspace {
|
||||
width: 0.22222em;
|
||||
}
|
||||
.katex .mspace.thickspace {
|
||||
width: 0.27778em;
|
||||
}
|
||||
.katex .mspace.sixmuspace {
|
||||
width: 0.333333em;
|
||||
}
|
||||
.katex .mspace.eightmuspace {
|
||||
width: 0.444444em;
|
||||
}
|
||||
.katex .mspace.enspace {
|
||||
width: 0.5em;
|
||||
}
|
||||
.katex .mspace.twelvemuspace {
|
||||
width: 0.666667em;
|
||||
}
|
||||
.katex .mspace.quad {
|
||||
width: 1em;
|
||||
}
|
||||
.katex .mspace.qquad {
|
||||
width: 2em;
|
||||
}
|
||||
.katex .llap,
|
||||
.katex .rlap,
|
||||
.katex .clap {
|
||||
width: 0;
|
||||
position: relative;
|
||||
}
|
||||
.katex .llap > .inner,
|
||||
.katex .rlap > .inner,
|
||||
.katex .clap > .inner {
|
||||
position: absolute;
|
||||
}
|
||||
.katex .llap > .fix,
|
||||
.katex .rlap > .fix,
|
||||
.katex .clap > .fix {
|
||||
display: inline-block;
|
||||
}
|
||||
.katex .llap > .inner {
|
||||
right: 0;
|
||||
}
|
||||
.katex .rlap > .inner,
|
||||
.katex .clap > .inner {
|
||||
left: 0;
|
||||
}
|
||||
.katex .clap > .inner > span {
|
||||
margin-left: -50%;
|
||||
margin-right: 50%;
|
||||
}
|
||||
.katex .rule {
|
||||
display: inline-block;
|
||||
border: solid 0;
|
||||
position: relative;
|
||||
}
|
||||
.katex .overline .overline-line,
|
||||
.katex .underline .underline-line {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
.katex .sqrt > .root {
|
||||
margin-left: 0.27777778em;
|
||||
margin-right: -0.55555556em;
|
||||
}
|
||||
.katex .sizing,
|
||||
.katex .fontsize-ensurer {
|
||||
display: inline-block;
|
||||
}
|
||||
.katex .sizing.reset-size1.size1,
|
||||
.katex .fontsize-ensurer.reset-size1.size1 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size2,
|
||||
.katex .fontsize-ensurer.reset-size1.size2 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size3,
|
||||
.katex .fontsize-ensurer.reset-size1.size3 {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size4,
|
||||
.katex .fontsize-ensurer.reset-size1.size4 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size5,
|
||||
.katex .fontsize-ensurer.reset-size1.size5 {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size6,
|
||||
.katex .fontsize-ensurer.reset-size1.size6 {
|
||||
font-size: 2em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size7,
|
||||
.katex .fontsize-ensurer.reset-size1.size7 {
|
||||
font-size: 2.4em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size8,
|
||||
.katex .fontsize-ensurer.reset-size1.size8 {
|
||||
font-size: 2.88em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size9,
|
||||
.katex .fontsize-ensurer.reset-size1.size9 {
|
||||
font-size: 3.456em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size10,
|
||||
.katex .fontsize-ensurer.reset-size1.size10 {
|
||||
font-size: 4.148em;
|
||||
}
|
||||
.katex .sizing.reset-size1.size11,
|
||||
.katex .fontsize-ensurer.reset-size1.size11 {
|
||||
font-size: 4.976em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size1,
|
||||
.katex .fontsize-ensurer.reset-size2.size1 {
|
||||
font-size: 0.83333333em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size2,
|
||||
.katex .fontsize-ensurer.reset-size2.size2 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size3,
|
||||
.katex .fontsize-ensurer.reset-size2.size3 {
|
||||
font-size: 1.16666667em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size4,
|
||||
.katex .fontsize-ensurer.reset-size2.size4 {
|
||||
font-size: 1.33333333em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size5,
|
||||
.katex .fontsize-ensurer.reset-size2.size5 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size6,
|
||||
.katex .fontsize-ensurer.reset-size2.size6 {
|
||||
font-size: 1.66666667em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size7,
|
||||
.katex .fontsize-ensurer.reset-size2.size7 {
|
||||
font-size: 2em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size8,
|
||||
.katex .fontsize-ensurer.reset-size2.size8 {
|
||||
font-size: 2.4em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size9,
|
||||
.katex .fontsize-ensurer.reset-size2.size9 {
|
||||
font-size: 2.88em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size10,
|
||||
.katex .fontsize-ensurer.reset-size2.size10 {
|
||||
font-size: 3.45666667em;
|
||||
}
|
||||
.katex .sizing.reset-size2.size11,
|
||||
.katex .fontsize-ensurer.reset-size2.size11 {
|
||||
font-size: 4.14666667em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size1,
|
||||
.katex .fontsize-ensurer.reset-size3.size1 {
|
||||
font-size: 0.71428571em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size2,
|
||||
.katex .fontsize-ensurer.reset-size3.size2 {
|
||||
font-size: 0.85714286em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size3,
|
||||
.katex .fontsize-ensurer.reset-size3.size3 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size4,
|
||||
.katex .fontsize-ensurer.reset-size3.size4 {
|
||||
font-size: 1.14285714em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size5,
|
||||
.katex .fontsize-ensurer.reset-size3.size5 {
|
||||
font-size: 1.28571429em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size6,
|
||||
.katex .fontsize-ensurer.reset-size3.size6 {
|
||||
font-size: 1.42857143em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size7,
|
||||
.katex .fontsize-ensurer.reset-size3.size7 {
|
||||
font-size: 1.71428571em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size8,
|
||||
.katex .fontsize-ensurer.reset-size3.size8 {
|
||||
font-size: 2.05714286em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size9,
|
||||
.katex .fontsize-ensurer.reset-size3.size9 {
|
||||
font-size: 2.46857143em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size10,
|
||||
.katex .fontsize-ensurer.reset-size3.size10 {
|
||||
font-size: 2.96285714em;
|
||||
}
|
||||
.katex .sizing.reset-size3.size11,
|
||||
.katex .fontsize-ensurer.reset-size3.size11 {
|
||||
font-size: 3.55428571em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size1,
|
||||
.katex .fontsize-ensurer.reset-size4.size1 {
|
||||
font-size: 0.625em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size2,
|
||||
.katex .fontsize-ensurer.reset-size4.size2 {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size3,
|
||||
.katex .fontsize-ensurer.reset-size4.size3 {
|
||||
font-size: 0.875em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size4,
|
||||
.katex .fontsize-ensurer.reset-size4.size4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size5,
|
||||
.katex .fontsize-ensurer.reset-size4.size5 {
|
||||
font-size: 1.125em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size6,
|
||||
.katex .fontsize-ensurer.reset-size4.size6 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size7,
|
||||
.katex .fontsize-ensurer.reset-size4.size7 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size8,
|
||||
.katex .fontsize-ensurer.reset-size4.size8 {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size9,
|
||||
.katex .fontsize-ensurer.reset-size4.size9 {
|
||||
font-size: 2.16em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size10,
|
||||
.katex .fontsize-ensurer.reset-size4.size10 {
|
||||
font-size: 2.5925em;
|
||||
}
|
||||
.katex .sizing.reset-size4.size11,
|
||||
.katex .fontsize-ensurer.reset-size4.size11 {
|
||||
font-size: 3.11em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size1,
|
||||
.katex .fontsize-ensurer.reset-size5.size1 {
|
||||
font-size: 0.55555556em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size2,
|
||||
.katex .fontsize-ensurer.reset-size5.size2 {
|
||||
font-size: 0.66666667em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size3,
|
||||
.katex .fontsize-ensurer.reset-size5.size3 {
|
||||
font-size: 0.77777778em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size4,
|
||||
.katex .fontsize-ensurer.reset-size5.size4 {
|
||||
font-size: 0.88888889em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size5,
|
||||
.katex .fontsize-ensurer.reset-size5.size5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size6,
|
||||
.katex .fontsize-ensurer.reset-size5.size6 {
|
||||
font-size: 1.11111111em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size7,
|
||||
.katex .fontsize-ensurer.reset-size5.size7 {
|
||||
font-size: 1.33333333em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size8,
|
||||
.katex .fontsize-ensurer.reset-size5.size8 {
|
||||
font-size: 1.6em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size9,
|
||||
.katex .fontsize-ensurer.reset-size5.size9 {
|
||||
font-size: 1.92em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size10,
|
||||
.katex .fontsize-ensurer.reset-size5.size10 {
|
||||
font-size: 2.30444444em;
|
||||
}
|
||||
.katex .sizing.reset-size5.size11,
|
||||
.katex .fontsize-ensurer.reset-size5.size11 {
|
||||
font-size: 2.76444444em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size1,
|
||||
.katex .fontsize-ensurer.reset-size6.size1 {
|
||||
font-size: 0.5em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size2,
|
||||
.katex .fontsize-ensurer.reset-size6.size2 {
|
||||
font-size: 0.6em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size3,
|
||||
.katex .fontsize-ensurer.reset-size6.size3 {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size4,
|
||||
.katex .fontsize-ensurer.reset-size6.size4 {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size5,
|
||||
.katex .fontsize-ensurer.reset-size6.size5 {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size6,
|
||||
.katex .fontsize-ensurer.reset-size6.size6 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size7,
|
||||
.katex .fontsize-ensurer.reset-size6.size7 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size8,
|
||||
.katex .fontsize-ensurer.reset-size6.size8 {
|
||||
font-size: 1.44em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size9,
|
||||
.katex .fontsize-ensurer.reset-size6.size9 {
|
||||
font-size: 1.728em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size10,
|
||||
.katex .fontsize-ensurer.reset-size6.size10 {
|
||||
font-size: 2.074em;
|
||||
}
|
||||
.katex .sizing.reset-size6.size11,
|
||||
.katex .fontsize-ensurer.reset-size6.size11 {
|
||||
font-size: 2.488em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size1,
|
||||
.katex .fontsize-ensurer.reset-size7.size1 {
|
||||
font-size: 0.41666667em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size2,
|
||||
.katex .fontsize-ensurer.reset-size7.size2 {
|
||||
font-size: 0.5em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size3,
|
||||
.katex .fontsize-ensurer.reset-size7.size3 {
|
||||
font-size: 0.58333333em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size4,
|
||||
.katex .fontsize-ensurer.reset-size7.size4 {
|
||||
font-size: 0.66666667em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size5,
|
||||
.katex .fontsize-ensurer.reset-size7.size5 {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size6,
|
||||
.katex .fontsize-ensurer.reset-size7.size6 {
|
||||
font-size: 0.83333333em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size7,
|
||||
.katex .fontsize-ensurer.reset-size7.size7 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size8,
|
||||
.katex .fontsize-ensurer.reset-size7.size8 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size9,
|
||||
.katex .fontsize-ensurer.reset-size7.size9 {
|
||||
font-size: 1.44em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size10,
|
||||
.katex .fontsize-ensurer.reset-size7.size10 {
|
||||
font-size: 1.72833333em;
|
||||
}
|
||||
.katex .sizing.reset-size7.size11,
|
||||
.katex .fontsize-ensurer.reset-size7.size11 {
|
||||
font-size: 2.07333333em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size1,
|
||||
.katex .fontsize-ensurer.reset-size8.size1 {
|
||||
font-size: 0.34722222em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size2,
|
||||
.katex .fontsize-ensurer.reset-size8.size2 {
|
||||
font-size: 0.41666667em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size3,
|
||||
.katex .fontsize-ensurer.reset-size8.size3 {
|
||||
font-size: 0.48611111em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size4,
|
||||
.katex .fontsize-ensurer.reset-size8.size4 {
|
||||
font-size: 0.55555556em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size5,
|
||||
.katex .fontsize-ensurer.reset-size8.size5 {
|
||||
font-size: 0.625em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size6,
|
||||
.katex .fontsize-ensurer.reset-size8.size6 {
|
||||
font-size: 0.69444444em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size7,
|
||||
.katex .fontsize-ensurer.reset-size8.size7 {
|
||||
font-size: 0.83333333em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size8,
|
||||
.katex .fontsize-ensurer.reset-size8.size8 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size9,
|
||||
.katex .fontsize-ensurer.reset-size8.size9 {
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size10,
|
||||
.katex .fontsize-ensurer.reset-size8.size10 {
|
||||
font-size: 1.44027778em;
|
||||
}
|
||||
.katex .sizing.reset-size8.size11,
|
||||
.katex .fontsize-ensurer.reset-size8.size11 {
|
||||
font-size: 1.72777778em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size1,
|
||||
.katex .fontsize-ensurer.reset-size9.size1 {
|
||||
font-size: 0.28935185em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size2,
|
||||
.katex .fontsize-ensurer.reset-size9.size2 {
|
||||
font-size: 0.34722222em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size3,
|
||||
.katex .fontsize-ensurer.reset-size9.size3 {
|
||||
font-size: 0.40509259em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size4,
|
||||
.katex .fontsize-ensurer.reset-size9.size4 {
|
||||
font-size: 0.46296296em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size5,
|
||||
.katex .fontsize-ensurer.reset-size9.size5 {
|
||||
font-size: 0.52083333em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size6,
|
||||
.katex .fontsize-ensurer.reset-size9.size6 {
|
||||
font-size: 0.5787037em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size7,
|
||||
.katex .fontsize-ensurer.reset-size9.size7 {
|
||||
font-size: 0.69444444em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size8,
|
||||
.katex .fontsize-ensurer.reset-size9.size8 {
|
||||
font-size: 0.83333333em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size9,
|
||||
.katex .fontsize-ensurer.reset-size9.size9 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size10,
|
||||
.katex .fontsize-ensurer.reset-size9.size10 {
|
||||
font-size: 1.20023148em;
|
||||
}
|
||||
.katex .sizing.reset-size9.size11,
|
||||
.katex .fontsize-ensurer.reset-size9.size11 {
|
||||
font-size: 1.43981481em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size1,
|
||||
.katex .fontsize-ensurer.reset-size10.size1 {
|
||||
font-size: 0.24108004em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size2,
|
||||
.katex .fontsize-ensurer.reset-size10.size2 {
|
||||
font-size: 0.28929605em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size3,
|
||||
.katex .fontsize-ensurer.reset-size10.size3 {
|
||||
font-size: 0.33751205em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size4,
|
||||
.katex .fontsize-ensurer.reset-size10.size4 {
|
||||
font-size: 0.38572806em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size5,
|
||||
.katex .fontsize-ensurer.reset-size10.size5 {
|
||||
font-size: 0.43394407em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size6,
|
||||
.katex .fontsize-ensurer.reset-size10.size6 {
|
||||
font-size: 0.48216008em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size7,
|
||||
.katex .fontsize-ensurer.reset-size10.size7 {
|
||||
font-size: 0.57859209em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size8,
|
||||
.katex .fontsize-ensurer.reset-size10.size8 {
|
||||
font-size: 0.69431051em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size9,
|
||||
.katex .fontsize-ensurer.reset-size10.size9 {
|
||||
font-size: 0.83317261em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size10,
|
||||
.katex .fontsize-ensurer.reset-size10.size10 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .sizing.reset-size10.size11,
|
||||
.katex .fontsize-ensurer.reset-size10.size11 {
|
||||
font-size: 1.19961427em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size1,
|
||||
.katex .fontsize-ensurer.reset-size11.size1 {
|
||||
font-size: 0.20096463em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size2,
|
||||
.katex .fontsize-ensurer.reset-size11.size2 {
|
||||
font-size: 0.24115756em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size3,
|
||||
.katex .fontsize-ensurer.reset-size11.size3 {
|
||||
font-size: 0.28135048em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size4,
|
||||
.katex .fontsize-ensurer.reset-size11.size4 {
|
||||
font-size: 0.32154341em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size5,
|
||||
.katex .fontsize-ensurer.reset-size11.size5 {
|
||||
font-size: 0.36173633em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size6,
|
||||
.katex .fontsize-ensurer.reset-size11.size6 {
|
||||
font-size: 0.40192926em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size7,
|
||||
.katex .fontsize-ensurer.reset-size11.size7 {
|
||||
font-size: 0.48231511em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size8,
|
||||
.katex .fontsize-ensurer.reset-size11.size8 {
|
||||
font-size: 0.57877814em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size9,
|
||||
.katex .fontsize-ensurer.reset-size11.size9 {
|
||||
font-size: 0.69453376em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size10,
|
||||
.katex .fontsize-ensurer.reset-size11.size10 {
|
||||
font-size: 0.83360129em;
|
||||
}
|
||||
.katex .sizing.reset-size11.size11,
|
||||
.katex .fontsize-ensurer.reset-size11.size11 {
|
||||
font-size: 1em;
|
||||
}
|
||||
.katex .delimsizing.size1 {
|
||||
font-family: KaTeX_Size1;
|
||||
}
|
||||
.katex .delimsizing.size2 {
|
||||
font-family: KaTeX_Size2;
|
||||
}
|
||||
.katex .delimsizing.size3 {
|
||||
font-family: KaTeX_Size3;
|
||||
}
|
||||
.katex .delimsizing.size4 {
|
||||
font-family: KaTeX_Size4;
|
||||
}
|
||||
.katex .delimsizing.mult .delim-size1 > span {
|
||||
font-family: KaTeX_Size1;
|
||||
}
|
||||
.katex .delimsizing.mult .delim-size4 > span {
|
||||
font-family: KaTeX_Size4;
|
||||
}
|
||||
.katex .nulldelimiter {
|
||||
display: inline-block;
|
||||
width: 0.12em;
|
||||
}
|
||||
.katex .delimcenter {
|
||||
position: relative;
|
||||
}
|
||||
.katex .op-symbol {
|
||||
position: relative;
|
||||
}
|
||||
.katex .op-symbol.small-op {
|
||||
font-family: KaTeX_Size1;
|
||||
}
|
||||
.katex .op-symbol.large-op {
|
||||
font-family: KaTeX_Size2;
|
||||
}
|
||||
.katex .op-limits > .vlist-t {
|
||||
text-align: center;
|
||||
}
|
||||
.katex .accent > .vlist-t {
|
||||
text-align: center;
|
||||
}
|
||||
.katex .accent .accent-body {
|
||||
width: 0;
|
||||
position: relative;
|
||||
}
|
||||
.katex .overlay {
|
||||
display: block;
|
||||
}
|
||||
.katex .mtable .vertical-separator {
|
||||
display: inline-block;
|
||||
margin: 0 -0.125em;
|
||||
width: 0.25em;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.katex .mtable .arraycolsep {
|
||||
display: inline-block;
|
||||
}
|
||||
.katex .mtable .col-align-c > .vlist-t {
|
||||
text-align: center;
|
||||
}
|
||||
.katex .mtable .col-align-l > .vlist-t {
|
||||
text-align: left;
|
||||
}
|
||||
.katex .mtable .col-align-r > .vlist-t {
|
||||
text-align: right;
|
||||
}
|
||||
.katex .svg-align {
|
||||
text-align: left;
|
||||
}
|
||||
.katex svg {
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
fill: currentColor;
|
||||
stroke: currentColor;
|
||||
fill-rule: nonzero;
|
||||
fill-opacity: 1;
|
||||
stroke-width: 1;
|
||||
stroke-linecap: butt;
|
||||
stroke-linejoin: miter;
|
||||
stroke-miterlimit: 4;
|
||||
stroke-dasharray: none;
|
||||
stroke-dashoffset: 0;
|
||||
stroke-opacity: 1;
|
||||
}
|
||||
.katex svg path {
|
||||
stroke: none;
|
||||
}
|
||||
.katex .vertical-separator svg {
|
||||
width: 0.25em;
|
||||
}
|
||||
.katex .stretchy {
|
||||
width: 100%;
|
||||
display: block;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.katex .stretchy:before,
|
||||
.katex .stretchy:after {
|
||||
content: "";
|
||||
}
|
||||
.katex .hide-tail {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.katex .halfarrow-left {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 50.2%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.katex .halfarrow-right {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 50.2%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.katex .brace-left {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 25.1%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.katex .brace-center {
|
||||
position: absolute;
|
||||
left: 25%;
|
||||
width: 50%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.katex .brace-right {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 25.1%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.katex .x-arrow-pad {
|
||||
padding: 0 0.5em;
|
||||
}
|
||||
.katex .x-arrow,
|
||||
.katex .mover,
|
||||
.katex .munder {
|
||||
text-align: center;
|
||||
}
|
||||
.katex .boxpad {
|
||||
padding: 0 0.3em 0 0.3em;
|
||||
}
|
||||
.katex .fbox {
|
||||
box-sizing: border-box;
|
||||
border: 0.04em solid black;
|
||||
}
|
||||
.katex .fcolorbox {
|
||||
box-sizing: border-box;
|
||||
border: 0.04em solid;
|
||||
}
|
||||
.katex .cancel-pad {
|
||||
padding: 0 0.2em 0 0.2em;
|
||||
}
|
||||
.katex .mord + .cancel-lap,
|
||||
.katex .mbin + .cancel-lap {
|
||||
margin-left: -0.2em;
|
||||
}
|
||||
.katex .cancel-lap + .mord,
|
||||
.katex .cancel-lap + .mbin,
|
||||
.katex .cancel-lap + .msupsub {
|
||||
margin-left: -0.2em;
|
||||
}
|
||||
.katex .sout {
|
||||
border-bottom-style: solid;
|
||||
border-bottom-width: 0.08em;
|
||||
}
|
16146
Blogger/katex/katex.js
Normal file
16146
Blogger/katex/katex.js
Normal file
File diff suppressed because it is too large
Load Diff
435
Blogger/main.coffee
Normal file
435
Blogger/main.coffee
Normal file
@ -0,0 +1,435 @@
|
||||
# Copyright 2017-2018 Xuan Sang LE <xsang.le AT gmail DOT com>
|
||||
|
||||
# AnTOS Web desktop is is licensed under the GNU General Public
|
||||
# License v3.0, see the LICENCE file for more information
|
||||
|
||||
# This program is free software: you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of
|
||||
# the License, or (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
#along with this program. If not, see https://www.gnu.org/licenses/.
|
||||
class Blogger extends this.OS.GUI.BaseApplication
|
||||
constructor: (args) ->
|
||||
super "Blogger", args
|
||||
|
||||
main: () ->
|
||||
me = @
|
||||
@tabbar = @find "tabbar"
|
||||
@containers = [
|
||||
@find("user-container"),
|
||||
@find("cv-container"),
|
||||
@find("blog-container")
|
||||
]
|
||||
@user = {}
|
||||
@cvlist = @find "cv-list"
|
||||
@cvlist.set "ontreeselect", (d) ->
|
||||
me.CVSectionByCID Number(d.id)
|
||||
@inputtags = @.find "input-tags"
|
||||
@bloglist = @find "blog-list"
|
||||
@userdb = new @_api.DB("user")
|
||||
@cvcatdb = new @_api.DB("cv_cat")
|
||||
@cvsecdb = new @_api.DB("cv_sections")
|
||||
@blogdb = new @_api.DB("blogs")
|
||||
@tabbar.set "onlistselect", (e) ->
|
||||
($ el).hide() for el in me.containers
|
||||
me.fetchData e.idx
|
||||
($ me.containers[e.idx]).show()
|
||||
me.trigger "calibrate"
|
||||
|
||||
@tabbar.set "items", [
|
||||
{ iconclass: "fa fa-user-circle", selected: true },
|
||||
{ iconclass: "fa fa-info-circle" },
|
||||
{ iconclass: "fa fa-book" }
|
||||
]
|
||||
(@find "bt-user-save").set "onbtclick", (e) ->
|
||||
me.saveUser()
|
||||
|
||||
(@find "cv-cat-add").set "onbtclick", (e) ->
|
||||
me.openDialog new BloggerCategoryDialog(),
|
||||
(d) ->
|
||||
c =
|
||||
name: d.value,
|
||||
pid: d.p.id,
|
||||
publish: 1
|
||||
me.cvcatdb.save c, (r) ->
|
||||
me.error __("Cannot add new category") if r.error
|
||||
me.refreshCVCat()
|
||||
#update the list
|
||||
|
||||
, __("Add category"), { tree: me.cvlist.get "data" }
|
||||
|
||||
(@find "cv-cat-edit").set "onbtclick", (e) ->
|
||||
cat = me.cvlist.get "selectedItem"
|
||||
return unless cat
|
||||
me.openDialog new BloggerCategoryDialog(), (d) ->
|
||||
c =
|
||||
id: cat.id,
|
||||
publish: cat.publish,
|
||||
pid: d.p.id,
|
||||
name: d.value
|
||||
|
||||
me.cvcatdb.save c, (r) ->
|
||||
return me.error __("Cannot Edit category") if r.error
|
||||
me.refreshCVCat()
|
||||
, __("Edit category"), { tree: (me.cvlist.get "data"), cat: cat }
|
||||
|
||||
(@find "cv-cat-del").set "onbtclick", (e) ->
|
||||
cat = me.cvlist.get "selectedItem"
|
||||
return unless cat
|
||||
me.openDialog "YesNoDialog",
|
||||
(d) ->
|
||||
return unless d
|
||||
me.deleteCVCat cat
|
||||
, __("Delete category") ,
|
||||
{ iconclass: "fa fa-question-circle", text: __("Do you really want to delete: {0}?", cat.name) }
|
||||
|
||||
(@find "cv-sec-add").set "onbtclick", (e) ->
|
||||
cat = me.cvlist.get "selectedItem"
|
||||
return me.notify __("Please select a category") unless cat and cat.id isnt 0
|
||||
me.openDialog new BloggerCVSectionDiaglog(), (d) ->
|
||||
d.cid = Number cat.id
|
||||
d.start = Number d.start
|
||||
d.end = Number d.end
|
||||
d.publish = 1
|
||||
me.cvsecdb.save d, (r) ->
|
||||
return me.error __("Cannot save section: {0}", r.error) if r.error
|
||||
me.CVSectionByCID Number(cat.id)
|
||||
|
||||
, __("New section entry for {0}", cat.name), null
|
||||
|
||||
(@find "cv-sec-move").set "onbtclick", (e) ->
|
||||
sec = (me.find "cv-sec-list").get "selected"
|
||||
return me.notify __("Please select a section to move") unless sec
|
||||
|
||||
me.openDialog new BloggerCategoryDialog(), (d) ->
|
||||
c =
|
||||
id: sec.id,
|
||||
cid: d.p.id
|
||||
|
||||
me.cvsecdb.save c, (r) ->
|
||||
return me.error __("Cannot move section") if r.error
|
||||
me.CVSectionByCID(sec.cid)
|
||||
(me.find "cv-sec-list").set "selected", -1
|
||||
, __("Move to"), { tree: (me.cvlist.get "data"), selonly: true }
|
||||
|
||||
(@find "cv-sec-edit").set "onbtclick", (e) ->
|
||||
sec = (me.find "cv-sec-list").get "selected"
|
||||
return me.notify __("Please select a section to edit") unless sec
|
||||
|
||||
me.openDialog new BloggerCVSectionDiaglog(), (d) ->
|
||||
d.cid = Number sec.cid
|
||||
d.start = Number d.start
|
||||
d.end = Number d.end
|
||||
#d.publish = Number sec.publish
|
||||
me.cvsecdb.save d, (r) ->
|
||||
return me.error __("Cannot save section: {0}", r.error) if r.error
|
||||
me.CVSectionByCID Number(sec.cid)
|
||||
|
||||
, __("Modify section entry"), sec
|
||||
|
||||
@editor = new SimpleMDE
|
||||
element: me.find "markarea"
|
||||
autofocus: true
|
||||
tabSize: 4
|
||||
indentWithTabs: true
|
||||
toolbar: [
|
||||
{
|
||||
name: __("New"),
|
||||
className: "fa fa-file",
|
||||
action: (e) ->
|
||||
me.bloglist.set "selected", -1
|
||||
me.clearEditor()
|
||||
},
|
||||
{
|
||||
name: __("Save"),
|
||||
className: "fa fa-save",
|
||||
action: (e) ->
|
||||
me.saveBlog()
|
||||
}
|
||||
, "|", "bold", "italic", "heading", "|", "quote", "code",
|
||||
"unordered-list", "ordered-list", "|", "link",
|
||||
"image", "table", "horizontal-rule",
|
||||
{
|
||||
name: "image",
|
||||
className: "fa fa-file-image-o",
|
||||
action: (e) ->
|
||||
me.openDialog "FileDiaLog", (d, n, p) ->
|
||||
p.asFileHandler().publish (r) ->
|
||||
return me.error __("Cannot export file for embedding to text") if r.error
|
||||
doc = me.editor.codemirror.getDoc()
|
||||
doc.replaceSelection ""
|
||||
, __("Select image file"), { mimes: ["image/.*"] }
|
||||
},
|
||||
{
|
||||
name:"Youtube",
|
||||
className: "fa fa-youtube",
|
||||
action: (e) ->
|
||||
doc = me.editor.codemirror.getDoc()
|
||||
doc.replaceSelection "[[youtube:]]"
|
||||
}
|
||||
"|",
|
||||
{
|
||||
name: __("Preview"),
|
||||
className: "fa fa-eye no-disable",
|
||||
action: (e) ->
|
||||
me.previewOn = !me.previewOn
|
||||
SimpleMDE.togglePreview e
|
||||
#/console.log me.select ".editor-preview editor-preview-active"
|
||||
renderMathInElement me.find "editor-container"
|
||||
},
|
||||
"|",
|
||||
{
|
||||
name: __("Send mail"),
|
||||
className: "fa fa-paper-plane",
|
||||
action: (e) ->
|
||||
sel = me.bloglist.get "selected"
|
||||
return me.error __("No post selected") unless sel
|
||||
me.openDialog new BloggerSendmailDiaglog(), (d) ->
|
||||
console.log "test"
|
||||
, __("Send mail"), { content: me.editor.value(), id: sel.id }
|
||||
}
|
||||
]
|
||||
@bloglist.set "onlistselect", (e) ->
|
||||
sel = me.bloglist.get "selected"
|
||||
return unless sel
|
||||
me.blogdb.get Number(sel.id), (r) ->
|
||||
me.error __("Cannot fetch the entry content") if r.error
|
||||
me.editor.value atob(r.result.content)
|
||||
me.inputtags.value = r.result.tags
|
||||
(me.find "blog-publish").set "swon", (if Number(r.result.publish) then true else false)
|
||||
|
||||
@.bloglist.set "onitemclose", (e) ->
|
||||
me.openDialog "YesNoDialog", (b) ->
|
||||
return unless b
|
||||
me.blogdb.delete e.item.item.id, (r) ->
|
||||
return me.error __("Cannot delete: {0}", r.error) if r.error
|
||||
me.bloglist.remove e.item.item, true
|
||||
me.bloglist.set "selected", -1
|
||||
me.clearEditor()
|
||||
, __("Delete a post") ,
|
||||
{ iconclass: "fa fa-question-circle", text: __("Do you really want to delete this post ?") }
|
||||
return false
|
||||
@bindKey "CTRL-S", () ->
|
||||
sel = me.tabbar.get "selidx"
|
||||
return unless sel is 2
|
||||
me.saveBlog()
|
||||
@on "vboxchange", () ->
|
||||
me.resizeContent()
|
||||
# USER TAB
|
||||
fetchData: (idx) ->
|
||||
me = @
|
||||
switch idx
|
||||
when 0 #user info
|
||||
|
||||
@userdb.get null, (d) ->
|
||||
return me.error __("Cannot fetch user data") if d.error
|
||||
me.user = d.result[0]
|
||||
inputs = me.select "[input-class='user-input']"
|
||||
($ v).val me.user[v.name] for v in inputs
|
||||
when 1 # category
|
||||
@refreshCVCat()
|
||||
else
|
||||
@loadBlogs()
|
||||
|
||||
saveUser:() ->
|
||||
me = @
|
||||
inputs = @select "[input-class='user-input']"
|
||||
@user[v.name] = ($ v).val() for v in inputs
|
||||
return @notify __("Full name must be entered") if not @user.fullname or @user.fullname is ""
|
||||
#console.log @user
|
||||
@userdb.save @user, (r) ->
|
||||
return me.error __("Cannot save user data") if r.error
|
||||
return me.notify __("User data updated")
|
||||
|
||||
|
||||
# PORFOLIO TAB
|
||||
refreshCVCat: () ->
|
||||
me = @
|
||||
data =
|
||||
name: "Porfolio",
|
||||
id:0,
|
||||
nodes: []
|
||||
cnd =
|
||||
order:
|
||||
name: "ASC"
|
||||
@cvcatdb.find cnd, (d) ->
|
||||
if d.error
|
||||
me.cvlist.set "data", data
|
||||
return me.notify __("Cannot fetch CV categories")
|
||||
me.fetchCVCat d.result, data, "0"
|
||||
me.cvlist.set "data", data
|
||||
#it = (me.cvlist.find "pid", "2")[0]
|
||||
#me.cvlist.set "selectedItem", it
|
||||
|
||||
fetchCVCat: (table, data, id) ->
|
||||
result = (v for v in table when v.pid is id)
|
||||
return data.nodes = null if result.length is 0
|
||||
for v in result
|
||||
v.nodes = []
|
||||
@fetchCVCat table, v, v.id
|
||||
#v.nodes = null if v.nodes.length is 0
|
||||
data.nodes.push v
|
||||
|
||||
deleteCVCat: (cat) ->
|
||||
me = @
|
||||
ids = []
|
||||
func = (c) ->
|
||||
ids.push c.id
|
||||
func(v) for v in c.nodes if c.nodes
|
||||
func(cat)
|
||||
|
||||
cond = ({ "=": { cid: v } } for v in ids)
|
||||
# delete all content
|
||||
@cvsecdb.delete { "or": cond }, (r) ->
|
||||
return me.error __("Cannot delete all content of: {0} [{1}]", cat.name, r.error) if r.error
|
||||
cond = ({ "=": { id: v } } for v in ids)
|
||||
me.cvcatdb.delete { "or": cond }, (re) ->
|
||||
return me.error __("Cannot delete the category: {0} [{1}]", cat.name, re.error) if re.error
|
||||
me.refreshCVCat()
|
||||
|
||||
CVSectionByCID: (cid) ->
|
||||
me = @
|
||||
cond =
|
||||
exp:
|
||||
"=":
|
||||
cid: cid
|
||||
order:
|
||||
start: "DESC"
|
||||
@cvsecdb.find cond, (d) ->
|
||||
return me.notify __("Section list is empty, please add one") if d.error
|
||||
v.text = v.title for v in d.result
|
||||
items = []
|
||||
$(me.find "cv-sec-status").html __("Found {0} sections", d.result.length)
|
||||
for v in d.result
|
||||
v.text = v.title
|
||||
v.complex = true
|
||||
v.start = Number(v.start)
|
||||
v.end = Number(v.end)
|
||||
v.detail = []
|
||||
v.detail.push { text: v.subtitle, class: "cv-subtitle" } if v.subtitle isnt ""
|
||||
if v.start isnt 0 and v.end isnt 0
|
||||
v.detail.push { text: "#{v.start} - #{v.end}", class: "cv-period" }
|
||||
else
|
||||
v.detail.push { text: "", class: "cv-period" }
|
||||
v.detail.push { text: v.location, class: "cv-loc" } if v.location isnt ""
|
||||
#v.detail.push { text: v.end } if v.end isnt 0
|
||||
v.closable = true
|
||||
v.detail.push { text: v.content, class: "cv-content" }
|
||||
items.push v
|
||||
el = me.find "cv-sec-list"
|
||||
el.set "onitemclose", (e) ->
|
||||
me.openDialog "YesNoDialog", (b) ->
|
||||
return unless b
|
||||
me.cvsecdb.delete e.item.item.id, (r) ->
|
||||
return me.error __("Cannot delete the section: {0}", r.error) if r.error
|
||||
el.remove e.item.item, true
|
||||
, __("Delete section") ,
|
||||
{ iconclass: "fa fa-question-circle", text: __("Do you really want to delete: {0}?",e.item.item.text) }
|
||||
return false
|
||||
|
||||
el.set "items", items
|
||||
|
||||
# blog
|
||||
saveBlog: () ->
|
||||
me = @
|
||||
sel = @bloglist.get "selected"
|
||||
tags = @inputtags.value
|
||||
content = @editor.value()
|
||||
title = (new RegExp "^#+(.*)\n", "g").exec content
|
||||
return @notify __("Please insert a title in the text: beginning with heading") unless title and title.length is 2
|
||||
return @notify __("Please enter tags") if tags is ""
|
||||
d = new Date()
|
||||
data =
|
||||
content: content.asBase64()
|
||||
title: title[1].trim()
|
||||
tags: tags
|
||||
ctime: if sel then sel.ctime else d.timestamp()
|
||||
ctimestr: if sel then sel.ctimestr else d.toString()
|
||||
utime: d.timestamp()
|
||||
utimestr: d.toString()
|
||||
rendered: me.process(me.editor.options.previewRender(content))
|
||||
publish: if ((@find "blog-publish").get "swon") then 1 else 0
|
||||
data.id = sel.id if sel
|
||||
#save the data
|
||||
@blogdb.save data, (r) ->
|
||||
return me.error __("Cannot save blog: {0}", r.error) if r.error
|
||||
me.loadBlogs()
|
||||
|
||||
process: (text) ->
|
||||
# find video tag and rendered it
|
||||
embed = (id) ->
|
||||
return """
|
||||
<iframe
|
||||
class = "embeded-video"
|
||||
width="560" height="315"
|
||||
src="https://www.youtube.com/embed/#{id}"
|
||||
frameborder="0" allow="encrypted-media" allowfullscreen
|
||||
></iframe>
|
||||
"""
|
||||
re = /\[\[([^:]*):([^\]]*)\]\]/g
|
||||
replace = []
|
||||
while (found = re.exec text) isnt null
|
||||
replace.push found
|
||||
return text.asBase64() unless replace.length > 0
|
||||
ret = ""
|
||||
begin = 0
|
||||
for it in replace
|
||||
ret += text.substring begin, it.index
|
||||
ret += embed(it[2])
|
||||
begin = it.index + it[0].length
|
||||
ret += text.substring begin, text.length
|
||||
#console.log ret
|
||||
return ret.asBase64()
|
||||
|
||||
clearEditor:() ->
|
||||
@.editor.value ""
|
||||
@.inputtags.value = ""
|
||||
(@.find "blog-publish").set "swon", false
|
||||
# load blog
|
||||
loadBlogs: () ->
|
||||
me = @
|
||||
selidx = @bloglist.get "selidx"
|
||||
cond =
|
||||
order:
|
||||
ctime: "DESC"
|
||||
fields: [
|
||||
"id",
|
||||
"title",
|
||||
"ctimestr",
|
||||
"ctime",
|
||||
"utime",
|
||||
"utimestr"
|
||||
]
|
||||
@blogdb.find cond, (r) ->
|
||||
return me.notify __("No post found: {0}", r.error) if r.error
|
||||
for v in r.result
|
||||
v.text = v.title
|
||||
v.complex = true
|
||||
v.closable = true
|
||||
v.detail = [
|
||||
{ text: __("Created: {0}", v.ctimestr), class: "blog-dates" },
|
||||
{ text: __("Updated: {0}", v.utimestr), class: "blog-dates" }]
|
||||
me.bloglist.set "items", r.result
|
||||
if selidx isnt -1
|
||||
me.bloglist.set "selected", selidx
|
||||
else
|
||||
me.clearEditor()
|
||||
me.bloglist.set "selected", -1
|
||||
resizeContent: () ->
|
||||
container = @find "editor-container"
|
||||
children = ($ container).children()
|
||||
titlebar = (($ @scheme).find ".afx-window-top")[0]
|
||||
toolbar = children[1]
|
||||
statusbar = children[4]
|
||||
cheight = ($ @scheme).height() - ($ titlebar).height() - ($ toolbar).height() - ($ statusbar).height() - 90
|
||||
($ children[2]).css("height", cheight + "px")
|
||||
Blogger.singleton = true
|
||||
Blogger.dependencies = [ "mde/simplemde.min" ]
|
||||
this.OS.register "Blogger", Blogger
|
94
Blogger/main.css
Normal file
94
Blogger/main.css
Normal file
@ -0,0 +1,94 @@
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[data-id="tabbar"] {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
background-color: #333333;
|
||||
}
|
||||
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[data-id="tabbar"] > div > ul > li {
|
||||
background-color: #333333;
|
||||
font-size: 20px;
|
||||
color: #929292;
|
||||
}
|
||||
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[data-id="tabbar"] > div > ul > li.selected{
|
||||
color:white;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-hbox[data-id="user-container"] {
|
||||
padding: 10px;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-hbox[data-id="user-container"] afx-hbox{
|
||||
margin-bottom: 5px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-hbox[data-id="user-container"] afx-label{
|
||||
font-weight: bold;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-hbox.cv-side-bar-btn{
|
||||
padding-left:3px;
|
||||
padding-top:3px;
|
||||
background-color: #f6F6F6;
|
||||
border-top: 1px solid #cbcbcb;
|
||||
color:#414339;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-resizer{
|
||||
border-left: 1px solid #cbcbcb;
|
||||
background-color: transparent;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-hbox[data-id="cv-container"] afx-label.cat-header{
|
||||
background-color: #f6F6F6;
|
||||
border-bottom: 1px solid #cbcbcb;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
afx-app-window[data-id="blogger-cv-sec-win"] afx-hbox{
|
||||
padding-left:5px;
|
||||
padding-right:5px;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] > div.list-container > ul > li{
|
||||
padding-bottom: 10px;
|
||||
padding-top:10px;
|
||||
/*border-bottom: 1px solid #cbcbcb;*/
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] > div.list-container > ul afx-label{
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] > div.list-container > ul >li:nth-child(odd){
|
||||
background-color: white;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] > div.list-container > ul > li.selected {
|
||||
border: 2px solid #116cd6;
|
||||
color: #414339;
|
||||
background-color: transparent;
|
||||
border-radius: 5px;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] > div.list-container > ul > li.selected ul.complex-content li{
|
||||
color: #414339;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] .cv-content{
|
||||
text-align: justify;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] .cv-period, .cv-loc{
|
||||
text-align: right;
|
||||
clear: both;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] .cv-subtitle{
|
||||
font-style: italic;
|
||||
float:left;
|
||||
}
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "cv-sec-list"] i.closable::before{
|
||||
content: "\f014";
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "blog-list"] > div.list-container > ul afx-label{
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "blog-list"] > div.list-container > ul .blog-dates{
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
afx-app-window[data-id="blogger-win"] afx-list-view[ data-id = "blog-list"] > div.list-container > ul > li.selected .blog-dates{
|
||||
color: white;
|
||||
}
|
13
Blogger/package.json
Normal file
13
Blogger/package.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"app":"Blogger",
|
||||
"name":"Blogging application",
|
||||
"description":"Backend manager for blogging",
|
||||
"info":{
|
||||
"author": "Xuan Sang LE",
|
||||
"email": "xsang.le@gmail.com"
|
||||
},
|
||||
"version":"0.0.6-a",
|
||||
"category":"Internet",
|
||||
"iconclass":"fa fa-book",
|
||||
"mimes":["none"]
|
||||
}
|
76
Blogger/scheme.html
Normal file
76
Blogger/scheme.html
Normal file
@ -0,0 +1,76 @@
|
||||
<afx-app-window data-id = "blogger-win" apptitle="Blogger" width="500" height="500">
|
||||
<afx-hbox >
|
||||
<afx-list-view data-id="tabbar" data-width="30"></afx-list-view>
|
||||
<afx-vbox>
|
||||
<afx-hbox data-id="user-container" data-height="100%">
|
||||
<afx-vbox>
|
||||
<afx-hbox data-height = "30">
|
||||
<afx-label data-width= "70" text = "__(Full name)"></afx-label>
|
||||
<input type = "text" name="fullname" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height = "30">
|
||||
<afx-label text = "__(Address)" data-width= "70"></afx-label>
|
||||
<input type = "text" name="address" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height = "30">
|
||||
<afx-label text = "__(Phone)" data-width= "70"></afx-label>
|
||||
<input type = "text" name="Phone" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height = "30">
|
||||
<afx-label text = "__(Email)" data-width= "70"></afx-label>
|
||||
<input type = "text" name="email" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-height = "30">
|
||||
<afx-label text = "__(Url)" data-width= "70"></afx-label>
|
||||
<input type = "text" name="url" input-class = "user-input"/>
|
||||
</afx-hbox>
|
||||
<afx-label data-height = "30" text = "__(Short biblio)"/>
|
||||
<textarea name="shortbiblio" input-class = "user-input"/>
|
||||
<afx-hbox data-height = "35">
|
||||
<div></div>
|
||||
<afx-button iconclass = "fa fa-save" data-id = "bt-user-save" data-width="60" text = "__(Save)"/>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-id="cv-container" data-height="100%">
|
||||
<afx-vbox data-width="150" min-width="100">
|
||||
<afx-label class = "cat-header" data-height = "23" text = "__(Categories)" iconclass = "fa fa-bars"></afx-label>
|
||||
<afx-tree-view data-id = "cv-list" ></afx-tree-view>
|
||||
<afx-hbox data-height="30" class = "cv-side-bar-btn">
|
||||
<afx-button data-id = "cv-cat-add" data-width = "25" text = "" iconclass = "fa fa-plus-circle"></afx-button>
|
||||
<afx-button data-id = "cv-cat-del" data-width = "25" text = "" iconclass = "fa fa-minus-circle"></afx-button>
|
||||
<afx-button data-id = "cv-cat-edit" data-width = "25" text = "" iconclass = "fa fa-pencil-square-o"></afx-button>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
<afx-resizer data-width = "3"/>
|
||||
<afx-vbox>
|
||||
<afx-list-view data-id = "cv-sec-list" ></afx-list-view>
|
||||
<afx-hbox data-height="30" class = "cv-side-bar-btn">
|
||||
<div data-id = "cv-sec-status"></div>
|
||||
<afx-button data-id = "cv-sec-add" data-width = "25" text = "" iconclass = "fa fa-plus-circle"></afx-button>
|
||||
<afx-button data-id = "cv-sec-edit" data-width = "25" text = "" iconclass = "fa fa-pencil-square-o"></afx-button>
|
||||
<afx-button data-id = "cv-sec-move" data-width = "25" text = "" iconclass = "fa fa-exchange"></afx-button>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
</afx-hbox>
|
||||
<afx-hbox data-id = "blog-container" data-height="100%">
|
||||
<afx-list-view data-id = "blog-list" min-width="100" data-width="150"></afx-list-view>
|
||||
<afx-resizer data-width = "3"/>
|
||||
<afx-vbox>
|
||||
<div data-id = "editor-container">
|
||||
<textarea data-id="markarea" ></textarea>
|
||||
</div>
|
||||
<afx-label text = "__(Tags)" style="font-weight:bold;" data-height="25" ></afx-label>
|
||||
<afx-hbox data-height="25">
|
||||
<input type = "text" data-id = "input-tags" />
|
||||
<div data-width="5"></div>
|
||||
<afx-switch data data-id = "blog-publish" data-width="30"></afx-switch>
|
||||
<div data-width="5"></div>
|
||||
</afx-hbox>
|
||||
|
||||
<div data-height="5"></div>
|
||||
</afx-vbox>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
</afx-hbox>
|
||||
</afx-app-window>
|
20
Blogger/sendmail.html
Normal file
20
Blogger/sendmail.html
Normal file
@ -0,0 +1,20 @@
|
||||
<afx-app-window data-id = "blogger-send-mail-win" apptitle="Send mail" width="500" height="400" resizable = "false">
|
||||
<afx-hbox>
|
||||
<afx-menu data-width="150" data-id="email-list"></afx-menu>
|
||||
<afx-resizer data-width="3"></afx-resizer>
|
||||
<div data-width="5"></div>
|
||||
<afx-vbox >
|
||||
<div data-height="5"></div>
|
||||
<afx-label data-height="20" text = "__(Title)"></afx-label>
|
||||
<input type = "text" data-height="20" name="title" data-id = "mail-title"/>
|
||||
<afx-label data-height = "20" text = "Content" />
|
||||
<textarea name="content" data-id = "contentarea" />
|
||||
<div data-height="5"></div>
|
||||
<afx-hbox data-height = "30">
|
||||
<div></div>
|
||||
<afx-button iconclass = "fa fa-paper-plane" data-id = "bt-sendmail" data-width="60" text = "__(Send)"/>
|
||||
</afx-hbox>
|
||||
</afx-vbox>
|
||||
<div data-width="5"></div>
|
||||
</afx-hbox>
|
||||
</afx-app-window>
|
Reference in New Issue
Block a user