conf.py 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. ## -*- coding: utf-8 -*-
  2. # -*- coding: utf-8 -*-
  3. from __future__ import unicode_literals
  4. import time
  5. ##############################################
  6. # Configuration, please edit
  7. ##############################################
  8. # Data about this site
  9. BLOG_AUTHOR = "Thomas Dy"
  10. BLOG_TITLE = "Pleasant Programmer"
  11. # This is the main URL for your site. It will be used
  12. # in a prominent link
  13. SITE_URL = "http://pleasantprogrammer.com/"
  14. # This is the URL where nikola's output will be deployed.
  15. # If not set, defaults to SITE_URL
  16. # BASE_URL = "${SITE_URL}"
  17. BLOG_EMAIL = ""
  18. BLOG_DESCRIPTION = ""
  19. # Nikola is multilingual!
  20. #
  21. # Currently supported languages are:
  22. # bg Bulgarian
  23. # ca Catalan
  24. # de German
  25. # el Greek [NOT gr!]
  26. # en English
  27. # eo Esperanto
  28. # es Spanish
  29. # fa Persian
  30. # fr French
  31. # hr Croatian
  32. # it Italian
  33. # jp Japanese
  34. # nl Dutch
  35. # pt_br Portuguese (Brasil)
  36. # pl Polish
  37. # ru Russian
  38. # tr_tr Turkish (Turkey)
  39. # zh_cn Chinese (Simplified)
  40. #
  41. # If you want to use Nikola with a non-supported language you have to provide
  42. # a module containing the necessary translations
  43. # (p.e. look at the modules at: ./nikola/data/themes/default/messages/fr.py).
  44. # If a specific post is not translated to a language, then the version
  45. # in the default language will be shown instead.
  46. # What is the default language?
  47. DEFAULT_LANG = "en"
  48. # What other languages do you have?
  49. # The format is {"translationcode" : "path/to/translation" }
  50. # the path will be used as a prefix for the generated pages location
  51. TRANSLATIONS = {
  52. DEFAULT_LANG: "",
  53. # Example for another language:
  54. # "es": "./es",
  55. }
  56. # Links for the sidebar / navigation bar.
  57. # You should provide a key-value pair for each used language.
  58. NAVIGATION_LINKS = {
  59. DEFAULT_LANG: (
  60. ('/archive.html', 'Archives'),
  61. ('/categories/index.html', 'Tags'),
  62. ('/rss.xml', 'RSS'),
  63. ),
  64. }
  65. ##############################################
  66. # Below this point, everything is optional
  67. ##############################################
  68. # POSTS and PAGES contains (wildcard, destination, template) tuples.
  69. #
  70. # The wildcard is used to generate a list of reSt source files
  71. # (whatever/thing.txt).
  72. #
  73. # That fragment could have an associated metadata file (whatever/thing.meta),
  74. # and opcionally translated files (example for spanish, with code "es"):
  75. # whatever/thing.txt.es and whatever/thing.meta.es
  76. #
  77. # From those files, a set of HTML fragment files will be generated:
  78. # cache/whatever/thing.html (and maybe cache/whatever/thing.html.es)
  79. #
  80. # These files are combinated with the template to produce rendered
  81. # pages, which will be placed at
  82. # output / TRANSLATIONS[lang] / destination / pagename.html
  83. #
  84. # where "pagename" is the "slug" specified in the metadata file.
  85. #
  86. # The difference between POSTS and PAGES is that POSTS are added
  87. # to feeds and are considered part of a blog, while PAGES are
  88. # just independent HTML pages.
  89. #
  90. POSTS = (
  91. ("posts/*.md", "posts", "post.tmpl"),
  92. ("posts/*.txt", "posts", "post.tmpl")
  93. )
  94. PAGES = (
  95. ("stories/*.md", "stories", "story.tmpl"),
  96. ("stories/*.txt", "stories", "story.tmpl")
  97. )
  98. # One or more folders containing files to be copied as-is into the output.
  99. # The format is a dictionary of "source" "relative destination".
  100. # Default is:
  101. # FILES_FOLDERS = {'files': '' }
  102. # Which means copy 'files' into 'output'
  103. # A mapping of languages to file-extensions that represent that language.
  104. # Feel free to add or delete extensions to any list, but don't add any new
  105. # compilers unless you write the interface for it yourself.
  106. #
  107. # 'rest' is reStructuredText
  108. # 'markdown' is MarkDown
  109. # 'html' assumes the file is html and just copies it
  110. COMPILERS = {
  111. "markdown": ('.md', '.mdown', '.markdown')
  112. }
  113. # Create by default posts in one file format?
  114. # Set to False for two-file posts, with separate metadata.
  115. # ONE_FILE_POSTS = True
  116. # If this is set to True, then posts that are not translated to a language
  117. # LANG will not be visible at all in the pages in that language.
  118. # If set to False, the DEFAULT_LANG version will be displayed for
  119. # untranslated posts.
  120. # HIDE_UNTRANSLATED_POSTS = False
  121. # Paths for different autogenerated bits. These are combined with the
  122. # translation paths.
  123. # Final locations are:
  124. # output / TRANSLATION[lang] / TAG_PATH / index.html (list of tags)
  125. # output / TRANSLATION[lang] / TAG_PATH / tag.html (list of posts for a tag)
  126. # output / TRANSLATION[lang] / TAG_PATH / tag.xml (RSS feed for a tag)
  127. # TAG_PATH = "categories"
  128. # If TAG_PAGES_ARE_INDEXES is set to True, each tag's page will contain
  129. # the posts themselves. If set to False, it will be just a list of links.
  130. # TAG_PAGES_ARE_INDEXES = True
  131. # Final location is output / TRANSLATION[lang] / INDEX_PATH / index-*.html
  132. # INDEX_PATH = ""
  133. # Create per-month archives instead of per-year
  134. # CREATE_MONTHLY_ARCHIVE = False
  135. # Final locations for the archives are:
  136. # output / TRANSLATION[lang] / ARCHIVE_PATH / ARCHIVE_FILENAME
  137. # output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / index.html
  138. # output / TRANSLATION[lang] / ARCHIVE_PATH / YEAR / MONTH / index.html
  139. # ARCHIVE_PATH = ""
  140. # ARCHIVE_FILENAME = "archive.html"
  141. # Final locations are:
  142. # output / TRANSLATION[lang] / RSS_PATH / rss.xml
  143. # RSS_PATH = ""
  144. # Number of posts in RSS feeds
  145. # FEED_LENGTH = 10
  146. # Slug the Tag URL easier for users to type, special characters are
  147. # often removed or replaced as well.
  148. # SLUG_TAG_PATH = True
  149. # A list of redirection tuples, [("foo/from.html", "/bar/to.html")].
  150. #
  151. # A HTML file will be created in output/foo/from.html that redirects
  152. # to the "/bar/to.html" URL. notice that the "from" side MUST be a
  153. # relative URL.
  154. #
  155. # If you don't need any of these, just set to []
  156. # REDIRECTIONS = ${REDIRECTIONS}
  157. # Commands to execute to deploy. Can be anything, for example,
  158. # you may use rsync:
  159. # "rsync -rav output/* joe@my.site:/srv/www/site"
  160. # And then do a backup, or ping pingomatic.
  161. # To do manual deployment, set it to []
  162. DEPLOY_COMMANDS = [
  163. 'git commit-tree -p master -m "updated" source:output | xargs git update-ref refs/heads/master',
  164. 'git push'
  165. ]
  166. # Where the output site should be located
  167. # If you don't use an absolute path, it will be considered as relative
  168. # to the location of conf.py
  169. # OUTPUT_FOLDER = 'output'
  170. # where the "cache" of partial generated content should be located
  171. # default: 'cache'
  172. # CACHE_FOLDER = 'cache'
  173. # Filters to apply to the output.
  174. # A directory where the keys are either: a file extensions, or
  175. # a tuple of file extensions.
  176. #
  177. # And the value is a list of commands to be applied in order.
  178. #
  179. # Each command must be either:
  180. #
  181. # A string containing a '%s' which will
  182. # be replaced with a filename. The command *must* produce output
  183. # in place.
  184. #
  185. # Or:
  186. #
  187. # A python callable, which will be called with the filename as
  188. # argument.
  189. #
  190. # By default, there are no filters.
  191. #
  192. # Many filters are shipped with Nikola. A list is available in the manual:
  193. # <http://getnikola.com/handbook.html#post-processing-filters>
  194. # FILTERS = {
  195. # ".jpg": ["jpegoptim --strip-all -m75 -v %s"],
  196. # }
  197. # Create a gzipped copy of each generated file. Cheap server-side optimization.
  198. # GZIP_FILES = False
  199. # File extensions that will be compressed
  200. # GZIP_EXTENSIONS = ('.txt', '.htm', '.html', '.css', '.js', '.json')
  201. # Use an external gzip command? None means no.
  202. # Example: GZIP_COMMAND = "pigz -k {filename}"
  203. # GZIP_COMMAND = None
  204. # #############################################################################
  205. # Image Gallery Options
  206. # #############################################################################
  207. # Galleries are folders in galleries/
  208. # Final location of galleries will be output / GALLERY_PATH / gallery_name
  209. # GALLERY_PATH = "galleries"
  210. # THUMBNAIL_SIZE = 180
  211. # MAX_IMAGE_SIZE = 1280
  212. # USE_FILENAME_AS_TITLE = True
  213. #
  214. # If set to False, it will sort by filename instead. Defaults to True
  215. # GALLERY_SORT_BY_DATE = True
  216. # #############################################################################
  217. # HTML fragments and diverse things that are used by the templates
  218. # #############################################################################
  219. # Data about post-per-page indexes
  220. # INDEXES_TITLE = "" # If this is empty, the default is BLOG_TITLE
  221. # INDEXES_PAGES = "" # If this is empty, the default is 'old posts page %d'
  222. # translated
  223. # Name of the theme to use.
  224. THEME = "pleasant2"
  225. # Color scheme to be used for code blocks. If your theme provides
  226. # "assets/css/code.css" this is ignored.
  227. # Can be any of autumn borland bw colorful default emacs friendly fruity manni
  228. # monokai murphy native pastie perldoc rrt tango trac vim vs
  229. # CODE_COLOR_SCHEME = 'default'
  230. # If you use 'site-reveal' theme you can select several subthemes
  231. # THEME_REVEAL_CONFIG_SUBTHEME = 'sky'
  232. # You can also use: beige/serif/simple/night/default
  233. # Again, if you use 'site-reveal' theme you can select several transitions
  234. # between the slides
  235. # THEME_REVEAL_CONFIG_TRANSITION = 'cube'
  236. # You can also use: page/concave/linear/none/default
  237. # date format used to display post dates.
  238. # (str used by datetime.datetime.strftime)
  239. # DATE_FORMAT = '%Y-%m-%d %H:%M'
  240. # FAVICONS contains (name, file, size) tuples.
  241. # Used for create favicon link like this:
  242. # <link rel="name" href="file" sizes="size"/>
  243. # For creating favicons, take a look at:
  244. # http://www.netmagazine.com/features/create-perfect-favicon
  245. # FAVICONS = {
  246. # ("icon", "/favicon.ico", "16x16"),
  247. # ("icon", "/icon_128x128.png", "128x128"),
  248. # }
  249. # Show only teasers in the index pages? Defaults to False.
  250. # INDEX_TEASERS = False
  251. # A HTML fragment with the Read more... link.
  252. # The following tags exist and are replaced for you:
  253. # {link} A link to the full post page.
  254. # {read_more} The string “Read more” in the current language.
  255. # {{ A literal { (U+007B LEFT CURLY BRACKET)
  256. # }} A literal } (U+007D RIGHT CURLY BRACKET)
  257. # READ_MORE_LINK = '<p class="more"><a href="{link}">{read_more}…</a></p>'
  258. # A HTML fragment describing the license, for the sidebar.
  259. LICENSE = """
  260. <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/ar/">
  261. <img alt="Creative Commons License BY-NC-SA"
  262. style="border-width:0; margin-bottom:12px;"
  263. src="http://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a>"""
  264. # I recommend using the Creative Commons' wizard:
  265. # http://creativecommons.org/choose/
  266. # LICENSE = """
  267. # <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/ar/">
  268. # <img alt="Creative Commons License BY-NC-SA"
  269. # style="border-width:0; margin-bottom:12px;"
  270. # src="http://i.creativecommons.org/l/by-nc-sa/2.5/ar/88x31.png"></a>"""
  271. # A small copyright notice for the page footer (in HTML).
  272. # Default is ''
  273. CONTENT_FOOTER = '<a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/deed.en_US"><img alt="CC-BY-SA" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png" /></a> &copy; {date} {author} - Powered by <a href="http://nikola.ralsina.com.ar">Nikola</a>'
  274. CONTENT_FOOTER = CONTENT_FOOTER.format(email=BLOG_EMAIL,
  275. author=BLOG_AUTHOR,
  276. date=time.gmtime().tm_year)
  277. # To use comments, you can choose between different third party comment
  278. # systems, one of "disqus", "livefyre", "intensedebate", "moot",
  279. # "googleplus" or "facebook"
  280. COMMENT_SYSTEM = "disqus"
  281. # And you also need to add your COMMENT_SYSTEM_ID which
  282. # depends on what comment system you use. The default is
  283. # "nikolademo" which is a test account for Disqus. More information
  284. # is in the manual.
  285. COMMENT_SYSTEM_ID = "pleasantprog"
  286. # Enable annotations using annotateit.org?
  287. # If set to False, you can still enable them for individual posts and pages
  288. # setting the "annotations" metadata.
  289. # If set to True, you can disable them for individual posts and pages using
  290. # the "noannotations" metadata.
  291. # ANNOTATIONS = False
  292. # Create index.html for story folders?
  293. # STORY_INDEX = False
  294. # Enable comments on story pages?
  295. # COMMENTS_IN_STORIES = False
  296. # Enable comments on picture gallery pages?
  297. # COMMENTS_IN_GALLERIES = False
  298. # What file should be used for directory indexes?
  299. # Defaults to index.html
  300. # Common other alternatives: default.html for IIS, index.php
  301. # INDEX_FILE = "index.html"
  302. # If a link ends in /index.html, drop the index.html part.
  303. # http://mysite/foo/bar/index.html => http://mysite/foo/bar/
  304. # (Uses the INDEX_FILE setting, so if that is, say, default.html,
  305. # it will instead /foo/default.html => /foo)
  306. # (Note: This was briefly STRIP_INDEX_HTML in v 5.4.3 and 5.4.4)
  307. # Default = False
  308. # STRIP_INDEXES = False
  309. # Should the sitemap list directories which only include other directories
  310. # and no files.
  311. # Default to True
  312. # If this is False
  313. # e.g. /2012 includes only /01, /02, /03, /04, ...: don't add it to the sitemap
  314. # if /2012 includes any files (including index.html)... add it to the sitemap
  315. # SITEMAP_INCLUDE_FILELESS_DIRS = True
  316. # Instead of putting files in <slug>.html, put them in
  317. # <slug>/index.html. Also enables STRIP_INDEXES
  318. # This can be disabled on a per-page/post basis by adding
  319. # .. pretty_url: False
  320. # to the metadata
  321. # PRETTY_URLS = False
  322. # If True, publish future dated posts right away instead of scheduling them.
  323. # Defaults to False.
  324. # FUTURE_IS_NOW = False
  325. # If True, future dated posts are allowed in deployed output
  326. # Only the individual posts are published/deployed; not in indexes/sitemap
  327. # Generally, you want FUTURE_IS_NOW and DEPLOY_FUTURE to be the same value.
  328. # DEPLOY_FUTURE = False
  329. # If False, draft posts will not be deployed
  330. # DEPLOY_DRAFTS = True
  331. # Allows scheduling of posts using the rule specified here (new_post -s)
  332. # Specify an iCal Recurrence Rule: http://www.kanzaki.com/docs/ical/rrule.html
  333. # SCHEDULE_RULE = ''
  334. # If True, use the scheduling rule to all posts by default
  335. # SCHEDULE_ALL = False
  336. # If True, schedules post to today if possible, even if scheduled hour is over
  337. # SCHEDULE_FORCE_TODAY = False
  338. # Do you want a add a Mathjax config file?
  339. # MATHJAX_CONFIG = ""
  340. # If you are using the compile-ipynb plugin, just add this one:
  341. #MATHJAX_CONFIG = """
  342. #<script type="text/x-mathjax-config">
  343. #MathJax.Hub.Config({
  344. # tex2jax: {
  345. # inlineMath: [ ['$','$'], ["\\\(","\\\)"] ],
  346. # displayMath: [ ['$$','$$'], ["\\\[","\\\]"] ]
  347. # },
  348. # displayAlign: 'left', // Change this to 'center' to center equations.
  349. # "HTML-CSS": {
  350. # styles: {'.MathJax_Display': {"margin": 0}}
  351. # }
  352. #});
  353. #</script>
  354. #"""
  355. # Do you want to customize the nbconversion of your IPython notebook?
  356. # IPYNB_CONFIG = {}
  357. # With the following example configuracion you can use a custom jinja template
  358. # called `toggle.tpl` which has to be located in your site/blog main folder:
  359. # IPYNB_CONFIG = {'Exporter':{'template_file': 'toggle'}}
  360. # What MarkDown extensions to enable?
  361. # You will also get gist, nikola and podcast because those are
  362. # done in the code, hope you don't mind ;-)
  363. # MARKDOWN_EXTENSIONS = ['fenced_code', 'codehilite']
  364. # Social buttons. This is sample code for AddThis (which was the default for a
  365. # long time). Insert anything you want here, or even make it empty.
  366. # SOCIAL_BUTTONS_CODE = """
  367. # <!-- Social buttons -->
  368. # <div id="addthisbox" class="addthis_toolbox addthis_peekaboo_style addthis_default_style addthis_label_style addthis_32x32_style">
  369. # <a class="addthis_button_more">Share</a>
  370. # <ul><li><a class="addthis_button_facebook"></a>
  371. # <li><a class="addthis_button_google_plusone_share"></a>
  372. # <li><a class="addthis_button_linkedin"></a>
  373. # <li><a class="addthis_button_twitter"></a>
  374. # </ul>
  375. # </div>
  376. # <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f7088a56bb93798"></script>
  377. # <!-- End of social buttons -->
  378. # """
  379. # Hide link to source for the posts?
  380. # HIDE_SOURCELINK = False
  381. # Copy the source files for your pages?
  382. # Setting it to False implies HIDE_SOURCELINK = True
  383. # COPY_SOURCES = True
  384. # Modify the number of Post per Index Page
  385. # Defaults to 10
  386. # INDEX_DISPLAY_POST_COUNT = 10
  387. # RSS_LINK is a HTML fragment to link the RSS or Atom feeds. If set to None,
  388. # the base.tmpl will use the feed Nikola generates. However, you may want to
  389. # change it for a feedburner feed or something else.
  390. # RSS_LINK = None
  391. # Show only teasers in the RSS feed? Default to True
  392. # RSS_TEASERS = True
  393. # A search form to search this site, for the sidebar. You can use a google
  394. # custom search (http://www.google.com/cse/)
  395. # Or a duckduckgo search: https://duckduckgo.com/search_box.html
  396. # Default is no search form.
  397. # SEARCH_FORM = ""
  398. #
  399. # This search form works for any site and looks good in the "site" theme where
  400. # it appears on the navigation bar:
  401. #
  402. #SEARCH_FORM = """
  403. #<!-- Custom search -->
  404. #<form method="get" id="search" action="http://duckduckgo.com/"
  405. # class="navbar-form pull-left">
  406. #<input type="hidden" name="sites" value="%s"/>
  407. #<input type="hidden" name="k8" value="#444444"/>
  408. #<input type="hidden" name="k9" value="#D51920"/>
  409. #<input type="hidden" name="kt" value="h"/>
  410. #<input type="text" name="q" maxlength="255"
  411. # placeholder="Search&hellip;" class="span2" style="margin-top: 4px;"/>
  412. #<input type="submit" value="DuckDuckGo Search" style="visibility: hidden;" />
  413. #</form>
  414. #<!-- End of custom search -->
  415. #""" % SITE_URL
  416. #
  417. # If you prefer a google search form, here's an example that should just work:
  418. #SEARCH_FORM = """
  419. #<!-- Custom search with google-->
  420. #<form id="search" action="http://google.com/search" method="get" class="navbar-form pull-left">
  421. #<input type="hidden" name="q" value="site:%s" />
  422. #<input type="text" name="q" maxlength="255" results="0" placeholder="Search"/>
  423. #</form>
  424. #<!-- End of custom search -->
  425. #""" % SITE_URL
  426. # Also, there is a local search plugin you can use, based on Tipue, but it requires setting several
  427. # options:
  428. # SEARCH_FORM = """
  429. # <span class="navbar-form pull-left">
  430. # <input type="text" id="tipue_search_input">
  431. # </span>"""
  432. #
  433. # BODY_END = """
  434. # <script type="text/javascript" src="/assets/js/tipuesearch_set.js"></script>
  435. # <script type="text/javascript" src="/assets/js/tipuesearch.js"></script>
  436. # <script type="text/javascript">
  437. # $(document).ready(function() {
  438. # $('#tipue_search_input').tipuesearch({
  439. # 'mode': 'json',
  440. # 'contentLocation': '/assets/js/tipuesearch_content.json',
  441. # 'showUrl': false
  442. # });
  443. # });
  444. # </script>
  445. # """
  446. # EXTRA_HEAD_DATA = """
  447. # <link rel="stylesheet" type="text/css" href="/assets/css/tipuesearch.css">
  448. # <div id="tipue_search_content" style="margin-left: auto; margin-right: auto; padding: 20px;"></div>
  449. # """
  450. # ENABLED_EXTRAS = ['local_search']
  451. #
  452. ###### End of local search example
  453. # Use content distribution networks for jquery and twitter-bootstrap css and js
  454. # If this is True, jquery is served from the Google CDN and twitter-bootstrap
  455. # is served from the NetDNA CDN
  456. # Set this to False if you want to host your site without requiring access to
  457. # external resources.
  458. # USE_CDN = False
  459. # Extra things you want in the pages HEAD tag. This will be added right
  460. # before </HEAD>
  461. # EXTRA_HEAD_DATA = ""
  462. # Google analytics or whatever else you use. Added to the bottom of <body>
  463. # in the default template (base.tmpl).
  464. # BODY_END = ""
  465. # The possibility to extract metadata from the filename by using a
  466. # regular expression.
  467. # To make it work you need to name parts of your regular expression.
  468. # The following names will be used to extract metadata:
  469. # - title
  470. # - slug
  471. # - date
  472. # - tags
  473. # - link
  474. # - description
  475. #
  476. # An example re is the following:
  477. # '(?P<date>\d{4}-\d{2}-\d{2})-(?P<slug>.*)-(?P<title>.*)\.md'
  478. # FILE_METADATA_REGEXP = None
  479. # Additional metadata that is added to a post when creating a new_post
  480. # ADDITIONAL_METADATA = {}
  481. # Nikola supports Twitter Card summaries / Open Graph.
  482. # Twitter cards make it possible for you to attach media to Tweets
  483. # that link to your content.
  484. #
  485. # IMPORTANT:
  486. # Please note, that you need to opt-in for using Twitter Cards!
  487. # To do this please visit
  488. # https://dev.twitter.com/form/participate-twitter-cards
  489. #
  490. # Uncomment and modify to following lines to match your accounts.
  491. # Specifying the id for either 'site' or 'creator' will be preferred
  492. # over the cleartext username. Specifying an ID is not necessary.
  493. # Displaying images is currently not supported.
  494. # TWITTER_CARD = {
  495. # # 'use_twitter_cards': True, # enable Twitter Cards / Open Graph
  496. # # 'site': '@website', # twitter nick for the website
  497. # # 'site:id': 123456, # Same as site, but the website's Twitter user ID
  498. # # instead.
  499. # # 'creator': '@username', # Username for the content creator / author.
  500. # # 'creator:id': 654321, # Same as creator, but the Twitter user's ID.
  501. # }
  502. # Post's dates are considered in GMT by default, if you want to use
  503. # another timezone, please set TIMEZONE to match. Check the available
  504. # list from Wikipedia:
  505. # http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
  506. # Also, if you want to use a different timezone in some of your posts,
  507. # you can use W3C-DTF Format (ex. 2012-03-30T23:00:00+02:00)
  508. #
  509. TIMEZONE = 'Asia/Manila'
  510. # If webassets is installed, bundle JS and CSS to make site loading faster
  511. # USE_BUNDLES = True
  512. # Plugins you don't want to use. Be careful :-)
  513. # DISABLED_PLUGINS = ["render_galleries"]
  514. # Experimental plugins - use at your own risk.
  515. # They probably need some manual adjustments - please see their respective
  516. # readme.
  517. # ENABLED_EXTRAS = [
  518. # 'planetoid',
  519. # 'ipynb',
  520. # 'local_search',
  521. # 'render_mustache',
  522. # ]
  523. # List of regular expressions, links matching them will always be considered
  524. # valid by "nikola check -l"
  525. # LINK_CHECK_WHITELIST = []
  526. # If set to True, enable optional hyphenation in your posts (requires pyphen)
  527. # HYPHENATE = False
  528. # Put in global_context things you want available on all your templates.
  529. # It can be anything, data, functions, modules, etc.
  530. GLOBAL_CONTEXT = {}