YAML Spec
FNS spec - v1.1
정의
파일과 폴더의 이름이 가져야할 구조와 구성을 기술합니다. 이 스펙은 YAML 형식의 파일로 저장됩니다.
저장위치
FNS 파일은 기준폴더를 기준으로 ./.fns/index.yaml
에 저장합니다.
예) documents/.fns/index.yaml , videos/.fns/index.yaml
상세 규격
”---” 를 사용하여 최소한 3개의 part를 생략하지 않고, 순서를 지켜서 포함하고 있어야합니다.
---### part1: 문서에 대한 설명TITLE: yaml 예제 # 문서의 제목입니다. 필수항목FNS_VERSION: 1.1 # FNS spec 의 버전. 필수항목date: 2020-01-01 # 자유롭게 추가하여 yaml 파일을 설명하는데 사용할수 있습니다. 이경우 키 이름은 소문자를 사용해야 합니다.---### part2: 이름과 경로명 패턴들- 폴더이름: # ":"로 끝나면 폴더임을 나타냄. - 하위폴더이름: #앞쪽의 공백으로 tree구조를 표현함 - <pattern1>-<color> #< 와 >를 사용하여 패턴을 표현함 # 직접 만든 패턴명은 소문자를 사용해야 합니다. 대문자는 규격에서 관리하는 패턴명으로 사용됩니다.---### part3: part2에서 정의된 패턴에 대한 여러가지 속성을 기술합니다. (필수아님)EX: # 패턴에 올수 있는 실제 예 - color: ["black","red","white"] # 배열로 저장.REG: # 패턴중 정규식으로 표현할 수 있는 것을 기술합니다. - pattern1: '.+'schema: #여러 속성을 자유롭게 추가할 수 있습니다. 이경우 소문자를 사용해야 합니다. - color: https://schema.org/color
실제예
---TITLE: yaml exampleFNS_VERSION: 1.1date: 2020-01-01---- Reports: - <YYYY>: # Year 2020 2021 2022 ... - <MM>: # Month 01 02 03 ... - <YYYYMMDD>-<TITLE>.xlsx # 20200101-Marketing Report.xlsx- <INDEX01>-<routine_work>: # 02-Customer Management 03-Monitoring ...- projects: - <project>: # Project Name - <task>: - <TITLE>-<task>-<project>-<YYYYMMDD>-v<ver>.<EXT> # Moon Landing Project Proposal-Planning-Moon Landing-20200101-v1.0.ppt---EX: task: ["Research", "Planning", "Development", "Release", "Marketing"] project: ["MoonLanding", "MoonShot", "MoonWalking"] EXT: ["pdf", "xlsx", "ppt"]REG: YYYYMMDD: '(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])' # Date (Year-Month-Day) YYYY: '(?:19|20)\d{2}' # Year 2019 2020 2021 ... MM: "0[1-9]|1[0-2]" # Month 01 02 .. 12 INDEX01: "0[1-9]|[1-9][0-9]" # Number 01 02 03 ... INDEX001: "0[0-9]{2}|[1-9][0-9]{2}" # Number 001 002 003 ... ver: '(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?' # Version 1.0.0 Reference: https://github.com/nils-tekampe/semverdoc/blob/master/semverdoc.md EXT: "[a-zA-Z0-9]{1,5}" # File extension pdf xlsx ppt ...
FNS 파일 유효성 체크
- YAML Spec을 따라야 합니다.
- 아래와 같은 4개의 Document를 포함해야 합니다.
- 첫번째 document : 문서에 대한 설명
- “TITLE” 과 “FNS_VERSION” 키값을 가진 Mapping 이어야 함. (값은 문자열 Scalar)
- 두번째 document : 파일명 및 경로명 패턴
- 최상위 항목은 Block Sequence이어야 합니다.
- Block Sequence는 Mapping (하위 폴더를 의미) 또는 문자열 Scalar (파일을 의미)를 가질 수 있습니다.
- Mapping은 반드시 단 하나의 key 를 가져야 하며, 이 키값에 하위폴더의 이름이 저장됩니다.
- Mapping의 value 값은 반드시 Block Sequence (하위폴더에 목록이 있는 경우) 또는 빈값(빈폴더인 경우)이어야 합니다.
- 세번째 document : 패턴에 대한 속성 기술
-
최상위 항목은 여러개의 키값(REG, EX등)을 가진 Mapping
-
- 첫번째 document : 문서에 대한 설명
참여하기
의견이나 질문이 있으면 discussions에 참여할 수 있습니다.