Generate first chapter

This commit is contained in:
Mauricio Baeza 2021-10-16 23:39:52 -05:00
parent a050a1dfc5
commit 112f2e8633
502 changed files with 1390 additions and 247 deletions

View File

@ -1,6 +1,9 @@
#!/usr/bin/env python3
from pathlib import Path
import markdown
# https://github.com/FND/markdown-checklist
from markdown_checklist.extension import ChecklistExtension
OUTPUT_DIR = 'html'
@ -18,6 +21,40 @@ CHAPTERS = (
'troubleshooting',
'faq')
MD_EXTENSIONS = ['toc', 'meta', 'extra', 'footnotes', 'admonition', 'tables',
'attr_list', ChecklistExtension()]
TITLE = 'iRedMail Documentations'
LINK_INDEX = '&nbsp;&nbsp;//&nbsp;&nbsp;<a href="./index.html">Document Index</a>'
TEMPLATE = """<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>{title}</title>
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
</head>
<body>
<div id="navigation">
<a href="https://www.iredmail.org" target="_blank">
<img alt="iRedMail web site"
src="./images/logo-iredmail.png"
style="vertical-align: middle; height: 30px;"
/>&nbsp;
<span>iRedMail</span>
</a> {link_index}
</div>
{body}
<div class="footer">
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://github.com/iredmail/docs/archive/master.zip">download the latest version</a> for offline reading. If you found something wrong, please do <a href="https://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div>
</body>
</html>
"""
def _get_dir_languages(path):
FILE_NAME = '_lang.md'
@ -35,6 +72,17 @@ def _get_dir_languages(path):
return languages
def _get_content_dir(path):
files = sorted([p for p in Path(path).iterdir() if not '_summary' in str(p)])
title = files.pop(-1)
return files, title
def _get_target_name(path):
path_html = path.stem.split('-')[1].replace('.', '_') + '.html'
return path_html
def main():
current_dir = Path(__file__).parent
output_dir = current_dir / OUTPUT_DIR
@ -42,6 +90,41 @@ def main():
languages = _get_dir_languages(current_dir)
en = languages.pop('en_us')
index_md = []
for chapter in CHAPTERS:
path_chapter = en['path'] / chapter
files, file_title = _get_content_dir(path_chapter)
title_chapter = file_title.open(encoding='utf-8').readline()
index_md.append(f'### {title_chapter}')
index_md.append('')
for f in files:
name_html = _get_target_name(f)
path_html = OUTPUT_DIR + '/' + name_html
title = f.open(encoding='utf-8').readline()
index_md.append(f'- [{title[2:]}]({name_html})')
source = f.read_text(encoding='utf-8')
body = markdown.markdown(source, extensions=MD_EXTENSIONS)
data = dict(
title = title,
link_index = LINK_INDEX,
body = body
)
html = TEMPLATE.format(**data)
Path(path_html).write_text(html, encoding='utf-8')
index_md.append('')
break
path_html = OUTPUT_DIR + '/index.html'
body = markdown.markdown('\n'.join(index_md), extensions=MD_EXTENSIONS)
data = dict(
title = TITLE,
link_index = '',
body = body
)
html = TEMPLATE.format(**data)
Path(path_html).write_text(html, encoding='utf-8')
return

View File

@ -1,11 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>iRedMail Documentations</title>
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
</head>
<body>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>iRedMail Documentations</title>
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
</head>
<body>
<div id="navigation">
<a href="https://www.iredmail.org" target="_blank">
@ -14,246 +14,22 @@
style="vertical-align: middle; height: 30px;"
/>&nbsp;
<span>iRedMail</span>
</a>
</div><div class="admonition note">
<p class="admonition-title">Some tutorials have been translated to different languages. <a href="https://github.com/iredmail/docs">Help translate more</a></p>
<p><a href="./index-it_IT.html">Italiano</a> / <a href="./index-zh_CN.html">简体中文</a> / <a href="./index-es_MX.html">Español</a> /</p>
</div>
<h3 id="overview">Overview</h3>
</a>
</div>
<h3 id="overview">Overview</h3>
<ul>
<li><a href="./why.build.your.own.mail.server.html">Why build your own mail server instead of outsourcing to external entities</a></li>
<li><a href="./used.components.html">Major open source softwares used in iRedMail, and big picture of mail flow</a></li>
<li><a href="./network.ports.html">Which network ports are open by iRedMail</a></li>
<li><a href="why_build_your_own_mail_server.html">Why build your own mail server instead of outsourcing to external entities
</a></li>
<li><a href="used_components.html">Major open source softwares used in iRedMail
</a></li>
<li><a href="network_ports.html">Which network ports are open by iRedMail
</a></li>
</ul>
<h3 id="install">Install iRedMail</h3>
<ul>
<li><a href="./iredmail-easy.getting.start.html">Getting start with <strong>iRedMail Easy</strong></a> - meet our new deployment and support platform</li>
<li>Install iRedMail (with downloadable installer) on:<ul>
<li><a href="./install.iredmail.on.rhel.html">Red Hat Enterprise Linux, CentOS</a></li>
<li><a href="./install.iredmail.on.debian.ubuntu.html">Debian, Ubuntu</a></li>
<li><a href="./install.iredmail.on.freebsd.html">FreeBSD (without Jail)</a>, <a href="./install.iredmail.on.freebsd.with.jail.html">FreeBSD with Jail (ezjail)</a></li>
<li><a href="./install.iredmail.on.openbsd.html">OpenBSD</a></li>
</ul>
</li>
<li>After installation:<ul>
<li><a href="./setup.dns.html">Setup DNS records for your iRedMail server (A, PTR, MX, SPF, DKIM, DMARC)</a></li>
</ul>
</li>
<li>Additional installation tips<ul>
<li><a href="./install.iredmail.with.remote.mysql.server.html">Install iRedMail with a remote MySQL server</a></li>
<li><a href="./unattended.iredmail.installation.html">Perform silent/unattended iRedMail installation</a></li>
</ul>
</li>
<li><a href="./performance.tuning.html">Performance tuning for a busy server</a></li>
</ul>
<h3 id="mua">Configure mail client applications</h3>
<div class="admonition note">
<p class="admonition-title">Quick MUA Settings</p>
<ul>
<li>Login username of SMTP/POP3/IMAP services must be full email address.</li>
<li>POP3 service: port 110 over STARTTLS (recommended), or port 995 with SSL.</li>
<li>IMAP service: port 143 over STARTTLS (recommended), or port 993 with SSL.</li>
<li>SMTP service: port 587 over STARTTLS. If you need to support old mail clients with SMTP over SSL (port 465), please check our tutorial: <a href="https://docs.iredmail.org/enable.smtps.html">Enable SMTPS service (SMTP over SSL, port 465)</a>.</li>
<li>CalDAV and CardDAV server addresses: <code>https://&lt;server&gt;/SOGo/dav/&lt;full email address&gt;</code></li>
</ul>
</div>
<ul>
<li><a href="activesync.android.html">Exchange ActiveSync: Setup Android devices</a></li>
<li><a href="activesync.bb10.html">Exchange ActiveSync: Setup BlackBerry 10 devices</a></li>
<li><a href="activesync.ios.html">Exchange ActiveSync: Setup iOS devices</a></li>
<li><a href="activesync.outlook.html">Exchange ActiveSync: Setup Outlook 2013 for Windows</a></li>
<li><a href="configure.thunderbird.html">Setup Thunderbird: POP3/IMAP, SMTP and global ldap address book</a></li>
<li><a href="thunderbird.sogo.html">Setup Thunderbird: SOGo Address Book and Calendar synchronization with CardDAV and CalDAV</a></li>
<li><a href="sogo.macosx.contacts.html">Mac OS X: Add contact service (CardDAV) in Contacts.app</a></li>
<li><a href="sogo.macosx.icalendar.html">Mac OS X: Add calendar (CalDAV) and task (Reminders) service in iCalendar.app</a></li>
</ul>
<h3 id="upgrade">Release notes and upgrade tutorials</h3>
<ul>
<li><a href="iredmail.releases.html">iRedMail release notes and upgrade tutorials</a></li>
<li><a href="iredadmin-pro.releases.html">iRedAdmin-Pro (web-based admin panel) release notes and upgrade tutorials</a></li>
<li><a href="iredapd.releases.html">iRedAPD (Postfix Access Policy Daemon) release notes and upgrade tutorials</a></li>
<li><a href="upgrade.mlmmjadmin.html">mlmmjadmin upgrade tutorial (RESTful API server used to manage mlmmj mailing list)</a></li>
</ul>
<h3 id="easy"><strong>iRedMail Easy</strong> - Web-based Deployment, Upgrade and Tech Support Platform</h3>
<ul>
<li><a href="iredmail-easy.getting.start.html">iRedMail Easy: Getting start</a></li>
<li><a href="iredmail-easy.best.practice.html">iRedMail Easy: Best Practice</a></li>
<li><a href="iredmail-easy.faq.html">iRedMail Easy: FAQ</a></li>
<li><a href="iredmail-easy.release.notes.html">iRedMail Easy: Release Notes</a></li>
<li><a href="migrate.to.iredmail.easy.html">iRedMail Easy: Migrate from iRedMail to iRedMail Easy platform</a></li>
<li><a href="iredmail-easy.unsubscribe.html">iRedMail Easy: How to cancel your subscription</a></li>
<li><a href="iredmail-easy.autoconfig.autodiscover.html">iRedMail Easy: Setup DNS records for autoconfig and autodiscover</a></li>
<li><a href="iredmail-easy.setup.sudo.html">iRedMail Easy: Setup sudo for deployment</a></li>
<li><a href="iredmail-easy.what.is.ssh.jump.server.html">iRedMail Easy: What is SSH jump server</a></li>
</ul>
<h3 id="migration">Migrations</h3>
<ul>
<li><a href="migrate.to.new.iredmail.server.html">Migrate old iRedMail server to the latest stable release</a></li>
<li><a href="password.hashes.html">Password hashes</a></li>
<li><a href="cluebringer.to.iredapd.html">Migrate from Cluebringer to iRedAPD</a></li>
</ul>
<h3 id="howto">How to</h3>
<ul>
<li><a href="allow.certain.users.to.send.email.as.different.user.html">Allow certain users to send email as another user</a></li>
<li><a href="change.mail.attachment.size.html">Change mail attachment size</a></li>
<li><a href="completely.disable.amavisd.clamav.spamassassin.html">Completely disable Amavisd + ClamAV + SpamAssassin</a></li>
<li><a href="enable.smtp.auth.on.port.25.html">Enable SMTP SASL AUTH on port 25</a></li>
<li><a href="enable.smtps.html">Enable SMTPS service (SMTP over SSL, port 465)</a></li>
<li><a href="disable.spam.virus.scanning.for.outgoing.mails.html">Disable spam virus scanning for outgoing mails</a></li>
<li><a href="no.x-spam.headers.html">Amavisd + SpamAssassin not working? no mail header (X-Spam-*) inserted</a></li>
<li><a href="quarantine.clean.mails.per-user.html">Quarantine clean emails sent from/to certain local user</a></li>
<li><a href="quarantining.html">Quarantining</a></li>
<li><a href="sign.dkim.signature.for.new.domain.html">Sign DKIM signature on outgoing emails for new mail domain</a></li>
<li><a href="allow.insecure.pop3.imap.smtp.connections.html">Allow insecure POP3/IMAP/SMTP connections without STARTTLS</a></li>
<li><a href="additional.smtp.port.html">Allow internal network devices to send email with insecure connection</a></li>
<li><a href="allow.member.to.send.email.as.mail.list.html">Allow member to send email as mailing list or mail alias</a></li>
<li><a href="allow.send.without.smtp.auth.html">Allow some user to send email without smtp authentication</a></li>
<li><a href="amavisd.per-recipient.policy.lookup.html">Amavisd: Enable per-recipient policy lookup</a></li>
<li><a href="authenticate.without.domain.name.html">Authenticate without domain part in email address</a></li>
<li><a href="backupmx.html">How to mark a mail domain as backup MX</a></li>
<li><a href="change.mailbox.format.html">Change per-user mailbox format (e.g. maildir, mdbox)</a></li>
<li><a href="change.server.hostname.html">Change server hostname</a></li>
<li><a href="concurrent.processing.html">Process more emails concurrently</a></li>
<li><a href="dovecot.imapsieve.html">Auto learn spam/ham with Dovecot <code>imap_sieve</code> plugin</a></li>
<li><a href="dovecot.master.user.html">Dovecot Master User: Access user's mailbox without owner's password.</a></li>
<li><a href="enable.dnsbl.html">Enable DNSBL service in Postfix to reduce spam</a></li>
<li><a href="enable.postscreen.html">Enable postscreen service</a></li>
<li><a href="fail2ban.sql.html">Fail2ban: Store banned IP addresses in SQL database</a></li>
<li><a href="force.user.to.change.password.html">Force mail user to change password in 90 days</a></li>
<li><a href="ignore.trash.folder.in.quota.html">Ignore Trash folder in mailbox quota</a></li>
<li><a href="ldap.add.alias.domain.html">LDAP: Add an alias domain</a></li>
<li><a href="ldap.add.catch-all.html">LDAP: Add per-domain catch-all account</a></li>
<li><a href="ldap.add.mail.alias.html">LDAP: Add a mail alias account</a></li>
<li><a href="ldap.add.mail.list.html">LDAP: Add a (unsubscribeable) mailing list</a></li>
<li><a href="ldap.bulk.create.mail.users.html">LDAP: Bulk create mail users</a></li>
<li><a href="ldap.user.mail.forwarding.html">LDAP: User mail forwarding</a></li>
<li><a href="letsencrypt.html">Request a free cert from Let's Encrypt</a></li>
<li><a href="mailbox.sharing.html">Mailbox sharing (Sharing IMAP folder with other users)</a></li>
<li><a href="manage.iredapd.html">Manage iRedAPD (white/blacklists, greylisting, throttling and more)</a></li>
<li><a href="manage.subscribeable.mailing.lists.html">Manage subscribeable mailing lists</a></li>
<li><a href="monitor.incoming.and.outgoing.mails.with.bcc.html">Monitor incoming and outgoing mails with BCC</a></li>
<li><a href="move.detected.spam.to.junk.folder.html">Move detected spam to Junk folder</a></li>
<li><a href="per-account.transport.html">Per-domain or per-user transport (relay)</a></li>
<li><a href="pipe.incoming.email.for.certain.user.to.external.script.html">Pipe incoming email for certain user to external script</a></li>
<li><a href="promote.user.to.be.global.admin.html">Promote a mail user to be global admin</a></li>
<li><a href="public.folder.html">How to create and manage public folder</a></li>
<li><a href="recalculate.mailbox.quota.html">Force Dovecot to recalculate mailbox quota</a></li>
<li><a href="relayhost.html">Setup relayhost</a></li>
<li><a href="reset.user.password.html">Reset user password</a></li>
<li><a href="restrict.mail.user.to.login.from.specified.ip.or.networks.html">Restrict mail user to login from specified IP addresses or networks</a></li>
<li><a href="send.out.email.from.specified.ip.addresses.html">Send out email from specified IP address</a></li>
<li><a href="sign.disclaimer.html">Sign disclaimer on outgoing mails</a></li>
<li><a href="sogo.free.busy.html">SOGo: per-user free/busy availability</a></li>
<li><a href="sogo.manage.resources.html">SOGo: Manage resources</a></li>
<li><a href="sql.add.alias.domain.html">SQL: Add an alias domain</a></li>
<li><a href="sql.create.catch-all.html">SQL: Add per-domain catch-all account</a></li>
<li><a href="sql.create.mail.alias.html">SQL: Add a mail alias account</a></li>
<li><a href="sql.create.mail.user.html">SQL: Create new mail user</a></li>
<li><a href="sql.user.mail.forwarding.html">SQL: User mail forwarding</a></li>
<li><a href="srs.html">Enable SRS (Sender Rewriting Scheme) support</a></li>
<li><a href="store.spamassassin.bayes.in.sql.html">Store SpamAssassin bayes in SQL</a></li>
<li><a href="subdomain.web.apps.html">Run web applications under subdomain with Nginx</a></li>
<li><a href="track.user.last.login.html">Track user last login time</a></li>
<li><a href="upgrade.debian.10-11.html">Fixes you need after upgrading Debian from 10 to 11</a></li>
<li><a href="upgrade.debian.8-9.html">Fixes you need after upgrading Debian from 8 to 9</a></li>
<li><a href="upgrade.debian.9-10.html">Fixes you need after upgrading Debian from 9 to 10</a></li>
<li><a href="upgrade.dovecot.2.2-2.3.html">Upgrade Dovecot from 2.2.x to 2.3.x</a></li>
<li><a href="upgrade.netdata.html">How to upgrade netdata</a></li>
<li><a href="upgrade.sogo.4.to.5.html">Upgrade SOGo from v4 to v5</a></li>
<li><a href="upgrade.ubuntu.14.04-16.04.html">Fixes you need after upgrading Ubuntu from 14.04 to 16.04</a></li>
<li><a href="upgrade.ubuntu.18.04-20.04.html">Upgrade Ubuntu from 18.04 to 20.04</a></li>
<li><a href="use.a.bought.ssl.certificate.html">Use a bought SSL certificate</a></li>
<li><a href="use.openldap.as.address.book.in.outlook.html">Use OpenLDAP as address book in Microsoft Outlook</a></li>
<li><a href="user.alias.address.html">Per-user alias address</a></li>
<li><a href="webmail.customization.html">Webmail customization</a></li>
</ul>
<p>Documents contributed by iRedMail users:</p>
<ul>
<li><a href="https://forum.iredmail.org/topic8169-iredmail-support-antispam-via-dovecot-and-spamassassin.html">Anti-spam with Dovecot antispam plugin and SpamAssassin</a>, contributed by Dexus.</li>
</ul>
<h3 id="integration">Third-party integrations</h3>
<p>Below tutorials are maintained by iRedMail project.</p>
<ul>
<li>
<p><a href="active.directory.html">Integrate Microsoft Active Directory for user authentication and address book</a></p>
</li>
<li>
<p><a name="integration_mlmmj"></a>Integrate mlmmj mailing list manager (mlmmj is a required core component since iRedMail-0.9.8):</p>
<ul>
<li><a href="./integration.mlmmj.ldap.html">For LDAP backends</a></li>
<li><a href="./integration.mlmmj.mysql.html">For MySQL/MariaDB backend</a></li>
<li><a href="./integration.mlmmj.pgsql.html">For PostgreSQL backend</a></li>
</ul>
</li>
<li>
<p><a name="integration_netdata"></a>Integrate netdata monitor (netdata is an optional component since iRedMail-0.9.8):</p>
<ul>
<li><a href="./integration.netdata.linux.html">For Linux</a></li>
<li><a href="./integration.netdata.freebsd.html">For FreeBSD</a></li>
<li>netdata doesn't work on OpenBSD (yet).</li>
</ul>
</li>
<li>
<p>Install SOGo groupware on:</p>
<ul>
<li>CentOS 6: <a href="./sogo-centos-6-mysql.html">MySQL</a>, <a href="./sogo-centos-6-openldap.html">OpenLDAP</a>.</li>
</ul>
</li>
</ul>
<p>Documents contributed by iRedMail users:</p>
<ul>
<li><a href="http://www.murat.ws/openfire-iredmail-yapilandirmasi/">Integreate OpenFire in iRedMail (MySQL backend)</a> (Turkish)</li>
<li><a href="https://extremeshok.com/6622/enabling-apache-solr-4-10-using-jetty-with-dovecot-2-2-for-fulltext-search-results-on-centos-6-iredmail-compatible/">Enabling Apache Solr 4.10 (using jetty) with Dovecot 2.2 for fulltext search results on Centos 6 (iRedMail compatible)</a></li>
<li><a href="http://www.howtoforge.com/installing-iredmail-and-mailman-on-debian-squeeze">Install iRedMail and Mailman on Debian Squeeze</a>. Howtoforge tutorial, contributed by Jason Norwood-Young.</li>
<li><a href="./dbmail.mysql.centos.html">Integrate DBMail in iRedMail (MySQL backend), CentOS</a></li>
<li><a href="https://forum.iredmail.org/topic2147-highavailability-maildir-storage-with-glusterfs-centos-5x.html">High-Availability Maildir Storage With GlusterFS + CentOS 5.x</a>, contributed by Basem Hegazy. 2011-06-26</li>
<li><a href="https://www.howtoforge.com/using-iredmail-and-openvpn-for-virtual-email-hosting-and-vpn-services-centos-5.4">Integrate OpenVPN in iRedMail with OpenLDAP</a>, Howtoforge tutorial.</li>
<li><a href="./ejabberd.openldap.ubuntu.html">Integrate Ejabberd in iRedMail with OpenLDAP</a></li>
</ul>
<h3 id="cluster">Cluster</h3>
<p>Documents contributed by iRedMail users:</p>
<ul>
<li><a href="./haproxy.keepalived.glusterfs.html">Build an iRedMail fail-over Cluster with KeepAlived, HAProxy, GlusterFS, OpenLDAP, Mariadb</a>, contributed by Setyo Prayitno</li>
<li><a href="http://pastebin.com/JcYeQBrX">An Ultra-HA, full Mult-Master E-mail cluster with iRedMail, MariaDB, and IPVS</a>, contributed by Joshua Boniface.</li>
</ul>
<h3 id="iredadmin">iRedAdmin-Pro</h3>
<ul>
<li><a href="iredadmin-pro.custom.ban.rules.html">iRedAdmin-Pro: Custom (Amavisd) ban rules</a></li>
<li><a href="iredadmin-pro.custom.base.url.html">iRedAdmin-Pro: Custom base url (/iredadmin)</a></li>
<li><a href="iredadmin-pro.customize.maildir.path.html">iRedAdmin-Pro: Customize maildir path</a></li>
<li><a href="iredadmin-pro.custom.logo.html">iRedAdmin-Pro: Custom logo image, brand name, short product description</a></li>
<li><a href="iredadmin-pro.custom.user.services.html">iRedAdmin-Pro (LDAP backend): Add and manage custom services for mail user</a></li>
<li><a href="iredadmin-pro.default.password.policy.html">iRedAdmin-Pro: Default password restrictions</a></li>
<li><a href="iredadmin-pro.domain.ownership.verification.html">iRedAdmin-Pro: Domain ownership verification</a></li>
<li><a href="iredadmin-pro.restful.api.html">iRedAdmin-Pro: RESTful API</a></li>
<li><a href="iredadmin-pro.self-service.html">iRedAdmin-Pro: Enable self-service to allow users to manage their own preferences and more</a></li>
<li><a href="iredadmin-pro.set.a.proper.timezone.html">iRedAdmin-Pro: Set a proper time zone</a></li>
<li><a href="iredadmin-pro.spam.policy.priority.html">iRedAdmin-Pro: Priority of spam policy used in iRedMail &amp; iRedAdmin-Pro</a></li>
<li><a href="iredadmin-pro.subscribable.mailing.list.html">iRedAdmin-Pro: Subscribable mailing list</a></li>
<li><a href="translate.iredadmin.html">iRedAdmin: Translate iRedAdmin to your local language</a></li>
</ul>
<h3 id="troubleshooting">Troubleshooting and Debug</h3>
<ul>
<li><a href="debug.amavisd.html">Turn on debug mode in Amavisd and SpamAssassin</a></li>
<li><a href="debug.dovecot.html">Turn on debug mode in Dovecot</a></li>
<li><a href="debug.fail2ban.html">Turn on debug logging in Fail2ban</a></li>
<li><a href="debug.iredapd.html">Turn on debug mode in iRedAPD</a></li>
<li><a href="debug.mysql.html">Log executed SQL commands in MySQL/MariaDB</a></li>
<li><a href="debug.nginx.html">Turn on debug mode in Nginx</a></li>
<li><a href="debug.openldap.html">Turn on debug mode in OpenLDAP</a></li>
<li><a href="debug.postfix.html">Turn on debug mode in Postfix</a></li>
<li><a href="debug.roundcubemail.html">Turn on debug mode in Roundcube webmail</a></li>
<li><a href="debug.sogo.html">Turn on debug mode in SOGo</a></li>
</ul>
<h3 id="faq">Frequently Asked Questions</h3>
<ul>
<li><a href="errors.html">Errors you may see while maintaining iRedMail server</a></li>
<li><a href="why.append.timestamp.in.maildir.path.html">Why append timestamp in maildir path</a></li>
<li><a href="amavisd.sql.db.html">Explanation of Amavisd SQL database</a></li>
<li><a href="backup.restore.html">Backup and restore</a></li>
<li><a href="file.locations.html">Locations of configuration and log files of major components</a></li>
<li><a href="openldap.intro.html">Introduce the OpenLDAP server configured by iRedMail</a></li>
<li><a href="why.no.sieve.support.in.sogo.html">Why no sieve support (Vacation, Forwarding) in SOGo Groupware</a></li>
</ul><div class="footer">
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://github.com/iredmail/docs/archive/master.zip">download the latest version</a> for offline reading. If you found something wrong, please do <a href="https://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div></body></html>
<div class="footer">
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://github.com/iredmail/docs/archive/master.zip">download the latest version</a> for offline reading. If you found something wrong, please do <a href="https://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div>
</body>
</html>

265
html/network_ports.html Normal file
View File

@ -0,0 +1,265 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title># Which network ports are open by iRedMail
</title>
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
</head>
<body>
<div id="navigation">
<a href="https://www.iredmail.org" target="_blank">
<img alt="iRedMail web site"
src="./images/logo-iredmail.png"
style="vertical-align: middle; height: 30px;"
/>&nbsp;
<span>iRedMail</span>
</a> &nbsp;&nbsp;//&nbsp;&nbsp;<a href="./index.html">Document Index</a>
</div>
<h1 id="which-network-ports-are-open-by-iredmail">Which network ports are open by iRedMail</h1>
<table>
<thead>
<tr>
<th>Port</th>
<th>Service</th>
<th>Software</th>
<th>Comment</th>
<th>Allow Public Access?</th>
</tr>
</thead>
<tbody>
<tr>
<td>25</td>
<td>smtp</td>
<td>Postfix</td>
<td>Used for communication betweem mail servers. <strong>WARNING</strong>: This port <strong>MUST</strong> be open, otherwise you cannot receive email sent by other mail servers.</td>
<td><strong class="red">YES (REQUIRED)</strong></td>
</tr>
<tr>
<td>587</td>
<td>submission</td>
<td>Postfix</td>
<td>SMTP over TLS. Used by end users to send/submit email.</td>
<td>YES (open to your end users)</td>
</tr>
<tr>
<td>110</td>
<td>pop3</td>
<td>Dovecot</td>
<td>Used by end users to retrieve emails via POP3 protocol, secure connection over STARTTLS is enforced by default.</td>
<td>YES (open to your end users)</td>
</tr>
<tr>
<td>995</td>
<td>pop3s</td>
<td>Dovecot</td>
<td>Used by end users to retrieve emails via POP3 protocol over SSL.</td>
<td>YES (open to your end users)</td>
</tr>
<tr>
<td>143</td>
<td>imap</td>
<td>Dovecot</td>
<td>Used by end users to retrieve emails via IMAP protocol, secure connection over STARTTLS is enforced by default.</td>
<td>YES (open to your end users)</td>
</tr>
<tr>
<td>993</td>
<td>imaps</td>
<td>Dovecot</td>
<td>Used by end users to retrieve emails via IMAP protocol over SSL.</td>
<td>YES (open to your end users)</td>
</tr>
<tr>
<td>24</td>
<td>lmtp</td>
<td>Dovecot</td>
<td>Used to deliver email to local mailboxes via LMTP protocol.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>4190</td>
<td>managesieve</td>
<td>Dovecot</td>
<td>Sieve service used by end users to manage mail filters. Note: in old iRedMail releases, it's port 2000 (deprecated and not even listed in <code>/etc/services</code> file).</td>
<td>NO (disabled by default and users are forced to manage mail filters with webmail)</td>
</tr>
<tr>
<td>80</td>
<td>http</td>
<td>Apache/Nginx</td>
<td>Web service. Redirect to https by default.</td>
<td>YES (open to your webmail users)</td>
</tr>
<tr>
<td>443</td>
<td>https</td>
<td>Apache/Nginx</td>
<td>Web service over over SSL, secure connection.</td>
<td>YES (open to your webmail and ActiveSync users)</td>
</tr>
<tr>
<td>3306</td>
<td>mysql</td>
<td>MySQL/MariaDB</td>
<td>MySQL/MariaDB database service</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>5432</td>
<td>postgresql</td>
<td>PostgreSQL</td>
<td>PostgreSQL database service</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>389</td>
<td>ldap</td>
<td>OpenLDAP (or OpenBSD ldapd)</td>
<td>LDAP service, STARTTLS is available for secure connection.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>636</td>
<td>ldaps</td>
<td>OpenLDAP (or OpenBSD ldapd)</td>
<td>LDAP service over SSL. Deprecated, port 389 with STARTTLS is recommended.</td>
<td>NO (Not enabled by default)</td>
</tr>
<tr>
<td>10024</td>
<td></td>
<td>Amavisd-new</td>
<td>Used to scan inbound messages, includes spam/virus scanning, DKIM verification, applying spam policy.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>10025</td>
<td>smtp</td>
<td>Postfix</td>
<td>Used by Amavisd to inject scanned emails back to Postfix queue.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>10026</td>
<td></td>
<td>Amavisd-new</td>
<td>Used to scan outbound messages, includes spam/virus scanning, DKIM signing, applying spam policy.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>10027</td>
<td></td>
<td>Amavisd-new</td>
<td>Used by mlmmj mailing list manager, it bypasses spam/virus/header/banned checks by default, but have DKIM signing enabled.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>10028</td>
<td></td>
<td>Postfix</td>
<td>Used by Amavisd-new to handle email message sent by mlmmj mailing list manager. Introduced in iRedMail-0.9.9.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>9998</td>
<td></td>
<td>Amavisd-new</td>
<td>Used to manage quarantined emails.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>7777</td>
<td></td>
<td>iRedAPD</td>
<td>Postfix policy service for greylisting, whitelisting, blacklists, throttling, etc</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>7778</td>
<td></td>
<td>iRedAPD</td>
<td><a href="https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme">SRS</a> sender address rewritting.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>7779</td>
<td></td>
<td>iRedAPD</td>
<td><a href="https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme">SRS</a> recipient address rewritting.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>7790</td>
<td>http</td>
<td>mlmmjadmin</td>
<td>RESTful API server used to manage mlmmj mailing lists. Introduced in iRedMail-0.9.8.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>7791</td>
<td>http</td>
<td>iredadmin</td>
<td>iRedAdmin (standalone uwsgi instance). Introduced in iRedMail-0.9.9.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>20000</td>
<td></td>
<td>SOGo</td>
<td>SOGo groupware</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>11211</td>
<td></td>
<td>Memcached</td>
<td>A distributed, high performance memory object caching system. Currently used by only SOGo Groupware.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>12340</td>
<td></td>
<td>Dovecot</td>
<td>Dovecot quota status. Introduced in iRedMail-1.0.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>24242</td>
<td></td>
<td>Dovecot</td>
<td>Dovecot service status. Introduced in iRedMail-0.9.8.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
<tr>
<td>19999</td>
<td></td>
<td>Netdata</td>
<td>Netdata monitor. Introduced in iRedMail-0.9.8.</td>
<td>NO (listen on <code>127.0.0.1</code> by default)</td>
</tr>
</tbody>
</table>
<div class="admonition note">
<p class="admonition-title">Note</p>
<ul>
<li>
<p>In iRedMail-0.9.2 and earlier releases, Policyd or Cluebringer listens on
port 10031. They have been removed in iRedMail-0.9.3, and replaced by
iRedAPD.</p>
</li>
<li>
<p>Port 465, a.k.a. SMTP over SSL, has been deprecated for years. Please use
port 587 instead.</p>
</li>
</ul>
</div>
<div class="footer">
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://github.com/iredmail/docs/archive/master.zip">download the latest version</a> for offline reading. If you found something wrong, please do <a href="https://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div>
</body>
</html>

114
html/used_components.html Normal file
View File

@ -0,0 +1,114 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title># Major open source softwares used in iRedMail
</title>
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
</head>
<body>
<div id="navigation">
<a href="https://www.iredmail.org" target="_blank">
<img alt="iRedMail web site"
src="./images/logo-iredmail.png"
style="vertical-align: middle; height: 30px;"
/>&nbsp;
<span>iRedMail</span>
</a> &nbsp;&nbsp;//&nbsp;&nbsp;<a href="./index.html">Document Index</a>
</div>
<h1 id="major-open-source-softwares-used-in-iredmail">Major open source softwares used in iRedMail</h1>
<div class="toc">
<ul>
<li><a href="#major-open-source-softwares-used-in-iredmail">Major open source softwares used in iRedMail</a><ul>
<li><a href="#used-components">Used Components</a></li>
<li><a href="#the-big-picture">The Big Picture</a></li>
<li><a href="#mail-flow-of-inbound-emails">Mail Flow of Inbound Emails</a></li>
<li><a href="#mail-flow-of-outbound-emails">Mail Flow of Outbound Emails</a></li>
<li><a href="#see-also">See also</a></li>
</ul>
</li>
</ul>
</div>
<h2 id="used-components">Used Components</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Comment</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://www.postfix.org">Postfix</a></td>
<td>Mail Transfer Agent (MTA)</td>
</tr>
<tr>
<td><a href="http://www.dovecot.org">Dovecot</a></td>
<td>POP3, IMAP and Managesieve server</td>
</tr>
<tr>
<td><a href="http://www.nginx.org">Nginx</a>, <a href="http://nginx.org">Nginx</a></td>
<td>Web server</td>
</tr>
<tr>
<td><a href="http://www.openldap.org">OpenLDAP</a>, <a href="http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/ldapd.8?query=ldapd&amp;arch=i386">ldapd(8)</a></td>
<td>LDAP server, used for storing mail accounts (optional)</td>
</tr>
<tr>
<td><a href="http://www.mysql.com">MySQL</a>, <a href="https://mariadb.org">MariaDB</a>, <a href="http://www.postgresql.org">PostgreSQL</a></td>
<td>SQL server used to store application data. Could be used to store mail accounts too.</td>
</tr>
<tr>
<td><a href="http://mlmmj.org">mlmmj</a></td>
<td>Mailing list manager. Shipped in iRedMail-0.9.8 and later releases.</td>
</tr>
<tr>
<td><a href="http://www.amavis.org">Amavisd-new</a></td>
<td>Interface between Postfix and SpamAssassin, ClamAV.</td>
</tr>
<tr>
<td><a href="http://spamassassin.apache.org">SpamAssassin</a></td>
<td>Content-based spam scanner</td>
</tr>
<tr>
<td><a href="http://www.clamav.net/">ClamAV</a></td>
<td>Virus scanner</td>
</tr>
<tr>
<td><a href="http://roundcube.net">Roundcube webmail</a></td>
<td>Webmail (PHP)</td>
</tr>
<tr>
<td><a href="http://sogo.nu">SOGo Groupware</a></td>
<td>A groupware which provides calendar (CalDAV), contact (CardDAV), tasks and ActiveSync services</td>
</tr>
<tr>
<td><a href="http://www.fail2ban.org">Fail2ban</a></td>
<td>Scans log files and bans IPs that show the malicious signs</td>
</tr>
<tr>
<td><a href="https://github.com/iredmail/iRedAPD/">iRedAPD</a></td>
<td>A simple postfix policy server developed by iRedMail team, with SRS (Sender Rewrite Scheme) support.</td>
</tr>
</tbody>
</table>
<h2 id="the-big-picture">The Big Picture</h2>
<p><img alt="" src="./images/big.picture.png" /></p>
<h2 id="mail-flow-of-inbound-emails">Mail Flow of Inbound Emails</h2>
<p><img alt="" src="./images/flow.inbound.png" /></p>
<h2 id="mail-flow-of-outbound-emails">Mail Flow of Outbound Emails</h2>
<p><img alt="" src="./images/flow.outbound.png" /></p>
<h2 id="see-also">See also</h2>
<ul>
<li><a href="./file.locations.html">Locations of configuration and log files of major components</a></li>
<li><a href="./network.ports.html">Which network ports are open by iRedMail</a></li>
</ul>
<div class="footer">
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://github.com/iredmail/docs/archive/master.zip">download the latest version</a> for offline reading. If you found something wrong, please do <a href="https://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div>
</body>
</html>

View File

@ -0,0 +1,72 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title># Why build your own mail server instead of outsourcing to external entities
</title>
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
</head>
<body>
<div id="navigation">
<a href="https://www.iredmail.org" target="_blank">
<img alt="iRedMail web site"
src="./images/logo-iredmail.png"
style="vertical-align: middle; height: 30px;"
/>&nbsp;
<span>iRedMail</span>
</a> &nbsp;&nbsp;//&nbsp;&nbsp;<a href="./index.html">Document Index</a>
</div>
<h1 id="why-build-your-own-mail-server-instead-of-outsourcing-to-external-entities">Why build your own mail server instead of outsourcing to external entities</h1>
<p>Quote from <a href="http://www.spamhaus.org/news/article/719/a-survival-guide-for-the-small-mail-server">Spamhaus news article</a>:</p>
<blockquote>
<p>outsourcing (the mail service) does not come without costs, even when the
outsourced service appears to be "free". Hidden costs include:</p>
<ul>
<li>
<p>Another organization can see the content of all messages. In some cases,
the contents of messages are stored on the outsourcing company's servers
indefinitely. External access to unencrypted emails poses privacy and
confidentiality issues. Furthermore, the outsourcing company may be located
in another country and be subjected to different regulations and obligations.</p>
</li>
<li>
<p>In some cases, the outsourcing company's terms and conditions allow it to
search the content of emails to aid in targeting advertising, which poses
even greater privacy and confidentiality problems.</p>
</li>
<li>
<p>The organization no longer has control of its own email security.
Server-based encryption and authentication is managed by the outsourcing
company, requiring end-to-end encryption for sensitive communications.</p>
</li>
<li>
<p>Large companies with many customers are often a target of cybercrime
attacks aimed at stealing customer data, and some of these attacks have
succeeded.</p>
</li>
<li>
<p>Inspection of SMTP transaction logs may be impossible for the end user.
Troubleshooting failed deliveries and other email problems requires
interacting with an external support desk. Support desks are sometimes
slow to respond. First-line support, in particular, might lack the
training and access to fix any but simple problems, requiring escalation
and further delays.</p>
</li>
<li>
<p>Sharing a mail server with other organizations can cause delivery issues
when a user at another organization sends spam through that mail server.
When the outsourcing company fails to detect and block spam, or is slow to
terminate service to spammers, the likelihood of problems increases
substantially.</p>
</li>
</ul>
</blockquote>
<div class="footer">
<p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://github.com/iredmail/docs/archive/master.zip">download the latest version</a> for offline reading. If you found something wrong, please do <a href="https://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div>
</body>
</html>

9
html_bk/404.html Normal file
View File

@ -0,0 +1,9 @@
<head>
<head>
<meta http-equiv="refresh" content="5; url='/'">
<title>Page not found</title>
</head>
<body>
<p>The page you're looking for does not exist. Redirecting to home page in 5 seconds.</p>
</body>
</head>

460
html_bk/css/markdown.css Executable file
View File

@ -0,0 +1,460 @@
body{
margin: 0 auto;
font-family: 'PT Sans', Georgia, Palatino, serif;
line-height: 1;
max-width: 75%;
padding: 30px 0px 100px 0px;
}
h1, h2, h3, h4, h5 {
font-weight: bold;
margin-top: 24px;
margin-bottom: 24px;
}
p {
margin-bottom: 4px;
padding: 0;
}
h1 { font-size: 40px; }
h2 { font-size: 36px; padding-top: 24px;}
h3 { font-size: 24px; }
h4 { font-size: 21px; }
h5 { font-size: 18px; }
h1 code { font-size: 40px; }
h2 code { font-size: 36px; }
h3 code { font-size: 24px; }
h4 code { font-size: 21px; }
h5 code { font-size: 18px; }
a {
color: #0099ff;
margin: 0;
padding: 0;
vertical-align: baseline;
text-decoration: none;
}
a:hover {
text-decoration: none;
color: #ff6600;
}
a:visited {
color: purple;
}
ul, ol {
padding-left: 30px;
margin: 0;
}
li {
line-height: 24px;
}
li ul, li ul {
margin-left: 24px;
}
p, ul, ol {
font-size: 16px;
line-height: 24px;
/*max-width: 540px;*/
}
pre {
padding: 0px 24px;
/*max-width: 800px;*/
white-space: pre-wrap;
}
code {
font-family: Consolas, Monaco, Andale Mono, monospace;
line-height: 1.5;
font-size: 13px;
}
h3 code { font-size: 18px; }
aside {
display: block;
float: right;
/*width: 390px;*/
}
blockquote {
border-left: 0.5em solid #eee;
padding: 0 1em;
margin-left:0;
font-style: italic;
/*max-width: 476px;*/
}
blockquote cite {
font-size:14px;
line-height:20px;
color:#bfbfbf;
}
blockquote cite:before {
content: '\2014 \00A0';
}
blockquote p {
color: #666;
/*max-width: 460px;*/
}
hr {
/*width: 540px;*/
text-align: left;
margin: 0 auto 0 0;
color: #999;
}
/* Code below this line is copyright Twitter Inc. */
button, .button, input, select, textarea {
font-size: 100%;
margin: 0;
vertical-align: baseline;
vertical-align: middle;
}
button, .button, input {
line-height: normal;
overflow: visible;
}
button::-moz-focus-inner, .button::-moz-focus-inner, input::-moz-focus-inner {
border: 0;
padding: 0;
}
button,
.button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
cursor: pointer;
-webkit-appearance: button;
}
input[type=checkbox], input[type=radio] {
cursor: pointer;
}
/* override default chrome & firefox settings */
input:not([type="image"]), textarea {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
input[type="search"] {
-webkit-appearance: textfield;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
label,
input,
select,
textarea {
font-family: 'PT Sans', Georgia, Palatino, serif;
font-size: 13px;
font-weight: normal;
line-height: normal;
margin-bottom: 18px;
}
input[type=checkbox], input[type=radio] {
cursor: pointer;
margin-bottom: 0;
}
input[type=text],
input[type=password],
textarea,
select {
display: inline-block;
width: 210px;
padding: 4px;
font-size: 13px;
font-weight: normal;
line-height: 18px;
height: 18px;
color: #808080;
border: 1px solid #ccc;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
select, input[type=file] {
height: 27px;
line-height: 27px;
}
textarea {
height: auto;
}
/* grey out placeholders */
:-moz-placeholder {
color: #bfbfbf;
}
::-webkit-input-placeholder {
color: #bfbfbf;
}
input[type=text],
input[type=password],
select,
textarea {
-webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-moz-transition: border linear 0.2s, box-shadow linear 0.2s;
transition: border linear 0.2s, box-shadow linear 0.2s;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
}
input[type=text]:focus, input[type=password]:focus, textarea:focus {
outline: none;
border-color: rgba(82, 168, 236, 0.8);
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6);
}
/* buttons */
button, .button {
display: inline-block;
padding: 4px 14px;
font-family: 'PT Sans', Georgia, Palatino, serif;
font-size: 13px;
line-height: 18px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
background-color: #0064cd;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
background-image: -o-linear-gradient(top, #049cdb, #0064cd);
background-image: linear-gradient(top, #049cdb, #0064cd);
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
border: 1px solid #004b9a;
border-bottom-color: #003f81;
-webkit-transition: 0.1s linear all;
-moz-transition: 0.1s linear all;
transition: 0.1s linear all;
border-color: #0064cd #0064cd #003f81;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}
button:hover, .button:hover {
color: #fff;
background-position: 0 -15px;
text-decoration: none;
}
button:active, .button:active {
-webkit-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 3px 7px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
button::-moz-focus-inner, .button::-moz-focus-inner {
padding: 0;
border: 0;
}
/* Customizations */
h2, h3, h4, h5 { padding-top: 20px; }
.footer { padding-top: 40px; }
pre, code {
background: #f5f5f5;
border: 1px solid #ccc;
border-radius: 2px;
padding: 5px 10px 5px 10px;
word-wrap: normal;
font-size: 14px;
line-height: 25px;
}
code { padding: 1px 5px 1px 5px; }
pre>code {
margin: 0;
border: 0;
padding: 5px 10px 5px 0px;
}
/* A fixed navigation bar */
#navigation {
/*position: fixed;*/
top: 0;
width: 70%;
height: 35px;
/*
text-align: center;
*/
padding-top: 15px;
/*
color: #ffffff;
*/
/* Adds shadow to the bottom of the bar */
/*
-webkit-box-shadow: 0px 0px 8px 0px #000000;
-moz-box-shadow: 0px 0px 8px 0px #000000;
box-shadow: 0px 0px 8px 0px #000000;
*/
/* Adds the transparent background */
/*
background-color: #000000;
*/
}
#navigation a {
font-size: 20px;
/*
padding-left: 15px;
padding-right: 15px;
*/
text-decoration: none;
}
#navigation a:hover {
color: #0099ff;
}
th { font-style: bold; text-align: left; }
.red { color: red; }
/*
code.bash { background-color: green; color: white; }
*/
pre { margin-left: 30px; }
p, ul, ol { font-size: 17px; }
li { line-height: 26px; }
.f_left { float: left; }
.f_right { float: right; }
/*
.note {
background: #e7f2fa;
padding: 12px;
line-height: 24px;
margin-bottom: 24px;
}
.note .admonition-title {
background: #6ab0de;
}
.note p:last-child {
margin-bottom: 0;
}
*/
.note, .attention, .caution, .danger, .error, .hint, .important, .tip, .warning, .seealso, .admonition-todo {
padding: 12px;
line-height: 24px;
margin-bottom: 24px;
background: #e7f2fa;
}
.admonition { margin-top: 20px; }
.admonition-title {
font-weight: bold;
display: block;
color: #fff;
margin: -12px;
padding: 6px 12px;
margin-bottom: 12px
}
/*
.caution .admonition-title,
.danger .admonition-title,
.error .admonition-title,
.hint .admonition-title,
.important .admonition-title,
.tip .admonition-title,
.seealso .admonition-title,
.admonition-todo .admonition-title
*/
.note .admonition-title { background: #6ab0de; }
.warning .admonition-title { background: #f0b37e; }
.attention .admonition-title { display: none; }
.attention { background: #e7f2fa; }
.warning { background: #FFFFE1; }
.attention p { margin-top: 4px; }
/* Table */
table { border: 1px solid black; border-collapse: collapse;}
th { padding: 5px 10px 5px 10px; }
td { padding: 5px 10px 5px 10px; }
th, td { border: 1px solid black; }
button, .button { font-size: 16px; padding: 5px 5px 5px 5px; }
/* Style for API document */
.api {
line-height: 18px;
padding: 3px 12px 0px 0px;
margin-top: 0px;
margin-bottom: 0px;
}
.api .admonition-title {
background-color: white;
padding: 0px 12px 0px 5px;
}
.api code.url { background-color: white; color: black; display: inline-block; }
.api code.get,
.api code.post,
.api code.put,
.api code.delete,
.api code.has_params,
.api code.has_params_throttle,
.api code.has_params_greylisting,
.api code.has_params_greylisting_whitelists,
.api code.has_params_spampolicy,
.api code.has_params_wblist
{
display: inline-block;
width: 60px;
text-align: center;
}
.api code.get { background-color: #0f6ab4; }
.api code.post { background-color: #10a54a; }
.api code.put { background-color: #c5862b; padding-left: 5px; padding-right: 5px;}
.api code.delete { background-color: #a41e22; }
.api code.upcoming { background-color: #0f6ab4; text-transform: uppercase; font-size: 12px; }
.api code.new { background-color: #10a54a; text-transform: uppercase; }
.api code.has_params,
.api code.has_params_throttle,
.api code.has_params_greylisting,
.api code.has_params_greylisting_whitelists,
.api code.has_params_spampolicy,
.api code.has_params_wblist
{
background-color: #0064cd;
font-size: 12px;
float: right;
width: auto;
cursor: pointer;
}
.api code.comment {
color: black;
background-color: white;
border: 0px;
font-family: 'PT Sans', Georgia, Palatino, serif;
font-size: 16px;
font-style: normal;
}
.api table {
border: 0px;
border-collapse: collapse;
/*
width: 100%;
*/
text-align: left;
line-height: 30px;
vertical-align: middle;
margin-bottom: 20px;
}
.api table thead { background-color: #ccc; }
.api th { padding: 0px 10px 0px 10px; }
.api td { padding: 0px 10px 0px 10px; }
/* END style for API Document */
ul .checklist {
list-style-type: none;
padding-left: 5px;
}

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Some files were not shown because too many files have changed in this diff Show More