view release on metacpan or search on metacpan
because we have multilanguage support now.
- Ðа 11 май ÐÑлгаÑÑкаÑа пÑавоÑлавна ÑÑÑква (ÐÐЦ)
поÑиÑа СвеÑиÑе бÑаÑÑ ÐиÑил и ÐеÑодий и оÑбелÑзва
вÑзÑÑановÑванеÑо на ÐÑлгаÑÑкаÑа паÑÑиаÑÑÐ¸Ñ Ð¿Ñез 1953 г.
0.40 2014-05-04
- Started translation of end-user documentation to English.
Translated in English cover.md ,rewrote intro.md.
Started translation of intro.md. to Bulgarian.
- Temporarily monkey-patched Text::MultiMardown to support
anchors when <base href="<%= url_for('/')->base %>" /> tag
is used in templates.
- Upgraded to Mojolicious 4.97.
- Upgraded to Semantic UI 0.16.1
0.39 2014-04-15
- Fixed missing 'require' in Build.PL for Email::Address.
- Fixed 'require' in Build.PL for Mojolicious 4.93.
0.38 2014-04-14
This software is Copyright (c) 2013 by ÐÑаÑÐ¸Ð¼Ð¸Ñ ÐеÑов <berov@cpan.org>.
This is free software, licensed under:
The GNU Lesser General Public License, Version 3, June 2007
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
-------------------------------------------------------------------------------
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
NAME
Ado::Manual - Developers' manual
DESCRIPTION
Ado is a light on dependencies framework and application for web-projects,
based on Mojolicious, written in the Perl programming language
<http://www.perl.org/>. Ado is a typical well structured, MVC
<http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller>
Mojolicious application. It aims to allow teams to build on it a CMS, ERP,
CRM or all of them integrated together.
Please note that the project is still a work-in-progress. Parts of it
work, others are simply missing.
GETTING STARTED
* Start a personal blog with Ado::Manual::FiveMinutes if you are
impatient.
Ado - a rapid active commotion (framework for web-projects on Mojolicious)
=head1 SYNOPSIS
require Mojolicious::Commands;
Mojolicious::Commands->start_app('Ado');
=head1 DESCRIPTION
L<Ado> is a framework for web-projects based on L<Mojolicious>, written in the
L<Perl programming language|http://www.perl.org/>. This is the base
application class. Ado C<ISA> L<Mojolicious>. For a more detailed description
on what Ado is and how to get started with Ado see B<L<Ado::Manual>>.
=head1 ATTRIBUTES
Ado inherits all attributes from Mojolicious and implements the following new
ones.
=head2 ado_home
lib/Ado/Control/Articles.pm view on Meta::CPAN
=head2 show
Renders the file found in C<$c-E<gt>stash('html_file')> but with extension
C<.md>. If C<$config-E<gt>{md_reuse_produced_html}> is set, the produced html
file is saved in C<$config-E<gt>{md_articles_root}>. This way the next time
the resource is requested L<Mojolicious> renders the produced static file.
=head1 SEE ALSO
L<Ado::Control::Doc>, L<Ado::Plugin::MarkdownRenderer>,
L<Text::MultiMarkdown>, L<http://fletcherpenney.net/multimarkdown/>,
L<MultiMarkdown Guide|https://rawgit.com/fletcher/human-markdown-reference/master/index.html>
L<Ado::Plugin>, L<Ado::Manual>.
=head1 AUTHOR
ÐÑаÑÐ¸Ð¼Ð¸Ñ ÐеÑов (Krasimir Berov)
=cut
lib/Ado/Manual.pod view on Meta::CPAN
=encoding utf8
=head1 NAME
Ado::Manual - Developers' manual
=head1 DESCRIPTION
L<Ado> is a light on dependencies framework and application for web-projects,
based on L<Mojolicious>, written in the L<Perl programming
language|http://www.perl.org/>. Ado is a typical well structured,
L<MVC|http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller>
L<Mojolicious> application. It aims to allow teams to build on it a CMS, ERP,
CRM or all of them integrated together.
Please note that the project is still a work-in-progress. Parts of it work,
others are simply missing.
=head1 GETTING STARTED
=over
lib/Ado/Manual.pod view on Meta::CPAN
We would like to know that our software is always in good health. We count
on friendly developers and organizations to install and test it
continuously.
L<CPAN Testers Reports for
Ado|http://www.cpantesters.org/distro/A/Ado.html>
L<Travis-CI|https://travis-ci.org/kberov/Ado>
=for HTML <a href="https://travis-ci.org/kberov/Ado"><img
src="https://travis-ci.org/kberov/Ado.svg?branch=master"></a><br /><br />
=head1 SEE ALSO
L<Ado>, L<Mojolicious::Guides>, L<Mojolicious::Guides::Contributing>,
L<http://www.thefreedictionary.com/ado>.
=head1 AUTHORS
Authors, ordered by contributions
(L<https://github.com/kberov/Ado/graphs/contributors>).
lib/Ado/Manual/Contributing.pod view on Meta::CPAN
=head2 TESTS
Your code I<B<must at least>> prove that it behaves as expected.
This is achieved by writing tests. By Imposing Perl Best Practices
we also decrease the amount and complexity of needed test code.
Use C<./Build testcover> to measure the amount of test coverage for your
code. It is up to you how much coverage is enough but B<I<coverage under 70%
is not acceptable>> (TODO).
When writing code for the end user it can be also easily automatically
tested with tools such as L<PhantomJS|http://phantomjs.org/> and
L<QUnit|http://qunitjs.com/>. Use exclusively L<Test::Mojo> for REST API tests.
Looking at your tests, one should easily conclude how your code should be used.
=head2 REST AND CORS
Ado is a system that will provide REST services out of the box.
Separation of concerns must be to its maximum. Your REST API must be
self describing. Elaborate on the recommendations in
"RESTful Service Best Practices" at L<www.RestApiTutorial.com>.
You must have a reference implementation of a browser-based user-agent(yourpluginroute.html) residing in
C<Ado/public/>. It would be best if your code is CORS-ready this
should be easy if your code depends on Ado::Plugin::CORS(TODO).
See L<Ado::Manual::RESTAPI>(TODO). Feel free to propose additional best
practices. Be ready to explain well your proposal.
=head2 TEMPLATES
We have a minimal set of templates residing in the C<templates> directory.
Separation of concerns must be to its maximum. Strive for minimal logic in
your templates if you have such.
=head2 MODEL
Put your database related code under the L<Model> namespace.
Use L<DBIx::Simple::Class>.
Generate your classes from tables using C<dsc_dump_schema.pl> utility
that comes with DBIx::Simple::Class.
Feel free to contribute to L<DBIx::Simple::Class>.
Minimize SQL complexity. Write ANSI SQL if you need to write SQL.
Write your SQL in a way to be compatible with
L<SQLite|http://sqlite.org/>, L<MySQL|http://dev.mysql.com/>
and L<PostgreSQL|http://www.postgresql.org/>.
Use the L<DBIx::Simple::Class/SQL> feature to achieve this.
See L<DBIx::Simple::Class/SQL> and its source to figure out how to do it.
To guess the current driver:
use DBI::Const::GetInfoType;
#...
my $dbms = $self->dbh->get_info( $GetInfoType{SQL_DBMS_NAME} );
if($dbms eq 'SQLite'){
...
}
lib/Ado/Manual/FiveMinutes.pod view on Meta::CPAN
#but reuse already produced html files.
md_reuse_produced_html => 1,
};
Refresh L<http://127.0.0.1:3000/articles/my_article.html>. In C<~/ado/public/articles> You will find C<my_article.html>.
Congratulations! You created your first article with L<Ado> without much ado.
=head1 WHAT'S NEXT
Look at the source of L<Ado::Control::Articles> to see how it works. Go to
L<http://127.0.0.1:3000/> and play more or visit the links in the L</SEE ALSO>
section. Now you can fork the project on
L<Github|https://github.com/kberov/Ado>, improve C<menu.html.ep> to
automatically traverse the articles directory and generate the list of
articles, then make a merge request. You just contributed to the project.
=head1 SEE ALSO
L<Ado::Manual>, L<Ado>, L<Mojolicious::Guides>,
L<Mojolicious::Guides::Cookbook/DEPLOYMENT>, L<Ado::Command::generate::apache2htaccess>
lib/Ado/Manual/Installation.pod view on Meta::CPAN
We strongly recommend using Ado with L<your own
Perl|https://metacpan.org/pod/distribution/App-perlbrew/bin/perlbrew> (not the
system-wide)! This will give you freedom to install modules from CPAN etc.
Get a precompiled Perl distro like "Citrus Perl"
(L<http://www.citrusperl.com/download.html>) or "ActivePerl Community Edition"
(L<http://www.activestate.com/activeperl/downloads>) for your OS, or build your
own using L<App::perlbrew>.
Ado can be downloaded from L<CPAN|http://search.cpan.org/dist/Ado/> and
installed manually or installed into any folder of your choice. By default it
goes into the C<siteprefix> folder of the perl distribution used for
installation.
=head1 INSTALLATION METHODS
When installing Ado in its own folder, you may want to add the
C</path/to/ado/bin> to your C<$PATH> environment variable.
lib/Ado/Manual/Intro.pod view on Meta::CPAN
It comes with default configuration file C<etc/ado.conf> and a model
L<Ado::Model>, loaded at L<Ado/startup> by L<Mojolicious::Plugin::DSC>. An
SQLite database is bundled with the distribution at C<etc/ado.sqlite> to get
started quickly.
Ado provides additional L<plugins|Ado::Plugin> and L<commands|Ado::Command>,
which promote
L<RAD|http://en.wikipedia.org/wiki/Rapid_application_development>, good
practices, and team-work. The default Ado page uses L<Semantic UI|http
://semantic-ui.com/> via L<Mojolicious::Plugin::SemanticUI> and is a good
place to get acquainted. In short, Ado can be used right away as a
L<CMS|http://en.wikipedia.org/wiki/Content_management_system> that can be
extended with L<plugins|Ado::Manual::Plugins> and L<commands|Ado::Command> or
as a L<CMF|http://en.wikipedia.org/wiki/List_of_content_management_frameworks>
on which to build many different specific applications.
Here is the directory structure. It does not contain the files for brevity. It
looks much the same as a full Mojolicious application would look and as
described in L<Mojolicious::Guides::Growing/Differences>. One noticeable
difference is that Ado has it's starter script in C<bin> instead of in
lib/Ado/Manual/Intro.pod view on Meta::CPAN
â # modify if you want to override some of the system templates
âââ default
âââ doc
âââ layouts
âââ partials
âââ test
And here is how Ado looks as building blocks:
=for HTML <img src="https://raw.githubusercontent.com/kberov/Ado/master/public/img/Ado-Building-Blocks.png" />
To learn more about Ado plugins, please look at L<Ado::Manual::Plugins>.
Now that you know what additional features Ado provides, you can proceed to
L<Ado::Manual::Installation>.
=head1 SEE ALSO
L<Ado::Manual>, L<Ado::Manual::Installation>, L<Ado::Manual::Plugins>, L<Mojolicious::Guides>
lib/Ado/Manual/Plugins.pod view on Meta::CPAN
=head1 DESCRIPTION
C<@Ado::ISA=qw(Mojolicious)>. It is distributed together with a few plugins to
make it usable as a basic Mojolicious application. Theoretically all of the
plugins, distributed with L<Ado> could be disabled so you can start your project
only as a bare (I<but full>) L<Mojolicious> application, if you wish. Later you
can decide to enable some of them and eventually add (your own) L<Mojolicious>
or L<Ado> plugins. Here is how it looks.
=for HTML <img src="https://raw.githubusercontent.com/kberov/Ado/master/public/img/Ado-Building-Blocks.png" />
=head1 PLUGINS
Ado comes with the following default plugins. They can be used as examples and
for inspiration.
=over
=item * L<Ado::Plugin::AdoHelpers> - Default Ado helpers
lib/Ado/Manual/Plugins.pod view on Meta::CPAN
INSERT INTO blog(title,body,user_id,group_id)
VALUES('Hey You','Hello Universe',3,3);
=item * Generate the files for the plugin. These are the files which you will edit :).
$ cd ~/opt/public_dev
$ ado generate adoplugin -n Blog --crud -t blog
The above command will generate the needed files for an ado plugin which can
even be uploaded to and subsequently downloaded from
L<CPAN|http://www.cpan.org/>. L<CPAN> is the best open source dependency
management system. You can also use L<Stratopan|https://stratopan.com/> if you
wish.
=back
Ado uses L<Ado::Build> and L<Ado::BuildPlugin> which extend L<Module::Build>.
They were created to add some custom actions and handle the additional
C<templates>,C<log> and C<public> directories in Ado root folder.
The file tree looks like the following:
~/opt/public_dev/Ado-Plugin-Blog$ tree
lib/Ado/Manual/RESTAPI.pod view on Meta::CPAN
=head1 NAME
Ado::Manual::RESTAPI - all resources provided by Ado.
=head1 RESOURCES
This REST API was developed in an essay to get the best from the following ressources.
L<Web Linking|http://tools.ietf.org/html/rfc5988>,
L<Link Relations|http://www.iana.org/assignments/link-relations/link-relations.xhtml>,
L<http://www.restapitutorial.com/>
=cut
lib/Ado/Plugin/AdoHelpers.pm view on Meta::CPAN
}
return;
}
# render
my $css = '';
#everything in separate stylesheet begin end block or <link>
foreach my $a (@$assets_list) {
if ($a =~ $file_re) { # a file
$css .= qq|<link href="$a" rel='stylesheet' type='text/css' />\n|;
}
elsif (ref $a eq 'CODE') { # a code
$css .= $c->stylesheet($a) . $/;
}
else { # a string
$css .= $c->stylesheet(sub {$a}) . $/;
}
}
return $css;
}
lib/Ado/Plugin/AdoHelpers.pm view on Meta::CPAN
]);
%>
<!-- or -->
# or
% head_javascript begin
jQuery( function($){ $('#ado-img').popup() });
% end;
# render in templates/partials/head.html.ep
%== head_css;
<link href="css/ado.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Ubuntu&subset=latin,cyrillic'
rel='stylesheet' type='text/css' />
%== head_javascript;
=head2 to_json
Suitable for preparing JavaScript
objects from Perl references that will be used from stash and in templates.
my $chars = $c->to_json({name =>'ÐеÑÑÑ',id=>2});
$c->stash(user_as_js => $chars);
# in a javascript chunk of a template
lib/Ado/Plugin/MarkdownRenderer.pm view on Meta::CPAN
=head1 SPONSORS
The original author
Become a sponsor and help make L<Ado> the ERP for the enterprise!
=head1 SEE ALSO
L<Ado::Control::Doc>, L<Ado::Control::Articles>,
L<Text::MultiMarkdown>, L<http://fletcherpenney.net/multimarkdown/>,
L<MultiMarkdown Guide|https://rawgit.com/fletcher/human-markdown-reference/master/index.html>
L<Ado::Plugin>, L<Ado::Manual>.
=head1 AUTHOR
ÐÑаÑÐ¸Ð¼Ð¸Ñ ÐеÑов (Krasimir Berov)
=head1 COPYRIGHT AND LICENSE
Copyright 2013-2014 ÐÑаÑÐ¸Ð¼Ð¸Ñ ÐеÑов (Krasimir Berov).
lib/Ado/Sessions.pm view on Meta::CPAN
Retrieves the session id from a parameter or cookie defaulting to L<cookie_name>.
The C<cookie_name> can be set in C<ado.conf> section C<session>.
my $id = $self->session_id($c);
=head1 SEE ALSO
L<Mojolicious::Sessions>, L<Ado::Sessions::File>, L<Ado::Sessions::Database>,
L<Using CORS|http://www.html5rocks.com/en/tutorials/cors/>
=cut
public/doc/bg/img/default_admin_screen.epz view on Meta::CPAN
<?xml version="1.0"?>
<Document xmlns="http://www.evolus.vn/Namespace/Pencil"><Properties/><Pages><Page><Properties><Property name="name">Untitled Page</Property><Property name="id">1391472647609_5759</Property><Property name="width">980</Property><Property name="height">...
]]></p:property><p:property name="textFont"><![CDATA[Arial|normal|normal|13px|none]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textAlign"><![CDATA[1,1]]></p:property></p:metadata>
<defs>
<linearGradient x1="0%" y1="0%" x2="0%" y2="100%" p:name="linearFill" id="36be4582de964e90968b9d4a8d0823fa">
<stop style="stop-color: rgb(192, 192, 192); stop-opacity: 1;" offset="0" p:name="stop1" id="97ba4839a4a8438c832d3b69c28106b0"/>
<stop style="stop-color: rgb(255, 255, 255); stop-opacity: 1;" offset="1" p:name="stop2" id="4f79e103cdb646b8a85a0656bf5af6c8"/>
</linearGradient>
<rect width="1025" height="75" rx="0" ry="0" x="0" y="0" style="stroke-width: 2; fill: url("#36be4582de964e90968b9d4a8d0823fa") none; stroke: rgb(27, 50, 128); stroke-opacity: 1;" p:name="rrRect" id="65fcfb10486244958422f3bb...
<filter height="1.2558399" y="-0.12792" width="1.06396" x="-0.03198" p:name="shadingFilter" id="36fe3410734e42e0a6254778df8c1601">
<feGaussianBlur stdDeviation="1" in="SourceAlpha"/>
</filter>
</defs>
<use xlink:href="#65fcfb10486244958422f3bb02cdb947" xmlns:xlink="http://www.w3.org/1999/xlink" transform="translate(2, 2)" p:filter="url(#36fe3410734e42e0a6254778df8c1601)" style="opacity: 0.5; visibility: hidden; display: none;" p:heavy=...
<use xlink:href="#65fcfb10486244958422f3bb02cdb947" xmlns:xlink="http://www.w3.org/1999/xlink"/>
<foreignObject x="4.6875" y="38" width="1015.62" height="0" p:name="text" id="2590d4e6d9b8435ca672185452f3421e" style="font-family: Arial; font-size: 13px; font-weight: normal; font-style: normal; text-decoration: none; color: rgb(0, 0, 0...
</div></foreignObject>
</g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.NativeGUI:TabBox" id="6ff879e699b24995aa71b74c272f566f" transform="matrix(1,0,0,1,1,36)"><p:metadata><p:property name="box"...
<foreignObject x="0" y="0" width="976" height="506" p:name="htmlObject" id="66a6f4f3ef2e468b9e711d6f75acab97" style="font-family: "Liberation Sans",Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text...
<html:div xmlns:html="http://www.w3.org/1999/xhtml" style="-moz-box-sizing: border-box; overflow: hidden; position: relative; width: 976px; height: 506px;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" p:name="...
<tabbox flex="1" style="pointer-events: none; margin: 0px ! important; width: 976px; height: 506px; font-family: "Liberation Sans",Arial,sans-serif; font-size: 13px; font-weight: normal; font-style: normal; text-decorati...
<tabs p:name="tabs" id="72c551467bcc459aa1f0d9c6db590ff3"><tab label="УпÑавление" selected="true"/><tab label="СайÑ" selected="false"/><tab label="ÐокÑпки" selected="false"/><tab label="ÐÑодажби" sel...
<tabpanels flex="1">
<tabpanel/>
</tabpanels>
</tabbox>
<html:div style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"></html:div>
</html:div>
</foreignObject>
</g><g xmlns="http://www.w3.org/2000/svg" p:type="Shape" xmlns:p="http://www.evolus.vn/Namespace/Pencil" p:def="Evolus.NativeGUI:Listbox" id="211483412b4d45a2909ff2958f3e05c6" transform="matrix(1,0,0,1,1,60)"><p:metadata><p:property name="box...
ÐоÑÑебиÑели]]></p:property><p:property name="textColor"><![CDATA[#000000FF]]></p:property><p:property name="textFont"><![CDATA["Liberation Sans",Arial,sans-serif|normal|normal|13px|none]]></p:property></p:metadata>
<foreignObject x="0" y="0" width="140" height="478" p:name="htmlObject" id="b86902bea256473ebad2901ae3d49f8c" style="">
<html:div xmlns:html="http://www.w3.org/1999/xhtml" style="-moz-box-sizing: border-box; overflow: hidden; position: relative; font-size: 0px; width: 140px; height: 478px;" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.on...
<listbox style="margin: 0px ! important; min-width: 0px ! important; -moz-box-sizing: border-box; vertical-align: middle; width: 140px; height: 478px; font-family: "Liberation Sans",Arial,sans-serif; font-size: 13px; fon...
<html:div style="position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"></html:div>
</html:div>
</foreignObject>
</g></Content></Page></Pages></Document>
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
width="800"
height="600"
id="svg3774"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="Ado-Building-Blocks.svg"
inkscape:export-filename="/home/berov/opt/public_dev/Ado/public/img/Ado-Building-Blocks.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs3776" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70710678"
inkscape:cx="445.31657"
inkscape:cy="378.74227"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
inkscape:window-width="1329"
inkscape:window-height="744"
inkscape:window-x="37"
inkscape:window-y="24"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
orientation="1,0"
position="-80.610173,319.61227"
id="guide4704" />
</sodipodi:namedview>
<metadata
id="metadata3779">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
transform="translate(0,-168)">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:1.63876426000000008;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3782"
width="798.37067"
height="598.31671"
x="0.81465793"
y="168.84164"
ry="28.02034"
inkscape:export-xdpi="72"
inkscape:export-ydpi="72" />
<g
id="g4587"
transform="matrix(0.81466395,0,0,0.82412767,-18.737277,147.41433)">
<rect
ry="12.344703"
y="665.60278"
x="35.602814"
height="74.794373"
width="952.79437"
id="rect4552"
style="fill:none;stroke:#000000;stroke-width:1.20562422;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
sodipodi:linespacing="125%"
id="text4554"
y="715.87109"
x="132.35156"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="715.87109"
x="132.35156"
id="tspan4556"
sodipodi:role="line">Linux, Mac OSX, Free BSD, Windows...</tspan></text>
</g>
<rect
style="fill:none;stroke:#000000;stroke-width:0.7151494;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4560"
width="404.99161"
height="61.914406"
x="379.98889"
y="628.24036"
ry="10.218884" />
<g
id="g4582"
transform="matrix(0.81466395,0,0,0.82412767,-18.737277,147.41433)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.82433641;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4558"
width="443.17566"
height="75.175659"
x="35.41217"
y="583.41211"
ry="12.407634" />
<text
sodipodi:linespacing="125%"
id="text4562"
y="635.91205"
x="219.45117"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="635.91205"
x="219.45117"
id="tspan4564"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
<g
id="g4592"
transform="matrix(0.81466395,0,0,0.82412767,-18.737277,147.41433)">
<rect
style="fill:none;stroke:#000000;stroke-width:1.20562422;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4570"
width="952.79437"
height="74.794373"
x="35.602814"
y="497.60278"
ry="12.344703" />
<text
sodipodi:linespacing="125%"
id="text4572"
y="546.03516"
x="400.75"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="546.03516"
x="400.75"
id="tspan4574"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
<g
id="g4599"
transform="matrix(0.81466395,0,0,0.82412767,-18.737277,147.41433)">
<rect
ry="12.344703"
y="409.60278"
x="35.602814"
height="74.794373"
width="952.79437"
id="rect4576"
style="fill:none;stroke:#000000;stroke-width:1.20562422;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="77.723633"
y="456.93161"
id="text4578"
sodipodi:linespacing="125%"><tspan
style="font-size:36px"
sodipodi:role="line"
id="tspan4580"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
<g
id="g4706"
transform="matrix(0.81466395,0,0,0.82412767,-13.453267,147.41433)">
<rect
style="fill:none;stroke:#000000;stroke-width:2.65525556;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4597"
width="951.34473"
height="363.34473"
x="31.841515"
y="38.327599"
ry="59.969524" />
<text
transform="scale(1.2786835,0.78205437)"
sodipodi:linespacing="125%"
id="text4635"
y="482.72614"
x="46.371292"
style="font-size:37.7113533px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:60.3381691px;fill:#cccccc"
y="482.72614"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4663">
<rect
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4623"
width="135.02098"
height="348.02097"
x="46.456173"
y="45.989479"
ry="57.440357" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-372.00681"
y="123.8983"
id="text4639"
sodipodi:linespacing="125%"
transform="matrix(0,-1,1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan4641"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4676">
<rect
ry="57.440357"
y="45.989479"
x="204.49136"
height="348.02097"
width="135.02098"
id="rect4625"
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
transform="matrix(0,-1,1,0,0,0)"
sodipodi:linespacing="125%"
id="text4643"
y="281.9335"
x="-367.61227"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:36px"
y="281.9335"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4696">
<rect
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4627"
width="135.02098"
height="348.02097"
x="362.52655"
y="45.989479"
ry="57.440357" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-380.40427"
y="439.41693"
id="text4647"
sodipodi:linespacing="125%"
transform="matrix(0,-1,1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan4649"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4691">
<rect
ry="57.440357"
y="45.989479"
x="520.56177"
height="348.02097"
width="135.02098"
id="rect4629"
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
transform="matrix(0,-1,1,0,0,0)"
sodipodi:linespacing="125%"
id="text4651"
y="598.00391"
x="-378.30856"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:36px"
y="598.00391"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
<g
transform="matrix(1,0,0,0.85391604,0,6.7183252)"
id="g4686">
<rect
style="fill:none;stroke:#000000;stroke-width:0.97899681;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4631"
width="135.02098"
height="348.02097"
x="678.59692"
y="45.989479"
ry="57.440357" />
<text
xml:space="preserve"
style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-371.72165"
y="755.4873"
id="text4655"
sodipodi:linespacing="125%"
transform="matrix(0,-1,1,0,0,0)"><tspan
sodipodi:role="line"
id="tspan4657"
public/img/Ado-Building-Blocks.svg view on Meta::CPAN
y="755.4873"
style="font-size:34px">Ado::Plugin::Store</tspan></text>
</g>
<rect
style="fill:none;stroke:#000000;stroke-width:0.90466726;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect4633"
width="135.02098"
height="297.18069"
x="836.63208"
y="45.989479"
ry="49.049244" />
<text
xml:space="preserve"
style="font-size:36.96303177px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="-342.90289"
y="844.3244"
id="text4659"
sodipodi:linespacing="125%"
transform="matrix(0,-0.9240758,1.0821623,0,0,0)"><tspan
sodipodi:role="line"
id="tspan4661"
public/vendor/pagedown/LICENSE.txt view on Meta::CPAN
A javascript port of Markdown, as used on Stack Overflow
and the rest of Stack Exchange network.
Largely based on showdown.js by John Fraser (Attacklab).
Original Markdown Copyright (c) 2004-2005 John Gruber
<http://daringfireball.net/projects/markdown/>
Original Showdown code copyright (c) 2007 John Fraser
Modifications and bugfixes (c) 2009 Dana Robinson
Modifications and bugfixes (c) 2009-2013 Stack Exchange Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
public/vendor/pagedown/Markdown.Converter.js view on Meta::CPAN
// attacklab: hack around khtml/pcre bug...
[^\r]*? // any number of lines, minimally matching
.*</\2> // the matching end tag
[ \t]* // trailing spaces/tabs
(?=\n+) // followed by a newline
) // attacklab: there are sentinel newlines at end of document
/gm,function(){...}};
*/
text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm, hashElement);
// Special case just for <hr />. It was easier to make a special case than
// to make the other regex more complicated.
/*
text = text.replace(/
\n // Starting after a blank line
[ ]{0,3}
( // save in $1
(<(hr) // start tag = $2
\b // word break
([^<>])*?
public/vendor/pagedown/Markdown.Converter.js view on Meta::CPAN
//
// These are all the transformations that form block-level
// tags like paragraphs, headers, and list items.
//
text = pluginHooks.preBlockGamut(text, blockGamutHookCallback);
text = _DoHeaders(text);
// Do Horizontal Rules:
var replacement = "<hr />\n";
text = text.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm, replacement);
text = text.replace(/^[ ]{0,2}([ ]?-[ ]?){3,}[ \t]*$/gm, replacement);
text = text.replace(/^[ ]{0,2}([ ]?_[ ]?){3,}[ \t]*$/gm, replacement);
text = _DoLists(text);
text = _DoCodeBlocks(text);
text = _DoBlockQuotes(text);
text = pluginHooks.postBlockGamut(text, blockGamutHookCallback);
public/vendor/pagedown/Markdown.Converter.js view on Meta::CPAN
text = _DoCodeSpans(text);
text = _EscapeSpecialCharsWithinTagAttributes(text);
text = _EncodeBackslashEscapes(text);
// Process anchor and image tags. Images must come first,
// because ![foo][f] looks like an anchor.
text = _DoImages(text);
text = _DoAnchors(text);
// Make links out of things like `<http://example.com/>`
// Must come after _DoAnchors(), because you can use < and >
// delimiters in inline links like [this](<url>).
text = _DoAutoLinks(text);
text = text.replace(/~P/g, "://"); // put in place to prevent autolinking; reset now
text = _EncodeAmpsAndAngles(text);
text = _DoItalicsAndBold(text);
// Do hard breaks:
public/vendor/pagedown/Markdown.Converter.js view on Meta::CPAN
/g, writeImageTag);
*/
text = text.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g, writeImageTag);
return text;
}
function attributeEncode(text) {
// unconditionally replace angle brackets here -- what ends up in an attribute (e.g. alt or title)
// never makes sense to have verbatim HTML in it (and the sanitizer would totally break it)
return text.replace(/>/g, ">").replace(/</g, "<").replace(/"/g, """);
}
function writeImageTag(wholeMatch, m1, m2, m3, m4, m5, m6, m7) {
var whole_match = m1;
var alt_text = m2;
var link_id = m3.toLowerCase();
var url = m4;
var title = m7;
if (!title) title = "";
public/vendor/pagedown/Markdown.Converter.js view on Meta::CPAN
// attacklab: Markdown.pl adds empty title attributes to images.
// Replicate this bug.
//if (title != "") {
title = attributeEncode(title);
title = escapeCharacters(title, "*_");
result += " title=\"" + title + "\"";
//}
result += " />";
return result;
}
function _DoHeaders(text) {
// Setext-style headers:
// Header 1
// ========
//
public/vendor/pagedown/Markdown.Converter.js view on Meta::CPAN
// Encode/escape certain characters inside Markdown code runs.
// The point is that in code, these characters are literals,
// and lose their special Markdown meanings.
//
// Encode all ampersands; HTML entities are not
// entities within a Markdown code span.
text = text.replace(/&/g, "&");
// Do the angle bracket song and dance:
text = text.replace(/</g, "<");
text = text.replace(/>/g, ">");
// Now, escape characters that are magic in Markdown:
text = escapeCharacters(text, "\*_{}[]\\", false);
// jj the line above breaks this:
//---
//* Item
// 1. Subitem
public/vendor/pagedown/Markdown.Editor.js view on Meta::CPAN
link = link.replace(/\?.*$/, function (querypart) {
return querypart.replace(/\+/g, " "); // in the query string, a plus and a space are identical
});
link = decodeURIComponent(link); // unencode first, to prevent double encoding
link = encodeURI(link).replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29');
link = link.replace(/\?.*$/, function (querypart) {
return querypart.replace(/\+/g, "%2b"); // since we replaced plus with spaces in the query part, all pluses that now appear where originally encoded
});
if (title) {
title = title.trim ? title.trim() : title.replace(/^\s*/, "").replace(/\s*$/, "");
title = title.replace(/"/g, "quot;").replace(/\(/g, "(").replace(/\)/g, ")").replace(/</g, "<").replace(/>/g, ">");
}
return title ? link + ' "' + title + '"' : link;
});
}
commandProto.doLinkOrImage = function (chunk, postProcessing, isImage) {
chunk.trimWhitespace();
chunk.findTags(/\s*!?\[/, /\][ ]?(?:\n[ ]*)?(\[.*?\])?/);
var background;
templates/default/index_text.html+bg.ep view on Meta::CPAN
%# Using the "variant" feature to chose the template deppending on the current language.
%# This works well for landing pages with complex layouts.
%# See http://localhost:3000/perldoc/Mojolicious/Guides/Rendering#Template_variants
<img id="ado-img" class="ui rounded right floated image"
title="Ado â бÑÑзо Ñаздвижване, ÑÑмаÑоÑ
а"
src="/img/5FE59-ado.jpg" />
<p>
Ðко ÑеÑеÑе Ñози ÑекÑÑ Ð² бÑаÑзÑÑа Ñи, Ñова ознаÑава,
Ñе ÑобÑÑвеникÑÑ Ð½Ð° Ñози ÑÐ°Ð¹Ñ (вие?!?) е инÑÑалиÑал ÑÑпеÑно
<a href="<%=url_for('/perldoc/Ado')%>">Ado</a>. <i>ÐоздÑавлениÑ!</i>
Ðоже да иÑкаÑе да пÑоÑеÑеÑе обÑоÑо
<a href="<%=url_for("/help/$language/intro.md")%>">вÑведение</a>
пÑеди да пÑодÑлжиÑе.
</p>
<p>
Това е ÑÑÑаниÑаÑа на Ado, коÑÑо Ñе оÑваÑÑ Ð¿Ð¾ подÑазбиÑане, показана оÑ
templates/default/index_text.html+bg.ep view on Meta::CPAN
<i class="circular ado icon"></i>
</div>
<article class="ui footer small">
<h3>ÐÐТÐРСÐÐ ÐÐ ÐÐÐ Ð ÐÐЦÐÐÐ</h3>
<p>© 2013-2016 ÐÑаÑÐ¸Ð¼Ð¸Ñ ÐеÑов (Krasimir Berov).</p>
<p>
Тази пÑогÑама е Ñвободен ÑоÑÑÑеÑ. ÐожеÑе да Ñ ÑазпÑоÑÑÑанÑваÑа или да Ñ
пÑоменÑÑе пÑи ÑÑловиÑÑа на GNU Lesser General Public License v3 (LGPL-3.0).
ÐожеÑе да копиÑаÑе, ÑазпÑоÑÑÑанÑваÑе и пÑоменÑÑе ÑоÑÑÑеÑа ако пÑомениÑе ви
ÑÑÑо Ñа Ñ Ð¾ÑвоÑен код. ÐÑе пак ÑоÑÑÑеÑ, койÑо ÑÑдÑÑжа Ñози лиÑенз може да бÑде
издаван Ñ Ð´ÑÑг лиÑенз. <br /> Ðа повеÑе инÑоÑмаÑÐ¸Ñ Ð²Ð¸Ð¶Ñе
http://opensource.org/licenses/lgpl-3.0.html.
</p>
templates/default/index_text.html+de.ep view on Meta::CPAN
<img id="ado-img" class="ui rounded right floated image"
title="Ado â a rapid active commotion"
src="/img/5FE59-ado.jpg" />
<p>
Wenn Sie diese Seite über Ihren Browser lesen können,
hat der Admin dieser Website (Sie?!?) erfolgreich
<a href="<%=url_for('/perldoc/Ado')%>">Ado</a> installiert.
<i>Herzlichen Glückwunsch!</i>
Bitte lesen Sie zunächst die allgemeine
<a href="<%=url_for('/help/en/intro.md')%>">Einführung in Ado</a>.
</p>
<p>
Dies ist die Standard-Seite von Ado, die von
templates/default/index_text.html+de.ep view on Meta::CPAN
<i class="circular ado icon"></i>
</div>
<article class="ui footer small">
<h3>COPYRIGHT AND LICENSE</h3>
<p>© 2013-2016 ÐÑаÑÐ¸Ð¼Ð¸Ñ ÐеÑов (Krasimir Berov).</p>
<p>
This program is free software, you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License v3 (LGPL-3.0). You may
copy, distribute and modify the software provided that modifications are open
source. However, software that includes the license may release under a
different license.<br />
See http://opensource.org/licenses/lgpl-3.0.html for more information.
</p>
templates/default/index_text.html.ep view on Meta::CPAN
<img id="ado-img" class="ui rounded right floated image"
title="Ado â a rapid active commotion"
src="/img/5FE59-ado.jpg" />
<p>
If you read this text in your browser
it means the owner of this site (you?!?) successfully installed
<a href="<%=url_for('/perldoc/Ado')%>">Ado</a>. <i>Congratulations!</i>
You may want to read the general
<a href="<%=url_for('/help/en/intro.md')%>">introduction</a>
before going further.
</p>
<p>
This is the default Ado page produced by
templates/default/index_text.html.ep view on Meta::CPAN
<i class="circular ado icon"></i>
</div>
<article class="ui small footer">
<h3>COPYRIGHT AND LICENSE</h3>
<p>© 2013-2016 ÐÑаÑÐ¸Ð¼Ð¸Ñ ÐеÑов (Krasimir Berov).</p>
<p>
This program is free software, you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License v3 (LGPL-3.0). You may
copy, distribute and modify the software provided that modifications are open
source. However, software that includes the license may release under a
different license.<br />
See http://opensource.org/licenses/lgpl-3.0.html for more information.
</p>
templates/partials/head.html.ep view on Meta::CPAN
% #standart generic header for all pages
% state $description = $self->{stash}{description} || $self->description;
% state $keywords = $self->{stash}{keywords} || $self->keywords;
% state $base_url = url_for('/')->base;
<meta charset="utf-8" />
<base href="<%= $base_url %>" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="generator" content="<%= $self->generator %>" />
<meta name="description" content="<%= $description %>" />
<meta name="keywords" content="<%= $keywords %>" />
<title><%= title %></title>
<link rel="icon" href="<%=$base_url%>/favicon.png" type="image/png" />
%== head_css
<link href="css/ado.css" rel='stylesheet' type='text/css' />
<link href='//fonts.googleapis.com/css?family=Ubuntu&subset=latin,cyrillic' rel='stylesheet' type='text/css' />
%== head_javascript
templates/partials/login_form.html.ep view on Meta::CPAN
% if(stash->{error_login_name}) {
<div id="error_login_name" class="ui error message" style="display:block">
<%= stash->{error_login_name} %>
</div>
% }
</div>
</div>
<div class="field">
<label for="login_password"><%=l('login_password')%></label>
<div class="ui left labeled icon input">
<input type="password" name="login_password" id="login_password" required="" />
<i class="lock icon"></i>
<div class="ui corner label"><i class="icon asterisk"></i></div>
</div>
</div>
%= csrf_field
%= hidden_field 'digest'
<div class="ui center">
<button class="ui small green submit button"
type="submit"><%=l('Login')%></button>
</div>