YAML Spec
FNS spec - ver1.0_draft
정의
파일과 폴더의 이름이 가져야할 구조와 구성을 기술합니다. 이 스펙은 YAML 형식의 파일로 저장됩니다.
상세 규격
”---” 를 사용하여 최소한 4개의 part를 생략하지 않고, 순서를 지켜서 포함하고 있어야합니다.
---### part1: 문서에 대한 설명TITLE: yaml 예제 # 문서의 제목입니다. 필수항목FNS_VERSION: 1.0 # FNS spec 의 버전. 필수항목date: 2020-01-01 # 문서나머지 항목은 자유롭게 추가하여 이 파일을 설명하는데 사용할수 있습니다. 키 이름은 소문자를 사용해야 합니다.---### part2: 이름과 경로명 패턴들- 폴더이름: # ":"로 끝나면 폴더임을 나타냄. - 하위폴더이름: #앞쪽의 공백으로 tree구조를 표현함 - <pattern1>-<color> #< 와 >를 사용하여 패턴을 표현함---### part3: part1에서 정의된 패턴에 올 수 있는 실제 예. 필수는 아님color:["black","red","white"] # 배열로 저장.---### part4: part1에서 정의된 패턴중 정규식으로 표현할 수 있는 것을 기술합니다.pattern1:'.+'
직접 만든 패턴명은 소문자를 사용해야 합니다. 대문자 패턴은 규격에 포함될 수 있습니다. (YYYY,MM 등)
실제예
---TITLE: yaml exampleFNS_VERSION: 1.0date: 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---# The second area : lists examples of patterns that can be used.task: ["Research", "Planning", "Development", "Release", "Marketing"]project: ["MoonLanding", "MoonShot", "MoonWalking"]EXT: ["pdf", "xlsx", "ppt"]---# In the third area : patterns that can be recognized by computers are described using regular expressions.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 .. 12INDEX01: "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.mdEXT: "[a-zA-Z0-9]{1,5}" # File extension pdf xlsx ppt ...
저장위치
FNS 파일은 기준폴더를 기준으로 ./.fns/index.yaml
에 저장합니다.
예) documents/.fns/index.yaml , videos/.fns/index.yaml
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 : 패턴의 예들
- 여러개의 Mapping이 존재할수 있고, key값(패턴이름) 과 value값을 가집니다. 이 value값에는 문자열(패턴에 올 수 있는 문자열 예들) Scalar 배열이 저장됩니다.
- 네번째 document : 패턴을 위한 정규식
- 여러개의 Mapping이 존재할수 있고, key값(패턴이름) 과 value값을 가집니다. 이 value값에는 문자열(패턴에 인식할 수 있는 정규식) 문자열 Scalar가 저장됩니다.
- 첫번째 document : 문서에 대한 설명
참여하기
의견이나 질문이 있으면 discussions에 참여할 수 있습니다.