팔파틴 - SSG Release1.0.0

팰퍼틴이란?



palpatineCMake으로 빌드되고 C++17로 작성된 최소 SSG(정적 사이트 생성기)입니다. 원시 데이터 디렉토리를 가져와 정적 웹 사이트를 생성하는 명령줄 도구입니다. 빠르고 간단하며 사용하기 쉽도록 설계되었습니다.
Palpatine은 또한 내가 가장 좋아하는 악당이자 Star Wars에서 가장 강력한 Sith Lord입니다.

사용 방법?



github에서 저장소를 복제한 후 CMake로 프로젝트를 빌드할 수 있습니다. CMake 사용 경험이 없더라도 걱정하지 마십시오. 프로젝트의 루트 디렉터리에서 make prepare를 실행하기만 하면 됩니다. 그러면 프로젝트의 Makefile에서 준비 지시문이 실행되고 palpatine 디렉토리에 실행 파일build/app이 생성됩니다. 그런 다음 ./palpatine로 실행 파일을 실행하여 도구 사용법을 볼 수 있습니다. Makefile을 검토하여 백그라운드에서 어떤 일이 발생하는지 확인하십시오.

Note: Currently, palpatine only supports txt file as input but soon it will support markdown.



팰퍼틴 사용법 시연

# Clone this repository
$ git clone https://github.com/batunpc/palpatine

# Go into the repository
$ cd palpatine

# Build project w/ CMake and install dependencies 
$ make prepare

# Run the script
$ ./palpatine -i <input> -o <output> -s <stylesheet>


플래그




깃발
설명
필수/선택

-i원시 데이터 디렉토리 또는 파일을 지정하십시오. 코드베이스에서 data 디렉토리 사용
필수의
-o정적 사이트를 생성하려는 특정 디렉토리를 지정하십시오.
선택 과목
-s원하는 경우 css 파일을 지정하여 사용자 정의 스타일시트를 추가할 수 있습니다. 기본적으로 bahunya을 사용합니다.

선택 과목
-h사용 가능한 모든 옵션이 표시됩니다.
선택 과목


종속성



다음 종속성이 external 디렉토리에 설치됩니다.

  • p-ranav/argparse - 명령줄 인수 구문 분석을 위한 단일 파일 헤더 전용 C++11 라이브러리입니다.

  • ikalnytskyi/termcolor - 컬러 메시지를 터미널에 인쇄하기 위한 헤더 전용 C++ 라이브러리입니다.

  • 특징


  • [x] 텍스트 파일 디렉토리에서 정적 사이트 생성
  • [x] 정적 사이트에 대한 스타일시트 파일 생성
  • [x] 출력 디렉토리를 변경하는 옵션
  • [x] 사용자 정의 스타일시트 링크를 포함하는 옵션
  • [x] 각 페이지에 대한 링크와 함께 디렉토리의 모든 페이지 목록을 생성합니다
  • .
  • [x] 주어진 경우 파일의 첫 번째 줄에서 페이지 제목을 구문 분석합니다
  • .

    CMake에서 외부 라이브러리를 사용하는 방법은 무엇입니까?



    다음은 palpatine GitSubModules에서 내가 어떻게 사용했는지에 대한 데모입니다.
  • i. 외부 라이브러리를 하위 모듈로 프로젝트에 추가하는 데 편리한 아래 명령을 사용하십시오. 아래 라이브러리는 palpatine에서 사용한 라이브러리 중 하나입니다. 원하는 라이브러리를 사용할 수 있습니다.

  •  git submodule add https://github.com/p-ranav/argparse external/argparse
    


  • ii. 그런 다음 프로젝트에 cmake 폴더를 만듭니다. mkdir cmake (CMake 기능을 추가할 예정임)
  • ⅲ. cmake 폴더에 AddGitSubmodule.cmake 파일을 생성합니다.
  • iv. 그런 다음 AddGitSubmodule.cmake 파일에 다음 코드를 추가합니다.

  •  function(add_git_submodule dirname)
     find_package(Git REQUIRED)
    
     if(NOT EXISTS ${dirname}/CMakeLists.txt)
     execute_process(COMMAND ${GIT_EXECUTABLE}
     submodule update --init --recursive -- ${dirname}
     WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
     )
     endif()
    
     add_subdirectory(${dirname})
     endfunction()
    


  • v. root CMakeLists.txt 파일에서 다음 코드를 추가하여 위에서 작성한 함수를 최종적으로 호출합니다.

  •  include(cmake/AddGitSubmodule.cmake)
     add_git_submodule(external/argparse) # add any library you want
    


  • vi. 최종적으로 추가한 이 외부 라이브러리를 실행 파일과 연결할 수 있습니다. 앱 CMakeLists.txt 파일로 이동하고 다음 코드를 추가합니다.

  •  target_link_libraries(${EXECUTABLE_NAME} PUBLIC argparse)
    

    좋은 웹페이지 즐겨찾기