Index
This commit is contained in:
parent
ca9658be6b
commit
384c33e6a6
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,3 @@
|
||||
book
|
||||
.env
|
||||
cache
|
||||
.DS_Store
|
||||
|
3434
cache/issues.json
vendored
Normal file
3434
cache/issues.json
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,7 @@
|
||||
# Summary
|
||||
|
||||
[Index](./index.md)
|
||||
|
||||
- [Introduction](./intro.md)
|
||||
- [Overall Description](./overall.md)
|
||||
- [Specific Requirement](./specific.md)
|
||||
|
43
src/index.md
Normal file
43
src/index.md
Normal file
@ -0,0 +1,43 @@
|
||||
# 목차(Index)
|
||||
|
||||
1. [Introduction](./intro.md)
|
||||
1. [목적(Purpose)](./intro.md#11-목적purpose)
|
||||
2. [범위(scope)](./intro.md#12-범위scope)
|
||||
3. [용어 및 약어 정의(Definitions, acronyms and abbreviations)](./intro.md#13-용어-및-약어-정의definitions-acronyms-and-abbreviations)
|
||||
4. [참고자료(References)](./intro.md#14-참고자료references)
|
||||
5. [개요(Overview)](./intro.md#15-개요overview)
|
||||
2. [Overall Description](./overall.md)
|
||||
1. [제품 관점(Product perspective)](./overall.md#21-제품-관점product-perspective)
|
||||
1. [시스템 인터페이스(System interfaces)](./overall.md#211-시스템-인터페이스system-interfaces)
|
||||
2. [사용자 인터페이스(User interfaces)](./overall.md#212-사용자-인터페이스user-interfaces)
|
||||
3. [하드웨어 인터페이스(Hardware interfaces)](./overall.md#213-하드웨어-인터페이스hardware-interfaces)
|
||||
4. [소프트웨어 인터페이스(Software interfaces)](./overall.md#214-소프트웨어-인터페이스software-interfaces)
|
||||
5. [통신 인터페이스(Communications interfaces)](./overall.md#215-통신-인터페이스communications-interfaces)
|
||||
6. [메모리 제약사항(Memory constraints)](./overall.md#216-메모리-제약사항memory-constraints)
|
||||
7. [운영(Operations)](./overall.md#217-운영operations)
|
||||
8. [사이트 적용 요건(Site adaption requirements)](./overall.md#218-사이트-적용-요건site-adaption-requirements)
|
||||
2. [제품 기능(Product functions)](./overall.md#22-제품-기능product-functions)
|
||||
<%
|
||||
const table = it.table;
|
||||
let index = 1;
|
||||
for (const [c,issues] of table) {
|
||||
const name = `${c} Operation`;
|
||||
const href = `2.2.${index} ${c} Operation`
|
||||
%><%= `${index++}. [${name}](./overall.md#${it.toHeadId(href)})\n ` %><%}%><%="\n"%>
|
||||
3. [Specific Requirement](./specific.md)
|
||||
1. [외부 인터페이스 요구사항(External interface requirements)](./specific.md#31-외부-인터페이스-요구사항external-interface-requirements)
|
||||
2. [기능 요구사항(Functional requirements)](./specific.md#32-기능-요구사항functional-requirements)
|
||||
<%= it.issues.map((i)=>`(#${i.number}) ${i.title}`).map(
|
||||
x=>`* [${x}](./specific.md#${it.toHeadId(x)})`
|
||||
).join("\n ") %><%= "\n"%>
|
||||
3. [성능 요구사항(Performance requirements)](./specific.md#33-성능-요구사항performance-requirements)
|
||||
4. [논리적 데이터베이스 요구사항(Logical database requirements)](./specific.md#34-논리적-데이터베이스-요구사항logical-database-requirements)
|
||||
5. [설계 제약사항(Design constraints)](./specific.md#35-설계-제약사항design-constraints)
|
||||
1. [표준 준수(Standards compliance)](./specific.md#351-표준-준수standards-compliance)
|
||||
6. [소프트웨어 시스템 속성(Software system attributes)](./specific.md#36-소프트웨어-시스템-속성software-system-attributes)
|
||||
7. [상세 요구사항의 구성(Organizing the specific requirements)](./specific.md#37-상세-요구사항의-구성organizing-the-specific-requirements)
|
||||
1. [객체(Objects)](./specific.md#371-객체objects)
|
||||
2. [사용자 인터페이스 상세](./specific.md#372-사용자-인터페이스-상세)
|
||||
4. [Supporting information](./support.md)
|
||||
5. [Architecture](./architecture.md)
|
||||
6. [Testing](./testing.md)
|
@ -45,17 +45,7 @@
|
||||
본 프로젝트의 결과물은 다음과 같은 기능을 수행한다.
|
||||
|
||||
<%
|
||||
const table = new Map();
|
||||
it.issues.forEach((x)=>{
|
||||
const category = x.title.split(":")[0];
|
||||
if(!category) return;
|
||||
let c = table.get(category)
|
||||
if(!c){
|
||||
c = [];
|
||||
table.set(category,c);
|
||||
}
|
||||
c.push(x);
|
||||
})
|
||||
const table = it.table;
|
||||
let index = 1;
|
||||
for (const [c,issues] of table) {
|
||||
%><%= `### 2.2.${index++} ${c} Operation\n\n` %><%
|
||||
|
@ -62,6 +62,10 @@ async function getIssues(){
|
||||
return issues;
|
||||
}
|
||||
|
||||
function toHeadId(name: string){
|
||||
return name.replaceAll(/[^A-Za-z\s0-9]/gi,"").toLocaleLowerCase().replaceAll(" ","-");
|
||||
}
|
||||
|
||||
async function main(args: string[]) {
|
||||
if (args.length > 1) {
|
||||
//log.info(`args: ${JSON.stringify(args)}`);
|
||||
@ -70,6 +74,17 @@ async function main(args: string[]) {
|
||||
}
|
||||
}
|
||||
const issues = await getIssues();
|
||||
const table = new Map();
|
||||
issues.forEach((x)=>{
|
||||
const category = x.title.split(":")[0];
|
||||
if(!category) return;
|
||||
let c = table.get(category)
|
||||
if(!c){
|
||||
c = [];
|
||||
table.set(category,c);
|
||||
}
|
||||
c.push(x);
|
||||
})
|
||||
|
||||
log.info(`start`);
|
||||
const data = await readAll(Deno.stdin);
|
||||
@ -78,7 +93,9 @@ async function main(args: string[]) {
|
||||
const [context, book] = JSON.parse(jsonText) as [any, Book];
|
||||
book.sections.forEach(x=>{
|
||||
x.Chapter.content = Eta.render(x.Chapter.content, {
|
||||
issues: issues
|
||||
issues: issues,
|
||||
table: table,
|
||||
toHeadId: toHeadId,
|
||||
}) as string;
|
||||
})
|
||||
//Deno.stderr.writeSync(new TextEncoder().encode(`context: ${JSON.stringify(context)}\n`));
|
||||
|
Loading…
Reference in New Issue
Block a user