#markdown #docs #design #excel #default #rule #export

bin+lib md-designer

A CLI tool for creating design docs in Markdown

2 releases

0.1.1 Mar 7, 2021
0.1.0 Mar 7, 2021

#773 in Text processing

MIT license

84KB
2K SLoC

md-design-doc

Build Status codecov

WIP

Getting Started

Prerequisites

  • Rust toolchain (nightly and stable, default to nightly)

First, install Rust.

https://www.rust-lang.org/tools/install

# check Rust installation
$ cargo -v

Install nightly toolchain and set it to default.

$ rustup install nightly
$ rustup default nightly
  • Rust components
    • clippy (for nightly)
    • rustfmt (for stable)
$ rustup component add clippy --toolchain nightly
$ rustup component add rustfmt --toolchain stable
  • LLVM (for Windows)

For Windows, install LLVM Pre-built binaries of Windows(32bit or 64bit).

Run locally

  • clone this repo and cd
$ git clone https://github.com/toolbox-labo/md-design-doc.git
$ cd md-design-doc
  • execute command to convert your .md into .xlsx
# your markdown file and rule file
$ cargo run --features excel -- [path(.md)] [rule path(.yml)]
# or example files
$ cargo run --features excel -- test.md test_rule.yml

Fow now, the output file name is same as input file name .

Run test and check the code coverage

Test

$ cargo test --features excel

Coverage report

If this is your first time, install required modules.

$ cargo install grcov rust-covfix

To generate the coverage report,

$ bash coverage.sh

It will be created to report and you can see the whole coverage report by accessing report/index.html .

Examples

Parsing Rule

WIP

# TODO: general settings
# general:
#   copyright: hogehoge
#   prefix: IT
doc:
  blocks:
    - title: Block Title 1
      content:
      - column: No
        isNum: true
      - group: Variation
        columns:
          - column: Variation 1
            md: Heading2
          - column: Variation 2
            md: Heading3
          - column: Variation 3
            md: Heading4
          - column: Variation 4
            md: Heading5
          - column: Variation 5
            md: Heading6
          - column: Variation 6
            md: Heading7
          - column: Variation 7
            md: Heading8
      - column: Description
        md: List
      - column: Procedure
        md: List
        customPrefix: "+"
      - column: Tester
        md: List
        # You can also use any alphabets as custom prefix.
        customPrefix: "T"
    - title: Block Title 2
      content:
      - column: No
        isNum: true
      - column: another block's column 1
        md: Heading2
      - column: another block's column 2
        md: Heading3

Markdown Pattern

WIP

# Sheet Name
## Test Variation 1
### Test Variation 1-1
#### Test Variation 1-1-1
* Test Description
  more lines...
  more lines...
+ Procedure A
  more lines...
  more lines...
T Tester A
### Test Variation 1-2
#### Test Variation 1-2-1
* Test Description
  more lines...
  more lines...
+ Procedure B-1
+ Procedure B-2
+ Procedure B-3
T Tester B
#### Test Variation 1-2-2
##### Test Variation 1-2-2-1
* Test Description
  more lines...
  more lines...
+ Procedure C
T Tester C
---
## Cell 1
## Cell 2
### Cell 2-1
## Cell 3
### Cell 3-1
### Cell 3-2

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Change the code
  4. Format your code (cargo +stable fmt)
  5. Run lint tool (clippy) , if errors, fix them (cargo clippy --features excel -Z unstable-options -- -D warnings)
  6. Run test (cargo test --features excel)
  7. Commit your Changes (git commit). Please follow Angular Commit Message Format for your commit message.
  8. Push to the Branch (git push origin feature/AmazingFeature)
  9. Open a Pull Request

Dependencies

~5.5–7.5MB
~131K SLoC