{"id":6852,"date":"2019-11-14T11:15:22","date_gmt":"2019-11-14T08:15:22","guid":{"rendered":"https:\/\/dhtmlx.com\/blog\/?p=6852"},"modified":"2026-09-15T14:24:51","modified_gmt":"2026-09-15T11:24:51","slug":"dhtmlx-gantt-chart-6-3-decimal-durations-link-formatting-drag-n-drop-multiple-tasks-even-smarter-rendering","status":"publish","type":"post","link":"https:\/\/dhtmlx.com\/blog\/dhtmlx-gantt-chart-6-3-decimal-durations-link-formatting-drag-n-drop-multiple-tasks-even-smarter-rendering\/","title":{"rendered":"DHTMLX Gantt Chart 6.3 with Decimal Durations, Link Formatting, Drag-n-Drop of Multiple Tasks, and Even Smarter Rendering"},"content":{"rendered":"<p>We&#8217;re eager to deliver the next important update of our <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxGantt\/\" rel=\"noopener\" target=\"_blank\">HTML5 Gantt chart<\/a> library. This time, our development team has put a lot of effort into making DHTMLX Gantt even smarter and more flexible in v6.3. <\/p>\n<p>From now on, Gantt users may benefit from a new intelligent module for converting duration units from days to hours or minutes and back and specifying task duration in decimal format. Additionally, now our Gantt has an MS Project-like way of showing dependency links in the grid. We have also polished up scrolling the timescale, drag-n-drop of multiple tasks, and fullscreen mode. And that&#8217;s not all the new features and improvements in v6.3 &#8211; just keep on reading!<\/p>\n<p><strong><a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxGantt\/download.shtml\" rel=\"noopener\" target=\"_blank\">Download a free 30-day evaluation version of DHTMLX Gantt 6.3 now ><\/a><\/strong><\/p>\n<h5>Intelligent Duration Formatting [PRO]<\/h5>\n<p>In the previous versions of DHTMLX Gantt users could set task durations in whole numbers only. Starting with v6.3, they can specify the duration in fractional numbers as well. Now there&#8217;s no difficulty in assigning tasks that are 2.5 hours or 0.5 days long. Moreover, now Gantt is capable of converting minutes into hours, hours into days, days into months, etc. and vice versa. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/11\/decimal.gif\" alt=\"Decimal Duration - DHTMLX Gantt\" width=\"900\" height=\"413\" class=\"aligncenter size-full wp-image-6855\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/09_worktime\/09_decimal_durations.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>All that is possible due to a brand new <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__working_time.html#taskdurationindecimalformat\" rel=\"noopener\" target=\"_blank\"><strong>Duration Formatter<\/strong><\/a> module, which is easy to set up.<\/p>\n<p>Firstly, if you&#8217;d like to specify task duration in fractions of an hour precision (for example, set the duration to 0.5 hours), you&#8217;ll need to store the duration of tasks in minutes:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">duration_unit<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;minute&quot;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>Storing duration in hours will do as well and may be even better for the overall performance of the Gantt chart:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">duration_unit<\/span> <span class=\"sy0\">=<\/span> <span class=\"st0\">&quot;hour&quot;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>When you are done with that, just create the <strong>formatter<\/strong> object as described below and add it to the Duration column of the grid, lightbox, and inline editors if necessary:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"co1\">\/\/ formatting the duration<\/span><br \/>\n<span class=\"kw1\">var<\/span> formatter <span class=\"sy0\">=<\/span> gantt.<span class=\"me1\">ext<\/span>.<span class=\"me1\">formatters<\/span>.<span class=\"me1\">durationFormatter<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; enter<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;day&quot;<\/span><span class=\"sy0\">,<\/span> <br \/>\n&nbsp; &nbsp; store<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;minute&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"co1\">\/\/ duration_unit<\/span><br \/>\n&nbsp; &nbsp; format<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;day&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; hoursPerDay<span class=\"sy0\">:<\/span> <span class=\"nu0\">8<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; hoursPerWeek<span class=\"sy0\">:<\/span> <span class=\"nu0\">40<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; daysPerMonth<span class=\"sy0\">:<\/span> <span class=\"nu0\">30<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">columns<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>name<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;text&quot;<\/span><span class=\"sy0\">,<\/span> tree<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span> width<span class=\"sy0\">:<\/span> <span class=\"nu0\">170<\/span><span class=\"sy0\">,<\/span> resize<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span> editor<span class=\"sy0\">:<\/span> textEditor<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>name<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;start_date&quot;<\/span><span class=\"sy0\">,<\/span> align<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;center&quot;<\/span><span class=\"sy0\">,<\/span> resize<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span> editor<span class=\"sy0\">:<\/span> dateEditor<span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>name<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;duration&quot;<\/span><span class=\"sy0\">,<\/span> label<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;Duration&quot;<\/span><span class=\"sy0\">,<\/span> resize<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span> align<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;center&quot;<\/span><span class=\"sy0\">,<\/span> <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; template<span class=\"sy0\">:<\/span> <span class=\"kw1\">function<\/span><span class=\"br0\">&#40;<\/span>task<span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span> <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> formatter.<span class=\"me1\">format<\/span><span class=\"br0\">&#40;<\/span>task.<span class=\"me1\">duration<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span> width<span class=\"sy0\">:<\/span> <span class=\"nu0\">100<\/span><span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#123;<\/span>name<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;add&quot;<\/span><span class=\"sy0\">,<\/span> width<span class=\"sy0\">:<\/span> <span class=\"nu0\">44<\/span><span class=\"br0\">&#125;<\/span><br \/>\n<span class=\"br0\">&#93;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<h5>MS Project-Like Link Formatting [PRO]<\/h5>\n<p>In v6.3 DHTMLX Gantt provides an alternative way of linking tasks with each other via inline editors in the grid. It is based on MS Project formats of task dependencies:<\/p>\n<ul>\n<li>finish_to_finish: &#8220;FF&#8221;<\/li>\n<li>finish_to_start: &#8220;FS&#8221;<\/li>\n<li>start_to_start: &#8220;SS&#8221;<\/li>\n<li>start_to_finish: &#8220;SF&#8221;<\/li>\n<\/ul>\n<p>Now end users can fill in cells of the grid with inline editors responsible for linking tasks by typing in abbreviations common for MS Project. For example, &#8220;2FF+1 day&#8221; abbreviation means that one of the tasks should be finished not later than one day after the end of the second task. Such link formatting can be enabled via the Link Formatter module. <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__formatters_ext.html#linkformatter\" rel=\"noopener\" target=\"_blank\">Read more in the documentation ><\/a><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/11\/MS-Project.gif\" alt=\"MS Project Task Dependencies in DHTMLX Gantt\" width=\"900\" height=\"547\" class=\"aligncenter size-full wp-image-6859\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/07_grid\/12_inline_edit_key_nav.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<h5>Scrolling the Timeline with the Mouse<\/h5>\n<p>Working with huge Gantt charts is more convenient now, as end users can quickly scroll the timeline using mouse click and drag:<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/11\/scroll_click.gif\" alt=\"Scrolling the timeline - DHTMLX Gantt\" width=\"900\" height=\"685\" class=\"aligncenter size-full wp-image-6862\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/02_extensions\/27_drag_timeline.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>This ability can be implemented with the help of the <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__extensions_list.html#dragtimeline\" rel=\"noopener\" target=\"_blank\"><strong>dhtmlxgantt_drag_timeline<\/strong><\/a> extension:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"sy0\">&lt;<\/span>script src<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;..\/codebase\/ext\/dhtmlxgantt_drag_timeline.js&quot;<\/span><span class=\"sy0\">&gt;&lt;\/<\/span>script<span class=\"sy0\">&gt;<\/span><\/div><\/div>\n<p>The properties of the <strong>drag_timeline<\/strong> object allow you to control the behavior of Gantt elements while scrolling the timeline. The <strong>useKey<\/strong> property enables scrolling only when you press the specified key like Ctrl, Shift, Alt, etc. Besides, you can define which Gantt elements shouldn&#8217;t be affected in the process of scrolling by adding their CSS classes to the <strong>ignore<\/strong> property:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">drag_timeline<\/span> <span class=\"sy0\">=<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; ignore<span class=\"sy0\">:<\/span><span class=\"st0\">&quot;.gantt_task_line, .gantt_task_link&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; useKey<span class=\"sy0\">:<\/span> <span class=\"kw2\">false<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>Additionally, we enlarged the API of horizontal scrolling in the timeline. Now developers can change the default Shift key to Alt or Meta keys in the <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/api__gantt_horizontal_scroll_key_config.html\" rel=\"noopener\" target=\"_blank\"><strong>horizontal_scroll_key<\/strong><\/a> property or even disable the horizontal scroll.<\/p>\n<h5>Displaying Tasks Outside of the Specified Time Range<\/h5>\n<p>Previously, users faced a problem of not being able to see the tasks that were assigned on dates outside of the limited time range of the Gantt chart. V6.3 copes with this issue by showing such tasks in the grid, even if they start and end before or after the specified time period. For instance, in the project below tasks 1 and 3 take place in January and March respectively. These tasks are listed in the grid, while the chart displays only the tasks scheduled for February 2020. <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/api__gantt_show_tasks_outside_timescale_config.html\" rel=\"noopener\" target=\"_blank\">Learn more in the documentation ><\/a><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/11\/invisivle-tasks-gantt.png\" alt=\"Tasks Outside the Timescale - DHTMLX Gantt\" width=\"900\" height=\"545\" class=\"aligncenter size-full wp-image-6864\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/11\/invisivle-tasks-gantt.png 900w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/11\/invisivle-tasks-gantt-300x182.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/11\/invisivle-tasks-gantt-768x465.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/01_initialization\/20_tasks_outside_timescale.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<h5>Drag-n-Drop of Multiple Tasks<\/h5>\n<p>Due to the <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__multiselection.html#multitaskselectionanddragndrop\" rel=\"noopener\" target=\"_blank\"><strong>ext\/dhtmlxgantt_multiselect.js<\/strong><\/a> extension, it&#8217;s possible to select multiple tasks and manage them all together. In v6.3 the newly introduced <strong>drag_multiple<\/strong> method allows selecting several tasks by Shift or Ctrl-clicking and moving them simultaneously while saving their position in relation to each other:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">drag_multiple<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>The same approach can be applied to projects by using the <strong>drag_project<\/strong> method:<\/p>\n<div class=\"codecolorer-container javascript default codecolorer-noborder\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">gantt.<span class=\"me1\">config<\/span>.<span class=\"me1\">drag_project<\/span> <span class=\"sy0\">=<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2019\/11\/multiple_tasks.gif\" alt=\"Drag-n-Drop of Multiple Tasks - DHTMLX Gantt\" width=\"900\" height=\"483\" class=\"aligncenter size-full wp-image-6866\" \/><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/samples\/02_extensions\/09_multiselection.html\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<h5>Other Important Updates<\/h5>\n<h6>Smart Rendering Update<\/h6>\n<p>The release revamped the smart rendering techniques in order to further improve Gantt performance with large data sets. Now our updated Gantt chart is able to understand the exact position of custom elements such as baselines, deadlines, milestones, etc. and render them only when they are visible. It became possible due to the <strong>renderer<\/strong> configuration object, which keeps track of the visible area of the chart as well as the position of custom elements and decides whether to display them or not. <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/api__gantt_addtasklayer.html#smartrenderingforcustomlayers\" rel=\"noopener\" target=\"_blank\">Learn more in the documentation ><\/a><\/p>\n<h6>Full-Screen Mode<\/h6>\n<p>V6.3 brings out the ability to display not only the Gantt chart itself but also its header and other additional elements in the <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__fullscreen_mode.html\" rel=\"noopener\" target=\"_blank\">fullscreen mode<\/a>.<\/p>\n<h6>How to Undo Custom Actions<\/h6>\n<p>Another essential update is the possibility to undo and redo changes you make to your Gantt from the code. <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__undo_redo.html#undoingredoingchangesmadefromcode\" rel=\"noopener\" target=\"_blank\">Read more in the documentation ><\/a><\/p>\n<h6>Compatibility with RequireJS<\/h6>\n<p>V6.3 introduces some changes to the usage of RequireJS with DHTMLX Gantt. For more details, consult the <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/migrating.html#6263\" rel=\"noopener\" target=\"_blank\">migration article<\/a>.<\/p>\n<h6>Inclusive End Dates in the Grid<\/h6>\n<p>In the previous versions, the grid column with the end date of tasks comprised exclusive dates. For example, the end date of the task starting on November 10 and lasting for 3 days would fall on November 14 in the grid. Whereas, the timeline displayed the duration of the task taking into account only inclusive dates (November 10-13). In order to avoid confusion and show inclusive dates everywhere, v6.3 offers a special <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/api__gantt_task_end_date_template.html\" rel=\"noopener\" target=\"_blank\">template<\/a> for redefining the format of end dates in the grid and lightbox. <\/p>\n<p>We hope all the new features and updates will come in useful in your projects. We&#8217;re eager to get your feedback and continue further enriching the abilities of DHTMLX Gantt!<\/p>\n<p><em>Please note that the features marked with <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/desktop__editions_comparison.html\" rel=\"noopener\" target=\"_blank\">PRO label<\/a> are available under the Professional edition of paid licenses only.<\/em><\/p>\n<p>We invite you to try out the latest version during a <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxGantt\/download.shtml\" rel=\"noopener\" target=\"_blank\">free 30-day evaluation<\/a>.<\/p>\n<p>Current clients may download dhtmlxGantt 6.3 in their <a href=\"https:\/\/dhtmlx.com\/clients\/\" rel=\"noopener\" target=\"_blank\">Client&#8217;s Area<\/a>.<\/p>\n<h5>Related Materials:<\/h5>\n<ul>\n<li>Full <a href=\"https:\/\/docs.dhtmlx.com\/gantt\/whatsnew.html\" rel=\"noopener\" target=\"_blank\">&#8220;What&#8217;s New&#8221; list<\/a> in the documentation<\/li>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/demos\/\" rel=\"noopener\" target=\"_blank\">DHTMLX Gantt Samples<\/a><\/li>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/gantt\/migrating.html#6263\" rel=\"noopener\" target=\"_blank\">Migration from v6.2 to v6.3<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re eager to deliver the next important update of our HTML5 Gantt chart library. This time, our development team has put a lot of effort into making DHTMLX Gantt &#8230;<\/p>\n","protected":false},"author":101012,"featured_media":6869,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,70,1,38],"tags":[33,20,4],"class_list":["post-6852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-posts-for-codeproject-com","category-releases","category-uncategorized","category-visible","tag-all-posts","tag-gantt","tag-dhtmlx-updates"],"_links":{"self":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/6852","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/users\/101012"}],"replies":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/comments?post=6852"}],"version-history":[{"count":2,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/6852\/revisions"}],"predecessor-version":[{"id":15894,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/6852\/revisions\/15894"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media\/6869"}],"wp:attachment":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media?parent=6852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/categories?post=6852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/tags?post=6852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}