0.1.71 • Published 6 months ago

treedoc-viewer v0.1.71

Weekly downloads
102
License
MIT
Repository
-
Last release
6 months ago

Treedoc Viewer

A feature-rich viewer for Treedoc implemented with VueJS and typescript. Treedoc is an abstraction for all the tree-structured document formats such as JSON, YAML, XML. This viewer has built-in support of JSON/JSONex, YAML and XML. It provides an easy way to plugin any other format by implementing the ParserPlugin interface.

Features

  • Three views: Source, Tree and Table and they are toggleable
  • Flexible navigation
    • Back/forward navigation between tree nodes
    • Support breadcrumb view of the node path for easy navigation to parent nodes
    • Navigation through $ref node as defined in OpenAPI or Google Discovery Service
    • Navigation is synchronized between tree view and table view
  • Treeview
    • Support expand / collapse one level or all levels.
    • Tree is also embedded in table views
  • Table view (Based on vue2-datatable-component)
    • Expand attributes for the child nodes as table columns
    • Support column filtering and sorting
    • Support pagination
    • Support column selection
  • Source View (Based on CodeMirror)
    • Syntax source highlighting
    • Synchronized highlighting in the source code when navigating through nodes
  • Support multiple file formats
    • different sources of the document: open local file, open URL or copy/paste
    • Auto-detect format to choose the right parser
    • Buildin Support following formats
      • JSONex format (extension of JSON) (Based on treedoc)
      • text protobuf which is support by JSONex parser
      • Custom format such as java Map.toString, java Lombok.toString
      • Prometheus text format.
      • csv, tsv, ssv (space-separated values)
      • XML, Compact XML
      • YAML, include multiple document format
    • Plugable parser, so that more format can be easily added.
  • Implemented as VueJS component, so it's easy to be reused in different applications

Usage

As a Vue component

yarn add treedoc-viewer
// main.js
import TreedocViewer from 'treedoc-viewer'

Vue.use(TreedocViewer);

In public/index.html

<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

In component template

<json-tree-table :data='jsonData'>

As embedded iframe

If you are not using VueJs or don't want to introduce heavy dependencies, you can use embedded mode either through iframe or open a new window (tab)

<iframe id='tdvFrame' src="https://www.treedoc.org?embeddedId=tdv_1" width="100%" height="100%"></iframe>
<script>
  function setJttData(target, data) {
    target.postMessage({type:'tdv-setData', data}, '*');
  }
  setTimeout(() => setJttData(frame, {message:"after timeout"}), 1000);
</script>

For a working example, please refer to sample/embedded.html in github repo.

Development

yarn install
yarn serve

Live Demo

http://treedoc.org

License

Copyright 2019-2020 Jianwu Chen Author/Developer: Jianwu Chen

Use of this source code is governed by an MIT-style license that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.

0.1.71

6 months ago

0.1.70

7 months ago

0.1.65

10 months ago

0.1.66

9 months ago

0.1.67

9 months ago

0.1.68

9 months ago

0.1.69

8 months ago

0.1.63

1 year ago

0.1.64

1 year ago

0.1.54

2 years ago

0.1.55

1 year ago

0.1.56

1 year ago

0.1.57

1 year ago

0.1.58

1 year ago

0.1.59

1 year ago

0.1.60

1 year ago

0.1.61

1 year ago

0.1.62

1 year ago

0.1.52

2 years ago

0.1.53

2 years ago

0.1.50

2 years ago

0.1.51

2 years ago

0.1.49

2 years ago

0.1.43

2 years ago

0.1.44

2 years ago

0.1.45

2 years ago

0.1.46

2 years ago

0.1.47

2 years ago

0.1.48

2 years ago

0.1.42

2 years ago

0.1.41

3 years ago

0.1.40

3 years ago

0.1.39

3 years ago

0.1.38

3 years ago

0.1.35

3 years ago

0.1.36

3 years ago

0.1.37

3 years ago

0.1.34

3 years ago

0.1.33

4 years ago

0.1.32

4 years ago

0.1.31

4 years ago

0.1.30

4 years ago

0.1.28

4 years ago

0.1.29

4 years ago

0.1.27

4 years ago

0.1.26

4 years ago

0.1.25

4 years ago

0.1.24

4 years ago

0.1.23

4 years ago

0.1.22

4 years ago

0.1.21

4 years ago

0.1.20

4 years ago

0.1.19

4 years ago

0.1.17

4 years ago

0.1.18

4 years ago

0.1.16

4 years ago

0.1.15

4 years ago

0.1.12

4 years ago

0.1.13

4 years ago

0.1.10

4 years ago

0.1.11

4 years ago

0.1.8

4 years ago

0.1.9

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago