Commit 9d731ce8 authored by Matthieu Le Corre's avatar Matthieu Le Corre
Browse files
parent 36d7cf7d
# 1.1.3 25-11-2019
## 1.1.4 XX-XX-2020
### Fixed
- Incorrect file name displayed
[#44](https://gitlab.univ-nantes.fr/uncloud/files_readmemd/issues/36#)
### Added
- NC 18 compatibility
## 1.1.3 25-11-2019
### Fixed
- Folder or file name with UTf-8 characters not displaying
[#36](https://gitlab.univ-nantes.fr/uncloud/files_readmemd/issues/36#)
......@@ -15,7 +23,7 @@
- Support Dark Theme
[#37](https://gitlab.univ-nantes.fr/uncloud/files_readmemd/issues/37#)
# 1.1.2 18-10-2019
## 1.1.2 18-10-2019
### Fixed
- Image not loading when using MD produced by the new text editor
[#33](https://gitlab.univ-nantes.fr/uncloud/files_readmemd/issues/33#)
......@@ -24,7 +32,7 @@
### Added
- Compatibility with NC 17
# 1.1.1 26-07-2019
## 1.1.1 26-07-2019
### Fixed
- HTML and asciidoc rendering not working
[#29](https://gitlab.univ-nantes.fr/uncloud/files_readmemd/issues/29#)
......
......@@ -7,7 +7,7 @@
With this app you can add a header and a footer to your nextcloud directories.
This can be use to explain the goal of a directory, describe the content of a folder ...
It show README.md in the way gitlab does.]]></description>
<version>1.1.3</version>
<version>1.1.4</version>
<licence>agpl</licence>
<author mail="matthieu.lecorre@univ-nantes.fr" homepage="http://www.univ-nantes.fr">Matthieu Le Corre</author>
<namespace>ReadmeMD</namespace>
......@@ -19,7 +19,7 @@ It show README.md in the way gitlab does.]]></description>
<bugs>https://gitlab.univ-nantes.fr/uncloud/files_readmemd/issues</bugs>
<screenshot>https://gitlab.univ-nantes.fr/uncloud/files_readmemd/raw/master/screenshot.png</screenshot>
<dependencies>
<nextcloud min-version="15" max-version="17"/>
<nextcloud min-version="16" max-version="18"/>
</dependencies>
<settings>
<admin>OCA\ReadmeMD\Settings\Admin\Appareance</admin>
......
/******/ (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, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // 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 = 28);
/******/ })
/************************************************************************/
/******/ ({
/***/ 28:
/***/ (function(module, exports) {
!function(e){var t={};function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=28)}({28:function(e,t){
/**
* @author Matthieu Le Corre <matthieu.lecorre@univ-nantes.fr>
*
......@@ -108,113 +18,5 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
$(document).ready(function () {
//Appearance
$("#readmeMD-appearance-txt").click(function(Event){
$.post(OC.generateUrl("apps/files_readmemd/config"),{key: "show_title", value: Event.target.checked})
.success(function (json) {
//console.log(json) ;
})
}) ;
$("#readmeMD-appearance-color").click(function(Event){
$.post(OC.generateUrl("apps/files_readmemd/config"),{key: "yellow_back", value: Event.target.checked})
.success(function (json) {
//console.log(json) ;
})
}) ;
$("#readmeMD-appearance-refresh").click(function(Event){
$.post(OC.generateUrl("apps/files_readmemd/config"),{key: "auto_refresh", value: Event.target.checked})
.success(function (json) {
//console.log(json) ;
})
}) ;
//Engines
$("#readmeMD-engine-asciidoc").click(function(Event){
$.post(OC.generateUrl("apps/files_readmemd/config"),{key: "show_asciidoc", value: Event.target.checked})
.success(function (json) {
//console.log(json) ;
})
}) ;
$("#readmeMD-engine-html").click(function(Event){
$.post(OC.generateUrl("apps/files_readmemd/config"),{key: "show_html", value: Event.target.checked})
.success(function (json) {
//console.log(json) ;
})
}) ;
// Fileslists
// DELETE
$(".readmeMD-filelist_delete").on("click",function(Event){
var self =this ;
var fn = Event.target.dataset.filename ;
var zone = Event.target.dataset.zone ;
//console.log( "Deleting " + zone + " -> " + fn ) ;
$.ajax({
url:OC.generateUrl("apps/files_readmemd/config/filenames/" + zone + "/" + fn.replace("?","%3F") ),
type: 'DELETE',
success: function(data) {
$(self).parent().remove() ;
}
})
}) ;
//ADD
$("#readmeMD-filelist_submit-footer").on("click",function(Event){
var fn = $("#readmeMD-filelist_name-footer")[0].value ;
var zone = "footer" ;
$.ajax({
url:OC.generateUrl("apps/files_readmemd/config/filenames/" + zone + "/" + fn.replace("?","%3F") ),
type: 'PUT',
success: function(data) {
$("#readmeMD-filelist_footer").append(
'<li class="readmeMD-filelist" id="readmeMD-filelist-'+fn+'">'
+'<a data-zone="footer" data-filename="'+fn+'" class="readmeMD-filelist_delete icon-inline icon icon-delete"></a>'
+fn+'</li>')
}
})
}) ;
$("#readmeMD-filelist_submit-header").on("click",function(Event){
var fn = $("#readmeMD-filelist_name-header")[0].value ;
var zone = "header" ;
$.ajax({
url:OC.generateUrl("apps/files_readmemd/config/filenames/" + zone + "/" + fn.replace("?","%3F") ),
type: 'PUT',
success: function(data) {
$("#readmeMD-filelist_header").append(
'<li class="readmeMD-filelist" id="readmeMD-filelist-'+fn+'">'
+'<a data-zone="header" data-filename="'+fn+'" class="readmeMD-filelist_delete icon-inline icon icon-delete"></a>'
+fn+'</li>')
}
})
}) ;
});
/***/ })
/******/ });
$(document).ready((function(){$("#readmeMD-appearance-txt").click((function(e){$.post(OC.generateUrl("apps/files_readmemd/config"),{key:"show_title",value:e.target.checked}).success((function(e){}))})),$("#readmeMD-appearance-color").click((function(e){$.post(OC.generateUrl("apps/files_readmemd/config"),{key:"yellow_back",value:e.target.checked}).success((function(e){}))})),$("#readmeMD-appearance-refresh").click((function(e){$.post(OC.generateUrl("apps/files_readmemd/config"),{key:"auto_refresh",value:e.target.checked}).success((function(e){}))})),$("#readmeMD-engine-asciidoc").click((function(e){$.post(OC.generateUrl("apps/files_readmemd/config"),{key:"show_asciidoc",value:e.target.checked}).success((function(e){}))})),$("#readmeMD-engine-html").click((function(e){$.post(OC.generateUrl("apps/files_readmemd/config"),{key:"show_html",value:e.target.checked}).success((function(e){}))})),$(".readmeMD-filelist_delete").on("click",(function(e){var t=this,a=e.target.dataset.filename,n=e.target.dataset.zone;$.ajax({url:OC.generateUrl("apps/files_readmemd/config/filenames/"+n+"/"+a.replace("?","%3F")),type:"DELETE",success:function(e){$(t).parent().remove()}})})),$("#readmeMD-filelist_submit-footer").on("click",(function(e){var t=$("#readmeMD-filelist_name-footer")[0].value;$.ajax({url:OC.generateUrl("apps/files_readmemd/config/filenames/footer/"+t.replace("?","%3F")),type:"PUT",success:function(e){$("#readmeMD-filelist_footer").append('<li class="readmeMD-filelist" id="readmeMD-filelist-'+t+'"><a data-zone="footer" data-filename="'+t+'" class="readmeMD-filelist_delete icon-inline icon icon-delete"></a>'+t+"</li>")}})})),$("#readmeMD-filelist_submit-header").on("click",(function(e){var t=$("#readmeMD-filelist_name-header")[0].value;$.ajax({url:OC.generateUrl("apps/files_readmemd/config/filenames/header/"+t.replace("?","%3F")),type:"PUT",success:function(e){$("#readmeMD-filelist_header").append('<li class="readmeMD-filelist" id="readmeMD-filelist-'+t+'"><a data-zone="header" data-filename="'+t+'" class="readmeMD-filelist_delete icon-inline icon icon-delete"></a>'+t+"</li>")}})}))}))}});
//# sourceMappingURL=config.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/config.js"],"names":[],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,6DAA6D,+CAA+C;AAC5G;AACA;AACA,iBAAiB;AACjB,KAAK;;AAEL;AACA,6DAA6D,gDAAgD;AAC7G;AACA;AACA,iBAAiB;AACjB,KAAK;;AAEL;AACA,6DAA6D,iDAAiD;AAC9G;AACA;AACA,iBAAiB;AACjB,KAAK;;;AAGL;;;AAGA;AACA,6DAA6D,kDAAkD;AAC/G;AACA;AACA,iBAAiB;AACjB,KAAK;;AAEL;AACA,6DAA6D,8CAA8C;AAC3G;AACA;AACA,iBAAiB;AACjB,KAAK;;;AAGL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER,KAAK;;AAEL;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,KAAK;;AAEL,EAAE,E","file":"config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 28);\n","/**\n * @author Matthieu Le Corre <matthieu.lecorre@univ-nantes.fr>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n $(document).ready(function () {\n\n //Appearance\n\n $(\"#readmeMD-appearance-txt\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"show_title\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n $(\"#readmeMD-appearance-color\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"yellow_back\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n $(\"#readmeMD-appearance-refresh\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"auto_refresh\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n\n //Engines\n\n\n $(\"#readmeMD-engine-asciidoc\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"show_asciidoc\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n $(\"#readmeMD-engine-html\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"show_html\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n\n // Fileslists\n\n // DELETE\n $(\".readmeMD-filelist_delete\").on(\"click\",function(Event){\n var self =this ;\n\n var fn = Event.target.dataset.filename ;\n var zone = Event.target.dataset.zone ;\n\n //console.log( \"Deleting \" + zone + \" -> \" + fn ) ;\n\n $.ajax({\n url:OC.generateUrl(\"apps/files_readmemd/config/filenames/\" + zone + \"/\" + fn.replace(\"?\",\"%3F\") ),\n type: 'DELETE',\n success: function(data) {\n $(self).parent().remove() ;\n }\n })\n\n }) ;\n\n //ADD\n\n $(\"#readmeMD-filelist_submit-footer\").on(\"click\",function(Event){\n \n var fn = $(\"#readmeMD-filelist_name-footer\")[0].value ;\n var zone = \"footer\" ;\n\n $.ajax({\n url:OC.generateUrl(\"apps/files_readmemd/config/filenames/\" + zone + \"/\" + fn.replace(\"?\",\"%3F\") ),\n type: 'PUT',\n success: function(data) { \n $(\"#readmeMD-filelist_footer\").append(\n '<li class=\"readmeMD-filelist\" id=\"readmeMD-filelist-'+fn+'\">'\n +'<a data-zone=\"footer\" data-filename=\"'+fn+'\" class=\"readmeMD-filelist_delete icon-inline icon icon-delete\"></a>'\n +fn+'</li>')\n }\n })\n\n }) ;\n\n $(\"#readmeMD-filelist_submit-header\").on(\"click\",function(Event){\n \n var fn = $(\"#readmeMD-filelist_name-header\")[0].value ;\n var zone = \"header\" ;\n\n $.ajax({\n url:OC.generateUrl(\"apps/files_readmemd/config/filenames/\" + zone + \"/\" + fn.replace(\"?\",\"%3F\") ),\n type: 'PUT',\n success: function(data) { \n $(\"#readmeMD-filelist_header\").append(\n '<li class=\"readmeMD-filelist\" id=\"readmeMD-filelist-'+fn+'\">'\n +'<a data-zone=\"header\" data-filename=\"'+fn+'\" class=\"readmeMD-filelist_delete icon-inline icon icon-delete\"></a>'\n +fn+'</li>')\n }\n })\n\n }) ;\n\n }); "],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/config.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","document","ready","click","Event","post","OC","generateUrl","target","checked","success","json","on","self","this","fn","dataset","filename","zone","ajax","url","replace","type","data","parent","remove","append"],"mappings":"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","file":"config.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 28);\n","/**\n * @author Matthieu Le Corre <matthieu.lecorre@univ-nantes.fr>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n $(document).ready(function () {\n\n //Appearance\n\n $(\"#readmeMD-appearance-txt\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"show_title\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n $(\"#readmeMD-appearance-color\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"yellow_back\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n $(\"#readmeMD-appearance-refresh\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"auto_refresh\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n\n //Engines\n\n\n $(\"#readmeMD-engine-asciidoc\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"show_asciidoc\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n $(\"#readmeMD-engine-html\").click(function(Event){\n $.post(OC.generateUrl(\"apps/files_readmemd/config\"),{key: \"show_html\", value: Event.target.checked})\n .success(function (json) {\n //console.log(json) ;\n })\n }) ;\n\n\n // Fileslists\n\n // DELETE\n $(\".readmeMD-filelist_delete\").on(\"click\",function(Event){\n var self =this ;\n\n var fn = Event.target.dataset.filename ;\n var zone = Event.target.dataset.zone ;\n\n //console.log( \"Deleting \" + zone + \" -> \" + fn ) ;\n\n $.ajax({\n url:OC.generateUrl(\"apps/files_readmemd/config/filenames/\" + zone + \"/\" + fn.replace(\"?\",\"%3F\") ),\n type: 'DELETE',\n success: function(data) {\n $(self).parent().remove() ;\n }\n })\n\n }) ;\n\n //ADD\n\n $(\"#readmeMD-filelist_submit-footer\").on(\"click\",function(Event){\n \n var fn = $(\"#readmeMD-filelist_name-footer\")[0].value ;\n var zone = \"footer\" ;\n\n $.ajax({\n url:OC.generateUrl(\"apps/files_readmemd/config/filenames/\" + zone + \"/\" + fn.replace(\"?\",\"%3F\") ),\n type: 'PUT',\n success: function(data) { \n $(\"#readmeMD-filelist_footer\").append(\n '<li class=\"readmeMD-filelist\" id=\"readmeMD-filelist-'+fn+'\">'\n +'<a data-zone=\"footer\" data-filename=\"'+fn+'\" class=\"readmeMD-filelist_delete icon-inline icon icon-delete\"></a>'\n +fn+'</li>')\n }\n })\n\n }) ;\n\n $(\"#readmeMD-filelist_submit-header\").on(\"click\",function(Event){\n \n var fn = $(\"#readmeMD-filelist_name-header\")[0].value ;\n var zone = \"header\" ;\n\n $.ajax({\n url:OC.generateUrl(\"apps/files_readmemd/config/filenames/\" + zone + \"/\" + fn.replace(\"?\",\"%3F\") ),\n type: 'PUT',\n success: function(data) { \n $(\"#readmeMD-filelist_header\").append(\n '<li class=\"readmeMD-filelist\" id=\"readmeMD-filelist-'+fn+'\">'\n +'<a data-zone=\"header\" data-filename=\"'+fn+'\" class=\"readmeMD-filelist_delete icon-inline icon icon-delete\"></a>'\n +fn+'</li>')\n }\n })\n\n }) ;\n\n }); "],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonpFileReadmeMD"] = window["webpackJsonpFileReadmeMD"] || []).push([[8],{
/***/ 1312:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* Process inline math */
/*
Like markdown-it-simplemath, this is a stripped down, simplified version of:
https://github.com/runarberg/markdown-it-math
It differs in that it takes (a subset of) LaTeX as input and relies on KaTeX
for rendering output.
*/
/*jslint node: true */
var katex = __webpack_require__(1289);
// Test if potential opening or closing delimieter
// Assumes that there is a "$" at state.src[pos]
function isValidDelim(state, pos) {
var prevChar, nextChar,
max = state.posMax,
can_open = true,
can_close = true;
prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;
nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1;
// Check non-whitespace conditions for opening and closing, and
// check that closing delimeter isn't followed by a number
if (prevChar === 0x20/* " " */ || prevChar === 0x09/* \t */ ||
(nextChar >= 0x30/* "0" */ && nextChar <= 0x39/* "9" */)) {
can_close = false;
}
if (nextChar === 0x20/* " " */ || nextChar === 0x09/* \t */) {
can_open = false;
}
return {
can_open: can_open,
can_close: can_close
};
}
function math_inline(state, silent) {
var start, match, token, res, pos, esc_count;
if (state.src[state.pos] !== "$") { return false; }
res = isValidDelim(state, state.pos);
if (!res.can_open) {
if (!silent) { state.pending += "$"; }
state.pos += 1;
return true;
}
// First check for and bypass all properly escaped delimieters
// This loop will assume that the first leading backtick can not
// be the first character in state.src, which is known since
// we have found an opening delimieter already.
start = state.pos + 1;
match = start;
while ( (match = state.src.indexOf("$", match)) !== -1) {
// Found potential $, look for escapes, pos will point to
// first non escape when complete
pos = match - 1;
while (state.src[pos] === "\\") { pos -= 1; }
// Even number of escapes, potential closing delimiter found
if ( ((match - pos) % 2) == 1 ) { break; }
match += 1;
}
// No closing delimter found. Consume $ and continue.
if (match === -1) {
if (!silent) { state.pending += "$"; }
state.pos = start;
return true;
}
// Check if we have empty content, ie: $$. Do not parse.
if (match - start === 0) {
if (!silent) { state.pending += "$$"; }
state.pos = start + 1;
return true;
}
// Check for valid closing delimiter
res = isValidDelim(state, match);
if (!res.can_close) {
if (!silent) { state.pending += "$"; }
state.pos = start;
return true;
}
if (!silent) {
token = state.push('math_inline', 'math', 0);
token.markup = "$";
token.content = state.src.slice(start, match);
}
state.pos = match + 1;
return true;
}
function math_block(state, start, end, silent){
var firstLine, lastLine, next, lastPos, found = false, token,
pos = state.bMarks[start] + state.tShift[start],
max = state.eMarks[start]
if(pos + 2 > max){ return false; }
if(state.src.slice(pos,pos+2)!=='$$'){ return false; }
pos += 2;
firstLine = state.src.slice(pos,max);
if(silent){ return true; }
if(firstLine.trim().slice(-2)==='$$'){
// Single line expression
firstLine = firstLine.trim().slice(0, -2);
found = true;
}
for(next = start; !found; ){
next++;
if(next >= end){ break; }
pos = state.bMarks[next]+state.tShift[next];
max = state.eMarks[next];
if(pos < max && state.tShift[next] < state.blkIndent){
// non-empty line with negative indent should stop the list:
break;
}
if(state.src.slice(pos,max).trim().slice(-2)==='$$'){
lastPos = state.src.slice(0,max).lastIndexOf('$$');
lastLine = state.src.slice(pos,lastPos);
found = true;
}
}
state.line = next + 1;
token = state.push('math_block', 'math', 0);
token.block = true;
token.content = (firstLine && firstLine.trim() ? firstLine + '\n' : '')
+ state.getLines(start + 1, next, state.tShift[start], true)
+ (lastLine && lastLine.trim() ? lastLine : '');
token.map = [ start, state.line ];
token.markup = '$$';
return true;
}
module.exports = function math_plugin(md, options) {
// Default options
options = options || {};
// set KaTeX as the renderer for markdown-it-simplemath
var katexInline = function(latex){
options.displayMode = false;
try{
return katex.renderToString(latex, options);
}
catch(error){
if(options.throwOnError){ console.log(error); }
return latex;
}
};
var inlineRenderer = function(tokens, idx){
return katexInline(tokens[idx].content);
};
var katexBlock = function(latex){
options.displayMode = true;
try{
return "<p>" + katex.renderToString(latex, options) + "</p>";
}
catch(error){
if(options.throwOnError){ console.log(error); }
return latex;
}
}
var blockRenderer = function(tokens, idx){
return katexBlock(tokens[idx].content) + '\n';
}
md.inline.ruler.after('escape', 'math_inline', math_inline);
md.block.ruler.after('blockquote', 'math_block', math_block, {
alt: [ 'paragraph', 'reference', 'blockquote', 'list' ]
});
md.renderer.rules.math_inline = inlineRenderer;
md.renderer.rules.math_block = blockRenderer;
};
/***/ })
}]);
(window.webpackJsonpFileReadmeMD=window.webpackJsonpFileReadmeMD||[]).push([[2],{34:function(r,e,n){"use strict";var t=n(29);function c(r,e){var n,t,c=r.posMax,i=!0,o=!0;return n=e>0?r.src.charCodeAt(e-1):-1,t=e+1<=c?r.src.charCodeAt(e+1):-1,(32===n||9===n||t>=48&&t<=57)&&(o=!1),32!==t&&9!==t||(i=!1),{can_open:i,can_close:o}}function i(r,e){var n,t,i,o;if("$"!==r.src[r.pos])return!1;if(!c(r,r.pos).can_open)return e||(r.pending+="$"),r.pos+=1,!0;for(t=n=r.pos+1;-1!==(t=r.src.indexOf("$",t));){for(o=t-1;"\\"===r.src[o];)o-=1;if((t-o)%2==1)break;t+=1}return-1===t?(e||(r.pending+="$"),r.pos=n,!0):t-n==0?(e||(r.pending+="$$"),r.pos=n+1,!0):c(r,t).can_close?(e||((i=r.push("math_inline","math",0)).markup="$",i.content=r.src.slice(n,t)),r.pos=t+1,!0):(e||(r.pending+="$"),r.pos=n,!0)}function o(r,e,n,t){var c,i,o,s,a,l=!1,u=r.bMarks[e]+r.tShift[e],p=r.eMarks[e];if(u+2>p)return!1;if("$$"!==r.src.slice(u,u+2))return!1;if(u+=2,c=r.src.slice(u,p),t)return!0;for("$$"===c.trim().slice(-2)&&(c=c.trim().slice(0,-2),l=!0),o=e;!l&&!(++o>=n)&&!((u=r.bMarks[o]+r.tShift[o])<(p=r.eMarks[o])&&r.tShift[o]<r.blkIndent);)"$$"===r.src.slice(u,p).trim().slice(-2)&&(s=r.src.slice(0,p).lastIndexOf("$$"),i=r.src.slice(u,s),l=!0);return r.line=o+1,(a=r.push("math_block","math",0)).block=!0,a.content=(c&&c.trim()?c+"\n":"")+r.getLines(e+1,o,r.tShift[e],!0)+(i&&i.trim()?i:""),a.map=[e,r.line],a.markup="$$",!0}r.exports=function(r,e){e=e||{};r.inline.ruler.after("escape","math_inline",i),r.block.ruler.after("blockquote","math_block",o,{alt:["paragraph","reference","blockquote","list"]}),r.renderer.rules.math_inline=function(r,n){return function(r){e.displayMode=!1;try{return t.renderToString(r,e)}catch(n){return e.throwOnError&&console.log(n),r}}(r[n].content)},r.renderer.rules.math_block=function(r,n){return function(r){e.displayMode=!0;try{return"<p>"+t.renderToString(r,e)+"</p>"}catch(n){return e.throwOnError&&console.log(n),r}}(r[n].content)+"\n"}}}}]);
//# sourceMappingURL=m-it-katex.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./node_modules/markdown-it-katex/index.js"],"names":[],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACa;;AAEb,YAAY,mBAAO,CAAC,IAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,cAAc;;AAErD;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;;AAEnD;AACA,yCAAyC,OAAO;AAChD;AACA;;AAEA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,cAAc;AACpC,0CAA0C,cAAc;;AAExD;AACA;;AAEA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,QAAQ;;AAE7B;;AAEA,wBAAwB,OAAO;;AAE/B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA","file":"m-it-katex.js","sourcesContent":["/* Process inline math */\n/*\nLike markdown-it-simplemath, this is a stripped down, simplified version of:\nhttps://github.com/runarberg/markdown-it-math\n\nIt differs in that it takes (a subset of) LaTeX as input and relies on KaTeX\nfor rendering output.\n*/\n\n/*jslint node: true */\n'use strict';\n\nvar katex = require('katex');\n\n// Test if potential opening or closing delimieter\n// Assumes that there is a \"$\" at state.src[pos]\nfunction isValidDelim(state, pos) {\n var prevChar, nextChar,\n max = state.posMax,\n can_open = true,\n can_close = true;\n\n prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;\n nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1;\n\n // Check non-whitespace conditions for opening and closing, and\n // check that closing delimeter isn't followed by a number\n if (prevChar === 0x20/* \" \" */ || prevChar === 0x09/* \\t */ ||\n (nextChar >= 0x30/* \"0\" */ && nextChar <= 0x39/* \"9\" */)) {\n can_close = false;\n }\n if (nextChar === 0x20/* \" \" */ || nextChar === 0x09/* \\t */) {\n can_open = false;\n }\n\n return {\n can_open: can_open,\n can_close: can_close\n };\n}\n\nfunction math_inline(state, silent) {\n var start, match, token, res, pos, esc_count;\n\n if (state.src[state.pos] !== \"$\") { return false; }\n\n res = isValidDelim(state, state.pos);\n if (!res.can_open) {\n if (!silent) { state.pending += \"$\"; }\n state.pos += 1;\n return true;\n }\n\n // First check for and bypass all properly escaped delimieters\n // This loop will assume that the first leading backtick can not\n // be the first character in state.src, which is known since\n // we have found an opening delimieter already.\n start = state.pos + 1;\n match = start;\n while ( (match = state.src.indexOf(\"$\", match)) !== -1) {\n // Found potential $, look for escapes, pos will point to\n // first non escape when complete\n pos = match - 1;\n while (state.src[pos] === \"\\\\\") { pos -= 1; }\n\n // Even number of escapes, potential closing delimiter found\n if ( ((match - pos) % 2) == 1 ) { break; }\n match += 1;\n }\n\n // No closing delimter found. Consume $ and continue.\n if (match === -1) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n // Check if we have empty content, ie: $$. Do not parse.\n if (match - start === 0) {\n if (!silent) { state.pending += \"$$\"; }\n state.pos = start + 1;\n return true;\n }\n\n // Check for valid closing delimiter\n res = isValidDelim(state, match);\n if (!res.can_close) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n if (!silent) {\n token = state.push('math_inline', 'math', 0);\n token.markup = \"$\";\n token.content = state.src.slice(start, match);\n }\n\n state.pos = match + 1;\n return true;\n}\n\nfunction math_block(state, start, end, silent){\n var firstLine, lastLine, next, lastPos, found = false, token,\n pos = state.bMarks[start] + state.tShift[start],\n max = state.eMarks[start]\n\n if(pos + 2 > max){ return false; }\n if(state.src.slice(pos,pos+2)!=='$$'){ return false; }\n\n pos += 2;\n firstLine = state.src.slice(pos,max);\n\n if(silent){ return true; }\n if(firstLine.trim().slice(-2)==='$$'){\n // Single line expression\n firstLine = firstLine.trim().slice(0, -2);\n found = true;\n }\n\n for(next = start; !found; ){\n\n next++;\n\n if(next >= end){ break; }\n\n pos = state.bMarks[next]+state.tShift[next];\n max = state.eMarks[next];\n\n if(pos < max && state.tShift[next] < state.blkIndent){\n // non-empty line with negative indent should stop the list:\n break;\n }\n\n if(state.src.slice(pos,max).trim().slice(-2)==='$$'){\n lastPos = state.src.slice(0,max).lastIndexOf('$$');\n lastLine = state.src.slice(pos,lastPos);\n found = true;\n }\n\n }\n\n state.line = next + 1;\n\n token = state.push('math_block', 'math', 0);\n token.block = true;\n token.content = (firstLine && firstLine.trim() ? firstLine + '\\n' : '')\n + state.getLines(start + 1, next, state.tShift[start], true)\n + (lastLine && lastLine.trim() ? lastLine : '');\n token.map = [ start, state.line ];\n token.markup = '$$';\n return true;\n}\n\nmodule.exports = function math_plugin(md, options) {\n // Default options\n\n options = options || {};\n\n // set KaTeX as the renderer for markdown-it-simplemath\n var katexInline = function(latex){\n options.displayMode = false;\n try{\n return katex.renderToString(latex, options);\n }\n catch(error){\n if(options.throwOnError){ console.log(error); }\n return latex;\n }\n };\n\n var inlineRenderer = function(tokens, idx){\n return katexInline(tokens[idx].content);\n };\n\n var katexBlock = function(latex){\n options.displayMode = true;\n try{\n return \"<p>\" + katex.renderToString(latex, options) + \"</p>\";\n }\n catch(error){\n if(options.throwOnError){ console.log(error); }\n return latex;\n }\n }\n\n var blockRenderer = function(tokens, idx){\n return katexBlock(tokens[idx].content) + '\\n';\n }\n\n md.inline.ruler.after('escape', 'math_inline', math_inline);\n md.block.ruler.after('blockquote', 'math_block', math_block, {\n alt: [ 'paragraph', 'reference', 'blockquote', 'list' ]\n });\n md.renderer.rules.math_inline = inlineRenderer;\n md.renderer.rules.math_block = blockRenderer;\n};\n"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///./node_modules/markdown-it-katex/index.js"],"names":["katex","isValidDelim","state","pos","prevChar","nextChar","max","posMax","can_open","can_close","src","charCodeAt","math_inline","silent","start","match","token","pending","indexOf","push","markup","content","slice","math_block","end","firstLine","lastLine","next","lastPos","found","bMarks","tShift","eMarks","trim","blkIndent","lastIndexOf","line","block","getLines","map","module","exports","md","options","inline","ruler","after","alt","renderer","rules","tokens","idx","latex","displayMode","renderToString","error","throwOnError","console","log","katexInline","katexBlock"],"mappings":"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","file":"m-it-katex.js","sourcesContent":["/* Process inline math */\n/*\nLike markdown-it-simplemath, this is a stripped down, simplified version of:\nhttps://github.com/runarberg/markdown-it-math\n\nIt differs in that it takes (a subset of) LaTeX as input and relies on KaTeX\nfor rendering output.\n*/\n\n/*jslint node: true */\n'use strict';\n\nvar katex = require('katex');\n\n// Test if potential opening or closing delimieter\n// Assumes that there is a \"$\" at state.src[pos]\nfunction isValidDelim(state, pos) {\n var prevChar, nextChar,\n max = state.posMax,\n can_open = true,\n can_close = true;\n\n prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;\n nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1;\n\n // Check non-whitespace conditions for opening and closing, and\n // check that closing delimeter isn't followed by a number\n if (prevChar === 0x20/* \" \" */ || prevChar === 0x09/* \\t */ ||\n (nextChar >= 0x30/* \"0\" */ && nextChar <= 0x39/* \"9\" */)) {\n can_close = false;\n }\n if (nextChar === 0x20/* \" \" */ || nextChar === 0x09/* \\t */) {\n can_open = false;\n }\n\n return {\n can_open: can_open,\n can_close: can_close\n };\n}\n\nfunction math_inline(state, silent) {\n var start, match, token, res, pos, esc_count;\n\n if (state.src[state.pos] !== \"$\") { return false; }\n\n res = isValidDelim(state, state.pos);\n if (!res.can_open) {\n if (!silent) { state.pending += \"$\"; }\n state.pos += 1;\n return true;\n }\n\n // First check for and bypass all properly escaped delimieters\n // This loop will assume that the first leading backtick can not\n // be the first character in state.src, which is known since\n // we have found an opening delimieter already.\n start = state.pos + 1;\n match = start;\n while ( (match = state.src.indexOf(\"$\", match)) !== -1) {\n // Found potential $, look for escapes, pos will point to\n // first non escape when complete\n pos = match - 1;\n while (state.src[pos] === \"\\\\\") { pos -= 1; }\n\n // Even number of escapes, potential closing delimiter found\n if ( ((match - pos) % 2) == 1 ) { break; }\n match += 1;\n }\n\n // No closing delimter found. Consume $ and continue.\n if (match === -1) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n // Check if we have empty content, ie: $$. Do not parse.\n if (match - start === 0) {\n if (!silent) { state.pending += \"$$\"; }\n state.pos = start + 1;\n return true;\n }\n\n // Check for valid closing delimiter\n res = isValidDelim(state, match);\n if (!res.can_close) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n if (!silent) {\n token = state.push('math_inline', 'math', 0);\n token.markup = \"$\";\n token.content = state.src.slice(start, match);\n }\n\n state.pos = match + 1;\n return true;\n}\n\nfunction math_block(state, start, end, silent){\n var firstLine, lastLine, next, lastPos, found = false, token,\n pos = state.bMarks[start] + state.tShift[start],\n max = state.eMarks[start]\n\n if(pos + 2 > max){ return false; }\n if(state.src.slice(pos,pos+2)!=='$$'){ return false; }\n\n pos += 2;\n firstLine = state.src.slice(pos,max);\n\n if(silent){ return true; }\n if(firstLine.trim().slice(-2)==='$$'){\n // Single line expression\n firstLine = firstLine.trim().slice(0, -2);\n found = true;\n }\n\n for(next = start; !found; ){\n\n next++;\n\n if(next >= end){ break; }\n\n pos = state.bMarks[next]+state.tShift[next];\n max = state.eMarks[next];\n\n if(pos < max && state.tShift[next] < state.blkIndent){\n // non-empty line with negative indent should stop the list:\n break;\n }\n\n if(state.src.slice(pos,max).trim().slice(-2)==='$$'){\n lastPos = state.src.slice(0,max).lastIndexOf('$$');\n lastLine = state.src.slice(pos,lastPos);\n found = true;\n }\n\n }\n\n state.line = next + 1;\n\n token = state.push('math_block', 'math', 0);\n token.block = true;\n token.content = (firstLine && firstLine.trim() ? firstLine + '\\n' : '')\n + state.getLines(start + 1, next, state.tShift[start], true)\n + (lastLine && lastLine.trim() ? lastLine : '');\n token.map = [ start, state.line ];\n token.markup = '$$';\n return true;\n}\n\nmodule.exports = function math_plugin(md, options) {\n // Default options\n\n options = options || {};\n\n // set KaTeX as the renderer for markdown-it-simplemath\n var katexInline = function(latex){\n options.displayMode = false;\n try{\n return katex.renderToString(latex, options);\n }\n catch(error){\n if(options.throwOnError){ console.log(error); }\n return latex;\n }\n };\n\n var inlineRenderer = function(tokens, idx){\n return katexInline(tokens[idx].content);\n };\n\n var katexBlock = function(latex){\n options.displayMode = true;\n try{\n return \"<p>\" + katex.renderToString(latex, options) + \"</p>\";\n }\n catch(error){\n if(options.throwOnError){ console.log(error); }\n return latex;\n }\n }\n\n var blockRenderer = function(tokens, idx){\n return katexBlock(tokens[idx].content) + '\\n';\n }\n\n md.inline.ruler.after('escape', 'math_inline', math_inline);\n md.block.ruler.after('blockquote', 'math_block', math_block, {\n alt: [ 'paragraph', 'reference', 'blockquote', 'list' ]\n });\n md.renderer.rules.math_inline = inlineRenderer;\n md.renderer.rules.math_block = blockRenderer;\n};\n"],"sourceRoot":""}
\ No newline at end of file
(window["webpackJsonpFileReadmeMD"] = window["webpackJsonpFileReadmeMD"] || []).push([[6],{
/***/ 1282:
/***/ (function(module, exports, __webpack_require__) {
var map = {
"./locale": 1283,
"./locale.js": 1283
};
function webpackContext(req) {
var id = webpackContextResolve(req);
return __webpack_require__(id);
}
function webpackContextResolve(req) {
if(!__webpack_require__.o(map, req)) {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
}
return map[req];
}
webpackContext.keys = function webpackContextKeys() {
return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = 1282;
/***/ }),
/***/ 305:
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/***/ 307:
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/***/ 373:
/***/ (function(module, exports) {
/* (ignored) */
/***/ }),
/***/ 376:
/***/ (function(module, exports) {
/* (ignored) */
/***/ })
}]);
(window.webpackJsonpFileReadmeMD=window.webpackJsonpFileReadmeMD||[]).push([[3],{509:function(n,e){},511:function(n,e){},543:function(n,e){},544:function(n,e){},774:function(n,e,o){var i={"./locale":258,"./locale.js":258};function r(n){var e=t(n);return o(e)}function t(n){if(!o.o(i,n)){var e=new Error("Cannot find module '"+n+"'");throw e.code="MODULE_NOT_FOUND",e}return i[n]}r.keys=function(){return Object.keys(i)},r.resolve=t,n.exports=r,r.id=774}}]);
//# sourceMappingURL=m-it-mermaid.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./node_modules/moment-mini/locale sync ^\\.\\/.*$","webpack:///util (ignored)","webpack:///util (ignored)?1c6b","webpack:///buffer (ignored)","webpack:///crypto (ignored)"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yB;;;;;;;ACvBA,e;;;;;;;ACAA,e;;;;;;;ACAA,e;;;;;;;ACAA,e","file":"m-it-mermaid.js","sourcesContent":["var map = {\n\t\"./locale\": 1283,\n\t\"./locale.js\": 1283\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1282;","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///./node_modules/moment-mini/locale sync ^\\.\\/.*$"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports"],"mappings":"qLAAA,IAAIA,EAAM,CACT,WAAY,IACZ,cAAe,KAIhB,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,GAE5B,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,EAEP,OAAOP,EAAIE,GAEZD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,IAEpBC,EAAeW,QAAUR,EACzBS,EAAOC,QAAUb,EACjBA,EAAeE,GAAK","file":"m-it-mermaid.js","sourcesContent":["var map = {\n\t\"./locale\": 258,\n\t\"./locale.js\": 258\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 774;"],"sourceRoot":""}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.