tailwindcss + next.js, json 파일을 읽는 SSG 웹 사이트

요약:


tailwindcss + next.js의 예에서 외부 웹 사이트의 json 파일을 읽는 SSG 만들기
  • tailwindcss 환경 설정은 전편과 같습니다.
  • 컨디션

  • tailwindcss: 2.1.2
  • next.js : 10.1.3
  • node 14
  • netlify
  • 프레젠테이션 페이지 참조


    https://cms-kuc-jamstack-ex11.netlify.app/

    참조 코드


    https://github.com/kuc-arc-f/jamstack-ex11
  • /pages/index , .env/json 파일 URL을 지정하고 읽는 형식
  • index.jsx
    
    export default function Index(data) {
      var items = data.blogs
      var json = data.json
    //console.log( items )    
      return (
        <div className="bg-gray-100">
        <Layout preview="">
          <Head>
            <title>{data.site_name}</title>
          </Head>
          <TopHeadBox site_name={data.site_name} info_text={data.info_text} />
          <Container key="Index">
            <div className="p-1">
              <h3 className="text-3xl text-blue-400 font-bold mb-0">Posts</h3>
            </div>        
            {items.map((item, index) => {
              var category_name = item.category.name
              return (
              <Link href={`/posts/${item.save_id}`} >
                <a>
                  <IndexRow key={index}
                  id={item.id} save_id={item.save_id} title={item.title}
                  date={item.created_at} category_name={category_name} />       
                </a>
              </Link>
              )
            })}
          </Container>
        </Layout>
        </div>
      )
    }
    
    export async function getStaticProps() {
      var dt = LibCommon.formatDate( new Date(), "YYYY-MM-DD_hhmmss");
      var url = process.env.MY_JSON_URL+ '?' + dt
      const req = await fetch( url );
      const json = await req.json();  
      var items = json.items 
      items =  LibCommon.get_reverse_items(items)
      LibPagenate.init()
      items = LibPagenate.getOnepageItems(items, 0 , 20)  
      var display = LibPagenate.is_paging_display(items.length)      
      return {
        props : {
          blogs: items,
          json: json,
          site_name : process.env.MY_SITE_NAME,
          info_text : "Sample CMSの関連記事を公開予定しております。",        
          display: display
        }
      };
    }
    

    스크린



    참조 페이지

  • json 파일 편집 기능 등
  • https://zenn.dev/knaka0209/books/4ee53bad905ec2/viewer/b67f99
  • tailwindcss + next.js를 통해 사용자 정의component 및 SSG 사이트 deploy
  • 읽기
    https://zenn.dev/knaka0209/articles/b954ed2e85d3fa
    ....

    좋은 웹페이지 즐겨찾기