aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin J. Novack <jnovack@gmail.com>2012-09-17 10:08:39 -0400
committerJustin J. Novack <jnovack@gmail.com>2012-09-17 10:08:39 -0400
commit97c4ac59eed8b66b2e7f85d8ac325b063fb8a0ce (patch)
treed6c729c5ad14562eff5b63f782f1428a5c964bb5
parent76aa2ab76d8f2305db7a2bb7cdbe461cca0146a3 (diff)
parent882ce78e4fc3361288dbc3c453412556aa529c7d (diff)
downloadphorkie-97c4ac59eed8b66b2e7f85d8ac325b063fb8a0ce.tar.gz
phorkie-97c4ac59eed8b66b2e7f85d8ac325b063fb8a0ce.zip
Merge with updates from cweiske/master
-rw-r--r--ChangeLog6
-rw-r--r--data/templates/display.htm4
-rw-r--r--data/templates/doap.htm17
-rw-r--r--src/phorkie/Repository.php2
-rw-r--r--www/.htaccess1
-rw-r--r--www/doap.php21
6 files changed, 50 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 35e7456..4a9cfc5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,11 @@
-2012-09-16 Justin J. Novack <jnovack@gmail.com>
+2012-09-17 Justin J. Novack <jnovack@gmail.com>
* Add OpenID authentication
+2012-09-16 Christian Weiske <cweiske@cweiske.de>
+
+ * Implement request #12: DOAP documents for all pastes
+
2012-09-08 Christian Weiske <cweiske@cweiske.de>
* Fix bug #11: do not index edit, delete and tool pages
diff --git a/data/templates/display.htm b/data/templates/display.htm
index 6d84c46..5bcb016 100644
--- a/data/templates/display.htm
+++ b/data/templates/display.htm
@@ -3,6 +3,10 @@
{{repo.getTitle}}
{% endblock %}
+{% block meta %}
+<link rel="meta" title="DOAP" type="application/rdf+xml" href="{{repo.getLink('doap')}}"/>
+{% endblock %}
+
{% block content %}
{% include 'display-head.htm' %}
diff --git a/data/templates/doap.htm b/data/templates/doap.htm
new file mode 100644
index 0000000..5302dd4
--- /dev/null
+++ b/data/templates/doap.htm
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns="http://usefulinc.com/ns/doap#">
+ <Project rdf:about="{{link}}">
+ <name>{{repo.getTitle}}</name>
+ <homepage rdf:resource="{{link}}" />
+ <created>{{date}}</created>
+ {% if repo.getCloneURL(true) %}
+ <repository>
+ <GitRepository>
+ <location rdf:resource="{{repo.getCloneURL(true)}}" />
+ <browse rdf:resource="{{link}}" />
+ </GitRepository>
+ </repository>
+ {%endif %}
+ </Project>
+</rdf:RDF>
diff --git a/src/phorkie/Repository.php b/src/phorkie/Repository.php
index 9f8f264..995a16d 100644
--- a/src/phorkie/Repository.php
+++ b/src/phorkie/Repository.php
@@ -252,6 +252,8 @@ class Repository
return '/' . $this->id;
} else if ($type == 'fork') {
return '/' . $this->id . '/fork';
+ } else if ($type == 'doap') {
+ return '/' . $this->id . '/doap';
} else if ($type == 'delete') {
return '/' . $this->id . '/delete';
} else if ($type == 'delete-confirm') {
diff --git a/www/.htaccess b/www/.htaccess
index c1d339d..4c52627 100644
--- a/www/.htaccess
+++ b/www/.htaccess
@@ -5,6 +5,7 @@ RewriteBase /
RewriteRule ^([0-9]+)$ /display.php?id=$1
RewriteRule ^([0-9]+)/delete$ /delete.php?id=$1
RewriteRule ^([0-9]+)/delete/confirm$ /delete.php?id=$1&confirm=1
+RewriteRule ^([0-9]+)/doap$ /doap.php?id=$1
RewriteRule ^([0-9]+)/edit$ /edit.php?id=$1
RewriteRule ^([0-9]+)/fork$ /fork.php?id=$1
RewriteRule ^([0-9]+)/raw/(.+)$ /raw.php?id=$1&file=$2
diff --git a/www/doap.php b/www/doap.php
new file mode 100644
index 0000000..db00df4
--- /dev/null
+++ b/www/doap.php
@@ -0,0 +1,21 @@
+<?php
+namespace phorkie;
+/**
+ * Display DOAP of the paste.
+ * Contains a machine-readable project description with Git URL.
+ */
+require_once 'www-header.php';
+
+$repo = new Repository();
+$repo->loadFromRequest();
+
+header('Content-Type: application/rdf+xml');
+render(
+ 'doap',
+ array(
+ 'repo' => $repo,
+ 'date' => date('Y-m-d', end($repo->getHistory())->committerTime),
+ 'link' => Tools::fullUrl($repo->getLink('display'))
+ )
+);
+?>