페미위키:게시판/자유게시판/인용 틀들의 날짜 표시 형식 변경

최근 편집: 2019년 2월 17일 (일) 21:39

안녕하세요.

목적

위키텍스트 미리보기
{{뉴스 인용|url=http://www.mediaus.co.kr/news/articleView.html?idxno=61093|title=우리 사회의 청소년혐오|date=2 July 2016}} “우리 사회의 청소년혐오”. 2016년 7월 2일. 
{{뉴스 인용|url=http://www.mediaus.co.kr/news/articleView.html?idxno=61093|title=우리 사회의 청소년혐오|date=2016-07-02}} “우리 사회의 청소년혐오”. 2016년 7월 2일. 
{{뉴스 인용|url=http://www.mediaus.co.kr/news/articleView.html?idxno=61093|title=우리 사회의 청소년혐오|date=2016년 7월 2일}} "우리 사회의 청소년혐오". 2016년 7월 2일.  Check date values in: |date= (help)
  1. 세번째 행처럼 입력하여도 에러 메세지가 표시되지 않도록 하고 싶습니다.
  2. 위의 왼쪽 열 모든 위키텍스트에 대해 표시 형식이 모두 "2010년 5월 3일"와 같은 한국어 표시가 되도록 하였으면 합니다.

사전조사

관련 모듈은 모듈:Citation/CS1모듈:Citation/CS1/Date validation입니다.

1번 문제는 Citation/CS1/Date validation 모듈의 check_date 함수에 한국어 검사 부분을 추가하면 될 것 같습니다. 다음은 한국어 위키백과의 Citation/CS1/Date validation 모듈에서 찾은 관련 코드입니다.

(509줄부터)

elseif date_string:match("^[1-9]%d%d%d년 [1-9]%d?월 [1-9]%d?일$") then		-- ko: year month day
	 year, month, day=date_string:match("(%d%d%d%d)년 (%d%d*월) (%d%d*)일");
  month = get_month_number (month);
  if 0 == month then return false; end
  anchor_year = year;

 elseif date_string:match("^[1-9]%d%d%d년 [1-9]%d?월$") then     -- ko: year month
  year, month=date_string:match("(%d%d%d%d)년 (%d%d*월)");
  month = get_month_number (month);
  if 0 == month then return false; end
  anchor_year = year;

 elseif date_string:match("^[1-9]%d%d%d?년$") then       -- ko: year; here accept either YYY or YYYY
  year=date_string:match("(%d%d%d%d?)년");
  if false == is_valid_year(year) then
   return false;
  end
  anchor_year = year;

2번 문제 해결을 위해 한국어 위키백과의 Citation/CS1 모듈와 비교하여 살펴보았습니다.

페미위키 한국어 위키백과
(3062줄부터)
if is_set(Date) then
  if is_set (Authors) or is_set (Editors) then
   Date = " (" .. Date ..")" .. OrigYear .. sepc .. " ";
  else
   if (string.sub(tcommon,-1,-1) == sepc) then
    Date = " " .. Date .. OrigYear;
   else
    Date = sepc .. " " .. Date .. OrigYear;
   end
  end
 end
(2980줄부터)
 if is_set(Date) then
  if is_set (Authors) or is_set (Editors) then
   Date = " (" .. ISOdate(Date, lang, '1-999') ..")" .. OrigYear .. sepc .. " ";
  else
   if (string.sub(tcommon,-1,-1) == sepc) then
    Date = " " .. ISOdate(Date, lang, '1-999') .. OrigYear;
   else
    Date = sepc .. " " .. ISOdate(Date, lang, '1-999') .. OrigYear;
   end
  end
 end 

Date 변수에 ISOdate 모듈의 ISOdate 함수를 한 번 사용하고 있습니다. 해당 모듈이 그냥 가져와도 작동이 되는 모듈인지는 잘 모르겠습니다. 게다가 어차피 한국어 밖에 안 쓸 것이니 적당히 변경하는 것이 나을 것 같습니다.

용건

  1. 상상했던 것보다 모듈이 길고 제가 루아를 잘 모릅니다. 저렇게 고치면 해결이 될까요?;
  2. 해당 모듈들이 보호되어 있어 저에게 편집 권한이 없습니다.

감사합니다.

  • 2016-12-05 18:40:11 렌즈 죄송합니다 하나도 모르겠습니다😨
  • 2016-11-20 10:39:12 탕수육 항상 감사합니다. 큰 도움이 됩니다. 혹시 페미위키 개발을 도와주실 의향이 있으시면 https://github.com/femiwiki/femiwiki.com 여기를 살펴보시겠어요? 개인 컴퓨터에 페미위키를 쉽게 설치하여 이런저런 테스트를 해볼 수 있습니다. 렌즈님 같은 분의 도움이 간절히 필요해요!