Creating a Microsummary

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는 http://www.mozilla.org/microsummaries/0.1을 네임 스페이스로 하여 기본 요소가 <generator>인 XML 문서로 표현됩니다. Generators를 작성하려면 우선 신규로 텍스트 파일을 만들어 XML 선언과 <generator> 태그를 추가합니다.

<?xml version="1.0" encoding="UTF-8"?>
<generator xmlns="http://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="http://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="http://www.mozilla.org/microsummaries/0.1"
           name="Firefox Download Count">
  <template>
    <transform xmlns="http://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="http://www.mozilla.org/microsummaries/0.1"
           name="Firefox Download Count">
  <template>
    <transform xmlns="http://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="http://www.mozilla.org/microsummaries/0.1"
           name="Firefox Download Count">
  <template>
    <transform xmlns="http://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="http://www.mozilla.org/microsummaries/0.1"
           name="Firefox Download Count">
  <template>
    <transform xmlns="http://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="http://www.mozilla.org/microsummaries/0.1"
           name="Firefox Download Count">
  <template>
    <transform xmlns="http://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="http://www.mozilla.org/microsummaries/0.1"
           name="Firefox Download Count">
  <template>
    <transform xmlns="http://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="http://www.mozilla.org/microsummaries/0.1" name="Firefox Download Count">
  <template>
    <transform xmlns="http://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>http://(www.)?spreadfirefox.com/(index.php)?</include>
  </pages>
</generator>

Generators 다운로드 하기

Generators가 적용된 Spread Firefox 홈 페이지에 적용할 수 있게 되었으므로 마지막 할일은 이것을 다운로드할 수 있도록 하는 것 뿐입니다.그러기 위해서 이것을 웹에 두어 어딘가의 페이지에 JavaScript의 링크를 작성할 필요가 있습니다.이 링크는 Generators 다운로드와 설치를 위한 Firefox의 window.sidebar.addMicrosummaryGenerator() 메소드를 호출 하도록 합니다.


예를 들면,Generators를 http://people.mozilla.com/~myk/micro...generator.xml에 두고 http://people.mozilla.com/~myk/micro...al/index.html로 부터 설치 하도록 하고 싶으면 다음과 같은 코드를 index.html에 추가합니다.

<a href="javascript:window.sidebar.addMicrosummaryGenerator('http://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('http://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를 참조해 주세요.

문서 태그 및 공헌자

최종 변경: teoli,