(window.webpackJsonp=window.webpackJsonp||[]).push([[66],{179:function(t,n,s){},204:function(t,n,s){"use strict";var a=s(179);s.n(a).a},261:function(t,n,s){"use strict";s.r(n);s(204);var a=s(0),e=Object(a.a)({},function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"content"},[s("h1",{attrs:{id:"editor"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#editor","aria-hidden":"true"}},[t._v("#")]),t._v(" Editor "),s("Badge",{attrs:{text:"4.2.0"}})],1),t._v(" "),s("MavenBadge4",{attrs:{artifact:"editor"}}),t._v(" "),t._m(0),t._v(" "),s("video",{attrs:{controls:"true",loop:"",poster:t.$withBase("/assets/markwon-editor-preview.jpg")}},[s("source",{attrs:{src:t.$withBase("/assets/markwon-editor.mp4"),type:"video/mp4"}}),t._v("\n You browser does not support mp4 playback, try downloading video file \n "),s("a",{attrs:{href:t.$withBase("/assets/markwon-editor.mp4")}},[t._v("directly")])]),t._v(" "),t._m(1),t._v(" "),t._m(2),t._m(3),t._v(" "),t._m(4),t._m(5),t._v(" "),t._m(6),t._m(7),t._v(" "),t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._m(12),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)],1)},[function(){var t=this.$createElement,n=this._self._c||t;return n("p",[this._v("Markdown editing highlight for Android based on "),n("strong",[this._v("Markwon")]),this._v(".")])},function(){var t=this.$createElement,n=this._self._c||t;return n("h2",{attrs:{id:"getting-started-with-editor"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#getting-started-with-editor","aria-hidden":"true"}},[this._v("#")]),this._v(" Getting started with editor")])},function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{attrs:{class:"token comment"}},[t._v("// obtain Markwon instance")]),t._v("\n"),s("span",{attrs:{class:"token keyword"}},[t._v("final")]),t._v(" Markwon markwon "),s("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" Markwon"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("create")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token keyword"}},[t._v("this")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{attrs:{class:"token comment"}},[t._v("// create editor")]),t._v("\n"),s("span",{attrs:{class:"token keyword"}},[t._v("final")]),t._v(" MarkwonEditor editor "),s("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" MarkwonEditor"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("create")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("markwon"),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{attrs:{class:"token comment"}},[t._v("// set edit listener")]),t._v("\neditText"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("addTextChangedListener")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MarkwonEditorTextWatcher"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("withProcess")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("editor"),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])},function(){var t=this.$createElement,n=this._self._c||t;return n("p",[this._v("The code above "),n("em",[this._v("highlights")]),this._v(" in-place which is OK for relatively small markdown inputs.\nIf you wish to offload main thread and highlight in background use "),n("code",[this._v("withPreRender")]),this._v(" "),n("code",[this._v("MarkwonEditorTextWatcher")]),this._v(":")])},function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("editText"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("addTextChangedListener")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MarkwonEditorTextWatcher"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("withPreRender")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n editor"),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Executors"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("newCachedThreadPool")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n editText"),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])},function(){var t=this.$createElement,n=this._self._c||t;return n("p",[n("code",[this._v("MarkwonEditorTextWatcher")]),this._v(" automatically triggers markdown highlight when text in "),n("code",[this._v("EditText")]),this._v(" changes.\nBut you still can invoke "),n("code",[this._v("MarkwonEditor")]),this._v(" manually:")])},function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[t._v("editor"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("process")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("editText"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("getText")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{attrs:{class:"token comment"}},[t._v("// please note that MarkwonEditor operates on caller thread,")]),t._v("\n"),s("span",{attrs:{class:"token comment"}},[t._v("// if you wish to execute this operation in background - this method")]),t._v("\n"),s("span",{attrs:{class:"token comment"}},[t._v("// must be called from background thread")]),t._v("\neditor"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("preRender")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("editText"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("getText")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{attrs:{class:"token class-name"}},[t._v("MarkwonEditor"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PreRenderResultListener")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{attrs:{class:"token function"}},[t._v("onPreRenderResult")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@NonNull")]),t._v(" MarkwonEditor"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("PreRenderResult result"),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// it's wise to check if rendered result is for the same input,")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// for example by matching raw input")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("editText"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("getText")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("toString")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("equals")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("result"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("resultEditable")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("toString")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n \n "),s("span",{attrs:{class:"token comment"}},[t._v("// if you are in background thread do not forget")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// to execute dispatch in main thread")]),t._v("\n result"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("dispatchTo")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("editText"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("getText")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])},function(){var t=this.$createElement,n=this._self._c||t;return n("div",{staticClass:"warning custom-block"},[n("p",{staticClass:"custom-block-title"},[this._v("Implementation Detail")]),this._v(" "),n("p",[this._v("It must be mentioned that highlight is implemented via text diff. Everything\nthat is present in raw markdown input but missing from rendered result is considered\nto be "),n("em",[this._v("punctuation")]),this._v(".")])])},function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"danger custom-block"},[s("p",{staticClass:"custom-block-title"},[t._v("Tables and LaTeX")]),t._v(" "),s("p",[t._v("Tables and LaTeX nodes won't be rendered correctly. They will be treated as "),s("em",[t._v("punctuation")]),t._v("\nas whole. This comes from their implementation - they are "),s("em",[t._v("mocked")]),t._v(" and do not present\nin final result as text and thus cannot be "),s("em",[t._v("diffed")]),t._v(".")])])},function(){var t=this.$createElement,n=this._self._c||t;return n("h2",{attrs:{id:"custom-punctuation-span"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#custom-punctuation-span","aria-hidden":"true"}},[this._v("#")]),this._v(" Custom punctuation span")])},function(){var t=this.$createElement,n=this._self._c||t;return n("p",[this._v("By default "),n("code",[this._v("MarkwonEditor")]),this._v(" uses lighter text color of widget to customize punctuation.\nIf you wish to use a different span you can use "),n("code",[this._v("punctuationSpan")]),this._v(" configuration step:")])},function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{attrs:{class:"token keyword"}},[t._v("final")]),t._v(" MarkwonEditor editor "),s("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" MarkwonEditor"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("builder")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Markwon"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("create")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token keyword"}},[t._v("this")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("punctuationSpan")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("CustomPunctuationSpan"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token keyword"}},[t._v("class")]),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" CustomPunctuationSpan"),s("span",{attrs:{class:"token operator"}},[t._v(":")]),s("span",{attrs:{class:"token operator"}},[t._v(":")]),s("span",{attrs:{class:"token keyword"}},[t._v("new")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("build")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])},function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),s("span",{attrs:{class:"token class-name"}},[t._v("CustomPunctuationSpan")]),t._v(" "),s("span",{attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),s("span",{attrs:{class:"token class-name"}},[t._v("ForegroundColorSpan")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{attrs:{class:"token function"}},[t._v("CustomPunctuationSpan")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("super")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token number"}},[t._v("0xFFFF0000")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{attrs:{class:"token comment"}},[t._v("// RED")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])])},function(){var t=this.$createElement,n=this._self._c||t;return n("h2",{attrs:{id:"additional-handling"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#additional-handling","aria-hidden":"true"}},[this._v("#")]),this._v(" Additional handling")])},function(){var t=this.$createElement,n=this._self._c||t;return n("p",[this._v("In order to additionally highlight portions of markdown input (for example make text wrapped with "),n("code",[this._v("**")]),this._v("\nsymbols "),n("strong",[this._v("bold")]),this._v(") "),n("code",[this._v("EditHandler")]),this._v(" can be used:")])},function(){var t=this,n=t.$createElement,s=t._self._c||n;return s("div",{staticClass:"language-java extra-class"},[s("pre",{pre:!0,attrs:{class:"language-java"}},[s("code",[s("span",{attrs:{class:"token keyword"}},[t._v("final")]),t._v(" MarkwonEditor editor "),s("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v(" MarkwonEditor"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("builder")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Markwon"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("create")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token keyword"}},[t._v("this")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("useEditHandler")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),s("span",{attrs:{class:"token class-name"}},[t._v("AbstractEditHandler")]),s("span",{attrs:{class:"token generics function"}},[s("span",{attrs:{class:"token punctuation"}},[t._v("<")]),t._v("StrongEmphasisSpan"),s("span",{attrs:{class:"token punctuation"}},[t._v(">")])]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{attrs:{class:"token function"}},[t._v("configurePersistedSpans")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@NonNull")]),t._v(" PersistedSpans"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Builder builder"),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// Here we define which span is _persisted_ in EditText, it is not removed")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// from EditText between text changes, but instead - reused (by changing")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// position). Consider it as a cache for spans. We could use `StrongEmphasisSpan`")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// here also, but I chose Bold to indicate that this span is not the same")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// as in off-screen rendered markdown")]),t._v("\n builder"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("persistSpan")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Bold"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token keyword"}},[t._v("class")]),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" Bold"),s("span",{attrs:{class:"token operator"}},[t._v(":")]),s("span",{attrs:{class:"token operator"}},[t._v(":")]),s("span",{attrs:{class:"token keyword"}},[t._v("new")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{attrs:{class:"token keyword"}},[t._v("void")]),t._v(" "),s("span",{attrs:{class:"token function"}},[t._v("handleMarkdownSpan")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@NonNull")]),t._v(" PersistedSpans persistedSpans"),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@NonNull")]),t._v(" Editable editable"),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@NonNull")]),t._v(" String input"),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@NonNull")]),t._v(" StrongEmphasisSpan span"),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("int")]),t._v(" spanStart"),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("int")]),t._v(" spanTextLength"),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// Unfortunately we cannot hardcode delimiters length here (aka spanTextLength + 4)")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// because multiple inline markdown nodes can refer to the same text.")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// For example, `**_~~hey~~_**` - we will receive `**_~~` in this method,")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// and thus will have to manually find actual position in raw user input")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("final")]),t._v(" MarkwonEditorUtils"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("Match match "),s("span",{attrs:{class:"token operator"}},[t._v("=")]),t._v("\n MarkwonEditorUtils"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("findDelimited")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("input"),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" spanStart"),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{attrs:{class:"token string"}},[t._v('"**"')]),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{attrs:{class:"token string"}},[t._v('"__"')]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("match "),s("span",{attrs:{class:"token operator"}},[t._v("!=")]),t._v(" null"),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n editable"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("setSpan")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// we handle StrongEmphasisSpan and represent it with Bold in EditText")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// we still could use StrongEmphasisSpan, but it must be accessed")]),t._v("\n "),s("span",{attrs:{class:"token comment"}},[t._v("// via persistedSpans")]),t._v("\n persistedSpans"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("get")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Bold"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token keyword"}},[t._v("class")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n match"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("start")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n match"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("end")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n Spanned"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),t._v("SPAN_EXCLUSIVE_EXCLUSIVE\n "),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@NonNull")]),t._v("\n "),s("span",{attrs:{class:"token annotation punctuation"}},[t._v("@Override")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("public")]),t._v(" Class"),s("span",{attrs:{class:"token generics function"}},[s("span",{attrs:{class:"token punctuation"}},[t._v("<")]),t._v("StrongEmphasisSpan"),s("span",{attrs:{class:"token punctuation"}},[t._v(">")])]),t._v(" "),s("span",{attrs:{class:"token function"}},[t._v("markdownSpanType")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{attrs:{class:"token keyword"}},[t._v("return")]),t._v(" StrongEmphasisSpan"),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token keyword"}},[t._v("class")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{attrs:{class:"token function"}},[t._v("build")]),s("span",{attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])])])}],!1,null,null,null);e.options.__file="README.md";n.default=e.exports}}]);