longdown
Version:
Convert longform markdown files to outline format used by Logseq
123 lines (117 loc) • 8.02 kB
JavaScript
import "./cljs_env.js";
goog.provide('longdown.lib');
longdown.lib.slurp = (function longdown$lib$slurp(path){
return shadow.esm.esm_import$node_fs.readFileSync(path,"utf-8");
});
longdown.lib.spit = (function longdown$lib$spit(path,output){
return shadow.esm.esm_import$node_fs.writeFileSync(path,output);
});
longdown.lib.stratify_nodes = (function longdown$lib$stratify_nodes(p__21445){
var vec__21446 = p__21445;
var seq__21447 = cljs.core.seq(vec__21446);
var first__21448 = cljs.core.first(seq__21447);
var seq__21447__$1 = cljs.core.next(seq__21447);
var node = first__21448;
var remaining = seq__21447__$1;
var G__21449 = new cljs.core.Keyword(null,"type","type",1174270348).cljs$core$IFn$_invoke$arity$1(node);
switch (G__21449) {
case "heading":
var map__21451 = node;
var map__21451__$1 = cljs.core.__destructure_map(map__21451);
var depth = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__21451__$1,new cljs.core.Keyword(null,"depth","depth",1768663640));
var nodes = remaining;
var children = cljs.core.PersistentVector.EMPTY;
while(true){
var child = cljs.core.first(nodes);
if(cljs.core.truth_((function (){var and__5043__auto__ = child;
if(cljs.core.truth_(and__5043__auto__)){
return ((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"type","type",1174270348).cljs$core$IFn$_invoke$arity$1(child),"heading")) || ((depth < new cljs.core.Keyword(null,"depth","depth",1768663640).cljs$core$IFn$_invoke$arity$1(child))));
} else {
return and__5043__auto__;
}
})())){
var vec__21457 = (longdown.lib.stratify_nodes.cljs$core$IFn$_invoke$arity$1 ? longdown.lib.stratify_nodes.cljs$core$IFn$_invoke$arity$1(nodes) : longdown.lib.stratify_nodes.call(null,nodes));
var nodes__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21457,(0),null);
var child__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21457,(1),null);
var G__21470 = nodes__$1;
var G__21471 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(children,child__$1);
nodes = G__21470;
children = G__21471;
continue;
} else {
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [nodes,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),"listItem",new cljs.core.Keyword(null,"children","children",-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),"list",new cljs.core.Keyword(null,"children","children",-940561982),children], null)], null)], null)], null);
}
break;
}
break;
case "list":
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [remaining,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),"listItem",new cljs.core.Keyword(null,"children","children",-940561982),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),"paragraph",new cljs.core.Keyword(null,"children","children",-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),"text",new cljs.core.Keyword(null,"text","text",-1790561697),""], null)], null)], null),node], null)], null)], null);
break;
default:
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [remaining,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),"listItem",new cljs.core.Keyword(null,"children","children",-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [node], null)], null)], null);
}
});
longdown.lib.stratify = (function longdown$lib$stratify(node){
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"type","type",1174270348).cljs$core$IFn$_invoke$arity$1(node),"root")){
} else {
throw (new Error("Assert failed: (= (:type node) \"root\")"));
}
var nodes = new cljs.core.Keyword(null,"children","children",-940561982).cljs$core$IFn$_invoke$arity$1(node);
var children = cljs.core.PersistentVector.EMPTY;
while(true){
if(cljs.core.seq(nodes)){
var vec__21463 = longdown.lib.stratify_nodes(nodes);
var nodes__$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21463,(0),null);
var child = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__21463,(1),null);
var G__21473 = nodes__$1;
var G__21474 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(children,child);
nodes = G__21473;
children = G__21474;
continue;
} else {
return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(node,new cljs.core.Keyword(null,"children","children",-940561982),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),"list",new cljs.core.Keyword(null,"children","children",-940561982),children], null)], null));
}
break;
}
});
longdown.lib.process = (function longdown$lib$process(_options){
return (function (tree,file,cb){
var next_tree = cljs.core.clj__GT_js(longdown.lib.stratify(cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$variadic(tree,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"keywordize-keys","keywordize-keys",1310784252),true], 0))));
return (cb.cljs$core$IFn$_invoke$arity$3 ? cb.cljs$core$IFn$_invoke$arity$3(null,next_tree,file) : cb.call(null,null,next_tree,file));
});
});
longdown.lib.onenterlineprefix = (function longdown$lib$onenterlineprefix(token){
var this$ = this;
var node = (this$.stack[(this$.stack.length - (1))]);
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(node.type,"paragraph")){
return this$.config.enter.data.call(this$,token);
} else {
return null;
}
});
longdown.lib.onexitlineprefix = (function longdown$lib$onexitlineprefix(token){
var this$ = this;
var node = (this$.stack[(this$.stack.length - (1))]);
if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(node.type,"text")){
return this$.config.exit.data.call(this$,token);
} else {
return null;
}
});
longdown.lib.preserve_leading_whitespace_extension = ({"enter": ({"linePrefix": longdown.lib.onenterlineprefix}), "exit": ({"linePrefix": longdown.lib.onexitlineprefix})});
longdown.lib.custom_unsafe = shadow.esm.esm_import$mdast_util_to_markdown$lib$unsafe.unsafe.filter((function (x){
return (((!(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x.inConstruct,"phrasing")) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x.character," ")) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(x.character,"\t")))))))) && (((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(x.character,"_")) && (((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(x.character,"&")) && (((cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(x.character,"[")) && (cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(x.character,"]")))))))));
}));
longdown.lib.custom_paragraph = (function longdown$lib$custom_paragraph(node,_,state,info){
var orig_unsafe = state.unsafe;
var ___$1 = (state.unsafe = longdown.lib.custom_unsafe);
var value = shadow.esm.esm_import$mdast_util_to_markdown.defaultHandlers.paragraph(node,___$1,state,info);
var ___$2 = (state.unsafe = orig_unsafe);
return value;
});
longdown.lib.longform__GT_outline = (function longdown$lib$longform__GT_outline(input){
return cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.esm.esm_import$unified.unified().data("fromMarkdownExtensions",[longdown.lib.preserve_leading_whitespace_extension]).use(shadow.esm.esm_import$remark_parse.default).use(longdown.lib.process).use(shadow.esm.esm_import$remark_stringify.default,({"bullet": "-", "listItemIndent": "one", "fences": true, "join": [(function (_left,_right,_parent,_state){
return (0);
})], "handlers": ({"paragraph": longdown.lib.custom_paragraph})})).processSync(input));
});
//# sourceMappingURL=longdown.lib.js.map