JSON 구성 파서
1758 단어 opensourcecodenewbietestingrust
rost_gen
저장소에서 지난 번에 나에게 준 어려움 때문에 다시 작업하기로 결정했습니다. 이번에는 준비가 되어 있을 거라 생각했는데, 그렇지 않군요. 이번에는 사실 저번 협동 연구실 이후로 그들이 만든 수많은 변화 때문에 훨씬 더 어려움을 겪었습니다.새로운 기능
사용자는 다음 중 하나를 수행하여 SSG를 실행할 수 있습니다.
# Option 1: use command line arguments:
ssg --input ./site --output ./build --stylesheet https://cdn.jsdelivr.net/npm/water.css@2/out/water.css --lang fr
# Option 2: use a config file
ssg --config ./ssg-config.json
구성 파일 옵션은 훨씬 더 짧은 명령을 가질 수 있고 대신 옵션을 파일에 저장할 수 있음을 의미합니다.
RUST에서 코드 작성 및 테스트
프로젝트를 분기한 후 Eakam의 저장소에서 사용하던 크레이트
clap
가 새로 추가되어 코드를 작성하는 데 시간이 좀 걸렸습니다. 따라서 기술적으로 옵션을 선택하고 구문 분석하는 방법을 다시 배우려고 했습니다. 명령 구문 분석에 머리를 감은 후 구성 파일을 처리하는 구조체와 함수를 만들었습니다.use std::io::BufReader;
extern crate serde_with;
extern crate serde_json;
extern crate serde;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
#[serde_with::skip_serializing_none]
struct Config{
input: Option<String>,
output: Option<String>,
lang: Option<String>
}
JSON을 생성된 구조체로 구문 분석하기 위해
serde
를 사용한 다음 구조체를 호출하고 세부 정보를 이미 만들어진 handle_conversion()
함수로 구문 분석합니다.그러나 이것은
Option<String>
가 일반 문자열로 구문 분석될 수 없다는 사실을 알기 전이었습니다. 그래서 그것을 변환할 방법을 찾아야 했고, 그렇게 했지만 시간이 좀 걸렸습니다.힘내 사용
git을 원격으로 사용하는 방법을 알아내려는 것은 흥미로운 경험이었습니다. 내가 예상했던 것보다 훨씬 더 간단했지만. 이제 마우스를 클릭하지 않고 끌어오기 요청 코드를 테스트하는 방법을 알고 있습니다.
마지막 생각들
아직 익숙하지 않은 언어로 작업하는 것이 쉽지 않았지만, 오픈소스로 작업하는 것은 새로운 규칙을 배우는 데 많은 도움이 됩니다. 나는 모든 언어에서 구문이 다르다는 것을 배웠습니다. 구축하는 기술과 아이디어는 동일합니다.
Reference
이 문제에 관하여(JSON 구성 파서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/lostbutton/json-config-parser-3koa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)