{"id":13770952,"url":"https://github.com/Upstarts/editor.js-kit-android","last_synced_at":"2025-05-11T03:32:58.168Z","repository":{"id":34996468,"uuid":"192549331","full_name":"Upstarts/editor.js-kit-android","owner":"Upstarts","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-27T10:42:08.000Z","size":1066,"stargazers_count":27,"open_issues_count":1,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-17T06:40:30.392Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Upstarts.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-18T13:49:21.000Z","updated_at":"2024-11-10T16:25:18.000Z","dependencies_parsed_at":"2024-04-26T21:26:07.946Z","dependency_job_id":"b1f9874d-746d-4393-a369-196a014cc63e","html_url":"https://github.com/Upstarts/editor.js-kit-android","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Upstarts%2Feditor.js-kit-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Upstarts%2Feditor.js-kit-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Upstarts%2Feditor.js-kit-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Upstarts%2Feditor.js-kit-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Upstarts","download_url":"https://codeload.github.com/Upstarts/editor.js-kit-android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253514352,"owners_count":21920327,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:00:45.358Z","updated_at":"2025-05-11T03:32:57.668Z","avatar_url":"https://github.com/Upstarts.png","language":"Kotlin","readme":"\n\u003cp align=\"center\"\u003e\n\u003cpicture width=400\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://static.upstarts.work/ejkit/logo-dark.png?\"\u003e\n  \u003cimg src=\"https://static.upstarts.work/ejkit/logo-light.png?\" width=400\u003e\n\u003c/picture\u003e\n\u003c/p\u003e\n\n[![](https://jitpack.io/v/Upstarts/editor.js-kit-android.svg)](https://jitpack.io/#Upstarts/editor.js-kit-android)\n## About\n\nA non-official Android Framework for [Editor.js](https://editorjs.io) - block styled editor. It's purpose to make easy use of rendering and parsing of blocks.\n\nConverts clean json blocks data like [this](app/src/main/assets/dummy_data.json) into native views like that 👇\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://static.upstarts.work/ejkit/editorjs.kit-android-scr.png?\" width=320 /\u003e\n\u003c/p\u003e\n\n#### Supported blocks\n* 🎩 Header\n* 🥑 Raw HTML\n* 📷 Image\n* 🖌 Delimiter\n* 💌 Paragraph\n* 🌿 List\n* 📋 Table\n\n## Installation\nadd jitpack repo:\n```\nrepositories {\n    maven { url \"https://jitpack.io\" }\n}\n\n*.kts\nrepositories {\n    maven { setUrl(\"https://jitpack.io\") }\n}\n```\nadd dependency:\n```\nimplementation 'com.github.Upstarts.editor-js-kit-android:ejkit:X.X.X' - look at badge above for latest version\nimplementation 'com.github.Upstarts.editor-js-kit-android:ejkit-gson:X.X.X' - adds GSON adapter. If you use other library for parsing json, you need to write adapter yourself.\nimplementation 'com.github.Upstarts.editor-js-kit-android:ejkit-moshi:X.X.X' - adds Moshi adapter.\n```\n\n## Setup\n 1. Create adapter instance in your activity/fragment (Style parameter is optional)\n ```\n    private val rvAdapter: EditorJsAdapter by lazy {\n        EditorJsAdapter(EJStyle.create(this.applicationContext))\n    }\n```\n 2. Set adapter to recyclerview in your layout\n 3. Init gson with custom Deserializer\n```\n    val blocksType = object : TypeToken\u003cMutableList\u003cEJBlock\u003e\u003e() {}.type\n    val gson = GsonBuilder()\n        .registerTypeAdapter(blocksType, EJDeserializer())\n        .create()\n```\n 4. Apply received data to adapter\n```\n    rvAdapter.items = ejResponse.blocks\n```\n\n## Customizing\nYou can set style globally via `EJKit.style = ...` for all adapters, or pass `EJStyle` instance for specific adapter.\n```\n EJStyle.builderWithDefaults(applicationContext)\n                .linkColor(ContextCompat.getColor(this,R.color.default_color))\n                .blockMargin(10)\n                .dividerMargin(10, 10)\n                .headingMargin(10, 10, HeadingLevel.h1)\n                .imageMargin(10, 10)\n                .paragraphMargin(10, 10)\n                .rawHtmlMargin(10, 10)\n                .tableMargin(10, 10)\n                .listItemColor(ContextCompat.getColor(this,R.color.default_color))\n                .listBulletColor(ContextCompat.getColor(this,R.color.default_color))\n                .bulletSize(6, 6)\n                .bulletMargin(10, 10, 10, 10)\n                .listTextItemMargin(10, 10, 10, 10)\n                .listTextItemTypeFace(ResourcesCompat.getFont(this, R.font.montserrat_bold)!!)\n                .listTextItemTextSize(18f)\n                .bulletDrawableRes(R.drawable.list_circle)\n                .paragraphTextColor(ContextCompat.getColor(this,R.color.default_color))\n                .paragraphBackgroundColor(ContextCompat.getColor(this,R.color.default_color))\n                .paragraphTypeface(ResourcesCompat.getFont(this, R.font.my_font)!!)\n                .paragraphTextColor(ContextCompat.getColor(this,R.color.default_color))\n                .headingTypeface(ResourcesCompat.getFont(this, R.font.my_font)!!)\n                .headingTypefaceDetailed(ResourcesCompat.getFont(this, R.font.my_font)!!, HeadingLevel.h1)\n                .headingFontStyleDetailed(R.style.ParagraphText, HeadingLevel.h1)\n                .headingColorDetailed(R.color.default_color, HeadingLevel.h1)\n                .headingTextSizes(floatArrayOf( 12f, 12f, 12f,12f,12f,12f))\n                .dividerBreakColor(ContextCompat.getColor(this,R.color.default_color))\n                .dividerBreakHeight(10)\t\n                .tableColumnDrawableRes(R.drawable.table_content_cell_bg)\n                .tableColumnTextColor(ContextCompat.getColor(this,R.color.default_color))\n                .imageBackgroundRes(R.drawable.image_background)\n                .imageBorderRes(R.drawable.image_background)\n                .build()\n```\n\n### Override android style in styles.xml\n```\n\u003cstyle name=\"HeaderText\" parent=\"@android:style/TextAppearance\"\u003e\n    \u003citem name=\"android:textColor\"\u003e@color/colorPrimary\u003c/item\u003e\n\u003c/style\u003e\n\u003cstyle name=\"ParagraphText\" parent=\"@android:style/TextAppearance\"\u003e\n    \u003citem name=\"android:textSize\"\u003e16sp\u003c/item\u003e\n\u003c/style\u003e\n```\n\n### Create custom block\nIf you have block that library does not provide currently, you can add it by yourself.\n1. Create custom block type and extend it from `EJAbstractBlockType`\n```\nenum class CustomBlockType(override val jsonName: String) : EJAbstractBlockType {\n    TABLE(\"table\")\n}\n```\n2. Create data class for block\n```\ndata class EJTableData(\n    val content: List\u003cList\u003cString\u003e\u003e\n): EJData()\n```\n3. And register it\n`EJKit.register(EJCustomBlock(CustomB.TABLE, EJTableData::class.java))\n`\n\n## Example\n\nYou can find and test the example in a [sample activity](app/src/main/java/work/upstarts/MainActivity.kt)\n\n## Author\n\n[Upstarts team](https://upstarts.work)\n\n[Ruslan Aliev](https://github.com/heckslam) - Architecture, Implementation\n\n[Vadim Popov](https://github.com/PopovVadim) - Architecture draft\n","funding_links":[],"categories":["Libraries"],"sub_categories":["Kotlin"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FUpstarts%2Feditor.js-kit-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FUpstarts%2Feditor.js-kit-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FUpstarts%2Feditor.js-kit-android/lists"}