Extend Purpose
This commit is contained in:
parent
384c33e6a6
commit
7f2471103b
23
src/intro.md
23
src/intro.md
@ -1,16 +1,21 @@
|
|||||||
# 1. 소개(Introduction)
|
# 1. 소개(Introduction)
|
||||||
|
|
||||||
> Version : 1.0.1
|
> Version : 1.1.0
|
||||||
|
>
|
||||||
본 문서는 전북대학교 컴퓨터공학과의 Floor 팀에서 Scrap Yard라는 어플리케이션을 설계 및 구현하기 위한 소프트웨어 요구사항 명세서(SRS)이다.
|
> Version Hash : <%= it.gitHash %>
|
||||||
|
>
|
||||||
|
> 본 문서는 전북대학교 컴퓨터공학과의 Floor 팀에서 Scrap Yard라는 어플리케이션을
|
||||||
|
> 설계 및 구현하기 위한 소프트웨어 요구사항 명세서(SRS)이자 어플리케이션의 구조를
|
||||||
|
> 나타내는 설계서이자 어플리케이션의 시험 결과 보고서이다. 정리하면 어플리케이션을
|
||||||
|
> 개발하면서 발생하는 산출물들을 정리한 문서이다.
|
||||||
|
|
||||||
## 1.1. 목적(Purpose)
|
## 1.1. 목적(Purpose)
|
||||||
|
|
||||||
본 문서의 목적은 프로젝트의 관련된 모든 아이디어들을 정리하고 분석해서 나열하는 것이다. 또한 프로젝트를 더 잘 이해하기 위해 이 제품이 어떻게 사용될지 예측하고 분류하고, 나중에 개발될 요소를 설명하고, 고려 중이지만 폐기될 수 있는 요구사항들을 문서화한다.
|
본 문서의 목적은 첫째로 프로젝트의 관련된 모든 아이디어들을 정리하고 분석해서 나열하는 것이다. 또한 프로젝트를 더 잘 이해하기 위해 이 제품이 어떻게 사용될지 예측하고 분류하고, 나중에 개발될 요소를 설명하고, 고려 중이지만 폐기될 수 있는 요구사항들을 문서화한다. 둘째로 이러한 요구사항을 해결하기 위해 만들어진 설계를 나열하고 문서화하는 것이다. 셋째로 이러한 설계로 구현된 프로그램을 시험을 하고 그 결과를 정리해서 보기좋게 문서화하고 색인하는 것이다.
|
||||||
|
|
||||||
## 1.2. 범위(Scope)
|
## 1.2. 범위(Scope)
|
||||||
|
|
||||||
본 문서의 범위는 ScrapYard의 기능들과 그 환경이다.
|
본 문서의 범위는 ScrapYard의 기능들과 그 환경 그리고 상세 설계 및 인터페이스이다.
|
||||||
|
|
||||||
ScrapYard는 문서 작성 밎 문서를 아카이빙 할 수 있는 웹 어플리케이션이다. 같이 제공되는 확장기능을 통해 북마크(즐겨찾기)를 구조적으로 보관할 수 있고 미리보기를 보여줄 수 있다.
|
ScrapYard는 문서 작성 밎 문서를 아카이빙 할 수 있는 웹 어플리케이션이다. 같이 제공되는 확장기능을 통해 북마크(즐겨찾기)를 구조적으로 보관할 수 있고 미리보기를 보여줄 수 있다.
|
||||||
|
|
||||||
@ -27,7 +32,8 @@ ScrapYard는 문서 작성 밎 문서를 아카이빙 할 수 있는 웹 어플
|
|||||||
|
|
||||||
## 1.4. 참고자료(References)
|
## 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/)
|
- [react](https://reactjs.org/)
|
||||||
- [recoil](https://recoiljs.org/)
|
- [recoil](https://recoiljs.org/)
|
||||||
- [MUI](https://mui.com/)
|
- [MUI](https://mui.com/)
|
||||||
@ -36,4 +42,7 @@ ScrapYard는 문서 작성 밎 문서를 아카이빙 할 수 있는 웹 어플
|
|||||||
|
|
||||||
## 1.5. 개요(Overview)
|
## 1.5. 개요(Overview)
|
||||||
|
|
||||||
2장에서는 종합적인 요구사항을 서술하고, 3장에서는 기능 및 UI에 대해서 상세한 요구사항을 설명한다.
|
2장과 3장은 SRS(소프트웨어 요구사항 명세서)의 양식에 맞추어 작성되었다. 2장에서는 종합적인 요구사항을 서술하고, 3장에서는 기능 및 UI에 대해서 상세한 요구사항을 설명한다.
|
||||||
|
4장은 SRS의 추가 이력사항에 대해서 서술한다. 여기에서는 어플리케이션 개발 일정표가 포함되어 있다.
|
||||||
|
5장은 어플리케이션의 상세한 설계에 대해서 서술한다.
|
||||||
|
6장은 개발된 어플리케이션의 시험과 그 결과에 대해서 서술한다.
|
||||||
|
@ -54,7 +54,6 @@
|
|||||||
%><%=`${subIndex++}. #${i.number} ${i.title}\n` %><%
|
%><%=`${subIndex++}. #${i.number} ${i.title}\n` %><%
|
||||||
}
|
}
|
||||||
%>
|
%>
|
||||||
|
|
||||||
<%
|
<%
|
||||||
}
|
}
|
||||||
%>
|
%>
|
||||||
|
@ -19,18 +19,20 @@ class StderrHandler extends WriterHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
interface Book {
|
interface Book {
|
||||||
sections: Section[];
|
sections: BookItem[];
|
||||||
}
|
}
|
||||||
interface Section {
|
type Separator = "Separator";
|
||||||
//chapter or separtor or PartTitle
|
//type PartTitle = ;
|
||||||
|
type BookItem = Separator | {
|
||||||
Chapter: Chapter;
|
Chapter: Chapter;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Chapter {
|
interface Chapter {
|
||||||
name: string;
|
name: string;
|
||||||
content: string;
|
content: string;
|
||||||
/** section number */
|
/** section number */
|
||||||
number?: number[];
|
number?: number[];
|
||||||
sub_items: Section[];
|
sub_items: BookItem[];
|
||||||
path?: string;
|
path?: string;
|
||||||
source_path?: string;
|
source_path?: string;
|
||||||
parent_names: string[];
|
parent_names: string[];
|
||||||
@ -66,6 +68,13 @@ function toHeadId(name: string){
|
|||||||
return name.replaceAll(/[^A-Za-z\s0-9]/gi,"").toLocaleLowerCase().replaceAll(" ","-");
|
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[]) {
|
async function main(args: string[]) {
|
||||||
if (args.length > 1) {
|
if (args.length > 1) {
|
||||||
//log.info(`args: ${JSON.stringify(args)}`);
|
//log.info(`args: ${JSON.stringify(args)}`);
|
||||||
@ -84,19 +93,26 @@ async function main(args: string[]) {
|
|||||||
table.set(category,c);
|
table.set(category,c);
|
||||||
}
|
}
|
||||||
c.push(x);
|
c.push(x);
|
||||||
})
|
});
|
||||||
|
const gitHash = await getCurrentGitHash();
|
||||||
|
|
||||||
log.info(`start`);
|
log.info(`start\n`);
|
||||||
const data = await readAll(Deno.stdin);
|
const data = await readAll(Deno.stdin);
|
||||||
const jsonText = new TextDecoder().decode(data);
|
const jsonText = new TextDecoder().decode(data);
|
||||||
await Deno.writeTextFile("log.json", jsonText);
|
await Deno.writeTextFile("log.json", jsonText);
|
||||||
const [context, book] = JSON.parse(jsonText) as [any, Book];
|
const [context, book] = JSON.parse(jsonText) as [any, Book];
|
||||||
book.sections.forEach(x=>{
|
book.sections.forEach(x=>{
|
||||||
|
if(x === "Separator"){
|
||||||
|
//skip
|
||||||
|
}
|
||||||
|
else {
|
||||||
x.Chapter.content = Eta.render(x.Chapter.content, {
|
x.Chapter.content = Eta.render(x.Chapter.content, {
|
||||||
issues: issues,
|
issues: issues,
|
||||||
table: table,
|
table: table,
|
||||||
|
gitHash: gitHash,
|
||||||
toHeadId: toHeadId,
|
toHeadId: toHeadId,
|
||||||
}) as string;
|
}) as string;
|
||||||
|
}
|
||||||
})
|
})
|
||||||
//Deno.stderr.writeSync(new TextEncoder().encode(`context: ${JSON.stringify(context)}\n`));
|
//Deno.stderr.writeSync(new TextEncoder().encode(`context: ${JSON.stringify(context)}\n`));
|
||||||
console.log(JSON.stringify(book));
|
console.log(JSON.stringify(book));
|
||||||
|
Loading…
Reference in New Issue
Block a user