HWP Format Language - 123jimin/node-hwp GitHub Wiki
์ฌ๋ฌ ๋ ์ฝ๋์ HWPML (์ดํ HML) ๋
ธ๋๋ค์ ์ฒ๋ฆฌํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์๋นํ ๋ฒ๊ฑฐ๋ก์ด ์์
์ด๊ธฐ ๋๋ฌธ์, ๊ทธ๋ฌํ ๊ฒ๋ค์ ์ฒ๋ฆฌํ๋ ์ธ์ด๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์ธ์ด์ ๋ฐ๋ผ ํ์ ํ์ผ (format/node.format, format/record.format) ์ ๋ง๋ค๊ณ ์๋ ์์
์ ํ๊ณ ์์ต๋๋ค.
๋ฌธ๋ฒ์ format/format.jison์ ๊ธฐ์ ๋์ด ์์ต๋๋ค. (๋ฌธ๋ฒ์ด ๊ตฌ๋ฆฐ ์ ์ฃ์กํฉ๋๋ค.)
generate.js๋ format์ ์๋ ๊ฒ๋ค๋ก๋ถํฐ HWP ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๋ ์ฝ๋์ธ lib/hwpdata.js๋ฅผ ์์ฑํฉ๋๋ค.
enum
HWP 5.0 ๋ฌธ์์ 4.1.5์ ํ 21๊ณผ, HWPML ๋ฌธ์์ 2.2์ LineWidth์ ๊ฐ์ด, ๋ช ๊ฐ์ง ์์ฑ ๊ฐ์ enum๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ํ์ํ ์ ์์์ ์ ์ ์์ผ๋ฉฐ, ๋ํ ์ด๊ฒ์ ์ด์ฉํด HWP์ HML๊ฐ์ ๋ณํ์ ์กฐ๊ธ ์ฝ๊ฒ ํ ์ ์๋ค๋ ์ฌ์ค์ ์ ์ ์์ต๋๋ค. enum์ ์ด๋ฌํ ๊ฒ์ ๊ฐ๋จํ ๋ํ๋ผ ์ ์๊ฒ ํ๋ ๊ฒ์
๋๋ค.
enum ENUM_NAME {
FirstThing; SecondThing; "ThirdThing"; null; FifthThing;
}
HWPML์์ FirstThing์ HWP์ 0๊ณผ ๋์๋ฉ๋๋ค.
HML ๋ ธ๋
node๋ HML์ ๋
ธ๋๋ฅผ ๋ํ๋ด๋ ๊ฒ์ผ๋ก, ๊ฐ node์ ์ด๋ ํ ์์ฑ๋ค์ด ์ฌ ์ ์๋์ง๋ฅผ ๊ธฐ์ ํฉ๋๋ค.
์ฌ์ค ์ด๋ฐ ๊ฒ์ DTD๋ ๊ทธ์ ๋น์ทํ ๊ฒ์ ์ด์ฉํด ์์ ํ๋ ๊ฒ์ด ์ ์ผ ๋ซ์ง๋ง, HML์ DTD๋ฅผ ๊ตฌํ ์ ์์ด์ ๊ฐ๋จํ๊ฒ ์ด๋ฐ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค.
node NODE_NAME {
String this-is-a-string;
Int this-is-an-integer default="42";
Boolean this-is-a-boolean;
}
ํ๊ทธ
tag์ tago๋ HWP 5.0์ ๋ ์ฝ๋์ ๊ทธ ๋ ์ฝ๋์ ํ๊ทธ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ํ๋
๋๋ค.
tag NAME 42๋ NAME ๋ ์ฝ๋์ ํ๊ทธ๊ฐ์ด 42์์ ๋ํ๋ด๋ฉฐ, tago FOO 42 BAR๋ BAR ๋ ์ฝ๋์ ํ๊ทธ๊ฐ์ด FOO ๋ ์ฝ๋์ ํ๊ทธ๊ฐ + 42์์ ๋ํ๋
๋๋ค. (HWP_BEGIN๊ฐ์ ๊ฐ์ ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ๋ ๋ฌธ์์ ์ ํ ๊ฐ๋ค์ ์ฎ๊ธฐ๊ธฐ ํธํ๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉ)
๋ ์ฝ๋
record๋ HWP 5.0์ ๋ ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ๋ํ๋
๋๋ค.