package Template::Plugin::HighlightPerl;
use Syntax::Highlight::Perl;
use Template::Plugin::Filter;
use base qw( Template::Plugin::Filter );
use strict;
our $VERSION = '0.01';
sub init {
my $self = shift;
my $name = $self->{ _CONFIG }->{ name } || 'highlight_perl';
$self->install_filter($name);
return $self;
}yum install trac svn mod_dav_svn
mkdir -p /var/svn/svn.mydomain.com/repo
mkdir -p /var/trac/trac.mydomain.com/repo
svnadmin create --fs-type fsfs /var/svn/svn.mydomain.com/repo
svn mkdir file:///var/svn/svn.mydomain.com/repo/branches file:///var/svn/svn.mydomain.com/repo/tags file:///var/svn/svn.mydomain.com/repo/trunk -m "Initial Structure"
trac-admin /var/trac/trac.mydomain.com/repo initenv
- Enter name of project.
- Just press enter to use SQLite
- Just press enter to use svn integration.
- Templates directory defaults to /usr/share/trac/templates
- Path to repo: /var/svn/svn.mydomain.com/repo
chown -R apache.apache /var/svn/svn.mydomain.com/repo
chown -R apache.apache /var/trac/trac.mydomain.com/repo
vim /etc/httpd/conf.d/subversion.conf
<Location /var/svn/svn.mydomain.com/repo>
DAV svn
SVNPath /var/svn/svn.mydomain.com/repo>
AuthType Basic
AuthName "Repo Repository"
AuthzSVNAccessFile /var/svn/svn.mydomain.com/svn-acl-conf
AuthUserFile /var/svn/svn.mydomain.com/repo.htpasswd
Require valid-user
</Location>
touch /var/svn/svn.mydomain.com/repo.htpasswd
htpasswd -m /var/svn/svn.mydomain.com/repo.htpasswd username
vim /var/svn/svn.mydomain.com/svn-acl-conf
vim /etc/httpd/conf.d/trac.conf
<Location /trac/repo>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/trac/trac.mydomain.com/repo
PythonOption TracUriRoot /trac/repo
</Location>
<Location "/trac/repo/login">
AuthType Basic
AuthName "trac"
AuthUserFile /var/trac/trac.mydomain.com/repo.htpasswd
Require valid-user
</Location>
touch /var/trac/trac.mydomain.com/repo.htpasswd
trac-admin /var/trac/trac.mydomain.com/repo permission add username TRAC_ADMIN
vim /etc/httpd/conf/httpd.conf
# Trac Configuration
<VirtualHost *:80>
ServerName trac.mydomain.com
Alias /trac/ /usr/share/trac/htdocs
<Directory "/usr/share/trac/htdocs/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Location />
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonInterpreter main_interpreter
PythonOption TracEnv /var/trac/trac.mydomain.com/repo/
PythonOption TracUriRoot /
AuthType Basic
AuthName "trac"
AuthUserFile /var/trac/trac.mydomain.com/repo.htpasswd
Require valid-user
&glt;/Location>
</VirtualHost>
svn import -m "Initial Import" --username=username /srv/www/repo http://svn.mydomain.com/trunk
svn co --username=stephen http://svn.mydomain.com/trunk .
svn copy --username=stephen http://svn.mydomain.com/trunk http://svn.mydomain.com/tags/deploy -m "Deploy to live server."
EDITOR=vim; export EDITOR
# Update TagCloud weight
foreach my $fields_dbic (
$c->model('StephenSykesDB::ArticleTags')->search(
article_id => $form->{article_id},
{
prefetch => 'tag_cloud',
},
)
) {
if ($fields_dbic->tag_cloud->weight > 0) {
# Subtract 1 from weight and update tag cloud
my $new_weight = ($fields_dbic->tag_cloud->weight - 1);
$c->model('StephenSykesDB::TagCloud')->update_or_create({
tag_id => $fields_dbic->tag_cloud->tag_id,
descr => $fields_dbic->tag_cloud->descr,
weight => $new_weight,
});
}
}
# Delete all ArticleTags and then add new from form
$c->model('StephenSykesDB::ArticleTags')->search({ article_id => $form->{article_id} })->delete;
# Split tags on white space
my @tags = split(/ /, $form->{Tags});
foreach my $tag_rec (@tags) {
$tag_rec =~ tr/[A-Z]/[a-z]/;
my $tag_cloud_dbic = $c->model('StephenSykesDB::TagCloud')->find({ descr => $tag_rec });
if ($tag_cloud_dbic) { # update existing tag
my $new_weight = ($tag_cloud_dbic->weight + 1);
$c->model('StephenSykesDB::TagCloud')->update_or_create({
tag_id => $tag_cloud_dbic->tag_id,
descr => $tag_cloud_dbic->descr,
weight => $new_weight,
});
# Add tags to site_tags table
$c->model('StephenSykesDB::ArticleTags')->create({
article_id => $form->{article_id},
tag_id => $tag_cloud_dbic->tag_id,
});
} else { # create new tag
$c->model('StephenSykesDB::TagCloud')->create({
tag_id => undef,
descr => $tag_rec,
weight => '1',
});
# Get new tag_id
my $tag_dbic = $c->model('StephenSykesDB::TagCloud')->find({ descr => $tag_rec });
# Add tags to site_tags table
$c->model('StephenSykesDB::ArticleTags')->create({
article_id => $form->{article_id},
tag_id => $tag_dbic->tag_id,
});
}
}