하위 모듈을 사용하여 보조 Jekyll 웹 사이트를 포함하는 방법

경고



이 기사에서 설명하는 기술은 Ruby/bundler를 실행하고 Jekyll 사이트를 구축할 수 있는 HTTP 서버를 소유하고 있다고 가정합니다.
이 기술은 GitHub 페이지에서 사용할 수 없습니다.

문제



몇 달 동안 Jekylling을 한 후 로컬에서 사이트를 구축하고 scp , rsync 등으로 업로드하는 것이 지루하다는 것을 알았습니다. 내 사이트가 서버에 구축되기를 원했기 때문에 그렇게 했습니다.
그런 다음 웹 사이트의 "루트 디렉토리"에서 블로그를 호스팅하는 다른 웹 사이트가 있고 그 내부의 다른 Jekyll 사이트에서 다른 Jekyll 사이트를 제공한다는 것을 깨달았습니다.
구체적으로, 내 개발 블로그가 있었고 하위 디렉토리에 제품 페이지도 있었고 해당 페이지는 _data 디렉토리 등을 활용했습니다. 두 블로그를 서로 다른 리포지토리로 격리하여 별도로 소스를 제어할 수 있다면 덜 혼란스러울 것입니다.

https://example.com/  # A Jekyll site (A)
|- /2022/06/20  # Root level blog for site (A)
|- /another_product  # Separate Jekyll site (B)

저는 Jekyll 구성을 만지작거리고 성공했습니다. 여기에서 여러분과 공유하겠습니다.

TL; DR


  • 루트 블로그 프로젝트에 소스 디렉토리를 생성하고 여기에서 소스를 이동합니다. dir 이름을 기억하고 나중에 사용합니다
  • .
  • 보조 사이트를 프로젝트 루트에 하위 모듈로 포함합니다
  • .
  • 루트 사이트 구축 절차에서 해당 하위 모듈을 제외하도록 루트 사이트 _config.yml을 편집합니다.

  •   source: ["src"]  # The source directory you have created.
    

  • 하위 모듈 사이트 구축

  •   cd submodule_site
      JEKYLL_ENV=production bundle exec jekyll build
      cd ..
    

  • 루트 Jekyll 사이트의 출력 디렉토리에서 보조 Jekyll 사이트의 출력 디렉토리를 가리키는 심볼릭 링크(예: submodule_site)를 만듭니다.

  •   cd $PROJECT_ROOT/_site
      ln -s ../submodule_site/_site submodule_site  # This will be a part of your actual link!
    

  • 이 줄을 포함하도록 루트 사이트 _config.yml을 편집합니다.

  •   keep_files: ["submodule_site"]
    

  • 두 사이트 모두 구축
  • 이익

  • 먼저 먼저



    이와 같은 작업을 수행할 때 다른 Jekyll 웹사이트를 하위 모듈로 포함하면 Jekyll이 혼동될 수 있으므로 웹사이트 소스를 원하는 디렉토리로 옮기는 것을 고려해야 합니다.
    이는 기본적으로 프로젝트 루트에 있는 대부분의 항목이 블로그의 소스로 간주되기 때문입니다. 그런 곳에 또 다른 Jekyll 프로젝트가 있으면 모든 것이 망가질 수 있습니다.
    이 작업을 수행하는 방법에 대한 내 다른 게시물을 참조하십시오.





    지킬은 깨끗한 플레이를 원한다



    하위 모듈 사이트의 출력 디렉토리에 대한 심볼릭 링크를 소스 디렉토리(기본적으로 프로젝트 루트)에 넣으면 어떤 이유로 빌드 시 모든 것이 폭발합니다.

    이제 우리가 할 수 있는 유일한 일은 하위 모듈 사이트의 출력 디렉터리에 대한 심볼릭 링크를 루트 사이트의 출력 디렉터리로 만드는 것입니다.

    cd root_site/_site
    ln -s ../submodule_site/_site submodule_site
    

    그러나 빌드할 때마다 _site 디렉토리의 모든 항목이 지워지므로 작동하지 않습니다.

    그러나 이 동작을 중지하는 구성 키가 있습니다.

    keep_files 키







    구성 옵션 | Jekyll • 단순한 블로그 인식 정적 사이트



    아래 표에는 Jekyll에 사용 가능한 설정과 이를 제어하는 ​​다양한 옵션(구성 파일에 지정됨) 및 플래그(명령줄에 지정됨)가 나열되어 있습니다.



    jekyllrb.com



    keep_files 키를 사용하여 빌드를 정리하기 전에 특정 파일/디렉토리를 남겨두도록 Jekyll에 알릴 수 있습니다. 이 키는 심볼릭 링크에도 적용됩니다!

    keep_files: ["submodule_site"]
    


    구축할 시간



    하위 모듈 사이트와 루트 사이트를 모두 구축하면 _site 디렉토리에 작업 사이트가 생성됩니다. 루트 사이트의 출력 디렉터리를 웹 루트에 심볼릭 링크하여 웹 사이트를 제공할 수 있습니다!

    좋은 웹페이지 즐겨찾기