Ango Hub Docs
Open Ango HubContact iMerit
  • Ango Hub Documentation
  • Video Guides
  • Changelog
  • FAQs & Troubleshooting
  • All Keyboard and Mouse Shortcuts
  • Core Concepts
    • Assets
    • Attachments
    • Batches
    • Benchmarks
    • Category Schema (Ontologies)
    • Frame Interpolation
    • Geofencing
    • Idle Time Detection & Time Tracking
    • Instructions
    • Issues
      • Issue Error Codes
    • Label Validation
    • Labeler Performance
    • Labeling
    • Labeling Queue
    • Multiple Classification
    • Notifications
    • Organizations
    • Projects
    • Requeuing
    • Reviewing
    • Review Queue
    • Skipping
    • Stage History
    • Tasks
    • Usage
    • User Roles
    • Workflow
      • Complete
      • Consensus
      • Hold
      • Label
      • Logic
      • Plugin
      • Review
      • Start
      • Webhook
  • Labeling
    • Managing Users in Projects
      • Profile Page
    • Managing the Project Ontology
    • Labeling Editor Interface
      • Audio Labeling Editor
      • Image Labeling Editor
      • Video Labeling Editor
      • DICOM Labeling Editor
      • Medical Labeling Editor
        • 3D Bounding Box
        • Fill Between Slices
        • Island Tools
        • Line (Tape Measure)
        • Smoothing
      • PDF Labeling Editor
      • Text (NER) Labeling Editor
      • LLM Chat Labeling Editor
      • Markdown Labeling Editor
      • 3D Multi-Sensor Fusion Labeling Editor
    • Labeling Classes
      • Tools
        • Bounding Box
        • Brush
        • Entity
        • Message
        • Nested Classifications
        • PCT
        • PDF Tool
        • Point
        • Polygon
        • Polyline
        • Rotated Bounding Box
        • Segmentation
        • Spline
        • Voxel Brush
      • Classification
        • Checkbox
        • Multiple Dropdown
        • Radio
        • Rank
        • Single Dropdown
        • Text
        • Tree Dropdown Tools (Single and Multiple Selection)
      • Relation
        • Single Relation
        • Group Relation
    • Magnetic Lasso
    • Performance & Compatibility Considerations
  • Data
    • Data in Ango Hub
      • Embedding Private Bucket Files in MD Assets
    • Importing Assets
      • Asset Builder
      • Bundled Assets
        • Importing Multiple Images as One Multi-Page Asset
        • Importing Multiple Single-Frame DICOM Files as One Multi-Page Asset
        • Importing multiple DICOM files to be annotated and displayed at once
        • Importing Multiple Single-Frame DICOM Files as a DICOM Series
        • Importing Multiple Markdown Files as One Multi-Page Asset
      • File Explorer
      • Supported Asset File Types & Codecs
      • Importing Cloud (Remote) Assets
      • Importing From Local Machine
      • Creating and Importing LLM Chat Assets
      • Importing Data in the 3D Multi-Sensor Fusion Labeling Tool
      • Bulk Importing Markdown/HTML Assets
      • Importing Attachments during Asset Import
      • Importing Annotations during Asset Import
      • contextData: Adding Extra Data to Assets
      • Importing Reference Images as Overlay
      • Importing Reference Medical Data During Asset Import
    • Importing and Exporting Annotations
      • Importing Annotations
        • Ango Import Format
        • Importing Brush Traces
        • Importing NRRD Annotations
      • Exporting Annotations
        • Ango Export Format
          • Asset
            • Task
              • Tools
              • Classifications
              • Relations
          • Stage History
    • Adding and Managing LLMs
    • Storages
      • Set up a storage integration with Azure
      • Set up a storage integration with AWS S3
      • Set up a storage integration with MinIO and S3-compatible custom storage services
      • Set up a storage integration with GCP (Google Cloud Platform)
      • Set up CORS
      • Validating Storage Integrations
    • Purging Data from Ango Hub
  • Plugins
    • Overview of Plugins in Ango Hub
      • Installing Plugins
      • Plugin Setting Presets
      • Monitoring Plugin Progress
    • First-Party Plugins
      • Ango Export Converter Plugins
      • Asset Converter Plugins
      • Ango to Mask Converter
      • Batch Assignment
      • ChatGPT
      • Column-Agnostic Markdown Generator
      • CSV Export for Classification
      • DALL-E
      • DALL-E (Model Plugin)
      • File Explorer Plugin
      • General Object Detector
      • General Object Segmenter
      • Markdown Generator
      • One-Click Segmentation
      • Open World Object Detection
      • Optical Character Recognition
      • TPT Export
      • YOLO | Instance Segmentation
      • YOLO | Pose Estimation
      • YOLO | Object Detection
      • YOLO | Image Classification
    • Plugin Developer Documentation
      • Export Plugins
      • Batch Model Plugins
      • Model Plugins
      • File Explorer Plugins
      • Markdown Generator Plugins
      • Plugin Logger
      • [WIP] Deploying your Plugin
      • Plugin 'Host' Information
  • SDK
    • SDK Documentation
      • Project Level SDK Functions
        • add_members_to_project
        • assign_batches
        • assign_task
        • create_attachment
        • create_batch
        • create_issue
        • create_label_set
        • create_project
        • delete_issue
        • export
        • exportV3
        • get_assets
        • get_batches
        • get_issues
        • get_metrics
        • get_project
        • get_project_performance
        • get_task
        • get_tasks
        • get_task_history
        • import_labels
        • list_projects
        • requeue_tasks
        • rerun_webhook
        • update_workflow_stages
        • upload_files
        • upload_files_cloud
        • upload_files_with_asset_builder
        • upload_chat_assets
      • Organization Level SDK Functions
        • create_storage
        • delete_organization_invites
        • delete_organization_members
        • delete_storage
        • get_organization_invites
        • get_organization_members
        • get_storages
        • invite_members_to_org
        • update_organization_members_role
    • SDK - Useful Snippets
    • SDK Changelog
  • API
    • API Documentation
  • How-To
    • Add Members
      • Add multiple users to a project
    • Annotate
      • Annotate 3D Point Cloud Files on Ango Hub
      • Perform targeted OCR on images
    • Export Data
      • Automatically send Ango Hub Webhook contents to Google Sheets, Email, Slack, and more with Zapier
      • Download a JSON of your project ontology
      • Download DICOM Segmentation Masks
      • Download your annotations in the COCO, KITTI, or YOLO format
      • Download your Segmentation Masks
      • Get your export as separate JSON files for each asset
    • Manage a Project
      • Get your API Key
      • Get your Organization ID
      • Mute your notifications
      • Open an asset provided the Asset ID
      • Pre-label assets
      • Share a filtered view of the Tasks table with others
      • Transfer project ontologies between projects
      • Transfer project workflows between projects
    • Perform Model Evaluation on Ango Hub
  • Troubleshooting
    • I get a "0 Tasks Labeled" alert when trying to pre-label tasks
    • I get a 'The data couldn't be loaded properly' error when opening certain assets
    • I get a "Unknown Classification" warning when opening a task
  • Feature Availability Status for projects of the 3D Multi-Sensor Fusion type
  • Comparison between QuickServe and Ango Hub
  • Changes from Ango Hub Legacy
  • Video V2 Breaking Changes and Transition
  • Data Access, Storage, and Security
  • Two-Factor Authentication
  • Single Sign-On (SSO) Support
  • Customer Support
  • Ango Hub Status Page
Powered by GitBook
On this page
  • Preparing the JSON
  • Linking to files in private buckets
  • Uploading the JSON
  • From the UI
  • From the SDK
  1. Data
  2. Importing Assets

Bulk Importing Markdown/HTML Assets

PreviousImporting Data in the 3D Multi-Sensor Fusion Labeling ToolNextImporting Attachments during Asset Import

Last updated 5 months ago

Ango Hub supports importing Markdown/HTML assets in bulk using a single JSON file.

Preparing the JSON

Your JSON file will need to be in the following format:

[
    {
        "externalId":"my_external_id_1",
        "data":"<div style='font-size:13px;font-weight:500;display:flex;'><div style='width:100px;color:gray'>Serial No</div>: 1</div>"
    },
    {
        "externalId":"my_external_id_2",
        "data":"<div style='font-size:13px;font-weight:500;display:flex;'><div style='width:100px;color:gray'>Serial No</div>: 1</div>"
    }
]

Your JSON will be a list of objects. Each object will be a single asset in Ango Hub, and will need to contain an externalId property and a data property. The externalId will be used by Ango Hub to identify your asset. The data is the Markdown/HTML content itself.

You will need to flatten your markdown/HTML to fit a single line, and to convert all double quotes contained within the string (") to single quotes (').

Failure to do so will result in the Markdown/HTML files not being imported correctly or at all.

We strongly recommend you ensure externalIDs are unique, or you may not be able to distinguish between some assets when exporting them, or when using .

External IDs are one of the two ways used to identify on Ango Hub, together with the asset's file path. However, markdown/HTMLs uploaded this way (embedded) have no file path.

Embedded markdown/HTML assets are being directly uploaded and stored into Ango Hub's database as strings, where the file path would normally be.

This means that the only way to distinguish between embedded Markdown/HTMLs is either through their data content, or by their externalIds. As such, if you upload two embedded markdown/HTMLs with the same content and the same external ID, you will not be able to distinguish between them when obtaining the export.

You will still be able to distinguish between different labeling , as Ango Hub assigns a unique ID to each task.

Ango Hub will not warn you if you upload more than one asset with the same externalIdand will continue to work as usual.

CSS that is embedded in the HTML of your asset will be processed last by the Ango Hub webpage, meaning that it has the potential to alter the way Ango Hub looks when the asset is opened.

When using embedded CSS in your HTML, we strongly recommend using identifiers that are unique and specific to your asset to prevent this.

Linking to files in private buckets

For example, the following is an asset containing a link to an image in a private bucket you have already connected to Ango Hub:

[
  {
    "data": "<html> <head> <title>Images in a Row</title> <style>  .image-row-asset {   display: flex;   justify-content: space-around;   margin-bottom: 20px;  }  img {   width: 30%;   height: auto;  }  .header, .footer {   text-align: center;   margin: 20px 0;  } </style> </head> <body> <div class='header'>  <h1>Header Placeholder Text</h1> </div> <div class='image-row'>  <img src='https://your-bucket-name.s3.your-aws-region.amazonaws.com/your-file-name.png?storageId=65e5834da3e56300155a7305' alt='Placeholder Image 1'> </div> <div class='footer'>  <h2>Footer Placeholder Text</h2> </div> </body> </html>",
    "externalId": "custom-html-asset"
  }
]

Uploading the JSON

From the UI

From your project's dashboard, enter the Assets tab, then click on the Add Data button. A dialog will appear. Enter the Cloud Upload tab and drag and drop your JSON in the upload box.

Click on Upload to upload your markdown/HTML assets.

From the SDK

direct_json = [
   {
      "externalId": "1",
      "data": "<MARKDOWN/HTML CONTENTS HERE>"
   },
   {
      "externalId": "2",
      "data": "<MARKDOWN/HTML CONTENTS HERE>"
   }
]

res = ango_sdk.upload_files_cloud(
   project_id='<YOUR_PROJECT_ID>',
   assets=direct_json
)

If you wish to link to content present in a storage location you have already connected to Ango Hub through a , you will need to append, after the link to the resource, the ?storageId=xxx property, where xxx is the ID of the integration to the storage where the file is located. You may find this ID in the Storages tab in the Organization page, or from the SDK function.

Using the ()function, you may upload bulk Markdown/HTML assets like so:

pre-labels
assets
tasks
storage integration
get_storages()
upload_files_cloud