Extend Purpose

This commit is contained in:
monoid 2022-06-11 16:28:45 +09:00
parent 384c33e6a6
commit 7f2471103b
3 changed files with 44 additions and 20 deletions

View File

@ -1,16 +1,21 @@
# 1. 소개(Introduction)
> Version : 1.0.1
본 문서는 전북대학교 컴퓨터공학과의 Floor 팀에서 Scrap Yard라는 어플리케이션을 설계 및 구현하기 위한 소프트웨어 요구사항 명세서(SRS)이다.
> Version : 1.1.0
>
> Version Hash : <%= it.gitHash %>
>
> 본 문서는 전북대학교 컴퓨터공학과의 Floor 팀에서 Scrap Yard라는 어플리케이션을
> 설계 및 구현하기 위한 소프트웨어 요구사항 명세서(SRS)이자 어플리케이션의 구조를
> 나타내는 설계서이자 어플리케이션의 시험 결과 보고서이다. 정리하면 어플리케이션을
> 개발하면서 발생하는 산출물들을 정리한 문서이다.
## 1.1. 목적(Purpose)
본 문서의 목적은 프로젝트의 관련된 모든 아이디어들을 정리하고 분석해서 나열하는 것이다. 또한 프로젝트를 더 잘 이해하기 위해 이 제품이 어떻게 사용될지 예측하고 분류하고, 나중에 개발될 요소를 설명하고, 고려 중이지만 폐기될 수 있는 요구사항들을 문서화한다.
본 문서의 목적은 첫째로 프로젝트의 관련된 모든 아이디어들을 정리하고 분석해서 나열하는 것이다. 또한 프로젝트를 더 잘 이해하기 위해 이 제품이 어떻게 사용될지 예측하고 분류하고, 나중에 개발될 요소를 설명하고, 고려 중이지만 폐기될 수 있는 요구사항들을 문서화한다. 둘째로 이러한 요구사항을 해결하기 위해 만들어진 설계를 나열하고 문서화하는 것이다. 셋째로 이러한 설계로 구현된 프로그램을 시험을 하고 그 결과를 정리해서 보기좋게 문서화하고 색인하는 것이다.
## 1.2. 범위(Scope)
본 문서의 범위는 ScrapYard의 기능들과 그 환경이다.
본 문서의 범위는 ScrapYard의 기능들과 그 환경 그리고 상세 설계 및 인터페이스이다.
ScrapYard는 문서 작성 밎 문서를 아카이빙 할 수 있는 웹 어플리케이션이다. 같이 제공되는 확장기능을 통해 북마크(즐겨찾기)를 구조적으로 보관할 수 있고 미리보기를 보여줄 수 있다.
@ -27,7 +32,8 @@ ScrapYard는 문서 작성 밎 문서를 아카이빙 할 수 있는 웹 어플
## 1.4. 참고자료(References)
- [repo](https://github.com/vi117/scrap-yard)
- [repository](https://github.com/vi117/scrap-yard)
- [document repository](https://git.prelude.duckdns.org/ScrapYard/SRS)
- [react](https://reactjs.org/)
- [recoil](https://recoiljs.org/)
- [MUI](https://mui.com/)
@ -36,4 +42,7 @@ ScrapYard는 문서 작성 밎 문서를 아카이빙 할 수 있는 웹 어플
## 1.5. 개요(Overview)
2장에서는 종합적인 요구사항을 서술하고, 3장에서는 기능 및 UI에 대해서 상세한 요구사항을 설명한다.
2장과 3장은 SRS(소프트웨어 요구사항 명세서)의 양식에 맞추어 작성되었다. 2장에서는 종합적인 요구사항을 서술하고, 3장에서는 기능 및 UI에 대해서 상세한 요구사항을 설명한다.
4장은 SRS의 추가 이력사항에 대해서 서술한다. 여기에서는 어플리케이션 개발 일정표가 포함되어 있다.
5장은 어플리케이션의 상세한 설계에 대해서 서술한다.
6장은 개발된 어플리케이션의 시험과 그 결과에 대해서 서술한다.

View File

@ -54,7 +54,6 @@
%><%=`${subIndex++}. #${i.number} ${i.title}\n` %><%
}
%>
<%
}
%>

View File

@ -19,18 +19,20 @@ class StderrHandler extends WriterHandler {
}
interface Book {
sections: Section[];
sections: BookItem[];
}
interface Section {
//chapter or separtor or PartTitle
type Separator = "Separator";
//type PartTitle = ;
type BookItem = Separator | {
Chapter: Chapter;
}
interface Chapter {
name: string;
content: string;
/** section number */
number?: number[];
sub_items: Section[];
sub_items: BookItem[];
path?: string;
source_path?: string;
parent_names: string[];
@ -66,6 +68,13 @@ function toHeadId(name: string){
return name.replaceAll(/[^A-Za-z\s0-9]/gi,"").toLocaleLowerCase().replaceAll(" ","-");
}
async function getCurrentGitHash() {
const res = await Deno.run({cmd:["git", "rev-parse", "HEAD"], stdout:"piped"});
const hash = new TextDecoder().decode(await res.output()).trim();
res.close();
return hash;;
}
async function main(args: string[]) {
if (args.length > 1) {
//log.info(`args: ${JSON.stringify(args)}`);
@ -84,19 +93,26 @@ async function main(args: string[]) {
table.set(category,c);
}
c.push(x);
})
});
const gitHash = await getCurrentGitHash();
log.info(`start`);
log.info(`start\n`);
const data = await readAll(Deno.stdin);
const jsonText = new TextDecoder().decode(data);
await Deno.writeTextFile("log.json", jsonText);
const [context, book] = JSON.parse(jsonText) as [any, Book];
book.sections.forEach(x=>{
x.Chapter.content = Eta.render(x.Chapter.content, {
issues: issues,
table: table,
toHeadId: toHeadId,
}) as string;
if(x === "Separator"){
//skip
}
else {
x.Chapter.content = Eta.render(x.Chapter.content, {
issues: issues,
table: table,
gitHash: gitHash,
toHeadId: toHeadId,
}) as string;
}
})
//Deno.stderr.writeSync(new TextEncoder().encode(`context: ${JSON.stringify(context)}\n`));
console.log(JSON.stringify(book));