Microsummary Generator는 웹 페이지 내용으로부터 Microsummary를 생성하기 위한 명령어를 포함하고 있니다.웹 페이지는 Generators를 <head>
요소의 <link rel="microsummary">
요소에 의해 참조할 수 있습니다. Generators는 이것이 적용되는 웹 페이지 목록을 가지고 있는 경우, 사용자에 의해 개별적으로 다운로드하거나 설치할 수 있습니다.
이 튜토리얼에서는,Spread Firefox home page용으로 Firefox 의 현재 다운로드수를 Fx downloads와 함께 표시하는 Microsummary Generators를 만들어 보겠습니다. 예제 174475447 Fx downloads
웹 페이지에서 Microsummary로 변환하려면 XSLT 변환 시트를 작성해 Generators를 웹 페에지에 적용하기 위한 방법을 통해 Generators를 다운로드 및 설치 할 수 있도록 합니다.
이 입문서에서는, 단계 마다 변환 시트나 그 외의 코드에서 추가된 새로운 항목은 알기 쉽게 굵은 글씨로 표시합니다.
시작하기
Generators는 https://www.mozilla.org/microsummaries/0.1을 네임 스페이스로 하여 기본 요소가 <generator>
인 XML 문서로 표현됩니다. Generators를 작성하려면 우선 신규로 텍스트 파일을 만들어 XML 선언과 <generator>
태그를 추가합니다.
<?xml version="1.0" encoding="UTF-8"?>
<generator xmlns="https://www.mozilla.org/microsummaries/0.1">
</generator>
명명하기
Generators가 생성되었으면 Microsummary에 대한 이름으로서 name
속성을 가질 필요가 있습니다.이름은 이 Microsummary에서 어떤 정보를 제공하는지 사용자에게 명확하게 나타내 주는 것으로 정합니다.만드려는 Generators가 Firefox의 다운로드 수를 표시하는 Microsummary이므로 "Firefox Download Count"라는 이름을 붙이기로 하겠습니다.
<?xml version="1.0" encoding="UTF-8"?>
<generator xmlns="https://www.mozilla.org/microsummaries/0.1"
name="Firefox Download Count">
</generator>
XSLT Sheet 추가
Generators는 웹 페이지 내용을 Microsummary로 변환할 때 XSLT 변환 시트를 포함해야 합니다. XSLT는 같은 정보를 가진 문서를 다른 형식으로 표현하기 위한 강력한 언어입니다.
Generators에 <template>
둘러싸는 XSLT 변환 시트를 추가합니다.
<?xml version="1.0" encoding="UTF-8"?> <generator xmlns="https://www.mozilla.org/microsummaries/0.1" name="Firefox Download Count"> <template> <transform xmlns="https://www.w3.org/1999/XSL/Transform" version="1.0"> </transform> </template> </generator>
Microsummary Generators는 내용을 출력하는 임의의 XSLT를 포함하지만 Firefox는 현재 XSLT의 내용 출력만 제공함을 유의하시기 바랍니다.
출력 형식 지정
XSLT 변환 시트는 텍스트 형식의 Microsummary를 생성하므로 XSLT <output>
요소로 이것을 지정합니다.
<?xml version="1.0" encoding="UTF-8"?> <generator xmlns="https://www.mozilla.org/microsummaries/0.1" name="Firefox Download Count"> <template> <transform xmlns="https://www.w3.org/1999/XSL/Transform" version="1.0"> <output method="text"/> </transform> </template> </generator>
간단한 XSLT <template>
사용
XSLT 프로세서는 변환 시트의 XSLT <template>
요소를 문서의 노드 집합과 비교하는 것으로 문서를 변환합니다.<template>
의 match
속성이 있는 노드와 맞으면 프로세서는 요소의 컨텐츠로 정의된 변환을 실행합니다.
문서의 노드 트리를 탐색해 문서의 내용에 근거해 재귀적으로 출력을 생성할 수 있으므로 이 메카니즘은 매우 강력합니다.그러나, Spread Firefox의 Microsummary를 생성하는 목적에 있어서는 문서의 루트 요소에 매치하는 단일한 <template>
요소만이 필요합니다.
<?xml version="1.0" encoding="UTF-8"?> <generator xmlns="https://www.mozilla.org/microsummaries/0.1" name="Firefox Download Count"> <template> <transform xmlns="https://www.w3.org/1999/XSL/Transform" version="1.0"> <output method="text"/> <template match="/"> </template> </transform> </template> </generator>
다운로드수 가져오기
XSLT 변환 시트의 출력에 다운로드수를 포함하려면 템플릿에 XSLT의 <value-of>
요소를 추가해야 합니다. select
속성에는 다운로드수를 포함한 노드를 지시하는 XPath를 기입합니다.
XPath는 HTML/XML 문서의 노드를 특정하기 위한 언어입니다.이것에는 노드와 내용을 조작하기 위한 기본적인 기능이 포함되어 있습니다. 특정 노드를 표현하는 XPath를을 얻는 가장 빠른 사용 방법은 [https://addons.mozilla.org/firefox/1095/ 확장 기능 XPath Checker]을 사용하는 것입니다.
확장 기능을 설치 하기 위해서는 Firefox 다시 시작합니다. Spread Firefox 홈 페이지에 가서 Firefox의 다운로드수를 찾아내(오른쪽 맨 밑의 큰 수치) 숫자 위에서 오른쪽을 클릭해 context menu로부터 View XPath을 선택합니다..
XPath Checker는 새 창을 엽니다. 창에는 XPath필드가 포함되어 거기에는 다운로드수를 나타내는 노드를 가리키는 XPath 기술: id('download-count')이라고 표현됩니다.
XSLT의 <template>
요소에 <value-of>
요소를 추가해,select
속성에 XPath 내용을 기입합니다.
<?xml version="1.0" encoding="UTF-8"?> <generator xmlns="https://www.mozilla.org/microsummaries/0.1" name="Firefox Download Count"> <template> <transform xmlns="https://www.w3.org/1999/XSL/Transform" version="1.0"> <output method="text"/> <template match="/"> <value-of select="id('download-count')"/> </template> </transform> </template> </generator>
내용 추가
Microsummary에 Fx downloads를 추가하려면 추가하고 싶은 컨텐츠를 가진 XSLT의 <text>
요소를 XSLT의 <template>
요소에 추가할 필요가 있습니다.
Add a <text>
element to the XSLT template with the content Fx downloads:
<?xml version="1.0" encoding="UTF-8"?> <generator xmlns="https://www.mozilla.org/microsummaries/0.1" name="Firefox Download Count"> <template> <transform xmlns="https://www.w3.org/1999/XSL/Transform" version="1.0"> <output method="text"/> <template match="/"> <value-of select="id('download-count')"/> <text> Fx downloads</text> </template> </transform> </template> </generator>
여러개의 공백을 포함할 수 있는 HTML과 달리 XSLT 태그간의 공백은 XSLT 출력에는 포함되지 않기 때문에, 다운로드수와 분리하기 위한 공백을 추가하는 것에 주의해 주세요.
이로서 Spread Firefox 홈 페이지를 Microsummary를 변환한 XSLT 변환 시트의 작성은 끝났습니다.
Generators 적용 웹 페이지 지정
여기까지 변환 시트의 작성을 마쳤으므로 그 다음 이것을 적용하는 웹 페이지를 지정할 필요가 있습니다.만약 우리가 Spread Firefox의 웹 관리자라면, <head>
요소에 <link rel="microsummary">
태그를 추가하는 것으로써 웹페이지 자신으로부터 Generator 작성이 끝납니다.
<head> ... <link rel="microsummary" href="path/to/our/generator.xml"> </head>
비록 사이트 관리자가 아니지만 Generator 안에 어느 페이지에 적용하는 지정하여 다운로드나 설치하도록 할 수 있습니다. 이를 위해서는 <generator>
요소에서 <pages>
요소를 사용합니다.
<?xml version="1.0" encoding="UTF-8"?> <generator xmlns="https://www.mozilla.org/microsummaries/0.1" name="Firefox Download Count"> <template> <transform xmlns="https://www.w3.org/1999/XSL/Transform" version="1.0"> <output method="text"/> <template match="/"> <value-of select="id('download-count')"/> <text> Fx downloads</text> </template> </transform> </template> <pages> </pages> </generator>
<pages>
요소는 Generator를 적용하거나 혹은 적용하지 않은 페이지를 지정하는 <include>
혹은 <exclude>
을 표시할 수 있습니다.
Generators를 웹 페이지에 적용하려면 <include>
요소를 추가합니다. 내용은 웹 페이지와 연결 시키는 정규 표현입니다. Generators를 페이지에 적용시키지 않으려면<exclude>
요소를 추가합니다.
기본적으로 Generators는 어느 페이지에도 적용되지 않기 때문에 적용하는 페이지를 명시적으로 지정할 필요가 있습니다.이전 적용하고 있던 페이지가 없는 한 어느 페이지도 적용을 제외할 필요는 없습니다.
Spread Firefox의 홈 페이지에 연결하는 <include>
요소를 추가합니다.
<?xml version="1.0" encoding="UTF-8"?> <generator xmlns="https://www.mozilla.org/microsummaries/0.1" name="Firefox Download Count"> <template> <transform xmlns="https://www.w3.org/1999/XSL/Transform" version="1.0"> <output method="text"/> <template match="/"> <value-of select="id('download-count')"/> <text> Fx downloads</text> </template> </transform> </template> <pages> <include>https://(www.)?spreadfirefox.com/(index.php)?</include> </pages> </generator>
Generators 다운로드 하기
Generators가 적용된 Spread Firefox 홈 페이지에 적용할 수 있게 되었으므로 마지막 할일은 이것을 다운로드할 수 있도록 하는 것 뿐입니다.그러기 위해서 이것을 웹에 두어 어딘가의 페이지에 JavaScript의 링크를 작성할 필요가 있습니다.이 링크는 Generators 다운로드와 설치를 위한 Firefox의 window.sidebar.addMicrosummaryGenerator() 메소드를 호출 하도록 합니다.
예를 들면,Generators를 https://people.mozilla.com/~myk/micro...generator.xml에 두고 https://people.mozilla.com/~myk/micro...al/index.html로 부터 설치 하도록 하고 싶으면 다음과 같은 코드를 index.html에 추가합니다.
<a href="javascript:window.sidebar.addMicrosummaryGenerator('https://people.mozilla.com/~myk/microsummaries/tutorial/sfx-generator.xml')">Install the Spread Firefox home page microsummary!</a>
Microsummary를 지원 하지 않는 웹 브라우저로 이 링크를 클릭하면 JavaScript의 에러가 발생합니다만 사용자 경험(experience)을 향상시키기 위해 Microsummary를 제공하는 브라우저를 사용하고 있을지를 조사하고 그렇지 않다면 설명을 표시해야 하겠지요.예를 들면 다음과 같은 코드입니다.
<script>
const warning = "Sorry, you need a microsummary-enabled browser like Firefox 2.0 to install and use microsummary generators.";
function addGenerator(url) {
if (typeof window.sidebar == "object" &&
typeof window.sidebar.addMicrosummaryGenerator == "function")
window.sidebar.addMicrosummaryGenerator(url);
else
alert(warning);
}
</script>
<a href="javascript:addGenerator('https://people.mozilla.com/~myk/microsummaries/tutorial/sfx-generator.xml')">Install the Spread Firefox home page microsummary!</a>
bug 341283에 의해,addMicrosummaryGenerator()는 상대 URL을 받아들이지 않는 것에 주의해 주세요.
마치며
이것을 설치 하면 최신 Firefox 다운로드수를 표시하는 Microsummary Generator를 사용 할 수 있습니다. Spread Firefox 홈 페이지를 북마크하고, Add Bookmark 대화상자의 Summary 드롭 다운 메뉴로부터 Microsummary를 선택해 주세요.
Microsummary 에 관한 상세한 정보는 Microsummaries home page를 참조해 주세요.