wpwmm4 (1) - Make 및 M4가있는 웹 페이지 - 정적 웹 페이지 생성
간단한 Make 명령을 사용하십시오. Makefile은 FreeBsd와 NetBsd의 Make와 호환됩니다. Linux에서 Bmake 패키지를 설치해야합니다.
WPWMM4를 사용하면 M4 파일에서 정적 웹 페이지를 만들 수 있습니다. 생성은 Make 에 의해 수행됩니다. 외부 스크립트 또는 명령을 사용할 수 있습니다.
디렉토리에서 config.mk 파일을 만들고이 파일 내에서 다음 변수를 설정해야합니다. Config.mk 에서 .include를 사용할 수 있습니다.
common_dir : 여기서 00_defines.m4 가 있습니다. 일반적으로 makefile 과 동일한 디렉토리입니다.
포함 _dir : 사용자 기반에 M4가 포함 된 디렉토리. 기본 소스 디렉토리와 관련이 있습니다.
src_dir :이 변수는 소스 파일 (일반적으로 *.m4 )이있는 소스 디렉토리를 가리 킵니다. 하위 디렉터를 포함 할 수 있습니다.
assets_dir :이 디렉토리에는 정적 파일 ( * .css , * .js 등)이 있습니다.
assets_dest_dir : 정적 파일의 대상 디렉토리. $ {dest_dir} 내부를 원한다면이 변수에 포함시켜야합니다.
assets_cp : $ {assets_dir} 를 복사 할 명령. 기본값은 @cp -r 입니다.
dest_dir : 컴파일 된 (생성) HTML의 장소. $ {src_dir} 의 하위 디렉토리 트리는이 디렉토리에서 Make 에 의해 생성됩니다.
FLAG_DIR : 플래그가있는 디렉토리. 플래그는 건물에 대한 정보를 저장하는 간단한 파일입니다. 단 하나의 플래그 만 있습니다 : $ {flag_mkdir} 는 디렉토리 구조가 $ {dest_dir} 에서 생성 된 시간에 서명하고 생성 된 디렉토리 목록을 저장합니다. $ {mkdir_req}를 통해 Plus를 추가 할 수 있습니다.이 파일이 변경된 후 디렉토리 구조를 다시 구축 할 수 있습니다.
layout_dir : 레이아웃은 다음과 같습니다.
virt_dir :이 디렉토리에는 가상 페이지 템플릿이 포함되어 있습니다.
대상 : 공간에 따른 정적 파일 목록 (가상 페이지가 포함되지 않음). $ {dest_dir}는 건물 시스템에 포함되어 있으므로 포함하지 마십시오. 물론 디렉토리를 사용할 수 있습니다. 자동화 된 요구 사항은 $ {src_dir} 의 동일한 파일입니다.
TargetS_Manual : 공간에 퍼팅 된 정적 파일 목록을 작성해야합니다. $ {dest_dir}는 건물 시스템에 포함되어 있으므로 포함하지 마십시오. 이러한 대상은 위의 $ {targets} 와 같이 자동으로 생성 된 요구 사항이 없습니다.
GREQ : 글로벌 요구 사항. 모든 목표가 필요합니다. 기본값이 비어 있습니다.
foo.html_req : $ {targets} 변수에 포함 된 foo.html 의 추가 요구 사항 (위 참조). foo.m4 가 자동으로 추가됩니다. 이러한 변수는 선택 사항입니다.
M4 : M4 명령. 대부분의 경우 단순히 M4 ( 경로 )로 설정할 수 있습니다. 이 변수는 선택 사항이며 기본값은 M4 입니다
M4_Params : M4 명령의 매개 변수. 기본값은 -p -i 포함 -d_src_dir = $ {src_dir} 입니다. M4_ 접두사와 함께 내장 된 매크로를 사용하기 때문에 옵션 -P 는 NECCESSARY입니다.
다음 변수는 빌딩 중에 동적으로 생성되며 M4 소스 및 템플릿에서 사용할 수 있습니다.
_directory : $ {dest_dir} 내부의 대상 디렉토리 ( $ {dest_dir} prefix 없음). $ {dest_dir} 의 루트는 "입니다." (점).
_file : 생성중인 대상 파일 이름 (확장없이).
시스템은 파일에서 사용할 수있는 몇 가지 도우미를 배송합니다. 00_defines.m4 에 정의됩니다. 다음은 도우미 목록입니다.
_body (컨텐츠, 옵션) : <body $ 옵션> $ 컨텐츠 </body>를 생성합니다.
_charset (charset) : <meta charset = "$ charset">을 생성합니다.
_class (class1, class2, ...) : class = "$ class1 $ class2 ..."를 생성합니다.
_css (cssfile) : <link rel = "스타일"href = $ cssfile>을 생성합니다.
_div (클래스, 컨텐츠, 옵션) : <div class = $ class $ 옵션> $ content </div>를 생성합니다.
_head (옵션, 컨텐츠) : <Head $ 옵션> $ content </head>를 생성합니다.
_href (url, 텍스트, 옵션, 제목) : <a href = $ url $ 옵션 제목 = $ title> text </a>를 생성합니다.
_meta (매개 변수) : <메타 $ 매개 변수>를 생성합니다.
_OL (매개 변수) : 순서 목록을 생성 <ol> <li> $ 1 </li> <li> $ 2 </li> ... </ol> . 쉼표로 분리 된 매개 변수 목록에 항목을 지정할 수 있습니다. 인용에주의하십시오!
_stag (tagname, parameters) : <$ tagname $ 매개 변수>를 생성합니다.
_tag (tagname, 컨텐츠, 옵션) : <$ tagname $ 옵션> $ content </$ tagname>을 생성합니다.
_title (제목, 옵션) : <타이틀 $ 옵션> $ title </title>을 생성합니다.
_ul (매개 변수) : _ol 과 동일합니다.
가상 페이지는 소스 (M4) 파일이 없습니다. 유사한 콘텐츠로 유사한 페이지를 만들고 싶을 때 유용합니다 (예 : PDF 파일 목록, 목록 이미지 등).
가상 그룹을 만들어야합니다 (그룹에 하나의 가상 만 추가 할 수 있음). 다음 변수로 수행 할 수 있습니다.
가상 : 카테고리의 이름을 포함합니다. 예를 들어 virtuals = cat1 cat2 . 범주는 공간 문자로 분리됩니다.
VirtualTemplate_* : virtualtemplate_cat1 및 virtualtemplate_cat2 변수를 설정할 수 있습니다. 그들의 값은 가상 페이지를 생성하는 데 어떤 템플릿을 사용해야하는지 말합니다. 템플릿은 virt_dir 디렉토리에 저장됩니다. 템플릿 파일에서 동적으로 생성 된 변수를 사용할 수 있습니다. [소스 내부 변수] [] 섹션을 참조하십시오.
VirtualDir_* :이 변수는 생성 된 페이지가 나타나야하는 대상 디렉토리를 가리 킵니다. 모든 범주를 설정해야하므로 virtualDir_Cat1 및 virtualDir_Cat2 도 설정해야합니다.
virtualout_* : 출력 파일 이름. 예를 들어 virtual_cat1 = foo1.html foo2.html 입니다. 이 경우 $ {virtualdir_cat1} /foo1.html 및 $ {virtualdir_cat1} /foo2.html이 있습니다.
VirtualReq_* : 가상 범주에 대한 추가 요구 사항. $ {virtualtemplate _*}. M4가 자동으로 추가됩니다.
VirtualReqrule_* : 파일별로 요구 사항을 정의하기위한 간단한 변환 규칙. 변환 규칙은 $ {virtualout_*} 변수의 요소에 적용됩니다. 예를 들어 virtualereq_foo = c, .html, .dat, 규칙은 모든 .html 확장자 가 .dat extension으로 변환합니다. ** $ {virtualDir_*}의 값은 자동으로 포함되지 않으므로 원하는 경우 수행해야합니다! 재귀 적 의존성에주의하십시오! Make (1) 매뉴얼의 가능한 수정자를 참조하십시오!
지정된 이벤트에서 실행되는 후크를 정의 할 수 있습니다. 정의에서 $ {. target} 매크로를 사용할 수 있습니다 . 원하지 않는 경우 명령을 @ 부호로 접두사해야합니다.
hook_pre_html : m4 파일에서 html 파일을 생성하기 전에 실행됩니다. 기본값은 $ {msg1} Building $ {. target} 입니다.
hook_post_html : m4 파일에서 html 파일을 생성 한 후 실행됩니다. 기본값이 비어 있습니다. 이 후크는 예를 들어 html 파일의 유효성을 확인하려면 유용합니다 (예 : Tidy의 경우 http://www.html-tidy.org/ 참조).
hook_pre_vhtml : 가상 템플릿에서 html 파일을 생성하기 전에 실행됩니다 (위의 [Virtuals] [] 참조). 기본값은 $ {msg1}를 Building Virtual $ {. target} 입니다.
hook_post_vhtml : 가상 템플릿에서 html 파일을 생성 한 후 실행됩니다. 기본값이 비어 있습니다.
** config.mk '에서 특수 대상을 정의 할 수 있습니다.
사전 모든 것 :이 대상은 다른 대상 보다 먼저 실행됩니다 (물론 청소 제외). 예를 들어 일부 파일, 심지어 WPWMM4에 사용되는 파일조차도 스크립트를 실행할 수 있습니다. 이 대상을 사용하면 태그 기능을 모방 할 수 있습니다 ([Virtuals] [] 기능 사용). 다른 아이디어는 $ {targets} 변수 ( 찾기 명령과 함께)를 자동으로 생성하는 것입니다.
Clean-Other : Clean Target을 실행할 때 ( $ {dest_dir} 디렉토리로 모든 것을 삭제하는 경우) 실행됩니다.
구성을 디버깅하는 데 도움이되는 특별한 목표가 있습니다.
Show-Config : 주요 변수를 표시하십시오.
Show Hooks : 고리를 보여주십시오.
Show-Targets : 대상 표시 (가상 대상 포함).
Show-Req : 요구 사항이있는 대상을 표시하십시오. 대상은 공백이없는 선을 시작합니다. 요구 사항은 두 개의 공간에 의해 접두사입니다. 최신 요구 사항과 다음 대상 사이에는 빈 줄이 삽입되었습니다.
Show-Virtuals :이 목표는 정의 된 가상 및 해당 구성을 보여줍니다.
M4 파일에 사용할 수있는 몇 가지 변수가 있습니다.
도움이 될 수있는 몇 가지 명령이 있습니다. 00_defines.m4 에 정의됩니다. 다음은 목록입니다.
_script (명령) : $ command를 실행하고 출력을 붙여 넣습니다 ( stdout 및 stderr 도). M4 의 ESYSCMD 매크로를 사용합니다.
_layout (레이아웃, varname1, var1, varname2, var2, ...) : $ 레이아웃 레이아웃을로드하십시오. M4 의 포함 매크로를 사용합니다. 소스 파일 시작시 웹 페이지 레이아웃을 정의 할 수 있습니다. 이 명령은 변수 varname1 , varname2 를 할당합니다. 값 var1 , var2 .
_layout_pre (pre) : $ pre는 포함 된 컨텐츠 전에 인쇄됩니다.
_layout_post (post) : $ post는 포함 된 내용에 인쇄됩니다.
_incl (파일) : $ 파일을 포함합니다. 전환은 -1 이므로이 매크로는 출력을 생성하지 않습니다. 매크로 정의가있는 파일을로드하는 것이 이상적입니다.
_2_Body (텍스트) : $ 텍스트가 본문 태그에 들어갑니다. 이 매크로는 모든 입력을 수집하고 아무것도 인쇄하지 않습니다. _pr_body를 사용하면 내용을 인쇄 (및 지우기) 할 수 있습니다.
_2_HEAD (텍스트) : _2_Body 와 동일하지만 헤드 태그로 수집합니다.
_pr_body : _2_Body 에서 수집 한 컨텐츠를 인쇄하고 재설정하십시오. 간단한 미공개 매크로입니다.
_pr_head : _pr_body 와 유사합니다.
_pr_all : 인쇄 <! doctype html> <html lang = "lang"> , 호출 _pr_head 및 _pr_body 는 html 태그를 닫습니다.
config.mk
생성 된 예는 내 개인 홈페이지 (헝가리어)입니다. http://uzsolt.hu/ 및 해당 소스 파일은 https://svn.uzsolt.hu/uzsolt.hu/wpwm4-uzsolt.hu/ 및 github mirror입니다. : https://github.com/uzsolt/wpwmm4-uzsolt.hu.
간단한 복잡한 예이지만 wpwmm4의 힘을 보여줍니다 :)
M4 (1), Make (1)
zsolt udvari ([email protected], www.uzsolt.hu)